02Глава21-22 (561019), страница 3
Текст из файла (страница 3)
Чтобы булеву функцию, заданную таблицей значений или любым другим способом, представить в виде многочлена, достаточно:
-
записать функцию в виде суммы по mod 2 минтермов, равных единице на тех же наборах, на которых равна заданная функция;
-
все аргументы, входящие в полученное выражение в инверсной форме, заменить с помощью соотношения
;
-
раскрыть скобки и сделать приведение подобных членов с учетом тождества:
x, если n нечетно;
0, если n четно.
n
Пример. Представить в виде многочлена функцию f14(AB):
f7(AB)= m0+m1+m2= m0 m1
m2=
Пример. Представить в виде многочлена функцию f9(AB):
f9(AB)= m0+m3= m0 m3=
На базе функции 1, /\ и строится алгебра Жегалкина, но по своим свойствам она более близка к обычной алгебре и отличается от последней лишь тем, что логическое сложение заменено сложением по mod 2.
§7. Основные классы функций алгебры логики.
Рассмотрим пять классов булевых функций, которые называются замечательными классами, так как функции, принадлежащие к этим классам, обладают следующими свойствами: любая булева функция, полученная с помощью операций суперпозиции и подстановки из функций одного класса, обязательно будет принадлежать к тому же классу.
Напомним, что подстановкой называется замена одних аргументов функции другими или изменение порядка записи аргументов; суперпозицией называется подстановка в функцию вместо ее аргументов других функций.
Класс линейных функций от 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 функция остается линейной.
Из линейных функций нельзя получить нелинейную, а наоборот можно.
Класс функций, сохраняющих нуль (К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.
Так как на нулевом наборе все аргументы равны нулю, то любая подстановка этих аргументов не изменит значение функции.
Класс функций, сохраняющих единицу (К1).
Если булева функция на единичном наборе аргументов равна единице, то говорят, что эта функция сохраняет единицу:
f(111…1)=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
> уменьшиться не может, отсюда следует, что набор аргументов функции f1 не уменьшится с увеличением набора функции f2, а, следовательно, и значение функции f2 не уменьшится. Аналогично будет при подстановке аргументов.
Класс самодвойственных функций (U).
Переключательная функция называется самодвойственной, если на каждой паре противоположных наборов она принимает противоположные значения:
или, что то же самое,
Пример. 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).
Найдем значение функции f2 на противоположных наборах аргументов
Поскольку функции φ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.
§8. Полные системы булевых функций.
Определение. Система булевых функций {f1, f2, …,fn} называется полной, если любая переключательная функция может быть представлена суперпозицией функций данной системы.
Теорема Поста-Яблонского. Для того чтобы система булевых функций была полной, необходимо и достаточно, чтобы она содержала:
-
хотя бы одну функцию, не сохраняющую константу нуль;
-
хотя бы одну функцию, не сохраняющую константу единица;
-
хотя бы одну функцию, не являющуюся линейной;
-
хотя бы одну функцию, не являющуюся монотонной;
-
хотя бы одну функцию, не являющуюся самодвойственной.
Это критерий полноты системы.
Система функций {f1, f2, …,fn}, являющаяся полной, называется базисом.
Минимальным базисом называется такой базис, для которого удаление хотя бы одной из функций fi , образующих тот базис, превращает систему функций {f1, f2, …,fn } в неполную.
Будем рассматривать функции, зависящие от n аргументов. Число различных функций равно .
Тривиальная полная система состоит из всех функций.
Функции инверсии, дизъюнкции и конъюнкции образуют полную систему. Это вытекает из основной теоремы, утверждающей, что любая булева функция может быть записана в виде дизъюнкции минтермов (или конъюнкции макстермов).
Базис { /\,\/,¯ } не минимален, так как может быть уменьшен за счет выбрасывания из него /\ или \/. Это следует из формул де Моргана: