我目前开始使用 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 优化问题并知道解决方法?