我正在使用 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