Резолюция

Робинсон пришел к заключению, что правила вывода, которые следует применять при автоматизации процесса доказательства при помощи компьютера, не обязательно должны совпадать с правилами вывода, используемыми человеком. Он обнаружил, что общепринятые правила вывода, например, правило modus ponens, специально сделаны "слабыми", чтобы человек смог интуитивно проследить за каждым шагом процедуры доказательства. Робинсон открыл более сильное правило вывода, которое он назвал резолюцией (или правилом резолюции). Это правило трудно под-даемся восприятию человеком, но эффективно реализуется на компьютере. (Правило резолюции сходно с дизъюнктивным правилом силлогизма, см. табл. 0. 2).

Правило резолюции оказывается особенно привлекательным для целей вычислений, так как оно само по себе является полным множеством правил вывода для фразовой формы логики предикатов. Иными словами, при использовании одного лишь правила резолюции возможно вывести любое следствие из множества аксиом, представленных во фразовой форме.

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

Правило резолюции действует следующим образом. Две фразы могут быть резольвированы друг с другом, если одна из них содержит позитивный литерал, а другая — соответствующий негативный литерал с одним и тем же обозначением предиката и одинаковым количеством аргументов, и если аргументы обоих литералов могут быть унифицированы (т. е. согласованы) друг с другом. Рассмотрим теорию, состоящую из двух фраз:

Р (а) V ~Q (b, c) (1)

Q (b, c) V ~R (b, c) (2)

Поскольку во фразе (1) содержится негативный литерал ~Q (b, с), а во фразе (2) — соответствующий позитивный литерал Q (b, с) и аргументы обоих литералов могут быть унифицированы (т. е. b унифицируется с b, а с унифицируется с с), то фраза (1) может быть резольвирована с фразой (2). В результате этого получится фраза (3), которая называется резольвентой. Она становится новой фразой теории:

P (a) V~R (b, c) (3)

После выполнения данной резолюции при последующих резолюциях можно воспользоваться любой из фраз (1), (2) и (3).

Фразы (4) и (5) не резольвируются друг с другом, так как аргументы литералов Q не поддаются унификации:

Р (а) V~Q (b, c) (4)

Q (c, c) V ~R (b, c) (5)

Унификация переменных

Во фразовой форме не употребляется явная квантификация переменных. Неявно, однако, все переменные квалифицированы кванторами существования. Так, во фразе

Q (x, y) V ~R (x, y)

подразумевается наличие кванторов:

xy (Q (x, y) V ~R (x, y))

Если в качестве аргумента выступает переменная, то она унифицируема с любой константой. Если в одной и той же фразе переменная встречается более одного раза и эта переменная в процессе резолюции унифицируется с константой, то резольвента будет содержать данную константу на тех местах, где рассматриваемая переменная располагалась в исходной фразе. К примеру, фразы

Р (а) V ~Q (a, b) (6)

Q (x, y) V~R (x, y) (7)

резольвируемы, поскольку аргументы литерала Q унифицируются. При этом переменная х унифицируется с константой а, а переменная у - с константой b. Обратите внимание, что во фразе (8), т. е. в резольвенте

P (a) V~R (a, b) (8)

переменные, служившие аргументами R во фразе (7), теперь заменены на константы.

Пустая фраза

Рассмотрим две фразы:

Р (а) (9)

~Р (а) (10)

Фраза (9) — это заключение без условий, а фраза (10) - это условие без заключения. Присутствие фраз (9) и (10) в одной теории является противоречием. Если фразы (9) и (10) резольвируются друг с другом, то получающаяся резольвента называется пустой фразой. Если при резолюции двух фраз, входящих в состав теории, получается пустая фраза, то эта теория должна быть непоследовательной. С позиций семантики возможность выведения пустой фразы означает, что нельзя построить хербрандовскую модель этой теории.

Алгоритм, основанный на резолюции

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

Предположим, что теория выражена во фразовой форме. Все фразы этой теории, за исключением одной, совместимы друг с другом. Наличие этой искомой фразы превращает всю теорию в непоследовательную. Представим себе, что существует некоторая активная сила (человек или машина), которая по случайному закону применяет правило резолюции по отношению к фразам теории. После каждого выполнения резолюции получающаяся резольвента добавляется в теорию. Если будет сгенерирована пустая фраза, то это будет означать, что теория непоследовательна, и тогда эта активная сила прекратит свои действия. Поскольку рассматриваемая теория действительно является непоследовательной, активная сила, рано или поздно, сгенерирует пустую фразу и тем самым обнаружит непоследовательность теории. Однако многие из резолюций будут либо избыточными, либо не относящимися к искомой фразе. Для создания эффективного алгоритма обнаружения непоследовательности теории необходимо наложить ограничения на данный процесс и направить его активность на участки, которые с наибольшей вероятностью могут привести к появлению пустой фразы.

При использовании правила резолюции применима более чем одна стратегия решения задач. В оставшейся части данного раздела будет рассмотрена нисходящая (или обратная) стратегия. В этой стратегии ставится цель обнаружить, является ли единственная фраза С следствием существующего множества фраз Т. Предполагается, что множество фраз Т является непротиворечивым. Алгоритм работает следующим образом. Вначале к существующему множеству фраз добавляется отрицание проверяемой фразы ~С. При этом образуется новое множество фраз Т', состоящее из множества Т плюс фраза ~С. Если алгоритм позволит вывести пустую фразу из Т' то Т* будет непоследовательным из-за присутствия фразы ~С, и поэтому С должно являться следствием Т. Этот процесс можно проиллюстрировать примером.

Пример резолюции нисходящим методом

Пусть имеется множество фраз

P (a) V~Q (a, b) (6)

Q (x, y) V~R (x, y) (7)

S (b) (11)

R (a, b) (12)

Необходимо выяснить, является ли фраза

Р (а) (13)

следствием существующего множества фраз. На первом шаге добавим к остальным фразам отрицание фразы Р (а). В результате этого получим:

P (a) V~Q (a, b) (6)

Q (x, y) V~R (x, y) (7)

S (b) (11)

R (a, b) (12)

~Р (а) (14)

Действие данного алгоритма резолюции будет сфокусировано на следствиях добавления фразы (14) к существующему множеству фраз. Это достигается при помощи двух правил:

1) в первой выполняемой резолюции следует использовать только что добавленное отрицание фразы (т. е. фразу (14));

2) в каждой последующей резолюции должна участвовать резольвента предыдущей резолюции (это предотвращает бесцельное "блуждание" алгоритма).

В соответствии с первым правилом в первой резолюции должна принимать участие фраза (14). Она резольвируется с фразой (6), в результате чего получится:

~Q (a, b) (15)

Согласно правилу 2) в следующей резолюции должна участвовать фраза (15). Эта фраза резольвируется с фразой (7). Результатом будет фраза

~R (a, b) (16)

(Обратите внимание, что все переменные из исходной для R формулы заменены во фразе (16) на константы.) Фраза (16) резольвируется с фразой (12), что приводит к образованию пустой фразы. Это означает, что обнаружено противоречие. Ввиду того, что добавление ~Р (а) к существующему множеству фраз приводит к противоречию, Р (а) является следствием множества фраз.

Стратегия решения задач

Описанная только что стратегия решения задач характеризуется следующими свойствами. Эта стратегия является нисходящей, так как она начинает процесс решения с отрицания заключения (т. е. с фразы ~Р (а)), а далее в процессе решения используются остальные фразы теории, что продолжается до тех пор, пока не будет выведена пустая фраза. Данная стратегия решения называется стратегией поиска "сначала вглубь", поскольку результат последней резолюции всегда используется в следующей за ней резолюции.

Соседние файлы в папке Гл.0,1,2,3,4,5,Предисловие