Конъюнктивные нормальные формы
Конъюнктивные нормальные формы
Определение. Элементарной дизъюнкцией называется дизъюнкция литералов (переменных или их отрицаний), взятых не более чем по одному разу.
Например, дизъюнкции ,
, 1 являются элементарными. Причем первая элементарная дизъюнкция имеет ранг (число литералов) 2, вторая - 3, а третья - 0.
Следующие дизъюнкции: ,
,
,
, 0 не являются элементарными.
Определение. Элементарная дизъюнкция булевой функции содержащая n литералов, называется полной.
Определение. Конъюнкция любого конечного множества элементарных дизъюнкций булевой функции F называется конъюнктивной нормальной формой (КНФ) функции F. Число элементарных дизъюнкций, составляющих КНФ, называется длиной КНФ.
Например, КНФ имеет длину, равную 3.
Для произвольной булевой функции F существует, вообще говоря, много различных реализующих ее КНФ, отличающихся друг от друга длиной, числом вхождений литералов и т.д.
Рекомендуемые материалы
Определение. Две (или несколько) КНФ, реализующих одну и ту же булеву функцию F , называются эквивалентными (или равносильными).
Определение. КНФ булевой функции F, состоящая только из полных элементарных дизъюнкций, называется совершенной КНФ (СКНФ).
Например, - СКНФ функции F заданной вектором значений таблицы истинности w(F)=(01100111).
Отметим, что КДНФ является единственной (с точностью перестановки множителей) для конкретной булевой функции F .
Любую булеву функцию F, заданную формулой, можно с помощью основных равносильностей преобразовать к КНФ, а затем к СКНФ.
Пример. Привести к виду СКНФ булеву функцию F=.
Решение. С помощью основных равносильностей преобразуем к КНФ:
=
=
=
=
=
― КНФ.
В данном примере сначала выразили функцию только с помощью операций дизъюнкции, конъюнкции и отрицания, а затем несколько раз применили формулу , группируя переменные таким образом, чтобы каждый раз одна скобка в конъюнкции сокращалась по формуле
.
Применяя закон склеивания (в обратном порядке: ), дополняем дизъюнкции
,
до полных элементарных дизъюнкций:
.
Т.к. , после сокращения одинаковых конъюнкций, получаем СКНФ: F
.
Составим таблицу истинности для булевой функции F=(функция из предыдущего примера). Отметим связь между СКНФ и таблицей истинности.
Таблица истинности СКНФ
| | | | | | Элементарные дизъюнкции СКНФ |
0 | 0 | 0 | 1 | 0 | 0 | |
0 | 0 | 1 | 1 | 0 | 0 | |
0 | 1 | 0 | 1 | 0 | 1 | |
0 | 1 | 1 | 1 | 0 | 1 | |
1 | 0 | 0 | 0 | 1 | 1 | |
1 | 0 | 1 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | 1 | 0 | |
1 | 1 | 1 | 0 | 0 | 1 |
В общем случае также можно вывести закономерности построения СКНФ по таблице истинности булевой функции, что является очень удобным.
СКНФ состоит из конъюнкций полных элементарных дизъюнкций наборов переменных , на которых функция принимает значение 0. Переменные берутся без отрицания, если им соответствует в таблице истинности 0, с отрицанием, если 1.
Пример. По таблице истинности составить СКНФ.
| | | F |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Решение: F.
Пример. Для булевой функции, заданной в виде ДНФ составить КНФ, СКНФ и выполнить проверку по таблице истинности.
Решение: Применяя формулу , из ДНФ получаем КНФ:
.
Применяя закон склеивания (в обратном порядке: ), дополняем дизъюнкции
,
до полных элементарных дизъюнкций:
.
Т.к. , после сокращения одинаковых дизъюнкций, получаем СКНФ:
.
Таблица истинности СКНФ
| | | | | | Элементарные дизъюнкции СКНФ |
0 | 0 | 0 | 1 | 0 | 0 | |
0 | 0 | 1 | 1 | 0 | 0 | |
0 | 1 | 0 | 1 | 1 | 1 | |
0 | 1 | 1 | 1 | 0 | 0 | |
1 | 0 | 0 | 0 | 1 | 1 | |
1 | 0 | 1 | 0 | 0 | 1 | |
1 | 1 | 0 | 0 | 1 | 1 | |
Люди также интересуются этой лекцией: 8 лекция. 1 | 1 | 1 | 0 | 0 | 1 |