clpfd - Sicstus 4.2.3 和 4.3.0 之间的 time_out 标记差异

标签 clpfd sicstus-prolog

在 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/

相关文章:

prolog - 如何在 Sicstus Prolog 的 CSP 中设置对变量的域

prolog - 如何定位过度扩展目标的原因?

prolog - SICStus 序言 : Find all solutions

recursion - Prolog递归程序不返回值

prolog - 计算列表中元素的数量 : how affectation works

prolog - 求所有以数字为极限的立方根

list - 在列表 Prolog 中查找 2 的幂

prolog - SICStus Prolog 中的验证属性

prolog - SICStus Prolog 忽略更改