Тема 3 Нормальные формы
3.1 Разложение булевых функций по переменным
3.2 Алгебра Жегалкина
Выше мы показали, что любая булева функция может быть задана с помощью таблицы истинности. В настоящем разделе излагается переход от табличного перехода задания функции к аналитическому.
3.1 Разложение булевых функций по переменным. Пусть G – параметр, равный 0 или 1. Введем обозначение.
Проверкой легко установить, что XG=1, тогда и только тогда, когда X=G. Отсюда следует, конъюнкция равна 1 (здесь G равен 0 или 1) тогда и только тогда, когда . Например, конъюнкция (в которой G2=G1=0, G3=G4=1) равна 1 только в случае, когда X1=X2=0, X3=X4=1.
Теорема 1. Всякая булева функция F(X1,X2,…,Xn) может быть представлена в следующей форме:
(1)
Где 1≤K≤N, в дизъюнкции берется по всем наборам значений переменных.
Это представление носит название разложения функции по переменным . Например, при n=4, k=2 разложение (1) имеет вид:
.
Докажем справедливость разложения (1). Для этого возьмем произвольный набор значений переменных . Покажем, что левая и правая части соотношения (1) принимают при нем одно и то же значение. Действительно, так как XG=1 тогда и только тогда, когда X=G, то среди 2К конъюнкции правой части (1) в единицу обращается только одна, в которой . Все остальные конъюнкции равны нулю.
Поэтому . В качестве следствия из разложения (1) получаем следующие два специальных разложения.
Разложение по переменной XN:
(2)
Если булева функция не есть константа 0, то справедливо разложение
Разложение по всем переменным:
, (3)
Где дизъюнкция берется по всем наборам , при которых значение функции равно 1.
Разложение (3) называется совершенной дизъюнктивной нормальной формой (сокращенная запись СДНФ) функции.
Разложение (3) дает способ построения СДНФ. Для этого в таблице истинности отмечает все строки , в которых . Для каждой такой строки образуем конъюнкцию и затем все полученные конъюнкции соединяем знаком дизъюнкции.
Таким образом, существует взаимно однозначное соответствие между таблицей истинности функции и ее СДНФ. А это значит, что СДНФ для булевой функции единственна.
Единая булева функция, не имеющая СДНФ, есть константа 0.
Пример 1. Найти совершенную дизъюнктивную форму для функции .
Составим таблицы истинности для данной функции:
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
Отсюда получаем: ==.
Важную роль в алгебре логики играет следующее разложение булевых функций.
Теорема 2. Всякая булева функция Может быть представлена в следующей форме:
(4)
Где 1≤k≤n, а конъюнкция берется По всем 2K наборам значений переменных.
Действительно, пусть – произвольный набор значений переменных. Покажем, что любая и правая части соотношения (4) принимают при нем одно и то же значение. Так как только тогда, когда , то среди 2k дизъюнкций правой части (4) в 0 обращается только одна, в которой . Все остальные дизъюнкции равны 1.
Поэтому ==.
Непосредственно из разложения (4) следуют следующие разложения булевых функций:
(5)
, (6)
Последнее разложение носит название совершенной конъюнктивной нормальной формы (СКНФ). Разложение (6) дает способ построения СКНФ. Для этого в таблице истинности отмечаем все строки , в которых . Для каждой такой строки образуем дизъюнкцию и затем все полученные конъюнкции соединяем знаком конъюнкции. Таким образом, существует взаимно однозначное соответствие между таблицей истинности функции и ее СКНФ. А это значит, что СКНФ для булевой функции единственна.
Единственная булева функция, не имеющая СКНФ, есть константа 1.
Пример 2. Найти совершенную конъюнктивную нормальную форму для функции .
Составим таблицу истинности для данной функции.
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Отсюда получаем СКНФ
.
Формула вида (краткая запись ), где - конъюнкции называется Дизъюнктивной нормальной формой.
В силу приведенного определения ДНФ будут, например, выражения: , .
Как отмечено в пункте 2.2, все логические операции можно свести к трем: конъюнкции, дизъюнкции и отрицания. Причем, ввиду закона де Моргана, знак отрицания можно предполагать отнесенным только к переменным.
Теперь, используя дистрибутивный закон, раскрываем скобки и получаем дизъюнктивную нормальную форму. Итак, справедлива следующая теорема.
Теорема 3. Для любой формулы алгебры логики существует равносильная ей дизъюнктивная нормальная форма.
Доказательство данной теоремы дает способ построения дизъюнктивной нормальной формы для любой формулы алгебры логики.
Пример 3. Найти дизъюнктивную нормальную форму для следующей формулы:
.
Исключая знак по закону и применяя законы де Моргана и двойного отрицания, получаем:
Затем, применяя закон дистрибутивности, раскроем скобки
Последнее выражение есть дизъюнктивная нормальная форма.
Форма вида
(краткая запись ), где - дизъюнкции называется Конъюнктивной нормальной формой (сокращенно КНФ).
В силу приведенного определения КНФ будут, например, выражения:
, .
Как показано выше, для любой формулы алгебры логики существует равносильная ей дизъюнктивная форма. Используя дистрибутивный закон , из данной ДНФ легко получить КНФ.
Итак, справедлива следующая теорема.
Теорема 4. Для любой формулы алгебры логики существует равносильная ей конъюнктивная нормальная форма.
Доказательство данной теоремы дает способ построения конъюнктивной нормальной формы для любой формулы алгебры логики.
Пример 4. Найти дизъюнктивную и конъюнктивную нормальные формы для следующей формулы: .
Используя закон , исключаем знак .
Получаем формулу .
Используя закон де Моргана, получаем формулу .
Раскрывая скобки, получаем дизъюнктивную нормальную форму
.
Чтобы получить конъюнктивную нормальную форму, применим к формуле
Дистрибутивный закон, получаем:
Последнее выражение является конъюнктивной нормальной формой. Так как и , то полученная КНФ равносильна следующей КНФ:
.
Среди всех нормальных формул данной формулы выделим совершенную нормальную форму как дизъюнктивную, так и конъюнктивную. Учитывая разложение (3), нетрудно заметить, что совершенная дизъюнктивная нормальная форма формулы алгебры логики, содержащей ровно n различный переменных, есть ее дизъюнктивная нормальная форма, в которой:
1) все конъюнкции попарно различны;
2) каждая конъюнкция содержит ровно n переменных;
3) в каждой конъюнкции встречаются все n переменных.
На примере 1 мы рассмотрели один из способов построения СДНФ, основанный на составлении таблицы истинности. Следующий способ построения СДНФ основан на применении законов алгебры логики.
Пример 5. Найти совершенную дизъюнктивную форму формулы .
Используя, что , получаем . Ввиду законов де Моргана и двойного отрицания имеем:
Получили дизъюнктивную нормальную форму. Данная ДНФ равносильна формуле .
Раскрывая скобки, получаем:
.
Используя закон идемпотентности, получаем требуемую СДНФ:
.
Учитывая разложение (6), нетрудно заметить, что совершенная конъюнктивная нормальная форма формулы алгебры логики, содержащей ровно N различных переменных, есть ее конъюнктивная нормальная форма, в которой:
1) все дизъюнкции попарно различны;
2) каждая дизъюнкция содержит ровно n членов;
3) в каждой дизъюнкции встречаются все n переменных.
На примере 2 мы рассмотрели один из способов построения СКНФ, основанный на составлении таблицы истинности. Следующий способ построения СКНФ основан на применении законов алгебры логики.
Пример 6. Найти совершенную конъюнктивную нормальную форму формулы
.
Используя, что , получаем
.
Данная формула является конъюнктивной нормальной формой. Она равносильна формуле
.
Используя закон дистрибутивности, получаем:
Применяя закон идемпотентности, получаем требуемую совершенную конъюнктивную нормальную форму
.
Формула алгебры логики называется Тождественно истинной, если она при всех значениях входящих в нее переменных принимает значение истинно.
Примерами тождественно истинных формул являются формулы:
Формула алгебры логики называется Тождественно ложной, если она при всех значениях, входящих в нее переменных, принимает значение Ложь.
Примерами тождественно ложных формул являются формулы:
,
Формула алгебры логики называется Выполнимой, если она при некоторых значениях, входящих в нее переменных, принимает значение Истинно.
Примерами выполнимых формул являются следующие формулы:
, .
В алгебре логики можно поставить следующую задачу: указать способ (алгоритм), позволяющий для каждой формулы алгебры логики выяснить, является она тождественно истинной или нет. Поставленная задача носит название Проблемы разрешения.
Рассмотрим следующие два способа решения этой задачи.
Способ 1 (табличный). Для того, чтобы определить, является ли данная формула тождественно истинной или нет, достаточно составить ее таблицу истинности.
Однако данный способ, хотя и дает принципиальное решение проблемы разрешимости, он довольно громоздкий.
Способ 2 основан на приведении формул к нормальной форме.
Теорема 4. Формула алгебры логики тогда и только тогда является тождественно истинной, когда каждая дизъюнкция в ее конъюнктивной нормальной форме содержит некоторую переменную вместе с ее отрицанием.
Действительно, если каждая дизъюнкция в конъюнктивной нормальной форме содержит переменную вместе с ее отрицанием, то все дизъюнкции равны 1, ибо , . Отсюда следует, что КНФ является тождественно истинной.
Пусть теперь данная формула является тождественно истинной, и пусть есть некоторая дизъюнкция в КНФ данной формулы. Допустим, что данная дизъюнкция не содержит переменной вместе с ее отрицанием. В таком случае мы может каждой переменной, не стоящей под знаком отрицания, дать значение 0, а каждой переменной, стоящей под знаком отрицания – значение 1. После указанной подстановки все дизъюнкции станут равны 0, следовательно, формула не является тождественно истинной. Получили противоречие.
Пример 7. Выяснить, будет ли тождественно истинной формула
Используя, что , получаем
.
Применяя закон дистрибутивности, получаем КНФ:
.
Так как каждая дизъюнкция содержит некоторую переменную вместе с ее отрицанием, то формула тождественно истинна.
Аналогично предыдущей теореме доказывается теорема:
Теорема 5. Формула алгебры логики тогда и только тогда является тождественно ложной, когда каждая конъюнкция в ее дизъюнктивной форме содержит некоторую переменную вместе с ее отрицанием.
3.2 Алгебра Жегалкина. Множество булевых функций, рассматриваем вместе с операциями конъюнкции и сложения (по модулю два), будем называть алгеброй Жегалкина.
Непосредственно проверкой (с помощью таблиц истинности) устанавливаются следующие законы:
- закон коммутативности;
- закон ассоциативности;
- закон дистрибутивности;
В алгебре Жегалкина роль совершенных нормальных форм булевой алгебры играют полиномы Жегалкина.
Полиномом Жегалкина называется полином вида
Причем в каждом наборе все координаты различны, а суммирование ведется по некоторому множеству таких не совпадающих наборов, А – константа 0 или 1.
Например, выражение является полиномом Жегалкина, а выражения и нет, так как в первом выражении имеется конъюнкция, содержащая две переменные y, а второе выражение содержит два одинаковых слагаемых и .
Если в произвольной форме алгебры Жегалкина раскрыть скобки и произвести все возможные упрощения по указанным выше законам и закону идемпотентности, то получится формула, являющаяся полиномом Жегалкина.
Рассмотрим теперь взаимосвязь, существующую между операциями булевой алгебры и алгебры Жегалкина. Непосредственной проверкой устанавливается
(1)
Ранее мы показали, что любая булева функция может быть выражена в виде формулы через отрицание, конъюнкцию и дизъюнкцию. Согласно законам (1) получаем, что любая булева функция может быть выражена в виде формулы алгебры Жегалкина. Следовательно, существование полинома Жегалкина доказано для любой булевой функции.
Число различных слагаемых (конъюнкций) полинома Жегалкина от переменных равно числу всех подмножеств из n элементов, т. е. 2n. Число различных полиномов, которых можно образовать из этих конъюнкций, равно числу всех подмножеств множества данных конъюнкций, т. е. . Следовательно, число всех полиномов Жегалкина от n переменных равно числу всех булевых функций от n переменных. Отсюда следует единственное представление булевой функции посредством полинома Жегалкина. Итак, справедлива следующая теорема.
Теорема 6. Каждая булева функция может быть единственным образом выражена при помощи полинома Жегалкина.
Пример 8. Выразить в виде полинома Жегалкина.
1 способ. Ищем требуемый полином методом неопределенных коэффициентов: .
При X=y=0 имеем: d=1;
При X=0, y=1 имеем: a=0;
При X=1, y=0 имеем: b=1;
При X=1, y=0 имеем: 1=a+b+c+d =a+1+0+1=a, т. е. а=1.
Отсюда
2 способ.
< Предыдущая | Следующая > |
---|