在 Sicstus 4.2.3 中可以这样做:
| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ).
X = 0,
Lr = success ? yes
| ?-
如果您在 Sicstus 4.3.0 中执行相同操作,您将得到:
| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ).
X = 0 ? yes
| ?-
4.3.0 中 Lr
发生了什么?
如何知道 4.3.0 中得到的解是最优解还是非最优解?
最佳答案
这当然是一个错误。 Lr应该必然是‘成功’。当 Lr 未绑定(bind)时,无法判断该解决方案是否是最优的。
感谢您报告此问题!
关于clpfd - Sicstus 4.2.3 和 4.3.0 之间的 time_out 标记差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24775871/