我是约束逻辑编程的新手,想知道如何使用clpfd在prolog中设置12 x 12矩阵。我正在使用swi prolog ide。
答案 0 :(得分:2)
要分配变量矩阵,我们可以在普通的Prolog中做到:
matrix(N,Rows) :- bagof(R,Y^(between(1,N,Y),length(R,N)),Rows).
然后,使用库(yall)约束每个'单元'从域中取值(比如1..3):
:- use_module(library(clpfd)).
?- matrix(12, Mat), maplist([R]>>(R ins 1..3), Mat).
或者,内置了:
?- matrix(12, Mat), bagof(t, R^(member(R, Mat), R ins 1..3), _).