【发布时间】:2021-12-27 11:13:33
【问题描述】:
我正在学习使用Choco-solver。我发现它无法找到一个非常简单的问题的解决方案,这意味着我一定是误解了什么......
我将我的代码简化为:
Model model = new Model("Minimum");
IntVar x = model.intVar("x", 1, 9, false);
IntVar y = model.intVar("y", 1, 9, false);
IntVar z = model.intVar("z", -1000, 1000, false);
z.eq(x.add(y.mul(2))).post();
Solver solver = model.getSolver();
solver.showStatistics();
solver.showSolutions();
solver.findSolution();
所以,三个整数变量和一个约束表示z = x + 2y。 Choco-solver 回复 Complete search - No solution.
如果我将约束的内部部分从 y.mul(2) 更改为 y.mul(1) (x = 1, y = 1, z = 2) 或 y.add(2) (x = 1, y = 1,z = 4)。我什至可以将其设置为y.mul(-2) (x = 1 y = 9 z = -17),但如果我使用大于 1 的整数的mul,则约束似乎无法解决。
这是怎么回事?
【问题讨论】:
标签: choco