- •Булевы функции Основные понятия
- •Основные эквивалентности:
- •Принцип двойственности
- •Разложение булевых функций по переменным
- •Алгоритм построения с.Д.Н.Ф. По таблице значений функции.
- •Алгоритм построения с.Д.Н.Ф. При помощи равносильных преобразований.
- •Алгоритм построения с.К.Н.Ф. По таблице значений функции.
- •Алгоритм построения с.К.Н.Ф. При помощи равносильных преобразований.
- •Полиномы Жегалкина
- •Полнота.
- •Замкнутость.
- •Если m1m2, то [m1][m2].
- •Класс самодвойственных функций – s.
- •Класс монотонных функций – m.
- •Теорема Поста о полноте
- •Предполные классы. Базисы
Принцип двойственности
Функция f*(x1,…,xn)=называется двойственной к функции f. Из определения следует, что f**=(f*)*=f, т.е. функция f двойственна к f* и наоборот.
-
(0)*=1, (xy)*=x&y, (x)*=x, (x)*= x.
-
Пусть F(x1,…,xn)=f(f1(x1,…,xn),…, fm(x1,…,xn)), тогда F*(x1,…,xn)=f*(f1* (x1,…,xn),…, fm* (x1,…,xn))
Из этой леммы следует принцип дойственности:
Если формула A=S[f1,…,fk] реализует функцию f(x1,…,xn), то S[f1*,…,fk*] реализует функцию f*(x1,…,xn).
Двойственная к A формула обозначается A*=S[f1*,…,fK*]. Таким образом, в силу принципа двойственности формула, двойственная к данной, получается заменой в исходной формуле всех функций на двойственные с сохранением ее строения, т.е. порядок выполнения операций остается прежним.
-
Найдем (xyyzzx)*. В силу принципа двойственности, т.к. & двойственна , и наоборот, имеем (xyyzzx)*=(xy)(yz)(zx)=(yxz)(zx)=xyyzzx.
В силу принципа двойственности из эквивалентности формул A1 и A2 следует эквивалентность двойственных формул A1* и A2*.
Задачи
-
Используя непосредственно определение двойственности, выяснить, является ли функция g двойственной к функции f:
-
, ;
-
, ;
-
, ;
-
, ;
-
, ;
-
, ;
-
, ;
-
, ;
-
, ;
-
, .
-
-
Используя принцип двойственности, построить формулу, реализующую функцию, двойственную к функции f, и убедиться, что она эквивалентна формуле A:
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=;
-
, A=.
-
Разложение булевых функций по переменным
Введем новую функцию
Очевидно, что .
Конъюнкции вида и дизъюнкции вида называют элементарными. Число m называется рангом элементарной конъюнкции (дизъюнкции). Дизъюнкция элементарных конъюнкций называется дизъюнктивной нормальной формой или д.н.ф. Конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной формой или к.н.ф.
-
Всякая булева функция f(x1,…,xn) для любого m, 1mn, представима в виде f(x1,…,xn)= .
Это представление называется разложением булевой функции по первым m переменным. Функцию, получаемую из f, подстановкой на места переменных x1,…,xm констант 1,…,m, называют -компонентой функции f.
Следствие 1. Для любого i, 1in,
f(x1,…,xn)=
Следствие 2. Если f(x1,…,xn)0, то f(x1,…,xn)=.
Это разложение называется совершенной д.н.ф. (с.д.н.ф.).
-
Всякая булева функция может быть представлена формулой в базисе Б={,,}.
-
Если f(x1,…,xn)1, то f(x1,…,xn)=.
Это разложение называется совершенной к.н.ф. (с.к.н.ф.).
Рассмотрим алгоритмы построения с.д.н.ф. и с.к.н.ф.
Алгоритм построения с.Д.Н.Ф. По таблице значений функции.
-
Выбрать строку, в которой функция равна 1.
-
Построить элементарную конъюнкцию, включая в нее с отрицанием те переменные, которые в этой строке равны 0.
-
Перейти к следующей строке таблицы, на которой функция равна 1.
-
После перебора всех строк составить с.д.н.ф. из полученных конъюнкций.