Prolog CSP:低于实例化计数器的约束

时间:2017-12-31 18:36:14

标签: prolog constraint-programming

使用Eclipse prolog并假设我有一个变量X和X必须小于已知的数字N.为此我可以写:

X #< N

因此,每当X被实例化为大于N的数字时,上面的暂停谓词就会失败。

但是,如果我的计数器C从0开始,在搜索期间会增加,如果超过N则会失败?

例如,如果我想跟踪从域中选择值的次数,并且约束永远不会超过N次,该怎么办?我不能这样做,因为Counter C被实例化为0并使用其他变量进行递增(C1是C + 1)。

我必须用纯prolog做吗?像这样:

pred(X, N):- X1 is X+1, X1<N, pred(X1, N)

1 个答案:

答案 0 :(得分:1)

OP在这里。我找到了我要找的东西。它是一个基数约束,并在eclipse prolog的ic全局库中实现。