Библиотека >> К онтологии сознания через рефлексию
Скачать 164.78 Кбайт К онтологии сознания через рефлексию
Н. Ф. (далее ДНФ);
n блок упрощения ДНФ; n блок работы собственно обратного метода. Продемонстрируем работу каждого блока подробнее. Обратный метод С.Ю. Маслова работает с формулой, представленной в виде дизъюнктивной нормальной формы (ДНФ), поэтому необходимо преобразование введенной формулы. Блок перевода в ДНФ строит по древесному представлению формулы ее ДНФ по оригинальному алгоритму, более подробно изложенному в [19, 20]. Главное отличие данного метода от других алгоритмов в том, что он не строит полноценную ДНФ, а строит свернутую форму ДНФ — свертку ДНФ. Результат работы этого алгоритма (первого блока программы) можно продемонстрировать на простом примере (пример 1). Пусть нам дана следующая формула (aЪb) & (~aЪbЪ~c). Здесь знак ~ обозначает отрицание, & — конъюнкцию, Ъ — дизъюнкцию. При применении стандартного алгоритма, использующего правила де Моргана получим следующую ДНФ D1: (a&~a) Ъ (a&b) Ъ (a&~c) Ъ (b&~a) Ъ (b&b) Ъ (b&~c). При применении нашего оригинального алгоритма мы получим следующую свертку ДНФ: ~c (с 1 (с шагом 3) до 6) b (с 2 (с шагом 3) до 6) ~a (с 3 (с шагом 3) до 6) b (с 1 до 3) a (с 4 до 6) Первая запись свертки ДНФ означает следующее. Литера ~c (литера с отрицанием) встречается в первом дизъюнкте, и далее она встречается в каждом последующем третьем дизъюнкте (в каждом последующем дизъюнкте с шагом 3) до дизъюнкта не превышающего номера 6 (можно отметить, что представленная выше свертка ДНФ показывает, что число дизъюнктов данной ДНФ не более 6), т.е. литера ~c встречается в дизъюнктах 1 и 4, а следующий третий дизъюнкт имеет номер 4+3=7, который больше 6, что свидетельствует о том, что литера ~c не встречается более в данной ДНФ (соответственно вторая (третья) строка свертки означает, что литера b (~a) встречается во втором (третьем) дизъюнкте, и далее она встречается в каждом последующем третьем дизъюнкте, т.е. в дизъюнкте 5 (6). Четвертая (пятая) запись свертки a(4 до 6) [b (с 1 до 3)] означает, что литера a [b] встречается в дизъюнктах с 4 по 6 [c 1 по 3] включительно. Тем самым, представленную выше свертку ДНФ можно развернуть в полноценную ДНФ следующего вида: (b&~c) Ъ (b&b) Ъ (b&~a) Ъ (a&~c) Ъ (a&b) Ъ (a&~a), что с точностью до перестановки дизъюнктов совпадает с D1, построенной с помощью стандартного преобразования формул в ДНФ . Для наглядности описания двух последующих блоков программы (блока упрощения ДНФ и блока работы собственно обратного метода) рассмотрим еще один пример (пример 2), с помощью которого попробуем рассказать о наиболее существенных моментах работы алгоритма. Пример 2. Пусть необходимо проверить формулу D2 : ~c Ъ (b&a) Ъ (~a&c&d) Ъ (~b&~d) Ъ (~b&d) Ъ (~a&c&~d ) Ъ (~c&x&y) Отметим, что эта формула представляет собой ДНФ и поэтому в данном случае можно опустить работу первого блока (см. пример 1). Блок упрощения опирается на [20] и производит следующие действия: 1. Если в ДНФ имеются однолитерные дизъюнкты (ОД) p и ~p, то ДНФ общезначима; 2. Если некоторая переменная входит в ДНФ с одним знаком, то удаляем все дизъюнкты, содержащие эту переменную; 3. Если в ДНФ имеется какой-то однолитерный дизъюнкт p то выполняем следующие действия: · удаляем все дизъюнкты вида p & … (правило поглощения); · все дизъюнкты вида ~p & s & … заменяем на дизъюнкты вида s & …, а после этого удаляем сам однолитерный дизъюнкт p (правило удаления однолитерных дизъюнктов). В нашем случае, поскольку в D2 переменные x и y входят только положительно, то по правилу 2 исключаем из рассмотрения дизъюнкт 7; а поскольку в D2 имеется однолитерный дизъюнкт ~c, то по правилу 3 из третьего и шестого дизъюнктов удаляется литера c, а потом первый дизъюнкт удаляется из формулы. В итоге имеем формулу D 2.1: (~a&d) Ъ (b&a) Ъ (~a&~d ) Ъ (~b&~d) Ъ (~b&d) После этого начинает работу блок обратного метода. Прежде чем описать его работу, изложим вкратце суть метода. Обратный метод оперирует с наборами. Набор имеет вид [i/k, j/l, …] (m, n, …), где i, j, … — номера дизъюнктов в ДНФ, а k, l — номера литер в i и j дизъюнктах соответственно. Числа m, n образуют зависимость набора и представляют собой номера дизъюнктов. В программе есть база данных, в которой хранятся все наборы. Эту базу в дальнейшем мы будем называть базой наборов. Собственно обратный метод состоит в следующем. Мы выбираем из базы наборов ряд наборов вида [i/1, …] (…), [i/2 ,…] (…), …, [i/n, …] (…), где n — длина i-го дизъюнкта. Затем мы строим новый набор, в котором присутствуют все члены всех выделенных наборов, кроме членов вида i/k, а зависимость представляет собой объединение всех зависимостей плюс элемент i. Это и есть основное правило работы алгоритма — правило склейки, соответствующее правилу Б обратного метода. При этом должен выполняться ряд требований на наборы. Если в процессе многократного применения данного правила удается вывести пустой набор (т. Страницы:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| ||
|