можно указать домен переменной таким образом:Возможно ли установить домен переменной как перечисление имен в clpfd?
MyVar in 1..10
или
MyVar in {1,10,15}
, но у меня есть переменная, которую я хотел бы уточнить, как это:
Activity_1__room in {room_1, room_2} % i.e. as atoms not as integers
Можно сделать это? Конечно, можно кодировать имена целыми числами, но действительно ли это необходимо?
Зачем вам clpfd для управления этой переменной для вас, а не просто что-то вроде 'room (room_1). Номер (room_2). ... room (Activity), 'как обычно, при программировании Prolog? Вы все равно не можете делать арифметику на 'Activity_1__room'. –
Ну, я хочу использовать 'labeling', и я не вижу, как использовать ваш код в предикате маркировки. Возможно, это очевидно, но мои знания clpfd очень ограничены. Я не понимаю, какова граница между прологом и библиотекой clpfd (т. Е. Как они внутренне работают вместе). –
Я не думаю, что есть какая-то причина использовать маркировку для нечисловых значений. Если вы делаете факт для обеих комнат, как я делал выше, а затем используйте 'room (ActivityRoom)', тогда обычные средства возврата назад будут пытаться поочередно, пока не найдут правильный. Я подозреваю, что вам не хватает понимания о том, как работает Prolog, что вам нужно будет решить, чтобы сделать какой-либо реальный прогресс. –