2016-04-03 3 views
1

Я новичок в программировании логики ограничения и хотел бы знать, как я могу использовать clpfd для настройки матрицы 12 x 12 в прологе. Я использую прологи.Как создать матрицу 12 x 12 с использованием библиотеки clpfd

+0

это Пролог, или ECLIPSE? –

+0

@WillemVanOnsem это пролог Я использую swi proog не ECLiPSe – user6105558

ответ

2

Чтобы выделить матрицу переменных, мы можем сделать в простом Прологе:

matrix(N,Rows) :- bagof(R,Y^(between(1,N,Y),length(R,N)),Rows). 

Тогда, чтобы тяготы каждый «клетки» принимать значения из домена (скажу 1..3), используя библиотеку (Yall):

:- 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), _).