Совершенные нормальные формы СДНФ, СКНФ

 

Рассмотрим произвольную -членную операцию , заданную своей таблицы значений, не являющуюся противоречием. Рассмотрим строки таблицы, в которых f принимает значения “1”. Для каждой строки составим элементарные конъюнкции из n множителей, где i -й множитель равен  (в этой строке  принимает значение “1”) или  (в этой строке  принимает значение “0”). Далее возьмем дизъюнкцию всех полученных конъюнкций. В итоге получится формула (ДНФ), задающая операцию, равносильную . Действительно, каждая из построенных конъюнкций будет истинна только при тех значениях истинности высказываний , которые стоят в соответствующей строчке. Поскольку была взята дизъюнкция по всем наборам значений истинности высказываний , на которых  истинна, то построенное высказывание истинно на всех этих наборах и только на них. На остальных наборах оно ложно.

Построенная формула называется совершенной дизъюнктивной нормальной формой (СДНФ) операции .

Определение 2.1. СДНФ (совершенная ДНФ) – это такая ДНФ, в которой каждая элементарная конъюнкция содержит все элементарные высказывания, либо их отрицания по одному разу, элементарные конъюнкции не повторяются.

Пример.

Аналогично, рассматривая строки, в которых операция , не являющаяся тавтологией, принимает значения “0”, и составляя конъюнкцию (число множителей равно числу отмеченных строк таблицы) дизъюнкций из n слагаемых, где i -е слагаемое равно  (в этой строке  принимает значение “0”) или  (в этой строке  принимает значение “1”). В итоге получится формула, задающая операцию, равносильную . Построенная формула называется совершенной конъюнктивной нормальной формой (СКНФ) операции .

Определение 2.2. СКНФ (совершенная КНФ) – это такая КНФ, в которой каждая элементарная дизъюнкция содержит все элементарные высказывания, либо их отрицания по одному разу, элементарные дизъюнкции не повторяются.

Пример.

Каждая формула имеет одну единственную СДНФ и одну единственную СКНФ. Тавтология не имеет СКНФ, а противоречие – СДНФ.

Как известно, каждая формула логики высказываний представляет некоторую булеву функцию. Возникает обратный вопрос: можно ли всякую булеву функцию представить некоторой формулой логики высказываний? Можно указать алгоритм, который позволяет по таблице истинности произвольной булевой функции от любого числа переменных построить некоторую формулу логики высказываний в СДНФ.

Пример.

Рассмотрим частный случай. Пусть  только в одном единственном случае.

x y z f(x,y,z)
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0

Тогда этой формуле будет соответствовать функция .

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

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

Пример.

x y z f(x,y,z)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0

 

Теорема 2.3. Каждую булеву функцию  при любом  () можно представить в виде

          (2.1)

Это представление называется разложением функции по переменным .

Доказательство. Заметим, что  Далее рассмотрим произвольный набор  и покажем, что левая и правая часть формулы (2.1) принимают на нем одно и то же значение.

Левая часть дает , а правая

Следствие 1. Разложение по переменной . Пусть . Тогда

Следствие 2. Разложение по всем переменным. Пусть . Тогда

При  получаем выражение

т.е.                                                                               (2.2)

Разложение (2.2) носит название совершенной дизъюнктивной нормальной формы (СДНФ).

Замечания: 1. Поскольку существует взаимно однозначное соответствие между таблицей истинности  и СДНФ функции , то СДНФ функции единственна.

                       2. Единственная функция, не имеющая СДНФ, – константа 0.

3. Длина СДНФ функции  равна числу наборов, на которых функция принимает значение, равное 1.

Теорема 2.4. Каждую булеву функцию  при любом  () можно представить в виде

(2.3)

Это представление называется разложением функции по переменным .

Доказательство. Заметим, что  Далее рассмотрим произвольный набор  и покажем, что левая и правая часть формулы (2.3) принимают на нем одно и то же значение.

Левая часть дает , а правая

Следствие 1. Разложение по переменной . Пусть . Тогда

Следствие 2. Разложение по всем переменным. Пусть . Тогда

При  получаем выражение

т.е.                                                                               (2.4)

Разложение (2.4) носит название совершенной дизъюнктивной нормальной формы (СДНФ).

Замечания: 1. Поскольку существует взаимно однозначное соответствие между таблицей истинности  и СКНФ функции , то СКНФ функции единственна.

                       2. Единственная функция, не имеющая СКНФ, – константа 1.

3. Длина СКНФ функции  равна числу наборов, на которых функция принимает значение, равное 0.

Утверждение 2.1. Отрицание  всякой формулы алгебры высказываний равно дизъюнкции тех и только тех совершенных конъюнктивных одночленов, которые не входят в СДН-формы формулы

Утверждение 2.2. Отрицание  всякой формулы алгебры высказываний равно конъюнкции тех и только тех совершенных дизъюнктивных одночленов, которые не входят в СКН-формы формулы

Утверждение 2.3. Для нахождения отрицания произвольной формулы, составленной из пропозициональных переменных и операций конъюнкция, дизъюнкция и отрицание, достаточно всюду заменить знак операции «конъюнкция» на знак операции «дизъюнкция», а знак операции «дизъюнкция» заменить на знак операции «конъюнкция» и всякую переменную входящую в формулу без знака отрицания, заменить на ту же переменную с инверсией, а все имеющиеся знаки отрицания убрать.

Пример. Найти отрицание формулы:

Руководствуясь утверждением 2.3, выпишем отрицание для формулы .

Пример. Перейдите от СДНФ к СКНФ:

.Согласно утверждению 2.1 имеем: отрицание формулы имеет следующую СДНФ: .Теперь применяя утверждение 2.3, находим отрицание этой формулы . Это и есть СКНФ данной формулы.

Пример. Перейдите от СКНФ к СДНФ: . Согласно утверждению 2.2 имеем: отрицание формулы имеет следующую СКНФ: . Теперь применяя утверждение 2.3, находим отрицание этой формулы . Это и есть СКНФ данной формулы.

А теперь сформулируем основные определения и понятия, касающиеся нормальных и совершенных форм.

Вернемся к понятию конъюнкта и дизъюнкта. Конъюнкции , , 1 являются элементарными. Причем первая элементарная конъюнкция имеет ранг (число литералов) 2, вторая - 3, а третья - 0. Дизъюнкции , , 1 являются элементарными. Причем первая элементарная дизъюнкция имеет ранг (число литералов) 2, вторая - 3, а третья - 0.

Следующие дизъюнкции: , , , , 0 не являются элементарными.

Определение 2.3. Элементарная конъюнкция булевой функции содержащая n литералов, называется полной (или min-термом). Элементарная дизъюнкция булевой функции , содержащая n литералов, называется полной (max-термом).

Определение 2.4. Число элементарных конъюнкций (слагаемых, термов), составляющих ДНФ, называется длиной ДНФ. Число элементарных дизъюнкций, составляющих КНФ, называется длиной КНФ.

Пример. Определить длину данной ДНФ и КНФ. ДНФ  имеет длину, равную 3. КНФ  имеет длину, равную 3.

Определение 2.5. Две (или несколько) ДНФ, реализующих одну и ту же булеву функцию F, называются эквивалентными (или равносильными). Две (или несколько) КНФ, реализующих одну и ту же булеву функцию F, называются эквивалентными (или равносильными).

 

 

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: