Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическая логика и теория алгоритмов 2

.pdf
Скачиваний:
24
Добавлен:
13.04.2015
Размер:
630.93 Кб
Скачать

Приведение формулы к КНФ производится аналогично приведению ее к ДНФ, только вместо п. 3 применяется п. 3':

3'. Используя закон дистрибутивности ( ) ≡ ( ) ( ), преобразуем формулу так, чтобы все дизъюнкции выполнялись раньше, чем конъюнкции.

Пример. Привести к КНФ формулу ( → ) ((¬ → ) → ¬ ).

Совершенные дизъюнктивные и конъюнктивные нормальные формы

Пусть ( , … , ) — набор логических

переменных,

 

 

= (

, … ,

) — набор

1

 

 

 

 

 

 

 

1

 

 

нулей и единиц.

 

 

 

 

 

 

 

 

 

Конституентой единицы набора

называется конъюнкт

 

 

 

К1(

, … ,

) =

 

 

 

 

.

 

 

 

 

1 2

 

 

 

 

1

 

1

2

 

 

 

 

Конституентой нуля набора

называется дизъюнкт

К0(

, … ,

) = 1−1

1−2

1− .

1

 

1

2

 

Совершенной ДНФ (СДНФ) называется дизъюнкция некоторых конституент единицы, среди которых нет одинаковых, совершенной КНФ (СКНФ) называется конъюнкция некоторых конституент нуля, среди которых нет одинаковых.

Таким образом, СДНФ (СКНФ) есть ДНФ (КНФ), в которой в каждый конъюнкт (дизъюнкт) каждая переменная из набора { 1, … , } входит ровно один раз, причем входит либо сама , либо ее отрицание ¬ .

Пример. Формула 1 ¬2 3 есть конституента единицы1(1,0,1), формула ¬ есть конституента нуля 0(0,0,1), формула

(1 ¬2) (¬1 2) СДНФ, формула ( ¬ ) (¬ ¬ ) (¬ ) – СКНФ, а формула (1 ¬2 3) (¬1 2 3) (1

¬2 3) не является СДНФ.

Теорема. Для любой не тождественно ложной (не тождественно истинной)

формулы АВ существует единственная СДНФ (СКНФ) АВ такая, что

≡ .

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

Алгоритм приведения формулы к СДНФ

1.Приводим данную формулу к ДНФ.

2.Преобразовываем ее конъюнкты в конституенты единицы с помощью следующих действий:

а) если в конъюнкт входит некоторая переменная вместе со своим отрицанием, то мы удаляем этот конъюнкт из ДНФ;

б) если в конъюнкт одна и та же литера входит несколько раз, то удаляем все литеры , кроме одной;

в) если в конъюнкт

 

 

 

 

не входит переменная у, то этот

 

1

2

 

 

 

1

2

 

 

 

 

конъюнкт заменяем на эквивалентную формулу

 

 

 

 

 

) (

 

 

 

( 1

2

 

 

1 2

¬ );

1

2

 

 

 

1

2

 

г) если в полученной ДНФ имеется несколько одинаковых конституент единицы, то оставляем только одну из них.

Пример. Найти СДНФ для ДНФ ( ¬ ) ( ).