我想使用 Google or-tools Java api,我无法解除约束。我尝试这样实现:(A == 1或B == 1)AND((C == 1或D == 1))...我该怎么做?
另一个问题是我如何实现makeSumLessOrEqual(IntVar [] VARS,IntVar limit),因为只有makeSumLessOrEqual(IntVar [] VARS,int limit)函数。
感谢您的帮助!
答案 0 :(得分:1)
我想使用Google或工具Java api,但是我无法将约束分离。我尝试这样实现:(A == 1或B == 1)AND((C == 1或D == 1))...我该怎么做?
使用solver.makeIsEqualCstVar(A, 1)
创建布尔变量
OR
是solver.makeMax(boolvar_1, boolvar_2)
,
AND
是solver.makeMin();
另一个问题是我如何实现makeSumLessOrEqual(IntVar [] VARS,IntVar限制),因为只有makeSumLessOrEqual(IntVar [] VARS,int限制)函数。
您需要将makeScalProd
API与[1, .., 1, -1]
和vars + [limit]
结合使用。