Вы находитесь на странице: 1из 99

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

имени М.В. ЛОМОНОСОВА


МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

А. В. Чашкин
ЛЕКЦИИ
ПО ДИСКРЕТНОЙ МАТЕМАТИКЕ
Учебное пособие

Москва · 2007
А. В. Чашкин. Лекции по дискретной математике.

Учебное пособие содержит материалы лекций и семинарских занятий, составивших


обязательный курс дискретной математики, прочитанный автором в осеннем семестре
2006/07 учебного года на механико-математическом факультете Московского государ-
ственного университета им. М. В. Ломоносова. Для студентов и аспирантов. Предвари-
Оглавление
тельная версия.

1 Комбинаторные числа и тождества 6


1.1 Перестановки, размещения, сочетания . . . . . . . . . . . . . . 6
1.2 Бином Ньютона . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Формула включений и исключений . . . . . . . . . . . . . . . . 11
1.4 Факториальные степени . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Метод траекторий . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Оценки комбинаторных функций 20


2.1 Оценки n! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Формула Стирлинга . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Биномиальные коэффициенты . . . . . . . . . . . . . . . . . . . 27
2.4 Суммы биномиальных коэффициентов . . . . . . . . . . . . . . 28
2.5 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Производящие функции 33
3.1 Линейные рекуррентные последовательности . . . . . . . . . . 33
3.2 Число неприводимых многочленов . . . . . . . . . . . . . . . . 38
3.3 Производящие функции множеств . . . . . . . . . . . . . . . . 40
3.4 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4 Теорема Пойа 48
4.1 Действие группы на множестве . . . . . . . . . . . . . . . . . . 48
4.2 Лемма Бернсайда . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Цикловой индекс . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Функции и их классы эквивалентности . . . . . . . . . . . . . 52
4.5 Основная теорема . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5 Графы 57
5.1 Основные понятия и определения . . . . . . . . . . . . . . . . . 57
5.2 Теорема Холла . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 Теорема Менгера . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4 Теорема Дилуорса . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.5 Раскраски вершин . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.6 Раскраски ребер . . . . . . . . . . . . . . . . . . . . . . . . . . . 70


c А. В. Чашкин, 2007 г. 3
4 Оглавление Оглавление 5

5.7 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 12 Коды, исправляющие ошибки 162


12.1 Определения и простейшие свойства . . . . . . . . . . . . . . . 163
6 Булевы функции 75 12.2 Коды Рида–Малера . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.1 Булев куб . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 12.3 Коды БЧХ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.2 Булевы функции . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 12.4 Полиномиальное представление кодов БЧХ . . . . . . . . . . . 173
6.3 Формулы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 12.5 Коды, исправляющие произвольные ошибки . . . . . . . . . . 175
6.4 Нормальные формы . . . . . . . . . . . . . . . . . . . . . . . . 82 12.6 Инъективные линейные операторы . . . . . . . . . . . . . . . . 176
12.7 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.5 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A Конечные поля 182
7 Полные системы булевых функций 89 A.1 Циклические группы . . . . . . . . . . . . . . . . . . . . . . . . 182
7.1 Замкнутые классы булевых функций . . . . . . . . . . . . . . 89 A.2 Кольца . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2 Монотонные булевы функции . . . . . . . . . . . . . . . . . . . 91 A.3 Кольцо многочленов . . . . . . . . . . . . . . . . . . . . . . . . 184
7.3 Критерий полноты . . . . . . . . . . . . . . . . . . . . . . . . . 94 A.4 Поле многочленов . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.4 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 A.5 Структура конечного поля . . . . . . . . . . . . . . . . . . . . . 188

8 Сложность булевых функций 99 Литература 195


8.1 Программы и схемы . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.2 Схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.3 Свойства минимальных схем . . . . . . . . . . . . . . . . . . . . 106
8.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.5 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9 Реализация арифметических операций 121


9.1 Сложение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.2 Вычитание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
9.3 Вычисление суммы нескольких целых чисел . . . . . . . . . . 126
9.4 Умножение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9.5 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

10 Универсальные методы синтеза схем 133


10.1 Метод Шеннона . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
10.2 Метод Лупанова . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10.3 Нижние мощностные оценки . . . . . . . . . . . . . . . . . . . . 137
10.4 Частичные функции . . . . . . . . . . . . . . . . . . . . . . . . 140
10.5 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

11 Алфавитное кодирование 149


11.1 Разделимые и префиксные коды . . . . . . . . . . . . . . . . . 149
11.2 Оптимальные коды . . . . . . . . . . . . . . . . . . . . . . . . . 152
11.3 Стоимость кодирования . . . . . . . . . . . . . . . . . . . . . . 153
11.4 Блочное кодирование . . . . . . . . . . . . . . . . . . . . . . . . 155
11.5 Универсальное блочное кодирование . . . . . . . . . . . . . . . 156
11.6 Задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
1.1. Перестановки, размещения, сочетания 7

способами. Перемножив числа способов, которыми можно выбрать первый,


второй, . . . , (n − 1)-й и n-й элементы, получим величину, равную числу
способов, которыми можно упорядочить n-элементное множество. Таким
образом,
Pn = n · (n − 1) · . . . · 2 · 1 = n! (1.1)
Лекция 1 Размещением из n элементов по k называется произвольное k-элементное
упорядоченное подмножество n-элементного множества. Для обозначения

Комбинаторные числа и
числа размещений из n элементов по k используется символ Akn . Рассуж-
дениями аналогичными приведенным выше при определении величины Pn ,

тождества
нетрудно показать, что
n!
Akn = n(n − 1) · . . . · (n − k + 1) = . (1.2)
(n − k)!
Сочетанием из n элементов по k называется произвольное k-элементное
подмножество n-элементного
  множества. Число сочетаний из n элементов
1.1 Перестановки, размещения, сочетания по k обозначается через nk (иногда также используется символ Cnk ). Так как
из одного k-элементного подмножества можно сформировать k! различных
Конечное множество A = {a1 , . . . , an } называется упорядоченным, если
упорядоченных подмножеств, то из (1.2) легко следует, что
каждому его элементу поставлен в соответствие номер — натуральное чис-
 
ло, не превосходящее n так, что разным элементам соответствуют разные n n! n(n − 1) · . . . · (n − k + 1)
числа. Упорядоченные множества будем называть также наборами. Эле- = = . (1.3)
k (n − k)!k! k(k − 1) · . . . · 2 · 1
менты упорядоченных множеств будем выписывать в порядке возрастания
их номеров — элементы с меньшими номерами располагаются левее эле- Из равенства (1.3) легко вытекают следующие часто используемые свойства
ментов с бо́льшими номерами. Для того чтобы различать упорядоченные сочетаний:
         
и неупорядоченные множества, элементы упорядоченных множеств будем n n n n−1 n−1
= , = + . (1.4)
заключать в круглые, а не в фигурные скобки. Например, (a1 , a2 ) и (a2 , a1 ) k n−k k k−1 k
— два различных упорядоченных множества, а {a1 , a2 } и {a2 , a1 } — одно и
то же неупорядоченное множество. Второе из этих равенств докажем также при помощи комбинаторных рас-
суждений. Пусть A — множество всех k-элементных подмножеств множе-
Перестановкой n-элементного множества A = {a1 , . . . , an } называется
ства {1, 2, . . . , n}. Это множество разобъем на два класса A1 и A2 так, что в
любое упорядоченное множество (ai1 , . . . , ain ), состоящее из элементов A,
первый класс отнесем все подмножества, содержащие n, а во второй класс
в котором каждый элемент из A встречается ровно один раз. Например, у
— подмножества
n−1  без этого элемента.
n−1 Нетрудно видеть, что A1 состоит из
трехэлементного множества {a1 , a2 , a3 } существует ровно шесть различных
перестановок: k−1 подмножеств, а A2 — из k . Так как каждое k-элементное подмно-
жество попадает nлибо в класс
 n−1  n−1A1 , либо в класс A2 , то |A| = |A1 | + |A2 |, и,
(a1 , a2 , a3 ), (a1 , a3 , a2 ), (a2 , a1 , a3 ), следовательно, k = k + k−1 .
Сочетанием с повторениями из n элементов по k называется k-элемент-
(a2 , a3 , a1 ), (a3 , a1 , a2 ), (a3 , a2 , a1 ). ное множество, состоящее из элементов n видов. Например, из трех элемен-
тов a1 , a2 и a3 можно составить шесть сочетаний по два элемента:
Найдем число Pn различных перестановок n-элементного множества.
Для этого из n-элементного множества будем последовательно выбирать a1 a1 , a1 a 2 , a1 a 3 , a2 a 2 , a2 a 3 , a3 a 3 .
элементы и формировать из них упорядоченное множество: первый выбран-
Каждое сочетание с повторениями из n элементов по k однозначно опреде-
ный элемент станет первым элементом упорядоченного множества, второй
ляется числом входящих в него элементов каждого вида. Пусть в некоторое
— вторым и т. д. Нетрудно видеть, что первый элемент можно выбрать n
такое сочетание входит mi элементов i-го вида, где i = 1, 2, . . . , n. Этому со-
способами. Второй элемент будет выбираться из (n − 1) оставшихся эле-
четанию поставим в соответствие набор
ментов, поэтому его можно выбрать (n − 1) способом. Продолжая выбор,
заметим, что после выбора первых k элементов останется (n − k) невыбран- . . 1 0 1 .
1 . . . 1 0 . . . . . . 0 1 .
. . 1 (1.5)
ных элементов. Следовательно, (k + 1)-й элемент можно выбрать (n − k) m1 m2 mn

6
8 Лекция 1. Комбинаторные числа и тождества 1.2. Бином Ньютона 9

из k единиц, сгруппированных в n блоков, и n − 1 нулей, разделяющих которое справедливо при |x| < 1. Для доказательства (1.8) воспользуемся
эти блоки. В этом наборе первый блок из m1 единиц соответствует элемен- хорошо известным частным случаем формулы (1.8)
∞— формулой суммы
там первого вида, второй блок из m2 единиц — элементам второго вида, и убывающей геометрической прогрессии (1 − x)−1 = k=0 xk . Тогда
т. д. Приведенным выше двухэлементным сочетаниям соответствуют следу-
ющие шесть наборов: (1 − x)−n = (1 + x + x2 + . . . )(1 + x + x2 + . . . ) · · · (1 + x + x2 + . . . ) . (1.9)
  
n раз
1100, 1010, 1001, 0110, 0101, 0011.
Нетрудно видеть, что после раскрытия скобок в правой части (1.9) коэффи-
Очевидно, что набор вида (1.5) однозначно определяет соответствующее циент при k-й степени переменной x будет равен числу способов, которыми
ему сочетание с повторениями. Поэтому число Hnk сочетаний с повторени- можно выбрать n степеней переменной x из n рядов 1 + x + x2 + . . . так,
ями из n элементов по k равно числу наборов из k единиц и n − 1 нулей. чтобы сумма этих степеней была равна k. Рассматривая выбор xp из q-го
Каждый такой набор можно рассматривать как набор значений характе- ряда 1 + x + x2 + . . . в (1.9) как выбор p элементов q-го вида из n возмож-
ристической функции k-элементного подмножества (n + k − 1)-элементного ных видов, заключаем, что коэффициент k
 при x равен числу сочетаний с
множества. Следовательно, повторениями их n элементов по k, т. е. n+k−1 k .
  Рассмотрим несколько примеров использования формулы бинома Нью-
n+k−1 (n + k − 1)!
Hnk = = . тона. Подставляя в (1.7) вместо x единицу и минус единицу получим тож-
k (n − 1)!k! дества
n   n  
n n
= 2n , (−1)k = 0.
1.2 Бином Ньютона k=0
k k
k=0

Числа сочетаний и сочетаний с повторениями появляются в известной фор- Вычисляя сумму и разность этих тождеств и деля результаты пополам,
муле бинома Ньютона получаем, что
n/2   n/2  

y(y − 1) . . . (y − k + 1) n n
(1 + x)y = 1 + xk (1.6) = 2n−1 , = 2n−1 .
k! 2k 2k + 1
k=1 k=0 k=0

в случаях, когда y принимает целые положительные и целые отрицатель- Дифференцирование (1.7) с подстановкой единицы вместо x и интегриро-
ные значения, соответственно. Поэтому эти числа называются также би- вание (1.7) по x от нуля до единицы дают следующие тождества
номиальными коэффициентами. Покажем, что их появление в (1.6) не слу-

n  
n  
чайно. Для этого установим справедливость формулы бинома Ньютона при n 1 n 2n − 1
целых значениях y при помощи комбинаторных рассуждений. k = n2n−1 , = .
k k+1 k n+1
k=0 k=0
Если показатель степени бинома — целое неотрицательное число, то ра-
венство (1.6) записывается в виде Раскроем скобки в равенстве (1 + x)n (1 + x)m = (1 + x)n+m . Так как ко-
n 
 эффициенты при xp в правой и левой частях равны, то из (1.7) и правила
n k
(1 + x)n = x . (1.7) умножения многочленов следует равенство
k
k=0 p  
  
n m n+m
Справедливость равенства (1.7) следует из того, что после раскрытия ско- = , (1.10)
k p−k p
бок в выражении (1 + x)n коэффициент при k-й степени переменной x будет k=0

равен числу способов, которыми можно выбрать k раз переменную x из n называемое сверткой Вандермонда. Следующее тождество
двучленов (1 + x).
Если показатель степени бинома — целое отрицательное число, то по- 
m−1
n+k
 
n+m

сле изменения знака перед переменной x равенство (1.6) превращается в = (1.11)
n n+1
равенство k=0
∞ 

n+k−1 k нетрудно доказать индукцией по m.
(1 − x)−n = x , (1.8)  Действительно,
  при m = 1 рассматри-
k=0
k ваемое тождество тривиально: nn = n+1
n+1 . Предположим, что оно верно
10 Лекция 1. Комбинаторные числа и тождества 1.3. Формула включений и исключений 11

при m − 1. Тогда Для этого множество всех p-элементных подмножеств (n + m)-элементного


множества A = {1, 2, . . . , n + m} разобъем на p классов A1 , . . . , Ap так, что

m−1
n+k
 
m−2
n+k
 
n+m−1

класс Ak будет состоять из всех тех подмножеств множества A, в кото-
= + =
n n n рые входит ровно k чисел, каждое из которых не превосходит n, и p − nk
k=0 k=0
      чисел, каждое из которых больше n. Первые
n+m−1 n+m−1 n+m  m  k чисел можно выбрать k
= + = . способами, а оставшиеся p − k чисел — p−k способами (если k > n или
n+1 n n+1 n
p − k> m,
 то такого подмножества не существует и, соответственно,   m k = 0
m
Тождество (1.11) доказано. или p−k = 0). Следовательно, каждый класс Ak состоит из nk p−k под-
Далее будем использовать обозначения n!! для произведения всех тех множеств. Наконец заметим, что каждое p-элементное подмножество мно-

p
натуральных чисел, которые не превосходят n и имеют такую же четность жества A принадлежит одному из классов Ak , т. е. |A| = k=0 |Ak |. Тожде-
как и n, т. е. ство (1.10) доказано.
Теперь приведем комбинаторное доказательство тождества (1.11):
2n!! = 2n(2n − 2) · . . . · 2, (2n + 1)!! = (2n + 1)(2n − 1) · . . . · 1.

Разложим в ряд функцию ( 1 − 4x)−1 . Нетрудно видеть, что 
m−1
n+k
 
n+m

= .

n n+1
1 − 21 (− 12 − 1) · · · (− 12 − k + 1) k=0
√ =1+ (−4)k xk =
1 − 4x k=1
k! Множество всех (n + 1)-элементных подмножеств (n + m)-элементного мно-


жества {1, 2, . . . , n + m} разобъем на m классов A1 , . . . , Am так, что в j-й
(− 21 )(− 32 ) · · · (− 2k−1
2 ) 2k (2k − 1)!! k
=1+ (−4)k xk = 1 + x = класс Aj попадут все те подмножества, у которых минимальный
 элемент
k! k! равен j. Нетрудно видеть, что Aj состоит из n+m−j подмножеств. Поэто-
k=1 k=1 n

2k k!(2k − 1)!! k ∞
(2k)!!(2k − 1)!! k му, полагая k = m − j, имеем
=1+ x =1+ x =
k!k! k!k!   m m   1   m−1
n + k 
k=1 k=1 n+m n+m−j n+m−j

(2k)! ∞
2k  = |Aj | = = = .
n+1 n n n
=1+ xk = xk . j=1 j=1 j=m k=0
k!k! k
k=1 k=0

Поэтому 1.3 Формула включений и исключений


∞   2 k 
1 2k k
∞ 2k − 2m2m Мощным средством при решении комбинаторных задач является формула
= x = xk .
1 − 4x k m=0
k−m m включений и исключений, позволяющая находить мощность объединения
k=0 k=0
различных множеств, если известны мощности их пересечений.

k
Таким образом, учитывая разложение (1 − 4x)−1 = 4k xk , приходим
m=0 Теорема 1.1. Для любых конечных множеств A1 , . . . , An справедливо
к тождеству
k    равенство
2k − 2m 2m
= 4k .
m=0
k−m m |A1 ∪ · · · ∪ An | = |Ai | − |Ai1 ∩ Ai2 | + . . .
1≤i≤n 1≤i1 <i2 ≤n
Использование равенства (1.6) является мощным средством получения
различных соотношений с биномиальными коэффициентами. Однако в ря- · · · + (−1)k+1 |Ai1 ∩ · · · ∩ Aik | + . . . (1.12)
де случаев более действенными оказываются методы, использующие ком- 1≤i1 <···<ik ≤n
бинаторную природу биномиальных коэффициентов. В качестве примера · · · + (−1)n+1 |A1 ∩ . . . ∩ An |.
таких методов рассмотрим комбинаторные доказательства тождеств (1.10)
и (1.11). Сначала докажем равенство (1.10): Доказательство. Пусть целое m не меньше нуля и не больше n. Допу-
p      стим, что некоторый
  элемент a принадлежит ровно m множествам. mТогда
 a
n m n+m принадлежит m
= . 2 попарным пересечениям множеств A 1 ,. . . , An , 3 трой-
m
k p−k p ным пересечениям этих множеств, и, в общем случае, k пересечениям по
k=0
12 Лекция 1. Комбинаторные числа и тождества 1.4. Факториальные степени 13

k множеств. Следовательно, в сумме, стоящей в правой части (1.12), этот 1.4 Факториальные степени
элемент будет учтен ровно
        Произведение xk = x(x − 1) · . . . · (x − k + 1) называется k-й нижней факто-
m m m m риальной степенью числа x, а произведение xk = x(x + 1) · . . . · (x + k − 1)
− + · · · + (−1)k+1 + · · · + (−1)m+1 . (1.13)
1 2 k m — k-й верхней факториальной степенью этого числа. Факториальные сте-
пени естественным образом возникают при решении комбинаторных задач
раз. Из (1.7) следует, что — например nk равно числу упорядоченных k-элементных подмножеств n-
        элементного множества.
m m m m n n
(1 − 1)m = 1 − + − · · · + (−1)k + · · · + (−1)m . Коэффициенты и в равенствах
1 2 k m k k
Поэтому сумма (1.13) равна единице. Следовательно, в правой части (1.12) n  
n  

n n
каждый элемент, принадлежащий объединению множеств Ai , учитывается xn = xk , xn = xk
ровно один раз и, поэтому, вся сумма равна мощности объединения этих k k
k=0 k=0
множеств. Теорема доказана.
называются числами Стирлинга первого и второго рода, соответственно.
Функция ϕ(m), равная количеству натуральных чисел, не превосходя- Так как
щих и взаимнопростых с m, называется функцией Эйлера. В следующей
теореме при помощи формулы включений и исключений для функции Эй- (−x)n = (−x)(−x + 1)(−x + 2) . . . (−x + (n − 1)) = (−1)n xn ,
лера устанавливается явная формула.
то, учитывая равенство (−1)m = (−1)−m , получаем формулу
Теорема 1.2. Если m = pk11 pk22 . . . pknn , то
n  
n  

1  1 1 n n
ϕ(m) = m 1 − 1− ... 1 − . xn = (−1)n (−x)n = (−1)n (−1)k xk = (−1)n−k xk
p1 p2 pn k k
k=0 k=0

Доказательство. Пусть множество Ai состоит из всех натуральных чи- для выражения нижней факториальной степени через обычные степени.
сел, каждое из которых не превосходит m и делится на pi . Тогда множество Аналогичным образом получается равенство
A1 ∪ · · · ∪ An состоит из всех натуральных чисел, каждое из которых не пре-
n  

восходит m и имеет с m хотя бы один общий делитель больший единицы. n
Следовательно, xn = (−1)n−k xk
k
k=0
ϕ(m) = m − |A1 ∪ · · · ∪ An |.
Нетрудно видеть, что |Ai1 ∩· · ·∩Ais | = pi m для любых i1 , . . . , is . Поэтому для выражения обычной степени числа x через его верхние факториальные
1 ···pis
степени.
для вычисления мощности объединения множеств Ai можно воспользовать-
Из определения чисел Стирлинга легко следует, что равенства
ся формулой включений–исключений:
       
n n n n
|A1 ∪ · · · ∪ An | = |Ai | + · · · + (−1)s+1 |Ai1 ∩ · · · ∩ Ais | + . . . = 1, = 0, = 1, =0 (1.14)
n 0 n 0
1≤i≤n 1≤i1 <···<is ≤n
m m
= + · · · + (−1)s+1 + ... справедливы при всех n ≥ 1. Для вычисления чисел Стирлинга с нижним
pi pi1 · · · pis индексом, не равным верхнему индексу или нулю, можно воспользоваться
1≤i≤n 1≤i1 <···<is ≤n
простыми рекуррентными равенствами
Теперь осталось заметить, что после раскрытия скобок в формуле            
n n−1 n−1 n n−1 n−1
1  1 1  k
=
k−1
+ (n − 1)
k
,
k
=
k−1
+k
k
, (1.15)
m−m 1− 1− ... 1 −
p1 p2 pn
которые, как нетрудно заметить, похожи на соответствующее равенство для
получится такое же выражение, как и в правой части последнего равенства. биномиальных коэффициентов из (1.4). Покажем справедливость первого
Теорема доказана. из равенств (1.15). Сделаем это индукцией по n. В основание индукции
14 Лекция 1. Комбинаторные числа и тождества 1.4. Факториальные степени 15

положим равенства для чисел Стирлинга первого рода из (1.14) при n = 1. Аналогичная сумма чисел Стирлинга второго рода
Тогда
n  

n  
n
n k Bn =
x = xn = xn−1 (x − n + 1) = xn−1 · x + xn−1 · (n − 1) = k
k k=0
k=1

n−1 
n−1 k n − 1 
n−1 называется n-м числом Белла и очевидно равна числу всех разбиений n-
=x x + (n − 1) xk = элементного множества. Для чисел Белла справедлива следующая рекур-
k k
k=0 k=0 рентная формула:

n−1
n−1
 
n−1
  
n−1 n n  
n
= + (n − 1) xk + x . Bn+1 = Bk , (1.16)
k−1 k n−1 k
k=1 k=0

Первое равенство в (1.15) доказано. Второе равенство доказывается анало- где B0 = 1. Для доказательства равенства (1.16) достаточно заметить, что
 
гично. существует ровно nk Bk разбиений множества из n + 1 элемента, в которых
Равенства (1.15) вместе с равенствами (1.14) позволяют придать числам
n (n + 1)-й элемент попадает в (n − k + 1)-элементное подмножество.
Стирлинга простой комбинаторный смысл. Покажем, что число рав- Далее, используя комбинаторный смысл чисел Стирлинга второго рода,
k покажем, что
но количеству способов, которыми n-элементное множество можно разбить   k
ровно на k непустых подмножеств. Прежде всего отметим, что n-элементное n (k − m)n
= (−1)m . (1.17)
множество можно единственным образом разбить на n непустых подмно- k
m=0
m!(k − m)!
жеств и не существует ни одного разбиения такого множества на нулевое
число подмножеств. Следовательно, число разбиений одноэлементного мно- Сначала решим вспомогательную задачу — найдем число способов R(n, k),
1 1 которыми можно разложить n разных предметов по k нумерованным ящи-
жества на k непустых подмножеств при k = 0 и 1 равно и , соот- кам так, чтобы не было пустых ящиков. В общем случае, когда допуска-
0 1
ветственно. Далее предположим, что число разбиений m-элементного мно- ются размещения с пустыми ящиками, разложить n предметов по k ящи-
  кам можно k n способами. Из всех таких размещений составим k подмно-
m
жества ровно на k непустых подмножеств равно при всех m ≤ n − 1. жеств A1 , . . . , Ak , так, что Ai будет состоять из всех тех размещений, при
k
Затем рассмотрим разбиения множества {1, 2, . . . , n} на k непустых под- которых i-й ящик остается пустым. Тогда R(n, k) = k n − |A1 ∪ · · · ∪ Ak |,
множеств. Все разбиения разобьем на два класса. К первому отнесем те где мощность объединения находится при помощи формулы включений–
разбиения, в которых элемент n образует самостоятельное подмножество. исключений. Следовательно,
Очевидно, что в силу сделанного предположения первый класс состоит из
 
n−1 R(n, k) = k n − |A1 ∪ · · · ∪ Ak | = k n − |Ai | + |Ai1 ∩ Ai2 | − . . .
подмножеств. Ко второму классу отнесем все остальные разбие-
k−1 1≤i≤k 1≤i1 <i2 ≤k
ния. Каждое разбиение из второго класса можно получить из некоторого
· · · + (−1)m |Ai1 ∩ · · · ∩ Aim | + · · · + (−1)k |A1 ∩ · · · ∩ Ak |.
разбиения множества {1, 2, . . . , n − 1} на k непустых подмножеств, если к
1≤i1 <···<im ≤k
одному из этих k подмножеств добавить элемент n. Следовательно, опять
 
n−1 Размещения из множества Ai1 ∩ · · · ∩ Aim можно получить, размещая пред-
в силу сделанного предположения второй класс состоит из k под-
k меты по ящикам, номера которых не принадлежат множеству {i1 , . . . , im }.
множеств. Теперь доказываемое утверждение следует из второго равенства
Поэтому
в (1.15). Похожим образом можно показать, что число Стирлинга первого
  |Ai1 ∩ · · · ∩ Aim | = (k − m)n .
n
рода равно числу элементов симметрической группы Sn , каждый из
k Подставляя это равенство в предыдущую формулу и учитывая, что число
которых представляется в виде произведения ровно k непересекающихся k
различных множеств Ai1 ∩ · · · ∩ Aim равно m , получаем
циклов. Отсюда немедленно следует, что
n  
k   k
n k (k − m)n k!
= n! R(n, k) = (−1)m (k − m)n = (−1)m . (1.18)
k=0
k
m=0
m m=0
m!(k − m)!
16 Лекция 1. Комбинаторные числа и тождества 1.6. Задачи 17

Нетрудно видеть, что число R(n, k) ровно в k! раз больше числа таких раз- Доказательство. Каждая траектория α, которая начинается в начале
мещений n различных предметов по k ненумерованным ящикам, при кото- координат A = (0, 0), заканчивается в точке B = (2n, 0) и опускается ниже
рых нет ни одного пустого ящика. Рассматривая содержимое каждого нену- оси x, обязательно имеет хотя бы одну общую точку с прямой y = −1. Пусть
мерованного ящика как подмножество множества размещаемых предметов, C — первая точка на прямой y = −1, в которую приходит траектория α.
n
Траектории α поставим в соответствие траекторию α , которая начинает-
получаем, что · k! = R(n, k). Теперь равенство (1.17) легко следует из
k
(1.18). y6

1.5 Метод траекторий


r r x-
В задачах, связанных с перечислением элементов различных множеств, ча- A = (0, 0) B = (2n, 0)
сто можно существенно упростить исходную задачу, если отобразить рас- r C
сматриваемое множество в новое множество, элементы которого обладают y = −1
rD = (0, −2)
какими-либо свойствами, облегчающими их подсчет. Именно таким образом
выше была найдена формула для числа сочетаний с повторениями. Теперь
используем этот прием в более сложной задаче — задаче о числе последова-
тельностей длины 2n из n нулей и n единиц, в которых в любом начальном
отрезке единиц не меньше чем нулей. Множество таких последовательно- Рис. 1.2
стей обозначим через N2n . Описываемый ниже метод называется методом ся в точке D = (0, −2), заканчивается в точке B = (2n, 0), совпадает с α
траекторий и представляет независимый от рассматриваемой задачи инте- между точками C и B, а между точками A и C является отражением α от-
рес. носительно прямой y = −1 (см. рис. 1.2). Очевидно, что такое соответствие
Каждой последовательности из нулей и единиц поставим в соответствие является взаимнооднозначным. Лемма доказана.
выходящую из начала координат плоскости (x, y) ломаную, составленную
Каждая траектория, начинающаяся в точке D и заканчивающаяся в
из звеньев  и  — векторов с координатами (1, 1) и (1, −1), в которой звено
точке B, состоит из n + 1 звеньев вида  и n − 1 звеньев вида . Поэтому
 соответствует единице, а звено  — нулю. Такие ломаные будем назы- 2n
общее число таких траекторий равно n+1 . Следовательно, число искомых
вать траекториями. На рис. 1.1 изображены траектории, соответствующие
траекторий равно
 2nразности
 числа всех траекторий из начала координат в
последовательностям 100110 и 101100. Так как в каждой последовательно-
точку (2n, 0) и n+1 , т. е.
6 6        
y y @ 2n 2n 2n n  1 2n
R
@ |N2n | = − = 1− = .
n n+1 n n+1 n+1 n
r @
R
@ @
Rr
@ - r @@
R  @@
Rr -
@  x x 1 2n
 
R
@ Число n+1 n называется n-м числом Каталана.

Рис. 1.1
1.6 Задачи
сти из N2n число нулей равно числу единиц, то все траектории, соответ-
ствующие последовательностям из N2n , будут соединять начало координат 1.1. На плоскости проведено n прямых так, что никакие две не парал-
с точкой (2n, 0), а так как в любом начальном отрезке каждой такой по- лельны и никакие три не пересекаются в одной точке. На сколько
следовательности единиц не меньше чем нулей, то все траектории будут областей делят плоскость эти прямые?
проходить выше оси x так, как правая траектория на рис. 1.1. Посчитать
1.2. Найти число (m, n)-матриц из ±1, у которых произведения всех эле-
такие траектории можно при помощи принципа отражения, суть которого
ментов каждой строки и каждого столбца положительны.
заключена в следующей лемме.
1.3. За круглым столом сидят n человек. Сколькими способами из них
Лемма 1.1. Число траекторий, начинающихся в начале координат, за- можно выбрать k человек так, чтобы среди выбранных не было со-
канчивающихся в точке (2n, 0) и пересекающих ось x, равно числу траек- седей.
торий, начинающихся в точке (0, −2) и заканчивающихся в точке (2n, 0). 1.4. Найти число натуральных решений уравнения x1 + · · · + xk = n.
18 Лекция 1. Комбинаторные числа и тождества 1.6. Задачи 19

1.5. Сколько существует n-разрядных натуральных чисел, у которых 1.15. Доказать равенство
цифры находятся в невозрастающем порядке?

m
(n + m + 1)n+1
1.6. Показать, что (n + k)n = .
n+1
k=0
n!
(x1 + · · · + xk )n = xm1 · · · xm
k .
k

m1 +···mk =n
m1 ! · · · mk ! 1 1.16. Показать, что
n  
n  

n k n−k n k n−k
1.7. Найти       (a + b)n = a b , (a + b)n = a b .
n n n k k
k=0 k=0
1−3 +9 − 27 + ...
2 4 6
1.17. Сколькими различными способами можно разместить k предметов
1.8. Найти       по n ящикам если: a) предметы и ящики различимы; b) предметы и
4n 4n 4n ящики неразличимы; c) предметы различимы, ящики неразличимы;
− + − ...
0 2 4 d) предметы неразличимы, ящики различимы.
1.18. В квадрате с длиной стороны 6 находятся три фигуры, площади
1.9. Найти которых равны 17, 18 и 19. Доказать, что среди этих фигур найдутся
            две, площадь пересечения которых не меньше 6.
n n n n n n
+ + + + + + .... 1.19. Пусть A — множество из 60-ти элементов, A1 , A2 , A3 , A4 — подмно-
1 2 5 6 9 10 жества множества A, каждое из которых состоит из 30 элементов.
Показать, что найдутся два подмножества, пересечение которых со-
1.10. Найти стоит не менее чем из 10 элементов.
        1.20. Найти число перестановок π из Sn таких, что π(k) = k для k =
2n 2n − 1 2n − 2 n 1, . . . , n.
− + − · · · + (−1)n .
0 1 2 n 1.21. Найти число последовательностей из n единиц и n нулей, в каждой
из которых среди первых i знаков, i = 1, 2, . . . , 2n, число единиц
1.11. Найти может превышать число нулей не более чем на 5.
            1.22. Найти число траекторий, начинающихся в начале координат, закан-
n n−1 n n n n+1 n 2n − 1 чивающихся в точке (n, m) и лежащих выше оси x.
− + − · · · + (−1)n .
0 0 1 1 2 2 n n 1.23. Найти число траекторий, начинающихся в начале координат, закан-
чивающихся в точке (n, m), лежащих выше оси x и ниже прямой
1.12. Доказать равенство y = m.
       
n−2 n−3 k−2 n
+2 + · · · + (n − k + 1) = .
k−2 k−2 k−2 k

1.13. Доказать равенство


          
n−3 2 n−4 3 k−3 n−k+2 n
+ + ···+ = .
k−3 2 k−3 2 k−3 2 k

1.14. Доказать равенство


 n

2n
m
πk (n − 2r)πk
= cosn cos .
r + km m m m
k k=1
2.1. Оценки n! 21

Тогда, учитывая, что n! ≥ 2n−1 при n ≥ 2, имеем


 n+1  n  n
n+1 n+1 n + 1 n n 1 n+1
= = 1+ ≤
3 3 3 3 n 3
     
n 1 n 1 1 n+1
Лекция 2 ≤ n! 1 + 1 +
2 n2
+
3 n3
+ ···+ n
n 3
<
 
n2 1 n3 1 nn 1 n + 1
< n! 1 + 1 + + + ···+ <
Оценки комбинаторных функций 
2! n2
1 1
3! n3
1

n! nn
n+1
3

< n! 1 + 1 + 1 + 2 + · · · + n−1 < (n + 1)!


2 2 2 3
Теорема доказана.
В различных задачах дискретной математики часто приходится находить Теорема 2.2. При n ≥ 1
мощности тех или иных множеств. При этом возможны ситуации, когда точ- n n n n
ные формулы, описывающие мощности множеств, существенным образом e· ≤ n! ≤ ne · .
e e
затрудняют решение задач из-за своей чрезмерной сложности и громозд-
кости, в то время как менее точные, но более просто устроенные формулы Доказательство. При n = 1, 2 справедливость неравенств проверяется
таких трудностей не создают. Поэтому методы получения простых оценок подстановкой этих значений n. Далее легко видеть, что при k ≥ 2 для ln k
значений различных комбинаторных функций составляют важную часть справедливы неравенства
методов дискретной математики.  k  k+1
ln xdx < ln k < ln xdx. (2.1)
k−1 k

2.1 Оценки n! Поэтому


 
n n+1

Функция n! является составной частью многих комбинаторных формул. Ни- ln xdx < ln n! < ln xdx. (2.2)
1 2
же для этой функции доказываются три пары двухсторонних неравенств,
Преобразуя правое неравенство (2.2) при условии n ≥ 3, получим, что
причем точность неравенств каждой следующей пары выше точности нера-
 n+1  n+1
венств предыдущей. 
ln n! < ln xdx = (x ln x − x) =
2 2
Теорема 2.1. При n ≥ 6
= (n + 1) ln(n + 1) − (n + 1) − 2 ln 2 + 2 =
n n n n
≤ n! ≤ . n+1
3 2 = (n + 1) ln − 2 ln 2 + 2 =
e
n 1 n
Доказательство. Теорему докажем индукцией по n. При n = 6 спра- = (n + 1) ln + (n + 1) ln(1 + ) − 2 ln 2 + 2 < (n + 1) ln + 2.
ведливость доказываемых неравенств проверяется непосредственно. Дока- e n e
 n
жем верхнюю оценку. Допустим, что n! ≤ n2 . Тогда Следовательно, n n
 n+1  n  n n! < ne · .
e
n+1 n+1 n + 1 n n 1 n+1
= = 1+ ≥ Аналогичным образом преобразуем левое неравенство (2.2):
2 2 2 2 n 2  n
      n
n 1 n 1 n+1  n
≥ n! 1 + 1 + + ···+ > ln n! > ln xdx = (x ln x − x) = n ln n − n + 1 = n ln + 1.
2 n2 n nn 2 1 1 e
n+1 Следовательно, n n
> n! · 2 · = (n + 1)!.
2 n! > e · .
 n n e
Аналогичным образом докажем нижнюю оценку. Допустим, что n! ≥ 3 . Теорема доказана.

20
22 Лекция 2. Оценки комбинаторных функций 2.2. Формула Стирлинга 23

Далее установим порядок функции n!. Сделаем это при помощи новых Теорема 2.3.
√ n n √ n n
неравенств для ln k, которые значительно точнее чем, использованные в
доказательстве теоремы 2.2 неравенства (2.1). 0, 8 · e n ≤ n! ≤ e n .
e e
Лемма 2.1. При k ≥ 2
  Доказательство. Для доказательства теоремы достаточно просумми-
k  k
1 
ровать неравенства леммы 2.1 по всем k от 2 до n. Суммируя правые нера-
ln xdx + ln 2k − ln(2k − 1) ≤ ln k ≤ ln xdx + ln k − ln(k − 1) .
k−1 k−1 2 венства, видим, что
Доказательство. На рис 2.1 изображена часть графика функции ln x 
1 
n n
1
находящаяся между точками x = k − 1 и x = k. На этом рисунке в точке ln k ≤ ln xdx + ln n − ln 1 = n ln n − n + 1 + ln n.
1 2 2
k=2

Следовательно,
√ n n
ln k n! ≤ e n .
e
a b Для того, чтобы оценить сумму левых неравенств положим


n
n

ln(k − 1) a1 = (ln(2k) − ln(2k − 1)), a2 = (ln(2k + 1) − ln(2k)).


k=2 k=2

Легко видеть, что a1 + a2 = ln(2n + 1) − ln 3. А так как a1 > a2 , то


-
k−1 k− 1
k x 1 1 1 1 3
2 a1 > ln(2n + 1) − ln 3 > ln n − ln .
2 2 2 2 2
Рис. 2.1
Таким образом,
x = k − 12 к кривой ln x проведена касательная a, отрезок b соединяет точки
k
n
с координатами (k − 1, ln(k − 1)) и (k, ln k). Нетрудно видеть, что k−1 ln xdx 1 1 3
ln k > n ln n − n + 1 + ln n − ln .
превосходит разность величин ln k и площади треугольника, ограниченного 2 2 2
k=2
отрезком b и прямыми x = k − 1 и y = ln k. Поэтому

 k
1  Теперь заметим, что 2/3 > 0, 8, и, следовательно,
ln xdx ≥ ln k − ln k − ln(k − 1) .
k−1 2 √ n n
n! > 0, 8 · e · n .
k e
Также легко видеть, что k−1 ln xdx не превосходит площади трапеции,
ограниченной прямой a и прямыми x = k − 1, x = k и y = 0. Так как пло- Теорема доказана.
щадь трапеции равна произведению длины средней линии, равной в данном
случае ln(k − 12 ), и высоты, равной единице, то
 k 2.2 Формула Стирлинга
1 1
ln xdx ≤ ln k − = ln k − ln 1 − = ln k − ln(2k) + ln(2k − 1). Неравенства теоремы 2.3 значительно точнее неравенств первых двух тео-
k−1 2 2k
рем. Тем не менее верхняя и нижняя оценки теоремы 2.3 все еще значи-
Оценивая при помощи полученных неравенств величину ln k, получим для тельно отличаются. Нетрудно видеть, что это происходит из-за того, что
нее следующие оценки: использованные в доказательстве теоремы неравенства леммы 2.1, доста-
 k  k
1  точно точные при больших k, становятся грубыми при малых значениях k.
ln xdx + ln(2k) − ln(2k − 1) ≤ ln k ≤ ln xdx + ln k − ln(k − 1) . Если использовать неравенства леммы 2.1 только при больших значениях
k−1 k−1 2
k, то можно надеяться на увеличение точности неравенств для n!. Именно
Лемма доказана. так сделано в следующей теореме.
24 Лекция 2. Оценки комбинаторных функций 2.2. Формула Стирлинга 25

Теорема 2.4. Используя эти обозначения, равенства леммы 2.2 можно записать так:
√ n n √ n n  π/2  π/2
2πn · e−1/4n ≤ n! ≤ 2πn · e1/4n . (2n − 1)!! π 2n!!
e e sin2n dx = · , sin2n+1 dx = .
0 2n!! 2 0 (2n + 1)!!
Доказательство теоремы 2.4 основано
  на неравенствах леммы 2.1 и оцен- Лемма 2.3.  
ках биномиального коэффициента 2n n , которые будут установлены ниже в 22n 2n 22n
лемме 2.3. Для доказательства этой леммы потребуется следующее вспомо- √ e−1/4n ≤ ≤√ .
πn n πn
гательное утверждение.
Доказательство. Так как sin x между 0 и π/2 изменяется от 0 до 1, то
Лемма 2.2. sin2n+1 x ≤ sin2n x ≤ sin2n−1 x при x ∈ [0, π/2]. Следовательно,
  π/2  π/2  π/2
π/2
(2n − 1)(2n − 3) · . . . · 3 · 1 π
sin2n dx = · , sin2n+1 xdx ≤ sin2n xdx ≤ sin2n−1 xdx.
0 2n(2n − 2) · . . . · 4 · 2 2
0 0 0
 π/2
2n(2n − 2) · . . . · 4 · 2
sin2n+1 dx = . Применяя лемму 2.2, получим следующие неравенства
0 (2n + 1)(2n − 1) · . . . · 3 · 1
2n!! (2n − 1)!! π (2n − 2)!!
 π/2 ≤ · ≤ ,
Доказательство. Обозначим интеграл 0 sinn xdx через In . Тогда (2n + 1)!! 2n!! 2 (2n − 1)!!
 π/2 которые, как легко видеть, преобразуются к виду
In = − sinn−1 d cos x =
0 2n!! · 2n!! π 2n!! · (2n − 2)!!
π/2  ≤ ≤ .

π/2 (2n + 1)!! · (2n − 1)!! 2 (2n − 1)!! · (2n − 1)!!
= − sin n−1
x cos x + cos xd sinn−1
x=
0 0 Извлекая квадратные корни из новых неравенств, получим, что
 π/2

= (n − 1) cos2 x sinn−2 xdx = 1 2n!! π 1 2n!!
0 √ · ≤ ≤ √ · .
 π/2 2n + 1 (2n − 1)!! 2 2n (2n − 1)!!
= (n − 1) (1 − sin2 ) sinn−2 xdx = (n − 1)(In−2 − In ). 
0 Далее разделим все члены получившихся неравенств на 2n!! и π/2 и умно-
жим на (2n − 1)!! и 22n . Тогда
Следовательно, имеет место рекуррентная формула
1 22n (2n − 1)!! 22n
n−1  ·√ ≤ 22n · ≤√ . (2.4)
In = In−2 , 1 + 1/2n πn 2n!! πn
n
последовательное применение которой к интегралам I2n и I2n+1 дает сле- Наконец, заметим, что
дующие равенства:  
(2n − 1)!! (2n − 1)!! · 2n!! (2n)! 2n
= = 2n = · 2−2n .
(2n − 1)(2n − 3) · . . . · 3 · 1 2n!! 2n!! · 2n!! 2 · n! · n! n
I2n = · I0 ,
2n(2n − 2) · . . . · 4 · 2 Теперь, учитывая, что e−x ≤ 1/(1 + x) при 0 < x < 1, подставим последнее
(2.3) 
2n(2n − 2) · . . . · 4 · 2 равенство в (2.4) и получим требуемые оценки для 2n n . Лемма доказана.
I2n+1 = · I1 .
(2n + 1)(2n − 1) · . . . · 3 · 1 Доказательство Теоремы 2.4. Так как
 
Так как I0 = π/2 и I1 = 1, то подставив эти значения в (2.3) получим 2n 2n! 2n(2n − 1) · . . . · (n + 1)
требуемые равенства. Лемма доказана. = = ,
n n! · n! n!
Напомним, что через n!! обозначается произведения всех натуральных то легко видеть, что
чисел, не превосходящих n и имеющих такую же четность как и n, т. е.
2n
2n!! = 2n(2n − 2) · . . . · 2, (2n + 1)!! = (2n + 1)(2n − 1) · . . . · 1. n! = 2n(2n − 1) · . . . · (n + 1) . (2.5)
n
26 Лекция 2. Оценки комбинаторных функций 2.3. Биномиальные коэффициенты 27

Оценим логарифм произведения 2n(2n − 1) · . . . · (n + 1). Для этого вос- Из доказанной теоремы легко следует известная формула Стирлинга
пользуемся неравенствами √ n n
 k n! = 2πn · (1 + o(1)).
e
ln k ≥ ln xdx + ln(2k) − ln(2k − 1), (2.6)
k−1
 2.3 Биномиальные коэффициенты
k
1 
ln k ≤ ln xdx + ln k − ln(k − 1) , (2.7)
k−1 2 Используя неравенства теоремы 2.1, для биномиальных коэффициентов
которые были доказаны в лемме 2.1. Суммируя неравенства (2.6) по всем k нетрудно установить следующие часто используемые оценки
от n + 1 до 2n, видим, что  k    k
2(n − k) n 3n
 2n ≤ ≤ ,
1 
2n
k k k
ln k ≤ ln xdx + ln(2n) − ln n =
n 2 справедливые при k ≥ 6. Более точные формулы для биномиальных коэф-
k=n+1
 2n фициентов получаются при помощи формулы Стирлинга.
1 1
= ln xdx + ln 2 = n ln n + 2n ln 2 − n + ln 2. Для каждого x такого, что 0 < x < 1, положим
n 2 2
Для того, чтобы оценить аналогичную сумму неравенств (2.6), как и ранее H(x) = −x log2 x − (1 − x) log2 (1 − x).
при доказательстве теоремы 2.3 положим Функция H(x) называется функцией энтропии.
2n
2n
Теорема 2.5. Если min(k, n − k) → ∞, то
a1 = (ln(2k) − ln(2k − 1)), a2 = (ln(2k + 1) − ln(2k)).
 
2nH( n )
k
k=n+1 k=n+1 n
=  (1 + o(1)).
Легко видеть, что a1 + a2 = ln(4n + 1) − ln(2n + 1). А так как a1 > a2 , то k 2πk(n − k)/n
1 1 1 2n + 1/2  Доказательство. Применяя формулу Стирлинга, видим, что
a1 > ln(4n + 1) − ln(2n + 1) = ln 2 · =
2 2 2 2n + 1   √
1 1 1  1 1 n
=
n!
∼ 
2πn
·
(n/e)n
=
= ln 2 + ln 1 − ≥ ln 2 − . k k!(n − k)! 2πk · 2π(n − k) (k/e)k ((n − k)/e)n−k
2 2 4n + 2 2 4n
1 nn
Таким образом, = · k =
2πk(n − k)/n k (n − k)n−k
2n
1 1  −k  −(n−k)
ln k > n ln n + 2n ln 2 − n + ln 2 − . 1 k k
2 4n = · · 1− =
k=n+1 2πk(n − k)/n n n
Следовательно, 1
· 2nH( n ) .
k
=
√ n n 2n −1/4n √ n n 2n 2πk(n − k)/n
2 2 e ≤ 2n(2n − 1) · . . . · (n + 1) ≤ 2 2 .
e e Теорема доказана.
Из леммы 2.3 следует, что Для доказательства следующей теоремы потребуется оценка функции
√   √ ln(1 − x), которую можно легко получить из разложения этой функций в
πn 2n πn
2n
≤1 ≤ 2n e1/4n . ряд Маклорена. Так как
2 n 2
x2 x3 xk
Теперь умножим почленно последние неравенства и получим ln(1 − x) = −x − − − ···− − ...,
√ n n √ n n 2 3 k
2πn · e−1/4n ≤ n! ≤ 2πn · e1/4n . то при −1 < x < 1
e e
x2
Теорема доказана. ln(1 − x) = −x − − O(x3 ).
2
28 Лекция 2. Оценки комбинаторных функций 2.4. Суммы биномиальных коэффициентов 29

Теорема 2.6. Если n → ∞ и k = o(n2/3 ), то Найдем сумму, стоящую в правой части неравенства (2.8). Легко видеть,
что
  2
n nk e−k /2n n   2 n   2 
= (1 + o(1)). n n n n
k k! −k = − nk + k 2 =
k 2 k 4
k=0 k=0
Доказательство. n   n   (2.9)
n2 n n
= − (n − k)k.
  √ 4 k k
n n! 2πn (n/e)n k=0 k=0
= ∼  · =
k k!(n − k)! 2π(n − k) k!((n − k)/e)n−k Первая сумма в правой части (2.9) равна n2 2n−2 . Найдем вторую сумму:
 
e−k nk e−k (k−n) ln(1−k/n)
k−n
nk k   n−1
 
= · · 1− ∼ ·e = n
n n
k! 1 − k/n n k! (n − k)k = (n − k)k =
k k
nk e−k (k−n)(−k/n−k2 /(2n2 )−O(k3 /n3 )) k=0 k=1
= ·e = (n − k)kn! n(n − 1)(n − 2)!
n−1 n−1
k!
2 = = =
nk e−k k−k2 /(2n)−O(k3 /n2 ) nk e−k /2n (n − k)!k! (n − k − 1)!(k − 1)!
= ·e = (1 + o(1)). k=1 k=1
k! k! 
n−2
n−2 
= n(n − 1) = n(n − 1)2n−2 .
Теорема доказана. k
k=0

Из двух предыдущих неравенств следует, что


2.4 Суммы биномиальных коэффициентов n  
2
n n
− k = n2 2n−2 − n(n − 1)2n−2 = n2n−2 .
Установим несколько оценок для сумм биномиальных коэффициентов. Пер- k 2
k=0
вая оценка доказывается так же, как и известное в теории вероятностей
неравенство Чебышева. Подставляя
 полученное равенство в правую часть (2.8) и полагая t равным
nϕ(n), находим, что

Теорема 2.7. Пусть 1 ≤ ϕ(n) ≤ n/2. Тогда1)  
n n2n−2 2n−2
√ ≤ = .
√ k nϕ(n) ϕ(n)
n/2−
nϕ(n) n 2n−3 k:|n/2−k|> nϕ(n)
≤ .
k ϕ(n) Теорема доказана.
k=0
Неравенство теоремы 2.7 достаточно грубое (далее оно будет существен-
Доказательство. Оценим сумму биномиальных коэффициентов, ниж- но усилено в теореме 2.9). Тем не менее метод, которым оно получено, пред-
ний индекс которых отличается от n2 более чем на t единиц: ставляет значительный интерес и может быть успешно использован в раз-
    личных задачах.
n (n/2 − k)2 n
= = Теорема 2.8. При 1 ≤ t ≤ n
справедливо неравенство
k (n/2 − k)2 k 2
k:|n/2−k|>t k:|n/2−k|>t

1 n 2 n t  
n
− ≤ ≤ 2nH( n ) .
t
= k (2.8)
(n/2 − k)2 2 k k
k:|n/2−k|>t k=0
n 2 n 1 n
n 2 n
1 Доказательство. Полагая, что 0 < x < 1, имеем
≤ 2 −k ≤ 2 −k .
t        
t 2 k t 2 k
k:|n/2−k|>t k=0 n
t
n 1 k n
t
1 k n
n
(1 + x)n
≤ xk−t = t x ≤ t x = .
1) Знак
Pb k k x k x k xt
a с нецелыми индексами означает суммирование по всем целым, лежащим k=0 k=0 k=0 k=0
между a и b. (2.10)
30 Лекция 2. Оценки комбинаторных функций 2.4. Суммы биномиальных коэффициентов 31

(1+x)n
Дифференцируя функцию f (x) = xt по x, видим, что ее производная = ln(1 + x) − ln(1 − x) − 2x.
(1 + x)n  n(1 + x) n−1
t(1 + x) n
Нетрудно видеть, что f  (0) = 0 и вторая производная
= − =
xt xt xt+1
(1 + x)n−1  1 1 2
f  (x) = + −2= −2
= nx − t(1 + x) 1+x 1−x 1 − x2
xt+1
между нулем и единицей имеет единственный корень x0 = n−t t
. Так как при функции f (x) на [0, 1) неотрицательна. Следовательно, f  (x) ≥ 0 на [0, 1),
этом f (x) неограниченно возрастает при x стремящемся к нулю справа, и и таким образом,
n
f (1) = 2 , то на интервале (0, 1) функция f (x) достигает своего минималь- (1 − x) ln(1 − x) + (1 + x) ln(1 + x) ≥ x2 (2.12)
ного значения в точке x0 . Поэтому
t   при всех x из интервала (−1, 1).
n t −t t n t −t n n Положим
≤ 1+ = = n 2λ  n 
k n−t n−t n−t n−t n
t = −λ= 1− = 1−δ ,
k=0
t −t n n−t t −t 
t −(n−t)
2 2 n 2
= = 1− = где δ = 2λ/n. Тогда
n n−t n n
t −t/n t −(1−t/n)  n t 1 
= 2nH( n ) .
t
= 1− H =H 1−δ =
n n n 2
Теорема доказана. 1 1 1 1
= − (1 − δ) log2 (1 − δ) − (1 + δ) log2 (1 + δ) =
2 2 2 2
Тривиальным следствием доказанной теоремы является неравенство 1 
  =1− (1 − δ) log2 (1 − δ) + (1 + δ) log2 (1 + δ) .
n 2
≤ 2nH( n ) ,
k
(2.11)
k Теперь воспользуемся неравенством (2.12). Нетрудно видеть, что
справедливое при 1 ≤ k ≤ n − 1. t δ2 2λ2
Неравенство теоремы 2.8 называется энтропийным. Неравенство, дока- H ≤ 1− log2 e = 1 − 2 log2 e.
n 2 n
зываемое в следующей теореме, называется неравенством Чернова, по име-
ни американского математика, получившего это неравенство в более общей Поэтому из теоремы 2.8 и равенства t = n
2 − λ следует, что
форме в 1952 году.
n/2−λ   t  
n n 2λ2
Теорема 2.9. При 0 ≤ t ≤ n
2 справедливо неравенство = ≤ 2nH( n ) ≤ 2n(1− n2
t log2 e) 2
= 2n e−2λ /n
.
k k
n/2−t   k=0 k=0
n 2
≤ 2n e−2t /n
. Теорема доказана.
k
k=0
Из теоремы 2.9 легко извлекаются следующие утверждения.
Доказательство. Покажем, что
Следствие 2.1. Пусть m ≥ 0. Тогда
f (x) = (1 − x) ln(1 − x) + (1 + x) ln(1 + x) − x2 ≥ 0 √
n/2− mn  
n
при x ∈ (−1, 1). Прежде всего заметим, что f (x) — четная функция. Сле- ≤ 2n e−2m .
k
довательно, справедливость доказываемого неравенства достаточно уста- k=0

новить только для полуинтервала [0, 1), а так как f (0) = 0, то достаточно Следствие 2.2. Пусть m ≥ 0. Тогда
показать, что на этом полуинтервале производная функции f (x) неотрица-
тельна. Дифференцируя f (x), находим (n+1)/2
  
n
≥ 2n 1 − 2e−2m .
1−x 1+x √ k
f  (x) = − − ln(1 − x) + + ln(1 + x) − 2x = k=n/2− mn
1−x 1+x
32 Лекция 2. Оценки комбинаторных функций

2.5 Задачи
2.1. Показать, что  
n k n
≤ ≤ (n − k + 1)k .
k k
2.2. Показать, что если n → ∞ и k = o(n3/4 ), то
Лекция 3
  2 3 2
nk e−k /2n−k /6n
Производящие функции
n
= (1 + o(1)).
k k!

m
2.3. Пусть x1 + · · · + xm = 1, xi > 0 и H(x1 , . . . , xm ) = − i=1 xi log2 xi .
Показать, что если k1 + · · · + km = n и ki > 0, то
Метод производящих функций является мощным средством для работы с
n! k1 km
P (k1 , . . . , km ) = ≤ 2nH( n ,..., n ) . различными множествами дискретной природы. Основная идея этого ме-
k1 ! · · · km !
тода заключается в отображении исследуемых множеств в множество сте-
2.4. Найти и оценить max(P (k1 , . . . , km )) по всем наборам k1 , . . . , km та- пенных рядов1) и последующей работе с рядами при помощи развитого ап-
ким, что k1 + · · · + km = n и ki > 0. парата теории функций. Ниже рассматривается применение метода про-
изводящих функций для решения линейных рекуррентных соотношений с
2.5. Показать, что при k → ∞ и k = o(n)
постоянными коэффициентами и нахождения числа неприводимых много-
k   членов над конечным полем. После этого вводится понятие производящей
2nH( n )
k
n
=  (1 + o(1)). функции множества и доказываются несколько теорем, позволяющих уста-
m=0
m 2πk(n − k)/n навливать соответствие между действиями над множествами и действиями
над функциями.
2.6. Показать, что при k → ∞ и k = o(n2/3 )

k   2
n nk e−k /2n 3.1 Линейные рекуррентные последовательности
= (1 + o(1)).
m=0
m k!
Производящей функцией последовательности {Fn }∞
n=0 , где Fn ∈ R, называ-
ется ряд


F (x) = xn Fn . (3.1)
n=0

Если ряд (3.1) сходится абсолютно в какой-либо окрестности нуля, то его


можно умножить на другой ряд, возвести его в степень, продифференци-
ровать и т. д. Используя такие действия, можно попытаться найти явный
вид функции F (x) в случае, когда последовательность {Fn }∞
n=0 неизвест-
на и описывается только какими-нибудь своими свойствами. Если явную
формулу для F (x) удается найти, то далее можно попытаться найти явную
формулу и для Fn — общего члена последовательности. Сделать это мож-
но, вычислив n-ю производную функции F (x) или разложив эту функцию
в ряд каким-либо иным способом.
1) В литературе, посвященной производящим функциям, вместо степенных рядов ча-

сто используются формальные степенные ряды. Действия с формальными степенными


рядами требуют специального и достаточно трудоемкого обоснования и поэтому здесь не
рассматриваются.

33
34 Лекция 3. Производящие функции 3.1. Линейные рекуррентные последовательности 35

Подобным образом доказывается следующая теорема о решении линей- а для i-й суммы правой части (3.3) — равенство
ных рекуррентных соотношений с постоянными коэффициентами. ∞ ∞

Теорема 3.1. Пусть последовательность F0 , F1 , F2 , . . . , Fn , . . . удовле- ai xi xn−i Fn−i = ai xi xm Fm =
творяет линейному рекуррентному соотношению n=k m=k−i

= ai xi (F (x) − (F0 + xF1 + · · · + xk−i−1 Fk−i−1 )).


Fn = a1 Fn−1 + a2 Fn−2 + · · · + ak Fn−k . (3.2)
Поэтому равенство (3.3) можно записать в виде
с постоянными коэффициентами ai при n ≥ k. Тогда при n ≥ 0
F (x) − (F0 + xF1 + . . . + xk−1 Fk−1 ) =

m
Fn = αni Pi (n), = a1 x1 (F (x) − (F0 + xF1 + . . . + xk−2 Fk−2 ))+
+ a2 x2 (F (x) − (F0 + xF1 + . . . + xk−3 Fk−3 )) + . . . + ak xk F (x).
i=1

где αi — корень многочлена f (x) = xk −a1 xk−1 −a2 xk−2 −· · ·−ak кратности
pi , Pi — многочлен степени pi − 1, коэффициенты которого определяются Перенося в последнем неравенстве в левую часть все слагаемые содержащие
при помощи первых k членов расматриваемой последовательности. множитель F (x), а в правую — все остальные, получим новое равенство

Доказательство. Последовательности {Fn } поставим в соответствие F (x)(1−a1 x − a2 x2 − . . . − ak xk ) =


производящую функцию =F0 (1 − a1 x − a2 x2 − . . . − ak−1 xk−1 )+


F (x) = xn Fn . + F1 (1 − a1 x − a2 x2 − . . . − ak−2 xk−2 ) + . . . + xk−1 Fk−1 ,
n=0
в правой части которого стоит многочлен степени не выше k − 1. Обозначим
Прежде всего заметим, что из соотношения (3.2) следует не более чем этот многочлен через Hk−1 (x). Тогда легко видеть, что
степенной рост модуля n-го члена рассматриваемой последовательности.
Поэтому существует окрестность нуля, в которой ряд F (x) сходится абсо- Hk−1 (x)
F (x) = . (3.4)
лютно. 1 − a1 x − a2 x2 − . . . − ak xk
Правую и левую части рекуррентного соотношения (3.2) умножим на
xn и просуммируем по всем целым n от k до ∞. В результате получим Предположим, что многочлен, стоящий в знаменателе правой части, име-
равенство ет m различных корней α11 , α12 , . . . , α1m , кратности которых соответственно
равны p1 , p2 , . . . , pm . Раскладывая знаменатель на множители, получим, что



xn Fn = xn (a1 Fn−1 + a2 Fn−2 + · · · + ak Fn−k ). Hk−1 (x)
F (x) = , (3.5)
n=k n=k (1 − α1 x)p1 (1 − α2 x)p2 . . . (1 − αk x)pm
Разбивая сумму, стоящую в правой части последнего равенства, на k где очевидно p1 + p2 + · · · + pm = k. Представим правую часть последнего
частей и вынося из под знака i-й суммы множитель ai xi , получим новое равенства в виде суммы простейших дробей. Тогда
равенство
βp11 βp11 −j β11



F (x) = + ···+ + ···+ +
xn Fn = a1 x xn−1 Fn−1 +a2 x2 xn−2 Fn−2 + . . . (1 − α1 x)p1 (1 − α1 x)pj −1 (1 − α1 x)
n=k n=k n=k βp22 βp22 −j β12


(3.3) + + ···+ + ···+ + ...
(1 − α2 x)p2 (1 − α2 x)p2 −j (1 − α2 x)
· · · + ak xk xn−k Fn−k .
βpmm βpmm −j β1m
n=k + + ···+ + ···+ ,

∞ n (1 − αm x)pm (1 − α2 x)pm −j (1 − αm x)
Так как F (x) = n=0 x Fn , то легко видеть, что для левой части (3.3)
справедливо равенство где βij — константы, возможно комплексные. Так как

∞  
1 n+k−1
xn Fn = F (x) − (F0 + xF1 + · · · + xk−1 Fk−1 ), = (αx)n ,
n=k
(1 − αx)k n=0
n
36 Лекция 3. Производящие функции 3.1. Линейные рекуррентные последовательности 37

то, раскладывая в ряд сумму В рекуррентном соотношении (3.2) перенесем все ненулевые слагаемые в
βp βp−j β1 левую часть. В результате получим равенство, в левой части которого нахо-
+ ··· + + ···+ , дится линейная комбинация k + 1 элемента последовательности, а в правой
(1 − αx)p (1 − αx)p−j (1 − αx)
— нуль. Соотношение такого вида называется однородным и является част-
находим, что в этом ряду коэффициент при xn равен ным случаем общего рекуррентного соотношения
p  
n+p−1−j Fn − a1 Fn−1 − a2 Fn−2 − . . . − ak Fn−k = f (n). (3.9)
αn βp−j .
j=0
n
Если в (3.9) функция f (n) не равна нулю, то соотношение называется неод-
Поэтому для Fn справедливо равенство нородным. Для решения неоднородных рекуррентных соотношений также
m p   можно использовать метод производящих функций. Как это можно сделать,
n + pi − 1 − j покажем на следующем примере.
Fn = αni βpi i −j . (3.6)
i=1 j=0
n Пусть в последовательности {Fn }∞ 0 первые два члены равны единице, а
остальные удовлетворяют неоднородному рекуррентному соотношению
Теперь заметим, что для любых постоянных βp−1 , . . . , β0 найдутся такие
постоянные γp−1 , . . . , γ0 , что Fn = 3Fn−1 − 2Fn−2 + n. (3.10)
p   p

n+p−1−j Пусть как и ранее F (x) = ∞ n


βp−j = γp−j nn+p−1−j . n=0 Fn x . Тогда
n
j=0 j=0 ∞




Поэтому (3.6) можно переписать в виде равенства Fn xn = 3 Fn−1 xn − 2 Fn−2 xn + n · xn ,
i=2 i=2 i=2 i=2

m
p
Fn = αni γpi i −j nn+pi −1−j , (3.7) или
x
i=1 j=0
F (x) − F0 − xF1 = 3xF (x) − 3xF0 − 2x2 F (x) + − x.
(1 − x)2
в котором постоянные γij определяются при помощи подстановки в (3.7)
вместо n величин 0, 1, . . . , k − 1 и последующего решения получившейся Подставив в последнее равенство единицы вместо F0 и F1 и выполнив
системы линейных уравнений. несложные преобразования, получим, что
Рекуррентному равенству (3.2) сопоставим его характеристический мно-
1 − 3x x
гочлен F (x) = + .
f (x) = xk − a1 xk−1 − a2 xk−2 − · · · − ak . (3.8) 2 − 3x + x2 (1 − x)2 (2 − 3x + x2 )

Заменяя в этом многочлене переменную x на 1


y и умножая затем результат Так как 2 − 3x + x2 = (x − 1)(x − 2), то
на y k , получим новый многочлен
H3 (x)
F (x) = ,
f ∗ (y) = 1 − a1 y − a2 y 2 − · · · − ak y k , (x − 1)3 (x − 2)
который совпадает с многочленом,
  стоящим в знаменателе правой части где H3 (x) — многочлен третьей степени. Следовательно,
(3.4). Так как f ∗ (y) = y k f y1 , то легко видеть, что если α является корнем
уравнения f ∗ (y) = 0, то α1 будет корнем уравнения f (y) = 0. Таким обра- Fn = an2 + bn + c + d2n . (3.11)
зом, из (3.7) следует, что n-й член рекуррентной последовательности (3.2) Из (3.10) при n = 2 и 3 легко находим F2 = 3 и F3 = 10. Подставив в
представляется в виде (3.11) вместо n числа 0, 1, 2 и 3, получим систему линейных уравнений для
m
Fn = (αi )n Pi (n), определения значений a, b, c и d:
i=1 ⎧


1 = c + d,
где αi — корень характеристического многочлена (3.8) кратности pi , Pi — ⎪
⎨ 1 = a + b + c + 2d,
многочлен степени pi − 1, коэффициенты которого определяются при помо-
щи первых k членов рассматриваемой последовательности. Теорема дока- ⎪
⎪ 3 = 4a + 2b + c + 4d,


зана. 10 = 9a + 3b + c + 8d.
38 Лекция 3. Производящие функции 3.2. Число неприводимых многочленов 39

Решая эту систему, находим a = − 12 , b = − 52 , c = −2, d = 3. Следовательно, Логарифмируя правую и левую части (3.14), получим новое равенство


1 5 1 1
Fn = − n2 − n − 2 + 3 · 2n . ln = P (m) ln .
2 2 1 − px m=1 1 − xm
Из рассмотренного примера видно, что возможность решения соотно- 1
∞ 1 n
шения (3.9) существенно зависит от вида функции f (n). В частности, если Теперь, применяя формулу ln 1−x = n=1 n x , разложим в ряд правую и
f (n) является квазимногочленом, т. е. f (n) = αn P (n), где α — константа, а левую части последнего равенства:
P (n) — многочлен, соотношение (3.9) решается практически также, как и ∞ ∞ ∞ ∞

1 n n 1 1
однородное. p x = P (m)xkm = P (m) xn .
n=1
n m=1
k n=1
k
k=1 km=n

3.2 Число неприводимых многочленов Приравнивая в получившемся равенстве коэффициенты при n-й степени x,
находим
1 n 1 m
Применим метод производящих функций для нахождения числа неприводи- p = P (m) = P (m).
мых многочленов над полем Zp . Число неприводимых многочленов степени n k n
km=n m|n
n, у которых коэффициент при старшей степени равен единице, обозначим
Лемма доказана.
через P (n).
Определим функцию Мебиуса µ(n) следующим равенством:
Лемма 3.1. Для последовательности P (n) справедливо рекуррентное ⎧
равенство ⎪
⎨ 1, если n = 1;
pn = mP (m). µ(n) = (−1)k , если n — произведение k простых чисел;


m|n 0, если n делится на квадрат простого числа.
Доказательство. Пусть p1m , p2m , . . . , pP (m)m — все неприводимые мно-
Лемма 3.2. Справедливо равенство
гочлены степени m. Нетрудно видеть, что, раскрывая скобки в произведе- #
нии 1, если n = 1;
∞ P"(m) 
" µ(m) = (3.15)
2 l
1 + pkm + (pkm ) + · · · + (pkm ) + . . . , (3.12) m|n
0, если n > 0.
m=1 k=1

Доказательство. Если n = 1, то единица является единственным де-
получим сумму всевозможных произведений неприводимых многочле-
лителем, и, следовательно, µ(1) = 1. При n > 1 представим n в виде про-
нов, причем каждое произведение встретится в этой сумме ровно один раз.
изведения простых чисел: n = pq11 · · · pqrr . Легко видеть, что в сумме (3.15)
Так как каждый многочлен единственным образом
раскладывается в про-
нужно учитывать только делители без кратных множителей. Поэтому
изведение неприводимых многочленов, то в будет содержаться ровно pn
r r  

произведений степени n. Каждому неприводимому многочлену степени m r
поставим в соответствие одночлен xm , а произведению (3.12) — произведе- µ(m) = µ(pi1 · · · pik ) = (−1)k = 0.
k
ние m|n k=0 1≤i1 <···<ik ≤r k=0

"∞ P"(m)  "∞  P (m) Лемма доказана.


2 l 1
1 + xm + (xm ) + · · · + (xm ) + . . . = . Лемма 3.3. Функции f (n) и h(n), определенные на множестве целых
m=1 k=1 m=1
1−x m
положительных чисел, удовлетворяют равенству
(3.13)

Так как существует ровно pn многочленов степени n, у которых коэффици- f (n) = h(m) при всех n ∈ N (3.16)
ент при xn равен единице, то легко видеть, что в ряду, получившемся после m|n
раскрытия скобок в (3.13), коэффициент при xn будет равен pn . Следова-
тельно, тогда и только тогда, когда
∞  P (m) n
1 " 1 h(n) = µ f (m) при всех n ∈ N. (3.17)
= . (3.14) m
1 − px m=1 1 − xm m|n
40 Лекция 3. Производящие функции 3.3. Производящие функции множеств 41

Доказательство. Покажем, что из (3.16) следует (3.17). Для этого w называется весовой функцией (весом) на множестве A. Производящей
прежде всего заметим, что функцией множества A относительно весовой функции w называется сумма
n n
µ f (m) = µ(m)f , FAw (x) = xw(a) .
m m α∈A
m|n m|n

так как суммы, стоящие в обеих частях равенства, отличаются только по- Пусть, например, множество A состоит из всех двоичных последовательно-
рядком следования слагаемых. Затем в правую часть последнего равенства стей конечной длины, а значение w(α) весовой функции на последователь-
вместо f (m) подставим правую часть равенства (3.16). Меняя в получив- ности α равно длине этой последовательности. Тогда
шейся двойной сумме порядок суммирования и применяя лемму 3.2, полу- ∞
x
чим следующую цепочку равенств: FAw (x) = 2n xn = .
1 − 2x
n n=1
µ(m)f = µ(m) h(k) = µ(m)h(k) =
m При доказательстве леммы 3.1 в качестве веса многочлена использовалась
m|n m|n k| m
n
m|n k| m
n

его степень, а производящей функцией множества многочленов была функ-


= µ(m)h(k) = µ(m)h(k) = 1
ция 1−px .
km | n k|n m| n
В приводимых далее теоремах устанавливаются связи между операци-
n
k
ями над множествами и операциями над производящими функциями этих
= h(k) µ(m) = h(k)µ = h(n).
k множеств.
k|n m| n
k k|n

Теорема 3.3. Пусть w — весовая функция на множестве N , A и B —


Таким образом, справедливость равенства (3.17) установлена. Обратное непересекающиеся подмножества множества N . Тогда
утверждение доказывается аналогично. Лемма доказана.
w
FA∪B (x) = FAw (x) + FBw (x).
Теорема 3.2. Для числа P (n) неприводимых многочленов степени n
справедливо равенство Доказательство. Непосредственно из определения производящей функ-
1 n m
ции следует, что
P (n) =
n
µ
m
p .
w
m|n FA∪B (x) = xw(σ) = xw(σ) + xw(σ) = FAw (x) + FBw (x).
σ∈A∪B σ∈A σ∈B
Доказательство. Из леммы 3.1 следует, что равенство (3.16) леммы 3.3
справедливо при f (n) = pn и h(n) = nP (n) для всех натуральных n. Поэто- Теорема доказана.
му утверждение теоремы следует непосредственно из леммы 3.3. Теорема Теорема 3.4. Пусть wa , wb и w — весовые функции на множествах
доказана. A, B и A × B. Если для всех (α, β) из A × B справедливо равенство

w((α, β)) = wa (α) + wb (β),


3.3 Производящие функции множеств
то
При доказательстве леммы 3.1 каждому неприводимому многочлену степе- w
FA×B (x) = FAw (x) · FBw (x).
ни m была поставлена в соответствие функция xm . Затем при помощи этого
соответствия и формулы (3.12), порождающей множество всех многочленов Доказательство. Непосредственно из определения производящей функ-
над Zp , было получено уравнение (3.14), которое включало искомые вели- ции следует, что
чины P (m) и из которого в конце концов была получена явная формула для
P (m). Аналогичным способом могут быть решены многие задачи. В основе w
FA×B (x) = xw((α,β)) = xwa (α) · xwb (β) = FAw (x) · FBw (x).
этого способа лежит понятие производящей функции множества. (α,β)∈A×B α∈A β∈B
Рассмотрим множество A и функцию w : A → {0, 1, . . . }, принимающую
на элементах этого множества целые неотрицательные значения. Функция Теорема доказана.
42 Лекция 3. Производящие функции 3.3. Производящие функции множеств 43

Теорема 3.5. Пусть w — весовая функция на множестве A. Тогда заменой в этом элементе всех его s-фрагментов элементами множества A.
Например, пусть A = 0(0∗ ), B состоит из (0, 1)-последовательностей ко-
1
FAw∗ (x) = , нечной длины, не имеющих двух соседних нулей, множество s-фрагментов
1 − FAw (x) элементов из B состоит из единственного фрагмента "0". Так как любая
если любой элемент из A∗ единственным образом представляется в виде (0, 1)-последовательность единственным образом может быть получена из
прямого произведения элементов из A. подходящей последовательности множества B, в которой каждый нуль за-
$ менен какой-либо последовательностью из нулей, то множество C всех ко-
Доказательство. Так как A∗ = ∞ n
n=0 A , то из двух предыдущих тео- нечных (0, 1)-последовательностей является композицией множеств A и B,
рем следует, что т. е. C = B ◦ A.
∞ ∞ Пусть C = B ◦ A. На множестве B введем весовую функцию ws так, что
1
FAw∗ (x) = FAwn (x) = (FAw (x))n = . для элемента β из B значение ws (β) равно числу s-фрагментов в элементе
n=0 n=0
1 − FAw (x) β. Для рассмотренного выше примера ws (β) равна числу нулей в наборе β.

Теорема доказана. Теорема 3.6. Пусть w и w — весовые функции на множествах A и


Рассмотрим пример использования приведенных выше теорем. Най- B ◦ A. Если для любого элемента σ ∈ B ◦ A, полученного из элемента β ∈ B
дем производящую функцию для множества C, состоящего из всех (0, 1)- веса ws (β) = m и элементов α1 , . . . , αm ∈ A, справедливо равенство
последовательностей конечной длины, не имеющих двух соседних нулей. w (σ) = w(α1 ) + . . . + w(αm ),
Каждую последовательность в C разобъем на три части. Первая часть —
начало, состоит только из единиц, а если последовательность начинается с то 
нуля, то будем считать, что длина первой части равна нулю. Третья часть w
FB◦A (x) = FBws (FAw (x)) ,
— конец, состоит из нуля, если последовательность оканчивается нулем,
а если последовательность оканчивается единицей, то считаем, что длина при условии, что указанная подстановка допустима.
третьей части равна нулю. Вторая часть находится между первой и тре- Доказательство. Пусть σ ∈ B ◦A, αm = (α1 , . . . , αm ) ∈ Am и β ∈ B, где
тьей и может быть единственным образом поделена на блоки, каждый из ws (β) = m. Используем равенство σ = (β, αm ) для того, чтобы показать, что
которых начинается нулем, после которого следует ненулевое число единиц. элемент σ получен подстановкой элементов α1 , . . . , αm в элемент β. Тогда
Поэтому, нетрудно видеть, что C = 1∗ (011∗ )∗ (0 ∪λ). Пусть весовая функция
w  
w(α) равна числу символов в последовательности α. Тогда FB◦A (x) = xw (σ) = xw (σ) =
σ∈B◦A m≥0 σ=(β,αm )
FCw (x) = F1w∗ (x)F(011
w w
∗ )∗ (x)F0∪λ (x) = ws (β)=m
  −1

1 x2 1+x = xw(α1 )+···+w(αm ) =
= 1− (1 + x) = .
1−x 1−x 1 − x − x2 m≥0 σ=(β,αm )
ws (β)=m
Теперь можно получить явную формулу для числа последовательностей из m
= xw(α) =
C длины n. Это можно сделать, разложив функцию FCw (x) в ряд так, как
m≥0 ws (β)=m α∈A
это было сделано с производящими функциями рекуррентных последова-
ws (β)
тельностей в доказательстве теоремы 3.1. = xw(α) =
Пусть B — некоторое множество. Будем полагать, что каждый элемент m≥0 ws (β)=m α∈A
этого множества можно каким-либо образом разбить на фрагменты. Среди ws (β) 
фрагментов, на которые разбиваются элементы B, выделим подмножество = xw(α) = FBws FAw (x) .
и его элементы назовем s-фрагментами. Например, если B состоит из всех β∈B α∈A
(0, 1)-последовательностей конечной длины, то в качестве фрагментов мож-
но рассматривать нули и единицы, а к s-фрагментам отнести нули. Теорема доказана.
Рассмотрим три множества A, B, C. Будем говорить, что C является Воспользуемся теоремой 3.6 для решения известной задачи о числе фор-
композицией множеств A и B (C = B ◦A), если существует такое множество мул. Последовательность из левых и правых скобок называется формулой
s-фрагментов элементов из B, что каждый элемент множества C может тогда и только тогда, когда она удовлетворяет следующему индуктивному
быть единственным образом получен из некоторого элемента множества B определению:
44 Лекция 3. Производящие функции 3.3. Производящие функции множеств 45


(i) последовательность ( ) является формулой; Функцию 1 − 4x разложим в ряд при помощи формулы бинома Ньютона:
(ii) если f — формула, то (f ) — формула; ∞ 1 1
1
√ 2 ( 2 − 1) · · · ( 2 − k + 1)
(iii) если f1 и f2 — формулы, то f1 f2 — формула. 1 − 4x = 1 + (−4)k xk =
Нетрудно видеть, что каждая формула содержит одинаковое число левых k!
k=1
и правых скобок. Длиной формулы называется число входящих в эту фор- ∞ 1 1 3 2k−3 ∞

2 (− 2 )(− 2 ) · · · (− 2 ) 2k (2k − 3)!! k
мулу левых (или правых) скобок. =1+ (−4)k xk = 1 − x =
k! k!
Найдем число формул длины k ≥ 1. На множестве A, состоящем из k=1 k=1
∞ ∞
2(2k − 3)!!(2k − 2)!!
всех формул, в том числе и пустой, не содержащей ни одной скобки, вве- 2k (2k − 3)!!(k − 1)! k
=1− x =1− xk =
дем весовую функцию w, равную длине формулы. Пусть FAw (x) — произ- k!(k − 1)! k!(k − 1)!
k=1 k=1
водящая функция множества A. Рассмотрим множество B, состоящее из
∞ ∞
 
всех формул, каждая из которых представима в виде (f ), где f — фор- 2(2k − 2)! 2 2k − 2 k
=1− xk = 1 − x .
мула. Так например, формула (( ) ( )) принадлежит B, а формула ( )(( ) ( )) k(k − 1)!(k − 1)! k k−1
k=1 k=1
не принадлежит B. Нетрудно видеть, что функция xFAw (x) будет произво-
дящей функцией множества B. Далее рассмотрим множество C, которое Подставляя полученный ряд в формулу (3.18) после простых преобразова-
состоит из пустой формулы и всех формул вида ( ) . . . ( ), в которых по- ний получаем разложение в ряд функции FAw (x):
сле каждой левой скобки стоит правая скобка. Очевидно, что C является ∞
 
1 1 2k k
итерацией формулы ( ), и поэтому FCw (x) = 1−x . Заметим, что любую фор- FAw (x) = x .
мулу из A можно единственным образом получить из некоторой формулы k+1 k
k=0
из множества C, если в этой формуле каждую пару скобок ( ) заменить на
1
2k
подходящую формулу из B. Например формула ( )(( ) ( )) ∈ A получается из Таким образом, существует ровно k+1 k формул длины k.
формулы ( )( ) ∈ C, если в этой формуле первую пару скобок заменить на Теоремы 3.3–3.6 сформулированы и доказаны для производящих функ-
формулу ( ) ∈ B, а вторую — на (( ) ( )) ∈ B. Следовательно, A = C ◦ B, где ций одной переменной, однако нетрудно видеть, что каждая из этих теорем
s-фрагментами в формулах из C являются пары скобок ( ). Легко видеть, справедлива и для производящих функций большего числа переменных,
что в данном случае производящие функции FCw (x) и FCws (x) совпадают, а если ее условия выполняются относительно какой-нибудь из переменных.
равенство В качестве примера использования производящих функций многих пе-
ременных рассмотрим новое решение задачи о числе (0, 1)-последователь-
w(f ) = w(f1 ) + . . . + w(fm )
ностей, в которых нет двух соседних нулей. Пусть A = 1(1∗ ), B — мно-
справедливо для любой формулы f ∈ A, которая получается из какой- жество (0, 1)-последовательностей, в которых нет двух стоящих рядом оди-
либо формулы из C заменой в этой формуле пар скобок ( ) на формулы наковых символов, C — множество (0, 1)-последовательностей, в которых
f1 , . . . , fm ∈ B. Таким образом, можно воспользоваться теоремой 3.6. При- нет двух стоящих рядом нулей. Пусть далее множество s-фрагментов B
меняя эту теорему, получим уравнение состоит из единственного фрагмента ”1”. В этом случае нетрудно видеть,
что C = B ◦ A. На множестве A в качестве весовой функции wa будем
1 использовать длину последовательности, а на множествах B и C опреде-
FAw (x) = FCws (FBw (x)) = ,
1 − xFAw (x) лим весовую функцию w так, что w(β) = (i, j), где i равно числу нулей, j
— числу единиц в β. Функции w и wa таковы, что вторая компонента w2
которое легко преобразуется в квадратное относительно производящей функ- функции w и функция wa удовлетворяют условию теоремы 3.6, т. е. для
ции FAw (x) уравнение любого σ, полученного заменой s-фрагментов в последовательности из B
на последовательности α1 , . . . , αm из A, справедливо равенство
x(FAw (x))2 − FAw (x) + 1 = 0.
w2 (σ) = wa (α1 ) + . . . + wa (αm ).
Так как функция FAw (x) должна раскладываться в ряд в окрестности нуля, Поэтому нетрудно видеть, что
то из двух корней квадратного уравнения оставим корень, удовлетворяю-
щий этому условию. Следовательно,
w
FB◦A (x, y) = FBw (x, FAwa (y)) .
√ Так как B = (λ ∪ 1)(01)∗ (λ ∪ 0), то FBw (x, y) = (1+x)(1+y) . Подставляя в
1− 1 − 4x 1−xy
FAw (x) = . (3.18) эту формулу вместо переменной y производящую функцию множества A,
2x
46 Лекция 3. Производящие функции 3.4. Задачи 47

найдем производящую функцию множества B ◦ A: 3.9. Сколькими способами можно замостить прямоугольник высоты 2 и
длины n, используя плитки следующих видов:
y
w
(1 + x)(1 + 1−y ) 1+x
FB◦A (x, y) = = . (3.19)
1− xy
1−y 1 − y − xy

Теперь, так как нас интересует только количество последовательностей 3.10. Сколькими способами можно замостить прямоугольник высоты 1 и
определенной длины и не важно сколько в этих последовательностях нулей длины n, используя плитки высоты 1 следующих видов:
и единиц, то для получения производящей функции множества C доста-
точно в формуле (3.19) отождествить переменные. В результате получим
1+x
формулу FCw (x, x) = 1−x−x 2 , которая, как нетрудно видеть, совпадает с по-

лученной ранее другим способом. 3.11. Сколькими способами можно замостить прямоугольник высоты 3 и
длины n, используя плитки следующих видов:

3.4 Задачи

3.1. Найти

асимптотику числа целых неотрицательных решений уравне- 3.12. Сколькими способами можно замостить прямоугольник высоты 2 и
ния m i=1 i · xi = n. длины n, используя плитки следующих видов:
3.2. Найти число последовательностей из нулей и единиц длины n, в ко-
торых каждый блок из единиц имеет четную длину.
3.3. Найти число последовательностей из 0 и 1 длины n, в которых длина
каждого блока из 0 кратна трем. 3.13. Сколькими способами можно замостить прямоугольник высоты 3 и
3.4. Найти число последовательностей из 0, 1, 2 и 3 длины n, в которых длины n, используя плитки следующих видов:
каждый блок из 1 имеет четную длину, а длины блоков из 2 и 3
кратны трем.
3.5. Сколькими способами можно замостить прямоугольник высоты 1 и
длины n, используя плитки высоты 1 следующих видов:
3.14. Найти количество n-разрядных десятичных чисел, в которых нет
двух стоящих рядом четных цифр.
3.15. Найти количество n-разрядных десятичных чисел, в которых после
3.6. Сколькими способами можно замостить прямоугольник высоты 1 и цифры 2 не стоит цифра 5.
длины n, используя плитки высоты 1 следующих видов: 3.16. Найти число последовательностей длины 23 из 0, 1 и 2, в которых все
максимальные подпоследовательности из единиц имеют нечетную
длину.

3.7. Сколькими способами можно замостить прямоугольник высоты 1 и


длины n, используя плитки высоты 1 следующих видов:

3.8. Сколькими способами можно замостить прямоугольник высоты 1 и


длины n, используя плитки высоты 1 следующих видов:
4.2. Лемма Бернсайда 49

из D называется множество St(d0 ) = {g ∈ G | g(d0 ) = d0 }. Орбитой элемента


d0 из D называется множество Or(d0 ) = {d ∈ D | d = g(d0 ), где g ∈ G},
число элементов орбиты называется ее длиной. Известно, что стабилизатор
любого элемента d является подгруппой в группе G.
Лемма 4.1. Пусть конечная группа G действует на конечном множе-
Лекция 4 стве D. Тогда для любого d из D
|Or(d)| · |St(d)| = |G|.
Теорема Пойа Доказательство. Покажем, что длина орбиты произвольного элемента
d из D равна числу смежных классов группы G по подгруппе St(d). Для
этого достаточно показать, что элементы из одного смежного класса пе-
реводят d в один и тот же элемент множества D, а элементы из разных
смежных классов — в разные элементы множества D.
Рассмотрим класс задач следующего типа. Пусть дано множество D с опре-
Если g1 и g2 лежат в одном и том же смежном классе группы G по
деленным на его элементах отношением эквивалентности. Требуется найти
подгруппе St(d), то g2 = g1 s, где s ∈ St(d). Поэтому
число классов эквивалентности этого множества, которые удовлетворяют
некоторым дополнительным условиям. Классическим примером задачи та- g2 (d) = g1 s(d) = g1 (s(d)) = g1 (d),
кого типа является задачи о числе способов, которыми можно раскрасить т. е. элементы из одного и того же смежного класса группы G по подгруппе
грани трехмерного кубика. В этой задаче два раскрашенных кубика счита- St(d) отображают d в один и тот же элемент множества D. Теперь покажем,
ются эквивалентными, если один кубик можно повернуть так, что после по- что элементы из разных смежных классов группы G по подгруппе St(d)
ворота одинаково ориентированные грани кубиков будут окрашены одним и отображают d в разные элементы множества D. Допустим, что g1 (d) =
тем же цветом. Дополнительным условием в этой задаче может быть усло- g2 (d), тогда
вие на число граней покрашенных определенным цветом. Например, задача
может состоять в том, чтобы найти число различных кубиков, у каждого d = g1−1 g1 (d) = g1−1 (g1 (d)) = g1−1 (g2 (d)) = g1−1 g2 (d),
из которых три белых и три черных грани. Техника решения подобных за- и, следовательно, g1−1 g2 ∈ St(d). Но тогда в St(d) найдется такой элемент s,
дач была разработана венгерским математиком Д. Пойа в конце тридцатых что g2 = g1 s, и поэтому g1 и g2 лежат в одном и том же смежном классе
годов двадцатого века для решения ряда перечислительных задач теории группы G по подгруппе St(d).
графов. Похожие результаты были опубликованы Дж. Редфилдом в 1927 г. Так как число смежных классов группы G по подгруппе St(d) равно
в менее удобной для использования форме. Видимо по этой причине работа |G|/|St(d)|, а длина орбиты элемента x равна числу смежных классов груп-
Редфилда была забыта и не оказала влияния на дальнейшие исследования пы G по подгруппе St(d), то |Or(d)| · |St(d)| = |G|. Лемма доказана.
в области перечислительной комбинаторики.

4.2 Лемма Бернсайда


4.1 Действие группы на множестве
Пусть группа G действует на конечном множестве D. Элементы d1 и d2 из D
Будем говорить, что группа G действует на множестве D, если каждому назовем эквивалентными, если d1 = gd2 для некоторого g из G. Нетрудно
элементу g группы G поставлено в соответствие взаимнооднозначное отоб- видеть, что множество D под действием группы G распадается на клас-
ражение ϕ(g) множества D в себя так, что ϕ(g1 g2 ) = ϕ(g1 )ϕ(g2 ) для любых сы эквивалентности, состоящие из попарно эквивалентных элементов. Чис-
g1 и g2 из G. Иначе говоря группа G действует на множестве D, если опре- ло классов эквивалентности можно найти при помощи следующей леммы
делен гомоморфизм ϕ группы G в множество взаимнооднозначных отоб- Бернсайда.
ражений множества D в себя. Рассматривая далее действие группы G на Лемма 4.2. Пусть группа G действует на конечном множестве D.
множестве D, будем опускать символ гомоморфизма и будем рассматри- Тогда для N — числа классов эквивалентности, порождаемых на множе-
вать элементы группы G непосредственно как преобразования множества стве D действием группы G, справедливо равенство
D: результат действия элемента g группы G на элементе d множества D 1
будем обозначать через g(d) или gd. N= ψ(g).
|G|
Пусть группа G действует на множестве D. Стабилизатором элемента d0 g∈G

48
50 Лекция 4. Теорема Пойа 4.3. Цикловой индекс 51

Доказательство. Введем функцию ψ(d, g) так, что все грани на своих местах, равно 24 и, следовательно, вращений, отлич-
# ных от указанных выше, в группе G нет. Перенумеруем грани кубика так,
1, если gd = d; как это показано на рис. 4.2, где номер закрашенной грани указан рядом с
ψ(d, g) =
0, если gd = d.

Тогда, учитывая лемму 4.1,


1 2 3 4 5 6
ψ(g) = ψ(d, g) = ψ(d, g) =
g∈G g∈G d∈D d∈D g∈G Рис. 4.2

= ψ(d, g) = |St(d)| = |G| = N |G|. соответствующим экземпляром кубика. Перечислим элементы группы G и
Ori d∈Ori g∈G Ori d∈Ori Ori выпишем их индексы.
Разделив левую и правую части получившегося равенства на |G|, получаем 1. Нейтральный элемент e. Этот элемент оставляет все грани кубика на
требуемую формулу для N . Лемма доказана. месте, и, поэтому, Ie = z16 .
2. Вращения на 90◦ и 270◦ вокруг осей, проходящих через центры проти-
воположных граней. Рассмотрим вращение вокруг оси, проходящей через
4.3 Цикловой индекс центры пятой и шестой граней на 90◦ по часовой стрелке. Нетрудно видеть,
что это вращение оставляет пятую и шестую грани на месте и последо-
Если элемент g группы G, действуя на множестве D, разбивает это мно- вательно переводит первые четыре грани друг в друга, т. е. на множестве
жество на ki орбит длины i, где i = 1, . . . , s, то цикловым индексом Ig граней возникают два цикла длины 1 — (5) и (6), и один цикл длины 4 —
элемента g называется одночлен z1k1 z2k2 · · · zsks . Цикловым индексом группы (1234). Остальные вращения действуют аналогичным образом, и, поэтому,
G называется многочлен для каждого из 6 подобных вращений цикловой индекс равен z12 z4 .
1 3. Вращения на 180◦ вокруг осей, проходящих через центры противо-
PG (z1 , z2 , . . . , zk , . . . ) = Ig (z1 , z2 , . . . , zk , . . . ). положных граней. Вновь нетрудно видеть, что такое вращение вокруг оси,
|G|
g∈G проходящей через центры пятой и шестой граней, оставляет эти грани на
Рассмотрим введенные определения на примере упомянутой выше зада- месте и меняет местами первую и третью, и вторую и четвертую грани, т. е.
чи о раскраске граней трехмерного кубика. В этой задаче группа G враще- возникают два цикла длины 1 — (5) и (6), и два цикла длины 2 — (13) и
ний кубика действует на множестве его граней. Прежде всего заметим, что (24). Следовательно, для каждого из 3 подобных вращений цикловой индекс
произвольное ребро с упорядоченными вершинами при помощи вращений равен z12 z22 .
можно преобразовать в любое другое ребро и при этом образ ребра может 4. Вращения на 180◦ вокруг осей, проходящих через центры проти-
быть ориентирован двумя разными способами. Так как образ произволь- воположных ребер. Вращения вокруг оси, изображенной в средней части
ного ребра однозначно определяет выполненное вращение и всего в кубике рис. 4.1, меняют местами первую и четвертую, вторую и третью, и пятую и
содержится двенадцать ребер, то очевидно, что группа G состоит из 24 эле- шестую грани, т. е. возникают три цикла длины 2 — (14), (23) и (56). Таким
ментов. Нетрудно видеть (см. рис. 4.1), что вращать кубик можно вокруг образом для каждого из 6 подобных вращений цикловой индекс равен z23 .
5. Вращения на 120◦ и 240◦ вокруг осей, проходящих через противо-
положные вершины. Нетрудно видеть, что вращение на 120◦ вокруг оси,
изображенной в правой части рис. 4.1, переводят друг в друга первую, чет-
вертую и шестую грани, а также вторую, третью, и пятую грани, т. е. воз-
никают два цикла длины 3 — (146) и (253). Таким образом для каждого из
Рис. 4.1 8 подобных вращений цикловой индекс равен z32 .
Объединяя полученные результаты, находим цикловой индекс
осей, проходящих через центры противоположных граней на углы 90◦ , 180◦
и 270◦ — всего 3 · 3 = 9 различных вращений, вокруг осей, проходящих 1 6 
через центры противоположных ребер на углы 180◦ — всего 6 различных PG = z + 6z12 z4 + 3z12 z22 + 6z23 + 8z32 , (4.1)
24 1
вращений, и вокруг осей, проходящих через противоположные вершины на
углы 120◦ и 240◦ — всего 4 · 2 = 8 различных вращений. Общее число пе- группы вращений трехмерного кубика при действии этой группы на мно-
речисленных вращений с учетом тождественного вращения, оставляющего жестве граней кубика.
52 Лекция 4. Теорема Пойа 4.5. Основная теорема 53

4.4 Функции и их классы эквивалентности будем полагать, что циклы длины единица формируются первыми k1 эле-
ментами множества D, циклы длины два формируются следующими 2k2
Пусть D и R — конечные множества, K — коммутативное кольцо, w : R → K элементами так, что каждый цикл имеет вид (di di+1 ), и т. д. Последние
— весовая функция на множестве R. Для каждой функции f % из множества sks элементов множества D образуют ks циклов вида (dj dj+1 . . . dj+s−1 ).
F = {f : D → R} определим ее вес w положив w(f ) = d∈D w(f (d)). Нетрудно видеть, что вектор значений v(f ) любой функции f , которая опре-
Функции f1 и f2 назовем эквивалентными, если найдется такой элемент g делена на D, принимает значения в R, и которая под действием элемента
группы G, что f1 (d) = f2 (gd) для каждого d ∈ D. Очевидно, что множе- g переходит в себя, выглядит следующим образом. На первых k1 местах
ство F распадается на классы эквивалентности F1 , . . . , Fk , и так как веса произвольным образом располагаются любые элементы множества R. Сле-
эквивалентных функций из одного класса совпадают, то можно говорить о дующие 2k2 мест заполнены k2 парами одинаковых элементов из R. Это
весе класса эквивалентности функций из F . Вес класса F обозначим через необходимо и достаточно для выполнения равенства f (d) = f (g(d)) при
W (F ). d ∈ {dk1 +1 , . . . , dk1 +2k2 }. Следующие 3k3 мест заполнены k3 тройками оди-
Введенные определения снова рассмотрим на примере задачи о раскрас- наковых элементов из R и т. д. Наконец последние sks разрядов вектора
ке граней кубика. Грани будем раскрашивать в два цвета — черный и белый. v(f ) представляют собой последовательность из ks блоков длины s, каж-
В этом случае множество D состоит из шести граней кубика, а множество дый из которых состоит из одинаковых элементов. Нетрудно видеть, что
R — из черного и белого цветов. Кубик, грани которого покрашены в чер- все такие векторы можно получить, раскрыв скобки в произведении
ный и белый цвета, будем рассматривать как функцию из D в R, которая
k1 k2 ks
ставит в соответствие каждой грани ее цвет. Группой G, действующей на
r rr ... r .
. . r , (4.2)
множестве D, будет рассмотренная выше группа вращений кубика, а две
r∈R r∈R r∈R s раз
функции будут эквивалентными, если соответствующие им раскрашенные
кубики можно преобразовать друг в друга при помощи вращений из груп- полагая при этом, что умножение в (4.2) некоммутативно. Таким образом,
пы G. Например, нетрудно видеть, что все кубики с одной черной и пятью
белыми гранями эквивалентны друг другу. В качестве кольца K возьмем k1 k2 ks
кольцо многочленов от переменных x и y с целыми коэффициентами, при v(f ) = r rr ... r .
. . r . (4.3)
f =g(f ) r∈R r∈R r∈R s раз
этом белому цвету припишем вес x, а черному — y. Таким образом, весом
раскрашенного кубика, и весом соответствующей ему функции, будет од-
Например, если s = 2, k1 = 1, k2 = 2 и R = {x, y}, то
ночлен шестой степени от переменных x и y. Если нас интересует число
различных кубиков с тремя черными и тремя белыми гранями, нам надо (x + y)(xx + yy)(xx + yy) =x xx xx + x xx yy + x yy xx + x yy yy+
найти число классов эквивалентности, вес которых равен x3 y 3 . Сделать это (4.4)
можно при помощи теоремы Пойа. +y xx xx + y xx yy + y yy xx + y yy yy.

Теперь вычислим сумму весов всех функций, которые под действием


4.5 Основная теорема элемента g переходят в себя. Для этого в (4.3) заменим каждый элемент r
его весом w(r). Тогда, в силу мультипликативности функции w,
Сформулируем и докажем теорему Пойа о сумме весов классов эквивалент- k1 k2 ks

ности F функций из D в R, полагая, что на множестве D действует группа w(v(f )) = w(r) (w(r))2 ... (w(r))s . (4.5)
G, а на множестве R определена весовая функция w со значениями в ком- f =g(f ) r∈R r∈R r∈R
мутативном кольце K.
Допустим, что веса функций, оставляемых элементом g на месте, прини-
Теорема 4.1. Сумма весов классов эквивалентности равна
мают значения w1 , . . . , wm . Тогда сумму весов рассматриваемых функций

можно представить в виде
W (F ) = PG w(r), (w(r))2 , . . . , (w(r))k , . . . ,
F r∈R r∈R r∈R
wi ψi (g), (4.6)
wi
где PG — цикловой индекс группы.
где ψi (g) — число функций веса wi . Сумма именно такого вида получит-
Доказательство. Рассмотрим элемент g группы G, под действием ко- ся после открытия скобок в правой части равенства (4.5) и последующего
торого множество D распадается на k1 циклов длины единица, k2 циклов приведения подобных слагаемых. Продолжая рассмотренный выше пример,
длины два, и т. д. вплоть до ks циклов длины s. Без ограничения общности положим w(x) = t, w(y) = s и вычислим сумму весов всех функций, векторы
54 Лекция 4. Теорема Пойа 4.6. Задачи 55

значений которых перечислены в правой части равенства (4.4). Нетрудно четвертом слагаемых такого одночлена нет, так как они содержат только
видеть, что четные степени переменных x и y, в третье слагаемое одночлен x3 y 3 вхо-
дит с коэффициентом 12, в пятое — с коэффициентом 16. Следовательно,
(w(x) + w(y))(w(xx) + w(yy))(w(xx) + w(yy)) = коэффициент при x3 y 3 в (4.8) равен
= (t + s)(t2 + s2 )(t2 + s2 ) = t5 + t4 s + 2t3 s2 + 2t2 s3 + ts4 + s5 ,
1 
20 + 0 + 12 + 0 + 16 = 2.
где коэффициент при одночлене ti sj равен количеству тех функций, вес 24
которых равен ti sj .
Возвращаясь к равенству (4.5), заметим, что произведение в его правой Таким образом, грани трехмерного кубика можно раскрасить двумя раз-
части есть ничто иное, как
индекс элемента g, в который вместо перемен- личными способами при условии, что три грани будут окрашены белым
ных xk подставлены суммы r∈R (w(r))k . Следовательно, сумма весов всех цветом, а три — черным.
функций, которые под действием элемента g переходят в себя, равна В случае, когда веса функций не важны, и надо найти только чис-
 ло классов эквивалентности, можно воспользоваться следующим простым
Ig w(r), (w(r))2 , . . . , (w(r))s . (4.7) следствием теоремы Пойа.
r∈R r∈R r∈R
Следствие 4.1. Число классов эквивалентности равно
Вычислив сумму величин (4.7) по всем элементам группы G и разделив 
результат на порядок группы G, видим, что в силу (4.6) PG |R|, |R|, . . . , |R|, . . . ,

PG w(r), (w(r))2 , . . . , (w(r))k , . . . = где PG — цикловой индекс группы.
r∈R r∈R r∈R
⎛ ⎞ Найдем число различных способов, которыми можно покрасить грани
1 1
= wi ψi (g) = wi ⎝ ψi (g)⎠ . кубика тремя цветами. Для этого в цикловой индекс
|G| |G|
w
g∈G i w i g∈G
1 6 
PG = z + 6z12 z4 + 3z12 z22 + 6z23 + 8z32
Из леммы Бернсайда следует, что при фиксированном значении веса w сум- 24 1
1

ма |G| g∈G ψi (g) равна числу классов эквивалентности, возникающих на группы вращений вместо каждой переменной zi подставим тройку. В ре-
множестве функций веса wi в результате действия группы G на множестве зультате получим
D. Следовательно, левая часть последнего равенства равна сумме весов всех
классов эквивалентности. Теорема доказана. 1 6 
PG (3, 3, 3, 3) = 3 + 6 · 33 + 3 · 34 + 6 · 33 + 8 · 32 = 57.
Воспользуемся доказанной теоремой и найдем число различных двух- 24
цветных кубиков с тремя черными и тремя белыми гранями. Для этого в
найденный выше (см. (4.1)) цикловой индекс группы вращений трехмерного 4.6 Задачи
кубика
∗ ∗
1 6  4.1. Функции f : Z17 → Z2 и g : Z17 → Z2 называются эквивалент-
PG = z + 6z12 z4 + 3z12 z22 + 6z23 + 8z32 ными, если существует такое целое k, что для любого x ∈ Z17 ∗
и
24 1
y = 2k x(mod 17) справедливо равенство f (x) = g(y). Найти количе-
вместо каждой переменной zi подставим сумму xi +y i . В результате получим ∗
ство неэквивалентных функций из Z17 в Z2 , принимающих значение
многочлен 1 ровно на 7 аргументах.
1 4.2. Функции f : {1, 2, . . . , 9} → Z3 и g : {1, 2, . . . , 9} → Z3 называются
(x + y)6 + 6(x + y)2 (x4 + y 4 )+ эквивалентными, если существует такой элемент π ∈ (1357), (2468),
24
 (4.8) что для любого x ∈ {1, 2, . . . , 9} и y = π(x) справедливо равен-
+ 3(x + y)2 (x2 + y 2 )2 + 6(x2 + y 2 )3 + 8(x3 + y 3 )2 . ство f (x) = g(y). Найти количество неэквивалентных функций из
{1, 2, . . . , 9} в Z3 , каждая из которых принимает каждое значение на
Теперь найдем коэффициент, который будет стоять при одночлене x3 y 3 по- трех аргументах.
сле раскрытия скобок и приведения подобных слагаемых. В первое сла- 4.3. Сколько существует различных бус из 18 бусин, если шесть бусин
гаемое (x + y)6 одночлен x3 y 3 входит с коэффициентом 20, во втором и окрашены красной краской, а двенадцать бусин — синей краской.
56 Лекция 4. Теорема Пойа

4.4. Сколькими различными способами можно окрасить вершины пра-


вильного 21-угольника тремя красками, если каждой краской окра-
сить семь вершин.
4.5. Сколькими различными способами можно окрасить вершины пра-
вильного 2n -угольника двумя красками.
4.6. Сколькими различными способами можно раскрасить ребра трех- Лекция 5
мерного куба черной и белой красками, если пять ребер покрашены
черной краской, а семь — белой.
4.7. Сколькими различными способами можно раскрасить ребра трех- Графы
мерного куба тремя красками.
4.8. Сколькими различными способами можно раскрасить вершины
трехмерного куба черной и белой красками, если пять вершин по-
крашены черной краской, а три — белой.
4.9. Сколько существует бус из 14 бусин, если шесть бусин окрашены
5.1 Основные понятия и определения
красной краской, пять бусин — синей краской, три — зеленой. Неориентированным графом (или графом) называется пара (V, E), где
4.10. Сколькими различными способами можно раскрасить вершины пра- V = {v1 , v2 , . . . } — множество вершин, E = {e1 , e2 , . . . } — множество ре-
вильного тетраэдра двумя красками. бер, в котором каждый элемент ek является неупорядоченной парой {vi , vj }.
4.11. Сколькими различными способами можно раскрасить ребра пра- Пара (V, E), в которой множество E состоит из упорядоченных пар (vi , vj ),
вильного тетраэдра тремя красками. называется ориентированным графом, а элементы из E — дугами, или ори-
4.12. Стоимость красного камня равна одной единице, зеленого — двум ентированными ребрами. Вершины vi и vj , составляющие ребро или дугу,
единицам, желтого — одной единице. Сколько существует различных называются концевыми вершинами ребра или дуги, а про ребро и дугу го-
ожерелий из 15 камней, если стоимость каждого ожерелья равна 30 ворят, что они соединяют свои концевые вершины.
единицам. Обычно граф изображают на плоскости в виде множества точек, соот-
ветствующих вершинам, и множества линий, которые соединяют вершины
и соответствуют ребрам. При изображении ориентированных графов ли-
нии снабжаются стрелками, указывающими ориентацию дуги, т. е. порядок
вершин в паре. Про дугу (vi , vj ) говорят, что она выходит из вершины vi

6
s v1 s v1 s v1
R
v5 s -
s v2 v5 s s v2 v5 s s v2
-

s v6
6 6
-
s s s s s s
v4 v3 v4 v3 v4  v3
G1 G2 G3

Рис. 5.1
и входит в вершину vj . Вершины vi и vj называются смежными, если они
соединены ребром или дугой e. При этом говорят, что e инцидентно вер-

57
58 Лекция 5. Графы 5.1. Основные понятия и определения 59

шинам vi и vj , а вершины vi и vj инцидентны e. Если два ребра (две ду- его любые вершины связаны ориентированной цепью. Граф G3 не является
ги) инцидентны одной и той же вершине, то эти ребра (дуги) называются сильно связным — в этом графе, например, нет ориентированных цепей,
смежными. Если в E содержится k ≥ 2 экземпляров пары {vi , vj }, то реб- связывающих v1 и v3 .
ро {vi , vj } называется кратным с кратностью k. Аналогичным образом в Графы G1 = (V1 , E1 ) и G2 = (V2 , E2 ) называются изоморфными, если
ориентированных графах определяются кратные дуги. В изображенном на существует взаимно однозначное отображение f : V1 → V2 , при котором
рис. 5.1 графе G2 присутствует ребро {v3 , v3 } кратности два, а в изобра- {vi , vj } ∈ E1 тогда и только тогда, когда {f (vi ), f (vj )} ∈ E2 . Нетрудно ви-
женном там же графе G3 — кратная дуга (v5 , v2 ) и две противоположно деть, что графы G1 и G2 на рис. 5.2 изоморфные. Отображение f , задающее
ориентированных дуги (v3 , v4 ) и (v4 , v3 ). Ребро и дуга называются петлями, их изоморфизм, можно определить следующим образом:
если их концевые вершины совпадают. Далее, если присутствие в графе пе-
тель и кратных ребер специально не оговаривается, то под графом будем f (v1 ) = u1 , f (v2 ) = u3 , f (v3 ) = u5 , f (v4 ) = u2 , f (v5 ) = u4 , f (v6 ) = u6 .
понимать граф без петель и кратных ребер, такой как граф G1 на рис. 5.1.
Аналогичное замечание справедливо и для ориентированных графов. Также нетрудно видеть, что графы G1 и G3 изоморфными не являются.
Степенью s(v) вершины v графа G называется число ребер инцидент- Это следует например из того, что степени всех вершин графа G1 равны
ных этой вершине. Полустепенью захода s+ (v) вершины v ориентирован- трем, а в графе G3 есть вершины, степени которых равны двум и четырем.
ного графа G называется число дуг, входящих в v, а полустепенью исхода Изоморфизм ориентированных графов определяется также как и изомор-
s− (v) — число дуг, выходящих из этой вершины. Степенью s(v) вершины v в
ориентированном графе называется сумма s+ (v) + s− (v). Вершину нулевой v1 v2 v u1 u2 u w1 w2 w
s s s3 s s s3 s s s 3
степени будем называть изолированной. Такой вершиной является вершина
v6 графа G2 на рис. 5.1. Граф называется регулярным, если степени всех
его вершин равны. s s s s s s s s s
v4 v5 v6 u4 u5 u6 w4 w5 w6
Маршрутом1) в графе G (ориентированном графе G) назовем череду-
ющуюся последовательность вершин и ребер α = v1 e1 v2 e2 . . . vk , в которой G1 G2 G3
при i = 1, . . . , k − 1 каждая пара вершин vi , vi+1 связана ребром ei (дугой
Рис. 5.2
ei ), при этом будем говорить, что маршрут α связывает вершины v1 и vk
и проходит через вершины v1 , v2 , . . . , vk и ребра (дуги) e1 , e2 , . . . , ek−1 . Дли- физм неориентированных — в определении последнего достаточно заменить
ной маршрута называется число ребер, через которые маршрут проходит. ребра {vi , vj } на дуги (vi , vj ).
Маршрут, состоящий из несовпадающих ребер, будем называть цепью, а со- Для задания графов часто используют матрицы смежности и инцидент-
стоящий из несовпадающих вершин — простой цепью. Маршрут или цепь ности. Матрицей смежности графа G = (V, E) называется матрица из |V |
α в ориентированном графе называются ориентированными, если все дуги строк и |V | столбцов, в которой на пересечении i-й строки и j-го столбца
ei в них направлены от vi к vi+1 . Замкнутый маршрут, т. е. маршрут с сов- стоит единица, если вершины vi и vj смежные, и нуль, если эти вершины
падающими первой и последней вершинами, в неориентированном графе несмежные. В матрице смежности ориентированного графа на пересечении
называется циклом. Замкнутый ориентированный маршрут в ориентиро- i-й строки и j-го столбца стоит единица, если существует дуга, связываю-
ванном графе называется контуром. щая вершины vi и vj и направленная от vi к vj . В графах с кратными реб-
Подграфом графа G = (V, E) называется такой граф G1 = (V1 , E1 ), что рами единицы в матрицах смежности заменяются на кратности ребер. Так,
V1 ⊆ V и E1 ⊆ E. Так, например, граф G1 на рис. 5.1 можно рассматривать например, матрицы смежности графов G1 и G3 , изображенных на рис. 5.1,
в качестве подграфа графа G2 . Подграф G1 графа G называется остовным, имеют следующий вид:
если он содержит все вершины графа G. ⎛ ⎞ ⎛ ⎞
Граф называется связным, если для любых двух его вершин найдется 0 1 0 0 1 1 1 0 0 1
цепь, связывающая эти вершины. Компонентой связности графа G называ- ⎜1 0 1 0 0⎟ ⎜0 0 0 0 0⎟
⎜ ⎟ ⎜ ⎟
ется такой его связный подграф G1 = (V1 , E1 ), что никакой другой подграф M G1 = ⎜ ⎜0 1 0 1 0⎟ ,
⎟ MG3 = ⎜⎜0 1 0 1 0⎟ .

G2 = (V2 , E2 ), для которого V1 ⊂ V2 , не является связным, и E1 содержит ⎝0 0 1 0 1⎠ ⎝0 0 1 0 1⎠
все ребра, обе концевых вершины которых лежат в V1 . Графы G1 и G3 1 1 0 1 0 0 2 0 0 0
на рис. 5.1 связные, а граф G2 нет, так как его вершина v6 является изо-
лированной. Ориентированный граф называется сильно связным, если две Матрицей инцидентности графа G = (V, E) называется матрица из |V |
строк и |E| столбцов, в которой на пересечении i-й строки и j-го столбца
1) Часто также используется термин путь. стоит единица, если вершина vi инцидентна ребру ej .
60 Лекция 5. Графы 5.2. Теорема Холла 61

Важное подмножество множества всех графов образуют деревья, кото- нибудь ребру этого паросочетания. Пусть A — подмножество доли V1 графа
рые естественным образом появляются в различных задачах теории гра- G = (V1 , V2 , E). Тенью S(A) множества A называется подмножество вершин
фов. Деревом называется связный граф без циклов. Нетрудно видеть, что доли V2 , каждая из которых смежна хотя бы с одной вершиной из A. В
в любом дереве число вершин p на единицу больше числа ребер q, и что следующей теореме Ф. Холла устанавливается необходимое и достаточное
в дереве любые две вершины связаны ровно одной простой цепью. Дерево условие существования паросочетания.
с выделенной вершиной называется корневым, а сама выделенная вершина
— корнем этого дерева. Если в дереве степень вершины v равна единице, Теорема 5.1. Конечный двудольный граф G с долями V1 и V2 облада-
то v называется висячей вершиной, если при этом v не является корнем, то ет паросочетанием, покрывающим долю V1 , тогда и только тогда, когда
она также называется листом. Длина максимальной цепи от корня дере- |S(X)| ≥ |X| для любого непустого X ⊆ V1 .

s s s s s s Доказательство. Необходимость условия теоремы очевидна, так как


если тень некоторого подмножества X состоит из меньшего чем само X
s s s s s s s s s s
числа вершин, то между вершинами из X и вершинами из его тени нельзя
установить взаимно однозначное соответствие.
s s s s s
Установим достаточность условия теоремы. Сделаем это индукцией по
числу вершин n в V1 . В основание индукции положим очевидный случай
Рис. 5.3
n = 1. Допустим, что достаточность доказана при всех значениях |V1 | не
ва до его листа называется высотой дерева. Примеры различных деревьев превосходящих m − 1. Пусть G = (V1 , V2 , E) — произвольный двудольный
приведены на рис. 5.3. граф, в котором доля V1 состоит из m вершин. Рассмотрим два возможных
Другой важный класс графов образуют двудольные графы. Граф G = случая.
(V, E) называется двудольным, если множество вершин V является объеди- (i) Для любого непустого подмножества A ⊂ V1 справедливо строгое
нением таких непересекающихся подмножеств V1 и V2 , что концевые верши- неравенство |S(A)| > |A|. В этом случае в V1 и V2 выберем по одной вер-
ны любого ребра из E лежат в разных подмножествах Vi . Подмножества V1 шине, которые связаны ребром e, и удалим эти вершины со всеми инцидент-
и V2 называются долями графа G. Графы G1 и G2 на рис. 5.2 двудольные, а ными им ребрами из G. В новом графе G = (V1 , V2 , E  ) доля V1 состоит из
граф G3 двудольным не является. Отметим, что каждое дерево будет дву- m − 1 вершин и для каждого непустого подмножества X ⊆ V1 справедли-
дольным графом, поэтому все графы на рис. 5.3 двудольные. Двудольный во неравенство |S(X)| ≥ |X|, так как после удаления ребра e размер тени
граф G с долями V1 и V2 и множеством ребер E будем иногда обозначать любого подмножества из V1 уменьшился не более чем на единицу. По пред-
тройкой (V1 , V2 , E). положению индукции в G существует паросочетание M  , покрывающее V1 .
Граф G называется полным графом на n вершинах, если любые две Тогда объединение M  с ребром e будет требуемым паросочетанием в G.
вершины этого графа смежные. Полный граф на n вершинах обозначается (ii) В V1 найдется такое подмножество A, что |S(A)| = |A|. По предполо-
через Kn . Двудольный граф G с долями из n и m вершин называется пол- жению индукции в двудольном графе GA = (A, S(A), EA ), долями которого
ным, если любые две его вершины, принадлежащие разным, долям смеж- являются множества A и S(A), а ребрами — все ребра графа G инцидентные
ные. Полный двудольный граф G с долями из n и m вершин обозначается вершинам этих множеств, существует совершенное паросочетание MA . Рас-
через Kn,m . смотрим двудольный граф G = (V1 , V2 , E  ), где V1 = V1 \ A, V2 = V2 \ S(A),
E  — множество ребер инцидентных одновременно V1 и V2 . Если для какого-
нибудь B ⊂ V1 выполняется неравенство |S(B)| < |B|, то в силу того, что
5.2 Теорема Холла A и B не пересекаются, справедливы неравенства
Произвольное подмножество попарно несмежных ребер графа G называет-
ся его паросочетанием. Паросочетание называется совершенным, если каж- |S(A ∪ B)| ≤ |S(A)| + |S(B)| = |A| + |S(B)| < |A| + |B| = |A ∪ B|,
дая вершина графа инцидентна какому-нибудь ребру паросочетания. Граф
G1 на рис. 5.2 обладает совершенным паросочетанием, например таким — которые очевидно противоречат условию теоремы. Следовательно, |S(B)| ≥
{{v1 , v4 }, {v2 , v5 }, {v3 , v6 }}, в то время как ни в одном из графов на рис. 5.3 |B| для любого непустого B ⊆ V1 . Поэтому в силу индуктивного предпо-
совершенного паросочетания нет. ложения в графе G существует паросочетание M  , покрывающее долю V1 .
Будем говорить, что паросочетание M двудольного графа G = (V1 , V2 , E) Легко видеть, что объединение MA и M  будет паросочетанием в графе G,
покрывает долю Vi , если каждая вершина этой доли инцидентна какому- и это паросочетание будет покрывать V1 . Теорема доказана.
62 Лекция 5. Графы 5.3. Теорема Менгера 63

5.3 Теорема Менгера sv sv sv


Множество вершин N ⊆ V графа G = (V, E) называется vw-рассекающим
множеством, если любая цепь, связывающая в G несмежные вершины v s s s s s s
и w, проходит хотя бы через одну вершину из N . Будем говорить, что две
цепи, связывающие в графе G несмежные вершины v и w, не пересекаются,
если они не имеют общих вершин кроме v и w. В следующей теореме, дока- a1 s s a2 s a3 a1 s s a2 s a3 a1 s s a2 s a3
занной Менгером в 1927 г., устанавливается связь между числом вершинно
непересекающихся цепей, соединяющих две различные вершины графа, и s s s s s s
числом вершин в соответствующем рассекающем множестве.
Теорема 5.2. Максимальное число вершинно непересекающихся цепей, s s s
соединяющих две различные несмежные вершины v и w связного графа, w w w
равно минимальному числу вершин в vw-рассекающем множестве. G Gv Gw
Доказательство. Так как каждая цепь, соединяющая вершины v и w,
Рис. 5.4
пересекает vw-рассекающее множество, то число вершинно непересекаю-
щихся цепей не больше числа вершин в любом vw-рассекающем множестве. фов максимальное число вершинно непересекающихся цепей, соединяющих
Докажем обратное неравенство. Сделаем это индукцией по числу вершин вершины v и w, равно k. Пусть α1 , . . . , αk и β1 , . . . , βk — такие цепи в Gv
графа. Допустим, что в любом связном графе из m − 1 или менее вершин и Gw , причем цепи αi и βi для всех i = 1, . . . , k проходят через вершину
максимальное число вершинно непересекающихся цепей, соединяющих две ai множества A. Нетрудно видеть, что если для каждого i = 1, . . . , k соеди-
различные несмежные вершины v и w этого графа, не меньше минимально- нить лежащие в G фрагменты цепей αi и βi в одну цепь γi , то получим k
го числа вершин в vw-рассекающем множестве. Пусть граф G содержит m вершинно непересекающихся цепей, которые в G соединяют вершины v и
вершин, среди которых есть несмежные вершины v и w, и его минимальное w. Таким образом в G существует не менее k вершинно непересекающихся
vw-рассекающее множество состоит из k вершин. Без ограничения общ- цепей, связывающих v и w .
ности будем считать, что каждая вершина принадлежит по крайней мере 2) Теперь рассмотрим случай, когда в графе G каждое минимальное vw-
одному k-элементному vw-рассекающему множеству. В противном случае рассекающее множество A состоит из k вершин и при этом хотя бы одно
после удаления из G любой неудовлетворяющей этому условию вершины из соответствующих множеств Av или Aw пусто. Нетрудно видеть, что в
минимальное vw-рассекающее множество в новом графе по-прежнему бу-
дет состоять из k вершин, и в силу предположения индукции в нем найдется sv sv sv
k вершинно непересекающихся цепей из v в w. Теперь заметим, что всякое
vw-рассекающее множество A делит вершины графа (все кроме v, w и вер- s s s s sx s s
шин из самого A) на два непересекающихся подмножества Av и Aw . Первое
z s
подмножество состоит из всех тех вершин, которые связаны с v цепями, не
проходящими через A, второе — из тех вершин, которые связаны с w цепя- s s s s sy s s
ми, также не проходящими через A. Рассмотрим два возможных случая.
1) Допустим, что в G существует минимальное vw-рассекающее множе- s s s
ство A, которое состоит из k вершин a1 , . . . , ak и такое, что оба множества w w w
Av и Aw содержат хотя бы по одной вершине. В этом случае граф G преоб-
a) b) c)
разуем в два новых графа Gv и Gw следующим образом. Граф Gv получим,
удалив из G все вершины, принадлежащие Av , и соединив v ребрами со Рис. 5.5
всеми вершинами из A. Аналогичным образом получим Gw — удалим все
вершины, принадлежащие Aw , и соединим w ребрами со всеми вершина- этом случае каждая вершина графа, которая принадлежит рассекающему
ми из A. Пример таких построений приведен на рис. 5.4. Каждый из гра- множеству A, смежна с v, если пусто Av , или смежна с w, если пусто Aw .
фов Gv и Gw состоит не более чем из m − 1 вершин, и в каждом из этих Примеры таких графов изображены на рис. 5.5. Если предположить, что
графов минимальное число вершин в vw-рассекающем множестве равно k. существует вершина z ∈ A, где Av пусто и z несмежна с v, то любая цепь,
Следовательно, в силу индуктивного предположения в каждом из этих гра- связывающая z с v, должна проходить через какую-либо другую вершину
64 Лекция 5. Графы 5.3. Теорема Менгера 65

из A, и, следовательно, A не будет минимальным vw-рассекающим множе- Теорема 5.4 называется реберной теоремой Менгера для ориентирован-
ством. ных графов. С этой теоремой тесно связана теорема Форда–Фалкерсона
Предположим, что в G найдется вершина z смежная одновременно с v о максимальном потоке и минимальном разрезе. Эта теорема, доказанная
и w. Пример такого графа показан на рис. 5.5 a. Удалим вершину z вме- Л. Фордом и Д. Фалкерсоном в 1956 г., стала основой развитой и имеющей
сте с инцидентными ей ребрами из G. В новом графе G минимальное vw- различные приложения теории потоков в сетях. Прежде чем сформулиро-
рассекающее множество будет состоять из k − 1 вершин и, в силу индук- вать теорему Форда–Фалкерсона дадим необходимые определения.
тивного предположения, в G вершины v и w связывают k − 1 вершинно Сетью N называется ориентированный граф G с двумя выделенными
непересекающихся цепей α1 , . . . , αk−1 . Очевидно, что все эти цепи присут- вершинами v и w, на дугах которого определена неотрицательная функция
ствуют и в графе G и не пересекаются с цепью αk = (vzw). Следовательно, ϕ. Вершины v и w называются полюсами сети, функция ϕ — пропускной
число вершинно непересекающихся цепей, связывающих в G вершины v и способностью, а ее значение ϕ(e) на дуге e — пропускной способностью дуги
w, не меньше k. e. На дугах графа G определим функцию ψ так, что 0 ≤ ψ(e) ≤ ϕ(e) для
Осталось рассмотреть графы, в которых каждая вершина смежна толь- каждой дуги e. Полустепенью исхода ρ− (u) вершины u назовем сумму зна-
ко с v или только с w. Так как каждая вершина в таком графе G принад- чений функции ψ, взятую по всем дугам, выходящим из u, а полустепенью
лежит хотя бы одному рассекающему множеству, то в этом случае в графе захода ρ+ (u) вершины u — сумму значений функции ψ, взятую по всем ду-
обязательно найдется цепь длины три, которая связывает v и w. Выберем гам, входящим в u. Функция ψ называется потоком из полюса v в полюс w
в G такую цепь длины три, полагая, что она проходит через вершины x и y через сеть N , если ρ+ (v) = 0, ρ− (w) = 0 и ρ+ (u) = ρ− (u) для любой вершины
(см. рис. 5.5 b). Удалим из G вершины x и y вместе со всеми инцидентными u отличной от v и w. Вершина v называется источником сети, а вершина w
им ребрами. В получившемся графе G любое минимальное vw-рассекающее — стоком сети. Сумма ρ+ (u) + ρ− (u) называется потоком через вершину u.
множество A будет состоять из k − 1 вершин (см. рис. 5.5 c). Если найдется Величиной потока ψ называется ρ+ (v). Так как поток через любую вершину
A , состоящее из k − 2 вершин, то очевидно, что A = A ∪ {x, y} будет мини- отличную от v и w равен нулю, то нетрудно видеть, что ρ+ (w) = ρ− (v). Если
мальным vw-рассекающим множеством в G, причем таким, что ни Av , ни величина потока ψ из v в w через сеть N не меньше величины любого дру-
Aw не будут пустыми. Это следует из того, что в графе G степени вершин гого потока из v в w через эту сеть, то поток ψ называется максимальным.
v и w не меньше k, и, поэтому, по крайней мере одна вершина смежная с Разрезом C сети (G, v, w, ϕ) называется любое vw-разделяющее множество
v и одна вершина смежная с w не попадут в A и будут разделены этим ориентированного графа G. Сумма пропускных способностей входящих в
множеством, т. е. Av и Aw должны содержать не менее чем по одной вер- разрез дуг называется пропускной способностью разреза. Если пропускная
шине. Таким образом, в силу индуктивного предположения в G вершины способность разреза C не больше пропускной способности любого другого
v и w связывают k − 1 вершинно непересекающихся цепей α1 , . . . , αk−1 , все разреза, то разрез C называется минимальным.
эти цепи присутствуют в графе G и не пересекаются с цепью αk = (vxyw). Сеть с определенными на ее дугах пропускными способностями изобра-
Следовательно, число вершинно непересекающихся цепей, связывающих в жена в левой части рис. 5.6. В этой сети все дуги ориентированы от полюса
G вершины v и w, не меньше k. Теорема доказана. v к полюсу w. Нетрудно видеть, что пропускная способность минимального
Множество ребер M ⊆ E графа G = (V, E) называется vw-разделяю- 3 2
t t t t
щим множеством, если любая цепь, связывающая в G вершины v и w, 2 3 2 3
проходит хотя бы через одно ребро из M . Следующую теорему, реберный v t 1 tw v t 1 tw
вариант теоремы 5.2, приведем без доказательства, которое почти дословно
2 t 2 t 1 2 t 1 t 1
совпадает с доказательством теоремы 5.2.

Теорема 5.3. Максимальное число реберно непересекающихся цепей, со- Рис. 5.6
единяющих две различные вершины v и w связного графа, равно минималь-
ному числу ребер в vw-разделяющем множестве. разреза сети равна пяти. Эта же сеть изображена в правой части рис. 5.6,
где рядом с каждой дугой указана величина определенного на этой сети
Теорема 5.3 естественным образом легко переносится на ориентирован- потока. Величина этого потока через сеть равна пяти, т. е. равна величине
ные графы. Имеет место следующее утверждение. минимального разреза. Так как величина потока не может быть больше
пропускной способности разреза, то очевидно, что указанный поток будет
Теорема 5.4. Максимальное число реберно непересекающихся ориенти- максимальным.
рованных цепей, соединяющих две различные вершины v и w связного гра- Теперь сформулируем теорему Форда–Фалкерсона. Доказательство этой
фа, равно минимальному числу дуг в vw-разделяющем множестве. теоремы опустим, так как его можно легко получить при помощи теоре-
66 Лекция 5. Графы 5.5. Раскраски вершин 67

мы 5.4. что очевидно противоречит попарной несравнимости элементов sm m


1 , . . . , sk .
Таким образом элементы s1 , . . . , sk попарно несравнимы, а так как каждый
Теорема 5.5. В любой сети величина любого максимального потока si ∈ Bi , то они несравнимы и с элементом d. Следовательно, предположив,
равна пропускной способности любого минимального разреза. что в каждом множестве Fi есть k попарно несравнимых элементов, мы
пришли к заключению, что в D есть k + 1 попарно несравнимый элемент,
т. е. пришли к противоречию.
5.4 Теорема Дилуорса
Совершенно аналогично можно показать, что среди множеств Hi =
Сформулируем и докажем теорему Дилуорса, в которой устанавливается ((∪kj=1 Cj ) ∪ (∪kj=1 Bj )) \ Ci найдется множество Hq , в котором число попарно
важное экстремальное свойство частично упорядоченных множеств. Ча- несравнимых элементов не превосходит k − 1.
стично упорядоченные множества удобно представлять в виде бесконтур- Пусть T — максимальное подмножество попарно несравнимых элемен-
ных ориентированных графов, ставя в соответствие элементам множества тов из D\(Ap ∪Cq ∪{d}). Так как a  d  c для любых a из Ai и c из Cj , то T
вершины графов, а отношение частичного порядка между двумя элемента- целиком лежит либо в Fp , либо в Hq . Поэтому по предположению индукции
ми изображать посредством дуги, связывающей соответствующие вершины. множество D \ (Ap ∪ Cq ∪ {d}) есть объединение не более чем k − 1 цепей.
Так как Ap ∪ {d} ∪ Cq является цепью, то множество D можно покрыть не
Теорема 5.6. Минимальное число непересекающихся цепей, которы- более чем k непересекающимися цепями. Теорема доказана.
ми можно покрыть конечное частично упорядоченное множество, равно
максимальному числу попарно несравнимых элементов этого множества.
5.5 Раскраски вершин
Доказательство. Так как никакая цепь не может содержать двух
несравнимых элементов, то очевидно, что m — минимальное число непе- Будем говорить, что вершины графа G правильным образом раскрашены k
ресекающихся цепей, которыми можно покрыть частично упорядоченное цветами, если каждой вершине приписан один из k цветов так, что всем
множество, не меньше чем M — максимальное число попарно несравнимых смежным вершинам графа G приписаны разные цвета. Хроматическим
элементов этого множества. числом χ(G) графа G называется минимально возможное число цветов k,
Покажем, что m ≤ M . Сделаем это индукцией по числу элементов ча- которым можно правильным образом раскрасить его вершины.
стично упорядоченного множества. Допустим, что m ≤ M для любого мно- В задачах, связанных с раскрасками графов, часто используется опера-
жества из не более чем n элементов. Пусть частично упорядоченное мно- ция перекрашивания вершины. Перекраска в графе G вершины v, покра-
жество D состоит из n + 1 элементов, среди которых найдется k попарно шенной цветом ci , в цвет cj осуществляется следующим образом. В графе
несравнимых. Рассмотрим множество D \ d, где d — произвольный элемент G выделяется подграф Gij , состоящий из вершин, покрашенных цветами ci
D. Если максимальное число попарно несравнимых элементов в D \ d равно и cj , и всех инцидентных этим вершинам ребер. Затем в компоненте связ-
k − 1, то по предположению индукции D \ d будет объединением k − 1 непе- ности, содержащей вершину v, цвета ci и cj меняются местами. На рис. 5.7
ресекающихся цепей. Добавив к этим цепям новую цепь из единственного
элемента d, получим требуемое покрытие D, состоящее из k цепей. t t t t t t t t
Теперь рассмотрим случай, когда множество D \ d содержит k попарно c2 c1 c3 c2 c1 c2 c3 c2
несравнимых элементов. В силу предположения индукции, множество D \ d v v
можно покрыть k цепями D1 , . . . , Dk . Каждую цепь Di разобьем на три t t t t t t t t
части Ai , Bi и Ci так, что a  d для всякого a из Ai , c ≺ d для всякого c1 c2 c1 c3 c2 c1 c2 c3
c из Ci , и все элементы Bi несравнимы с d. Если какое-либо Bi пусто, то Рис. 5.7
элемент d можно добавить в цепь Di , и в этом случае D будет покрыто k
цепями. Поэтому далее полагаем, что все множества Bi не пусты. изображен граф до и после перекраски вершины v в цвет c2 . В этом гра-
Покажем, что среди множеств Fi = ((∪kj=1 Aj ) ∪ (∪kj=1 Bj )) \ Ai найдется фе подграф G12 состоит из двух компонент связности. Одна компонента
множество Fp , в котором число попарно несравнимых элементов не превос- содержит пять левых вершин, в том числе и вершину v, а вторая — од-
ходит k−1. Допустим это не так и в каждом множестве Fi найдется k попар- ну изолированную вершину, покрашенную цветом c2 . После перекраски все
но несравнимых элементов {si1 , . . . , sik }, где sij ∈ Dj . Очевидно, что sii ∈ Bi , вершины первой компоненты поменяли свои цвета, а единственная вершина
так как элементы цепи Ai не входят в Fi . Положим si = min(s1i , . . . , ski ). Так второй компоненты сохранила свой цвет. Нетрудно видеть, что правильно
как sii ∈ Bi , то и si ∈ Bi . Покажем, что элементы si и sj несравнимы для лю- раскрашенный граф после перекраски вершины остается правильно рас-
бых неравных i и j. Действительно, если si = sm i и si ≺ sj , то si ≺ sj  sj ,
m m
крашенным.
68 Лекция 5. Графы 5.5. Раскраски вершин 69

В следующей теореме, доказанной Р. Л. Бруксом в 1941 г., устанавлива- u цветом cj . В результате получим правильную раскраску вершин графа
ется верхняя оценка хроматического числа произвольного графа. G. Если степени вершин v i и v j равны единице, то в графе Gij обязательно
найдется вершина, степень которой не меньше трех. Пусть v — такая вер-
Теорема 5.7. Если максимальная степень вершин связного графа G не
превосходит n, n ≥ 3 и G не является графом Kn+1 , то χ(G) ≤ n.
Gij t t t t vj
Доказательство. Воспользуемся индукцией по числу вершин графа. ci cj ci cj
Допустим, что вершины любого графа, удовлетворяющего условиям теоре- vt
мы и содержащего не более чем m вершин, можно раскрасить красками vi t t t t t t
ci cj ci cj ci cj ci
n цветов. Пусть граф G удовлетворяет услови-
v i , ci ям теоремы и содержит m + 1 вершин, вершина Рис. 5.9
t
u этого графа смежна с вершинами v 1 , . . . , v n ,
t а граф G получается из G после удаления u и шина, причем цепь, связывающая v и v i , проходит только через вершины
v j , cj всех инцидентных с u ребер. По предположению степени два (см. рис. 5.9). Тогда v смежна не менее чем с тремя вершинами,
t t индукции вершины G можно раскрасить n цве- покрашенными одинаковым цветом, например, ci . Следовательно, как и в
u v 2 , c2 тами. Будем полагать, что в графе G каждая предыдущем случае, существует такой цвет c, что среди вершин смежных
вершина v i покрашена цветом ci . Далее пола- с v, нет вершины, покрашенной цветом c. Поэтому в графе G можно пе-
t t гаем, что все (кроме u) вершины графа G по- рекрасить вершину v в цвет c. После этого в перекрашенном подграфе Gij
v n , cn v 1 , c1 крашены теми же цветами, что и аналогичные вершины v i и v j будут лежать в разных компонентах связности, и, следова-
вершины G . Если среди цветов c1 , . . . , cn есть тельно, мы приходим к рассмотренной выше ситуации, в которой возможна
Рис. 5.8 два одинаковых, то вершину u можно покра- правильная раскраска вершин G.
сить тем цветом, которого нет среди этих цветов (см. рис. 5.8). Поэтому 2) Допустим, что найдутся такие i, j и k, что графы Gij и Gjk имеют
далее считаем, что все cj различны. кроме v j еще хотя бы одну общую вершину v. Подобная ситуация показа-
Пусть Gij — подграф графа G, образованный вершинами, покрашенны-
t t на на рис. 5.10, где кривыми изображены цепи.
ми цветами ci и cj . Если вершины v i и v j лежат в разных компонентах v i , ci ci Легко видеть, что вершина v смежна с двумя
связности графа Gij , то вершину v i можно перекрасить в цвет cj , не изме- v, cj
t вершинами, покрашенными цветом ci , и двумя
няя цвета вершины v j . Очевидно, что после такой перекраски вершину u вершинам, покрашенными цветом cj . Следова-
можно покрасить цветом ci и в результате получить правильную раскраску t тельно, как и в предыдущем случае, существу-
графа G. Поэтому далее полагаем, что во всех подграфах Gij вершины v i ck t ет такой цвет c, что среди вершин смежных с v
t ck
и v j лежат в одних и тех же компонентах связности. При этом возможны ci нет вершины, покрашенной цветом c. Поэтому в
следующие четыре случая: графе G можно перекрасить вершину v в цвет
1) найдутся такие i и j, что граф Gij не является простой цепью, свя- t t c. После этого в перекрашенном подграфе Gij
зывающей v i и v j ; v j , cj v k , ck вершины v i и v j будут лежать в разных ком-
2) при любых i и j граф Gij является простой цепью, связывающей v i и понентах связности, и, следовательно, мы сно-
Рис. 5.10
v j , и среди этих цепей найдутся две, имеющие общую неконцевую вершину; ва приходим к рассмотренной выше ситуации, в
3) при любых i и j граф Gij является простой цепью, связывающей v i которой возможна правильная раскраска вершин G.
и v j , хотя бы одна из этих цепей не является ребром, и никакие две цепи 3) Пусть теперь при любых i, j и k графы Gij и Gjk не имеют кроме
не имеют общих неконцевых вершин; v j ни одной общей вершины, а граф Gst кроме вершин v s и v t содержит
4) при всех i и j вершины v i и v j смежные. вершину v, которая смежна с вершиной v s и покрашена цветом ct . Пусть
Рассмотрим эти случаи. cr – цвет отличный от cs и ct , а vr — вершина, покрашенная этим цветом.
1) Сначала будем полагать, что степень одной из вершин v i или v j боль- Фрагмент такого графа изображен на рис. 5.11. В графе Gsr поменяем ме-
ше единицы. Пусть такой вершиной будет v j . Тогда v j смежна не менее стами цвета cs и cr . Нетрудно видеть, что цвета вершин, не принадлежащих
чем с двумя вершинами, покрашенными цветом ci (см. рис. 5.9). Так как v j графу Gsr , не изменятся. Покажем, что после перекраски возникнет один
смежна не более чем с n вершинами, одна из которых не окрашена, а две из рассмотренных выше случаев 1) или 2). Если это не так, то в перекра-
окрашены одинаковым цветом, то, очевидно, что среди n цветов найдется шенном графе G графы Grt и Gst являются простыми цепями и не имеют
цвет c, которым не окрашена ни одна из вершин смежных с v j . Поэтому кроме v t ни одной общей вершины. Тогда цепь, связывающая в G вершины
можно перекрасить вершину v j в цвет c, и после этого покрасить вершину v s и v t и состоящая из вершин цвета cr и ct , обязательно проходит через
70 Лекция 5. Графы 5.6. Раскраски ребер 71

вершину v (см. рис. 5.12), так как в противном случае граф Gst не будет
t t t t t t t t
цепью, связывающей v s и v t . Поэтому в G, как и в G , вершины v и v t c2 c1 c3 c1 c2 c3
e c1 c3 c2 c1 e c2 c3 c1 c1
(cs cr ) (cs cr ) (cs cr ) t t t t t t t t
v s , cs v r , cr v s , cr v r , cs v s , cs v r , cr c2 c1 c3 c1 c2 c3
t t t t t t
Рис. 5.14
t t t
v, ct v, ct v, ct компоненты сохранило свой цвет. Нетрудно видеть, что правильно раскра-
(cr ct ) (cr ct )
шенный граф после перекраски ребра остается правильно раскрашенным.
(cs ct ) (cs ct ) В следующей теореме, которая в несколько более общей формулировке
t v t , ct tv t , ct t v t , ct
была доказана В. Г. Визингом в 1964 г., устанавливаются верхняя и нижняя
Рис. 5.11 Рис. 5.12 Рис. 5.13 оценки хроматического индекса произвольного графа.
Теорема 5.8. Если максимальная степень вершин графа G равна k, то
связаны (cr ct )-цепью, состоящей из вершин цвета cr и ct (см. рис. 5.13). Но k ≤ χ (G) ≤ k + 1.
тогда (cr ct )-цепь между вершинами v и v t графа G будет частью графа
Grt , и в этом случае или граф Grt не является цепью, или цепи Gst и Grt Доказательство. Нижняя оценка теоремы очевидна. Для доказатель-
имеют общую вершину v. ства верхней оценки воспользуемся индукцией по числу ребер графа. В
4) Если при всех i и j вершины v i и v j смежные, то нетрудно видеть, основание индукции положим дерево из k ребер, в котором степень одной
что в этом случае граф G является полным графом Kn+1 и, следовательно, из вершин равна k. Далее допустим, что любой граф, удовлетворяющий
не удовлетворяет условиям теоремы. условиям теоремы и содержащий не более чем m ребер, можно раскрасить
Теорема доказана. не более чем k + 1 цветами. Пусть граф G удовлетворяет условиям теоре-
мы и содержит m + 1 ребро, вершина u этого графа смежна с вершинами
Нетрудно видеть, что для раскраски графа C2n+1 , являющегося циклом v 1 , . . . , v k , а граф G получается из G после удаления ребра {u, v 1 }. По
длины 2n + 1, требуется три различных цвета, и поэтому ограничение на предположению индукции ребра G можно раскрасить k + 1 цветами. Далее
число вершин в теореме Брукса убрать нельзя. полагаем, что все ребра графа G кроме ребра {u, v 1 } покрашены теми же
цветами, что и аналогичные ребра G .
Будем говорить, что цвет ci отсутствует в вершине v, если среди инци-
5.6 Раскраски ребер дентных этой вершине ребер нет ребра, покрашеного цветом ci . Пусть цвет
c1 отсутствует в вершине v 1 . Если c1 отсутствует и в u, то ребро {u, v 1 }
Будем говорить, что ребра графа G правильным образом раскрашены k можно покрасить цветом c1 , и в этом случае граф G будет полностью по-
цветами, если каждому ребру графа G приписан один из k цветов так, что крашен. Поэтому далее полагаем, что инцидентные вершине u ребра по-
ребрам, инцидентным одной и той же вершине, приписаны разные цвета. крашены цветами c1 , . . . , ck−1 .
Хроматическим индексом χ (G) графа G называется минимально возмож- Из вершин v 1 , . . . , v k и цветов c1 , . . . , ck+1 составим упорядоченный на-
ное число цветов k, которым можно правильным образом раскрасить его бор вершин v 1 , v i2 , . . . , v ij и упорядоченный набор цветов c1 , ci2 , . . . , cij в
ребра. соответствии со следующей индуктивной процедурой.
При раскраске ребер, также как и при раскраске вершин, часто исполь- Пусть выбраны вершины v 1 , v i2 , . . . , v im и цвета c1 , ci2 , . . . , cim так, что
зуется перекраска. Пусть в раскрашенном графе G ребро e покрашено цве- в вершине v it отсутствует цвет cit . Если среди еще невыбранных вершин
том ci . Перекраска этого ребра в цвет cj осуществляется следующим обра- найдется вершина v такая, что ребро {u, v} покрашено цветом ciq , то пола-
зом. В графе G выделяется подграф Gij , состоящий из ребер, покрашенных гаем v iq+1 = v и ciq+1 = c, где c — цвет, отсутствующий в вершине v. Если
цветами ci и cj , и всех инцидентных этим ребрам вершин. Затем в компо- такой вершины v нет, то формирование наборов вершин и цветов законче-
ненте связности, содержащей ребро e, цвета ci и cj меняются местами. На но. Нетрудно видеть, что очередная вершина не может быть выбрана по
рис. 5.14 изображен граф до и после перекраски ребра e в цвет c2 . В этом одной из двух причин — 1) либо ciq ∈ {ck , ck+1 }, 2) либо ciq ∈ {c1 , . . . , ciq−1 }.
графе подграф G12 состоит из двух компонент связности. Первая компонен- Рассмотрим два этих случая, полагая далее v j = v ij и cj = cij для каждого
та является циклом из шести ребер, среди которых находится и ребро e, а j = 2, . . . , q.
вторая — из единственного ребра, покрашенного цветом c1 . После перекрас- 1) Соответствующий первому случаю фрагмент графа G изображен на
ки все ребра первой компоненты поменяли свои цвета, а ребро из второй рис. 5.15a, где рядом с вершинами указаны отсутствующие в этих вершинах
72 Лекция 5. Графы 5.7. Задачи 73

цвета (на рисунке не указаны отсутствующие в u и v 1 вторые цвета). Цвет Таким образом и во втором случае существует правильная (k + 1)-
раскраска ребер графа G. Теорема доказана.
v q−1 , cq−1 v i+1 , ci+1 v q−1 , cq−1 v i+1 , ci+1
t t t t
cq−2 cq−2
v q , ck t ci t v i , ci v q , ci t ci t v i , ci
5.7 Задачи
cq−1 cq−1 ci−1
ci−1 t
t u, ck 5.1. Показать, что в любом конечном графе без петель и кратных ребер
u, ck
найдутся две вершины одинаковой степени.
c1 c1 5.2. Показать, что число неизоморфных деревьев с n вершинами не пре-
e e
t t t t восходит 4n .
vk t v 2 , c2 vk t v 2 , c2
v 1 , c1 5.3. Показать, что число неизоморфных связных графов с n вершинами
v 1 , c1 и m ребрами не превосходит am+1 nm−n+1 , где a — константа.
a) b) 5.4. Показать, что в любом конечном регулярном двудольном графе су-
ществует совершенное паросочетание.
Рис. 5.15 5.5. Доказать теоремы 5.3 и 5.4.
5.6. Доказать теорему 5.5.
ck отсутствует в u и в v q , поэтому ребро {u, v q } можно перекрасить в цвет
5.7. Граф называется эйлеровым, если в нем существует цикл, проходя-
ck , и при этом раскраска графа G останется правильной. В результате такой
щий через каждое ребро графа ровно один раз. Доказать, что связ-
перекраски цвет cq−1 будет отсутствовать в вершинах u и в v q−1 . Далее по-
ный граф будет эйлеровым тогда и только тогда, когда степень каж-
следовательно для каждого j = q − 1, . . . , 2 перекрасим ребро {u, v j } в цвет
дой его вершины четна.
cj . После перекраски цвет c1 будет отсутствовать в u и в v 1 . Поэтому ребро
{u, v 1 } можно покрасить в цвет c1 . Таким образом, существует правильная 5.8. Граф называется планарным, если его можно изобразить на плоско-
(k + 1)-раскраска ребер графа G. сти так, что никакие его два ребра не пересекаются. Показать, что
2) Рассмотрим второй случай. Соответствующий этому случаю фраг- в любом планарном графе число вершин В, число ребер Р и число
мент графа G изображен на рис. 5.15b. Пусть Gik — остовный подграф областей О, на которые граф разбивает плоскость, связаны соотно-
графа G, содержащий все ребра, покрашенные цветами ci и ck . Так как сте- шением B + O − P = 2.
пень каждой вершины в Gik не превосходит двух, то нетрудно видеть, что 5.9. Показать, что в любом планарном графе без петель и кратных ребер
каждая компонента связности графа Gik является либо простым циклом, найдется вершина степени не более чем пять.
либо простой цепью, либо изолированной вершиной. В Gik степени вершин 5.10. Показать, что вершины любого планарного графа можно раскра-
u, v i и v q равны единице. Поэтому эти три вершины не могут одновремен- сить в пять цветов так, что смежные вершины будут раскрашены в
но принадлежать одной и той же компоненте связности. Рассмотрим две разные цвета.
возможности. 5.11. Найти хроматические числа и хроматические индексы графов Kn и
1. Вершина u не лежит в одной компоненте связности с v i . Тогда в Kn,m .
компоненте, содержащей вершину v i , поменяем местами цвета ck и ci . В 5.12. Показать, что у произвольного двудольного (n, n)-графа G в каждой
результате такой замены в вершине v i будет отсутствовать цвет ck . Так доле найдутся m = Θ(log2 n) вершин таких, что его подграф G ,
как после перекраски цвет ck отсутствует в u и v i , то ребро {u, v i } можно образованный этими вершинами и инцидентными им ребрами, будет
перекрасить в цвет ck . Если i = 1, то все ребра графа G покрашены. В либо пустым, либо графом Km,m .
противном случае последовательно для каждого j = i−1, . . . , 2 ребро {u, v j } 5.13. Цикл, проходящий через каждую вершину графа ровно один раз, на-
перекрасим в цвет cj . После перекраски цвет c1 будет отсутствовать в u и зывается гамильтоновым. Показать, что если в неориентированном
в v 1 . Поэтому ребро {u, v 1 } можно покрасить в цвет c1 . n-вершинном графе G, не имеющем петель и кратных ребер, сумма
2. Вершина u не лежит в одной компоненте связности с v q и лежит в степеней любых двух несмежных вершин не меньше n, то граф G
одной компоненте связности с v i . Тогда в компоненте, содержащей верши- имеет гамильтонов цикл.
ну v q , поменяем местами цвета ck и ci . После такой замены в вершине v q 5.14. Снегоуборочная машина должна проехать по всем улицам квадрат-
будет отсутствовать цвет ck , в v i — по-прежнему ci , а ребро {u, v i+1 } оста- ного района размером m × n км и вернуться в гараж. Расстояние
нется окрашенным цветом ci . Следовательно, настоящий случай переходит между любыми соседними перекрестками 100м. Какой наименьший
в рассмотренный выше случай 1). путь она проедет?
74 Лекция 5. Графы

5.15. При каких n можно обойти ходом коня по одному разу все клетки
шахматной доски размером n × n и вернуться обратно?
5.16. В городе для любых двух из любых трех перекрестков найдется со-
единяющий их путь, не проходящий через третий перекресток. До-
казать, что любые два перекрестка можно соединить не пересекаю-
щимися путями. Лекция 6
5.17. Двадцать городов соединены 172 авиалиниями. Доказать, что из лю-
бого города можно по воздуху добраться в любой другой.
Булевы функции

6.1 Булев куб


Константы 0 и 1 называются булевыми константами. Упорядоченные набо-
ры из нулей и единиц будем называть двоичными или булевыми наборами.
Символы 0 и 1, входящие в двоичный набор, называются разрядами набора.
Число разрядов набора называется его длиной. Разряды каждого набора
длины n нумеруются целыми числами от 1 до n слева направо: крайний
левый разряд получает номер 1, крайний правый — номер n. Множество
всех булевых наборов длины n называется булевым кубом размерности n
и обозначается символом Bn . Часто булевы наборы называются также вер-
шинами n-мерного единичного куба.
Номером и весом набора u = (u1 , . . . , un ) из Bn называются величины


n
n
|u| = ui · 2n−i , u = ui .
i=1 i=1

Номера наборов задают на множестве Bn отношение линейного порядка ≤.


Будем говорить, что набор u не больше набора v, если |u| ≤ |v|. Порядок,
определяемый отношением ≤, называется лексикографическим. Множество
всех наборов длины n и веса k образует k-й слой куба Bn , обозначаемый
через Bnk .
Расстоянием
Хемминга между вершинами u и v куба Bn называется
число d(u, v) = ni=1 |ui − vi |, равное количеству несовпадающих разрядов
u и v. Нетрудно показать, что расстояние d является метрикой, т. е. d —
положительная симметрическая функция двух аргументов, принимающая
значение нуль тогда и только тогда, когда два ее аргумента совпадают, и для
которой справедливо неравенство треугольника: d(u, v) ≤ d(u, w) + d(w, v)
для любых трех наборов u, v и w из Bn . Наборы u и v называются сосед-
ними, если d(u, v) = 1. Если d(u, v) = n, то наборы называются противо-
положными. Соседние наборы различаются между собой только в одном
разряде, противоположные наборы — во всех разрядах.
Пары соседних вершин булева куба называются ребрами. Если u, v — со-
седние вершины, различающиеся в i-м разряде, то говорят, что ребро (u, v)

75
76 Лекция 6. Булевы функции 6.2. Булевы функции 77

проходит в i-м направлении и соединяет эти вершины. Пусть i1 , . . . , in−k — Таблица 6.1
попарно различные натуральные числа, не превосходящие n, u1 , . . . , un−k — 0 0 ... σk+1 ... 1 1 xk+1
булевы константы. Множество {v ∈ Bn | vij = uj , j = 1, 2, . . . , n − k} называ- 0 0 ... σk+2 ... 1 1 xk+2
ется k-мерной гранью куба Bn . Легко видеть, что k-мерная грань n-мерного ... ... ... ... ... ... ... ...
булева куба содержит 2k различных вершин. 0 1 ... σn ... 0 1 xn
Кроме рассмотренного выше линейного порядка ≤ на множестве набо- x1 ... xk
ров Bn существует естественный частичный порядок . Говорят, что набор ..
u не больше набора v (u  v), если ui ≤ vi при всех i = 1, 2, . . . , n. Ес- 0 ... 0 .
ли u  v и u = v, то говорят, что что набор u строго меньше набора v ..
0 ... 1 .
(u ≺ v). Наборы u и v называются сравнимыми, если либо u  v, либо ..
v  u. Если ни одно из этих отношений не выполняется, то наборы называ- ··· ··· ··· .
ются несравнимыми. Последовательность вершин u1 , u2 , . . . , uk называется σ1 ··· σk ··· ··· ··· f (σ)
цепью, если d(ui , ui+1 ) = 1 и ui  ui+1 для всех i = 1, 2, . . . , k − 1. Вершина ... ... ...
uk называется наибольшей вершиной цепи u1 , u2 , . . . , uk , а вершина u1 — 1 ... 0
наименьшей вершиной этой цепи. Число вершин в цепи называется ее дли- 1 ... 1
ной. Говорят, что цепь связывает вершины u и v и проходит через вершину
w, если u и v являются, соответственно, первой и последней вершинами це- 2. Рассмотрим множества P2 (1) и P2 (2), состоящие из булевых функций,
пи, а w принадлежит этой цепи. Цепь называется максимальной, если она зависящих от одной и двух переменных. Первое множество состоит
не является частью цепи большей длины. Множество попарно несравнимых  0   0 из че-
1

 1  булевых функций, задаваемых векторами длины два: 0 , 1 , 0 ,
тырех
вершин называется антицепью. Антицепь называется максимальной, если
1 . Первая и четвертая функции называются тождественными констан-
она не является подмножеством другой антицепи, состоящей из большего
тами, нулем и единицей, и обозначаются, соответственно, символами 0 и 1.
количества вершин.
Вторая функция называется тождественной и обозначается так же, как и
ее аргумент. Третья функция называется отрицанием или инверсией.
6.2 Булевы функции Теперь рассмотрим множество P2 (2), состоящее из 16 функций, зави-
сящих от переменных x и y. Среди этих функций две константы 0 и 1 и
1. Функция f (x1 , . . . , xn ), отображающая Bn в B1 , называется n-местной четыре функции x, f¬ (x), y, f¬ (y), каждая из которых зависит только от
булевой функцией. Множество всех булевых функций обозначается через одной переменной. Векторы-столбцы семи из десяти оставшихся функций
P2 , а множество всех булевых функций, зависящих от n переменных, — перечислены в таблице 6.2. Все эти функции имеют собственные названия.
через P2 (n). Каждая булева функция имеет конечную область определе- Первая функция f& называется конъюнкцией. Эта функция часто также на-
ния, что позволяет полностью задать функцию f из P2 (n), перечислив все Таблица 6.2
наборы из Bn и указав значения f на этих наборах. В частности, булева
функция f (x1 , . . . , xn ) может быть задана таблицей, состоящей из 2k строк, xy f& f∨ f⊕ f∼ f| f↓ f→
каждой из которых поставлен в соответствие булев набор длины k, и 2n−k
столбцов, каждому из которых поставлен в соответствие булев набор длины 0 0 0 0 0 1 1 1 1
n − k. Параметр k принимает значения от 0 до n. В такой таблице (Таб. 6.1) 0 1 0 1 1 0 1 0 1
1 0 0 1 1 0 1 0 0
значение функции f на наборе (σ1 , . . . , σk , σk+1 , . . . , σn ) помещается на пе- 1 1 1 1 0 1 0 0 1
ресечении строки, соответствующей набору (σ1 , . . . , σk ), и столбца, соот-
ветствующего набору (σk+1 , . . . , σn ). Если в таблице 6.1 параметр k равен
нулю, то говорят, что функция задается вектором-строкой своих значений, зывается умножением. Вторая функция называется дизъюнкцией. Нетруд-
а если k = n — вектором-столбцом. Так как каждый элемент таблицы, за- но заметить, что f& (x, y) = min(x, y) и f∨ (x, y) = max(x, y). Следующая
дающей булеву функцию, равен либо нулю, либо единице, то легко видеть, функция f⊕ называется суммой по модулю два, иногда ее также называют
что число различных таблиц и, соответственно, число различных булевых исключающим или. Четвертая функция f∼ называется эквивалентностью,
функций, зависящих от n переменных, равно 22 . Число наборов из Bn , на
n
эта функция равна единице, если значения ее аргументов совпадают. Пя-
которых функция f принимает

единичные значения, называется весом f  тая функция называется штрихом Шеффера, шестая — стрелкой Пирса,
этой функции, т. е. f  = u∈Bn f (u). седьмая — импликацией.
78 Лекция 6. Булевы функции 6.3. Формулы 79

3. Переменная xi функции f (x1 , . . . , xn ) называется существенной, если Как и обычную булеву функцию, частичную булеву функцию можно за-
найдутся такие булевы постоянные u1 , . . . , ui−1 , ui+1 , ..., un , что дать таблицей из 2n строк. Однако в таблице значений частичной функции
в последнем столбце булевы величины будут стоять только в |D| строках,
f (u1 , . . . , ui−1 , 0, ui+1 , . . . , un ) = f (u1 , . . . , ui−1 , 1, ui+1 , . . . , un ) соответствующих наборам из области определения частичной функции. В
остальных местах будут стоять символы ∗. Очевидно, что на области D
Несущественная переменная называется также фиктивной.
можно определить 2|D| различных частичных функций.
Определим несколько простейших преобразований булевых функций:
Доопределением частичной булевой функции f (x1 , . . . , xn ), определен-
подстановку констант, отождествление переменных, добавление и удаление
фиктивных переменных. ной на области D ⊆ Bn , называется такая булева функция fˆ : Bn → B, что
Если для функций f (x1 , . . . , xn ) и g(xk+1 , . . . , xn ) при всех возможных fˆ(x) = f (x) для любого x из D.
значениях переменных xk+1 , . . . , xn справедливо равенство Доопределение частичной функции f можно получить заменив в таб-
лице значений f каждый символ ∗ нулем или единицей. Поэтому легко
f (α1 , . . . , αk , xk+1 , . . . , xn ) = g(xk+1 , . . . , xn ), видеть, что доопределение частичной функции не единственно. У каждой
частичной функции, определенной на области D, есть 22 −|D| различных
n

то будем говорить, что функция g получена из функции f подстановкой доопределений.


констант α1 , . . . , αk вместо переменных x1 , . . . , xk . Функцию g будем на- Ниже приведены векторы значений двух частичных функций f1 и f2 и
зывать подфункцией функции f . Очевидным образом данное определение всех их доопределений. Первая функция определена на двух наборах из че-
распространяется на случай подстановки констант α1 , . . . , αk вместо произ- тырех возможных, и поэтому имеет четыре доопределения, вторая функция
вольных переменных xi1 , . . . , xik . определена на трех наборах и у нее два доопределения.
Если для функций f (x1 , . . . , xn ) и g(x, xk+1 , . . . , xn ) при всех возможных
значениях переменных xk+1 , . . . , xn справедливы равенства xy f1 y f∨ f→ 1 f2 f⊕ f|
f (0, . . . , 0, xk+1 , . . . , xn ) = g(0, xk+1 , . . . , xn ), 0 0 ∗ 0 0 1 1 ∗ 0 1
f (1, . . . , 1, xk+1 , . . . , xn ) = g(1, xk+1 , . . . , xn ), 0 1 1 1 1 1 1 1 1 1
1 0 ∗ 0 1 0 1 1 1 1
то будем говорить, что функция g получена из функции f отождествле- 1 1 1 1 1 1 1 0 0 0
нием переменных x1 , . . . , xk . Как и ранее, данное определение очевидным
образом распространяется на случай отождествления произвольных пере-
менных xi1 , . . . , xik .
Рассмотрим булеву функцию f (x1 , . . . , xn ) с фиктивными переменными 6.3 Формулы
x1 , . . . , xk и булеву функцию g(xk+1 , . . . , xn ), получающуюся из f подста-
Выше булевы функции задавались перечислением своих значений на всей
новкой констант α1 , . . . , αk вместо первых k переменных. Так как эти пе-
области определения. При таком задании все функции, зависящие от одно-
ременные у функции f фиктивные, то результат подстановки будет один и
го и того же числа переменных, оказываются одинаково сложными — для
тот же для любых α1 , . . . , αk . Поэтому можно полагать, что
определения функции n переменных требуется таблица из 2n строк. Далее
g(xk+1 , . . . , xn ) = f (0, . . . , 0, xk+1 , . . . , xn ). рассматрим аналитический способ задания булевых функций посредством
формул. Формульное представление булевых функций не только упрощает
Будем говорить, что функция g получена из функции f удалением фик- задание многих практически важных булевых функций, но и значительно
тивных переменных x1 , . . . , xk , а функция f получена из функции g добав- облегчает различные действия с ними.
лением фиктивных переменных x1 , . . . , xk . Как и ранее, данное определе- 1. Пусть Xn = {x1 , x2 , . . . , xn } — множество булевых переменных, B —
ние очевидным образом распространяется на случай удаления (добавления) подмножество P2 . Выражение F, составленное из символов переменных из
произвольных фиктивных переменных xi1 , . . . , xik . Xn и из символов функций из B называется булевой формулой в базисе B
Булевы функции f и g называются равными, если функция f получена над множеством переменных Xn , если F удовлетворяет следующему индук-
из функции g удалением и добавлением фиктивных переменных. тивному определению:
4. Пусть D ⊆ Bn . Функция f (x1 , . . . , xn ), определенная на области D 1. Переменная xi является формулой (i ∈ {1, 2, . . . , n});
и принимающая значения 0 и 1, называется частичной булевой функцией. 2. Если f — k-местная функция из B и F1 , . . . , Fk — формулы, то выра-
Если набор x ∈ Bn и ∈/ D, то будем говорить, что функция f не определена жение
на этом наборе, или, что f принимает на нем неопределенное значение ” ∗ ”. f (F1 , . . . , Fk ) (6.1)
80 Лекция 6. Булевы функции 6.3. Формулы 81

также является формулой. Формулы F1 , . . . , Fk называются подформулами Далее для упрощения записи сложных формул иногда будем опускать
формулы (6.1), а функция f — внешней функцией этой формулы. Любая скобки. Делать это будем в следующих случаях.
подформула каждой формулы Fi также называется подформулой формулы 1. Во всех формулах будем опускать внешние скобки.
F = f (F1 , . . . , Fk ). 2. Полагая, что функция отрицания "сильнее" всех остальных функций,
Следуя индуктивному определению формулы, определим значение про- будем опускать скобки вокруг аргумента отрицания. Таким образом, если
извольной формулы F(x1 , x2 , . . . , xn ) на наборе α1 , α2 , . . . , αn значений ее в формуле отсутствуют скобки, то сначала выполняется отрицание. Напри-
переменных: мер, (x1 → x2 ) = x1 → x2 .
1. Если F = xi , то F(α1 , . . . , αn ) = αi ; 3. Полагая, что функция & "сильнее" всех остальных двуместных функ-
2. Пусть f ∈ B, F = f (F1 , . . . , Fk ) и значения формул F1 , . . . , Fk опреде- ций, будем опускать скобки вокруг конъюнкции. Например, (x1 &x2 ) ⊕ x3 =
лены для всех значений их переменных x1 , . . . , xn . Тогда x1 &x2 ⊕ x3 = x1 x2 ⊕ x3 .
4. Легко видеть, что для дизъюнкции трех переменных справедливо ра-
F(α1 , . . . , αn ) = f (F1 (α1 , . . . , αn ), . . . , Fk (α1 , . . . , αn )). венство (x1 ∨ x2 ) ∨ x3 = x1 ∨ (x2 ∨ x3 ). Аналогичные равенства имеют место
также для конъюнкции и суммы по модулю два. Поэтому будем опускать
Булева формула F над множеством переменных x1 , . . . , xn реализует бу- скобки, если одна из функций &, ∨ или ⊕ используется в формуле несколько
леву функцию f (x1 , . . . , xn ), если раз подряд. Например, (x1 ∨ x2 ) ∨ x3 = x1 ∨ x2 ∨ x3 .
F(α1 , . . . , αn ) = f (α1 , . . . , αn ) 3. Булевы формулы F1 и F2 называются эквивалентными, если они ре-
ализуют одну и ту же булеву функцию. Замена формулы F1 на эквивалент-
при все наборах (α1 , . . . αn ) из Bn . ную ей формулу F2 называется эквивалентным преобразованием формулы
Пусть формула F, реализующая функцию f (x1 , . . . , xn ), составлена из F1 . Заметим, что любое эквивалентное преобразование формул устанавли-
символов переменных x1 , . . . , xn и символов функций f1 , . . . , fm . Тогда го- вает равенство реализуемых этими формулами функций.
ворят, что формула F и функция f являются суперпозициями функций Приведем ряд соотношений, определяющих простейшие эквивалентные
f1 , . . . , fm . Далее формулы и реализуемые ими булевы функции будем обо- преобразования булевых формул в двухместных базисах. Очевидно, что
значать одними и теми же символами в тех случаях, когда это не будет справедливы равенства 0 = 1, 1 = 0, и x = x, последнее из которых назы-
приводить к неоднозначному пониманию. вается правилом двойного отрицания. Справедливость приводимых далее
Сложностью l(F) формулы F в базисе B называется число символов из равенств для формул над множеством из одной переменной x для дизъюнк-
B входящих в F. ции, конъюнкции, суммы, эквивалентности, отрицания и констант легко
Базис B называется полным, если любая функция из P2 может быть следует из таблицы 6.2:
реализована формулой в этом базисе.
2. Если базис B состоит только из двухместных и одноместных функций, x ∨ x = x, x&x = x, x ⊕ x = 0, x ∼ x = 1,
то двухместные формулы F(x, y) будем записывать при помощи символов– x ∨ x = 1, x&x = 0, x ⊕ x = 1, x ∼ x = 0,
(6.2)
связок в виде (x ◦ y), где ◦ — символ двухместной булевой функции, реа- x ∨ 0 = x, x&0 = 0, x ⊕ 0 = x, x ∼ 0 = x,
лизуемой формулой F(x, y). Наиболее часто встречающиеся символы двух- x ∨ 1 = 1, x&1 = x, x ⊕ 1 = x, x ∼ 1 = x.
местных булевых функций использованы в таблице 6.2 в качестве ниж-
них индексов у символов соответствующих функций f . Так для обозначе- Используя таблицу 6.2, нетрудно убедиться в эквивалентности различ-
ния конъюнкции чаще всего используется символ &, т. е. f& (x, y) = (x&y). ных формул над множеством из двух переменных. В частности справедли-
Иногда конъюнкция обозначается также через ∧ и · , или функциональный вы соотношения
символ опускается. Формулы для других двухместных булевых функций,
x&y = x ∨ y, x ∨ y = x&y, (6.3)
перечисленных в таблице 6.2, записываются следующим образом:
называемые законами двойственности или законами де Моргана. Из таб-
f∨ (x, y) = (x ∨ y), f⊕ (x, y) = (x ⊕ y), f∼ (x, y) = (x ∼ y), лицы 6.2 также легко видеть, что
f| (x, y) = (x | y), f↓ (x, y) = (x ↓ y), f→ (x, y) = (x → y).
x ∼ y = x ⊕ y = x ⊕ y ⊕ 1. (6.4)
Для эквивалентности вместо символа ∼ иногда используется символ ≡. Од-
номестную формулу, реализующую функцию отрицания, будем записывать Подставляя в правые и левые части равенств (6.5) вместо переменных
при помощи горизонтальной черты покрывающей, аргумент: F¬ (x) = (x). x, y и z различные булевы постоянные, видим, что конъюнкция связана с
82 Лекция 6. Булевы функции 6.4. Нормальные формы 83

дизъюнкцией и сложением по модулю два законами дистрибутивности: булевых степеней σ1 , . . . , σn переменных x1 , . . . , xn называется элементар-
ной конъюнкцией, ассоциированной с булевым набором σ = (σ1 , . . . , σn ).
(x ∨ y)&z = (x&z) ∨ (y&z), Число переменных, входящих в конъюнкцию kσ (x), называется рангом этой
(x&y) ∨ z = (x ∨ z)&(y ∨ z), (6.5) конъюнкции. Для функции kσ (x) справедливо соотношение
(x ⊕ y)&z = (x&z) ⊕ (y&z). #
1, если a = σ,
Также легко подстановкой констант устанавливается справедливость kσ (a) = (6.7)
0, если a = σ.
следующих равенств:
Отсюда немедленно следует, что ka (x) · kb (x) = 0 при a = b.
x ⊕ y = xy ∨ xy, x ∨ y = xy ⊕ x ⊕ y. (6.6)
Теорема 6.1. Для каждой булевой функции f (x1 , . . . , xn ) при любом m,
Используя (6.2)–(6.6), можно получить новые полезные равенства, поз-
1 ≤ m ≤ n, справедливо представление
воляющие производить эквивалентные преобразования формул и устанав-
ливать равенство реализуемых этими формулами функций. Например, для f (x1 ,..., xm , xm+1 , ..., xn ) =
любых булевых функций f и g справедливо преобразование ,
= xσ1 1 · . . . · xσmm · f (σ1 , ..., σm , xm+1 , ..., xn ). (6.8)
f = f · 1 = f · (g ∨ g) = f g ∨ f g, σ1 ,...,σm

называемое расщеплением. Обратное преобразование, переход от формулы Доказательство. Покажем, что для произвольного булева набора
f g∨f g к формуле f , называется склеиванием. Следующая цепочка равенств (α1 , . . . , αn ) значение функции, реализуемой формулой из правой части
задает преобразование, называемое поглощением: (6.8), равно f (α1 , . . . , αn ). Действительно, из (6.7) легко следует, что
,
f ∨ f g = f · 1 ∨ f g = f · (1 ∨ g) = f · 1 = f. ασ1 1 · . . . · ασmm · f (σ2 , ..., σm , αm+1 , ..., αn ) =
(σ1 ,...,σm )
Наконец приведем еще одно часто используемое преобразование
1 · . . . · αm · f (α1 , ..., αm , αm+1 , ..., αn ) = f (α1 , ..., αn ).
=αα1 αm

f ∨ f g = f g ∨ f g ∨ f g = f g ∨ f g ∨ f g ∨ f g = f ∨ g,
Теорема доказана.
которое, как нетрудно видеть, получается в результате последовательного
Формула (6.8) называется разложением функции f по переменным
применения преобразований расщепления и склеивания.
x1 , . . . , xm . Очевидным образом (6.8) обобщается на случай разложения бу-
левой функции по переменным xi1 , . . . , xik . Важным частным случаем та-
6.4 Нормальные формы кого разложения является разложение по одной переменной. Разложение f
по первой переменной выглядит следующим образом:
Ниже рассматриваются несколько стандартных способов представления бу-
левых функций при помощи реализующих их формул, имеющих простую f (x1 , . . . , xk ) = x1 f (0, x2 , . . . , xk ) ∨ x1 f (1, x2 , . . . , xk ).
структуру. 2. Дизъюнктивные нормальные формы. Совершенной дизъюнк-
1. Разложение функции по переменным. Для любого x ∈ B его тивной нормальной формой (СДНФ) функции f (x1 , . . . , xn ) называется
булевой степенью называется функция1) ее разложение
#
,
x, если σ = 0, f (x1 , . . . , xn ) = xσ1 1 · . . . · xσnn · f (σ1 , ..., σn )
xσ =
x, если σ = 1. (σ1 ,...,σn )

Легко видеть, что xσ = x ⊕ σ ⊕ 1 = xσ ∨ x σ. Для любого x = (x1 , . . . , xn ) и по всем ее переменным. Легко видеть, что СДНФ f есть дизъюнкция всех
любого σ = (σ1 , . . . , σn ) произведение элементарных конъюнкций, ассоциированных с теми наборами σ, на ко-
торых функция f равна единице. Так, например, импликация принимает
kσ (x) = xσ1 1 · . . . · xσnn , единичные значения на наборах (00), (01) и (11), поэтому в соответствии с
1) В теории булевых функций булева степень встречается значительно чаще обычной определением СДНФ имеем:
степени. Поэтому за булевой степенью закрепилось обозначение, используемое вне теории
булевых функций для обычной степени. x → y = x0 y 0 ∨ x0 y 1 ∨ x1 y 1 = x y ∨ xy ∨ xy.
84 Лекция 6. Булевы функции 6.4. Нормальные формы 85

Конъюнкция x&y равна единице, только если x = y = 1, и поэтому сама видим, что для функции f справедливы равенства
является своей совершенной дизъюнктивной нормальной формой. , - 
Совершенные дизъюнктивные нормальные формы устроены очень про- f (x1 , . . . , xn ) = xσ1 1 · . . . · xσnn = xσ1 1 ∨ . . . ∨ xnσ n , (6.9)
сто. В некотором смысле, СДНФ булевой функции это ее вектор значений,
в которых дизъюнкция и конъюнкция берутся по всем тем наборам σ =
записанный на языке формул. С другой стороны, часто СДНФ даже про-
(σ1 , . . . , σn ), для которых f (σ) = 0. Формула, стоящая в правой части ра-
стых функций состоят из очень большого числа элементарных конъюнкций.
венства (6.9), называется совершенной конъюнктивной нормальной формой
Так, например, СДНФ дизъюнкции x1 ∨ · · · ∨ xn содержит 2n − 1 элемен-
(СКНФ) функции f (x1 , . . . , xn ).
тарных конъюнкций. Более экономными (с точки зрения числа символов
Найдем совершенные конъюнктивные нормальные формы стрелки Пир-
переменных, входящих в формулу) являются дизъюнктивные нормальные
са и дизъюнкции переменных x и y. Так как стрелка Пирса принимает ну-
формы. Дизъюнктивной нормальной формой (ДНФ) булевой функции f
левые значения на наборах (01), (10) и (11), то в соответствии с формулой
называется реализующая f формула, являющаяся дизъюнкцией элементар-
(6.9) имеем:
ных конъюнкций. В отличии от СДНФ дизъюнктивная нормальная фор-
ма функции f определяется неоднозначно, т. е. f может иметь несколько x ↓ y = (x0 ∨ y 1 )(x1 ∨ y 0 )(x1 ∨ y 1 ) = (x ∨ y)(x ∨ y)(x ∨ y).
реализующих ее ДНФ. Минимальной дизъюнктивной нормальной формой
функции f называется ДНФ, содержащая минимальное число символов пе- Дизъюнкция x ∨ y равна нулю, только если x = y = 0, и поэтому сама
ременных среди всех ДНФ функции f . Получить ДНФ можно из СДНФ при является своей совершенной конъюнктивной нормальной формой.
помощи эквивалентных преобразований. Конъюнктивной нормальной формой (КНФ) булевой функции f назы-
Найдем минимальную ДНФ импликации. Сделаем это, преобразуя ее вается реализующая f формула, являющаяся конъюнкцией элементарных
СДНФ при помощи приведенных в предыдущем параграфе равенств: дизъюнкций. Как и в случае дизъюнктивных нормальных форм КНФ на-
зывается минимальной, если она содержит минимальное число переменных
x → y = x y ∨ xy ∨ xy = x y ∨ xy ∨ xy ∨ xy = среди всех КНФ функции f .
= x(y ∨ y) ∨ y(x ∨ x) = x ∨ y. Найдем минимальную КНФ стрелки Пирса. Сделаем это, преобразуя ее
СКНФ. Легко видеть, что
Так как импликация существенно зависит от двух переменных, то очевидно,
x ↓ y = (x ∨ y)(x ∨ y)(x ∨ y) = (x y ∨ yx)(x ∨ y) = x y.
что ее любая ДНФ содержит символы обеих переменных. Таким образом,
формула x ∨ y будет минимальной ДНФ импликации. Так как стрелка Пирса существенно зависит от двух переменных, то оче-
3. Конъюнктивные нормальные формы. Для любых булевых на- видно, что ее любая КНФ содержит символы обеих переменных. Таким
боров x = (x1 , . . . , xn ) и σ = (σ1 , . . . , σn ) дизъюнкция образом, формула x y будет минимальной КНФ стрелки Пирса.
4. Алгебраическая нормальная форма. Для любого x ∈ B его ал-
dσ (x) = xσ1 1 ∨ . . . ∨ xσnn , гебраической степенью (или просто степенью) называется функция2)
#
булевых степеней σ1 , . . . , σn переменных x1 , . . . , xn называется элементар- 1, если σ = 0,
ной дизъюнкцией, ассоциированной с булевым набором σ = (σ1 , . . . , σn ). x(σ) =
x, если σ = 1.
Если все σi равны единице, то дизъюнкция dσ (x) называется монотонной.
Для функции dσ (x) справедливо соотношение Для любого x = (x1 , . . . , xn ) и любого σ = (σ1 , . . . , σn ) произведение
# (σ1 )
0, если a и σ — противоположные наборы, pσ (x) = x1 · . . . · xn(σn ) (6.10)
dσ (a) =
1, в остальных случаях. степеней σ1 , . . . , σn переменных x1 , . . . , xn называется булевым одночленом,
ассоциированным с булевым набором σ = (σ1 , . . . , σn ). Вес этого набора
Пусть f (x1 , . . . , xn ) — произвольная булева функция. Представим отри- называется степенью одночлена (6.10) и обозначается deg pσ (x).
цание f в виде совершенной дизъюнктивной нормальной формы: Булевы одночлены от переменных x1 , . . . , xn естественным образом ну-
, меруются номерами ассоциированных булевых наборов — номером одночле-
f (x1 , . . . , xn ) = xσ1 1 · . . . · xσnn · f (σ1 , ..., σn ), на (6.10) является величина |σ|. Далее для обозначения одночлена pσ (x)
σ=(σ1 ,...,σn )
будем также использовать обозначение p|σ| (x) или просто p|σ| , если из кон-
где дизъюнкция берется по всем таким наборам σ, что f (σ) = 0. Взяв текста понятно от каких переменных зависит рассматриваемый одночлен.
отрицания от обоих частей равенства и применив законы двойственности, 2) См. примечание на стр. 82
86 Лекция 6. Булевы функции 6.5. Задачи 87

Теорема 6.2. Каждая булева функция f (x1 , . . . , xn ) единственным об- Преобразуем СДНФ произвольной булевой функции f , заменяя в СДНФ
разом представляется в виде дизъюнкции формулами в базисе {⊕, &}. Из рассмотренного примера и ра-
. (σ )
венства нулю произведения двух различных элементарных конъюнкций,
f (x1 , ..., xn ) = x1 1 · . . . · xn(σn ) · pσ , (6.11) зависящих от одних и тех же переменных, легко получаем формулу
σ=(σ1 ,...,σn )
.
f (x1 , . . . , xn ) = xσ1 1 · . . . · xσnn · f (σ1 , ..., σn ), (6.13)
где pσ ∈ {0, 1}. Формула (6.11) называется алгебраической нормальной фор- (σ1 ,...,σn )
мой функции f или ее многочленом Жегалкина.
которая в некоторых случаях оказывается более удобной, чем СДНФ или
Доказательство. Прежде всего покажем, что каждая булева функция
многочлен Жегалкина.
реализуется формулой в базисе {&, ⊕, 1}. Для одноместных функций это
утверждение очевидно. Так как для любой n-местной функции f справед-
ливо равенство
6.5 Задачи
f (x1 , . . . , xn ) = xn (f (x1 , . . . , xn−1 , 0) ⊕ f (x1 , . . . , xn−1 , 1)) ⊕ f (x1 , . . . , xn−1 , 0),
6.1. Найти в Bn : a) число различных k-мерных граней;
то возможность реализации произвольной булевой функции формулой в b) число различных k-мерных граней, проходящих через фиксиро-
базисе {&, ⊕, 1} легко устанавливается индукцией по числу переменных. ванную вершину;
Пусть функция f реализуется формулой F. Раскрывая скобки и приводя c) число всех граней.
подобные слагаемые, преобразуем F в сумму одночленов, т. е. в формулу 6.2. Сколько вершин в среднем содержит одна грань n-мерного куба?
вида (6.11). Теперь для окончательного доказательства теоремы осталось 6.3. Найти число ребер, проходящих через вершины k-мерной грани n-
показать единственность такой формулы. Для этого найдем число различ- мерного булева куба.
ных многочленов от n переменных. Так как каждый одночлен, зависящий 6.4. Найти число ребер, проходящих через вершины, лежащие в k-м слое
от n переменных (не обязательно существенно), однозначно определяется n-мерного булева куба.
набором степеней переменных — булевым набором длины n, то очевидно,

6.5. Найти: a) u∈Bn u; b) u∈Bn |u|; c) u∈Bn |u|.


что число одночленов равно 2n . Каждый одночлен либо входит, либо не k

входит в многочлен. Следовательно, число различных многочленов, вме- 6.6. Для любых сравнимых наборов a, b ∈ Bn интервалом с границами a
сте с нулевым, равно 22 , т. е. многочленов столько же, сколько и булевых
n
и b называется множество I(a, b) = {γ ∈ Bn | a  γ  }. Показать,
функций, зависящих от n переменных. Так как каждая булева функция ре- ¯
что любой интервал является гранью, а грань — интервалом.
ализуется хотя бы одним многочленом Жегалкина, то для каждой функции 6.7. Найти в Bn число наборов несравнимых с данным набором a.
существует единственный реализующий ее многочлен. Теорема доказана. 6.8. Найти число пар попарно несравнимых вершин в Bn .
Итак, каждая булева функция f единственным образом представляется 6.9. Найти: a) число различных максимальных цепей в Bn ;
в виде многочлена Жегалкина. Степенью функции f , обозначаемой через b) число различных максимальных цепей, проходящих через фикси-
deg f , называется максимальная степень одночленов, входящих в ее много- рованную вершину k-го слоя куба Bn .
член Жегалкина. 6.10. Пусть T — антицепь в Bn , Tk = T ∩ Bnk . Показать, что
Методом неопределенных коэффициентов найдем многочлен Жегалки-

n  
на дизъюнкции двух переменных. Для этого дизъюнкцию x ∨ y представим n
|Tk | ≤ 1.
в виде многочлена k
k=0
x ∨ y = a ⊕ bx ⊕ cy ⊕ dxy (6.12)
с неизвестными коэффициентами a, b, c и d. Подставляя в левую и правую 6.11. Пусть булева функция f (x1 , . . . , xn ) задана вектором значений
части (6.12) нули вместо переменных x и y, получаем, что a = 0. Полагая (f0 , . . . , f2n −1 ). Доказать, что если xi является фиктивной перемен-
далее x = 1, y = 0, находим a ⊕ b = 1. Подстановки x = 0, y = 1 и x = ной, то fj = f2n−i +j для всех целых j, принадлежащих множеству
y = 1, дают, соответственно, a ⊕ c = 1 и a ⊕ b ⊕ c ⊕ d = 1. Таким образом, {k 2n−i+1 , . . . , (2k + 1) 2n−i+1 − 1}, где k = 0, 1, . . . 2i−1 − 1.
для определения четырех неизвестных коэффициентов получили систему из 6.12. Пусть f (x1 , . . . , xn ) существенно зависит ровно от k переменных. По-
четырех уравнений. Решая эту систему, легко находим a = 0, b = c = d = 1. казать, что f  делится на 2n−k .
Следовательно, x ∨ y = x ⊕ y ⊕ xy. 6.13. Найти в P2 (n) число различных симметрических булевых функций.
88 Лекция 6. Булевы функции

6.14. Показать, что любая булева функция от трех переменных может


быть получена из симметрической функции от семи переменных
отождествлением переменных.
6.15. Показать, что любая булева функция может быть получена из сим-
метрической функции отождествлением переменных.
6.16. Показать, что любая симметрическая функция отличная от констан- Лекция 7
ты существенно зависит от всех своих переменных.
6.17. Какое минимальное число неравных подфункций может быть у n-
местной булевой функции, существенно зависящей от всех своих ар- Полные системы булевых
гументов?
6.18. Доказать формулу обобщенного склеивания: xz ∨ yz ∨ xy = xz ∨ yz. функций
6.19. При помощи эквивалентных преобразований упростить формулы:
a) xyz∨xyz∨xyz∨xyz; b) xyz∨xyz∨x∨yz∨(x⊕y); c) xy(x → z) ∼ z.
6.20. Показать, что любая формула в базисе {∨, &, ¬} эквивалентна неко-
торой формуле в том же базисе, в которой отрицания появляются
только над переменными.
7.1 Замкнутые классы булевых функций
6.21. Доказать, что: Пусть R — произвольное множество булевых функций. Замыканием множе-
a) x1 &x2 & . . . &xn = x1 ∨ x2 ∨ · · · ∨ xn ; ства R называется множество всех функций, которые можно реализовать
b) x1 ∨ x2 ∨ · · · ∨ xn = x1 &x2 & . . . &xn . формулами в базисе R. Замыкание множества R будем обозначать через [R].
c) x1 ∨ x2 ∨ · · · ∨ xn = (x1 ⊕ 1)(x2 ⊕ 1) · . . . · (xn ⊕ 1) ⊕ 1. Множество булевых функций R называется (функционально) замкнутым
6.22. Найти число / попарно различных булевых функций, получающихся множеством, если оно совпадает со своим замыканием, т. е. R = [R].
из функции 1≤i<j≤n xi xj подстановкой констант вместо перемен- Рассмотрим пять важнейших замкнутых множеств в P2 . Часто рассмат-
ных x1 , . . . , xn . риваемые ниже замкнутые множества называются также замкнутыми клас-
6.23. На скольких наборах из Bn равна единице функция f : сами.
/1 ∨ x1 x2 ∨ x1 x2 x2 ∨ · · · ∨ x1 . . . xn−1 xn ;
a) f (x1 , . . . , xn ) = x 1. Будем говорить, что функция f (x1 , . . . , xn ) сохраняет нуль, если
b) f (x1 , . . . , xn ) = 1≤i1 <...<ik ≤2n xi1 · . . . · xin .
f (0, . . . , 0) = 0.
6.24. Пусть p(x1 , . . . , xn ) = x1 x2 · ... · xk . Найти p(x).
6.25. На скольких наборах 0n из0 Bn равна единице функция f : Множество, состоящее из всех булевых функций сохраняющих нуль, обо-
a) f (x1 , . . . , xn ) = k=1 1≤i1 <...<ik ≤n xi1 · . . . · xik ; значается через T0 . Легко видеть, что функции 0, x, x&y, x ∨ y и x ⊕ y
0
b) f (x1 , . . . , xn ) = 0 nk=1 x1 · . . . · xk ; принадлежат T0 , а функции 1, x, x ∼ y, x | y, x ↓ y и x → y не принадлежат
c) f (x1 , . . . , xn ) = 1≤i1 <...<ik ≤n xi1 · . . . · xik . T0 .
6.26. Показать, что каждая булева функция трех переменных имеет сим- Так как тождественная функция сохраняет нуль, и для любых сохраня-
метрическую подфункцию двух переменных. ющих нуль функций f0 , f1 , . . . , fk справедливо равенство
6.27. Найти число различных дизъюнктивных нормальных форм над мно- f (0, ..., 0) = f0 (f1 (0, ..., 0), . . . , fk (0, ..., 0)) = f0 (0, ..., 0) = 0,
жеством переменных x1 , . . . , xn .
6.28. Показать, что любая ДНФ функции x1 ⊕ . . . ⊕ xn состоит из: т. е. реализуемая формулой f0 (f1 , . . . , fk ) функция f также сохраняет нуль,
a) 2n−1 элементарных конъюнкций; b) n2n−1 символов перемен- то легко видеть, что множество T0 замкнуто.
ных. Любой булев вектор длины 2n с первой нулевой компонентой будет век-
тором значений функции из T0 . Поэтому, в T0 содержится ровно 22 −1 функ-
n
6.29. Найти совершенные конъюнктивные нормальные формы всех буле-
вых функций двух переменных. ций из P2 (n). Множество T0 ∩ P2 (n) будем обозначать через T0 (n).
6.30. Показать, что любая КНФ функции x1 ⊕ . . . ⊕ xn состоит из: 2. Будем говорить, что функция f (x1 , . . . , xn ) сохраняет единицу, если
a) 2n−1 элементарных дизъюнкций; b) n2n−1 символов перемен-
f (1, . . . , 1) = 1.
ных.
Множество, состоящее из всех булевых функций сохраняющих единицу,
обозначается через T1 .

89
90 Лекция 7. Полные системы булевых функций 7.2. Монотонные булевы функции 91

Легко видеть, что функции 1, x, x&y, x ∨ y, x ∼ y и x → y принадлежат Так как каждая булева функция однозначно определяется коэффици-
T1 , а функции 0, x, x ⊕ y, x | y и x ↓ y не принадлежат T1 . Доказательство ентами своего многочлена Жегалкина, а у каждой линейной функции все
замкнутости множества T1 аналогично доказательству замкнутости множе- коэффициенты при одночленах степени два и выше равны нулю, то легко
ства T0 . Также легко видеть, что в T1 содержится ровно 22 −1 функций из
n
видеть, что в L содержится ровно 2n+1 функций из P2 (n). Далее множество
P2 (n). Множество T1 ∩ P2 (n) будем обозначать через T1 (n). L ∩ P2 (n) будем обозначать через L(n).
3. Будем говорить, что булева функция f (x1 , . . . , xn ) является двой- 5. Функция f (x1 , . . . , xn ) называется монотонной, если
ственной к функции g(x1 , . . . , xn ), если
f (α1 , . . . , αn ) ≤ f (β1 , . . . , βn )
f (x1 , . . . , xn ) = g(x1 , . . . , xn ).
для любых наборов a = (α1 , . . . , αn ) и b = (β1 , . . . , βn ) таких, что a  b.
Функцию двойственную к функции f будем обозначать через f ∗ . Легко ви- Множество, состоящее из всех монотонных булевых функций, обозначается
деть, что (f ∗ )∗ = f для любой булевой функции f . Из законов двойствен- через M . В P2 (2) монотонными являются функции 0, 1, x, y, x&y и x ∨ y.
ности следует, что (x&y)∗ = x ∨ y и (x ∨ y)∗ = x&y. Функция f называется Докажем замкнутость множества монотонных функций. Пусть f0 , . . . , fk
самодвойственной, если f = f ∗ . Множество, состоящее из всех самодвой- — произвольные монотонные функции. Очевидно, что добавление фиктив-
ственных булевых функций, обозначается через S. Самодвойственными яв- ной переменной оставляет монотонную функцию монотонной. Поэтому без
ляются функции x, x, x1 ⊕ x2 ⊕ x3 . Среди булевых функций, существен- ограничения общности будем полагать, что все функции fi зависят от од-
но зависящих ровно от двух переменных, нет ни одной самодвойственной них и тех же переменных x1 , ..., xn . Пусть a, b — такие наборы из B n , что
функции. a  b. Рассмотрим новую функцию f = f0 (f1 , . . . , fk ). Так как fi (a) ≤ fi (b),
Докажем замкнутость множества самодвойственных функций. Пусть то (f1 (a), . . . , fk (a))  (f1 (b, . . . , fk (b)), и поэтому
f0 , f1 , . . . , fk — произвольные самодвойственные функции. Рассмотрим но-
вую функцию f = f0 (f1 , . . . , fk ). Так как добавление фиктивной переменной f (a) = f0 (f1 (a), . . . , fk (a)) ≤ f0 (f1 (b), . . . , fk (b)) = f (b).
оставляет самодвойственную функцию самодвойственной, то без ограниче-
ния общности будем полагать, что все функции fi зависят от одних и тех Следовательно, функция f — монотонная. Таким образом, множество M
же переменных x1 , . . . , xn . Тогда замкнуто.
Обозначим множество монотонных функций n переменных через M (n).
f (x1 , . . . , xn ) = f0 (f1 (x1 , . . . , xn ), . . . , fk (x1 , . . . , xn )) = В отличие от множеств T0 (n), T1 (n), S(n) и L(n), мощности которых лег-
ко были найдены выше, точное число монотонных функций в P2 (n) при
= f0 (f 1 (x1 , . . . , xn ), . . . , f k (x1 , . . . , xn )) =
больших n неизвестно. Лишь сравнительно недавно А. Д. Коршуновым бы-
= f 0 (f1 (x1 , . . . , xn ), . . . , fk (x1 , . . . , xn )) = f (x1 , . . . , xn ). ла найдена асимптотически точная формула для |M (n)|. Эта формула вы-
глядит достаточно громоздко, и поэтому здесь не приводится. Вместо этого
Следовательно, функция f — самодвойственная. Таким образом, множество для |M (n)| ниже устанавливаются более грубые, но в тоже время значи-
S замкнуто. тельно более простые неравенства.
Так как каждая самодвойственная функция на противоположных на-
борах принимает противоположные значения, то для определения любой
самодвойственной функции достаточно задать ее значения только на поло- 7.2 Монотонные булевы функции
вине из 2n наборов. Следовательно, в S содержится ровно 22
n−1
функций
из P2 (n). Далее множество самодвойственных функций, зависящих от n Следующий результат был получен Ж. Анселем в 1966 году.
переменных, будем обозначать через S(n).
4. Функция f (x1 , . . . , xn ) называется линейной, если степень ее много- Теорема 7.1.
n n
члена Жегалкина не превосходит единицу, т. е. 2(n/2) ≤ |M (n)| ≤ 3(n/2) .

f (x1 , . . . , xn ) = α1 x1 ⊕ . . . ⊕ αn xn ⊕ α0 , Доказательство. Нижняя оценка теоремы 7.1 устанавливается триви-


ально. Достаточно рассмотреть множество монотонных булевых функций,
где αi — булевы постоянные. Множество, состоящее из всех линейных буле- каждая из которых удовлетворяет условию
вых функций, обозначается через L. Очевидно, что среди функций из P2 (2) #
n
линейными являются только 0, 1, x, x, y, y, x ⊕ y и x ∼ y. Непосредственно 1, если i=1 xi >  n2 ,
f (x1 , . . . , xn ) =
n
из определения линейной функции следует замкнутость множества L. 0, если i=1 xi <  n2 .
92 Лекция 7. Полные системы булевых функций 7.2. Монотонные булевы функции 93

Так как каждая такая функция однозначно определяется своими значени- Преобразуем цепи C1 и C0 следующим образом: набор v 1 удалим из цепи C1
и добавим к цепи C0 . В результате из двух цепей длины k − 2p + 1 получим
n
ями на наборах веса  n2 , то очевидно, что таких функций ровно 2(n/2) .
Рассмотрим цепь v 1 ≺ v 2 ≺ v 3 . Нетрудно видеть, что существует един- цепь длины k−2p = (k+1)−2p−1 и цепь длины k−2p+2 = (k+1)−2(p−1)−1.
ственная вершина u такая, что v 1 ≺ u ≺ v 3 . Вершину u назовем дополни- Новые цепи изображены в правой части рисунка 7.1. Выполним подобные
тельной для вершин v 1 , v 2 , v 3 . Для доказательства верхней оценки теоремы преобразования над всеми парами одинаковых цепей в покрытиях B1 и B0 .
потребуется следующее вспомогательное утверждение. Очевидно, что новые цепи покрывают Bk+1 и не пересекаются. При этом
 n  цепь длины (k + 1) − 2p − 1 получается либо удалением наибольшего набора
Лемма 7.1. Булев куб Bn можно покрыть n/2 непересекающимися из цепи длины k − 2(p − 1) − 1, либо добавлением нового набора в цепь
цепями Ci так, что:    n  длины k − 2p − 1. Поэтому в преобразованном покрытии число цепей длины
(i) число цепей длины n − 2p + 1, где p = 0, 1, . . . , n/2, равно np − p−1 ; (k + 1) − 2p − 1 равно
(ii) для любых трех вершин v 1 ≺ v 2 ≺ v 3 , образующих цепь и принадле-        
жащих одной и той же цепи Ci , дополнительная вершина принадлежит k k k k
− + − =
цепи Cj меньшей длины. p p−1 p−1 p−2
           
Доказательство. Лемму докажем индукцией по n. При n = 2 утвер- k k k k k+1 k+1
= + − + = − .
ждение леммы очевидно — куб B2 можно покрыть одной цепью из трех p p−1 p−1 p−2 p p−1
вершин (p = 0) и одной цепью из одной вершины (p = 1), при этом свойство
Утверждение (i) доказано.
(ii) очевидно выполняется.
Допустим, что лемма верна для n = k. В кубе Bk+1 рассмотрим два Докажем второе утверждение леммы. Прежде всего заметим, что если
подмножества B0 и B1 , состоящие из всех наборов, у которых (k + 1)-е вершины v 1 ≺ v 2 ≺ v 3 лежат в одном и том же подмножестве Bi , то до
разряды равны, соответственно, нулю и единице. Каждое из множеств Bi описанных выше преобразований они лежали на одной и той же цепи C и,
изоморфно кубу Bk и поэтому в силу предположения индукции может быть в силу предположения индукции, их дополнительная вершина u лежала в
Bi на цепи, длина которой меньше длины C не менее чем на два. Поэтому
покрыто непересекающимисяцепями  что число цепей длины k − 2p + 1,
  kтак, очевидно, что после преобразования цепей вершина u по прежнему будет
где p = 0, 1, . . . , k/2, равно kp − p−1 .
Рассмотрим одинаковые покрытия множеств B1 и B0 , каждое из ко- лежать на цепи меньшей длины. Если же вершины v 1 ≺ v 2 ≺ v 3 лежат в
торых удовлетворяет условиям теоремы в кубе размерности k. Очевидно,
что цепи этих покрытий не пересекаются и полностью покрывают куб Bk+1 . r
Пусть C1 и C0 — одинаковые цепи в рассматриваемых покрытиях множеств r v3 r
r C1 u r
r r B1
r v1 r r v1 r
r C1 r r C1 r
B1
r
r v2 r
r r r
r v0 r r v0 r
C0 v1 r
B0
r C0 r r C0 r
B0
Рис. 7.2
разных подмножествах Bi , то (см. рис. 7.2) v 1 и v 2 принадлежат B0 , а v 3
Рис. 7.1 принадлежит B1 . В этом случае v 2 и v 3 отличаются в последней координате,
B1 и B0 , v 1 и v 0 — наибольшие элементы этих цепей. Очевидно, что v 0  v 1 и поэтому вершина u отличается от v 2 также в последней координате, и,
и в наборах v 1 и v 0 все разряды кроме последнего совпадают. Рассматри- следовательно, лежит на цепи меньшей длины. Лемма доказана.
ваемые объекты представлены в левой части рисунка 7.1. На этом рисунке Теперь можно доказать верхнюю оценку теоремы 7.1. Сделаем это, оце-
штриховыми линиями изображены ребра, идущие в (k + 1)-м направлении. нив число различных способов, которыми можно задать значения n-местной
94 Лекция 7. Полные системы булевых функций 7.3. Критерий полноты 95

монотонной булевой функции f на вершинах из Bn . Сначала зададим зна- Доказательство. Покажем, что произвольная булева функция h мо-
чения функции на всех вершинах, которые принадлежат построенным в жет быть реализована формулой в базисе G. Сделаем это индукцией по
доказательстве леммы 7.1 цепям минимальной длины. Так как в силу лем- сложности формул, реализующих булевы функции в базисе F . В основа-
мы 7.1 длина минимальных цепей не превосходит двух, то на вершинах ние индукции положим формулы нулевой сложности, т. е. переменные. Да-
одной цепи значения монотонной функции можно задать не более чем тре- лее предположим, что любая функция, реализуемая в базисе F формулой
мя разными способами. Далее предположим, что значения f определены сложности L − 1, может быть реализована формулой в базисе G. Пусть h
на всех вершинах, которые принадлежат цепям из k или меньшего числа — произвольная булева функция, для которой существует реализующая ее
вершин. в базисе F формула H сложности L. Тогда H = f (H1 , . . . , Hk ), где f ∈ F
Рассмотрим цепь v 0 ≺ v 1 ≺ . . . ≺ v k+1 из k + 2 вершин и множество и H1 , . . . , Hk формулы в базисе F . Очевидно, что сложность каждой фор-
вершин {u1 , u2 , . . . , uk }, в котором каждая вершина ui является дополни- мулы Hi меньше сложности формулы H. Поэтому по предположению ин-
тельной вершиной для v i−1 , v i , v i+1 , т. е. v i−1 ≺ ui ≺ v i+1 . Из леммы 7.1 и дукции реализуемые формулами H1 , . . . , Hk функции h1 , . . . , hk реализуют-
сделанного предположения следует, что значения функции f на вершинах ся также формулами H1 , . . . , Hk в базисе G. По условию теоремы функция
ui определены. Пусть s — максимальный индекс, для которого f (us ) = 0, f (y1 , . . . , yk ) реализуется формулой F в базисе G. В этой формуле каждую
t — минимальный индекс, для которого f (ut ) = 1. Тогда f (us+1 ) = 1, и, переменную yi заменим формулой Hi . Полученная формула H реализует
следовательно, s + 1 ≥ t. Поэтому функцию h и является формулой в базисе G. Теорема доказана.
Из доказанной теоремы и законов двойственности немедленно следует
f (v t−2 ) ≤ f (v s−1 ) ≤ f (us ) = 0 < 1 = f (ut ) ≤ f (v t+1 ).
полнота систем {&, ¬} и {∨, ¬}. Также нетрудно видеть, что полной будет
Таким образом, f (v t−2 ) = 0 и f (v t+1 ) = 1, и для того чтобы полностью система {x → y, x}. Так как x → y = x ∨ y, то x → y = x ∨ y, т. е. дизъ-
определить значения функции f на вершинах рассматриваемой цепи, до- юнкция двух переменных реализуется формулой в базисе из импликации и
статочно определить значения f (v t−1 ) и f (v t ). Очевидно, что сделать это отрицания. Следовательно, в силу предыдущей теоремы система {x → y, x}
можно тремя способами. является полной.
 n  Следующая теорема, которая была доказана Э. Постом в первой поло-
Так как общее число цепей равно n/2 и значения функции f на вер-
шинах каждой цепи можно задать не более чем тремя разными способами, вине двадцатого века, называется критерием Поста.
n
то число монотонных n-местных булевых функций не превосходит 3(n/2) . Теорема 7.3. Для того чтобы система функций F была полной, необ-
Теорема доказана. ходимо и достаточно, чтобы она не содержалась целиком ни в одном из
В заключение приведем без доказательства формулу для асимптотики пяти замкнутых классов T0 , T1 , S, M и L.
логарифма числа монотонных функций в P2 (n) Доказательство. Необходимость. Пусть система функций F полна
  в P2 . Предположим, что F целиком содержится в замкнутом классе R ∈
n 2n
log2 |M (n)| ∼ 1 n 2 ∼  , {T0 , T1 , L, S, M }. Тогда из свойств операции замыкания, включения F ⊆
2 πn/2 R и равенства [F ] = P2 следует, что P2 = [F ] = R. Поэтому R = P2 .
С другой стороны каждый из классов T0 , T1 , L, S, M отличен от P2 , т. е.
которая была установлена Д. Клейтменом в 1969 г.
R = P2 . Противоречие. Необходимость доказана.
Достаточность. Так как система функций F не содержится целиком
7.3 Критерий полноты системы булевых функций ни в одном из пяти замкнутых классов перечисленных в условии теоремы,
то в этой системе найдутся пять (не обязательно различных) функций fT0 ,
Система булевых функций F = {f1 , f2 , . . . , fi , . . . } называется функциональ- fT1 , fS , fM и fL таких, что
но полной, если любая булева функция может быть реализована формулой в
базисе F . Так как каждая булева функция реализуется своими совершенной fT0 ∈
/ T0 , fT1 ∈
/ T1 , fS ∈
/ S, fM ∈
/ M, fL ∈
/ L.
дизъюнктивной нормальной формой и алгебраической нормальной формой, Если fT0 (1, . . . , 1) = 0, то fT0 (x, . . . , x) = x. Если fT1 (0, . . . , 0) = 1, то
то системы функций {&, ∨, ¬} и {&, ⊕, 1} будут полными. Для установления fT1 (x, . . . , x) = x. Если же fT0 (1, . . . , 1) = 1 и fT1 (0, . . . , 0) = 0, то
полноты других систем можно воспользоваться следующей теоремой.
fT0 (x, . . . , x) = 1, fT1 (x, . . . , x) = 0.
Теорема 7.2. Пусть F и G — системы булевых функций, система F
полная и каждая ее функция реализуется формулой в базисе G. Тогда G Следовательно, после отождествления переменных у функций fT0 и fT1 по-
— полная система. лучаем либо (i) отрицание, либо (ii) две тождественные константы 0 и 1.
96 Лекция 7. Полные системы булевых функций 7.4. Задачи 97

Последовательно рассмотрим эти возможности. Легко видеть, что


(i) Так как fS не является самодвойственной, то найдутся такие проти-
воположные наборы α1 , . . . , αk и α1 , . . . , αk , что ϕ3 (x1 , x2 ) = ψ(x1 ⊕ γ2 , x2 ⊕ γ1 ) ⊕ γ1 γ2 ⊕ γ3 =
= (x1 ⊕ γ2 )(x2 ⊕ γ1 ) ⊕ γ1 (x1 ⊕ γ2 )⊕
fS (α1 , . . . , αk ) = fS (α1 , . . . , αk ).
⊕ γ2 (x2 ⊕ γ1 ) ⊕ γ3 ⊕ γ1 γ2 ⊕ γ3 = x1 x2
Рассмотрим функцию ϕ1 (x) = fS (xα1 , . . . , xαk ). Легко видеть, что
Таким образом, ϕ3 (x1 , x2 ) = x1 x2 . Теперь утверждение теоремы следует из
ϕ1 (0) = fS (0α1 , . . . , 0αk ) = fS (α1 , . . . , αk ) = теоремы 7.2 и полноты системы функций {&, ¬}.
= fS (α1 , . . . , αk ) = fS (1α1 , . . . , 1αk ) = ϕ1 (1), Используя теорему 7.3, исследуем полноту системы {x → y, xy}. Так как
т. е. функция ϕ1 является константой. Вторая константа получается из ϕ1 1 → 1 = 1 и 1·1 = 1, то очевидно, что импликация и конъюнкция сохраняют
и отрицания. единицу. Следовательно, система {x → y, xy} содержится в классе T1 и в
(ii) Так как fM не является монотонной, то найдутся такие соседние силу теоремы 7.3 не является полной.
наборы a = (α1 , . . . , αk ) и b = (β1 , . . . , βk ), что a ≺ b и Пусть F — замкнутый класс в P2 . Система булевых функций {fi } назы-
вается базисом в F , если ее замыкание совпадает с F , а любая ее собственая
fM (α1 , . . . , αk ) > fM (α1 , . . . , αk ). подсистема не является полной в F . Нетрудно видеть, что система функ-
ций {x → y, x} является базисом в P2 . Эта система полна в P2 , так как ее
При каждом 1 ≤ i ≤ k определим функцию первая функция нелинейная и несамодвойственная, а вторая не является
⎧ монотонной и не сохраняет константы. Другая полная в P2 система функ-

⎨0, если αi = βi = 0;
ций {&, ∨, ¬} базисом не является, так как две ее собственные подсистемы
gi (x) = 1, если αi = βi = 1; {&, ¬} и {∨, ¬} полны в P2 .


x, если αi = 0, βi = 1. Булева функция f называется шефферовой, если [f ] = P2 . Очевидно, что
каждая шефферова функция является базисом в P2 .
Рассмотрим функцию ϕ2 (x) = fM (g1 (x), . . . , gk (x)). Легко видеть, что Найдем все шефферовы функции в P2 (2). Допустим, что f — шефферо-
ϕ2 (0) = fM (α1 , . . . , αk ) > fM (β1 , . . . , βk ) = ϕ2 (1), ва, и f = (f1 , f2 , f3 , f4 ) — вектор ее значений. Так как f ∈/ T0 и f ∈
/ T1 , то
f1 = 1 и f4 = 0. Отсюда немедленно следует, что f ∈ / M . Теперь посмотрим,
т. е. ϕ2 — отрицание. какие значения могут принимать вторая и третья компоненты вектора f .
Таким образом, из функций fT0 , fT1 , fS и fM получены константы и Если f2 = f3 , то либо f = (1100), либо f = (1010). В обоих случаях f будет
отрицание. линейной самодвойственной функцией. Если f2 = f3 , то либо f = (1000),
Теперь, рассмотрим нелинейную функцию fL . В многочлене Жегалкина либо f = (1110). Непосредственной проверкой легко убедиться, что каждый
этой функции найдется слагаемое, содержащее не менее двух переменных. из этих векторов задает нелинейную и несамодвойственную функцию. Та-
Без ограничения общности будем полагать, что это x1 и x2 . Группируя ким образом, в P2 (2) содержится ровно две шефферовы функции: стрелка
слагаемые, содержащие x1 , x2 и x1 x2 , преобразуем многочлен Жегалкина Пирса и штрих Шеффера.
функции fL к виду

fl (x1 , . . . , xk ) =x1 x2 f0 (x3 , . . . , xk )⊕ 7.4 Задачи


⊕ x1 f1 (x3 , . . . , xk ) ⊕ x2 f2 (x2 , . . . , xk ) ⊕ f3 (x2 , . . . , xk ),
7.1. Найти число монотонных функций в P2 (3).
где функция f0 отлична от тождественного нуля. Далее воспользуемся ра- 7.2. Показать, что функция двойственная к монотонной также будет мо-
венством x ⊕ 1 = x. Пусть набор (α3 , . . . , αk ) таков, что f0 (α3 , . . . , αk ) = 1. нотонной.
Введем функцию 7.3. Найти число монотонных булевых функций, зависящих от n пере-
менных и принимающих единичное значение ровно на 7 наборах.
ψ(x1 , x2 ) = fM (x1 , x2 , α3 , . . . , αk ) = x1 x2 ⊕ γ1 x1 ⊕ γ2 x2 ⊕ γ3 , 7.4. Пусть функция f (x1 , . . . , xn ) принадлежит множеству [x → y] и су-
где γi = fi (α3 , . . . , αk ) — константы. Положим щественно зависит не менее чем от двух переменных. Доказать, что
она принимает единичные значения более чем на 2n−1 наборах.
ϕ3 (x1 , x2 ) = ψ(x1 ⊕ γ2 , x2 ⊕ γ1 ) ⊕ γ1 γ2 ⊕ γ3 . 7.5. Будет ли множество симметрических булевых функций замкнутым?
98 Лекция 7. Полные системы булевых функций

7.6. Найти
a) |L(n) ∪ T0 (n) ∪ T1 (n)|; b) |L(n) ∩ S(n) ∩ T1 (n)|;
c) |L(n) ∩ M (n) ∪ T0 (n)|; d) |(S(n) ∪ T0 (n)) \ L(n)|;
e) |(S(n) ∪ T0 (n) ∪ T1 (n)) ∩ L(n)|; f) |S(n) \ (T0 (n) \ L(n))|;
g) |S(n) ∪ L(n) ∪ T0 (n) ∪ T1 (n)|; h) |(L(n) \ S(n)) \ M (n)|.
Лекция 8
7.7. Выяснить, является ли множество A базисом в B:
a) A = {xy ∼ z}, B = T1 ;
b) A = {xy ∨ z}, B = T0 ;
c) A = {x ∼ y, x ⊕ y}, B = L; Сложность булевых функций
d) A = {x1 ⊕ x2 ⊕ · · · ⊕ xk , 1}, k — константа, B = L.
7.8. Выяснить, при каких n функция f является шефферовой:
a) f (x1 , . . . , xn ) = 1 ⊕ x1 x2 ⊕ . . . ⊕ xi xi+1 ⊕ . . . ⊕ xn−1 xn ⊕ xn x1 ;
b) f (x1 , . . . , xn ) = 1 ⊕ 0x1 x2 ⊕ . . . ⊕ xi xi+1 ⊕ . . . ⊕ xn−1 xn ; Любое вычисление можно представить в виде последовательности шагов,
c) f (x1 , . . . , xn ) = 1 ⊕ 1≤i<j≤n xi xj ; каждый из которых состоит в выполнении некоторого простого действия
d) f (x1 , . . . , xn ) = 1 ⊕ (x1 |x2 ) ⊕ ... ⊕ (xi |xi+1 ) ⊕ ... ⊕ (xn−1 |xn ) ⊕ (xn |x1 ); над исходными данными или над величинами, полученными на предыду-
e) f (x1 , . . . , xn ) = 1 ⊕ (x1 |x2 ) ⊕ . . . ⊕ (xi |xi+1 ) ⊕ . . . ⊕ (xn−1 |xn ); щих шагах. Список команд, описывающих эти шаги и определяющих по-
f) f (x1 , . . . , xn ) = 1 ⊕ (x1 → x2 ) ⊕ . . .⊕ (xi → xi+1 ) ⊕ . . .⊕ (xn−1 → xn ). рядок их выполнения, обычно называется программой или схемой вычис-
7.9. Указать какой-либо базис множества самодвойственных функций. ления. Как правило, программы состоят из команд двух видов: вычисли-
Существует ли такая функция f , что [f ] = S? тельных и управляющих. Вычислительные команды производят некоторые
7.10. Доказать, что если f монотонна и существенно зависит не менее чем безусловные действия, например, складывают числа. Управляющие коман-
от двух переменных, то система {0, f } полна в P2 . ды определяют порядок выполнения вычислительных команд. К таким ко-
7.11. Набор a из B n назовем нижней единицей монотонной функции f , ес- мандам, в частности, относится команда условного перехода. Число шагов,
ли f (a) = 1 и f (b)=0 для каждого b ≺ a. Пусть монотонная функция выполняемых в процессе вычисления, называется его сложностью. Если
f имеет ровно две нижние единицы. Доказать, что f — шефферова. один и тот же объект, например булева функция, может быть вычислен
7.12. Найти число шефферовых функций в: различными способами, то его сложностью называется сложность самого
a) P2 (3); b) P2 (4); c) P2 (5); d) P2 (n). простого вычисления.
Вычисления, программы которых состоят только из вычислительных
команд называются неветвящимися. В любом неветвящемся вычислении
команды выполняются последовательно одна за другой в том порядке, в ко-
тором они расположены в программе. Основными математическими моде-
лями неветвящихся вычислений являются неветвящиеся программы и схе-
мы из функциональных элементов. Неветвящиеся программы моделируют
работу универсальных вычислительных устройств, способных решать раз-
личные задачи в зависимости от программ, под управлением которых эти
устройства работают в данный момент времени. Схемы из функциональ-
ных элементов являются моделями электронных схем, программы работы
которых заложены в их конструкции и никогда не меняются. Несмотря
на большие различия моделируемых объектов неветвящиеся программы и
схемы из функциональных элементов очень похожи друг на друга и многие
результаты, полученные для неветвящихся программ, легко переносятся на
схемы из функциональных элементов и наоборот.
Далее рассматривается сложность вычисления значений булевых функ-
ций при помощи неветвящихся программ и схем из функциональных эле-
ментов.

99
100 Лекция 8. Сложность булевых функций 8.1. Программы и схемы 101

8.1 Программы и схемы в которой z1 = y4 и z2 = y5 , и которая, как нетрудно проверить, вычисляет


функции x1 x2 ⊕ x1 x3 ⊕ x2 x3 и x1 ⊕ x2 ⊕ x3 . Построенная по программе
Неветвящейся программой P над базисом B и множеством независимых P схема изображена на рис. 8.1, где предполагается, что первый предок
переменных {x1 , . . . , xn } называется последовательность равенств каждой вершины находится левее второго предка, и поэтому отсутствует
нумерация ребер, входящих в одну вершину.
yi = fi (a, b), i = 1, . . . , r, (8.1) Нетрудно видеть, что схема программы полностью описывает все вы-
числения, выполняемые программой. Тем не менее, говорить о полном со-
где fi ∈ B, a, b ∈ {x1 , . . . , xn , yi , . . . , yi−1 }. Величины yi называются внут-
ответствии между программами и их схемами нельзя, так как переменные
ренними переменными программы P , индекс i — номером переменной yi .
в неветвящейся программе упорядочены линейно, а на множестве соответ-
Переменные a и b назовем, соответственно, первым и вторым предками пе-
ствующих им вершин схемы определен только частичный порядок.
ременной yi , а переменную yi — потомком переменных a и b. Число r назовем
Описание вычислений при помощи схем представляет независимый (от
сложностью программы P . Индукцией по номеру внутренней переменной
соответствующих им неветвящихся программ) интерес по ряду причин. Од-
определим ее значение на наборе значений σ1 , . . . , σn независимых перемен-
на из главных заключается в тех возможностях, которые развитый язык
ных x1 , . . . , xn . Для этого положим
теории графов представляет для анализа вычислений. Поэтому дадим неза-
yi (σ1 , . . . , σn ) = fi (a(σ1 , . . . , σn ), b(σ1 , . . . , σn )). висимое определение схемы.
Схемой из функциональных элементов (или булевой схемой) с n входа-
Так как a, b ∈ {x1 , . . . , xn , yi , . . . , yi−1 }, то значение переменной yi опреде- ми и m выходами называется ориентированный граф S, который не содер-
лено корректно. Будем говорить, что переменная yi вычисляет функцию h, жит контуров и обладает следующими свойствами:
если равенство – S содержит n вершин с входной степенью равной нулю. Такие вершины
yi (σ1 , . . . , σn ) = h(σ1 , . . . , σn ) называются входами схемы.
– Входные степени остальных вершин не превосходят двух. Эти вершины
справедливо для любого набора σ1 , . . . , σn . В программе P выделим упо- называются элементами схемы. Ребра, входящие в один элемент, нумеруют-
рядоченный набор z1 , . . . , zm , состоящий из внутренних и независимых пе- ся числами от 1 до 2. Каждому элементу схемы с входной степенью равной
ременных. Будем говорить, что программа P вычисляет систему функций j (j = 0, 1, 2) приписана j-местная функция из B. Множество B называется
h1 , . . . , hm , если zi ≡ hi для каждого i = 1, . . . , m. Переменные z1 , . . . , zm базисом схемы.
будем называть выходами программы. – m вершин помечены целыми числами от 1 до m. Эти вершины назы-
По неветвящейся программе P можно построить ориентированный граф ваются выходами схемы.
G, описывающий работу этой программы. Для этого каждой переменной
Если вершины w и u схемы S связаны ребром, ориентированным от u к
программы поставим в соответствие собственную вершину графа. Затем
w, то будем говорить, что вершина w подключена к вершине u. Вершину u
проведем ребра, выходящие из вершин, соответствующих переменным–
будем называть предком вершины w, а вершину w — потомком вершины u.
предкам, и входящие в вершины, соот-
xr 1 xr 2 xr 3 Если вершина w имеет двух предков и номер ребра (uw) равен единице, то
Z  ветствующие переменным–потомкам.

вершину u будем называть первым предком вершины w, если номер (uw)
?Z 
=Z

~ ?
Ребру, соединяющему i-го (i = 1, 2)
равен двойке — вторым предком этой вершины.
y2 , & r Zr  ?

предка с его потомком, припишем чис-
y1 , ⊕ Z
Если вершине u схемы S приписана функция h, то будем говорить, что
ло i. Каждой вершине, соответствую-
?
Z вершина u реализует функцию h. Для каждой вершины w этой схемы опре-
~
Z щей независимой переменной xi , при-
? r
y , & Zr y5 , ⊕, 2 делим функцию S(w), вычисляемую в вершине w. Сделаем это индуктивно
 3 пишем символ xi , а вершине, соответ-
в соответствии со следующими правилами:

= ствующей внутренней переменной yj ,
 припишем символ fj . Наконец каж- – если w — вход схемы, которому приписана независимая переменная xi ,
ry4 , ⊕, 1 то S(w) = xi ;
дой вершине, соответствующей какой-
либо переменной zk из выделенного – если вершине w приписана нульместная функция f , то S(w) = f ;
Рис. 8.1 набора {zi }, припишем число k. По- – если вершине w приписана одноместная функция f и в вершине u —
лучившийся граф называется схемой программы P. В качестве примера предке вершины w, вычисляется функция S(u), то S(w) = f (S(u));
приведем программу – если вершине w приписана двухместная функция f и в вершине u —
первом предке вершины w, вычисляется функция S(u), а в вершине v — вто-
P : y1 = x1 ⊕ x2 , y2 = x1 &x2 , y3 = y1 &x3 , y4 = y2 &y3 , y5 = y1 ⊕ x3 , ром предке вершины w, вычисляется функция S(v), то S(w) = f (S(u), S(v)).
102 Лекция 8. Сложность булевых функций 8.2. Схемы 103

Будем говорить, что схема S вычисляет систему булевых функций в которой внутренние переменные следуют друг за другом в том же поряд-
ке, что и вершины схемы S1 , но и программам
hi (x1 , . . . , xn ), i = 1, . . . , m,
P2 : y1 = x2 , y2 = x1 , y3 = y1 &x1 , y4 = y2 &x2 , y5 = y3 ∨ y4 ,
если входы схемы S реализуют переменные x1 , . . . , xn , а в выходах ui (i = P3 : y1 = x2 , y2 = y1 &x1 , y3 = x1 , y4 = y2 &x2 , y5 = y3 ∨ y4 ,
1, . . . , m) вычисляются функции hi , т. е. S(ui ) = hi . которые отличаются от P1 только порядком выполнения операций.
При изображении схем будем придерживаться следующих правил. 1) Пре- Далее, учитывая существующее соответствие между схемами и програм-
док всегда располагается выше потомка, т. е. все ребра ориентированы свер- мами, будем рассматривать в основном схемы. При этом будем полагать,
ху вниз. Поэтому стрелки, указывающие ориентацию ребер, отсутствуют. что элементы каждой схемы линейно упорядочены, считая, что порядок
2) Элементы схем изображены треугольниками, в середине каждого тре- элементов совпадает с порядком внутренних переменных одной из соответ-
угольника помещен символ функции, реализуемой элементом. Если вход- ствующих данной схеме программ.
ная степень элемента, изображенного треугольником, равна двум, то ребра,
связывающие элемент с его предками, присоединяются к разным точкам од-
ной стороны треугольника — точка присоединения ребра от первого предка 8.2 Схемы
располагается левее точки присоединения ребра от второго предка. При
таком изображении элементов отпадает необходимость в расстановке но- Важнейшими характеристиками любой схемы являются ее сложность и глу-
меров ребер — нумерация однозначно восстанавливается по изображению. бина. Сложностью L(S) схемы S называется число элементов этой схемы.
3) Каждая вершина, являющаяся выходом схемы, отмечается полуребром, Для определения глубины схемы S рассмотрим различные ориентирован-
выходящим из этой вершины, и не входящим ни в какую другую вершину. ные цепи, связывающие ее входы и выходы. Длиной цепи называется число
В соответствии с этими правилами на рисунке 8.2 изображены схемы элементов, через которые проходит эта цепь. Цепь, проходящую через мак-
симальное число элементов, назовем максимальной цепью схемы S, а ее
S1 и S2 , каждая из которых вычисляет функцию x1 ⊕ x2 . Вершины обоих
длину (число элементов) назовем глубиной D(S) схемы S.
xr 1 xr 2 xr 1 xr2 Если среди всех схем, имеющих базис B и вычисляющих систему f , схе-
S(v1 ) = x S(v1 ) = x1
ма S содержит наименьшее число элементов, то S называется минималь-
S(v2 ) = y S(v2 ) = x2 ной (по сложности) схемой системы f . Число элементов в минимальной (по
¬ ¬ S(v3 ) = x1 ∨ & S(v3 ) = x1 ∨ x2 сложности) схеме системы f называется сложностью системы функций f
S(v4 ) = x2 S(v4 ) = x1 &x2 и обозначается через LB (f ).
¬ Аналогичным образом для произвольной системы булевых функций
& & S(v5 ) = x1 x2 S(v5 ) = x1 &x2 =
определяются ее минимальная (по глубине) схема и ее глубина. Если среди
S(v6 ) = x1 x2 = x1 ∨ x2 всех схем, имеющих базис B и вычисляющих систему f , схема S имеет наи-
∨ S(v7 ) = x1 x2 ∨ x1 x2 & S(v6 ) = (x1 ∨ x2 )(x1 ∨ x2 ) меньшую глубину D, то S называется минимальной. Глубина минимальной
(по глубине) схемы системы f называется глубиной системы функций f и
обозначается символом DB (f ).
Рис. 8.2
Снова рассмотрим изображенные рисунке 8.2 схемы, вычисляющие функ-
цию x1 ⊕x2 в базисе {&, ∨, ¬}. Сложность левой схемы S1 равна пяти, слож-
схем перенумерованы слева направо–сверху вниз целыми числами, начи-
ность правой схемы S2 — четырем. Глубина обоих схем равна трем. В левой
ная с единицы. Функции, вычисляемые в вершинах каждой из этих схем,
схеме есть две цепи длины три. Одна из них начинается во входе x1 и про-
перечислены в столбце, стоящем рядом со схемой.
ходит через левый элемент отрицания, левый элемент дизъюнкции и левый
Выше было отмечено, что единственное отличие неветвящихся программ элемент конъюнкции1) . В правой схеме цепь длины три начинается во вхо-
от схем заключается в том, что внутренние переменные программ линейно де x2 и проходит через два конъюнктора и элемент отрицания. Очевидно,
упорядочены, а на множестве соответствующих им элементов схем опреде- что схема S1 не является минимальной по сложности схемой для функции
лен лишь частичный порядок. Поэтому разным программам может соот- x1 ⊕ x2 среди схем с базисом {&, ∨, ¬} так как схема S2 имеет такой же ба-
ветствовать одна схема. Так, например, изображенная в левой части рисун- зис, вычисляет такую же функцию что и S1 и при этом состоит из меньшего
ка 8.2 схема S1 соответствует не только программе числа элементов.
1) Часто элемент дизъюнкции называется дизъюнктором, элемент конъюнкции — конъ-
P1 : y1 = x1 , y2 = x2 , y3 = y1 &x2 , y4 = y2 &x1 , y5 = y3 ∨ y4 , юнктором, элемент отрицания — инвертором.
104 Лекция 8. Сложность булевых функций 8.2. Схемы 105

Любой подграф G схемы S являющийся схемой2) , будем называть подсхе- По предположению индукции каждая из подсхем A и B состоит не более
мой схемы S. При построении больших схем, вычисляющих сложные функ- чем из 3 · 2n−1 − 4 элементов, а их глубина не превосходит 2(n − 1). Поэтому,
ции, часто бывает удобно сначала построить схемы, вычисляющие некото-
рые вспомогательные функции, а потом, превратив их в подсхемы, собрать L(S) ≤ (3 · 2n−1 − 4) + (3 · 2n−1 − 4) + 4 = 3 · 2n − 4,
из них требуемую схему S. Подсхемы с более чем одним выходом будем D(S) ≤ 2(n − 1) + 2 = 2n.
изображать прямоугольниками, а подсхемы с одним выходом — треуголь-
никами большого размера. Внутрь фигуры, изображающей подсхему, будем Неравенства (8.2) доказаны.
помещать либо символ функции, вычисляемой подсхемой, либо символ–имя Так как система функций {&, ∨, ¬} полна в P2 , то из (8.2) следует суще-
подсхемы. ствование таких констант c1 и c2 , что
Используя понятие подсхемы, покажем, что любая булева функция n
переменных может быть вычислена такой схемой S в базисе {∨, &, ¬}, что LB (f ) ≤ c1 · 2n , DB (f ) ≤ c2 n (8.3)

L(S) ≤ 3 · 2 − 4,
n
D(S) ≤ 2n. (8.2) для каждой n-местной функции f и любого базиса B. Поэтому существует
простой алгоритм, позволяющий для произвольной булевой функции нахо-
Сделаем это индукцией по числу переменных n. В основание индукции по- дить ее сложность, глубину и соответствующие минимальные схемы. Доста-
ложим схемы, вычисляющие функции одной переменной. Самыми сложны- точно перебрать все схемы, сложность и глубина которых не превосходят
ми и глубокими будут вычисляющие константы 0 и 1 схемы S0 и S1 . Так правых частей неравенств (8.3), и выбрать среди них те, которые вычисля-
как 0 = x&x и 1 = x ∨ x, то легко видеть, что L(Si ) = 2 и D(Si ) = 2, ют f и имеют минимальные значения сложности и глубины. Однако число
т. е. неравенства (8.2) справедливы при n = 1. Теперь допустим, что эти различных схем с увеличением числа входов растет так стремительно, что
неравенства справедливы при всех n, не превосходящих некоторое целое даже использование вычислительной техники не позволяет надеяться на
k ≥ 1. Покажем, что тогда неравенства (8.2) имеют место и при n = k + 1. успешное применение какого-либо переборного алгоритма уже при n = 8.
Для этого построим схему, вычисляющую произвольную булеву функцию Поэтому при изучении сложности булевых функций используются иные ме-
f (x1 , . . . , xn ), и оценим ее сложность и глубину. Функцию f разложим по тоды.
последней переменной: Установим простейшие нижние оценки сложности и глубины булевых
функций, которые справедливы при их вычислении схемами в любом бази-
f (x1 , . . . , xn ) = xn f (x1 , ..., xn−1 , 0) ∨ xn f (x1 , ..., xn−1 , 1). се.

В соответствием с этим разложением построена изображенная на ри- Теорема 8.1. Если булева функция f существенно зависит от n пере-
сунке 8.3 схема S. Эта схема вычисляет функцию f и состоит из двух под- менных, то L(f ) ≥ n − 1.
схем A и B, одного элемента отрицания, двух конъюнкторов и одного дизъ-
юнктора. Подсхема A вычисляет функцию Доказательство. Пусть S — минимальная схема функции f . Число эле-
xr1 p p p p p p p p xn−1 f1 = f (x1 , ..., xn−1 , 1), подсхема B — функ- ментов схемы S обозначим через L, а число ребер — через N . Величину N
r rxn
цию f0 = f (x1 , ..., xn−1 , 0), элемент отрица- оценим двумя способами. С одной стороны, каждое ребро входит в какой-
¬ ния вычисляет xn . Далее два конъюнктора нибудь элемент. Поэтому N ≤ 2L. С другой стороны, из каждой вершины
A B схемы S, кроме последней, выходит хотя бы одно ребро. Так как в S содер-
умножают функции f0 и f1 , соответственно
на xn и xn . Затем дизъюнктор вычисляет жится L + n вершин, то N ≥ L + n − 1. Следовательно, 2L ≥ L + n − 1 или
дизъюнкцию двух произведений. Легко ви- L ≥ n − 1. Теорема доказана.
& & деть, что сложность и глубина схемы S вы- Для доказательства нижней оценки глубины потребуется следующее
ражаются через сложности и глубины под- вспомогательное утверждение.
схем A и B следующим образом:
∨ Лемма 8.1. Если схема S имеет один выход и любой ее элемент связан
L(S) = L(A) + L(B) + 4, ориентированной цепью с этим выходом, то D(S) ≥ log2 (L(S) + 1).
Рис. 8.3 D(S) = max(D(A), D(B)) + 2. Доказательство. Лемму докажем индукцией по числу вершин схемы.
2) Возможно В основание индукции положим очевидный случай схем, состоящих из од-
в G придется добавить новые входы, если предки каких-либо элементов из
G отсутствуют в G, и определить новые выходы, которыми станут те элементы, потомки ного элемента. Допустим, что для любой схемы с одним выходом и не более
которых отсутствуют в G. чем L − 1 элементами теорема верна. Пусть S — схема из L элементов, v —
106 Лекция 8. Сложность булевых функций 8.3. Свойства минимальных схем 107

последний элемент этой схемы, а u1 и u2 — предки v3) . Функции, вычисля- Лемма 8.3. Пусть S — минимальная схема в базисе B0 , у которой ни
емые в вершинах u1 и u2 , обозначим через ϕ1 и ϕ2 . Пусть Si — подсхема в одном из выходов не вычисляется тождественная константа. Тогда в
схемы S, которая вычисляет функцию ϕi . Нетрудно видеть, что S1 и S2 яв- S нет вершины, в которой реализуется тождественная константа.
ляются схемами, каждая из которых содержит не более L − 1 элементов, и
Доказательство. Пусть S — удовлетворяющая условиям леммы схе-
по крайней мере одна из этих частей, например S1 , состоит не менее чем из
1 ма. Допустим, что в схеме S есть вершины, в которых вычисляется кон-
2 (L − 1) элементов. По предположению индукции станты. Пусть s — самая нижняя та-
sr
1  кая вершина, и пусть в этой вершине
D(S1 ) ≥ log2 (L(S1 ) + 1) ≥ log2 (L − 1) + 1 = log2 (L + 1) − 1.
2 ur1 urp ur1 urp вычисляется постоянная α. Рассмот-
рим фрагмент схемы содержащий s,
Теперь осталось заметить, что глубина схемы S на единицу больше глубины элементы s1 , . . . , sp , — потомки верши-
схемы S1 . Лемма доказана.  
p p p p p p p ны s, и вершины u1 , . . . , up , — предки
v1 v v1 v
pppppp p
Теперь из теоремы 8.1 и леммы 8.1 легко следует справедливость следу- элементов s1 , ..., sp . Функции, реализу-
ющей теоремы. емые элементами s1 , . . . , sp будем обо-
Рис. 8.4
значать через v1 , . . . , vp . Заметим, что
Теорема 8.2. Если булева функция f существенно зависит от n пере- в силу выбора вершины s, среди элементов s1 , . . . , sp нет элементов, реали-
менных, то D(f ) ≥ log2 n. зующих одноместные функции. Рассматриваемый фрагмент изображен в
Несмотря на свою простоту, и почти очевидность, неравенства теорем 8.1 левой части рисунка 8.4. Преобразуем этот фрагмент следующим образом.
и 8.2 в общем случае неулучшаемы. Для того, чтобы убедиться в этом до- Удалим элемент s, а элементы s1 , . . . , sp заменим элементами s1 , . . . , sp , реа-
статочно рассмотреть например функцию x1 & · · · &xn , сложность и глубина лизующими такие одноместные функции v1 , . . . , vp , что vi (x) = vi (α, S(ui ))
которой в базисе {∨, &, ¬} равны соответственно n − 1 и log2 n . (здесь полагаем, что в схеме S вершина s является первым предком эле-
Следует отметить, что доказательство нетривиальных нижних оценок мента si ). Преобразованный фрагмент показан в правой части рисунка 8.4.
сложности и глубины является очень трудной задачей для схем в полных Легко видеть, что в элементах s1 , . . . , sp вычисляются те же функции, что и
базисах4). Так, например, лучшая из известных в настоящее время нижняя ранее в элементах s1 , . . . , sp , и при этом сложность преобразованной схемы
оценка сложности n-местных функций для базиса состоящего из всех не меньше сложности исходной. Пришли к противоречию с минимальностью
более чем двухместных булевых функций не превосходит 4n. Более высо- схемы S. Лемма доказана.
кие нижние оценки удается доказывать только тогда, когда на базис или Лемма 8.3 используется в часто применяемом преобразовании схем —
структуру схем накладываются существенные ограничения. подстановке константы вместо какого-либо входа. Рассмотрим это преобра-
зование на примере схемы, вычисляющей функцию x ⊕ y. Эта схема изоб-
xr yr xr xr xr
8.3 Свойства минимальных схем
Сформулируем и докажем несколько лемм о свойствах минимальных схем
в базисе B0 , состоящем из всех не более чем двухместных булевых функ- ¬ ¬ ¬ 0 ¬ ¬
ций. Аналогичные утверждения нетрудно доказать и для других базисов.
Первую очевидную лемму приведем без доказательства. & & & 0
Лемма 8.2. Если в схеме S есть две вершины, в которых вычисляется
одна и та же функция, то одна из этих вершин может быть удалена из ∨ ∨ ∨
схемы, а сама схема S преобразована таким образом, что ее сложность
уменьшится, вычисляемые ею функции не изменятся.
Рис. 8.5
Из леммы 8.2 следует, что в любой минимальной схеме в разных элемен-
тах вычисляются разные функции. Далее будем пользоваться этим свой- ражена в левой части рисунка 8.5. В схеме вместо переменной y подставим
ством минимальных схем без ссылок на лемму 8.2. единицу. После такой подстановки правый элемент отрицания превратит-
3) Случай, когда элемент v имеет одного предка рассматривается аналогично. ся в элемент, реализующий тождественный нуль, а левый конъюнктор —
4) Базис называется полным, если его замыкание совпадает с P2 . в тождественный элемент, который вычисляет такую же функцию, как и
108 Лекция 8. Сложность булевых функций 8.3. Свойства минимальных схем 109

левый инвертор, и поэтому может быть удален из схемы. Преобразован- вершина s, v1 , . . . , vp — элементы, подключенные к s, r1 , . . . , rq — элемен-
ная схема изображена справа от исходной схемы. В новой схеме первый ты, подключенные к s0 и отличные от s. Реализуемую элементом s0 функ-
вход дизъюнктора подключен к инвертору вместо удаленного конъюнкто- цию обозначим через ϕ. В рассматриваемом фрагменте удалим элемент s,
ра. Второй вход оставшегося конъюнктора подключен к тождественному элемент s0 заменим элементом s0 , реализующим функцию ϕ, объявим эле-
нулю, и, следовательно, сам вычисляет тождественный нуль. Поэтому во мент s0 выходом схемы вместо элемента s, элементы v1 , . . . , vp подключим
второй схеме удалим элемент, вычисляющий тождественный нуль, а конъ- к элементу s0 , а элементы r1 , . . . , rq , реализующие функции r1 , . . . , rq , за-
юнктор заменим элементом, вычисляющим тождественный нуль. В резуль- меним элементами r1 , . . . , rq , реализующими такие функции r1 , . . . , rq , что
тате получится третья слева схема рисунка 8.5. В этой схеме второй вход ri (x, y) = ri (x, y) (здесь как и ранее полагаем, что в схеме S вершина s0 яв-
дизъюнктора подключен к тождественному нулю, и, следовательно, вычис- ляется первым предком элемента ri ). Преобразованный фрагмент схемы S
ляет функцию, к которой подключен его первый вход. Поэтому конъюнктор изображен в правой части рис. 8.6. Легко видеть, что в элементах r1 , . . . , rq
вместе с тождественным нулем можно удалить из схемы, а элемент отри- вычисляются те же функции, что и ранее в элементах r1 , . . . , rq , и при этом
цания объявить выходом схемы. Получившаяся схема изображена в правой сложность преобразованной схемы меньше сложности исходной. Пришли к
части рисунка 8.5. Эта схема вычисляет отрицание переменной x. противоречию с минимальностью схемы S. Лемма доказана.

Лемма 8.4. Пусть S — минимальная схема в базисе B0 , у которой ни Применяя лемму 8.2 и рассуждения, использованные при доказатель-
в одном из выходов не вычисляется отрицание. Тогда в S нет вершины, в стве лемм 8.3 и 8.4, произвольную схему S в базисе B0 можно преобразо-
которой реализуется отрицание. вать так, что в преобразованная схема будет состоять только из элементов,
реализующих двуместные функции существенно зависящие от обоих своих
Доказательство. Пусть S — удовлетворяющая условиям леммы схема. аргументов. Пример такого преобразования показан на рисунке 8.7. Исход-
Допустим, что в этой схеме есть элементы, в которых реализуется отри-
цание. Пусть s — самый нижний такой элемент и s не является выходом xr ry xr yr xr yr xr yr
схемы. Рассмотрим фрагмент схемы, содержащий s, элементы s1 , . . . , sp , — 1
sr0 sr0 s0 ¬ ¬ ϕ
⊕ &
ur1 urp ur1 urp ur1 ϕ urp ur1 urq
¬ & &
s &

v1 p p p p p p vp v1 p p p p p p vp v1 p p p p p p vp r1 p p p p p p rq ¬ ¬

Рис. 8.6 Рис. 8.7

потомки вершины s, вершину s0 — предка s, и вершины u1 , . . . , up , — предки ная схема в базисе B0 изображена слева. Вершина, в которой вычисляется
элементов s1 , . . . , sp . Рассматриваемый фрагмент изображен в левой части тождественная единица, удаляется так, как это было сделано в лемме 8.3.
рисунка 8.6. При этом элемент сложения заменяется элементом отрицания, а верхняя
Преобразуем его следующим образом. Удалим элемент s. Элементы конъюнкция — тождественным элементом, который в свою очередь удаля-
s1 , . . . , sp , реализующие функции v1 , . . . , vp , подключим к вершине s0 , по- ется в силу леммы 8.2. Преобразованная схема изображена на втором слева
сле чего заменим элементами s1 , . . . , sp , реализующими такие функции фрагменте рисунка. Затем, в соответствии с леммой 8.4, удаляется нижний
v1 , . . . , vp , что vi (x, y) = vi (x, y) (здесь как и ранее полагаем, что в схе- элемент отрицания и конъюнкция заменяется элементом, реализующим &.
ме S вершина s0 является первым предком элемента si ). Преобразованный Наконец, удаляется последний элемент отрицания, при этом элемент, реа-
фрагмент схемы S изображен в средней части рис. 8.6. Легко видеть, что в лизующий &, заменяется элементом, реализующим функцию ϕ. Результа-
элементах s1 , . . . , sp вычисляются те же функции, что и ранее в элементах том всех преобразований является одноэлементная схема, изображенная на
s1 , . . . , sp . правом фрагменте рисунка 8.7.
Теперь рассмотрим случай, когда элемент s является одним из выходов Функцию f (x, y), существенно зависящую от переменных x и y, назовем
схемы. В этом случае предок элемента s не может быть входом схемы, а &-функцией, если
обязательно будет элементом. Пусть s0 — элемент к которому подключена f (x, y) = (xα &y β )γ ,
110 Лекция 8. Сложность булевых функций 8.4. Примеры 111

где α, β, γ — булевы постоянные. Функцию g(x, y), существенно зависящую т. е. элемент s вычисляет функцию независящую от xi . Следовательно, от
от переменных x и y, назовем ⊕-функцией, если xi так же не зависит и выход схемы S. Лемма доказана.
g(x, y) = x ⊕ y ⊕ α,
где α — булева постоянная. Элементы, реализующие &- и ⊕-функции, будем 8.4 Примеры
называвать &- и ⊕-элементами, соответственно.
Легко проверить, что различные α, β, γ определяют различные &-функ- Рассмотрим три примера, в которых оценивается сложность и глубина бу-
ции, а различные α — различные ⊕-функции. Поэтому общее число различ- левых функций. В первых двух примерах для сложности и глубины рас-
ных &- и ⊕-функций равно десяти. Так как среди 16 функций, зависящих сматриваемых функций устанавливаются точные значения.
от переменных x и y есть две константы — 0 и 1, и четыре функции одно- 1. Покажем, что для сложности каждой булевой функции f , зависящей
го существенного аргумента — x, x, y, y, то каждая из десяти оставшихся от трех переменных, справедливо неравенство
функций существенно зависит от x и y. Следовательно, каждая двуместная
LB0 (f ) ≤ 4.
булева функция, существенно зависящая от двух своих аргументов, будет
либо &-функцией, либо ⊕-функцией.
Для этого в многочлене Жегалкина булевой функции f (x, y, z) соберем вме-
Доказываемое в следующей лемме свойство схем, часто используется
сте все одночлены содержащие и все одночлены не содержащие переменную
при их анализе и позволяет устанавливать нетривиальные нижние оценки
x. В результате получим следующее равенство:
сложности булевых функций.
Лемма 8.5. Пусть в схеме S : (1) к входу xi подключен только один f (x, y, z) = a0 ⊕ a1 x ⊕ a2 y ⊕ a3 z ⊕ a4 xy ⊕ a5 xz ⊕ a6 yz ⊕ a7 xyz =
элемент s и этот элемент реализует &-функцию; (2) второй вход s под- = x(a1 ⊕ a4 y ⊕ a5 z ⊕ a7 yz) ⊕ (a0 ⊕ a2 y ⊕ a3 z ⊕ a6 yz) =
ключен к вершине v, в которой вычисляется функция, существенно зави-
= xh(y, z) ⊕ g(y, z).
сящая только от переменных xi1 , . . . , xik . Тогда найдутся такие постоян-
ные αi1 , . . . , αik , что после подстановки их вместо переменных xi1 , . . . , xik Схема, построенная в соответствии с этим представлением, состоит из эле-
выход схемы S не зависит от xi . мента реализующего функцию h, элемента реализующего функцию g, конъ-
Доказательство. Допустим, что к входу xi подключен элемент s. юнкции и элемента сложения. Легко видеть, что сложность такой схемы
Этот элемент реализует двухместную функцию h(u, v) = (uα &v β )γ , су- равна четырем, а глубина — двум.
Теперь покажем, что среди трехместных булевых функций есть функ-
xr 1 rx2 rx3 щественно зависящую от двух своих аргументов. Бу-
дем полагать, что к переменной xi подключен вто- ция, сложность которой в базисе из всех двухместных булевых функций не
∨ рой вход элемента s. Тогда первый вход s подклю- меньше четырех. Такой функцией является функция голосования
чен к некоторой вершине s1 , в которой вычисляется
функция h1 (xi1 , . . . , xik ), не зависящая от xi , и, в си- τ2 (x, y, z) = xy ⊕ xz ⊕ yz (8.4)
& лу леммы 8.3, не равная тождественной постоянной.
Подобная схема изображена на рисунке 8.8. В этой Прежде всего отметим, что подстановка произвольной константы на ме-
схеме условиям, наложенным на вход xi , удовлетво- сто любого аргумента функции голосования преобразует ее в функцию, су-

ряют входы x2 и x3 . Если в качестве xi взять вход x2 , щественно зависящую от двух оставшихся аргументов. Подставляя констан-
то вершиной s1 будет вход x1 . Подставляя вместо x1 ты вместо переменной x в (8.4), легко видеть, что
Рис. 8.8 тождественную единицу видим, что функция, вычис-
ляемая первым элементом схемы не зависит от x2 , так как x2 ∨ 1 = 1. Если τ2 (0, y, z) = yz, τ2 (1, y, z) = y ⊕ z ⊕ yz. (8.5)
в качестве xi взять вход x3 , то вершиной s1 будет вершина, реализующая
дизъюнкцию. После подстановки x1 = 0, x2 = 0 первый элемент схемы Так как функция голосования является симметрической функцией, то ра-
будет вычислять тождественный нуль, и, следовательно, тождественный венства, аналогичные (8.5), справедливы и при подстановке констант вместо
нуль так же будет вычислять конъюнктор, т. е. вычисляемая им функция переменных y и z.
не зависит от x3 . Легко видеть, что и в общем случае найдутся значения Пусть S — минимальная схема, вычисляющая функцию голосования.
αi1 , . . . , αik , переменных xi1 , . . . , xik , при которых h1 (αi1 , . . . , αik ) = α. Тогда Перенумеруем элементы схемы S так, чтобы первый номер получил эле-
мент, входы которого подключены только к независимым переменным, а
S(s) = h(h1 (αi1 , ..., αik ), xi ) = ((α)α &xβi )γ = (0 &xβi )γ = 0γ , последний номер получил выход схемы.
112 Лекция 8. Сложность булевых функций 8.4. Примеры 113

Допустим, что минимальная схема S состоит из двух элементов. Так как xr ry rz xr ry rz xr ry rz xr ry rz


функция голосования является симметрической функцией, то без ограни-
чения общности будем полагать, что входы первого эле- 1 1 1 1
xr ry rz
мента схемы подключены к переменным x и y. В этом
1 случае схема S выглядит так, как это изображено на
2 2 2 2
рис. 8.9. Пусть первый элемент реализует функцию f , а
второй — функцию g. Покажем, что ни f , ни g не могут
2 быть &-функциями. Действительно, если f является &- 3 3 3 3
функцией, то из леммы 8.2 следует существование такой
Рис. 8.9 постоянной α, что после ее подстановки вместо перемен-
ной y выход схемы не зависит от переменной x. Получили Рис. 8.10
противоречие с (8.5). Если &-функцией является функция g = (uα &z β )γ , то
рой и третий элементы можно заменить одним, реализующим подходящую
подставляя вместо переменной z константу β убеждаемся, что вычисляемая
схемой S функция будет константой. Снова противоречие с (8.5). двуместную функцию. Преобразованная схема будет выглядеть так, как это
Таким образом, функции f и g должны быть ⊕-функциями. Следова- изображено на рис. 8.9.
тельно, вычисляемая схемой S функция должна быть линейной. Противо- Теперь рассмотрим правую схему. Как и при анализе двухэлемент-
речие с (8.4). ной схемы легко показать, что ни один из элементов не может быть &-
Теперь предположим, что вычисляющая функцию голосования мини- элементом. Подстановка вместо переменной y или z подходящей константы
мальная схема S состоит из трех элементов. Снова без ограничения общ- преобразует схему S в схему, вычисляющую константу или функцию од-
ности будем полагать, что входы первого элемента схемы подключены к ной переменной, что противоречит (8.5). Но если все элементы являются
переменным x и y. ⊕-элементами, то вычисляемая схемой S функция будет линейной. Проти-
Общее число входов второго и третьего элементов схемы равно четырем. воречие с (8.4). Таким образом, ни одна из изображенных на рис. 8.10 схем
Три из этих четырех входов должны быть обязательно подключены: не вычисляет функцию голосования. Случай (i) рассмотрен полностью.
1) к первому элементу; Рассмотрим второй случай. С учетом сделанных предположений второй
2) к второму элементу; элемент схемы подключен к переменным y и z. Поэтому схема S выглядит
3) к переменной z. так, как это изображено на рис. 8.11. Как и ранее,
xr ry rz
Следовательно, оставшийся четвертый вход может быть подключен либо к легко показать, что первый и второй элементы не мо-
одной из переменных x и y (без ограничения общности будем полагать, что гут быть &-элементами. Подстановка вместо перемен-
1 2
такой переменной будет y), либо к переменной z, либо к первому элементу ной y подходящей константы преобразует схему S в
схемы. Таким образом в схеме S два элемента могут подключаться либо к схему, вычисляющую константу или функцию одной
переменной y, либо к переменной z, либо к первому элементу. К переменной переменной, что противоречит (8.5). Допустим, что
x обязательно подключен только первый элемент схемы. 3 первый и второй элементы являются ⊕-элементами,
Далее рассмотрим два случая: реализующими функции x ⊕ y ⊕ α и y ⊕ z ⊕ β. Преоб-
(i) к первому элементу схемы S подключен элемент, который не является Рис. 8.11 разуем схему S, заменив переменные y и z переменной
выходом схемы; x. В преобразованной схеме первый элемент вычисля-
(ii) к первому элементу схемы S не подключен элемент, который не яв- ет константу α, второй элемент — константу β. Следовательно, сама схе-
ляется выходом схемы. ма также вычисляет тождественную константу. Пришли к противоречию с
Рассмотрим первый случай. В этом случае глубина схемы равна трем. С (8.4), так как подстановка y = x, z = x преобразует функцию голосования
учетом сделанных выше предположений, в первом случае возможны только в функцию x. Случай (ii) рассмотрен полностью.
четыре различных конструкции схемы S. Все они представлены на рисун- Таким образом, минимальная схема функции голосования состоит не
ке 8.10. Из рисунка видно, что три левые схемы не являются минимальны- менее чем из четырех элементов, т. е. LB0 (τ2 (x, y, z)) ≥ 4. Нижняя оценка
ми. Каждая из этих схем может быть преобразована в схему из двух элемен- глубины является тривиальным следствием теоремы 8.2.
тов так, что старая и новая схемы будут вычислять одну и туже функцию. 2. Систему F из n линейных функций, зависящих от 2n − 1 переменных,
В качестве примера рассмотрим самую левую схему. В этой схеме второй назовем универсальной и обозначим через Un , если j-й столбец матрицы Un
и третий элементы вычисляют функцию, зависящую от двух аргументов этой системы совпадает с двоичным представлением числа j. Например,
— переменной z и функции, вычисляемой первым элементом. Поэтому вто- универсальной системой U3 с матрицей U3 будет система трех функций
114 Лекция 8. Сложность булевых функций 8.4. Примеры 115

{f1 , f2 , f3 }, если Следовательно,


⎛ ⎞ L(Un−1 ) = 2(2n−1 − (n − 1) − 1) + 2(2n−1 − 1) = 2(2n − n − 1),
f1 =x4 ⊕ x5 ⊕ x6 ⊕ x7 , 0 0 0 1 1 1 1
f2 =x2 ⊕ x3 ⊕ x6 ⊕ x7 , U3 = ⎝0 1 1 0 0 1 1⎠ . D(Un−1 ) = max(1 + (n − 2), n − 1) = n − 1.
f3 =x1 ⊕ x3 ⊕ x5 ⊕ x7 . 1 0 1 0 1 0 1
Верхние оценки сложности и глубины доказаны.
Универсальные системы интересны тем, что любая система F , состоя- Прежде чем доказывать нижние оценки сложности системы Un , дадим
щая из m линейных функций, может быть получена из системы Um удале- важное определение и докажем две необходимых леммы, имеющих также
нием одних переменных и дублированием других. самостоятельный интерес.
Пусть S — произвольная схема. Вершину v схемы S назовем вершиной
Теорема 8.3. Справедливы равенства ветвления если эта вершина имеет не менее двух потомков, или являет-
ся выходом схемы и имеет хотя бы одного потомка. Вершину ветвления v
L(Un ) = 2(2n − n − 1), D(Un ) = n − 1, назовем вершиной первого ветвления входа xi , если v и вход xi связаны
цепью, проходящей через вершины v0 = xi , v1 , . . . , vk−1 , vk = v, в которой
которые достигаются на одной и той же схеме. ни одна из вершин vj , где j = 0, 1, . . . , k − 1, не является вершиной ветвле-
ния. Для примера, рассмотрим первые две схемы, изображенные слева на
Доказательство. Верхние оценки. Для доказательства теоремы по- рисунке 8.10 на странице 113. В первой схеме входы x и y не имеют вер-
строим схему Un , вычисляющую универсальную систему Un , состоящую из шин ветвления, а вход z сам является своей вершиной первого ветвления.
2(2n − n − 1) элементов сложения и имеющую глубину n − 1. Схему Un На второй схеме входы x и y имеют общую вершину первого ветвления —
построим индукцией по n. На рисунке 8.12 представлена индуктивная про- элемент, помеченный единицей, а у входа z нет вершины первого ветвления.
x
r1 xr2 rx3 x
r1 xr 2n−1 −1 x
r 2n−1 rx2n−1 +1 rx2n −1
p pp pp p Лемма 8.6. В любой схеме S, вычисляющей систему линейных функ-
r r pp pp pp
r ций F , два входа имеют различные вершины первого ветвления, если в
матрице системы соответствующие этим входам столбцы различны и
⊕ ⊕ ⊕ ⊕ каждый из этих столбцов содержит не менее двух единиц.
p pp pp p
Доказательство. Пусть схема S вычисляет систему линейных функций
0 F (x1 , . . . , xn ), и пусть i-й и j-й входы S удовлетворяют условиям леммы. До-
Un−1 2n−1
пустим, что у i-го и j-го входов есть общая вершина первого ветвления v.
p pp pp p В схеме S вместо всех переменных, исключая xi и xj , подставим тожде-
ственный нуль. После такой подстановки новая схема S будет вычислять
Рис. 8.12
систему линейных функций, зависящих только от двух переменных xi и
цедура построения схемы Un : в левой части изображен базис индукции, в xj . Матрица этой системы будет состоять из i-го и j-го столбцов матрицы
правой — индуктивный переход. Индуктивный переход основан на следую- системы F . Далее рассмотрим два случая: первый, когда в новой матрице
щем простом свойстве матрицы Un : нет строки с двумя единицами; второй, когда такая строка есть.
В первом случае среди линейных функций обязательно найдется хотя бы
ui,j = ui,j+2n−1 при всех 2 ≤ i ≤ n и 1 ≤ j ≤ 2n−1 − 1. одна, существенно зависящая только от xi , и одна, существенно зависящая
только от xj . Во втором случае найдется функция, существенно зависящая
Найдем сложность L(Un ) и глубину D(Un ) схемы Un . Очевидно, что L(U2 ) = только от одной переменной, например от xi , и функция, существенно за-
2 и D(U2 ) = 1. Из конструкции схемы Un видим, что висящая от xi и xj . В обоих случаях первую функцию обозначим через
f1 (xi , xj ), вторую — через f2 (xi , xj ). Легко видеть, что
L(Un ) = L(Un−1 ) + L(⊕2n−1 ) + 2n−1 − 1 = L(Un−1 ) + 2(2n−1 − 1),
D(Un ) = max(1 + D(Un−1 ), D(⊕2n−1 )) = max(1 + D(Un−1 ), n − 1). f1 (0, 1) = f1 (1, 0), f2 (0, 0) = f2 (0, 1), f1 (0, 1) = f2 (0, 1). (8.6)

По предположению индукции Теперь рассмотрим вершину v. После подстановки нулей в этой вершине
будет вычисляться некоторая функция h(xi , xj ), зависящая только от xi и
L(Un−1 ) = 2(2n−1 − (n − 1) − 1), D(Un−1 ) = n − 2. xj . Так как любая цепь, связывающая каждый из входов xi или xj с любым
116 Лекция 8. Сложность булевых функций 8.4. Примеры 117

выходом схемы S , проходит через вершину v, то каждую функцию, вычис- Далее найдем сложность такого вычисления, а затем покажем, что исполь-
ляемую схемой S , будем рассматривать как функцию, зависящую только от зование функций, не сохраняющих нуль, позволит уменьшить сложность
h(xi , xj ). Таким образом, f1 (xi , xj ) = g1 (h(xi , xj )) и f2 (xi , xj ) = g2 (h(xi , xj )). вычисления дизъюнкции.
Из первых двух неравенств (8.6) видно, что ни g1 , ни g2 , не являются тожде-
ственными постоянными. Из третьего неравенства следует, что g1 = g2 , т. е. Утверждение 8.1. Справедливы соотношения
одна из этих функций будет отрицанием, а вторая — тождественной функ-
L{&,⊕} (x1 ∨ . . . ∨ xn ) = 3n − 3,
цией. Без ограничения общности будем полагать, что отрицанием будет g1 .
Тогда D{&,⊕} (x1 ∨ . . . ∨ xn ) ≤ 2log2 n .
0 = f1 (0, 0) = h(0, 0) = h(0, 0) = f2 (0, 0) = 0.
Доказательство. Верхняя оценка. Положим m = n/2, l = n/2 .
Противоречие. Лемма доказана. Схема Sn , вычисляющая функцию x1 ∨ . . . ∨ xn , легко строится индуктивно
в соответствии с формулой
Лемма 8.7. Пусть система m линейных n-местных функций F та-
кова, что среди столбцов ее (m, n)-матрицы: (i) нет ни одного нулевого x1 ∨ . . . ∨ xn =(x1 ∨ . . . ∨ xm )(xm+1 ∨ . . . ∨ xn )⊕
столбца; (ii) есть k различных столбцов, каждый из которых содержит
не менее двух единиц. Тогда ⊕ (x1 ∨ . . . ∨ xm ) ⊕ (xm+1 ∨ . . . ∨ xn ).

L(F ) ≥ n + k − m. Полагая, что m, l ≥ 2, L(Sm ) = 3m − 3, L(Sl ) = 3l − 3, видим, что

Доказательство. Пусть S — минимальная схема, вычисляющая систе- L(Sn ) = L(Sm ) + L(Sl ) + 3 = (3m − 3) + (3l − 3) + 3 = 3n − 3.
му F . Из леммы 8.6 легко следует, что в S найдется не менее k входов,
каждый из которых имеет собственную вершину первого ветвления, и, сле- Полагая, что D(Sm ) ≤ D(Sl ) = 2log2 l и учитывая, что для любого нечет-
довательно, в схеме S есть k вершин, каждая из которых имеет не менее ного n большего единицы log2 n = log2 (n + 1) , а для любого четного —
двух потомков. Число элементов схемы S обозначим через L, число ребер 2n/2 = n, имеем
— через N . Оценим N , подсчитывая ребра, выходящие из вершин схемы S.
D(Sn ) = D(Sl ) + 2 = 2log2 n/2 + 2 = 2log2 2n/2 = 2log2 n .
1) Из каждого входа схемы обязательно выходит одно ребро — всего n
ребер. Верхние оценки доказаны.
2) Из всех элементов схемы, не являющихся ее выходами, обязательно Нижняя оценка сложности. Пусть S — минимальная схема в базисе
выходит по одному ребру — всего L − m ребер. {&, ⊕} для дизъюнкции n переменных. Покажем, что
3) Кроме этого в S есть не менее k вершин первого ветвления и из каждой
выходит не менее одного ребра, не учтенного в пунктах 1) и 2). L{&,⊕} (x1 ∨ . . . ∨ xn ) ≥ 3n − 3. (8.7)
Общее число выходящих ребер — n + k + L − m. Следовательно, N ≥
n + k + L − m. Прежде всего, покажем, что в S к каждому входу обязательно должен
Теперь оценим N , подсчитывая ребра, входящие в вершины схемы S. быть подключен хотя бы один элемент, реализующий функцию ⊕. Действи-
Ребра входят только в элементы S, причем в каждый элемент входит не тельно, допустим, что к n-му входу подключены только элементы s1 , . . . , sp ,
более двух ребер. Поэтому N ≤ 2L. Следовательно, n + k + L − m ≤ N ≤ 2L. реализующие конъюнкции. В S положим x1 = . . . = xn−1 = 0. Так как
Из последнего неравенства немедленно получаем, что L ≥ n + k − m. Лемма базис схемы S сохраняет нуль, то все ее вершины, находящиеся в схеме
доказана. выше элементов s1 , . . . , sp и не являющиеся n-м входом, будут вычислять
тождественный нуль. Поэтому тождественный нуль будет вычисляться в
Нижние оценки. Так как все 2n − 1 столбцов матрицы Un различные,
вершинах, к которым подключены вторые входы элементов s1 , . . . , sp , а,
ненулевые и среди них есть 2n − n − 1 столбцов содержащих не менее чем
следовательно, и в самих элементах s1 , . . . , sp . Последнее означает, что схе-
по две единицы, то в силу леммы 8.7
ма S вычисляет тождественный нуль при любом значении переменной xn .
L(Un ) ≥ (2n − 1) + (2n − n − 1) − n = 2(2n − n − 1). Пришли к противоречию.
Теперь покажем, что в S обязательно найдется вход, к которому под-
Нижняя оценка глубины следует из теоремы 8.2. Теорема доказана. ключено не менее двух элементов. Предположим, что это не так. Тогда в
3. Рассмотрим n-местную дизъюнкцию x1 ∨ · · · ∨ xn . Легко видеть, что схеме найдутся два входа, к которым подключен один и тот же элемент
дизъюнкция сохраняет нуль, а функции & и ⊕ образуют базис в T0 . По- s. Без ограничения общности будем полагать, что такими входами будут
этому дизъюнкцию x1 ∨ · · · ∨ xn можно вычислить схемой в базисе {&, ⊕}. (n − 1)-й и n-й входы. В S положим x1 = . . . = xn−2 = 0, xn−1 = xn = x.
118 Лекция 8. Сложность булевых функций 8.5. Задачи 119

После такой подстановки все элементы S будут вычислять тождественный 8.5 Задачи
нуль при любом значении переменной x. Снова пришли к противоречию.
Пусть в S к n-му входу подключены два элемента v и u. Без ограничения 8.1. Доказать равенства
общности будем полагать, что элемент u реализует xrn xrn a) L{∨,&,¬}(x ∼ y) = 4; b) L{∨,&,¬}(x ⊕ y) = 4.
⊕. В S положим xn = 0. Покажем, что после та-
кой подстановки из S можно удалить не менее двух 8.2. Доказать равенства
элементов, реализующих ⊕. Для этого рассмотрим & &
a) L{⊕,&,1} (x ∼ y) = 3; b) L{⊕,&,1} (x ∨ y) = 3;
всевозможные цепочки элементов v = v0 , v1 , . . . , vk c) L{⊕,&,1} (x → y) = 4; d) L{⊕,&,1} (x ↓ y) = 4.
в которых каждый элемент vi+1 подключен к эле- & &
менту vi . Среди этих цепочек обязательно найдет- 8.3. Доказать равенства
ся такая, в которой первые k элементов реализуют ⊕ ⊕ a) L↓ (x → y) = 3; b) L↓ (x&y) = 3; c) L↓ (1) = 3;
конъюнкции, а последний — ⊕. (Если элемент v0 d) L↓ (x|y) = 4; e) L↓ (x ∼ y) = 4; f) L↓ (x ⊕ y) = 5.
реализует ⊕, то k = 0.) Слева на рисунке 8.13 изоб-
ражена подобная цепочка из трех элементов. Если Рис. 8.13
8.4. Доказать равенства
такой цепочки нет, то в S существует цепочка из одних конъюнкций, кото- a) L| (x&y) = 2; b) L| (x ∨ y) = 3; c) L| (0) = 3;
рая связывает n-й вход и выход схемы. В этом случае подстановка нуля вме- d) L| (x ↓ y) = 4; e) L| (x ⊕ y) = 4; f) L| (x ∼ y) = 5.
сто xn приведет к тому, что в последнем элементе схемы будет вычисляться
нуль независимо от значения первых n − 1 переменных. Итак, пусть w = vk 8.5. Показать, что для системы дизъюнкций {x1 ∨x2 ∨x3 ∨x4 , x2 ∨x3 ∨x4 }
— элемент, реализующий ⊕ и связанный с v цепочкой из одних конъюнк- не существует схемы, которая одновременно минимальна по сложно-
ций. Если w и u различные элементы, то именно они будут удалены после сти и глубине.
подстановки xn = 0. Допустим теперь, w и u совпадают (подобная ситуа-
8.6. Найти LB0 (xyz ∨ x y z).
ция изображена в правой части рисунка 8.13). Сохраним за этим элементом
обозначение w. Легко видеть, что после подстановки xn = 0 вычисляемая 8.7. Найти L{&,∨,¬}(x ⊕ y ⊕ z).
в w функция будет тождественным нулем. Как и выше, рассматривая все- 8.8. Показать, что L{&,¬} (x1 ∨ . . . ∨ xn ) = 2n.
возможные цепочки конъюнкций, начинающиеся в w, найдем элемент z, 8.9. Показать, что L{∨,¬} (x1 & . . . &xn ) = 2n.
реализующий ⊕. 8.10. Пусть B = P2 (2) \ {⊕, ∼}. Показать, что LB (x1 ⊕ . . . ⊕ xn ) = 3n − 3.
Преобразование схемы, заключающееся в подстановке вместо xi тожде-
8.11. Показать, что L{&,∨,¬}(x1 ⊕ . . . ⊕ xn ) = 4n − 4.
ственного нуля и последующее удаление из схемы i-го входа и всех вершин,
вычисляющих тождественный нуль, назовем операцией удаления i-го входа 8.12. Найти L{&,⊕,1} (x1 ∨ . . . ∨ xn ).
схемы. 8.13. Показать, что для любой булевой функции f (x1 , . . . , xn ) имеют место
Из доказанного выше следует, что из схемы S можно удалять входы до неравенства
тех пор, пока в ней не останется единственный не удаленный вход. Следо- a) L{&,¬} f (x1 , . . . , xn ) ≤ 2L{&,∨,¬}(f ) + n;
вательно, операция удаления входа может быть выполнена n − 1 раз. При b) L{∨,¬}f (x1 , . . . , xn ) ≤ 2L{&,∨,¬}(f ) + n.
этом из S будет удалено не менее чем 2n − 2 элемента ⊕. Кроме того, легко 8.14. Показать, что в базисе {↓} можно построить схему из функциональ-
видеть, что S содержит не менее чем n − 1 элемент конъюнкции. Это следу- ных элементов, реализующую все булевы функции от n переменных
и содержащую 22 − n элементов. Доказать минимальность такой
n
ет из того, что степень дизъюнкции n переменных равна n. Таким образом,
общее число элементов в схеме S не меньше чем 3n − 3. Неравенство (8.7) схемы.
доказано. Утверждение доказано полностью. 8.15. Показать, что сложность реализации схемами в базисе {∨} системы
Дизъюнкция принадлежит классу T0 , и как видно из доказанного утвер- из 2n дизъюнкций от 2n переменных асимптотически равна 2n+1
ждения, достаточно просто вычисляется схемами в базисе, целиком со- при n → ∞, если в матрице коэффициентов этой системы первые n
держащемся в T0 . С другой стороны, легко видеть, что x1 ∨ · · · ∨ xn = разрядов j-го столбца являются двоичным разложением числа j−1, а
(x1 ⊕ 1) · . . . · (xn ⊕ 1) ⊕ 1. Откуда легко следует неравенство последние n разрядов являются двоичным разложением числа 2n −j.
L{&,⊕,1} (x1 ∨ · · · ∨ xn ) ≤ 2n + 1. 8.16. Найти сложность реализации схемами в базисе {⊕} системы из n
линейных n-местных булевых функций, если в матрице коэффици-
Таким образом, расширение базиса схемы до базиса полного в P2 позволяет ентов этой системы на главной диагонали стоят нули, а остальные
уменьшить сложность вычисления в полтора раза. элементы равны единице.
120 Лекция 8. Сложность булевых функций

8.17. Найти сложность реализации схемами в базисе {∨} системы из n


дизъюнкций, зависящих от n переменных, если в матрице коэффи-
циентов этой системы на главной диагонали стоят нули, а остальные
элементы равны единице.
8.18. Найти сложность реализации схемами в базисе {⊕} системы из 2n
линейных 2n -местных булевых функций, если матрица коэффициен- Лекция 9
тов этой системы определяется равенствами:
   
P1 =
1 1
0 1
, Pk =
Pk−1 P k−1
P k−1 Pk−1
. Реализация арифметических
8.19. Найти сложность реализации схемами в базисе {⊕} системы из 2n
операций
линейных 2n -местных булевых функций, если матрица коэффициен-
тов этой системы определяется равенствами:
   
0 1 Pk−1 Pk−1 В этой лекции рассматриваются схемы, реализующие три основные ариф-
P1 = , Pk = .
0 0 P k−1 Pk−1 метические операции — сложение, вычитание и умножение. Основное вни-
мание уделяется глубине схем.
8.20. Пусть f — такая система из 2n дизъюнкций, что матрица ее коэф-
фициентов состоит из всех тех попарно различных векторов высоты
2n, которые содержат ровно n единиц. Найти L{∨} (f ) при n → ∞. 9.1 Сложение
8.21. Пусть f — такая система из n дизъюнкций, что матрица ее коэффи-
Рассмотрим булев оператор сложения Sn : {0, 1}2n → {0, 1}n+1, вычисля-
циентов состоит из всех тех попарно различных векторов высоты n,
ющий сумму двух n-разрядных целых положительных чисел, представлен-
число единиц в которых делится на 3. Найти L{∨} (f ) при n → ∞.
ных в двоичной системе счисления. Пусть


n
n
n+1
x= xi 2i−1 , y= yi 2i−1 , z= zi 2i−1 ,
i=1 i=1 i=1

где x + y = z. Тогда

Sn (x1 , . . . , xn , y1 , . . . , yn ) = (z1 , . . . , zn+1 ).

Схему, вычисляющую оператор Sn , назовем n-разрядным сумматором. Из-


вестно следующее утверждение.

Лемма 9.1. Существует n-разрядный сумматор Σn , для сложности


и глубины которого справедливы равенства

L(Σn ) = 5n − 3, D(Σn ) = 2n − 1.

Доказательство. Для построения схемы Σn воспользуемся хорошо из-


вестным алгоритмом сложения целых чисел "столбиком". В этом алгоритме
qn+1 qn . . . q2 j-й разряд суммы zj равен сумме j-х разрядов слагае-
мых и переноса qj из предыдущих j − 1 разрядов, т. е.
+ xn . . . x2 x1
y n . . . y2 y 1
zn+1 zn . . . z2 z1 zj = xj ⊕ yj ⊕ qj . (9.1)

121
122 Лекция 9. Реализация арифметических операций 9.1. Сложение 123

Легко видеть, что перенос в (j + 1)-й разряд вычисляется по формуле Теперь найдем глубину схемы Σn . Из конструкции этой схемы, показанной
на рисунках 9.1 и 9.2, видно, что каждая максимальная цепь в Σn свя-
qj+1 = xj yj ⊕ xj qj ⊕ yj qj = xj yj ⊕ qj (xj ⊕ yj ). (9.2) зывает один из входов x1 или y1 с выходом zn+1 , и проходит через один
элемент подсхемы S1 и через два элемента каждой подсхемы Sj , при j > 1.
Так как перенос в первый разряд отсутствует, то функции z1 и q2 вычис- Следовательно,
ляются по формулам D(Σn ) = 2(n − 1) + 1 = 2n − 1.

z1 = x1 ⊕ y1 , q2 = x1 &y1 . (9.3) Лемма доказана.


Н. П. Редькин показал, что любая схема, складывающая два n-разряд-
В соответствии с формулами (9.1)–(9.3) построены схемы Sj , показанные ных двоичных числа, состоит не менее чем из 5n − 3 элементов. Поэтому
на рисунке 9.1. Слева расположена схема Sj , вычисляющая функции zj и построенные выше схемы Σn являются минимальными по сложности при
xrj всех n. В тоже время для больших n глубины этих схем далеки от мини-
ryj qrj xr1 ry1 мально возможных. Асимптотически минимальные по глубине сумматоры
построены В. М. Храпченко. Он в частности показал, что справедлива сле-
& ⊕ ⊕ дующая теорема.
&
q2 z1 Теорема 9.1. Существует n-разрядный сумматор Σn , для сложности
& ⊕ и глубины которого справедливы неравенства

zj L(Σn ) ≤ 3n + 6 · 2log2 n , D(Σn ) ≤ log2 n + 7 2log2 n + 14.

Сумматор Σn устроен достаточно сложно, поэтому ниже построим более
qj+1 простую схему Σ∗n , глубина которого при n → ∞ асимптотически в четыре
Рис. 9.1 раза больше глубины Σn . Сначала докажем вспомогательное утверждение,
qj+1 при j = 2, 3, . . . , n, справа — схема S1 , вычисляющая функции z1 и q2 . которое позволит достаточно просто вычислить все переносы qj , возникаю-
Используем эти схемы в качестве подсхем при построении схемы Σn . щие при сложении двух чисел.
Схема Σn состоит из последовательно соединенных подсхем S1 , . . . , Sn . Лемма 9.2. Пусть зависящие от переменных b1 , a2 , b2 , . . . , a2k , b2k функ-
Входы подсхемы S1 подключены к функциям x1 и y1 . На первом выходе ции y2 , y3 , . . . , y2k +1 такие, что
S1 вычисляется перенос во второй разряд — функция q2 , на втором выхо-
де функция z1 . При j = 2, 3, . . . , n, два входа подсхемы Sj подключены к y2 = b1 , yj+1 = bj ⊕ aj yj при j = 2, . . . , 2k .
xrn yr n xrj yr j xr2 yr 2 xr1 yr 1 Тогда существует вычисляющая функции y2 , . . . , y2k +1 схема Pk , для слож-
? ? ? ности и глубины которой справедливы соотношения
Sn p p pp p Sj pp pp p S2 S1 L(Pk ) ≤ 4 · 2k , D(Pk ) ≤ 4k − 2.
  Доказательство. Лемму докажем индукцией по k. При k = 1 нужно
zn+1 zn qj+1 zj q3 z2 q2 z1 вычислить только y3 . Это можно сделать схемой P1 , состоящей из одного
Рис. 9.2 элемента сложения и одного элемента умножения. Очевидно, что L(P1 ) = 2
и D(P1 ) = 2. Предположим, что при некотором k ≥ 1 требуемая схема Pk
функциям xj , yj , третий — к вычисляемой подсхемой Sj−1 функции qj . На существует. Используя эту схему, построим схему Pk+1 .
первом выходе Sj вычисляется перенос в (j + 1)-й разряд — функция q2 , на Прежде всего заметим, что при каждом j, 2 ≤ j ≤ 2k , справедливо
втором выходе функция zj . Общий вид схемы Σn показан на рисунке 9.2. равенство
Сложность подсхемы S1 равна двум. При j = 2, 3, . . . , n, сложность каж-
дой подсхемы Sj равна пяти. Поэтому y2j+1 = b2j ⊕ a2j y2j = b2j ⊕ a2j (b2j−1 ⊕ a2j−1 y2j−1 ).


n Для всех j ∈ {2, . . . , 2k } введем новые функции
L(Σn ) = Sj = 5(n − 1) + 2 = 5n − 3.

j=1 yj+1 = y2j+1 , bj = b2j ⊕ a2j b2j−1 , aj = a2j a2j−1 .
124 Лекция 9. Реализация арифметических операций 9.2. Вычитание 125

b2n a2n b2n−1 a2n−1 b2i a2i b2i−1 a2i−1 b2 a 2 b1 Лемма доказана.
r r r r r r r r r r r
В основе доказательства предыдущей леммы лежит разбиение началь-
An p p p p p p p Ai p p p p p p p A1 ных данных на пары и последующее сведение исходной задачи к новой зада-
че с вдвое меньшим числом входов. Можно показать, что разбиение началь-
bn an bi ai b1 a1 ных данных на тройки и последующее сведение исходной задачи к новой
задаче с втрое меньшим числом входов позволяет строить менее глубокие
B схемы чем в лемме 2.

Теорема 9.2. Существует n-разрядный сумматор Σ∗n , для сложности


и глубины которого справедливы неравенства
r r r r
Cn p p p p p p Ci p p p p p p L(Σ∗n ) ≤ 11n, D(Σ∗n ) ≤ 4log2 n .

Доказательство. Рассмотрим сложение двух целых n-разрядных чи-


y2n+1 y2n y2n−1 y2i+1 y2i y2i−1 y3 y2 сел x и y. Для каждого j ∈ {1, . . . , n} определим функции
Рис. 9.3 bj = xj yj , aj = xj ⊕ yj .
Пусть, кроме того, y2 = b1 = b2 ⊕ a2 b1 . Тогда новые функции yj и новые
Тогда (см. (9.2) на стр. 122) для переноса qj+1 в (j + 1)-й разряд суммы
переменные aj и bj связаны следующими равенствами:
x + y справедлива формула
y2 = b1 , 
yj+1 = bj ⊕ aj yj , при 2 ≤ j ≤ 2k . (9.4) qj+1 = xj yj ⊕ (xj−1 ⊕ yj−1 )qj = bj ⊕ aj qj .
Воспользуемся этими равенствами для вычисления функций yj . Сделаем
Вычислив величины bj и aj , для вычисления переносов qj+1 воспользуемся
это в три этапа. Сначала вычислим все новые переменные aj и bj . Затем
схемой Plog2 n из леммы 9.2. Легко видеть, для сложности и глубины схемы
вычислим что все функции yj с нечетными индексами. Из равенств (9.4),
Qn , производящей вычисления всех aj , bj и qj+1 , справедливы соотношения
условий леммы и предположения индукции следует, что это можно сделать
при помощи схемы Pk , подключив ее входы к вычисленным ранее перемен-
L(Qn ) ≤ 2n + 4 · 2log2 n ≤ 10n, D(Qn ) ≤ 4log2 n − 1.
ным aj и bj . Наконец, каждую функцию y2j с четным индексом вычислим
по формуле y2j = b2j−1 ⊕ a2j−1 y2j−1 , использующей вычисленную ранее Теперь для вычисления суммы x и y достаточно попарно сложить вычис-
функцию y2j−1 . ленные схемой Qn переносы qj и суммы xj ⊕ yj . Теорема доказана.
Выполняющая указанные вычисления схема Pk+1 изображена на рисун-
ке 9.3, где n = 2k . Эта схема состоит из 2k подсхем Aj , 1 ≤ j ≤ 2k , подсхемы
B и 2k − 1 подсхем Cj , 2 ≤ j ≤ 2k . Кратко рассмотрим подсхемы Pk+1 и 9.2 Вычитание
оценим их сложности и глубины.
1. Подсхема A1 вычисляет b1 . Очевидно, что L(A1 ) = 2 и D(A1 ) = 2. При Разностью двух n-разрядных целых положительных чисел x и y, представ-
j ≥ 2 подсхема Aj вычисляет функции aj и bj . Легко видеть, что L(Aj ) = 2 ленных в двоичной системе счисления, назовем такой (n + 1)-разрядный
и D(Aj ) = 2. вектор r, что его первые n разрядов образуют число r 1 , равное модулю
2. Подсхема B является экземпляром схемы Pk . По предположению ин- разности x и y,
дукции L(B) ≤ 4 · 2k и D(B) ≤ 4k − 2.
3. Подсхема Cj вычисляет функцию y2j в соответствии с формулой y2j =
n
r 1 = (r1 , . . . , rn ) = ri 2i−1 = |x − y|,
b2j−1 ⊕ a2j−1 y2j−1 . Легко видеть, что L(Cj ) = 2 и D(Cj ) = 2.
i=1
Из конструкции схемы Pk+1 , пп. 1–3 и предположения индукции легко
получаем, что а его (n + 1)-й разряд rn+1 равен знаку этой разности,
#
L(Pk+1 ) ≤ L(Pk ) + 4 · 2k − 2 ≤ 4 · 2k + 4 · 2k − 2 = 4 · 2k+1 , 1, если x < y,
D(Pk+1 ) ≤ D(Pk ) + 4 ≤ 4k − 2 + 4 = 4(k + 1) − 2. rn+1 =
0, если x ≥ y.
126 Лекция 9. Реализация арифметических операций 9.3. Вычисление суммы нескольких целых чисел 127

Булев оператор Rn : {0, 1}2n → {0, 1}n+1, вычисляющий разность двух n- Из второго равенства находим ri = xi ⊕ yi ⊕ zi . Подставим ri в первое
разрядных целых положительных чисел, назовем оператором вычитания. равенство:
Опишем простой способ нахождения

n разности двух произвольных чисел
x ci+1 = xi zi ⊕ ri (xi ⊕ zi ) = xi zi ⊕ (xi ⊕ yi ⊕ zi )(xi ⊕ zi ) =

nи y. Вместе с числом x = i=1 xi 2i−1 рассмотрим его дополнение x =


i=1 xi 2
i−1
. Очевидно, что x + x = 2 − 1. Следовательно, для оператора
n
= xi zi ⊕ xi ⊕ zi ⊕ yi (xi ⊕ zi ) = (xi ∨ zi ) ⊕ yi (xi ⊕ zi ).
суммирования Sn и любых целых n-разрядных чисел x и y выполняется
равенство Тогда в качестве схемы Σ 3 n можно взять схему, изображенную на рисун-
Sn (x, y) = 2n − 1 − x + y. ке 9.4. Эта схема состоит из n независимо работающих одинаковых подсхем
Далее через s2 будем обозначать (n + 1)-й разряд числа Sn (x, y), а через
xri rzi yri
s1 — число, составленное из младших n разрядов Sn (x, y), т. е. Sn (x, y) =
s2 2n + s1 . Покажем, что
∨ ⊕
(s1 + s2 )s2 = |x − y|. Si+1 Si−1
Для этого рассмотрим два случая: s2 = 1 и s2 = 0. Если s2 = 1, то Sn (x, y) ≥
& ⊕
2n , и, следовательно, x < y. В этом случае s1 = −1 − x + y. Тогда

(s1 + s2 )s2 = s1 + s2 = s1 + 1 = −x + y = |x − y|.



Если s2 = 0, то Sn (x, y) < 2n , и, следовательно, x ≥ y. В этом случае
s1 = 2n − 1 − x + y. Тогда ci+1 ri
s2
(s1 + s2 ) = s1 = 2 − 1 − (2 − 1 − x + y) = |x − y|.
n n
Рис. 9.4

Таким образом, (s1 + s2 )s2 = |x − y| и число s2 определяет знак разности Si . Подсхема Si имеет три входа и два выхода (входы и выходы Si нуме-
x − y: разность отрицательна, если s2 = 1, и неотрицательна, если s2 = 0. руются слева направо). Входы Si подключены к i-м разрядам чисел x, z и
Следовательно, пара (s2 , s1 ) является разностью x и y. y. На первом выходе Si вычисляется (i + 1)-й разряд числа c, на втором
выходе — i-й разряд числа r. Очевидно, что схема на рисунке 9.4 состоит
из 5n элементов, а ее глубина равна трем. Лемма доказана.
9.3 Вычисление суммы нескольких целых чисел 3 n на которых вычисляются разряды числа c будем назы-
Далее выходы Σ
вать положительными, а выходы на которых вычисляются разряды числа
Ниже рассматриваются простые неглубокие схемы, вычисляющие сумму r — отрицательными.
большого числа целых положительных чисел, заданных своими двоичными
разложениями. Сначала докажем вспомогательное утверждение. Пусть x1 , x2 — n-разрядные двоичные числа. Пару (x1 , x2 ) назовем n-
разрядным двойным числом x, значением x назовем разность x1 − x2 . Чис-
Лемма 9.3. Пусть x, y, z — произвольные n-разрядные числа, c и r — ло x1 называется положительной компонентой x, а x2 — отрицательной
такие (n + 1)- и n-разрядное целые, что c − r = x + z − y и, более того, компонентой x. На множестве двойных чисел естественным образом опре-
деляются противоположное число и сумма двух чисел:
c1 = 0, 2ci+1 − ri = xi + zi − yi
−(x1 , x2 ) = (x2 , x1 ),
для каждого i ∈ {1, . . . , n}. Тогда существует вычисляющая c и r схема
3 n для сложности и глубины которой справедливы равенства
Σ (x1 , x2 ) + (y 1 , y 2 ) = (p, q),

3 n ) = 5n,
L(Σ 3 n ) = 3.
D(Σ где p и q такие, что p − q = (x1 + y 1 ) − (x2 + y 2 ). Заметим, что хотя сум-
ма двух двойных чисел определена не единственным образом (например
Доказательство. Так как c + y = x + z + r и c1 = 0 и 2ci+1 + yi = (0, 0) + (1, 0) = ((01), (00)) = ((10), (01))), значение суммы всегда определено
xi + zi + ri для каждого i ∈ {1, . . . , n}, то легко видеть (см. (9.1) и (9.2)), однозначно. Далее, говоря о сумме любого количества двойных чисел бу-
что дем иметь ввиду не конкретную пару (p, q), а целый класс чисел имеющих
ci+1 = xi zi ⊕ ri (xi ⊕ zi ), yi = xi ⊕ zi ⊕ ri . одно и тоже значение. В частности под вычислением суммы двойных чисел
128 Лекция 9. Реализация арифметических операций 9.3. Вычисление суммы нескольких целых чисел 129

понимается нахождение любого двойного числа значение которого равно xrj rzj yrj rwj
сумме значений суммируемых чисел.
Прежде чем рассматривать вопросы о сложности и глубине сложения ∨ ⊕
двойных чисел приведем одно полезное утверждение, являющееся триви-
альным следствием доказательства леммы 9.3. Sj+1 Sj−1
& ⊕
Лемма 9.4. Пусть x, y — произвольные n-разрядные числа, c и r —
такие (n + 1)- и n-разрядное целые, что c − r = x + y. Существует схема rj

Σ2,n вычисляющая c и r для сложности и глубины которой справедливы ⊕ ∨ ⊕
равенства r cj
L(Σ2,n ) = 2n, D(Σ2,n ) = 1.
cj+1
Лемму 9.4 можно рассматривать как утверждение о сложности и глу- & ⊕
бине сложения двух n-разрядных чисел, при условии, что результатом та-
кого сложения будет двойное число. ⊕
Лемма 9.5. Для любого n ≥ 1 cуществует схема Σ2,n , вычисляющая
сумму двух n-разрядных двойных чисел, для сложности и глубины которой qj+1 pj
справедливы равенства
Рис. 9.5
L(Σ2,n ) = 10n − 3, D(Σ2,n ) = 5. x, z, y, w, и к первому выходу подсхемы Sj−1 . Второй и третий выходы Sj
являются выходами схемы Σ2,n . На втором выходе Sj вычисляется (j + 1)-й
Доказательство. Пусть (x, y), (z, w) — произвольные n-разрядные разряд числа q, на третьем выходе — j-й разряд числа p. Первый выход
двойные числа. Положим (x, y) + (z, w) = (p, q). Пусть целые c и r вы- подсхемы Sn также является выходом Σ2,n и на нем вычисляется (n + 1)-й
числены схемой Σn из леммы 9.3 при условии, что на ее входы поданы разряд числа q.
числа x, z и y. Тогда x + z − y = c − r и При j ∈ {2, . . . , n} сложность каждой подсхемы Sj равна десяти, а глу-
(x, y) + (z, w) = (x + z − y) − w = бина — пяти. Так как на пятый вход подсхемы S1 подается тождественный
(9.5) нуль (c1 ≡ 0), то легко видеть, что в S1 три последних элемента можно
= (c − r) − w = −(r + w − c).
удалить. Поэтому, сложность схемы Σ2,n равна 10n − 3, а глубина такая же
Из последнего равенства видно, что сумму (x, y) + (z, w) можно вычислить как и у подсхем Sj , т. е. пять. Лемма доказана.
при помощи двух схем Σ 3 n+1 . Сначала схема Σ
3n и Σ 3 n применяется к числам Теперь, применяя лемму 9.5, нетрудно установить следующий результат
x, z и y. В результате получим два (n + 1)-разрядное число c и n-разрядное о глубине суммы большого числа двойных чисел.
число r. Затем к числам r, w и c применяется схема Σ 3 n+1 . Причем первые
3 n+1 подключаются к j-м разрядам чисел Теорема 9.3. Для любых N, n ≥ 1 существует схема ΣN,n , вычисля-
два входа j-й подсхемы схемы Σ
ющая сумму N n-разрядных двойных чисел, для сложности и глубины
r и w, а третий вход — к j-му разряду числа c. В соответствии с (9.5),
3 n+1 вычислит число r + w − c = −(p, q). Так как −(p, q) = (q, p), то которой при N → ∞ справедливы неравенства
схема Σ
очевидно, что сумма (x, y) + (z, w) вычислена: на отрицательных выходах L(ΣN,n ) ≤ 10N (n + 1)(1 + o(1)), D(ΣN,n ) ≤ 5log2 N .
3 n+1 вычисляются разряды числа p, на положительных — разряды числа
Σ
q. Схема Σ2,n построена. Доказательство. Пусть x1 , . . . , xN — произвольные n-разрядные
Из леммы 9.3 легко следует, что Σ2,n содержит не более 10n + 5 элемен- двойные числа. Схему ΣN,n построим в соответствии со следующим алго-
тов, а ее глубина не превосходит шести. В действительности рассматривае- ритмом. Числа x1 , . . . , xN разобьем на пары и для каждой пары вычислим
мая схема несколько проще. Заметим, что в схеме Σ 3 n+1 в каждой подсхеме ее сумму используя построенные в лемме 9.5 схемы Σ2,n . В результате полу-
Sj глубина третьего входа равна двум, а в подсхеме Sn+1 только один суще- чится примерно 12 N (n + 1)-разрядных двойных чисел. Новые числа снова
ственный вход. Поэтому схему Σ2,n можно представить в виде объединения разобьем на пары и для каждой пары вычислим ее сумму и т. д. Будем
n одинаковых подсхем Sj , каждая из которых содержит по десять элемен- выполнять итерации до тех пор, пока не останется всего одно число.
тов. Конструкция подсхемы Sj изображена на рисунке 9.5. Подсхема Sj име- Оценим глубину и сложность схемы ΣN,n . Легко видеть, что число ите-
ет пять входов и три выхода. Входы Sj подключены к j-м разрядам чисел раций не превосходит log2 N , а так как каждая итерация выполняется
130 Лекция 9. Реализация арифметических операций 9.5. Задачи 131

схемой глубины пять, то Откуда после несложных преобразований для произведения xy получаем
равенство
D(ΣN,n ) ≤ 5log2 N .
xy = x2 y 2 22n−2 + (x2 y 2 + x1 y 1 )2n−1 − (x2 − x1 )(y 2 − y1 )2n−1 + x1 y 1 . (9.6)
Теперь оценим сложность схемы ΣN,n . Положим R = log2 N . Через Ni
обозначим количество чисел, остающихся после i-й итерации. Легко видеть, Следовательно, умножение двух (2n − 2)-разрядных чисел сводится к двум
что умножениям (n − 1)-разрядных чисел, одному умножению n-разрядных чи-
1   1 i сел и нескольким сложениям.
Ni ≤ Ni−1 + 1 < N + 1.
rx2 x ry 2 ry 1
2 2
r1
На i-й итерации используется не более Ni схем Σ2,n+i−1 , поэтому r
r
r

R
R 1 i  r
L(ΣN,n ) ≤ 10(n + i − 1)Ni ≤ 10 (n + i − 1) N +1 ≤
2
i=1 i=1 x2 − x1 y2 − y1
R  i 1 i  x2 y 2 x1 y 1
1
≤ 10 N (n − 1) + N i + (n + i − 1) ≤
i=1
2 2
r r z2
≤ 10N (n − 1) + 20N + 5R(2n + R).

Следовательно, при N → ∞, для сложности схемы ΣN,n справедливо нера- z1


венство
L(ΣN,n ) ≤ 10N (n + 1)(1 + o(1)).
z3
Теорема доказана.

Рис. 9.6
9.4 Умножение
Рекурсивная конструкция схемы M2n−2 показана на рисунке 9.6, где
Из теорем 9.2 и 9.3 легко следует, что существует схема S, которая умно-
z 1 = x2 y 2 + x1 y 1 ,
жает два n-разрядных двоичных числа со сложностью O(n2 ) и глубиной
O(log2 n). Покажем, что существуют более простые схемы. Использованная z 2 = (x2 − x1 )(y 2 − y 1 ),
в следующей теореме конструкция принадлежит А. А. Карацубе, который z 3 = x2 y 2 22n−2 + z 1 2n−1 − z 2 2n−1 + x1 y 1 .
первым показал, что два n-разрядных числа можно умножить со сложно-
стью меньшей чем n2 . Нетрудно видеть, что для сложности и глубины схемы M2n−2 имеют место
рекуррентные соотношения
Теорема 9.4. Существует схема Mn , вычисляющая произведение двух
n-разрядных целых чисел, для сложности и глубины которой при n → ∞ L(M2n−2 ) ≤ 3L(Mn ) + O(2n ), D(M2n−2 ) ≤ D(Mn ) + O(1),
справедливы неравенства
из которых легко следует утверждение теоремы. Теорема доказана.
L(Mn ) = O(nlog2 3 ), D(Mn ) = O(log2 n).

Доказательство. Пусть n = 2k + 2, x и y — произвольные (2n − 2)- 9.5 Задачи


разрядные двойные числа. Представим их в виде 0j
9.1. Функции yj = i=1 xi , где j = 1, . . . , n, называются префиксными
x = x2 2 n−1
+ x1 , y = y2 2 n−1
+ y1 , суммами переменных x1 , . . . , xn . Показать, что при n = 2k существу-
ет вычисляющая префиксные суммы схема S такая, что L(S) ≤ 2n и
где каждое из чисел x1 , x2 , y 1 , y 2 состоит не более чем из n − 1 разрядов. D(S) = 2 log2 n.
Тогда 9.2. Показать, что при n = 2k существует вычисляющая префиксные
xy = x2 y 2 22n−2 + (x2 y 1 + x1 y 2 )2n−1 + x1 y 1 . суммы схема S такая, что L(S) = O(n log2 n) и D(S) = log2 n.
132 Лекция 9. Реализация арифметических операций

9.3. Показать, что при n → ∞ существует вычисляющая префиксные


суммы схема S такая, что L(S) = O(n) и D(S) = log2 n + O(1).
9.4. Показать, что при n → ∞ существует схема, вычисляющая сумму
двух двоичных n-разрядных чисел, сложность которой есть O(n), а
глубина асимптотически не больше 2 log2 n.
9.5. Построить схему, преобразующую три целых n-разрядных числа в Лекция 10
два числа с такой же суммой.
9.6. Построить схему, преобразующую четыре целых n-разрядных числа
в два числа с такой же суммой. Универсальные методы синтеза
9.7. Построить схему, вычисляющую сумму трех n-разрядных двойных
чисел, глубина которой равна семи.
9.8. Показать, что при n → ∞ существует схема, преобразующая n целых
схем
двоичных чисел в два числа с такой же суммой, глубина которой
асимптотически не больше 4 log2 n.
9.9. Показать, что при n → ∞ существует схема, преобразующая n целых
В середине сороковых годов двадцатого века появились различные задачи,
двоичных чисел в два числа с такой же суммой, глубина которой
связанные со сложностью булевых функций, при помощи которых описы-
асимптотически не больше 3, 71 log2 n.
валось функционирование узлов создаваемых в то время первых компьюте-
9.10. Показать, что при n → ∞ существует схема, вычисляющая сумму n ров. Одной из главных таких задач стала задача К. Шеннона о сложности
двоичных n-разрядных чисел, глубина которой асимптотически не произвольной n-местной булевой функции. Для вычисления булевых функ-
больше 6 log2 n. ций Шеннон использовал контактные схемы — математическую модель наи-
более адекватно описывающую элементную базу вычислительной техники
того времени. Он показал, что при n → ∞ сложность каждой n-местной
булевой функции есть O( 2n ) и при этом сложность почти всех таких функ-
n

ций по порядку величины не меньше чем 2n . Для доказательства верхней


n

оценки сложности произвольной функции им был создан универсальный


метод построения контактных схем, позволяющий единым для всех буле-
вых функций образом строить вычисляющие эти функции схемы. Для до-
казательства нижней оценки Шенноном совместно с Дж. Риорданом был
предложен мощностной метод основанный на простом наблюдении, что раз-
личные функции должны вычислятся разными схемами, и заключающийся
в сравнении числа различных схем определенной сложности и числа всех
n-местных булевых функций.
Предложенный Шенноном подход к изучению сложности булевых функ-
ций оказался очень плодотворным, был перенесен на другие модели вычис-
лений, в том числе и на схемы из функциональных элементов, и впослед-
ствии был развит О. Б. Лупановым, из результатов которого в частности
следует, что при n → ∞ сложность почти всех n-местных булевых функций
асимптотически равна 2n .
n

10.1 Метод Шеннона


Основная идея метода Шеннона состоит в предварительном вычислении
большого количества вспомогательных величин, каждая из которых много-
кратно используется для получения окончательного результата. В следую-

133
134 Лекция 10. Универсальные методы синтеза схем 10.2. Метод Лупанова 135

щей теореме этот метод применяется для вычисления произвольной булевой Доказательство. Утверждение леммы следует из того, что существует
ровно 22
n−k
функции. различных (n − k)-местных булевых функций и в силу перво-
го из неравенств (8.2) на стр. 104 сложность каждой из этих функций не
Теорема 10.1. Пусть n → ∞. Тогда для каждой булевой функции f ,
превосходит 3 · 2n−k . Лемма доказана.
зависящей от n переменных
Продолжим доказательство теоремы. Из конструкции схемы S и лемм 10.1
6 · 2n
L(f ) ≤ (1 + o(1)). и 10.2 легко следует неравенство
n 
L(S) ≤ 3 · 2k (1 + o(1)) + O 2n−k 22
n−k
Доказательство. Функцию f разложим по первым k переменным: . (10.3)
,
f (x1 , . . . , xn ) = f (σ1 , ..., σk , xk+1 , . . . , xn ) · xσ1 1 · · · xσk k . (10.1) Положим k = n − log2 (n − 3 log2 n) . Тогда n − k ≤ log2 (n − 3 log2 n). Под-
σ1 ...σk ставляя выбранное значение k в (10.3) видим, что
Опишем конструкцию схемы S, вычисляющей функцию f . Эта схема со- 2n  6 · 2n
3 · 2n+1
стоит из трех подсхем S1 –S3 , и ее конструкция основана на формуле (10.1). L(S) ≤ (1 + o(1)) + O n · 3 = (1 + o(1)).
Подсхема S1 вычисляет все элементарные конъюнкции первых k перемен- n n n
ных. Подсхема S2 вычисляет все булевы функции, зависящие от последних Теорема доказана.
n− k переменных. Подсхема S3 вычисляет функцию f по формуле (10.1) ис-
пользуя функции, вычисленные подсхемами S1 и S2 . Нетрудно видеть, что
подсхема S3 состоит из не более чем 2k дизъюнкторов и 2k конъюнкторов. 10.2 Метод Лупанова
Далее в двух леммах оценим сложности подсхем S1 и S2 . Сначала оценим
сложность множества Kk , состоящего из всех элементарных конъюнкций Пусть Hn,m (i) = {h} — множество всех таких n-местных булевых функ-
вида xσ1 1 & . . . &xσk k . ций, что h(α) = 0, если |α| ≤ m(i − 1) или |α| > mi. Нетрудно видеть,
что каждое множество Hn,m (i), где i = 1, . . . , 2n /m , состоит не более чем
Лемма 10.1. Существует схема Kk , вычисляющая все элементарные
из 2m различных функций, а вместе все множества Hn,m (i) содержат не
конъюнкции переменных x1 , . . . , xk и для сложности которой справедливо
более 2n+m+1 /m различных функций. Также нетрудно видеть, что любая
равенство  n-местная булева функция f может быть представлена в виде дизъюнкции
L(Kk ) = 2k + O k2k/2 .
2n /m
,
Доказательство. Положим m = k/2 , l = k/2. Опишем схему Kn , f (x1 , . . . , xn ) = fi (x1 , . . . , xn ) (10.4)
удовлетворяющие равенствам леммы определим. Эта схема состоит из трех i=1
подсхем A, B и C. Подсхема A вычисляет все элементарные конъюнкции пе-
ременных x1 , . . . , xm . Подсхема B вычисляет все элементарные конъюнкции функций из Hn,m (i), где fi ∈ Hn,m (i) и fi (α) = f (α) для каждого α такого,
переменных xm+1 , . . . , xm+l . Подсхема C состоит из 2m · 2l = 2k конъюнк- что m(i − 1) < |α| ≤ mi. Используем равенство (10.4) для доказательства
торов. Каждый из этих конъюнкторов умножает один выход подсхемы A теоремы Лупанова.
на один выход подсхемы B. Выходами схемы Kn являются все элементы
подсхемы C. Нетрудно видеть, что L(A) = O(m2m ) и L(B) = O(l2l ). Следо- Теорема 10.2. Пусть n → ∞. Тогда для каждой булевой функции f ,
вательно, зависящей от n переменных
L(Kn ) = L(A) + L(B) + L(C) ≤ O(k2k/2 ) + 2k . (10.2)   
2n log2 n
L(f ) ≤ 1+O .
Лемма доказана. n n
Теперь оценим сложность множества Un−k , состоящего из всех (n − k)-
местных булевых функций. Доказательство. Функцию f разложим по первым k переменным:
,
Лемма 10.2. Существует схема Un−k , вычисляющая все (n−k)-местные f (x1 , . . . , xn ) = f (σ1 , ..., σk , xk+1 , . . . , xn ) · xσ1 1 · · · xσk k =
булевы функции для сложности которой справедливо неравенство σ1 ...σk
, (10.5)
n−k 2n−k = fσ1 ,...,σk (xk+1 , . . . , xn ) · xσ1 1 · · · xσk k .
L(Un−k ) ≤ 3 · 2 2 .
σ1 ...σk
136 Лекция 10. Универсальные методы синтеза схем 10.3. Нижние мощностные оценки 137

Затем каждую функцию fσ1 ,...,σk (xk+1 , . . . , xn ) разложим в дизъюнкцию Таким образом,
 2n
2n−k /m
, L(S) ≤ 4 · 2k + 2n−k + O n 2k/2 + 2n−k + + 2n−k+m+1 . (10.8)
fσ1 ,...,σk (xk+1 , . . . , xn ) = fσ,i (xk+1 , . . . , xn ) (10.6) m
i=1
Положим k = n − 2 log2 n и m = n − 4 log2 n. Легко убедиться, что при
функций из Hn−k,m (i), где σ = (σ1 . . . σk ) и fσ,i ∈ Hn−k,m (i). Тогда  n  k и m и n → ∞ все слагаемые
выбранных значениях параметров в (10.8)
n
кроме предпоследнего есть O 2n2 . Следовательно, L(S) ≤ 2m + O 2n2 , и
n

, 2 ,/m
n−k
 после несложных преобразований имеем
f (x1 , . . . , xn ) = xσ1 1 · · · xσk k · fσ,i (xk+1 , . . . , xn ) . (10.7)   
2n log2 n
σ1 ...σk i=1 L(S) ≤ 1+O .
n n
Воспользуемся последним равенством для построения вычисляющей функ-
цию f схемы S. Эта схема состоит из пяти подсхем (соединение подсхем Теорема доказана.
изображено на рисунке 10.1) устроенных следующим образом. Теорема 10.2 легко обобщается на случай вычисления вектор-функций.
1. Подсхема S1 является экземпляром схемы Kk , построенной в лем- Соответствующий результат, также как и теорема 10.2 принадлежащий Лу-
ме 10.1, и вычисляет все элементарные конъ- панову, приведем без доказательства.
xr 1 x xrk+1 xrn
юнкции вида xσ1 1 · · · xσk k . Очевидно, что p p p p p rk ppppp
Теорема 10.3. Пусть n → ∞ и log2 m = o(2n ). Тогда для каждой n-
 местной булевой вектор-функции fm с m компонентами
S1 S2
L(S1 ) ≤ 2 + O k2
k k/2
.
ppppp ppppp m2n
2. Подсхема S2 также является экземпля- L(fm ) ≤ (1 + o(1)).
S3 n + log2 m
ром схемы Kn−k , построенной в лемме 10.1, и
вычисляет все элементарные конъюнкции ви- ppppp
σk+1
да xk+1 · · · xσnn . Очевидно, что 10.3 Нижние мощностные оценки
S4
 Развивая мощностной метод Шеннона–Риордана, Лупанов установил сле-
L(S2 ) ≤ 2n−k + O (n − k)2(n−k)/2 . ppppp
дующий результат.
S5
3. Подсхема S3 вычисляет все функции Теорема 10.4. Пусть Fn,m — такое множество n-местных булевых
 log2 |Fn,m | 
множеств Hn−k,m (i), используя элементарные вектор-функций с m компонентами, что n + m = o log log при
2 2 |Fn,m |
конъюнкции, вычисленные подсхемой S2 . Так Рис. 10.1 n → ∞. Тогда для любой постоянной ε > 0 доля функций f из Fn,m , для
как каждая функция из Hn−k,m (i) является которых
дизъюнкцией не более чем m элементарных конъюнкций степени n − k, то log2 |Fn,m |
очевидно, что сложность схемы S3 удовлетворяют неравенству L(f ) ≥ (1 − ε) ,
log2 log2 |Fn,m |
L(S3 ) ≤ m2n−k+m+1 /m = 2n−k+m+1 . стремится к единице при n → ∞.

4. Подсхема S4 вычисляет все функции fσ1 ,...,σk (xk+1 , . . . , xn ). Так как Доказательство. Пусть N (n, m, L) — число различных минимальных
для вычисления одной функции требуется не более 2n−k /m дизъюнкто- схем сложности L с n входами и m выходами.
ров, то Лемма 10.3. Существует такая постоянная c, что
2n
L(S4 ) ≤ 2k 2n−k /m ≤ + 2k .  L+n+m
m N (n, m, L) ≤ c(L + n) .
5. Подсхема S5 умножает функции, вычисленные подсхемой S3 , на эле-
ментарные конъюнкции, вычисленные подсхемой S1 , и вычисляет дизъюнк- Доказательство. Пусть схема Sσ состоит из L элементов, причем на
цию этих произведений. Легко видеть, что множестве ее вершин определена нумерация σ, в которой вершины перену-
мерованы числами от 1 до L+n так, что j-й вход имеет номер j для каждого
L(S5 ) = 2 · 2k − 1. j из {1, . . . , n}. Такую схему Sσ можно описать при помощи пары (Tσ , tσ ),
138 Лекция 10. Универсальные методы синтеза схем 10.3. Нижние мощностные оценки 139

где Tσ — таблица из L строк и трех столбцов, а tσ — набор длины m. В таб- или после логарифмирования
лице i-я строка соответствует (n + i)-й вершине схемы и в ее трех ячейках
находятся: символ базисной функции, реализуемой в этой вершине; номер log2 R ≤ (L + n + m) log2 (c(L + n)). (10.9)
первого предка (n + i)-й вершины; номер второго предка этой вершины.
Набор tσ состоит из номеров вершин, которые являются выходами схемы. Положим
(1 − 2ε) log2 |Fn,m |
Очевидно, что число различных пар (Tσ , tσ ), соответствующих схемам из L= , (10.10)
 L log2 log2 |Fn,m |
L элементов, не превосходит 16(L + n)2 (L + n)m .
Пусть теперь S — минимальная схема, Sσ1 и Sσ2 — два экземпляра схемы где ε — положительная постоянная. Тогда, подставляя выбранное значение
 log2 |Fn,m | 
S с различными нумерациями вершин, Tσ1 и Tσ2 — соответствующие этим L в (10.9) и учитывая, что n + m = o log log
2 2 |Fn,m |
, для любой постоянной
схемам таблицы, π — подстановка на множестве {n + 1, . . . , L + n}, преоб- ε > 0 при n → ∞ имеем
разующая нумерацию σ1 в σ2 . Нетрудно видеть, что если в таблице Tσ1 (1 − 2ε) log |F | 
2 n,m  (1 − 2ε) log2 |Fn,m | 
каждый элемент t из второго и третьего столбцов заменить на π(t) и затем log2 R ≤ + n + m log2 c +n ≤
переставить строки так, чтобы i-я строка превратилась в (π(i + n) − n)-ю, log2 log2 |Fn,m | log2 log2 |Fn,m |
то получится таблица Tσ2 . Поэтому для каждого j в j-й вершине схемы Sσ1 (1 − ε) log2 |Fn,m |  
≤ · log2 (1 − ε) log2 |Fn,m | < (1 − ε) log2 |Fn,m |.
и в π(j)-й вершине схемы Sσ2 вычисляется одна и та же функция. log2 log2 |Fn,m |
Покажем теперь, что таблицы Tσ1 и Tσ2 различны. Допустим, что это
не так, и пусть k — такой индекс, что π(k) = k. В этом случае из равенства Из последнего неравенства следует, что при помощи схем, сложность кото-
таблиц следует, что для каждого i, в том числе и для i = k, в i-х верши- рых не превосходит (10.10), можно вычислить не более |Fn,m |1−ε = o(|Fn,m |)
нах схем Sσ1 и Sσ2 вычисляются одинаковые функции. Следовательно, в различных вектор-функций. Теорема доказана.
k-й и π(k)-й вершинах схемы Sσ2 вычисляются одинаковые функции, что Применяя теорему 10.4 к множеству всех n-местных булевых функций
очевидно противоречит минимальности схемы S. получаем следующий результат.
Таким образом для числа N  (n, m, L) различных минимальных схем с
n входами и m выходами и состоящих ровно из L элементов справедливо Теорема 10.5. Для любой постоянной ε > 0 доля n-местных булевых
неравенство  функций f , для которых
 L
N  (n, m, L) ≤ 16(L + n)2 (L + n)m L!. 2n
L(f ) ≥ (1 − ε) ,
1 x
Так как (1 + x) ≤ 4 при x > 0 и k! ≥ то( 14 k)k , n


 L+m n n L стремится к единице при n → ∞.
N (n, m, L) ≤ 16(L + n) 4 1+ ≤
L Сравнивая утверждения теорем 10.2 и 10.5 нетрудно видеть, что при
 L+m n n  L+m+n
≤ 16(L + n) 4 4 ≤ 16(L + n) . n → ∞ сложность почти всех n-местных булевых функций асимптотиче-
ски равна 2n . Таким образом, метод Лупанова позволяет для почти всех
n

L 
Теперь, учитывая равенство N (n, m, L) = k=1 N (n, m, k), легко видеть, булевых функций строить асимптотически минимальные схемы.
что Применяя теорему 10.4 к множеству всех n-местных булевых вектор-

L
 
k+m+n L+n+m k функций с m компонентами получаем следующий результат.
N (n, m, L) ≤ 16(k + n) ≤ 16(L + n) ≤
k=1 k=0 Теорема 10.6. Для любой постоянной ε > 0 доля n-местных булевых
 L+n+m+1 вектор-функций fm , для которых
16(L + n)  L+n+m
≤ ≤ 32(L + n) .
16(L + n) − 1 m2n
L(fm ) ≥ (1 − ε) ,
n + log2 m
Лемма доказана.
Допустим, что R различных вектор-функций могут быть вычислены схе- стремится к единице при n → ∞.
мами сложности не более L. Так как для каждой функции найдется по
крайней мере одна минимальная схема и все эти схемы различны, то Сравнивая утверждения теорем 10.2 и 10.5 видим, что при n → ∞ и
 L+n+m log2 m = o(2n ) сложность почти всех n-местных булевых вектор-функций
m2n
R ≤ c(L + n) , асимптотически равна n+log m.2
140 Лекция 10. Универсальные методы синтеза схем 10.4. Частичные функции 141

N N 2
10.4 Частичные функции ·N 2−k
k
1 −k
= ≥ 1 + 2−k = 1 + 2−k ≥ 2N 2 .
1 − 2−k
Частичные булевы функции образуют важный класс функций, естествен-   k 2m
ным образом появляющихся в различных задачах. Следующая теорема Так как mk 2 < 2 , то логарифмируя крайние части последнего выклю-
установлена Л. А. Шоломовым в 1967 году на основе более ранних резуль- ченного неравенства заключаем, что N < 2m2k . Таким образом, из пред-
татов Э. И. Нечипорука. положения, что любое N -элементное подмножество множества {0, 1}m не
является доопределением множества A, следует неравенство N < 2m2k .
Теорема 10.7. Пусть n → ∞, D ⊆ {0, 1}n. Тогда для каждой частич-
ной булевой функции f , определенной на области D Поэтому при N больших или равных m2k+1 среди N -элементных подмно-
жеств множества {0, 1}m найдется хотя бы одно доопределение множества
|D| A. Лемма доказана.
L(f ) ≤ (1 + o(1)) + O(n). (10.11)
log2 |D|
Лемма 10.5. Пусть D ⊆ {0, 1}n, D состоит из N наборов. Если
Доказательство теоремы 10.7 проведем в три этапа. На первом этапе
log2 N ∼ n при n → ∞, то для любой частичной булевой функции
установим справедливость неравенства (10.11) для областей большой мощ-
f : D → {0, 1}
ности. На втором этапе оценим сложность вычисления линейных булевых
операторов. На третьем этапе используя линейные булевы операторы для N
вложения областей n-мерного пространства в пространство меньшей раз- L(f ) ≤ (1 + o(1)).
n
мерности сведем задачу вычисления произвольной частичной функции к
вычислению частичной функции, определенной на области большой мощ- Доказательство. Введем параметры R и k, значения которых опреде-
ности. лим позднее. Значения частичной n-местной булевой функции f запишем в
1. Набор α ∈ {0, 1}m назовем доопределением набора β ∈ {0, 1, ∗}m, ес- таблице Tf из 2k столбцов и 2n−k строк, поставив в соответствие i-му столб-
ли αi = βi для всех тех i, для которых βi ∈ {0, 1}. Множество B ⊆ {0, 1}m цу таблицы двоичный набор (σ1 , . . . , σk ), являющийся двоичным представ-
назовем доопределением множества A ⊆ {0, 1, ∗}m, если для каждого эле- лением числа i − 1, а j-й строке — набор (σk+1 , . . . , σn ), являющийся дво-
мента α из A в B найдется элемент β, являющийся доопределением α. ичным представлением числа j − 1. В таблице на пересечении i-го столбца
Справедливо следующее утверждение о мощности доопределения. и j-й строки поставим значение f (σ1 , . . . , σk , σk+1 , . . . , σn ). Каждую строку
Лемма 10.4. Пусть A = {α} — множество наборов из {0, 1, ∗}m, каж- таблицы представим в виде следующих друг за другом элементарных на-
дый из которых содержит ровно k булевых компонент. Тогда существует боров α, для каждый из которых, кроме быть может последнего, содержит
доопределение множества A, состоящее не более чем из m2k+1 наборов. R булевых компонент. Множество таких наборов разобьем на классы, по-
местив в класс Pij наборы, начинающиеся в i-й и заканчивающиеся в j-й
Доказательство. Допустим, что любое N -элементное подмножество позициях. Нетрудно видеть, что число различных классов не превосходит
множества {0, 1}m не является доопределением множества A. Тогда для величины 22k−1 .
каждого такого подмножества можно указать хотя бы один набор из A, Из леммы 10.5 следует, что для множества элементарных наборов клас-
для которого в этом подмножестве нет доопределения. Поэтому число пар са Pij существует множество их доопределений, которое состоит не более
(α, B), где α ∈ A, а B — N -элементное подмножество 2m  множества {0, 1} ,
m
чем из 2k 2R+1 наборов длины 2k , в каждом из которых первые i − 1 и по-
таких,
  k что в B нет допределения α, не меньше чем N . Так как A состоит следние 2k − j компонент равны нулю. Следовательно, для множества всех
из m 2 элементов, то в A найдется такой набор α, что по крайней ме- элементарных наборов существует множество их доопределений H, которое
2km m k
состоит не более чем из 23k 2R наборов длины 2k .
k 2 N -элементных подмножеств множества {0, 1} не содержат
m
ре N
доопределение α. С другой стороны, легко видеть, что для любого набо- Преобразуем таблицу Tf , заменив в ней каждый элементарный набор
 m m−k  каким-либо его доопределением из H. Нетрудно видеть, что преобразован-
ра из A ровно 2 −2 N -элементных подмножеств множества {0, 1}m не
N ная таблица будет таблицей значений некоторой n-местной булевой функ-
содержат его доопределение. Поэтому должно выполняться неравенство
 m    m  ции h, являющейся доопределением функции f .
2 m k 2 − 2m−k
mНомером двоичного набора σ = (σ1 , . . . , σm ) назовем величину |σ| = 1 +
2 ≤ . (10.12)
N k N i=1 σi 2
i−1
. Пусть γ = (γ1 , . . . , γ2k ) ∈ H. Введем множество G, состоящее
из функций
Преобразуя (10.12) видим, что
  N ,
m k 2m (2m − 1) · · · (2m − N + 1) 2m gγ (x1 , . . . , xk ) = xσ1 1 · . . . · xσk k · γ |σ| ,
2 ≥ m > m =
k (2 − 2m−k ) · · · (2m − 2m−k − N + 1) 2 − 2m−k σ=(σ1 ,...,σk )
142 Лекция 10. Универсальные методы синтеза схем 10.4. Частичные функции 143

вектора значений которых, как нетрудно видеть, являются элементами мно- 2. Далее при вычислении частичных функций, определенных на обла-
жества H. Очевидно, что |G| ≤ 23k 2R и функция h может быть выражена стях малой мощности, потребуется вычислять линейные булевы операторы.
через функции системы G следующим образом: Поэтому сначала докажем вспомогательные утверждения о сложности та-
, ,  ких операторов.
σk+1
h(x1 , . . . , xn ) = g(x1 , . . . , xk ) xk+1 · . . . · xσnn . (10.13)
σ=(σk+1 ,...,σn ) g∈G Лемма 10.6. Пусть m ≤ log2 n − 2 log2 log2 n. Тогда при n → ∞ произ-
вольная система F (x1 , . . . , xn ) состоящая из m линейных функций может
Оценим число функций g в (10.13). Прежде всего заметим, что число функ- быть вычислена такой схемой S, что
ций, соответствующих наборам α содержащим менее R булевых компонент,  
не превосходит числа строк таблицы, т. е. не больше чем 2n−k . Число осталь- n
L(S) = n + O .
ных функций очевидно не превосходит N/R. Поэтому общее число элемен- log2 n
тарных наборов в Tf , а, следовательно, и функций g в (10.13) не превосходит
 Доказательство. Пусть F — матрица системы F . Если система F сим-
N R + 2n−k . (10.14) метрична относительно переменных xi1 , . . . , xik , то столбцы матрицы F с
номерами i1 , . . . , ik будут одинаковыми. Параметры леммы m и n таковы
Опишем схему S, вычисляющую функцию f и удовлетворяющую тре- (2m ! n), что число различных видов столбцов высоты m много меньше
бованиям леммы. Эта схема состоит из трех подсхем S1 –S3 , и ее конструк- числа столбцов F. Поэтому в матрице F будет много одинаковых столбцов,
ция основана на формуле (10.13). Подсхема S1 вычисляет все элементарные и, следовательно, система F симметрична относительно некоторых подмно-
конъюнкции первых k переменных и, используя эти конъюнкции, все функ- жеств своих переменных. Используем это свойство рассматриваемой систе-
ции из G. Учитывая, что |G| ≤ 23k 2R и каждая функция из G является мы. Для каждого j ∈ {1, 2, . . . , 2m − 1} сформируем множество переменных
дизъюнкцией не более чем 2k элементарных конъюнкций, имеем Mj такое, что переменная xi принадлежит Mj тогда и только тогда, когда
i-й столбец матрицы F совпадает с двоичным представлением числа j. Да-
L(S1 ) ≤ 25k 2R . (10.15) лее для каждого непустого множества Mj определим сумму входящих в это
Подсхема S2 вычисляет все элементарные конъюнкции последних n − k пе- множество переменных:
.
ременных. Очевидно, что yj = xi . (10.20)
xi ∈Mj
L(S2 ) ≤ 2n−k (1 + o(1)). (10.16)
Легко видеть, что для k-й функции fk , 1 ≤ k ≤ m, системы F справедливо
Подсхема S3 подключена к выходам подсхем S1 и S2 и вычисляет полностью равенство
.
определенную функцию h(x1 , . . . , xn ) в соответствии с равенством (10.13). fk = yj , (10.21)
Из (10.14) следует, что
 в котором суммирование производится по всем тем целым j, 1 ≤ j ≤ 2m − 1,
L(S3 ) ≤ 2n−k+1 + N R. (10.17) в двоичном представлении которых коэффициент при (m − k)-й степени
двойки равен единице.
Суммируя неравенства (10.15)–(10.17), видим, что Каждую функцию yj вычислим отдельной схемой Sj . Так как каждая
 переменная xi входит не более чем в одну сумму yj , то очевидно, что
L(S) ≤ N R + 25k 2R + 2n−k (1 + o(1)). (10.18)
2
m
−1
Положим L(Sj ) < n. (10.22)
j=1
k = n − log2 N + 2 log2 n , R = log2 N − 5k − 2 log2 n. (10.19)
Каждую функцию fk вычислим отдельной схемой Sk . Схема Sk вычисляет
Тогда, подставляя равенства (10.19) в (10.18) и учитывая условие N ∼ n,
fk в соответствии с формулой (10.21) и ее входы подключены к выходам
имеем
соответствующих схем Sj . Из (10.21) немедленно следует, что
N
L(S) ≤ (1 + o(1)).
n
m
n
L(Sk ) ≤ m · 2m ≤ . (10.23)
Лемма доказана. log2 n
k=1
144 Лекция 10. Универсальные методы синтеза схем 10.4. Частичные функции 145

Таким образом, из (10.22) и (10.23) следует, что Лемма 10.8. Пусть A, B ⊆ {0, 1}n, A ∩ B = ∅, m — целое. Тогда суще-
n ствует линейный оператор L : {0, 1}n → {0, 1}m такой, что
L(S) ≤ n + .
log2 n |{(x, y) | x ∈ A, y ∈ B, L(x) = L(y)}| ≤ 2−m |A||B|.
Лемма доказана. Доказательство. Обозначим через F (n, m) множество всех линейных
Использованный в доказательстве предыдущей леммы метод применим операторов L : {0, 1}n → {0, 1}m. Очевидно, что |F (n, m)| = 2nm . Так как
только к очень широким системам. Если двоичный логарифм числа пере- для любых двух различных наборов x и y из {0, 1}n имеется ровно 2n−1
менных системы больше числа ее функций, то в матрице такой системы n-местных линейных функций f с нулевым свободным членом, значения
может не найтись одинаковых столбцов, и в этом случае напрямую вос- которых на этих наборах совпадают, т. е. f (x) = f (y), то поэтому в F (n, m)
пользоваться разработанной выше техникой построения схем не удастся. имеется 2nm−m различных операторов L таких, что L(x) = L(y). Следова-
Расширить границы применимости этой техники можно при помощи очень тельно, величина
простого приема — разделения системы на несколько подсистем, размеры
каждой из которых удовлетворяют условиям леммы 10.6. Именно такой 2−nm 2nm−m = 2−m |A||B|
способ использован в доказательстве следующей леммы. x∈A,y∈B

Лемма 10.7. При n → ∞ произвольная система F (x1 , . . . , xn ) состо- является средним значением для числа таких пар (x, y), на которых зна-
ящая из m линейных функций может быть вычислена такой схемой S, чения оператора из F (n, m) одинаковы. Поэтому в F (n, m) найдется опера-
что тор L, для которого равенство L(x) = L(y) выполняется не более чем на
   2−m |A||B| парах (x, y), x ∈ A, y ∈ B. Лемма доказана.
n(m + log2 n) log2 log2 n
L(S) ≤ 1+O . Лемма 10.9. Пусть A, B ⊆ {0, 1}n, A ∩ B = ∅, m = log2 |B| + k , где
log2 n log2 n
k ≥ 0. Тогда существует линейный оператор L : {0, 1}n → {0, 1}m такой,
Доказательство. Положим q = log2 n − 2 log2 log2 n, k = m/q . Без что
ограничения общности полагаем, что m ≥ q, так как при m < q настоящая 1
|{(x, y) | x ∈ A, y ∈ B, L(x) = L(y)}| ≤ k |A|.
лемма следует из леммы 10.6. Из системы F сформируем k новых систем 2
F1 , . . . , Fk так, что Доказательство. Из леммы 10.8 следует, что найдется такой линейный
(n, m)-оператор L, для которого равенство L(x) = L(y) выполняется не
Fj = {f(j−1)q+1 , . . . , fjq } при j = 1, 2, . . . , k − 1, более чем на 2−m |A||B| парах (x, y), где x ∈ A, y ∈ B. Так как 2m ≥ 2k |B|,
Fk = {f(k−1)q+1 , . . . , fm }. то 2−m |A||B| ≤ 21k |A|. Лемма доказана.
Каждую из систем Fi вычислим собственной схемой Si , сложность которой Лемма 10.10. Пусть D ⊆ {0, 1}n состоит из N наборов, log2 N ≥ 13 n,
в силу леммы 10.6 удовлетворяет неравенству функция f определена на D. Тогда
n N
L(Si ) ≤ n + . L(f (x1 , . . . , xn )) ≤ (1 + o(1)).
log2 n log2 N
Очевидно, что схема S = ∪ki=1 Si вычисляет систему F = ∪ki=1 Fi и для ее Доказательство. Положим D0 = {x ∈ D | f (x) = 0}, D1 = {x ∈
сложности справедливы неравенства D | f (x) = 1}, k = 3 log2 n. Без ограничения общности будем полагать, что
 4 5 |D0 | ≥ |D1 |. К областям D0 и D1 применим лемму 10.9, полагая, что, A = D1

k
n m
L(S) = L(Si ) ≤ n+ ≤ и B = D0 . В результате найдется такой линейный оператор L : {0, 1}n →
i=1
log 2 n log 2 n − 2 log 2 log 2 n {0, 1}m, что m = log2 |D0 | + 3 log2 n и множество
  

n(m + log2 n)
1+O
log2 log2 n
. D = {(x, y) | x ∈ D0 , y ∈ D1 , L(x) = L(y)}
log2 n log2 n
состоит не более чем из N/n3 наборов. Далее введем определенную на об-
Лемма доказана. ласти L(D) частичную m-местную булеву функцию
3. Докажем несколько утверждений об инъективных и "почти" инъек- #
тивных линейных булевых операторах. Затем используя эти утверждения 0, если ∃ x ∈ D0 такой, что y = L(x),
g(y) =
установим окончательный результат о сложности частичных функций. 1, в противном случае,
146 Лекция 10. Универсальные методы синтеза схем 10.5. Задачи 147

и определенную на области D частичную функцию h(x) = f (x) ⊕ g(L(x)). Теорема 10.8. Пусть n → ∞, D ⊆ {0, 1}n . Для любой постоянной ε > 0
Нетрудно видеть, что h(x) равна единице не более чем на N/n3 наборах из доля n-местных булевых функций f : D → {0, 1}, для которых
D. Так как f (x) = h(x) ⊕ g(L(x)), то
|D|
L(f ) ≤ L(g) + L(h) + L(L) + 1. L(f ) ≥ (1 − ε) ,
log2 |D|
Нетрудно видеть, что log2 N ∼ m, и поэтому для оценки сложности функ-
стремится к единице при n → ∞.
ции g можно воспользоваться леммой 10.5. Из этой леммы следует, что
N Сравнивая утверждения теорем 10.7 и 10.8 нетрудно видеть, что при n →
L(g) ≤ (1 + o(1)). ∞ для любой области D ⊆ {0, 1}n такой, что |D| # n log2 n сложность почти
log2 N
всех частичных n-местных булевых функций определенных на области D
Для вычисления функции h воспользуемся ее совершенной дизъюнктивной асимптотически равна log|D||D| .
2
формой, полагая, что вне области D эта функция равна нулю. Так как h
равна единице не более чем на N/n3 наборах, то
Nn N  10.5 Задачи
L(h) ≤ 3 = o .
n n
10.1. Найти сложность и глубину системы всех одночленов переменных
Очевидно, что сложность оператора L не превосходит n2 . Поэтому из усло- x1 , . . . , xn . Показать, что для этой системы существует схема, явля-
вий леммы следует, что L(L) = o(g). Лемма доказана. ющаяся одновременно минимальной по сложности и глубине.
Доказательство теоремы 10.7. Если log2 N ≥ 13 N , то утверждение 10.2. Пусть B ⊆ P2 (2) и [B] = P2 . Показать, что при n → ∞ для каждой
функции f из P2 (n) справедливо неравенство LB (f )  2n .
n
теоремы следует из леммы 10.10. Поэтому далее полагаем, что log2 N ≤ 13 N .
Положим D0 = {x ∈ D | f (x) = 0}, D1 = {x ∈ D | f (x) = 1}, k = 10.3. Пусть V — подпространство в {0, 1}n размерности k, FV — подмно-
log2 |D1 |+1. К областям D0 и D1 применим лемму 10.9, полагая, что, A = D1 жество P2 (n), состоящее из всех функций, постоянных на смежных
и B = D0 . В результате найдется такой линейный оператор L : {0, 1}n → классах пространства {0, 1}n по V. Оценить max L(f ), где максимум
{0, 1}m, что m = log2 |D0 | + log2 |D1 | + 1 и при этом нет таких элементов берется по всем функциям из FV при условии, что n − k → ∞.
x ∈ D0 и y ∈ D1 , что L(x) = L(y). Далее введем определенную на области 10.4. Пусть V подпространство в {0, 1}n размерности k, FV — подмноже-
L(D) частичную m-местную булеву функцию ство P2 (n), состоящее из всех функций, равных единице на наборах
# не принадлежащих V . Оценить max L(f ), где максимум берется по
0, если ∃ x ∈ D0 такой, что y = L(x), всем функциям из FV при условии, что k → ∞.
g(y) =
n
1, если ∃ x ∈ D1 такой, что y = L(x). 10.5. Положим |α| = i−1
для каждого α из {0, 1}n. Пусть A
i=1 αi 2
состоит из всех таких булевых функций f , что f (x) = f (y), если
Нетрудно видеть, что f (x) = g(L(y)). Так как m ≤ 2 log2 N , то можно
|x| = |y| (mod n2 ). Оценить maxf ∈A L(f ).
воспользоваться леммой 10.10. В силу этой леммы
10.6. Оценить max L(f ), где максимум берется по всем булевым операто-.
N рам f : {0, 1}n → {0, 1}n таким, что f (x) = 1 для всех x ∈ {0, 1}n
L(g) ≤ (1 + o(1)). (10.24)
log2 N 10.7. Показать, что для каждого линейного булева (n, n)-оператора f при
2
n2
Наконец заметим, что в силу леммы 10.7 n → ∞: a) L(f )  logn n ; b) L(f )  2 log n.
2 2
  10.8. Показать, что для каждой квадратичной булевой функции f при
n(log2 N + log2 n)
L(L) = O . (10.25) 2
n → ∞: a) L(f )  logn n ; n2
b) L(f )  2 log
log2 n 2 n. 2

10.9. Пусть Pn,m = {f ∈ P2 (n), deg f ≤ m}. Показать, что при любой по-
Нетрудно видеть, что при n → ∞ для любого N сумма правых частей
стоянной m и n → ∞ для почти всех функций f из Pn,m справедливо
неравенств (10.24) и (10.25) не превосходит log|D||D| (1 + o(1)) + O(n). Теорема nm
2 равенство L(f ) = Θ( log n ).
доказана. 2

Применяя теорему 10.4 к множеству всех частичных n-местных булевых 10.10. Пусть Nn,m = {f ∈ P2 (n), ||f || ≤ nm }. Показать, что при любой по-
функций определенных на одной и той же области получаем следующую стоянной m и n → ∞ для почти всех функций f из Nn,m справедливо
nm+1
теорему. равенство L(f ) = Θ( log n ).
2
148 Лекция 10. Универсальные методы синтеза схем

10.11. Пусть A — множество всех булевых функций f (x1 , . . . , xn , y1 , . . . , yn )


симметричных относительно переменных xi и относительно перемен-
ных yj . Оценить maxf ∈A L(f ).
10.12. Пусть A — множество всех булевых функций f (x1 , . . . , xn , y1 , . . . , yn )
симметричных относительно всех пар переменных xi , yi . Оценить
maxf ∈A L(f ). Лекция 11
10.13. Пусть A — множество, состоящее из всех булевых функций,
удо-
влетворяющих равенству f (x1 , . . . , x2n−1 ) = 0, если 2n−1 i=1 xi ≥ n.
Найти maxf ∈A L(f ). Алфавитное кодирование
10.14. Пусть A — множество, состоящее из всех булевых функций удо-
влетворяющих, равенству f (x1 , . . . , xn ) = f (x1 , . . . , xn ). Найти
maxf ∈A L(f ).
10.15. Пусть A — множество всех булевых функций f (x1 , . . . , x2n ) симмет- Множества A = {a1 , . . . , an } и B = {b1 , . . . , bm } будем называть алфави-
ричных относительно первых n переменных. Оценить maxf ∈A L(f ). тами, элементы этих множеств — буквами, а элементы из A∗ и B ∗ — сло-
10.16. Показать, что L(f ) = O(n) для любой симметрической функции вами над алфавитами A и B соответственно. Отображение ϕ : A → B ∗
f (x1 , . . . , xn ). будем называть побуквенным кодированием алфавита A словами над алфа-
10.17. Доказать теорему 10.3. витом B. Отображение ϕ естественным образом продолжается до отобра-
жения ϕ∗ : A∗ → B ∗ так, что ϕ∗ (ai1 . . . aik ) = ϕ(ai1 ) . . . ϕ(aik ). Множество
V = {v1 , . . . , vn }, где vi = ϕ(ai ), будем называть m-ичным кодом алфави-
та A порожденным отображением ϕ. Будем полагать, что каждой букве ai
приписана вероятность p(ai ) = pi так, что p1 + · · · + pn = 1, т. е. на алфавите
A задано распределение вероятностей P = {p1 , . . . , pn }. Стоимостью кода
V = {v1 , . . . , vn } при распределении вероятностей P = {p1 , . . . , pn } назовем
величину

n
C(V, P ) = pi l(vi ),
i=1

где l(vi ) — число букв в слове vi . Стоимость C(V, P ) можно рассматривать


как среднее число символов алфавита B, приходящихся в коде V на одну
букву алфавита A. Ниже рассматриваются вопросы построения кодов име-
ющих при данном распределении вероятностей минимальную стоимость.
Далее везде будем рассматривать только двоичные коды, т. е. в качестве
алфавита B будем использовать двоичный алфавит {0, 1}.

11.1 Разделимые и префиксные коды


Порожденный отображением ϕ код V назовем разделимым1), если отобра-
жение ϕ∗ инъективно. Для каждого разделимого кода V определено об-
ратное к ϕ∗ отображение (ϕ∗ )−1 : ϕ∗ (A∗ ) → A, которое будем называть
декодированием кода V .
В следующей теореме устанавливается необходимое условие разделимо-
сти кода. Неравенство (11.1) называется неравенством Крафта–Макмиллана.

1) Разделимые коды также называются однозначно декодируемыми.

149
150 Лекция 11. Алфавитное кодирование 11.1. Разделимые и префиксные коды 151

Теорема 11.1. Пусть V = {v1 , . . . , vn }, где n ≥ 2, — разделимый код. ребро направленное вверх налево соответствует нулю, а ребро, направлен-
Тогда ное вверх направо соответствует единице. На рис. 11.1 изображены два де-
n
рева представляющие префиксные коды {00, 01, 110, 111} и {0, 10, 110, 111}.
2−l(vi ) ≤ 1. (11.1)
Префиксный код называется полным, если в соответствующем ему дереве
i=1
нет отличных от корня внутренних вершин степени два. В правом дереве на
Доказательство. Обозначим через D множество двоичных наборов, рис. 11.1 таких вершин нет, поэтому код {0, 10, 110, 111} полный в отличие
каждый из которых является последовательностью слов из V . Пусть Dk от кода {00, 01, 110, 111}.
равно числу двоичных наборов длины k в D, а w — весовая функция на D, Представляя префиксные коды при помощи деревьев нетрудно убедить-
равная длине набора. Нетрудно видеть, что ся в том, что любой префиксный код разделим. Более того, используя пред-


k ставляющее префиксный код V = {v1 , . . . , vn } дерево TV , можно быстро и
1
w
FD (x) = Dk xk = xl(vi ) =
. легко выполнить декодирование, т. е. по последовательности vi1 . . . vik опре-
k=0 k=0 vi ∈V 1− vi ∈V xl(vi ) делить последовательность ai1 . . . aik . Для декодирования последователь-
ности vi1 . . . vik достаточно посмотреть на эту последовательность как на
Так как код V разделимый, то любой двоичный набор разлагается в после- последовательность описаний начинающихся в корне дерева TV путей.
довательность слов из V не более чем одним способом. Поэтому Dk ≤ 2k
для любого k, и, следовательно, для любой постоянной ε из полуинтервала Теорема 11.2. Пусть для целых чисел l1 ≤ · · · ≤ ln справедливо нера-
(0, 12 ] и для любого x ∈ [0, 12 − ε] имеет место неравенство венство
n

1 1 2−li ≤ 1.

≤ , i=1
1− vi ∈V xl(vi ) 1 − 2x
Тогда найдется такой префиксный код V = {v1 , . . . , vn }, что l(vi ) = li для
1
где 1−2x — производящая функция множества всех двоичных наборов ко- каждого i ∈ {1, . . . , n}.
нечной длины. Последнее неравенство легко преобразуется в неравенство
m−1
Доказательство. Положим q1 = 0 и qm = i=1 2−li для m = 2, . . . , n.
Из теоремы 11.1 следует, что каждое из чисел qi меньше единицы. Из пер-
xl(vi ) ≤ 2x,
вых li знаков после запятой числа qi составим слово vi . Пусть j > i. Тогда
vi ∈V

j−1
которое, в свою очередь, при x = 12 − ε превращается в неравенство qj − qi = 2−lm ≥ 2−li .
m=i
2−l(vi ) (1 − 2ε)l(vi ) ≤ 1 − 2ε. (11.2)
vi ∈V
Следовательно числа qj и qi отличаются по крайней мере в одном из первых
li знаков после запятой, и так как каждое из слов vi и vj состоит не менее
Переходя в (11.2) к пределу при ε → 0, получаем неравенство теоремы. чем из li знаков, то ни одно из этих слов не является началом другого.
Теорема доказана. Таким образом V = {v1 , . . . , vn } — префиксный код, в котором l(vi ) = li
Код V = {v1 , . . . , vn } называется префиксным, если ни одно его слово не для каждого i ∈ {1, . . . , n}. Теорема доказана.
является началом другого. Префиксные коды удобно представлять при по- Теорема 11.2 показывает, что неравенство Крафта–Макмиллана явля-
ется не только необходимым, но и достаточным условием существования
110 111 110 111 разделимого кода с заданными длинами слов.
00 01 10 Из теорем 11.2 и 11.1 следует простая, но важная теорема, которую при-
ведем без доказательства.
0
Теорема 11.3. Для любого разделимого кода W = {w1 , . . . , wn } найдет-
ся такой префиксный код V = {v1 , . . . , vn }, что l(wi ) = l(vi ) для каждого
i ∈ {1, . . . , n}.
Рис. 11.1
Теорема 11.3 показывает, что при изучении стоимости разделимых кодов
мощи плоских корневых бинарных деревьев, в которых листья соответству- можно рассматривать только префиксные коды, которые в отличие от про-
ют кодовым словам, а пути от корня к листьям задают эти слова. При этом извольных разделимых кодов имеют простую процедуру декодирования.
152 Лекция 11. Алфавитное кодирование 11.3. Стоимость кодирования 153

11.2 Оптимальные коды Формулировка теоремы 11.4 фактически заключает в себе простой ин-
дуктивный алгоритм построения оптимального префиксного кода для про-
Код V = {v1 , . . . , vn } называется оптимальным для распределения вероят- извольного распределения вероятностей Pn = {p1 , . . . , pn }. Алгоритм состо-
ностей P = {p1 , . . . , pn }, если для данного P его стоимость C(V, P ) мини- ит в следующем. Сначала исходя из распределения Pn строится последо-
мальна среди всех n-элементных кодов. Существование оптимального кода вательность распределений Pn , Pn−1 , . . . , P2 , в которой распределение Pi−1
легко следует из теоремы 11.3 и того факта, что при поиске оптимального получается из Pi заменой двух самых маленьких вероятностей на одну, рав-
кода можно ограничиться только полными префиксными кодами, макси- ную их сумме. Префиксный код для распределения P2 строится тривиаль-
мальная длина слов в которых не превосходит n − 1. Далее через C(P ) но — таким кодом всегда будет код V2 = {0, 1}. Затем исходя из кода V2
будем обозначать стоимость оптимального кода для распределения P . при помощи теоремы 11.4 строится последовательность оптимальных кодов
Легко видеть, что в оптимальном коде l(vi ) ≥ l(vj ) если p(ai ) < p(aj ). V2 , V3 , . . . , Vn . Построенный при помощи этого алгоритма код Vn называется
Также заметим, что в оптимальном префиксном коде всегда найдется по
0,07 0,08 1100 1101
крайней мере два слова максимальной длины, причем эти слова будут от-
личаться только в последнем (правом) символе. Допустим, что это не так,
и найдется такой код V = {v1 , . . . , vn }, что слово v, отличающееся от мак- 0,12 0,13 0,15 0,20 100 101 111
симально длинного слова vn только последним символом, не принадлежит
V . Тогда, удалив последний символ в слове vn , получим новый префиксный 0,25 0,35
код V  = {v1 , . . . , vn−1 , vn }, стоимость которого меньше стоимости кода V .
Отмеченные свойства оптимальных префиксных кодов позволяют дока-
0,40 0,60 0
зать следующую теорему.
Теорема 11.4. Пусть V = {v1 , . . . , vn } — оптимальный префиксный 1,00
код для распределения P = {p1 , . . . , pn }, где p1 ≥ · · · ≥ pn , и пусть q0 , q1 —
такие положительные, что q0 + q1 = pi для некоторого i ∈ {1, . . . , n} и Рис. 11.2
pn ≥ q0 , q1 . Тогда префиксный код
кодом Хаффмана.
V  = {v1 , . . . , vi−1 , vi+1 , . . . , vn , vi 0, vi 1} Процесс построения кода Хаффмана для распределения вероятностей
{0, 07; 0, 08; 0, 12; 0, 13; 0, 20; 0, 40} представлен на рис. 11.2.
будет оптимальным для распределения

P  = {p1 , . . . , pi−1 , pi+1 , . . . , pn , q0 , q1 }. 11.3 Стоимость кодирования



Доказательство. Допустим, что код V не является оптимальным для Метод Хаффмана позволяет строить оптимальные коды для любого рас-
распределения P  . Тогда существует код W  = {w1 , . . . , wi−1 , wi+1 , . . . , wn+2 } пределения вероятностей, но к сожалению не дает явной информации о
такой, что l(w1 ) ≤ · · · ≤ l(wn+1 ) = l(wn+2 ) и C(W  , P  ) < C(V  , P  ). Учиты- стоимости построенного кода. Поэтому для оценки величины C(P ) прихо-
вая отмеченное выше свойство оптимальных префиксных кодов, без огра- дится привлекать дополнительные соображения.
ничения общности будем считать, что в коде W  вероятностям q0 и q1 соот- Пусть P = {p1 , . . . , pn } — распределение вероятностей. Функция2)
ветствуют слова wn+1 и wn+2 , и эти слова отличаются только в последнем
символе, т. е. wn+1 = w0 и wn+2 = w1. Пусть W = {w1 , . . . , wi , . . . , wn }, где
n
H(p1 , . . . , pn ) = − pi log2 pi (11.3)
wi = w. Тогда i=1

C(V  , P  ) − C(V, P ) = l(vi 0)q0 + l(vi 1)q1 − l(vi )pi = pi , называется энтропией распределения P . Нетрудно видеть, что использо-
C(W  , P  ) − C(W, P ) = l(w0)q0 + l(w1)q1 − l(w)pi = pi . ванная в лекции 3 для оценки биномиальных коэффициентов функция
H(x) = −x log2 x − (1 − x) log2 (1 − x) является частным случаем функ-
Следовательно, в силу сделанного предположения, ции (11.3). В следующей теореме, доказанной Шенноном в середине 40-х
годов 20 века, энтропия используется для оценки стоимости алфавитного
C(V, P ) − C(W, P ) = C(V  , P  ) − C(W  , P  ) > 0. кодирования.
Пришли к противоречию с оптимальностью кода V . Теорема доказана. 2) Здесь и далее полагаем, что функция x log2 x равна нулю при x = 0.
154 Лекция 11. Алфавитное кодирование 11.4. Блочное кодирование 155

Теорема 11.5. Для любого распределения вероятностей {p1 , . . . , pn } Нижняя оценка доказана.
Верхняя оценка. Пусть P = {p1 , . . . , pn } — произвольное распределе-
H(p1 , . . . , pn ) ≤ C(p1 , . . . , pn ) ≤ H(p1 , . . . , pn ) + 1. (11.4) ние вероятностей, в котором вероятности pi упорядочены по убыванию. Без
ограничения общности будем считать, что все вероятности положительны.
Доказательство. Нижняя оценка. Покажем, что левое неравенство Так как
(11.4) справедливо для кода Хаффмана. Сделаем это индукцией по n. В n
n

основание индукции положим случай n = 2. Прежде всего заметим, что 2−(−log2 pi ) ≤ pi = 1,


функция −x log2 x выпукла вверх при x ∈ (0, 1). Поэтому i=1 i=1

то в силу теоремы 11.2 существует префиксный код V = {v1 , . . . , vn }, в


1 x1 + x2 x1 + x2
(−x1 log2 x1 − x2 log2 x2 ) ≤ − log2 котором l(vi ) = −log2 pi  для каждого i ∈ {1, . . . , n}. Такой код называется
2 2 2 кодом Шеннона, и нетрудно видеть, что для его стоимости справедливо
для любых x1 , x2 ∈ (0, 1). Следовательно, неравенство

1 1
n
H(x, 1 − x) = 2(−x log2 x − (1 − x) log2 (1 − x)) ≤ −2 · log2 = 1 C(p1 , . . . , pn ) = pi (−log2 pi ) ≤
2 2
i=1
для любого x ∈ (0, 1). Таким образом при n = 2 для любого распределе- n

ния вероятностей {p1 , p2 } имеет место неравенство H(p1 , p2 ) ≤ 1. С дру- ≤ pi (− log2 pi + 1) = H(p1 , . . . , pn ) + 1.
гой стороны, очевидно, что при n = 2 независимо от распределения ве- i=1

роятностей стоимость кодирования всегда равна единице. Следовательно, Теорема доказана.


C(p1 , p2 ) ≥ H(p1 , p2 ).
Теперь допустим, что нижняя оценка теоремы справедлива для любого
n не превосходящего k − 1, где k ≥ 3. Установим ее справедливость для 11.4 Блочное кодирование
n = k. Пусть P = {p1 , . . . , pk } — произвольное распределение вероятностей,
в котором вероятности pi упорядочены по убыванию. Рассмотрим новое Пусть P = {p1 , . . . , pn } — распределение вероятностей на алфавите A. Да-
распределение P  = {p1 , . . . , pk−2 , pk−1 }, где pk−1 = pk−1 +pk . Распределение лее будем рассматривать кодирование блоками — будем кодировать слова
P  возникает на первом шаге алгоритма Хаффмана, и поэтому очевидно, длины k, составленные из букв алфавита A, полагая, что вероятности всех
что букв в каждом слове независимы, т. е. что равенство

C(P ) − C(P  ) = pk−1 lk−1 + pk lk − pk−1 lk−1



= pk−1 + pk . p (ai1 · · · aik ) = p (ai1 ) · · · p (aik ) = pi1 · · · pik

Также легко видеть, что справедливо для любого слова ai1 · · · aik из Ak . Распределение вероятностей
на множестве Ak будем обозначать через P k . Пусть Vk — код множества Ak .
H(P ) − H(P  ) = −pk−1 log2 pk−1 − pk log2 pk + pk−1 log2 pk−1 . Величину
1
По предположению индукции C(P  ) − H(P  ) ≥ 0. Тогда Ck (Vk , P ) = C(Vk , P k )
k
C(P ) − H(P ) ≥ (C(P ) − H(P )) − (C(P  ) − H(P  )) = назовем средней стоимостью буквы алфавита A для распределения P при
использовании кода Vk , а величину
= (C(P ) − C(P  )) − (H(P ) − H(P  )).
1
Следовательно, Ck (P ) = min Ck (Vk , P ) = C(P k )
Vk k
C(P ) − H(P ) ≥ pk−1 + pk + pk−1 log2 pk−1 + pk log2 pk − pk−1 log2 pk−1 = — средней стоимостью буквы для распределения P при кодировании бло-
1 
ками длины k. Ниже в теореме 11.6 устанавливаются оценки Шеннона для
= 2pk−1 log2 2pk−1 + 2pk log2 2pk − pk−1 log2 pk−1 ≥
2 величины Ck . Для доказательства этой теоремы потребуется имеющая са-
2pk−1 + 2pk 2pk−1 + 2pk мостоятельный интерес лемма об аддитивности энтропии независимых рас-
≥ log2 − pk−1 log2 pk−1 = 0.
2 2 пределений.
156 Лекция 11. Алфавитное кодирование 11.5. Универсальное блочное кодирование 157

Лемма 11.1. Пусть P = {p1 , . . . , pn } и Q = {q1 , . . . , qm } — неза- Лемма 11.2. Пусть m1 + m2 + · · · + mn = m и все mi — целые неотри-
висимые распределения вероятностей на алфавитах A = {a1 , . . . , an } и цательные. Тогда
B = {b1 , . . . , bm }. Тогда для распределения вероятностей P Q на алфавите m! m1 mn
≤ 2mH( m ,..., m ) .
AB = {ai bj } справедливо равенство m1 ! · · · mn !
H(P Q) = H(P ) + H(Q). Доказательство. Неравенство леммы докажем индукцией по n. При
этом без ограничения общности будем считать, что все mi положительны.
Доказательство. В основание индукции положим приведенное на стр. 30 неравенство (2.11),
которое является частным случаем доказываемого неравенства при n = 2.
H(P Q) = − pi qj log2 pi qj = − pi qj (log2 pi + log2 qj ) =
Пусть n > 2. Тогда по предположению индукции
ij i j
 
=− pi log2 pi qj − pi qj log2 qj = m! m! (mn−1 + mn )!
= · ≤
i j i j m1 ! · · · mn ! m1 ! · · · mn−2 !(mn−1 + mn )! mn−1 !mn !
    mn−1 +mn mn−1 mn
m1 mn−2
) (mn−1 +mn )H( m ,m )
=− pi log2 pi qj − pi qj log2 qj = H(P ) + H(Q). ≤ 2mH( m ,..., m , m ·2 n−1 +mn n−1 +mn .
i j i j
Для доказательства леммы достаточно показать, что
Лемма доказана.
m mn  m mn−2 mn−1 + mn 
Из леммы 11.1 легко следует, что 1 1
mH ,..., = mH ,..., , +
m m m m m m 
H(P k ) = kH(P ) (11.5) n−1 mn (11.7)
+ (mn−1 + mn )H ,
mn−1 + mn mn−1 + mn
для любого распределения P и любого натурального k.
Теорема 11.6. Для любого распределения вероятностей P = {p1 , . . . , pn } Нетрудно видеть, что разность правой и левой частей равенства (11.7) равна
1 mn−1 mn mn−1 + mn
H(p1 , . . . , pn ) ≤ Ck (p1 , . . . , pn ) ≤ H(p1 , . . . , pn ) + . −mn−1 log2 − mn log2 + (mn−1 + mn ) log2 +
k m m m
mn−1 mn
Доказательство. Из равенства (11.5) и теоремы 11.5 следует, что + mn−1 log2 + mn log2 .
mn−1 + mn mn−1 + mn
kH(P ) = H(P k ) ≤ C(P k ) ≤ H(P k ) + 1 = kH(P ) + 1. (11.6)
Приводя в последней формуле подобные члены, видим, что
Так как C(P k ) = kCk (P ), то разделив все члены в (11.6) на k, получим m
n−1 m mn−1 + mn 
требуемые неравенства для Ck (P ). Теорема доказана. −mn−1 log2 · · −
m mn−1 + mn mn−1
Из теоремы 11.6 следует, что выбирая длину блока достаточно большой, m m mn−1 + mn 
n
среднюю стоимость буквы можно сделать сколь угодно близкой к энтропии − mn log2 · · = 0.
распределения P . m mn−1 + mn mn
Лемма доказана.
11.5 Универсальное блочное кодирование Лемма 11.3. Пусть p1 + p2 + · · · + pn = 1 и все pi ≥ 0. Тогда для любой
выпуклой вверх функции f и любых x1 , x2 , . . . , xn
Доказательство теоремы 11.6 существенным образом опирается на знание
распределения вероятностей P . Б. М. Фитингоф в 1966 году предложил p1 f (x1 ) + p2 f (x2 ) + · · · + pn f (xn ) ≤ f (p1 x1 + p2 x2 + · · · + pn xn ). (11.8)
независящий от распределения вероятностей P универсальный метод ко-
дирования блоками и показал, что для любого распределения P среднюю Доказательство. Без ограничения общности будем считать, что все pi
стоимость буквы при таком кодировании можно сделать сколь угодно близ- положительные. На плоскости xy рассмотрим график функции y = f (x)
кой к энтропии этого неизвестного распределения P . Универсальный ме- и лежащие на этом графике точки Mi с координатами (xi , f (xi )). Так как
тод кодирования Фитингофа описывается ниже в теореме 11.7. Для оценки функция f выпукла вверх, то многоугольник с вершинами в точках Mi
стоимости этого метода потребуются два вспомогательных утверждения о лежит ниже графика функции f так, как это изображено на рис. 11.3. По-
свойствах энтропии, доказываемые ниже в леммах 11.2 и 11.3. кажем, что точка N с координатами (u, v), где u = p1 x1 + p2 x2 + · · · + pn xn
158 Лекция 11. Алфавитное кодирование 11.5. Универсальное блочное кодирование 159

 
y до k+n−1
n−1 , а слова в каждом подмножестве A(m1 , . . . , mn ) — числами от
6
k!
единицы до m1 !···m n!
. В результате каждое k-буквенное слово из Ak будет
M M3
y однозначно определятся по двум номерам — номеру подмножества, кото-
M2 6 рому оно принадлежит, и своему номеру в этом подмножестве. Слову a из
A(m1 , . . . , mn ) поставим в соответствие двоичное слово v(a) длины
N M3
M2
6  
k+n−1 7 6 7
M4
k!
M1 log2 + log2 ,
n−1 m1 ! · · · mn !
M4 составленное из номера n(m1 , . . . , mn ) множества A(m1 , . . . , mn ) и припи-
x1 x2 u x3 x4 - M1 N - санному к нему справаномеру  n(a) слова a. Первый их этих номеров яв-
x x ляется двоичным log2 k+n−1 n−1 -разрядным числом, а второй — двоичным
3)
log2 m1 !···m
k!
n ! -разрядным числом .
Рис. 11.3 Рис. 11.4 Нетрудно видеть, что составленный из слов v(a) код Vk будет префикс-
и v = p1 f (x1 ) + p2 f (x2 ) + · · · + pn f (xn ), лежит внутри многоугольника. ным, а для его стоимости будет справедливо равенство
6  
k+n−1 7 6 7
Допустим, что это не так. Тогда на плоскости xy введем новые прямоуголь- k!
ные координаты x и y  так, что бы ось x была параллельна ближайшей C(Vk , P k ) = 1 · · · pn
pm 1 mn
log2 + log2 ,
стороне многоугольника и проходила через точку N . Подобная ситуация m1 ,...,mn n−1 m1 ! · · · mn !
v∈A(m1 ,...,mn )
изображена на рис. 11.4. Тогда, с одной стороны, координата y  точки N
равна нулю, а с другой стороны, эта координата больше нуля, так как она правую часть которого очевидно можно оценить следующим образом:
является суммой положительных вторых координат точек Mi , умноженных   
k+n−1 k!
1 · · · pn
pm ≤
на положительн