Constraint Programming Solver JaCoP解决方案发现但存储不一致

时间:2016-07-13 15:29:58

标签: java java-8 constraint-programming jacop

我正在使用JaCoP(Java的约束编程求解器)来计算复杂调度问题的解决方案。现在我面临的问题是找到的解决方案不正确。

我施加了以下约束:

store.impose(new XplusYeqZ(start, duration, cipStart));

完成搜索后,解算器找到了解决方案,但遗憾的是解决方案显然是错误的,违反了上述约束条件。

我在开始搜索之前检查商店与consistency()的一致性,然后返回true,但在搜索后返回false

我还在搜索后迭代商店的所有约束,如果使用此代码满意则打印:

store.getConstraints().forEach(constraint -> {
            System.out.println(constraint.id() + "   " + constraint.satisfied());
});

该方法在上面的约束上返回false

我的问题是:是否有合理的解释为什么不能为正确的解决方案满足每个约束?我忽略了什么吗?

附录:我使用的是JaCoP 4.4.0

1 个答案:

答案 0 :(得分:1)

首先,当你进行搜索时,你应该检查搜索的结果(真/假)。如果结果为false,则模型不一致,并且存储处于未定义状态。你的问题可能就是这种情况。