Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретка / Книги / Галиев Ш.И. Математическая логика и теория алгоритмов (2002).pdf
Скачиваний:
2267
Добавлен:
25.02.2016
Размер:
7.49 Mб
Скачать

81

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

Существует много различных подходов к построению вывода с помощью метода резолюций. Рассмотрим некоторые из них: метод насыщения уровня, стратегию вычеркивания, лок-резолюцию и один метод для дизъюнктов специального вида.

Коль с головой ты в воду погрузился, Не все ли равно, какая глубина?

Дикаики (Услада Души, или Бахтияр-наме)

§ 4. Метод насыщения уровня

Ранее был введен метод резолюций и приведена теорема, утверждающая полноту метода резолюций. Пусть имеем множество дизъюнктов S={D1,D2,…,Dk}. Процедура получения бинарных резольвент неоднозначна, ибо можно сравнивать D1 и D2, затем D1 и D3 или как-то иначе. Рассмотрим метод насыщения уровня. Он состоит в вычислении всех резольвент всех пар дизъюнктов из S, добавлении этих резольвент к множеству S, вычислении всех следующих резольвент и повторении этого процесса, до тех пор пока не найдется пустой дизъюнкт . Это значит, мы порождаем S0,S1,S2,S3,…, где S0=S, а

Sn={резольвенты Dj и Dk: Dj ( S0 S1 … Sn-1), Dk Sn-1, j<k}, n=1,2,…

Чтобы запрограммировать этот метод на ЭВМ, мы можем сперва записать дизъюнкты S0 S1 Sn-1 затем вычислять резольвенты, сравнивая последовательно каждый дизъюнкт Dj (S0 S1 Sn-1) с каждым дизъюнктом Dk Sn-1, который расположен после Dj. Когда резольвента вычислена, она присоединяется к концу списка, порожденного к этому времени. Перейдем к реализации этого процесса для случая когда S={ P Q,

P Q, P Q, P Q}. S0: (1) P Q;

(2)P Q;

(3)P Q;

(4)P Q;

_____________________________ используемые дизъюнкты

S1: (5) Q

из (1) и (2);

(6)P из (1) и (3);

(7)Q Q из (1) и (4);

(8)P P из (1) и (4);

(9)Q Q из (2) и (3);

82

(10)P P из (2) и (3);

(11)P из (2) и (4);

(12)Q из (3) и (4);

_____________________________

S2: (13) P Q из (1) и (7);

(14)P Q из (1) и (8);

(15)P Q из (1) и (9);

(16)P Q из (1) и (10);

(17)Q из (1) и (11);

(18)P из (1) и (12);

(19)Q из (2) и (6);

(20)P Q из (2) и (7);

(21)P Q из (2) и (8);

(22)P Q из (2) и (9);

(23)P Q из (2) и (10);

(24)P из (2) и (12);

(25)P из (3) и (5);

(26)P Q из (3) и (7);

(27)P Q из (3) и (8);

(28)P Q из (3) и (9);

(29)P Q из (3) и (10);

(30)Q из (3) и (11);

(31)P из (4) и (5);

(32)Q из (4) и (6);

(33)P Q из (4) и (7);

(34)P Q из (4) и (8);

(35)P Q из (4) и (9);

(36)P Q из (4) и (10);

(37)Q из (5) и (7);

(38)Q из (5) и (9);

(39)из (5) и (12).

Было порождено много не относящихся к делу и лишних дизъюнктов. Например, (7), (8), (9) и (10) – тавтологии. Так как тавтология всегда истинна, то если мы вычеркиваем тавтологию из невыполнимого множества дизъюнктов, оставшееся множество все еще должно быть невыполнимо. Следовательно, тавтология есть не относящийся к делу дизъюнкт и не должна порождаться. Если же она порождается, то (за исключением очень немногих случаев) ее следует вычеркнуть. Далее дизъюнкты P, Q, P, Q порождаются неоднократно. Также имеются другие повторяющиеся дизъюнкты, см. (13) – (16), (20) – (23), (26) – (29) и (33) – (36). На самом деле,

чтобы получить доказательство для S, нам нужно породить дизъюнкты (5),

83

(12) и (39). Для сокращения избыточности рассмотрим стратегию вычеркивания.

Всякое ограничение осчастливливает. А. Шопенгауэр

§ 5. Стратегия вычеркивания

Дизъюнкт D называется поддизъюнктом D* (или D поглощает D*) если D является некоторой частью дизъюнкта D*. При этом D* называется

наддизъюнктом для D.

Пример. Пусть D=P, D*=P Q, Ясно, что D поддизъюнкт для дизъюнкта D*, а D* - наддизъюнкт для D.

Стратегия вычеркивания зависит от того, как вычеркиваются тавтологии и наддизъюнкты. Стратегия вычеркивания будет полной, если ее

использовать вместе с методом насыщения уровней следующим образом: сперва выписываются дизъюнкты (S0 S1 Sn-1) по порядку; затем вычисляются резольвенты путем сравнения каждого дизъюнкта Di (S0 S1 Sn-1) с дизъюнктом Dk Sn-1, который стоит после Di. Когда резольвента вычислена, она записывается в конце списка, как только она порождается, если она не тавтология и не поглощается каким-нибудь дизъюнктом из списка. В противном случае она вычеркивается. Очевидно, что при этом не выписывается повторно один и тот же дизъюнкт. Применим эту стратегию вычеркивания к примеру из § 4 и получим следующий список:

S0: (1) P Q,

(2)P Q,

(3)P Q,

(4)P Q,

______________________________

S1: (5) Q

из (1) и (2),

(6)P из (1) и (3),

(7)P из (2) и (4),

(8)Q из (3) и (4),

______________________________

S2: из (5) и (8).

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

Ясно, что необходимые вычисления не уменьшаются, а увеличиваются. Чтобы использовать стратегию вычеркивания, мы должны уметь решать, является ли полученный дизъюнкт тавтологией или является ли один из дизъюнктов поддизъюнктом другого.

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

84

резолюции может порождать много лишних и ненужных дизъюнктов наряду с полезными. Хотя можно использовать стратегию вычеркивания, чтобы выбросить некоторые из этих ненужных и бесполезных дизъюнктов после того, как они порождены, на их порождение уже потеряно время. Далее, если порождены бесполезные дизъюнкты, то нужны большие ресурсы машинного времени для того, чтобы определить, что эти дизъюнкты действительно лишние и ненужные. Поэтому для получения эффективных процедур доказательства теорем мы должны не допускать порождения большого числа бесполезных дизъюнктов. Имеются различные подходы к уменьшению вычислений, среди них: метод семантической резолюции; лок-резолюция; линейная резолюция и др. методы. Мы рассмотрим лок-резолюцию.

Хорошее вдвойне хорошо, если кратко. Бальтисар Грасман

§ 6. Лок-резолюция

Идея лок-резолюции состоит, по существу, в использовании индексов для упорядочения литер в дизъюнктах из данного множества S дизъюнктов. Иными словами она включает введение индексов для каждого вхождения литеры в S некоторым целым числом; разные вхождения одной и той же литеры могут быть индексированы по-разному. После этого отрезать (удалять) разрешается только литеры с наименьшим индексом в каждом из дизъюнктов. Литеры в резольвентах наследуют свои индексы из посылок. Если литера в резольвенте может унаследовать более одного индекса, то ей ставится в соответствие наименьший индекс.

Рассмотрим следующие два дизъюнкта

P Q, P Q.

Введем индексы, которые будем писать слева снизу от литеры:

(1) 1P 2Q,

(2) 3 P 4Q.

Так как индекс 1 в 1P меньше чем индекс 2 в 2Q, то разрешается отрезать 1P. В 3 P 4Q разрешается отрезать 3 P, так как 3<4. Таким образом, применяя правило резолюции к дизъюнктам (1) и (2) по 1P и 3 P мы получаем следующий дизъюнкт:

(3) 2Q 4Q.

Литера 2Q и 4Q одна и та же. Так как 2<4, то Q получает индекс 2, поэтому получаем

(4) 2Q.

Дизъюнкт (4) и является лок-резольвентной дизъюнктов (1) и (2). Отметим, что если бы литеры в дизъюнкте (2) были индексированы иначе, например, так:

(2*) 4 P 3Q ,

85

то литерой в дизъюнкте (2*), которою разрешено отрезать, была бы 3Q. Однако к 1P и 3Q нельзя применить правило резолюции. Поэтому не существует лок-резольвенты дизъюнктов (1) и (2*). Под лок-резолюцией понимается последовательное получение лок-резольвент из данного множества дизъюнктов и вновь получаемых дизъюнктов.

Рассмотрим множество S дизъюнктов, которое рассматривалось в §4:

P Q,

P Q,

P Q,

P Q.

Проведём следующую индексацию:

(1)

1P 2Q,

(2)

3P 4 Q,

(3)

6 P 5Q,

(4)

8 P 7 Q.

Из дизъюнктов (1) – (4) можно получить только одну лок-резольвенту

(5)

6 P из (3) и (4).

Из дизъюнктов (1) – (5) получаются только две лок-резольвенты:

(6)

2Q из (1) и (5),

(7)

4 Q из (2) и (5).

Применяя правила резолюции к дизъюнктам (6) и (7), мы получаем

(8) .

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

Отметим, что были порождены всего три лок-реольвенты. При использовании обычной (неограниченной) резолюции для получения были порождены 38 резольвент. Результативность лок-резолюции не зависит от того, как проиндексировать литеры в S. Введём в рассматриваемом примере индексы иначе, например, так:

(1)

1P 2Q,

 

(2)

3P 4 Q,

 

(3)

5 P 6Q,

 

(4)

7 P 8 Q.

 

Из (1) и (3) получим:

 

(5)

2Q.

 

Аналогично получим:

 

(6)

2Q 8 Q из (1) и (4),

(7)

6Q 4 Q из (2) и (3),

(8)

4 Q

из (2) и (4),

(9)

 

из (5) и (8).

Можно доказать следующую теорему о полноте лок-резолюции.