- •Булевы функции Основные понятия
- •Основные эквивалентности:
- •Принцип двойственности
- •Разложение булевых функций по переменным
- •Алгоритм построения с.Д.Н.Ф. По таблице значений функции.
- •Алгоритм построения с.Д.Н.Ф. При помощи равносильных преобразований.
- •Алгоритм построения с.К.Н.Ф. По таблице значений функции.
- •Алгоритм построения с.К.Н.Ф. При помощи равносильных преобразований.
- •Полиномы Жегалкина
- •Полнота.
- •Замкнутость.
- •Если m1m2, то [m1][m2].
- •Класс самодвойственных функций – s.
- •Класс монотонных функций – m.
- •Теорема Поста о полноте
- •Предполные классы. Базисы
Полнота.
Система функций {f1,f2,…,fi,…}
из
называется полной в
,
если любая булева функция может быть
представлена в виде суперпозиции
функций данной системы.
-
Пусть {f1,f2,…,fi,…} – полная в
система, а {g1,g2,…,gK,…}
– такая система функций, что для любого
i fi=Si[g1,g2,…,gK,…].
Тогда система {g1,g2,…,gK,…}
– полна.
-
Полными в
являются системы:
-
(т.к. каждую функцию можно считать
формулой над
); -
{,,} (в силу теоремы 2);
-
{0,1,,} (т.к. система {,,} полна и xy=xyxy).
-
{,} (т.к. система {,,} полна и
); -
{,} (т.к. система {,,} полна и
); -
{|} (т.к. система {,} полна и
,
).
Замкнутость.
С понятием полноты тесно связано понятие
замыкания. Пусть M
.
Замыканием [M] множества M называется
множество всех булевых функций,
представимых формулами над M. Теперь
определение полноты можно переформулировать
следующим образом. Система функций M
полна в
,
если [M]=
.
Множество M называется замкнутым классом, если [M]=M.
-
[
]=
; -
[{,,}]=
; -
[{0,1}]=[{0,1}].
Свойства замыкания:
-
M[M].
-
[M]=[[M]].
-
Если m1m2, то [m1][m2].
-
[M1][M2] [M1M2].
Задачи
-
Сведением к заведомо полным системам показать, что множество A является полным в P2:
-
; -
; -
; -
; -
; -
; -
; -
; -
; -
.
Важнейшие замкнутые классы
Класс функций, сохраняющих константу 0 – T0.
T0={f
:f(0,0,…,0)=0}.
-
Функции 0, x, x&y, xy, xy T0, а x, x~y T0.
Очевидно, что |T0n|=
,
т.к. функции из T0 могут принимать
любое из двух значений 0 или 1 на любых
наборах, кроме первого.
-
[T0]= T0.
Класс функций, сохраняющих константу 1 – T1.
T1={f
:f(1,1,…,1)=1}.
-
Функции 1, x, x&y, xy, x~y T1, а x, xy T1.
Очевидно, что |T1n|=
,
т.к. функции из T1 могут принимать
любое из двух значений 0 или 1 на любых
наборах, кроме последнего.
Отметим, что классы T0 иT1 двойственны, т.е. T0*=T1 и T1*=T0.
-
[T1]= T1.
Класс линейных функций – L.
Функция f(x1,…,xn)
называется линейной, если ее можно
представить в виде полинома Жегалкина
не выше первой степени, т.е. если
существуют такие константы Ai,
i=1,…,n, что
.
![]()
![]()
-
Функции 0,1, x, x, xy, x~y L, а x&y, xy L.
-
|Ln|=
. -
[L]= L.
-
Функция является линейной тогда и только тогда, когда она меняет свое значение на любой паре соседних по существенной переменной наборов.
-
(лемма о нелинейной функции) Если fL, то x&y[{f,0,1,x}].
Класс самодвойственных функций – s.
Функция f называется самодвойственной, если f=f*.
.
Функции x, x, xyz, xyyzzx S, а 0, 1, x&y, xy S.
-
[S]= S.
-
|Sn|=
. -
(лемма о несамодвойственной функции) Если fS, то 0,1[{f,x}].
Класс монотонных функций – m.
Функция f(x1,…,xn)
называется монотонной, если на
любой паре сравнимых наборов
и
таких, что
,
выполнено f(
)f(
).
![]()
-
Функции 0, 1, x, x, x&y, xy, xyyzzx M, xy, x|y, xy M.
-
[M]=M.
-
(лемма о немонотонной функции) Если fM, то x[{f,0,1}].
Задачи
-
Выяснить, являются ли функции f и g самодвойственными:
-
,
g=(1001
1011 1011 1001); -
,
g=(1100
0011 1010 0101); -
,
g=(1101
0100 1011 0010); -
,
g=(1100
0011 0011 1100); -
,
g=(1001
0110 1001 0110); -
,
g=(1010
0101 0101 1010); -
,
g=(0101
0110 1000 0101); -
,
g=(0101
0100 1101 1010); -
,
g=(0101
0100 1100 0101); -
,
g=(0010
1000 1110 1011).
-
-
Заменить прочерки символами 0 и 1 так, чтобы получился вектор значений самодвойственной функции:
-
f=(0 1 – 0 – 0 – –);
-
f=(– – 01 – – 1 1);
-
f=(– 1 – 1 – 0 – 1);
-
f=(– 1 0 – 0 – – 1);
-
f=(1 – – 0 – 0 0 –);
-
f=(0 1 – – 0 1 – –);
-
f=(1 – 0 – 0 – 1 – );
-
f=(– 0 1 – 1 – – 0);
-
f=(– – 0 – 1 – 1 0);
-
f=(1 0 – 0 – 1 – – ).
-
Определить, какие переменные функции f следует заменить на x, а какие на
с тем. Чтобы получить константу:
-
f=(0110 1000 1110 1011);
-
f=(1010 1110 1100 1010);
-
f=(1011 0100 1111 0010);
-
f=(1110 1000 0110 1000);
-
f=(0000 1111 0010 1111);
-
f=(1010 0101 0101 0011);
-
f=(1101 0001 1011 0100);
-
f=(0101 1101 0100 1111);
-
f=(0110 1001 0101 1101);
-
f=(1101 0000 1101 0000).
-
Представив функцию полиномом, выяснить, является ли она линейной:
-
; -
; -
; -
; -
; -
; -
; -
; -
; -
.
-
Выяснить, является ли линейной функция:
-
f =(0110 1001 0110 1001);
-
f =(1010 0101 0101 1010);
-
f =(0011 1100 1100 0011);
-
f =(1001 1001 0110 0110);
-
f =(1010 0110 0110 0101);
-
f =(1010 0101 1001 1100);
-
f =(1101 0010 1101 0010);
-
f =(0111 1001 1000 0110);
-
f =(0011 0010 1100 1101);
-
f =(0100 1100 1100 1011).
-
Заменить прочерки символами 0 и 1 так, чтобы получился вектор значений линейной функции:
-
f =(1 – – – – – – – – – – 0 – 1 1 0);
-
f =(– 1 1 – 1 – – – 1 – – – – – – 0);
-
f =(– – – 0 – 0 0 – 1 – 0 – – – – –);
-
f =(– 1 0 0 – – – 1 – 1 – – – – – –);
-
f =(– – – 1 – 1 1 – – 1 1 – 1 – 0 –);
-
f =(0 – 1 – – – – 1 – – – 1 – – – 0);
-
f =( – – – – 1 0 – – – – 0 – 0 1 – –);
-
f =(– 1 – – – – – – 0 0 – 1 – 1 – –);
-
f =(0 1 – – – – – – 1 – 1 – 1 – – –);
-
f =(– – 0 0 – – – – 1 1 – – – 0 – –).
-
Получить из функции f функцию xy:
-
f =(1101 1111 1100 1111);
-
f =(1111 0101 1111 1101);
-
f =(1001 0111 1111 1010);
-
f =(0111 1111 1110 1110);
-
f =(0111 1011 1111 1110);
-
f =(1101 1001 1001 0111);
-
f =(1011 1111 1001 1111);
-
f =(1011 0011 0010 1111);
-
f =(0010 1111 1111 0101);
-
f =(1111 1111 1110 1100).
-
Определить, являются ли функции f и g монотонными. Для немонотонных функций указать два соседних набора
:
-
,
g=(00010101); -
,
g=(01010111); -
,
g=(00110011); -
,
g=(00010111); -
,
g=(00010110); -
,
g=(00011111); -
,
g=(1001
1011); -
,
g=(1100
0011); -
,
g=(1101
0100); -
,
g=(1010
0101).
