Булевы функции и их применение. Курс лекций
.pdfмулах операции на операции с действительными числами, получаем действительный многочлен, значения которого совпадают со значениями б.ф. на всех вершинах n-мерного куба.
Однако каждой б.ф. соответствует бесконечное множество равносильных действительных многочленов, например x = xn при любом натуральном n. Но если отказаться от использования переменных в степенях выше первой, то неоднозначность представления двоичных функций можно исключить. Таким образом, приходим к следующей теореме.
Теорема. О разложении б.ф. в виде действительного многочлена.
Любая б.ф. однозначно представляется в виде действительного многочлена, все коэффициенты которого являются целыми числами, а каждая переменная входит в полином в степени не выше первой.
– 21 –
Лекция 3. Спектральное представление булевых функций
Введение. В данной лекции будут рассмотрены два вида спектральных представлений б.ф., спектры Фурье и Уолша. Вводится разложение б.ф. в спектр Фурье, показывается его существование и единственность. Вводится определение действительно-значного аналога б.ф., показывается, что получается в результате преобразования Адамара-Уолша. Доказывается теорема о связи спектров Фурье и Уолша. Также будут даны: понятие скалярного произведения в поле Галуа из двух элементов, лемма о свойстве скалярного произведения и равенство Парсеваля.
Ключевые слова: скалярное произведение; спектр Фурье; спектр Уолша; матрица Адамара; действительно-значный аналог б.ф.; равенство Парсеваля.
3.1. Скалярное произведение в поле GF(2) и его свойства
Определение. Поставим в соответствие двоичному вектору a = (a1, a2,…, an) Vn линейную б.ф., называемую скалярным про-
изведением в поле GF(2): (a, x) = a1x1 a2x2 … an xn.
Определим на Vn функцию (–1)(a, x) с действительными значениями:
( 1)(a,x) 1, если (a,x) = 0;
− =
−1, если (a,x) = 1.
Всего имеется 2n функций вида (–1)(a, x), так как вектор a может принимать только 2n различных значений. Например, векторам
(0, 0,…, 0) и (1, 1,…, 1) соответствуют функции 1 и (−1)x1 ... xn .
Следующая лемма показывает, что все эти функции образуют ортогональную систему.
Лемма. О скалярном произведении.
Для любых векторов a, b Vn справедливо:
|
2n , |
если a = b; |
|
(−1)(a,x) (−1)(b,x) = |
|
|
|
n |
|
0, |
если a ≠ b. |
x V |
|
||
|
|
|
|
– 22 –
Доказательство. Заметим, что
|
2n , |
если a = 0; |
|
(−1)(a,x) = |
|
|
|
n |
|
0, |
если a ≠ 0. |
x V |
|
||
|
|
|
|
Действительно, при a = 0 каждое слагаемое суммы равно 1, а при a ≠ 0 линейная функция (a, x) принимает значения 0 и 1 по 2n–1 раза. Преобразуем исходную сумму и воспользуемся последним равенством для подсчета ее значения:
(−1)(a,x) (−1)(b,x) = (−1)(a,x)+(b,x) = (так как здесь важна
x Vn |
x Vn |
только четность) = (−1)(a,x) (b,x) = (−1)(a b,x).
x Vn |
x Vn |
Что и требовалось доказать.
3.2. Разложение булевой функции в ряд Фурье
Теорема. О разложении в ряд Фурье.
Для любой б.ф. имеется единственное разложение вида
f (x) = |
1 |
caf (−1)(a,x) , |
(3.1) |
n |
|||
2 |
a Vn |
|
|
где x = (x1, x2,…, xn) Vn и коэффициенты caf |
являются целыми |
||
числами, определяемыми равенствами: |
|
||
caf = f (x) (−1)(a,x). |
(3.2) |
||
x Vn |
|
|
|
Доказательство. Докажем верность разложения.
Подставляя в правую часть равенства (3.1) вместо коэффициен-
тов caf их выражения (3.2), имеем:
21n a Vn caf (−1)(a,x) = 21n a Vn y Vn f (y) (−1)(a,y)
= 21n y Vn f (y) a Vn (−1)(a,y) (−1)(a,x) .
(−1)(a,x) =
– 23 –
По лемме о скалярном произведении сумма внутри скобок равна 0 при x ≠ y и равна 2n при x = y.
21n a Vn caf (−1)(a,x) = 21n f (x) 2n = f (x).
Докажем единственность коэффициентов Фурье.
Если коэффициенты caf определены неоднозначно, то существует еще одно разложение б.ф. f (x) вида
f (x) = 21n a Vn caf (−1)(a,x).
Тогда, вычитая одно разложение из другого, получим:
(caf − caf )(−1)(a,x) = 0. a Vn
Умножим обе части этого равенства на (–1)(b, x), где b Vn. Суммируя полученные равенства по x Vn, имеем:
0 = |
(caf |
− caf )(−1)(a,x) (−1)(b,x) = |
|
x Vn a Vn |
|
|
|
= (caf |
− caf ) |
(−1)(a,x) (−1)(b,x) = (таккакпоследняя скобка |
|
a Vn |
|
x Vn |
|
равна 0 при (a ≠ b) и равна 2n |
при (a = b)) = 2n (cbf − cbf ). |
||
Отсюда следует, что cbf = cbf . Так как b – произвольный вектор из Vn, то получаем требуемое утверждение.
Определение. Вектор коэффициентов C(f) = (caf ), a Vn, назы-
вается спектром Фурье, а его координаты caf – коэффициентами
Фурье б.ф. f (x).
Определение. Преобразование вектора табличного задания б.ф. в спектр Фурье называется преобразованием Фурье указанной б.ф. Это преобразование задается матрицей Hn, называемой матрицей Адамара, которая задается следующим образом:
– 24 –
Hn = 1 |
1 [n] |
, |
1 |
−1 |
|
где [n] обозначает n-ю тензорную степень матрицы.
3.3. Преобразование Адамара-Уолша
Наряду с б.ф. f (x) рассматривают ее так называемый действи-
тельно-значный аналог fd (x), где
fd (x) = (−1)f (x).
Определение. Преобразование вектора табличного задания функции fd (x) с помощью матрицы H2n называется преобразова-
нием Адамара-Уолша б.ф. f (x). Получаемый вектор коэффициентов
Z ( f ) = (zaf ), |
a Vn , называют спектром Уолша, а его координаты – |
||||
коэффициентами Уолша б.ф. f (x): |
|
||||
zaf = (−1)f (x) (a,x). |
(3.3) |
||||
x Vn |
|
|
|
|
|
Спектры Фурье и Уолша всякой б.ф. взаимосвязаны. |
|
||||
Теорема. О связи спектров Фурье и Уолша. |
|
||||
Для всякой б.ф. f(x) и любого a Vn |
|
||||
|
−2сf |
,a ≠ 0; |
|
||
zaf = |
n |
|
а |
f |
|
2 |
|
− 2са ,a = 0. |
|
||
Доказательство. Из равенств (3.2) и (3.3) при a = 0 соответственно имеем:
с0f = |
|
|
|
f |
|
|
|
, z0f = 2n − 2 |
|
|
|
f |
|
|
|
. |
Nε, δ ( f ,g), где ε, δ {0,1}, |
|
|
|
|
|
|
|
|
|
|||||||||||
Обозначим для б.ф. f (x), g(x) через |
||||||||||||||||||
число векторов x из Vn, для которых |
f (x) = ε, g(x) = δ . Тогда из |
|||||||||||||||||
(3.2) и (3.3) при a ≠ 0 получаем: |
|
|||||||||||||||||
сaf |
= N0,1( f ,(a,x))− N1,1( f ,(a,x)), |
|
||||||||||||||||
zaf |
= N0,0 ( f ,(a,x))+ N1,1( f ,(a,x))− N1,0 ( f ,(a,x))− N0,1( f ,(a,x)). |
|||||||||||||||||
– 25 –
Отсюда следует утверждение теоремы, если учесть, что
N0,0 ( f ,(a,x)) = 2n−1 − N1,0 ( f ,(a,x)),
N1,1( f ,(a,x)) = 
f 
− N1,0 ( f ,(a,x)), N0,1( f ,(a,x)) = 2n − 
f 
+ N1,0 ( f ,(a,x)).
Что и требовалось доказать.
Из (3.2) следует, что с0f = 
f 
, т.е. 0≤ с0f ≤ 2n , а остальные коэффициенты Фурье б.ф. f (x) – целые числа из интервала [−2n−1, 2n−1]. Однако не всякий набор целых чисел с указанными
ограничениями является спектром Фурье некоторой б.ф. Коэффициенты Фурье (следовательно, и коэффициенты Уолша)
любой б.ф. связаны некоторыми соотношениями. Например, из (3.1) следует, что
21n a Vn caf = f (0).
Коэффициенты Уолша любой б.ф. связаны соотношениями ор-
тогональности, т.е. для b Vn |
||
zaf zaf b = 22n , b = 0; |
||
a V |
|
0, b ≠ 0. |
n |
|
|
Отсюда при b = 0 имеем так называемое равенство Парсеваля:
(zaf )2 = 22n. a Vn
– 26 –
Лекция 4. Полнота и замкнутость систем булевых функций
Введение. В данной лекции изучаются такие свойства множества б.ф. как замкнутость и полнота. Приводятся примеры замкнутых и незамкнутых множеств б.ф., полных систем б.ф. Вводится понятие шефферовой функции. Рассматриваются различные способы доказательства полноты системы б.ф. Описываются важнейшие замкнутые классы б.ф.: классы функций, сохраняющих константу, классы самодвойственных, монотонных, аффинных и линейных функций и их мощности. Формулируются и доказываются леммы о несамодвойственной, немонотонной и нелинейной функциях, критерий полноты системы б.ф. и следствия из него.
Ключевые слова: замыкание множества; замкнутый класс; полная система; шефферова функция; класс функций, сохраняющих константу; класс самодвойственных функций; класс монотонных функций; класс аффинных функций; класс линейных функций; критерий полноты системы б.ф.
4.1.Замыкание множества булевых функций, замкнутые классы, полные системы булевых функций
Пусть M P2.
Определение. Замыканием множества б.ф. M называется мно-
жество всех б.ф., представимых в виде формул над M. Обозначение: [M].
Свойства замыкания:
1.[M] M;
2.[[M]] = [M];
3.Если M1 M2, то [M1] [M2];
4.[M1] [M2] [M1 M2].
Примеры замыкания множеств:
1.M = P2, тогда [M] = P2.
2.M = {1, x1 x2}, тогда [M] – множество всех многочленов по
mod 2 вида α0 α1x1 … αn xn, называемых аффинными.
– 27 –
Определение. Класс M называется замкнутым классом б.ф., ес-
ли [M] = M.
Примеры замкнутых и незамкнутых множеств:
1.Класс M = P2 замкнут.
2.Класс M = {1, x1 x2} не замкнут.
3.Класс всех аффинных полиномов по mod 2 замкнут, так как при подстановке аффинных полиномов в аффинный полином вместо переменных получается аффинный полином.
Определение. Система P = {f1, f2,…, fs,…} из P2 называется
(функционально) полной системой, если любая б.ф. представима формулой над P.
Эквивалентное определение полноты системы б.ф.: система P
полна, если [P] = P2.
Следующая теорема связывает полноту одних систем с полнотой других систем.
Теорема. О связи полноты систем.
Пусть система P = {f1, f2,…} функций из P2 полна и каждая ее функция выражается формулой над системой Q = {q1, q2,…}. Тогда система Q полна.
Доказательство. Произвольная б.ф. h в силу полноты системы P выражается формулой над P:
h = C [f1, f2,…].
По условию теоремы f1 = C1[q1, q2,…], f2 = C2[q1, q2,…],… . В формуле для h исключаем вхождения функций из системы P, за-
меняя их формулами над Q. В результате получаем
h = C [C1[q1, q2,…], C2[q1, q2,…],…] = C [q1, q2,…]. Что и требова-
лось доказать.
Утверждение 1. О полноте системы функций K0.
Система функций K0 ={x,x1 x2,x1 x2} является полной системой функций.
Доказательство. Следует из существования СДНФ для каждой б.ф. Что и требовалось доказать.
Утверждение 2. О полноте системы функций K1.
Система функций K1 ={x,x1 x2} является полной системой функций.
– 28 –
Доказательство. Следует из утверждения 1 и теоремы о связи полноты систем, так как x1 x2 = x1 x2 . Что и требовалось доказать.
Утверждение 3. О полноте системы функций K2.
Система функций K2 = {x,x1 x2} является полной системой функций.
Доказательство. Следует из утверждения 2 и теоремы о связи полноты систем, так как x1 x2 = x1 x2 . Что и требовалось доказать.
Утверждение 4. О полноте системы функций K3.
Система функций K3 = {x1 | x2} является полной системой функций.
Доказательство. Следует из утверждения 2 и теоремы о связи полноты систем, так как x | x = x x = x и (x1 | x2 )|(x1 | x2 ) =
= x1 x2 = x1 x2 или x1 x2 = x1 x2; x1 x2 = x1 x2. Что и требовалось доказать.
Утверждение 5. О полноте системы функций K4.
Система функций K4 = {1,x1 x2,x1 x2} является полной системой функций.
Доказательство. Следует из утверждения 2 и теоремы о связи полноты систем, так как x = x 1. Что и требовалось доказать.
Утверждение 6. О полноте системы функций K5.
Система функций K5 = {x1 ↓ x2} является полной системой функций.
Доказательство. Следует из утверждения 3 и теоремы о связи полноты систем, так как x ↓ x = x и (x1 ↓ x2) ↓ (x1 ↓ x2) = x1 x2 или x1 ↓ x2 = x1 x2; x1 ↓ x2 = x1 x2. Что и требовалось доказать.
Определение 4. Б.ф. f (x1, x2,…, xn), образующая полную систе-
му, называется шефферовой функцией.
Примеры. Штрих Шеффера, стрелка Пирса.
– 29 –
4.2.Важнейшие замкнутые классы булевых функций
ВP2 к замкнутым относятся классы, описанные ниже.
Определение. Класс Т0 = {f P2 | f (0, 0,…, 0) = 0} – класс б.ф.,
сохраняющих константу 0.
Пример 1. 0, x, x1 x2, x1 x2, x1 x2 Т0.
Пример 2. 1, x Т0.
Покажем, что класс Т0 замкнут. Так как x Т0, достаточно пока-
зать, что f (f1,…, fm) Т0, если f, f1,…, fm Т0.
Справедливость этого утверждения следует из цепочки равенств:
f (f1(0,…, 0),…, fm(0,…, 0)) = f (0,…, 0) = 0.
Определение. Класс Т1 = {f P2 | f (1, 1,…, 1) = 1} – класс б.ф.,
сохраняющих константу 1.
Пример 1. 1, x, x1 x2, x1 x2 Т1.
Пример 2. 0, x, x1 x2 Т1.
Класс T1 состоит из б.ф., двойственных к функциям из Т0. Его замкнутость показывается аналогично.
Определение. Класс S = {f P2 | f = f*} – класс самодвойственных функций.
Пример. x, x, x1 x2 x1 x3 x2 x3 S.
Докажем замкнутость класса S. Пусть g = f (f1, f2,…, fm), где f, f1, f2,…, fm S. Тогда
g* = f *( f1*, f2*,..., fm*) = f ( f1, f2,..., fm ) = g .
Определение. Класс M = {f P2 | если a ≤ b, то f (a) ≤ f (b)} –
класс монотонных функций, где ≤ – отношение частичного по-
рядка.
Определение. Вектор a = (a1, a2,…, an) не превосходит вектор b = (b1, b2,…, bn), a, b Vn, если ai ≤ bi для любого i =1,n .
Обозначение: a ≤ b.
Пример 1. 0, 1, x, x1 x2, x1 x2 M.
Пример 2. x , x1 x2 M.
– 30 –
