Пролог ручная или нестандартная маркировка

В настоящее время я пишу решатель для проблемы планирования этажа в Прологе и у меня есть некоторые проблемы с частью маркировки.

В настоящее время проблема заключается в том, что мои ограничения опубликованы, но когда я запускаю маркировку, на поиски решения уходит целая вечность. Я хотел бы привести некоторые эвристики.

У меня вопрос, как я могу вручную пометить мои переменные? Я боюсь, что после определения переменной clpfd, как это:

X in Xinf..Xsup

и ограничивая его, если я сделаю что-то вроде:

    fd_sup(X, Xmax),
    X = Xmax,
...

в моей пользовательской метке я не буду использовать возможность возврата назад Пролога для проверки других значений домена X. Я ошибся ?

Кроме того, есть ли более умный способ маркировки моих переменных, чем написание пользовательских процедур маркировки? Моя идея эвристики состоит в том, чтобы альтернативно попробовать экстремумы переменной области (например, max (X), min (X), max (X-1), min (X-1) и т. Д.)

Надеюсь, вы можете помочь мне :)

Ответы на вопрос(5)

Ваш ответ на вопрос