Optimization 使用Java google或工具CP-SAT添加

Optimization 使用Java google或工具CP-SAT添加,optimization,or-tools,cp-sat-solver,Optimization,Or Tools,Cp Sat Solver,我需要使用添加以下约束: (x+y+z)/(x+y+z+k)

我需要使用添加以下约束:

(x+y+z)/(x+y+z+k)<10

方法签名为:

Constraint addDivisionEquality (IntVar target, IntVar num, IntVar denom)    
在哪里

但是现在我需要将分子和分母定义为
IntVar
类型,而它们是多个IntVar的总和

Java包提供了一个名为sum IntVar的类,但是
adddivision
方法需要
IntVar
。我希望它会变得更好

如何将分子和分母定义为
IntVar
类型

IntVar numerator = model.newIntVar(0, 10, "(x+y+z)");
model.addEquality(target, LinearExpr.sum(new IntVar[] {x, y, z}));
话虽如此

model.addLessThan(LinearExpr.sum(new IntVar[] {x, y, z}), 
                  LinearExpr.scalProd(new IntVar[] {x, y, z, k}, new int[] {10, 10, 10, 10}));
这要简单得多

最后,如果所有变量都为正

(x + y + z) / (x + y + z + k) is always <= 1
(x+y+z)/(x+y+z+k)总是
(x + y + z) / (x + y + z + k) is always <= 1