Класс самодвойственных функций (U).
Класс монотонных булевых функций (М).
Класс функций, сохраняющих единицу (К1).
Класс функций, сохраняющих нуль (К0).
Класс линейных функций от n аргументов (Ln).
Основные классы функций алгебры логики.
Рассмотрим пять классов булевых функций, которые называются замечательными классами, так как функции, принадлежащие к этим классам, обладают следующими свойствами: любая булева функция, полученная с помощью операций суперпозиции и подстановки из функций одного класса, обязательно будет принадлежать к тому же классу.
Напомним, что подстановкой называется замена одних аргументов функции другими или изменение порядка записи аргументов; суперпозицией называется подстановка в функцию вместо ее аргументов других функций.
В соответствии с теоремой Жегалкина любая булева функция представлена в виде полинома.
Булева функция называется линейной, если она может быть представлена полиномом первой степени, т.е. записана в виде
f(x1 x2 … xn)= α0
α1 x1
α2 x2
…
αn xn,
где α0, α1, …, αn – коэффициенты, равные 0 или 1.
Число различных линейных функций n переменных равно числу различных наборов вида <α0 α1 … αn > и равно 2n+1.
Пример. n=2. Класс L2 состоит из 8 функций:
f0(xy)=0; f3(xy)=x; f5(xy)=y;
f6(xy)=
; f9(xy)=1
x
y;
f10(xy)=1
y; f12(xy)=1
x; f15(xy)=1.
Отметим, что переключательные функции одного аргумента все линейны:
L1: f0(x)=0, f1(x)=x, f2(x)=1
x, f3(x)=1.
Теорема. При суперпозиции линейных функций и при подстановке в эти функции других переменных получаются линейные переключательные функции и только они.
Дано f1(x1 x2 … xn)= α0
α1 x1
…
αn xn;
φ1(y1 y2 …
)= b10
b11 y1
… 
;
φ2(y1 y2 …
)= b20
b21 y1
… 
;
....................
φn(y1 y2 …
)= bn0
bn1 y1
… 
,
Подставим φi вместо xi функции f1, получим выражение f2, в котором постоянные коэффициенты умножаются на линейные функции. Приведя подобные члены, получим представление функции f2 в виде линейного полинома.
Пример. f1(x1 x2 x3)=1
x1
x2
x3;
x1=φ1(y1 y2 y3 y4)= y1
y3
y4;
x2=φ2(y1 y2)= 1
y1
y2;
x3=φ3(y1 y2 y3 y4)= 1
y1
y2
y3
y4;
f2(y1 y2 y3 y4)= 1
φ1(y1 y2 y3 y4)
φ2(y1 y2)
φ3(y1 y2 y3 y4)=
=1
y1
y3
y4
1
y1
y2
1
y1
y2
y3
y4=1
y1.
При любых подстановках xi функция остается линейной.
Из линейных функций нельзя получить нелинейную, а наоборот можно.
Если функция на нулевом наборе аргументов <00…0> равна нулю, то говорят, что функция сохраняет нуль:
f(000…0)=0.
При фиксированном n число таких функций составляет половину всех булевых функций n аргументов, т.е.
.
Пример. n=2. В класс К0входят следующие функции:
f0(xy), f1(xy), f2(xy), f3(xy), f4(xy), f5(xy), f6(xy), f7(xy).
При суперпозиции переключательных функций, сохраняющих нуль, и при подстановке в эти функции других переменных получаются переключательные функции, сохраняющие нуль и только они.
Пусть имеем
f1(x1 x2 … xn), φ1(y1 y2 …
), …, φn(y1 y2 …
).
Все эти функции сохраняют нуль на нулевом наборе. Подставив вместо xi функции φi, получим новую функцию
f2(y1 y2 …
)= f1(φ1,φ2, …,φn ).
Найдем значение f2 на нулевом наборе:
f2 (00 …0)= f1 (000 …0)=0.
Так как на нулевом наборе все аргументы равны нулю, то любая подстановка этих аргументов не изменит значение функции.
Если булева функция на единичном наборе <111…1> аргументов равна единице, то говорят, что эта функция сохраняет единицу:
f(111…1)=1.
Так как на одном наборе <11..1> значение функции зафиксировано, то остается 2n-1 независимых наборов, т.е. число функций, сохраняющих единицу, равно половине от всех функций n переменных, т.е.
.
Пример. n=2. Класс К1содержит:
f1(xy), f3(xy), f5(xy), f7(xy), f9(xy), f11(xy), f13(xy), f15(xy).
Теорема. При суперпозиции переключательных функций, сохраняющих 1, и при подстановке в эти функции других переменных получаются функции, сохраняющие 1, и только они.
Переключательная функция называется монотонной, если при любом возрастании набора значения этой функции не убывают.
Число функций класса М оценивается асимптотически:
≤ φn ≤
,
где φn – число монотонных функций от n аргументов; А– некоторая константа.
Пример. n=2. Класс М содержит
f0(xy), f1(xy), f3(xy), f5(xy), f7(xy), f15(xy).
При суперпозиции монотонных булевых функций и при подстановке в эти функции переменных получаются монотонные функции и только они. Имеем монотонные функции:
f1(x1 x2 … xn);
φ1(y1 y2 …
);
.......
φn(y1 y2 …
).
Пусть f2(y1 y2 …
)= f1(φ1,φ2, …,φn).
Зафиксируем значение функции f2 на некотором наборе < y1 y2 …
>, а затем увеличим этот набор. При этом значение любой монотонной функции φi<y1y2…
> уменьшиться не может, отсюда следует, что набор аргументов функции f1 не уменьшится с увеличением набора функции f2, а, следовательно, и значение функции f2 не уменьшится. Аналогично будет при подстановке аргументов.
Переключательная функция называется самодвойственной, если на каждой паре противоположных наборов она принимает противоположные значения:


или, что то же самое,


Пример. n=2. Класс U содержит
f3(xy), f5(xy), f10(xy), f12(xy).
При суперпозиции самодвойственных переключательных функций и при подстановке в эти функции переменных получаются самодвойственные функции и только они.
Имеем самодвойственные функции
f1(x1 x2 … xn);
φ1(y1 y2 …
);
.......
φn(y1 y2 …
).
Подставляя функции φi вместо аргументов xi, получаем
f2(y1 y2 …
)= f1(φ1φ2 …φn).

Поскольку функции φi самодвойственные, то из соотношения


находим


Таблица 15
![]() |
x 0 0 1 1
y 0 1 0 1 L K0 K1 M U Примечание
![]() |
f0 0 0 0 0 x x x
f1 0 0 0 1 x x x
f2 0 0 1 0 x
f3 0 0 1 1 x x x x x
f4 0 1 0 0 x
f5 0 1 0 1 x x x x x
f6 0 1 1 0 x x
f7 0 1 1 1 x x x
f8 1 0 0 0 f8 не принадлежит ни к
f9 1 0 0 1 x x одному из указанных
f10 1 0 1 0 x x классов функций
f11 1 0 1 1 x
f12 1 1 0 0 x x
f13 1 1 0 1 x
f14 1 1 1 0 f14 не принадлежит ни к
f15 1 1 1 1 x x x одному из указанных
классов функций
Так как f1 самодвойственная функция, то


Сравнивая последнее выражение с выражением f2, окончательно получаем

,
что и доказывает самодвойственность функции f2. Для подстановки переменных получаются выводы такие же.
Свойства функций двух переменных представлены в табл.15.

