Что значит выразить эту загадку как 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 лучше всего разделить на две части:

  1. Укажите ограничения. Это называется частью моделирования или моделью.
  2. Поиск решений с использованием предикатов перечисления, таких как labeling/2,

Эти части лучше хранить отдельно, используя предикат, который мы называем базовым отношением и который имеет следующие свойства:

  • Он публикует ограничения, т. Е. Выражает часть (1) выше.
  • Последним аргументом является список переменных, которые еще нужно пометить.
  • По соглашению его название заканчивается подчеркиванием _,

Наличие этого различия позволяет вам:

  • Попробуйте разные стратегии поиска без необходимости перекомпилировать ваш код
  • причина о терминирующих свойствах основного отношения в изоляции любого конкретного (и часто очень дорогого) поиска.

Я вижу, как некоторые инструкторы могут разложить часть (1) на:

1a. с указанием доменов переменных, используя, например, in/2 ограничения
1б. с указанием других ограничений, которые имеют место среди переменных.

На мой взгляд, это различие является искусственным, потому что in/2 ограничения являются ограничениями, как и все другие ограничения в части моделирования, но некоторые преподаватели могут преподавать это отдельно также по историческим причинам, начиная с того времени, когда системы CSP не были такими динамичными, как сейчас.

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

Таким образом, части, которые ожидаются от вас, скорее всего: (а) состояние in/2 ограничения, (б) установить дополнительные ограничения и (в) использовать предикаты перечисления для поиска конкретных решений. Также кажется, что у вас уже есть правильное представление о том, как решить этот конкретный CSP с помощью этого метода.

Другие вопросы по тегам