Java Choco解算器错误(IntVar读作Int)

时间:2017-03-23 17:14:40

标签: compiler-errors constraint-programming graph-coloring choco

我正在尝试使用Java choco solver(一种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。

我希望有人可以提供帮助!

亲切的问候,

尼古拉斯

1 个答案:

答案 0 :(得分:0)

您的代码适合我!也许你的IDE配置不好。我不明白错误信息,因为有一个方法model.arithm(IntVar,String,IntVar)...当你按住ctrl +点击它时,你在源代码中看到它吗?你能展示你的进口吗?

PS:IntVar中的强制转换是无用的(如果你的IDE要求它,那你就有配置问题了。)