我想使用 Google或工具Java的 API,但我无法将约束分离。我尝试这样实现:(A == 1或B == 1)AND((C == 1或D == 1))...我该怎么做?

另一个问题是我该如何实现makeSumLessOrEqual(IntVar [] VARS,IntVar限制),因为只有makeSumLessOrEqual(IntVar [] VARS,int限制)函数。

谢谢您的帮助!

最佳答案

我想使用Google或工具Java api,但不能分离约束。我尝试这样实现:(A == 1或B == 1)AND((C == 1或D == 1))...我该怎么做?

使用solver.makeIsEqualCstVar(A, 1)创建布尔变量
ORsolver.makeMax(boolvar_1, boolvar_2)ANDsolver.makeMin();
另一个问题是我该如何实现makeSumLessOrEqual(IntVar [] VARS,IntVar限制),因为只有makeSumLessOrEqual(IntVar [] VARS,int限制)函数。

您需要将makeScalProd API与[1, .., 1, -1]vars + [limit]结合使用。

关于java - Google Or-tools约束的分离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22591442/

10-11 03:29