我回到了使用 Google 或 Tools CP Sat 在 Java 中的线性表达式。Clunky 甚至没有详细描述它,Java 在这里是一团糟。
我的目标是向我的 IntVar 添加一个常量,并为下一个 IntVar 排除该值。
(顺便说一句。我如何向我的 IntVar 添加一个常数已经很尴尬了,还有其他方法吗?)
IntVar a = model.newIntVar(0, someValue, "a");
IntVar b = model.newIntVar(0, someValue, "b");
IntVar one = model.newIntVar(1, 1, "I have to do this");
LinearExpr expr = LinearExpr.scalProd(new IntVar[] {a, one}, new int[] {1, constant}) // a + constant
model.addDifferent(b, expr) // Error because addDifferent is only usable with (IntVar, IntVar)
如何使用 IntVar 和 LinearExpression 实现 addDifferent?