0

我正在尝试使用 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。

我希望有人能帮帮忙!

亲切的问候,

尼古拉斯

4

1 回答 1

0

你的代码对我有用!可能你的 IDE 没有配置好。我不明白错误信息,因为有一个方法 model.arithm(IntVar, String, IntVar)... ctrl+click 时在源代码中看到了吗?你能展示你的进口吗?

PS: IntVar 中的转换是无用的(如果您的 IDE 要求它,那么您有配置问题)。

于 2017-03-31T13:31:27.287 回答