Prolog 我可以在更短的时间内终止此CLP(FD)查询吗?
我有以下中电(FD)查询: 在SWI Prolog中,设置查询时没有标签/1 进球了,译员几乎挂断了。我没料到 在短时间内终止 如何修改查询、一些重新排序等。。所以 它提供了预期的答案“假” 再见 注意:在按下^C和t一段时间后,我看到CLP(FD) 系统仍然忙。非常简单: 首先,将Prolog 我可以在更短的时间内终止此CLP(FD)查询吗?,prolog,swi-prolog,clpfd,Prolog,Swi Prolog,Clpfd,我有以下中电(FD)查询: 在SWI Prolog中,设置查询时没有标签/1 进球了,译员几乎挂断了。我没料到 在短时间内终止 如何修改查询、一些重新排序等。。所以 它提供了预期的答案“假” 再见 注意:在按下^C和t一段时间后,我看到CLP(FD) 系统仍然忙。非常简单: 首先,将I替换为J*15;并将大域名放在最后: ?- 15*J - 3*N #= X, X in 1..2, 15*J - 5*M #= Y, Y in 1..4, I #= 15*J, [I,N,M,
I
替换为J*15
;并将大域名放在最后:
?- 15*J - 3*N #= X, X in 1..2,
15*J - 5*M #= Y, Y in 1..4,
I #= 15*J,
[I,N,M,J] ins -2147483648..2147483647.
false.
上述因素并不总是被检测到,传播也很弱,因为它很容易破坏域的表示。我在解释器中得到了“false”的预期结果。您可能正在使用换行符输入查询,复制并粘贴查询,如下所示:
[I,N,M,J]ins-2147483648..2147483647,3*N#=X in 1..2,I-5*M#=Y,Y在1..4中,I-15*J#=0。
换行不是问题,SWI Prolog运行时有或没有换行,它对换行不敏感。在Prolog中,一个查询的结尾是一个带空格或换行符的句点(.)。干得好。有趣。需要调查。
?- 15*J - 3*N #= X, X in 1..2,
15*J - 5*M #= Y, Y in 1..4,
I #= 15*J,
[I,N,M,J] ins -2147483648..2147483647.
false.