我目前正在为Prolog的平面规划问题编写求解器,并且在标签部分存在一些问题.
目前的问题是我的约束被发布但是当我启动标签时,需要永远找到解决方案.我想引入一些启发式方法.
我的问题是,如何手动标记我的变量?我担心在定义像这样的clpfd变量之后:
X in Xinf..Xsup
并限制它,如果我这样做:
fd_sup(X, Xmax),
X = Xmax,
...
Run Code Online (Sandbox Code Playgroud)
在我的自定义标签中,我不会使用Prolog的回溯功能来测试X域的其他值.我错了吗 ?
另外,是否有一种更聪明的方法来标记我的变量而不是编写自定义标签程序?我对启发式的想法包括尝试替换变量域的极值(如max(X),min(X),max(X-1),min(X-1)等...)
希望你能帮我 :)