1

我目前开始使用 Java 中的 Google OR Tools CP-Sat Solver 并面临简单的数学方程式问题,包括常量和 OR-Tools 内部“IntVar”。

我的问题的一个小例子:

    // Variables
    IntVar a = model.newIntVar(0, 5, "a");
    IntVar b = model.newIntVar(0, 5, "b");
    int c = 1;

    // Constraint
    model.addEquality(a, a * c); // Cannot apply * with IntVar and int
    model.addEquality(a, a + b); // Cannot Apply + with IntVars
    
    // What I want to achieve
    model.addEquality(a, a * c + b);
    

我习惯了 Python,这些类型的问题并不真正存在,有一个简单model.Add(a == a * c + b) 的工作。

Or-Tools LinearExpr.sum 或 LinearExpr.term 也根本没有帮助我。

有没有人在 Java 中处理过 CP-Sat 优化问题并知道解决方法?

4

1 回答 1

1

java中没有运算符重载。所以你被 LinearExpr 方法困住了。

于 2021-05-07T14:03:40.710 回答