Последнее из приведенных выше правил вновь запускает процесс анализа того объекта
world, к которому выполнен откат. Обратите внимание на то, что это правило имеет самый
низкий приоритет. В результате правила, уничтожающие ненужные объекты, будут
активизированы в первую очередь.
Организация процесса вычислений на основе этих правил позволяет программе продолжать
вычисления до тех пор, пока имеются не до конца проанализированные "миры". При
использовании "ненаправленных" правил отката программа всегда сможет вернуться к
последнему объекту world, предлагающему альтернативный вариант предположения, или к
такому объекту, в котором имеются еще не проанализированные дизъюнкты составного
утверждения.
Упражнение 5
Проанализируйте следующую головоломку.
Р7. Встретились два человека, А и В , которые заявляют следующее. А: "В утверждает, что
он правдолюбец". В: "А утверждает, что он лжец".
К какой категории следует отнести каждый персонаж? Как следует модифицировать нашу
программу, чтобы она могла решать задачи такого вида? Ниже будут высказаны некоторые
соображения, которые подскажут вам, как модифицировать модель для таких задач.
В существующей программе мы прежде всего анализировали непротиворечивость каждого
из "миров", т.е. внутреннюю непротиворечивость каждого отдельного высказывания. После
этого мы анализировали непротиворечивость одного "мира" другому (или другим).
Включение в постановку задачи высказывания о высказывании (назовем его ме-
тавысказыванием) несколько усложняет положение дел. В такой постановке высказывание
образует "мир", в котором другое выказывание, а не утверждение, может быть истинным или
ложным. Это второе, внутреннее, высказывание должно также формировать собственный
"мир".
Рассмотрим высказывание
А: "В утверждает, что он правдолюбец".
Предположив, что А говорит правду, мы сформируем "мир", в котором В действительно
утверждает, что он правдолюбец, но внутри этого "мира" существует и другой, в котором В
действительно является правдолюбцем. Отслеживать подобного рода связи между внешним
высказыванием и "внедренным" в него внутренним высказыванием — одна из новых задач
механизма обработки правдоподобия.
А что можно сказать о "мире", в котором А лжет? Мы должны показать, что заявление В о
том, что он лжец, приведет к противоречию
А.4.6. Обработка метавысказываний
Имея в своем распоряжении программу, снабженную механизмом реализации откатов,
попробуем адаптировать ее к работе с метавысказываниями, т.е. высказываниями о
высказываниях. Это позволит нам решать задачи, подобные Р7, которая приведена в упр. 5.
Рассмотрим высказывание:
А: "В утверждает, что он правдолюбец".
Мы должны сформировать "мир", в котором В утверждает, что он правдолюбец, а внутри
этого "мира" другой, в котором В действительно является правдолюбцем. Такие внедренные
"миры" образуют отдельное множество зависимостей, которое придется отслеживать с
помощью механизма обработки правдоподобия. Начнем с того, что модифицируем шаблон
объекта world и внесем в него информацию о том, является ли данный объект внешним или
внутренним, а если внутренним, то какой объект world является для него внешним.
В более сложных сценариях работы с "мирами" нам потребуется также отслеживать, был ли
данный объект world проанализирован полностью. Это упростит механизм выполнения отката.
;;Объект world представляет множество утверждений,
;;сформированных при определенном предположении
;;о правдивости или лживости высказывания,