我正在尝试使用java choco求解器(CP求解器)为图形着色。但是我似乎无法使其正常工作。甚至本教程中的代码也不起作用:
int n = 8;
Model model = new Model(n + "-queens problem");
IntVar[] vars = new IntVar[n];
for(int q = 0; q < n; q++){
vars[q] = (IntVar) model.intVar("Q_"+q, 1, n);
}
for(int i = 0; i < n-1; i++){
for(int j = i + 1; j < n; j++){
model.arithm(vars[i], "!=",vars[j]).post();
model.arithm(vars[i], "!=", vars[j], "-", j - i).post();
model.arithm(vars[i], "!=", vars[j], "+", j - i).post();
}
}
Solution solution = model.getSolver().findSolution();
if(solution != null){
System.out.println(solution.toString());
}
我总是得到以下错误:
类型IIntConstraintFactory中的方法arithm(IntVar,String,int)不适用于参数(IntVar,String,IntVar),我不明白,因为vars [j]应该是IntVar。
我希望有人能帮帮忙!
亲切的问候,
尼古拉斯
最佳答案
您的代码对我有用!也许您的IDE配置不正确。我不明白该错误消息,因为有一个方法model.arithm(IntVar,String,IntVar)...在按住Ctrl并单击时会在源代码中看到它吗?你能显示你的进口吗?
PS:IntVar中的强制转换是无用的(如果您的IDE要求它,那么您将遇到配置问题)。
关于compiler-errors - Java Choco求解器错误(IntVar读为Int),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42982740/