Правило резолюций

Материал из testwiki
Версия от 02:16, 18 октября 2022; imported>Mikhail Ryazanov (Литература: пунктуация)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Пра́вило резолю́ций — это правило вывода, восходящее к методу доказательства теорем через поиск противоречий; используется в логике высказываний и логике первого порядка. Правило резолюций, применяемое последовательно для списка резольвент, позволяет ответить на вопрос, существует ли в исходном множестве логических выражений противоречие. Правило резолюций предложено в 1930 году в докторской диссертации Жака Эрбрана для доказательства теорем в формальных системах первого порядка. Правило разработано Джоном Аланом Робинсоном в 1965 году.

Алгоритмы доказательства выводимости AB, построенные на основе этого метода, применяются во многих системах искусственного интеллекта, а также являются фундаментом, на котором построен язык логического программирования «Пролог».

Исчисление высказываний

Пусть C1 и C2 — два предложения в исчислении высказываний, и пусть C1=PC'1, а C2=¬PC'2, где P — пропозициональная переменная, а C'1 и C'2 — любые предложения (в частности, может быть, пустые или состоящие только из одного литерала).

Правило вывода

C1,C2C'1C'2

называется правилом резолюций.[1]

Предложения C1 и C2 называются резольвируемыми (или родительскими), предложение C'1C'2 — резольвентой, а формулы P и ¬P — контрарными литералами. В общем в правиле резолюции берутся два выражения и вырабатывается новое выражение, содержащее все литералы двух первоначальных выражений, за исключением двух взаимно обратных литералов.

Метод резолюции

Доказательство теорем сводится к доказательству того, что некоторая формула G (гипотеза теоремы) является логическим следствием множества формул F1,,Fk (допущений). То есть сама теорема может быть сформулирована следующим образом: «если F1,,Fk истинны, то истинна и G».

Для доказательства того, что формула G является логическим следствием множества формул F1,,Fk, метод резолюций применяется следующим образом. Сначала составляется множество формул {F1,,Fk,¬G}. Затем каждая из этих формул приводится к КНФ (конъюнкция дизъюнктов) и в полученных формулах зачеркиваются знаки конъюнкции. Получается множество дизъюнктов S. И, наконец, ищется вывод пустого дизъюнкта из S. Если пустой дизъюнкт выводим из S, то формула G является логическим следствием формул F1,,Fk. Если из S нельзя вывести #, то G не является логическим следствием формул F1,,Fk. Такой метод доказательства теорем называется методом резолюций.

Рассмотрим пример доказательства методом резолюций. Пусть у нас есть следующие утверждения:

«Яблоко красное и ароматное».
«Если яблоко красное, то яблоко вкусное».

Докажем утверждение «яблоко вкусное». Введём множество формул, описывающих простые высказывания, соответствующие вышеприведённым утверждениям. Пусть

X1 — «Яблоко красное»,
X2 — «Яблоко ароматное»,
X3 — «Яблоко вкусное».

Тогда сами утверждения можно записать в виде сложных формул:

X1X2 — «Яблоко красное и ароматное».
X1X3 — «Если яблоко красное, то яблоко вкусное».

Тогда утверждение, которое надо доказать, выражается формулой X3.

Итак, докажем, что X3 является логическим следствием (X1X2) и (X1X3). Сначала составляем множество формул с отрицанием доказываемого высказывания; получаем

{(X1X2),(X1X3),¬X3}.

Теперь приводим все формулы к конъюнктивной нормальной форме и зачеркиваем конъюнкции. Получаем следующее множество дизъюнктов:

{X1,X2,(¬X1X3),¬X3}.

Далее ищем вывод пустого дизъюнкта. Применяем к первому и третьему дизъюнктам правило резолюции:

{X1,X2,(¬X1X3),¬X3,X3}.

Применяем к четвёртому и пятому дизъюнктам правило резолюции:

{X1,X2,(¬X1X3),¬X3,X3,#}.

Таким образом пустой дизъюнкт выведен, следовательно выражение с отрицанием высказывания опровергнуто, следовательно само высказывание доказано.

Полнота и компактность метода

Правило резолюции обладает свойством полноты в том смысле, что с помощью него всегда можно вывести из S пустой дизъюнкт #, если исходное множество дизъюнктов S является противоречивым.

Отношение выводимости (из-за конечности вывода) является компактным: если S#, то существует такое конечное подмножество SS, что S#. Поэтому предварительно нужно доказать, что отношение невыполнимости является компактным.

Лемма. Если каждое конечное подмножество SS имеет выполняющую оценку, то имеется выполняющая оценка для всего множества дизъюнктов S.

Доказательство. Предположим, что в S встречаются дизъюнкты, использующие счетное множество пропозициональных переменных p1,,pk,. Построим бесконечное двоичное дерево, где из каждой вершины на высоте k выходят два ребра, помеченное литералами ¬pk+1 и pk+1 соответственно. Удалим из этого дерева те вершины, литералы по пути в которые образуют оценку, противоречащую хотя бы одному дизъюнкту S.

Для каждого k рассмотрим конечное подмножество SkS, состоящее из дизъюнктов, не содержащих переменных pk+1,pk+2,. По условию леммы найдётся такая оценка переменных p1,,pk (или путь до вершины на уровне k+1 обрезаном дереве), что она выполняет все дизъюнты из Sk. Значит, обрезанное дерево бесконечно (то есть содержит бесконечное множество вершин). По лемме Кёнига о бесконечном пути обрезанное дерево содержит бесконечную ветвь. Этой ветви соответствует оценка всех переменных p1,,pk,, которая делает истинными все дизъюнкты из S. Что и требовалось.

Теорема о полноте метода резолюций для логики высказываний

Теорема. Множество дизъюнктов S противоречиво тогда и только тогда, когда существует опровержение в S (или из S).

Доказательство. Необходимость (корректность метода резолюций) очевидна, так как пустой дизъюнкт не может быть истинен ни при какой оценке. Приведём доказательство достаточности. По лемме о компактности достаточно ограничиться случаем конечного числа пропозициональных переменных. Проводим индукцию по числу пропозициональных переменных n, встречающихся хотя бы в одном дизъюнкте из S. Пусть теорема полноты верна при n=k, докажем её истинность при n=k+1. Другими словами, покажем, что из любого противоречивого множества S дизъюнктов, в котором встречаются пропозициональные переменные p1,,pk+1, можно вывести пустой дизъюнкт.

Выберем любую из k+1 пропозициональных переменных, например, pk+1. Построим по S два множества дизъюнктов Sk+1+ и Sk+1. В множество Sk+1+ поместим те дизъюнкты из S, в которых не встречается литерал ¬pk+1, причем из каждого такого дизъюнкта удалим литерал pk+1 (если он там встречается). Аналогично, множество Sk+1 содержит остатки дизъюнктов S, в которых не встречается литерал pk+1, после удаления литерала ¬pk+1 (если он в них встречается).

Утверждается, что каждое из множеств дизъюнктов Sk+1+ и Sk+1 является противоречивым, то есть не имеет выполняющей все дизъюнкты одновременно оценки. Это верно потому, что из оценки ρ+, выполняющей все дизъюнкты множества Sk+1+ одновременно, можно построить оценку ρ+[ρ(pk+1)=0], одновременно выполняющей все дизъюнкты множества S. То, что эта оценка выполняет все опущенные при переходе от S к Sk+1+ дизъюнкты, очевидно, ибо эти дизъюнкты содержат литерал ¬pk+1. Остальные дизъюнкты S выполняются по предположению, что оценка ρ+ выполняет все дизъюнкты множества Sk+1+, а, значит, и все расширенные (путём добавления выброшенного литерала pk+1). Аналогично, из оценки ρ, выполняющей все дизъюнкты множества Sk+1 одновременно, можно построить оценку ρ[ρ(pk+1)=1], одновременно выполняющей все дизъюнкты множества S.

По предположению индукции из противоречивых множеств дизъюнктов Sk+1+ и Sk+1 (так как в каждом из них встречаются только k пропозициональных переменных p1,,pk) имеются выводы пустого дизъюнкта. Если мы восстановим опущенный литерал pk+1 для дизъюнктов множества Sk+1+ в каждом вхождении вывода пустого дизъюнкта, то получим вывод дизъюнкта, состоящего из одного литерала pk+1. Аналогично из вывода пустого дизъюнкта из противоречивого множества Sk+1 получаем вывод дизъюнкта, состоящего из одного литерала ¬pk+1. Осталось один раз применить правило резолюции, чтобы получить пустой дизъюнкт. Что и требовалось доказать.

Исчисление предикатов

Пусть C1 и C2 — два предложения в исчислении предикатов.

Правило вывода

C1,C2(C'1C'2)σR

называется правилом резолюции в исчислении предикатов, если в предложениях C1 и C2 существуют унифицированные контрарные литералы P1 и P2, то есть C1=P1C'1, а C2=¬P2C'2, причём атомарные формулы P1 и P2 являются унифицируемыми наиболее общим унификатором σ.

В этом случае резольвентой предложений C1 и C2 является предложение (C'1C'2)σ, полученное из предложения C'1C'2 применением унификатора σ.[2]

Однако вследствие неразрешимости логики предикатов первого порядка для выполнимого (непротиворечивого) множества дизъюнктов процедура, основанная на принципе резолюции, может работать бесконечно долго. Обычно резолюция применяется в логическом программировании в совокупности с прямым или обратным методом рассуждения. Прямой метод (от посылок) из посылок А, В выводит заключение В (правило modus ponens). Основной недостаток прямого метода рассуждения состоит в его ненаправленности: повторные применения метода обычно приводят к резкому росту промежуточных заключений, не связанных с целевым заключением.

Обратный метод (от цели) является направленным: из желаемого заключения В и тех же посылок он выводит новое подцелевое заключение А. Каждый шаг вывода в этом случае всегда связан с первоначально поставленной целью.

Существенный недостаток принципа резолюции заключается в формировании на каждом шаге вывода множества резольвент — новых дизъюнктов, большинство из которых оказываются лишними. В связи с этим разработаны различные модификации принципа резолюции, использующие более эффективные стратегии поиска и различного рода ограничения на вид исходных дизъюнктов.

Ссылки

Шаблон:Примечания

Литература

  1. Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем, с. 77.
  2. Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем, с. 85.