Дмитриева Марина Валерьевна Павлова Марианна Владимировна
ФАКУЛЬТАТИВНЫЙ КУРС "СИСТЕМА АВТОМАТИЗАЦИИ ПРОЦЕССА РЕШЕНИЯ ЗАДАЧ
Часть 2. Построение доказательства
В первой части данной статьи [9] мы обсудили некоторые способы решения задач, в которых требуется определить, следует ли утверждение в из известных фактов Р1,Р2,....,Рт. По теореме 2 о логическом следствии для решения этого вопроса нам достаточно определить, является ли формула Б: Р1&Р2&...Рт&~0 противоречивой. Формула Р не обязана находиться в конъюнктивно- нормальной форме. Но известно, что по формуле И может быть построена равнозначная ей формула 8, находящаяся в конъюнктивно-нормальной форме. Формула 5 имеет вид Б: 81&82&...&8п, где 81- дизъюнкты. Мы будем рассматривать в дальнейшем множество дизъюнктов 8={81,82,...,8п}. Все утверждения 81 имеют простую форму. Нам надо уметь от известных рассуждений 81 и 8] переходить к некоторому новому утверждению Бк.
Введем правило резолюции, согласно которому по двум дизъюнктам можно получать третий. Напомним, что литералом называется атом или его отрицание. Если у нас есть два дизъюнкта и один из них содержит литерал Ь, а другой - литерал ~Ь, то мы можем рассмотреть дизъюнкт, который содержит литералы первого за исключением литерала Ь, и литералы второго за исключением ~Ь. Такой дизъюнкт называется резольвентой первых двух. Например, если первый дизъюнкт ~AvC, второй ~ОЛ), то резольвентой будет формула Если первый дизъюнкт состоит из одного литерала А, а второй из литерала ~А, то их резольвентой будет тождественно- ложный дизъюнкт, который, как уже говорилось, принято обозначать символом □._
Теорема (о резольвенте). Резольвента двух дизъюнктов является их логически! I следствием. _ _
Резольвента позволяет переходить от двух рассуждений к третьему, а теорема о резольвенте гарантирует, что если исходные утверждения были истинными, то истинным будет и построенное утверждение, то есть резольвента.
Понятие вывода - формализованный аналог понятия доказательства. Рассмотрим множество дизъюнктов 8. Выводом в в называется последовательность дизъюнктов 01,02,...0М, где каждый 0=1,2,...Ы) либо из 8, либо является резольвентой предыдущих О] и Эк (¡<1, к<а). Если последний дизъюнкт эквивалентен тождественно-ложной формуле, то такой вывод называется опровержением. Таким образом, вывод в методе резолюций является последовательностью рассуждений, где каждое рассуждение следует из двух предыдущих. Опровержение- последовательность рассуждений, приводящая к ложному утверждению (пустому дизъюнкту).
Теорема (о полноте метода резолюций). Множество дизъюнктов 8 противоречив тогда и только тогда, когда можно построить опровержение в 8.
Таким образом, для того, чтобы определить, является ли множество дизъюнктов гсстиворечивым, достаточно найти такую последовательность рассуждений, где каждое :._:>ждение следует из двух ранее рассмотренных, и которая приводит к тождественно-« ному утверждению.
В качестве примера вывода в методе резолюций рассмотрим задачу из [5].
Пример. "Инспектор Крег стремится при помощи логических рассуждений установить истину. Рассматривается дело, в котором четверо подсудимых: А,В,С и О.
1. Если А виновен, то В был соучастником (и, следовательно, виновен);
2. Если В виновен, то либо С был соучастником, либо А не виновен;
3. Если Б не виновен, то А виновен и С не виновен;
4. Если Б виновен, то А виновен.
Спрашивается, виновен ли О?"
Предположим, что через А обозначается высказывание "А- виновен"; через В: "В-шяовен"; через С: "С- виновен"; и, наконец, через Б: "Б- виновен", Запишем каждое из "зерждений формулой исчисления высказываний:
Р1: А=>В
¥2-, В=> ~AvC
РЗ: А&-С
Р4: 0=>А
Требуется выяснить, следует ли утверждение Э: "О виновен" из этих четырех. По "тореме 2 нам достаточно исследовать на противоречивость следующую формулу Р: В)&(B=>~AvC)&(~D=i> А&~С)&( 0=>А)&
Приведем формулу Б к КНФ. Получим множество Б, состоящее из шести дизъюнктов 51,52,83,84,55 и 56.
8: {~AvB, ~Bv~AvC, АуЭ, ЧЭУА, -Э}.
По теореме о полноте метода резолюций, для того чтобы установить противоречивость 8, достаточно построить опровержение в 8. Одно из опровержений может быть - «дующим:
57: ~AvC, резольвента 81 и 82;
88: А, резольвента 83 и 86;
89: ~С, резольвента 84 и 86;
810: С, резольвента 87 и 88;
811: □, резольвента 89 и 810;
Процесс построения такой последовательности рассуждений (или вывода) можно ^автоматизировать. Однако очевидно, что при построении вывода в общем случае требует-->: просмотр большого числа вариантов. Поэтому в системе реализована так называемая шейная резолюция. Линейная резолюция проще обычной и позволяет автоматизировать процесс поиска решения, причем линейную резолюцию можно эффективно реализовать. По-прежнему, рассматривается множество дизъюнктов 8 и берется какой-либо дизъюнкт СО из 5, называемый верхним. Строится линейный вывод дизъюнкта СЫ, обладающий гвойствами:
1) для 1=1,2,...,N-1 С1+1 есть резольвента дизъюнкта называемого центральным и В:, называемого боковым.
2) каждый В1 либо из 8, либо есть С] для некоторого
Опровержение, которое было приведено для примера, не является линейным. Построим линейный вывод для нашего множества дизъюнктов 8.
87: ~AvC, резольвента 81 и 82;
Рисунок 1.
58: С^О, резольвента 87 и 83. 89: Б, резольвента 88 и 84; 810: □, резольвента Б9 и 86. В этом выводе в качестве верхнего дизъюнкта взят дизъюнкт 81 дизъюнкты 87,88,89,810 являютс. центральными, дизъюнктк 82,83,84,86 - боковыми.
На рис. 1 и рис. 2 изображены схематично два последних построенных вывода.
Предположим, что мы выбрали некоторый дизъюнкт СО, теперь можно выделить все возможные боковые дизъюнкты. После применения резолюции к СО с этими боковыми дизъюнктами мы получаем резольвенты 13.1,112,...ДМ. Каждый г: дизъюнктов Ш является возможным центральным дизъюнктом, который может привести к доказательству. Если на этом шаге опровержение получить не удалось то процесс повторяется. Такой метод называется методом поиска доказательства в ширину. В нашем примере, если в качестве верхнего дизъюнкта выбрали 81, тогда боковыми дизъюнктами могут быть: 82,83,85.
Построим резольвенту для каждой из пар (81,82), (81,83), (81,85) и получим кандидатов на следующий центральный дизъюнкт. Если какая-либо резольвента пуста, опровержение построено и задача решена, в противном случае процесс повторяется.
Другой путь поиска доказательства - это метод поиска в глубину, то есть на кажлок-уровне дерева берется одна вершина и осуществляется переход к вершине более низкогс уровня. В нашем примере при поиске в глубину поступаем следующим образом: если верхний дизъюнкт 81, боковой - 82, то строится резольвента 87, она является центральным дизъюнктом для следующего шага и для нее ищем боковой дизъюнкт, в нашем случае - это дизъюнкт 83, и т.д. При поиске в глубину следует задать границу поиска, чтобы предотвратить поиск доказательства по неверному пути, то есть по пути, который не может привести к пустому дизъюнкту. В первой версии системы реализовано два метода. Сначала осуществляется построение решения методом поиска в ширину, тем самым построен самый короткий вывод, затем, задав глубину поиска, делается попытка отыскать решение методом поиска в глубину. Для каждого из этих методов требовалось фиксировать некоторые характеристики самого вывода и время
поиска. Рисунок 2.
Рассмотрим еще одну задачу. Задача получила название "Загадочный обвинитель". — гг в следующем. На острове рыцарей и лжецов за совершение преступления судили иг ; местных жителей X и У. Дело необычное, так как об обвинителе было известно, ч то ж жю рыцарь, либо лжец. На суде обвинитель сделал два следующих заявления: X виновен. 2. X и У не могут быть виновны оба.
К какому заключению вы бы пришли на месте присяжных? Кто же обвинитель: ¡ыифь или лжец?
Предположим, что мы хотим доказать, что обвинитель рыцарь. Пусть Я обозначает " Нет ждение "Обвинитель - рыцарь", Х- "X виновен " и У- "У виновен". Тогда известные •иты можно записать следующим образом: Б1: И<=> X
Р2: К»(Х&~УУ~Х&У)
Логическое следствие- утверждение Я. По теореме 2 строим формулу: К<=>Х)&(Я<=>(Х&~Уу~Х&У))&~К. Привести эту форму к КНФ, получить множе-дитьюнктов и построить опровержение читателю предоставляется самостоятельно.
Сокращение множества дизъюнктов.
Мы исследуем вопрос, является ли противоречивым множество дизъюнктов 8. Од-.шжэ это множество может быть достаточно велико, поэтому искать вывод из большого «тожества дизъюнктов может быть затруднительно. Возникает вопрос, можно ли как-- > г дь это множество сократить? Девис и Патнем в [4] предложили несколько правил, к : трые позволяют сократить исходное множество дизъюнктов.
Правило тавтологии. Из множества Б можно вычеркнуть все дизъюнкты, которые яапяются тавтологиями. Оставшееся множество дизъюнктов противоречиво тогда и только тогда, когда противоречиво множество Б.
Правило однолитерных дизъюнктов. Если в множестве 5 есть единичный дизъюнкт - литерал Ь, то мы можем поступить так: построить множество дизъюнктов 7, которое получается из исходного Б вычеркиванием всех дизъюнктов, содержащих литерал Ь. Если при этом окажется, что полученное множество 7 пусто, то это означает, что множество Б не противоречиво, или, другими словами, доказательство можно не искать, так как его не существует. В том, что Б не противоречиво, нетрудно убедиться, достаточно взять интерпретацию, в которой истинен литерал Ь. Если же множество 7 не пусто, то построим по нему множество Т, вычеркнув из дизъюнктов множества 7 все литералы ~Ь. Можно доказать, что множество Б противоречиво тогда и только тогда, когда множество Т противоречиво. В множестве Т дизъюнктов и литералов меньше, чем в исходном множестве Б.
Рассмотрим пример, который мы уже рассматривали: Б={ ~AvB,~Av~BvC,AvD,~CvD,Av~D,~D}
Мы уже установили, что множество Б противоречиво, построив опровержение в 8. Так как в Б есть единичный дизъюнкт -Э, то к Б можно применить правило единичного дизъюнкта. Сначала вычеркнем из множества Б все дизъюнкты, содержащие литерал -О. Получим множество дизъюнктов 71:
71={ -^В.-^-^С^О.-СуИ }
Так как множество 71 не пусто, то из оставшихся дизъюнктов вычеркнем литерал О. получим множество Т1: Т1={ ~AvB,~Av~BvC,A,~C}. Множество Т1 содержит мень-
ше литералов и меньшее число дизъюнктов, чем исходное множество S. В дальнейшем можно исследовать множество Т1.
Правило чистых литералов. Литерал L называется чистым литералом, если в S не входит литерал -L. Если L- чистый литерал, то вычеркиваем из S все дизъюнкты, содержащие L. Оставшееся множество дизъюнктов обозначим через S1. Множество дизъюнктов S1 противоречиво тогда и только тогда, когда противоречиво множество S.
Пример. S={AvBvC, AvBv~C , ~В, ~С}. Чистый литерал - А. Множество после применения правила чистого литерала: S1={~B, ~С}.
Правило расщепления. Пусть множество S можно представить в виде S={А1 vL,...,AmvL, Blv~L,..„ Bkv~L, Rl,...,Rq},
причем Ai, Bi, Ri не содержат ни L, ни ~L. Рассмотрим два множества
Sl = {Al, А2,..„ Am, Rl,..„ Rq}; S2={B1, B2,..., Bk, R1...... Rq}
Множество S противоречиво тогда и только тогда, когда S1 и S2 противоречивы.
Пример. Рассмотрим множество дизъюнктов S и применим к нему правило растепления по литералу А.
S={^AvB, ~А v~BvC, AvD, Dv~C, Av~D, ~D] Полученные множества
S1={B, ~BvC, Dv~C, ~D); S2= {D, ~D, Dv~C}
Множество SI противоречиво. Доказать это можно, построив, например, опровержение
S5: С -резольвента дизъюнктов В и ~BvC S6: D -резольвента дизъюнктов С и Dv~C S5: □ -резольвента дизъюнктов D и -D
Множество S2 противоречиво, так как опровержение строится по дизъюнктам D и -D
В некоторых случаях удается решить задачу, используя лишь правила сокращен;'* дизъюнктов. Продемонстрируем такую возможность при решении следующей задачи.
Перед нами три девушки: Сью, Марция и Диана. Предположим, что известно сле_г.~
ющее:
1) Я люблю, по крайней мере, одну из этих трех девушек.
2) Если я люблю Сью, а не Диану, то я также люблю Марцию.
3) Я либо люблю Диану и Марцию, либо не люблю ни одну из них.
4) Если я люблю Диану, то я также люблю Сью. Люблю ли я Диану?
Запишем формулами четыре высказывания и предполагаемое следствие.
Fl: CvMvD
F2: C&~D=>M
F3: D&Mv~D&~M
F4:D=>C
G:D
Формулу (CvMvD)&(C&~D=>M)&(D&Mv~D&~M)&(D=>C)&~D приведем к к: юнктивно - нормальной форме, получим интересующее нас множество дизъюн* S={CvMvD, -CvMvD, Mv~D, ~MvD, ~DvC, ~D}. В множестве S есть единичный л
применяем правило единичного дизъюнкта к получаем множество {С^М, М В построенном множестве опять есть единичный дизъюнкт ~.М. После прибавила единичного дизъюнкта к этому множеству получаем {С, -С}. В после-РН* *>: »слггве также есть единичный дизъюнкт, после применения правила получаем ■гнвое множество, следовательно, и исходное множество Б противоречиво, то " :гнческое следствие. Для демонстрации методов мы специально выбираем про-■шимеры. более сложные примеры "поручим" решать системе поиска доказательств, которой приведем в заключительной третьей части.
кицинура.
г^яльсон. Принципы искусственного интеллекта. - М.: Радио и связь, 1985. Зкльсон. Искусственный интеллект. Методы поиска решений. - М.: Мир, 1973. Математическая логика. - М.: Мир, 1973. РЛи. Математическая логика и автоматическое доказательство теорем. - М.:
г Как же называется эта книга? - М.: Мир, 1981. ■ан. Принцесса или тигр? - М.: Мир, 1985. шов. Алиса в стране смекалки. - М.: Мир, 1987. досовский. Элементы математической логики и ее применение к теории
5ных алгоритмов. - Л.: Изд-во ЛГУ, 1981. 2«итрнева, М.В. Павлова. Система автоматизации процесса решения задач. Часть I. ■иг Компьютерные инструменты в образовании." №2, 1998.
ИЬшжттгггт Марина Валерьевна, ■ншшт *афедры информатики 1етербургского щ—рстиенного университета.
Марианна Владимировна, ш преподаватель кафедры шки СПбГУ, преподаватель
тжшв-лыцея № 419.
!
НАШИ АВТОРЫ