Что значит выразить эту загадку как CSP
Что подразумевается под приложенным изображением ниже.
By labelling each cell with a variable, express the puzzle as a CSP. Hint:
recall that a CSP is composed of three parts.
Сначала я думал просто добавить переменные в каждую ячейку, такие как A, B, C и т. Д. В каждую ячейку, а затем ограничить эти ячейки, но я не верю, что это правильно. Я не хочу, чтобы ответ просто объяснение того, что требуется. с точки зрения CSP.
1 ответ
На мой взгляд, CSP лучше всего разделить на две части:
- Укажите ограничения. Это называется частью моделирования или моделью.
- Поиск решений с использованием предикатов перечисления, таких как
labeling/2
,
Эти части лучше хранить отдельно, используя предикат, который мы называем базовым отношением и который имеет следующие свойства:
- Он публикует ограничения, т. Е. Выражает часть (1) выше.
- Последним аргументом является список переменных, которые еще нужно пометить.
- По соглашению его название заканчивается подчеркиванием
_
,
Наличие этого различия позволяет вам:
- Попробуйте разные стратегии поиска без необходимости перекомпилировать ваш код
- причина о терминирующих свойствах основного отношения в изоляции любого конкретного (и часто очень дорогого) поиска.
Я вижу, как некоторые инструкторы могут разложить часть (1) на:
1a. с указанием доменов переменных, используя, например, in/2
ограничения
1б. с указанием других ограничений, которые имеют место среди переменных.
На мой взгляд, это различие является искусственным, потому что in/2
ограничения являются ограничениями, как и все другие ограничения в части моделирования, но некоторые преподаватели могут преподавать это отдельно также по историческим причинам, начиная с того времени, когда системы CSP не были такими динамичными, как сейчас.
В настоящее время вы можете в любое время опубликовать дополнительные ограничения домена и свободно смешивать in/2
ограничения с другими ограничениями в любом порядке.
Таким образом, части, которые ожидаются от вас, скорее всего: (а) состояние in/2
ограничения, (б) установить дополнительные ограничения и (в) использовать предикаты перечисления для поиска конкретных решений. Также кажется, что у вас уже есть правильное представление о том, как решить этот конкретный CSP с помощью этого метода.