Я пытаюсь решить следующую задачу, используя логические ограничения:Решения головоломки с Прологом, кидает ошибку «Аргументы не достаточно инстанцированы»
Пакера должен поставить 5 ящиков на длинный грузовик. В 5 ящиках содержатся цыплята, ячмень, лисицы, яд крысы и пшеница. Ящики нуждаются в для размещения в длинной линии без каких-либо зазоров между ними, чтобы:
• цыплята отделены от лисиц;
• Яд крысы не рядом с ячменем;
• Яд крысы находится не рядом с пшеницей.
Узнайте, как могут различные способы размещения этих ящиков в соответствии с этими ограничениями на упаковку.
Это то, что я до сих пор:
:- use_module(library(clpfd)).
position(Crates) :-
Crates = [Chicken, Barley, Foxes, RatPoison, Wheat],
Regions ins 1..5,
Chicken #\= Foxes,
RatPoison #\= Barley,
RatPoison #\= Wheat,
labeling([], Regions).
Он бросает ошибку «Аргументы не достаточно инстанцирован», когда я пытаюсь запустить его.
Я очень новичок в Prolog, поэтому любая помощь будет оценена по достоинству.
Попробуйте '[Регионы] ins 1..5' и' labeling ([], [Regions]). 'Прочитайте документацию CLPFD относительно' ins' и 'labeling'. – lurker