Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_РЛП_4_форм.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
644.61 Кб
Скачать

2.2.4.Стратегии метода резолюций

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

Алгоритм 4. Стратегия насыщения уровней (перебор вширь, полный перебор).

Вход: S – исходное упорядоченное множество дизъюнктов.

  1. S0=S, n=0.

  2. для n>0, если получены последовательности дизъюнктов S0, S1,…,Sn-1, последовательность Sn будет состоять из всевозможных резольвент дизъюнктов D1 и D2, где в качестве D2 берутся по порядку дизъюнкты из Sn-1, а в качестве D1 – дизъюнкты из S0,S1,…,Sn-1, предшествующие D2.

Пример 2.2.14.

S={XvY, ¬Xv¬Y, XvZ, ¬XvZ, ¬Z}:

S0:

1

XvY,

2

¬Xv¬Y,

3

XvZ,

4

¬XvZ,

5

¬Z,

S1:

6

Yv¬Y,

из (1) и (2),

т. истин.

7

Xv¬X,

из (1) и (2),

т. истин.

8

¬YvZ,

из (2) и (3),

9

YvZ,

из (1) и (4),

10

Z,

из (3) и (4),

11

X,

из (3) и (5),

12

¬X,

из (4) и (5)

S2:

13

XvY,

из (1) и (6),

уже был

14

¬Xv¬Y,

из (2) и (6),

уже был

15

XvY,

из (1) и (7),

уже был

16

¬Xv¬Y,

из (2) и (7),

уже был

17

XvZ,

из (3) и (7),

уже был

18

¬XvZ,

из (4) и (7),

уже был

19

XvZ,

из (1) и (8),

уже был

20

¬YvZ,

из (6) и (8),

уже был

21

¬XvZ,

из (2) и (9),

уже был

22

YvZ,

из (6) и (9),

уже был

23

Z,

из (8) и (9),

уже был

24

□.

из (5) и (10).

Мы видим, что порождено много лишних дизъюнктов. Удаление тождественно истинного дизъюнкта не влияет на выполнимость множества дизъюнктов. Некоторые дизъюнкты порождаются неоднократно. Их также можно удалить. В общем случае можно вычеркивать из вывода дизъюнкты, являющиеся расширениями уже имеющихся в выводе дизъюнктов.

Определение 2.2.13. Дизъюнкт D называется расширением дизъюнкта C, если существует подстановка σ такая, что σ(C)vQ =D.

Для логики высказываний это означает, что D=CvQ. Для логики предикатов приведем пример.

Пример 2.2.15.

D=Q(a)vP(b,y)vR(u) есть расширение дизъюнкта C=P(x,y)vQ(z)vQ(v).

Подстановка σ={x=b, z=a, v=a)}.

Пример 2.2.16.

Стратегия насыщения уровней с удалением лишних дизъюнктов дает более короткий вывод для примера. 2.2.14.

S0:

1

XvY,

2

¬Xv¬Y,

3

XvZ,

4

¬XvZ,

5

¬Z,

S1:

6

¬YvZ,

из (2) и (3),

7

YvZ,

из (1) и (4),

8

Z,

из (3) и (4),

9

X,

из (3) и (5),

10

¬X,

из (4) и (5)

S2:

11

□.

из (5) и (8).

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

Упражнение 2.2.6.

Доказать полноту стратегии полного перебора.

Упражнение 2.2.7.

Доказать полноту стратегии вычеркивания.

Указание: если D–расширение C, то DvCC. Воспользоваться результатом упражнения 2.2.6

Определение 2.2.14. Револьвентой дизъюнктов D1 и D2 называется одна из следующих бинарных револьвент:

  1. бинарная револьвента дизъюнктов D1 и D2,

  2. бинарная револьвента склейки D1 и дизъюнкта D2,

  3. бинарная револьвента дизъюнкта D1 и склейки D2,

  4. бинарная револьвента склейки D1 и склейки D2.

Определение 2.2.15. (Другое определение револьвенты):

пусть D1и D2 -дизъюнкты - множества литер и d1D1и d2D2 -подмножества литер,

пусть σ - наиболее общий унификатор множества d1¬d2 (¬d2 - множество литер, полученное из d2 –путем добавления отрицания к каждой литере, если она положительная, или снятия отрицания, если она отрицательная)

тогда револьвентой дизъюнктов D1 и D2 называется дизъюнкт - множества литер σ((D1\d1)(D2\d2)).

Пример 2.2.17.

Исходные дизъюнкты: ¬Q(a,f(x))v¬Q(a,f(y))vR(x), Q(u,z)v¬P(z). Т.е. D1={¬Q(a,f(x)), ¬Q(a,f(y)), R(x)}, D2={Q(u,z),¬P(z)}

Выводим револьвенты:

¬Q(a,f(y))vR(x)v¬P(f(x)) (d1={¬Q(a,f(x)) }, d2={Q(u,z) }, НОУ σ={u=a, z=f(x)}

¬Q(a,f(x))vR(x)v¬P(f(y)) (d1={¬Q(a,f(y)) }, d2={Q(u,z) }, НОУ σ={u=a, z=f(y)}

R(x)v¬P(f(x)) (d1={¬Q(a,f(x)), ¬Q(a,f(y)) }, d2={Q(u,z) }, НОУ σ={u=a, z=f(x), y=x}

Упражнение 2.2.8.

Исходные дизъюнкты: ¬Q(a,f(x))v ¬Q(a,f(y))v R(x), Q(u,f(x))vQ(u,z)v¬P(z). Сколько револьвент можно вывести? Найдите эти револьвенты.

Упражнение 2.2.9.

Доказать, что определения резольвенты 2.2.14 и 2.2.15 эквивалентны.

Алгоритм 5. Стратегия перебора в глубину.

Вход: S – исходное упорядоченное множество дизъюнктов, в каждом дизъюнкте литеры также упорядочены. Если из двух дизъюнктов выводимы несколько резольвент, то эти резольвенты также упорядочены.

  1. в качестве D1 берется последний дизъюнкт из S.

  2. в качестве D2 берется первый дизъюнкт из S.

  3. пока нет резольвент D1 и D2 и множество S не исчерпано выбирать в качестве D2 следующий по порядку дизъюнкт из S.

  4. если множество S исчерпано, то ВЫХОД(неудача)

  5. если есть резольвенты D1 и D2, то взять первую по порядку

  6. если взятая резольвента – пустой дизъюнкт, то КОНЕЦ РАБОТЫ(успех).

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

  8. применить описываемый алгоритм рекурсивно к множеству S1.

  9. если есть еще резольвенты D1 и D2, то взять следующую по порядку резольвенту D1 и D2, перейти к п. 6).

  10. если нет больше резольвент D1 и D2, то перейти к п. 3).

Пример 2.2.17.

Стратегия перебора в глубину дает следующий вывод для примера. 2.2.14.

1

XvY,

2

¬Xv¬Y,

3

XvZ,

4

¬XvZ,

5

¬Z,

6

X,

из (5) и (3),

рекурсивный вызов

7

¬Y,

из (6) и (2),

рекурсивный вызов

8

X,

из (7) и (1),

уже был

возврат к шагу 7

7

¬Y,

возврат,

резольвент нет

возврат к шагу 6

6

X,

возврат,

7

Z,

из (6) и (4),

рекурсивный вызов

8

□.

из (7) и (5)

КОНЕЦ РАБОТЫ (успех)