Вторая формулировка.
Переменные: +
Домены:
Ограничения:
,
.
Ниже, в разделе 10.2.5, приведена программа решения этой задачи на языке Prolog.
Пример 10.7. Задача о ферзях
Задача о ферзях состоит в размещении ферзей на шахматной доске так, чтобы они не угрожали друг другу (см. рис. 10.1).
Модель удовлетворения ограничений:
ферзи в вертикальных столбцах: .
отсутствие конфликтов:
Рис. 10.1. Одно из решений задачи о 8 ферзях.
Одним из примеров использования УО является решение кроссвордов.
Пример 10.8. Пример составления кроссворда.
Рассмотрим пример составления кроссворда из [33]. Задача состоит в вертикальной или горизонтальной записи слов из заданного множества слов (словаря) в таблицу с учетом некоторых ограничений. Если разрешено вставлять каждое слово на пустое место соответствующей длины, возможная формулировка задачи о кроссворде в виде задачи УО выглядит следующим образом. Для каждого квадрата кроссворда вводится переменная, принимающая буквенные значения из алфавита, причем могут быть заданы возможные значения для групп смежных переменных.
Рис. 10.2. Задача о кроссворде.
Приведем формальную формулировку задачи о кроссворде в терминах ограничений. Каждому квадрату кроссворда, который должен быть заполнен (см. рис. 10.2) поставим в соответствие переменную . Переменные в качестве доменов имеют буквы алфавита, в качестве ограничений служат допустимые слова. Например, ограничения могут быть заданы следующим образом [33]:
,
,
,
,
.
Дата добавления: 2016-06-05; просмотров: 1747;