А. В. Чашкин
ЛЕКЦИИ
ПО ДИСКРЕТНОЙ МАТЕМАТИКЕ
Учебное пособие
Москва · 2007
А. В. Чашкин. Лекции по дискретной математике.
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
Комбинаторные числа и
числа размещений из 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
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.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
Функция 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
Теорема 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
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
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
где αi — корень многочлена f (x) = xk −a1 xk−1 −a2 xk−2 −· · ·−ak кратности
pi , Pi — многочлен степени pi − 1, коэффициенты которого определяются Перенося в последнем неравенстве в левую часть все слагаемые содержащие
при помощи первых k членов расматриваемой последовательности. множитель F (x), а в правую — все остальные, получим новое равенство
то, раскладывая в ряд сумму В рекуррентном соотношении (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
Решая эту систему, находим 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
Доказательство. Покажем, что из (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
Теорема 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 (β) равна числу нулей в наборе β.
√
(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, в которых все
максимальные подпоследовательности из единиц имеют нечетную
длину.
48
50 Лекция 4. Теорема Пойа 4.3. Цикловой индекс 51
Доказательство. Введем функцию ψ(d, g) так, что все грани на своих местах, равно 24 и, следовательно, вращений, отлич-
# ных от указанных выше, в группе G нет. Перенумеруем грани кубика так,
1, если gd = d; как это показано на рис. 4.2, где номер закрашенной грани указан рядом с
ψ(d, g) =
0, если gd = d.
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.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. Теорема Пойа
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 .
из 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
В следующей теореме, доказанной Р. Л. Бруксом в 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 авиалиниями. Доказать, что из лю-
бого города можно по воздуху добраться в любой другой.
Булевы функции
n
n
|u| = ui · 2n−i , u = ui .
i=1 i=1
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
также является формулой. Формулы 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.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. Булевы функции
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) .
Так как каждая такая функция однозначно определяется своими значени- Преобразуем цепи 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
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
Будем говорить, что схема 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 &
потомки вершины 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
По предположению индукции Теперь рассмотрим вершину 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 ).
Доказательство. Пусть 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. Сложность булевых функций
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. Тогда
L(Σn ) = 5n − 3, D(Σn ) = 2n − 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.
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.
Булев оператор 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 ) =
Таким образом, (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).
Рис. 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).
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. Универсальные методы синтеза схем
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.
будет оптимальным для распределения
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
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
Также легко видеть, что справедливо для любого слова 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 ≤
на положительные числа pi . Полученное противоречие доказывает, что N 1 mn
2 + log2 + log2
лежит внутри многоугольника с вершинами в точках Mi . m1 ,...,mn n − 1 m 1 ! · · · m n !
v∈A(m1 ,...,mn )
Теперь осталось заметить, что точка M (см. рис. 11.3), вторая коорди-
ната которой равна f (p1 x1 +p2 x2 +· · ·+pn xn ), лежит выше точки N , вторая k+n−1 k!
≤ 2 + log2 + 1 · · · pn log2
pm 1 mn
. (11.10)
координата которой равна p1 f (x1 )+p2 f (x2 )+· · ·+pn f (xn ). Лемма доказана. n−1 m1 ,...,mn
m1 ! · · · mn !
v∈A(m1 ,...,mn )
Так как при x ≥ 0 функция −x log2 x выпукла вверх, то для любых
неотрицательных p1 , . . . , pn таких, что p1 + p2 + · · · + pn = 1, и любых неот- Оценим разность R между последним слагаемым в правой части (11.10)
рицательных x1 , x2 , . . . , xn и величиной H(P k ). Нетрудно видеть, что
n
n
n k!
1 · · · pn log2
pm −
1 mn
− pi xi log2 xi ≤ − pi xi log2 pi xi . (11.9) R=
m1 ,...,mn
m1 ! · · · mn !
i=1 i=1 i=1 v∈A(m1 ,...,mn )
Теорема 11.7. Для любого k существует такой универсальный код Vk , − − 1 · · · pn log2 (p1 · · · pn ) =
pm 1 mn m1 mn
(n − 1) log2 (k + 1) + 2 k!
1 · · · pn
pm 1 · · · pn ) .
+ log2 (pm
1 mn 1 mn
Ck (Vk , P ) ≤ H(P ) + . = log2
k m1 ,...,mn
m1 ! · · · mn !
v∈A(m1 ,...,mn )
справедливо для любого распределения вероятностей P на множестве букв
алфавита A = {a1 , . . . , an }. Покажем что каждая сумма, стоящая в скобках в последнем равенстве, не
больше нуля для всех распределений P . Так как в силу леммы 11.2
Доказательство. Через A(m1 , . . . , mn ), где m1 + · · · + mn = k, обо-
значим подмножество множества Ak , в котором каждое слово содержит k! m1 mn n
mi mi
log2 ≤ kH( ,..., ) = −k log2 ,
ровно mi букв ai . Число различных подмножеств A(m1 , . . . , mn ) равно чис- m1 ! · · · mn ! k k i=1
k k
лу упорядоченных
k+n−1 разбиений числа k не более чем на n слагаемых, т. е.
3) Старшие разряды чисел n(m1 , . . . , mn ) и n(a) могут быть нулями.
n−1 . Подмножества A(m1 , . . . , mn ) перенумеруем числами от единицы
160 Лекция 11. Алфавитное кодирование 11.6. Задачи 161
то применяя (11.9) видим, что 11.7. Множество N состоит из всех двоичных последовательностей длины
n, каждая из которых содержит ровно k единиц. Каждая последова-
k! mi
n
mi
n
тельности a из N делится на блоки по m символов, после чего каж-
1 · · · pn ) ≤ −k
+ log2 (pm 1 mn
log2 log2 + mi log2 pi =
m1 ! · · · mn ! k k дый блок кодируется при помощи некоторого кода V над {0, 1}, и
i=1 i=1
m
m последовательность кодов этих блоков образует код последователь-
n
mi mi
n n
= −k pi · log2 ≤ −k pi
i
log2 pi
i
= ности a. Указать код для множества {0, 1}m при котором средняя
i=1
kpi kpi i=1
kp i i=1
kpi длина кода последовательности из N была бы как можно меньше.
n
mi
n
mi
Оценить эту длину.
= −k log2 = −k log2 1 = 0. 11.8. Показать, что для каждого m-ичного разделимого кода {v1 , . . . , v n }
i=1
k i=1
k выполняется неравенство Крафта–Макмиллана
Таким образом R ≤ 0, и, следовательно,
n
m−l(vi ) ≤ 1.
k!
pm
1
1
· · · pm n
log2 ≤ H(P k ). (11.11) i=1
m1 ,...,mn
n
m1 ! · · · mn !
v∈A(m1 ,...,mn ) 11.9. Показать, что в m-ичном n-элементном коде найдется слово, длина
которого не меньше logm (1 + n(m − 1)).
Наконец заметим, что
11.10. Показать, что при любом распределении вероятностей P для сто-
k+n−1 имости C(V, P ) соответствующего этому распределению m-ичного
log2 ≤ log2 (k + 1)n−1 ≤ (n − 1) log2 (k + 1). (11.12)
n−1 оптимального кода V имеет
n место неравенство C(V, P ) ≤ Hm (P ) + 1,
где Hm (p1 , . . . , pn ) = − i=1 pi logm pi .
Подставляя (11.11) и (11.12) в (11.10) видим, что
11.6 Задачи
11.1. Показать, что сумма длин всех слов любого n-элементного оптималь-
ного кода не превосходит 12 (n + 2)(n − 1).
11.2. Показать, что сумма длин всех слов любого разделимого n-элемент-
ного кода не меньше чем n log2 n.
11.3. Показать, что для любого n найдется такое распределение вероят-
ностей P = {p1 , . . . , pn }, где все pi > 0, что C(P ) = H(P ).
11.4. Показать, что для любого n и любого ε > 0 найдется такое рас-
пределение вероятностей P = {p1 , . . . , pn }, где все pi > 0, что
C(P ) ≥ H(P ) + 1 − ε.
11.5. Указать минимальное n и соответствующее ему распределение веро-
ятностей P = {p1 , . . . , pn }, для которых найдутся два оптимальных
кода с разными длинами слов.
11.6. Привести пример распределения вероятностей, при котором код
Шеннона не является оптимальным.
12.1. Определения и простейшие свойства 163
лать как можно больше отношение k/n, называемое скоростью кода, и по-
возможности уменьшить сложность выполнения процедур кодирования и
декодирования.
Ниже рассматриваются различные вопросы, связанные с существовани-
ем, мощностью, построением, кодированием и декодированием кодов.
Лекция 12
12.1 Определения и простейшие свойства
Коды, исправляющие ошибки Подмножество G = {g1 , . . . , gm } множества Bn называется кодом с кодо-
вым расстоянием d, если для любых двух его элементов gi и gj расстояние
Хемминга между ними не меньше d. Также говорят, что код G исправляет
t независимых ошибок, если его кодовое расстояние не меньше чем 2t + 1.
Рассмотрим следующий пример. Допустим, что из пункта A в пункт B по Нетрудно видеть, что в коде исправляющем t ошибок каждый элемент кода
каналу связи надо передать сообщение, являющееся последовательностью является центром шара радиуса t и шары с центрами в разных элементах
нулей и единиц. В процессе передачи в канале могут возникнуть помехи, в кода не пересекаются. Определение для произвольного вектора v ∈ Bn век-
результате чего передаваемое сообщение будет искажено — некоторые нули торов g ∈ G и c ∈ Bn таких, что расстояние от вектора v до вектора g
превратятся в единицы, а единицы в нули. Если каждый символ сообщения меньше чем расстояние от v до любого другого элемента G, а c = g ⊕ v,
с вероятностью 10−1 независимо от остальных символов превращается в называется декодированием вектора v, или исправлением ошибок в векторе
противоположный, то в сообщении длины t будет искажено в среднем t/10 v. Вектор c называется вектором ошибок.
символов. Если каждый символ сообщения передавать три раза, а его зна- Код G исправляющий t ошибок называется максимальным для данного
чением в B считать то, которое встретится большее число раз — два или t, если мощность G максимальна среди всех кодов исправляющих t оши-
три, то нетрудно видеть, что среднее число неправильно принятых симво- бок. Покажем, что для мощности любого максимального кода G длины n
лов уменьшиться до t(3 · 10−2 (1 − 10−1 ) + 10−3 ) = t · 28 · 10−3 , т. е. более справедливы неравенства
чем в три раза. Правда такое увеличение надежности достигается за счет
2n 2n
уменьшения скорости передачи в три раза. n ≤ |G| ≤ t n . (12.1)
В общем случае для борьбы с помехами, называемыми также шумом, Σ2t
i=0 i Σ i=0 i
поступают следующим образом. Передаваемое сообщение делят на слова
одинаковой длины k, и каждое слово a длины k преобразуют по определен- Так как шары радиуса t с центрами в различных кодовых словах не пе-
ным правилам в слово g большей длины n — это преобразование называется ресекаются, то очевидно, что для любого кода длины n произведение числа
n
кодированием, а множество G слов g, получаемых в результате кодирова- кодовых слов и мощности шара радиуса t не превосходит 2 , и, следова-
ния всевозможных слов a длины k, называется блочным кодом длины n1) . тельно, |G| ≤ 2n /Σti=0 ni . С другой стороны для любого элемента g кода G
Затем преобразованные слова передают по каналу связи. Принимающая в шаре радиуса 2t с центром в этом элементе есть ровно одно кодовое слово
сторона делит принятое сообщение на слова длины n и для каждого такого — элемент g. Поэтому если набор a не принадлежит ни одному из шаров
слова v выполняет "обратное" преобразование, которое называется деко- радиуса 2t с центрами в элементах кода, то этот набор можно добавить
дированием и, как правило, состоит из двух этапов. Сначала определяют в G, и дополненное множество
n по прежнему будет исправлять t ошибок.
такое слово g из G, для которого условная вероятность P (v|g) получить Поэтому если |G|(Σ2t n
i=0 i ) < 2 ,
токод G не является максимальным. Сле-
слово v при условии, что было передано слово g, максимальна. После это- довательно неравенство |G|(Σ2t i=0 i ) ≥ 2 является необходимым условием
n n
го для полученного слова g, находится его прообраз a. Нетрудно видеть, максимальности кода G.
что если ошибки происходят независимо и вероятность одной ошибки мень- Код G называется линейным (n, k)-кодом, если он является k-мерным
ше 12 , то максимум величин P (v|g) достигается на том слове g, расстояние линейным подпространством пространства Bn . Булева (n − k, n)-матрица
Хемминга от v до которого минимально. H называется проверочной матрицей линейного кода G, если Hg = 0 для
Параметры k, n и процедуры кодирования и декодирования выбира- каждого g ∈ G и Hx = 0 для каждого x ∈ / G. Вектор Hx называется
ются так, чтобы при данных характеристиках канала связи уменьшить до синдромом вектора x и обозначается символом S. Так как Hci = Hcj для
приемлемого значения среднее число неправильно принятых символов, сде- любых исправляемых кодом ошибок ci и cj и
1) Помимо блочных кодов существуют не рассматриваемые здесь сверточные коды. H(g ⊕ c) = H(g) ⊕ H(c) = H(c)
162
164 Лекция 12. Коды, исправляющие ошибки 12.2. Коды Рида–Малера 165
для любого элемента кода g и любой исправляемой кодом ошибки c, то вы- Теорема 12.3. Если числа n, m и d удовлетворяют неравенству
числение синдрома может существенно упростить декодирование по срав-
нению с общим нелинейным случаем. Для декодирования набора x надо
d−2
n−1
2n−m > ,
вычислить его синдром и затем сравнить полученный результат с заранее i
i=0
вычисленными синдромами векторов ошибок. Такое декодирование назы-
вается синдромным. Линейный (n, k)-код G называется систематическим, то существует линейный (n, m)-код с расстоянием d.
если его проверочная матрица имеет вид (En−k H), где En−k — единичная
Доказательство. Допустим, что найдется матрица Hk из n − m строк
матрица порядка n − k.
Булева (k, n)-матрица G называется порождающей матрицей линейного
и k столбцов, у которой d − 1 столбцов линейно независимы. Тогда
любые
d−2
существует не более i=0 ki различных линейных комбинаций столбцов
кода G, если линейная оболочка g1 , . . . , gk строк матрицы G совпадает с
этой матрицы, в каждую из
которых входит не более чем d − 2 ненулевых
G. Легко видеть, что проверочная и порождающая матрицы любого линей- d−2 k
слагаемых. Если 2n−m > i=0 i , то найдется хотя бы один ненулевой
ного кода связаны равенством HGT = 0.
вектор h длины n − m, не совпадающий ни с одной из этих линейных ком-
Теорема 12.1. В каждом линейном коде G кодовое расстояние d равно бинаций. Нетрудно видеть, что в матрице Hk+1 = (Hk h), составленной из
весу его минимального ненулевого элемента: столбцов матрицы Hk и вектора h, любые d − 1 столбцов линейно незави-
симы, и в силу теоремы 12.2 эта матрица будет проверочной матрицей кода
d= min g. с расстоянием d. Теорема доказана.
g=0,g∈G
Построим линейный (2n − 1, 2n − n − 1)-код Hn , исправляющий одну
Доказательство. Так как нулевой набор всегда принадлежит линей- ошибку в наборах длины 2n − 1. Искомый код зададим при помощи его
ному коду, то очевидно, что кодовое расстояние не превосходит веса мини- проверочной матрицы Hn . Пусть Hn = (hij ) — булева (n, 2n − 1)-матрица,
мального ненулевого элемента. Допустим, что d < min g. В этом случае у которой j-й столбец hj = (h1j , . . . , hnj ) совпадает с двоичным разложение
в G найдутся два элемента g1 и g2 , расстояние между которыми меньше d. числа j. Например, матрица H3 выглядит следующим образом:
Следовательно, ⎛ ⎞
0 0 0 1 1 1 1
g1 ⊕ g2 = d(g1 , g2 ) < d. H3 = ⎝0 1 1 0 0 1 1⎠ .
1 0 1 0 1 0 1
С другой стороны, сумма g1 ⊕ g2 обязательно принадлежит G. Поэтому
g1 ⊕ g2 ≥ d. Пришли к противоречию. Теорема доказана. Легко видеть, что любые два столбца матрицы Hn будут линейно независи-
мыми. Поэтому из теоремы 12.2 следует, что матрица Hn является прове-
Теорема 12.2. Для того, чтобы матрица H была проверочной мат- рочной матрицей кода, исправляющего одну ошибку в наборах длины 2n −1.
рицей линейного кода с кодовым расстоянием не меньшим d необходимо Код с проверочной матрицей Hn называется кодом Хемминга. Исправление
и достаточно, чтобы любые d − 1 столбцов матрицы H были линейно ошибки в векторе v при использовании кода Хемминга выполняется очень
независимы. просто. Легко видеть, что вектор Hm v состоит из одних нулей, если ошибки
не было, а если одиночная ошибка присутствует, то вектор Hm v является
Доказательство. Установим необходимость. Пусть H — проверочная
двоичным представлением номера ошибочного разряда.
матрица кода G с расстоянием d. Если в матрице H сумма столбцов с но-
мерами i1 , . . . , il равна нулевому вектору, то произведение Hv матрицы H
и вектора v, у которого единичные компоненты имеют номера i1 , . . . , il , так 12.2 Коды Рида–Малера
же будет равно нулевому вектору. Следовательно вектор v принадлежит G,
и, поэтому, l ≥ d. С другой стороны, если любые d − 1 столбцов матрицы Кодом Рида–Малера RM (n, k) длины 2n порядка k называется множество
H линейно независимы, то и произведение матрицы H и любого вектора v векторов значений всех n-местных булевых функций, степени многочленов
с не более чем d − 1 единичными компонентами не равно нулевому векто- Жегалкина которых не превосходят k.2) Будем полагать, что наборы аргу-
ру, и в силу теоремы 12.1 нулевое пространство матрицы H будет кодом с ментов n-местных булевых функций упорядочены лексикографически так,
расстоянием не меньшим d. Теорема доказана. что переменная x1 соответствует старшему разряду набора, а переменная
В следующей теореме устанавливается существование хороших линей- xn — младшему (см. стр. 75).
ных кодов, исправляющих данное число ошибок. Неравенство этой теоремы 2) Здесь для краткости будем говорить не о векторах значений булевых функций, а
Множество RM (2, 0) состоит из векторов значений двух булевых кон- = (f1 (x ) ⊕ f2 (x )) + f2 (x ) = f1 ⊕ f2 + f2 .
стант, т. е. RM (2, 0) = {(0000), (1111)}. Множество RM (2, 1) состоит из век- x ∈Bm−1 x ∈Bm−1
торов значений всех линейных функций двух переменных x1 и x2 :
Далее рассмотрим три случая.
0 = (0000), x1 = (0011), 1. Функции f1 ⊕f2 и f2 отличны от тождественного нуля. Из (12.3) имеем
1 = (1111), 1 ⊕ x1 = (1100), f ≥ f1 ⊕ f2 + f2 ≥ 2m−1−k + 2m−1−k = 2m−k .
x2 = (0101), x1 ⊕ x2 = (0110),
2. Функция f1 ⊕ f2 отлична от тождественного нуля и f2 ≡ 0. Тогда
1 ⊕ x2 = (1010), 1 ⊕ x2 ⊕ x1 = (1001). f1 ⊕ f2 = f1 ∈ RM (m − 1, k − 1). Из (12.3) имеем
Наконец множество RM (2, 2) совпадает с P2 (2). Нетрудно видеть, что рас- f = f1 ⊕ f2 = f1 ≥ 2m−k .
смотренные множества являются линейными кодами длины четыре с кодо-
выми расстояниями равными, соответственно, четырем, двум и единице. 3. Функция f2 отлична от тождественного нуля и f1 ⊕ f2 ≡ 0. Тогда
f2 ≡ f1 ∈ RM (m − 1, k − 1). Из (12.3) имеем
Теорема 12.4. Код Рида–Малера RM (n, k) длины 2 порядка k являет- n
Легко видеть, что ограничение любого другого одночлена xi1 · . . . · xim все одночлены степени k, коэффициенты при которых равны единице. В
степени не больше k на любое множество Bi будет одночленом степени стро- результате получим новую функцию f ⊕ c, где deg f ≤ k − 1, а вес c по
го меньшей k. Поэтому такое ограничение обязательно будет иметь хотя бы прежнему не превосходит 2n−k−1 − 1. Теперь, используя вектор значений
одну фиктивную переменную, его вес будет четным числом, и, следователь- функции f ⊕ c, описанным выше способом определим в многочлене Же-
но, для каждого i ∈ {0, 1, . . . , 2n−k − 1} будут справедливы равенства галкина функции f коэффициенты при одночленах степени k − 1. Затем
. . одночлены степени k − 1, коэффициенты при которых равны единице, при-
xi1 · . . . · xim = xi1 · . . . · xim = 0. (12.5) бавим к функции f ⊕ c. Очевидно, что степень новой функции f ⊕ c не
x∈Bi x1 ,...,xk ∈Bk превосходит k − 2.
xk+1 =βk+1 ,...,xn =βn
Нетрудно убедиться в том, что повторяя приведенные вычисления для
Для любой булевой функции f (x1 , . . . , xk ), степень которой не превосхо- всех остальных степеней вплоть до нулевой, в результате получим функцию
дит k, равенства (12.4) и (12.5) позволяют определить входит ли одночлен c. Итак, если в сумме f ⊕ c двух функций n переменных степень функции f
x1 · . . . · xk в многочлен Жегалкина этой функции. Действительно, для лю- не превосходит k, а вес функции c не превосходит 2n−k−1 −1, то приведенный
бой f и для любого x значение f (x) равно взятой по модулю два сумме метод позволяет по известной сумме f ⊕ c определить функции f и c.
значений одночленов, входящих в многочлен Жегалкина f . Поэтому, сум-
ма значений функции f на любом из множеств Bi , взятая по модулю два,
равна единице только в том случае, когда одночлен x1 · . . . · xk входит в ее 12.3 Коды БЧХ
многочлен Жегалкина. Таким образом, если степень булевой функции f не
Коды Боуза–Чоудхури–Хоквингема представляют собой мощный и обшир-
превосходит k, то существуют 2n−k независимых соотношений для опреде-
ный класс кодов, имеющий многочисленные приложения. Эти коды бы-
ления вхождения одночлена x1 · . . . · xk в многочлен Жегалкина f .
ли созданы в конце пятидесятых годов двадцатого века Р. К. Боузом и
Теперь рассмотрим сумму f (x) ⊕ c(x) булевых функций f (x) и c(x) та-
Д. К. Рой-Чоудхури и независимо от них А. Хоквингемом.
ких, что deg f ≤ k и c < 2n−k−1 . Для каждого i ∈ {0, 1, . . . , 2n−k − 1}
вычислим две суммы Теорема 12.5. Пусть n = 2m − 1 и α1 , . . . , αn — ненулевые элементы
. . поля GF (2m ). Тогда матрица
(f (x) ⊕ c(x)), f (x), (12.6)
x∈Bi x∈Bi
⎛ ⎞
α1 α2 ... αn
которые очевидно различаются не более чем на c множествах Bi . Поэто- ⎜ α31 α32 ... α3n ⎟
⎜ ⎟ (12.7)
му для определения коэффициента при одночлене x1 · . . . · xk в многочлен ⎝ ... ... ... ... ⎠
Жегалкина функции f можно использовать вектор значений функции f ⊕c. α2t−1
1 α2t−1
2 ... α2t−1
0 n
Достаточно вычислить все суммы x∈Bi (f ⊕ c)(x). Эти суммы называются
проверочными суммами для одночлена x1 · . . . · xk . Если больше половины будет проверочной матрицей кода с расстоянием 2t + 1.
проверочных сумм равны единице, то одночлен x1 · . . . · xk входит в много- Доказательство. В силу теоремы 12.2 достаточно показать, что любые
член Жегалкина функции f , а если больше половины вычисленных сумм d − 1 столбцов матрицы (12.7) линейно независимы. Для этого установим
равны нулю, то не входит. следующее вспомогательное утверждение.
Определение коэффициента при произвольном одночлене xi1 · ... · xik
степени k отличается от приведенного выше метода только способом опре- Лемма 12.1. Пусть n = 2m −1 и α1 , . . . , αn — ненулевые элементы поля
деления множеств Bi — в случае одночлена xi1 · ... · xik каждое Bi состоит GF (2m ). Тогда в матрице
из всех тех наборов, у которых принимают фиксированные значения раз- ⎛ ⎞
ряды с индексами, не принадлежащими множеству {i1 , . . . , ik }. Например, α1 α2 ... αn
для одночлена x1 x3 , рассматриваемого как функция переменных x1 , x2 , x3 ⎜ α21 α 2
. . . α2 ⎟
⎜ 2 n ⎟ (12.8)
и x4 , множества Bi определяются следующим образом: ⎝ ... ... ... ... ⎠
αd−1
1 α d−1
2 . . . αd−1
n
B0 = {(0000), (0010), (1000), (1010)}, B1 = {(0001), (0011), (1001), (1011)},
B2 = {(0100), (0110), (1100), (1110)}, B3 = {(0101), (0111), (1101), (1111)}. любые d − 1 столбцов линейно независимы.
После того как для функции f определены коэффициенты многочле- Доказательство. Допустим, что утверждение леммы не верно, и столб-
на Жегалкина при всех одночленах степени k, к функции f ⊕ c прибавим цы матрицы (12.8) с номерами i1 , . . . , id−1 линейно зависимы. Тогда ранг
170 Лекция 12. Коды, исправляющие ошибки 12.3. Коды БЧХ 171
Из равенств (12.10) составим систему уравнений относительно коэффициен- 4. Решая матричное уравнение
тов Λi . Нетрудно видеть, что в матричной форме рассматриваемая система ⎛ ⎞⎛ ⎞ ⎛ ⎞
имеет следующий вид: S1 S2 S3 . . . Sk−1 Sk Λk Sk+1
⎜ S2 S3 S4 . . . Sk Sk+1 ⎟ ⎜Λk−1 ⎟ ⎜Sk+2 ⎟
⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟
S1 S2 S3 . . . Sk−1 Sk Λk Sk+1 ⎜ .. .. .. .. .. .. ⎟ ⎜ .. ⎟ = ⎜ .. ⎟ ,
⎝ . . . . . . ⎠⎝ . ⎠ ⎝ . ⎠
⎜ S2 S S . . . S S ⎟ ⎜ Λ ⎟ ⎜ S ⎟
⎜ 3 4 k k+1 ⎟ ⎜ k−1 ⎟ ⎜ k+2 ⎟ Sk Sk+1 Sk+2 . . . S2k−2 S2k−1 Λ1 S2k
⎜ S3 S4 S5 . . . Sk+1 Sk+2 ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜Λk−2 ⎟ = ⎜Sk+3 ⎟ .
⎜ .. .. .. .. .. .. ⎟ ⎜ .. ⎟ ⎜ .. ⎟
⎝ . . . . . . ⎠ ⎝ . ⎠ ⎝ . ⎠ находим коэффициенты Λi многочлена локаторов ошибок.
Sk Sk+1 Sk+2 . . . S2k−2 S2k−1 Λ1 S2k 5. Вычисляя последовательно значения многочлена
Покажем, что если произошло ровно k ошибок, то матрица этой системы Λ(x) = Λk xk ⊕ Λk−1 xk−1 ⊕ · · · ⊕ Λ1 x ⊕ 1
не вырождена, а если меньше чем k, то вырождена. Для этого заметим, что
на всех элементах поля GF (2m ), находим его корни x1 , . . . , xk , обращая ко-
⎛ ⎞ ⎛ ⎞⎛ ⎞ торые, находим локаторы ошибок X1 , . . . , Xk . Затем из равенств Xi = αji
S1 S2 ... Sk X1 X2 ... Xk 1 X1 ... X1k−1
⎜ S2 определяем позиции ошибок ji .
⎜ S3 ... Sk+1 ⎟ ⎜ 2
⎟ ⎜ X1 X22 ... Xk2 ⎟ ⎜
⎟ ⎜1 X2 ... k−1 ⎟
X2 ⎟
⎜ .. .. .. .. ⎟ = ⎜ .. .. .. .. ⎟ ⎜ .. .. .. ⎟ . Приведенный алгоритм декодирования называется алгоритмом Питерсо-
⎝ . ..
. . . ⎠ ⎝ . . . . ⎠ ⎝. . . . ⎠ на–Горинстейна–Цирлера.
Sk Sk+1 ... S2k−1 X1k X2k ... Xkk 1 Xk ... Xkk−1
Повторяя рассуждения, приведенные в доказательстве леммы 12.1, нетруд- 12.4 Полиномиальное представление кодов БЧХ
но показать, что первый сомножитель в правой части последнего равенства
вырожден тогда и только тогда, когда среди величин Xi есть либо две оди- Пусть n = 2m − 1 и α — примитивный элемент поля GF (2m ). Тогда матрица
наковых, либо одна из них равна нулю, а второй сомножитель вырожден ⎛ ⎞
1 α α2 ... αn−1
тогда и только тогда, когда среди величин Xi есть две одинаковых. Поэто- ⎜ 1 3 2·3 (n−1)3 ⎟
α α . . . α
му если произошло ровно k ошибок, то все величины Xi ненулевые и раз- H=⎜ ⎝. . .
⎟
⎠ (12.11)
... ... ... ...
личные, и, следовательно, произведение двух невырожденных матриц так
1 α2t−1 α2(2t−1) . . . α(n−1)(2t−1)
же будет невырожденной матрицей. С другой стороны, если число ошибок
меньше k, то в этом случае хотя бы одна из величин Xi равна нулю. Таким будет проверочной матрицей кода БЧХ с расстоянием 2t + 1. Каждый эле-
образом первый сомножитель, а вместе с ним и все произведение, будут мент g = (g0 , . . . , gn−1 ) этого кода будем рассматривать как набор коэффи-
вырожденными матрицами. 0
циентов многочлена g(x) = n−1 i
i=0 gi x . Так как
Теперь все готово для описания алгоритма декодирования БЧХ-кода.
Пусть БЧХ-код длины n = 2m − 1 с проверочной матрицей (12.7) исправ- ⎛ ⎞ ⎛ g ⎞ ⎛ g(α) ⎞
1 α ... αn−1 0
ляет t ошибок. Тогда для декодирования слова a выполняем следующие ⎜ 1 (n−1)3 ⎟ ⎜ g1 ⎟ ⎜ 3 ⎟
⎜ α 3
... α ⎟⎜ ⎟ ⎜ g(α ) ⎟
действия. ⎝. . . ⎠ ⎜ .. ⎟ = ⎜ . ⎟,
1. Вычисляем компоненты синдрома S1 , S2 , . . . , S2t и полагаем k = t.
... ... ... ⎝ . ⎠ ⎝ .. ⎠
1 α2t−1 . . . α(n−1)(2t−1) gn−1 g(α2t−1 )
2. Составляем матрицу
⎛ ⎞ то нетрудно видеть, что для любого многочлена g(x), соответствующего
S1 S2 S3 . . . Sk−1 Sk
⎜ S2 S3 S4 . . . Sk Sk+1 ⎟ элементу рассматриваемого кода с проверочной матрицей (12.11), справед-
⎜ ⎟
Sk = ⎜ . .. .. .. .. .. ⎟ ливы равенства
⎝ .. . . . . . ⎠ g(α) = g(α3 ) = · · · = g(α2t−1 ) = 0.
Sk Sk+1 Sk+2 ... S2k−2 S2k−1
Пусть hk (x) — минимальный многочлен элемента αk , где k = 1, 3, . . . , 2t − 1.
и определяем вырождена это матрица или нет. Тогда многочлен h(x), являющийся произведением минимальных много-
3. Если матрица Sk вырождена, то уменьшаем k на единицу и возвра- членов h1 , h3 , . . . , h2t−1 , будет делить любой многочлен, соответствующий
щаемся к п. 2. Если матрица Sk невырождена, то определяем, что число элементу кода с проверочной матрицей (12.11). Верно и обратное — любой
ошибок равно k и переходим к следующему пункту. многочлен степени n−1 делящийся на h(x), будет соответствовать элементу
174 Лекция 12. Коды, исправляющие ошибки 12.5. Коды, исправляющие произвольные ошибки 175
кода с проверочной матрицей (12.11). Поэтому многочлен h(x) полностью Наконец последнее произведение дает окончательный результат:
описывает рассматриваемый код и называется порождающим многочле-
ном. Порождающий многочлен можно использовать для кодирования со- (x3 ⊕ α7 x2 ⊕ α4 x ⊕ α6 )(x ⊕ α9 ) =
общений следующим образом. Передаваемое сообщение делится на блоки = x4 ⊕ (α9 ⊕ α7 )x3 ⊕ (α16 ⊕ α4 )x2 ⊕ (α13 ⊕ α6 )x ⊕ α15 =
длины n − deg h(x). Затем каждый блок a рассматривается как набор коэф- = x4 ⊕ x3 ⊕ x2 ⊕ x ⊕ 1.
фициентов многочлена a(x) степени n− deg h(x)− 1, и многочлен a(x) умно-
жается на порождающий многочлен h(x). Произведение g(x) = a(x)h(x) Теперь заметим, что α20 = α5 . Поэтому единственным элементом сопря-
называется кодовым многочленом, и его коэффициенты образуют элемент женным с α5 будет α10 . Тогда минимальный многочлен для α5 находится
кода. При декодировании полученное сообщение делится на блоки длины следующим образом
n. Каждый блок рассматривается как набор коэффициентов многочлена
b(x), являющегося суммой кодового многочлена g(x) и многочлена ошибок (x ⊕ α5 )(x ⊕ α10 ) = x2 ⊕ (α5 ⊕ α10 )x ⊕ α15 = x2 ⊕ x ⊕ 1.
c(x), коэффициенты которого являются компонентами вектора ошибок c.
Перемножая минимальные многочлены x4 ⊕ x ⊕ 1, x4 ⊕ x3 ⊕ x2 ⊕ x ⊕ 1
Так как g(αk ) = 0 для k = 1, 3, . . . , 2t − 1, то
и x2 ⊕ x ⊕ 1 получаем порождающий многочлен
b(αk ) = g(αk ) ⊕ c(αk ) = c(αk ) = Sk , x10 ⊕ x8 ⊕ x5 ⊕ x4 ⊕ x2 ⊕ x ⊕ 1
и далее декодирование производится в соответствии с приведенным выше БЧХ-кода длины 15 исправляющего три ошибки.
алгоритмом Питерсона–Горинстейна–Цирлера. Отметим, что код, порождаемый найденным многочленом, состоит из
Построим порождающий многочлен БЧХ-кода длины 15 исправляющего 32 элементов, в то время как теорема 12.5 гарантирует существование кода
три ошибки. В качестве поля из 16 элементов как и ранее возьмем постро- только из восьми элементов.
енное по модулю примитивного многочлена поле Z2 (α)/(α4 ⊕α⊕1). Степени
примитивного элемента α этого поля выглядят следующим образом:
12.5 Коды, исправляющие произвольные ошибки
α0 α1 α2 α3 α4 α5 α6 α7 α8 α9 α10 α11 α12 α13 α14
Рассмотрим два подмножества G = {g1 , . . . , gm } и C = {c1 , . . . , cl } n-
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 мерного булева куба Bn . Множество G называется кодом исправляющим
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 аддитивные ошибки из множества C, если C содержит нулевой набор и
0 1 0 0 1 1 0 1 0 1 1 1 1 0 0
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 gi ⊕ cs = gj ⊕ ct (12.12)
Так как элемент α является корнем примитивного многочлена x ⊕ x ⊕ 1, то 4 для любых 1 ≤ i, j ≤ m и любых 1 ≤ s, t ≤ l. Элементы G называются эле-
для построения порождающего многочлена достаточно найти минимальные ментами кода или кодовыми словами, число n называется длиной кода G.
многочлены элементов α3 и α5 и умножить их произведение на многочлен Множество C называется множеством ошибок, а его элементы — векторами
x4 ⊕ x ⊕ 1. Нетрудно видеть, что элементами сопряженными с α3 будут эле- ошибок. Для любого g из G множество g ⊕ C = ∪ci ∈C {g ⊕ ci } называется
менты α6 , α12 и α24 = α9 . Поэтому минимальный многочлен для α3 можно окрестностью слова g. Из (12.12) следует, что окрестности различных кодо-
получить раскрыв скобки в произведении вых слов не пересекаются. Пусть a — набор из окрестности g. Определение
элемента кода g по набору a называется декодированием набора a.
(x ⊕ α3 )(x ⊕ α6 )(x ⊕ α12 )(x ⊕ α9 ). Код G, исправляющий ошибки из множества C, называется максималь-
ным для данного C, если мощность G максимальна среди всех кодов, ис-
Сначала раскроем скобки в двух первых сомножителях: правляющих ошибки из C. Покажем, что для любого максимального кода
G длины n справедливы неравенства
(x ⊕ α3 )(x ⊕ α6 ) = x2 ⊕ (α6 ⊕ α3 )x ⊕ α9 = x2 ⊕ α2 x ⊕ α9 .
2n+1 2n
≤ |G| ≤ .
Затем умножим полученный многочлен на третий сомножитель: |C|2 |C|
(x2 ⊕ α2 x ⊕ α9 )(x ⊕ α12 ) = x3 ⊕ (α12 ⊕ α2 )x2 ⊕ (α14 ⊕ α9 )x ⊕ α21 = Так как окрестности различных кодовых слов не пересекаются, то оче-
3 7 2 4 6
видно, что для любого кода длины n произведение числа кодовых слов и
=x ⊕α x ⊕α x⊕α . мощности окрестности не превосходит 2n , и, следовательно, |G| ≤ 2n /|C|.
176 Лекция 12. Коды, исправляющие ошибки 12.6. Инъективные линейные операторы 177
применения леммы 12.2 операторов fi , будет инъективным на области D Далее покажем, что неравенство теоремы 12.8 является асимптотически
линейным (n − k, n)-оператором. точным для почти всех областей из Dn,N при условии, что log 2N
log2 n неограни-
Наконец заметим, что при k ≤ m из условий теоремы и сделанного пред- ченно возрастает при n → ∞. Сделаем это следующим образом. Сначала
положения следуют неравенства для произвольной области D из Bn введем функцию µ, определив ее равен-
ством
2n−k+1 ≥ 2n−m+1 > |D0 | ≥ |Dk−2
| ≥ |Dk−1
|. µ(D) = min rank f,
Поэтому очевидно, что леммой 12.2 можно воспользоваться в общей слож- в котором минимум берется по всем инъективным на области D линейным
ности не менее m раз, а получившийся в результате линейный (n − m, n)- операторам. Затем величину µ(D) оценим снизу для почти всех областей
оператор fm ◦ · · · ◦ f1 будет инъективным на области D. Теорема доказана. из Dn,N .
Переформулируя теорему 12.6 в терминах кодов, исправляющих ошиб- √
ки, получим следующее утверждение, обобщающее доказанное выше нера- Теорема 12.9. Пусть n ≤ N ≤ 2 n2 2n . Тогда при n → ∞ для почти
венство Варшамова–Гилберта. всех D ∈ Dn,N
µ(D) ≥ 2 log2 N − 2 log2 n − 2.
Теорема 12.7.
√ Для любого множества ошибок C ⊆ Bn , состоящего не
более чем из 2n наборов, найдется такой линейный (n, m)-код, исправля- Доказательство. Пусть f — произвольный линейный (m, n)-оператор.
ющий ошибки из этого множества, что Через M (f, N ) обозначим число областей из Dn,N , на которых оператор f
является инъективным. Легко видеть, что для каждой такой области D ни-
2n−m+1 > |C | + 1. какие два набора из D не принадлежат одному и тому же смежному классу
Из теоремы 12.6 легко извлекается верхняя оценка на ранг инъектив- пространства Bn по ядру оператора f . Поэтому для любого оператора ранга
ного на произвольном множестве линейного оператора. Соответствующую k≤m k m
2 2
теорему приведем без доказательства. M (f, N ) = 2(n−k)N ≤ 2(n−m)N . (12.14)
N N
√ Теорема 12.8. Для любой области D ⊆ B , состоящей не более чем из
n
Оценим снизу натуральный логарифм правой части последнего равенства. 12.5. Пусть (En−k H) — проверочная матрица линейного кода. Найти по-
b−x выпукла вниз при a > b > 0 и x ∈ [0, b), то
Так как функция ln a−x рождающую матрицу этого кода.
12.6. Какие ошибки исправляет код с проверочной матрицей:
2n (2n − 1) . . . (2n − N + 1) 2n − (N − 1)/2
ln ≥ N ln m ≥ ⎛ ⎞
2m (2m − 1) . . . (2m − N + 1) 2 − (N − 1)/2 ⎛ ⎞ 0 00 1 1 11
1 − (N − 1)/2 · 2n 00 0 11 1 1 ⎜0 1 1 0 0 1 1 ⎟
⎜ ⎟
≥ N ln 2n−m + N ln . ⎜0 1 1 0 0 1 1⎟ ⎜1 0 1 0 1 0 1 ⎟
1 − (N − 1)/2 · 2m a) H = ⎜ ⎟ ⎜ ⎟
⎝1 0 1 0 1 0 1⎠ ; b) H = ⎜0 0 1 1 1 1 0⎟ .
(12.17) ⎜ ⎟
11 1 11 1 1 ⎝0 1 0 0 1 1 1 ⎠
Теперь оценим последнее слагаемое в правой части (12.17). Для этого ис- 1 10 1 1 10
пользуем справедливое при 1 > y ≥ x ≥ 0 неравенство 1−x 1−y ≥ 1 − x + y и
справедливое при x ∈ [0, 1) неравенство ln(1 + x) ≥ x2 . Так как m < n и Найти соответствующую порождающую матрицу G и определить па-
N < 2m , то раметры кода.
12.7. Показать, что любой код длины n = 2k с минимальным расстоянием
1 − (N − 1)/2 · 2n
N − 1
1 1 N (N − 1)
N ln ≥ N ln 1 + − ≥ . (12.18) k содержит не более 2n слов.
1 − (N − 1)/2 · 2m 2 2m 2n 4 · 2m 12.8. Линейный (n, k)-код G называется полиномиальным с порождаю-
щим g(x), если его элементы являются наборами коэффициентов
Из (12.15)–(12.18) следует, что
многочленов степени n − 1, каждый из которых делится на мно-
1 N (N − 1) гочлен g(x). Сформулировать и доказать аналог теоремы 12.7 для
ln 2mn 2(n−m)N ≥ N ln 2n−m + ,
δ 4 · 2m полиномиальных кодов.
12.9. Какие ошибки исправляет полиномиальный код длины 31 с порож-
или, после очевидных преобразований,
дающим многочленом x5 ⊕ x2 ⊕ x ⊕ 1?
N (N − 1) 12.10. Говорят, что код G длины n исправляет пачки ошибок длины s, если
2m ≥ .
4(nm ln 2 − ln δ) множество ошибок этого кода состоит из всех тех наборов длины
n, ненулевые компоненты которых расположены в s идущих друг
Логарифмируя последнее неравенство по основанию 2, видим, что при лю- за другом разрядах, т. е. в каждом таком наборе номера первой и
бой постоянной δ, начиная с некоторого n имеет место неравенство последней ненулевой компонент отличаются не более чем на s + 1.
m ≥ 2 log2 N − 2 log2 n − 2. Оценить мощность максимального кода длины n, исправляющего
ошибки длины s.
Теорема доказана. 12.11. Пусть Fq — поле из q элементов, G = {g1 , . . . , gm } и C = {c1 , . . . , cl }
подмножества множества Fn . Множество G называется q-ичным ко-
дом исправляющим аддитивные ошибки из множества C, если C
12.7 Задачи содержит нулевой набор и gi + cs = gj + ct для любых 1 ≤ i, j ≤ m и
любых 1 ≤ s, t ≤ l. Сформулировать и доказать аналог теоремы 12.7
12.1. Показать, что если линейный (n, k)-код имеет минимальное рассто-
для q-ичных кодов.
яние d, то n − k + 1 ≥ d.
12.12. Код G ⊆ Fnq исправляющий t ошибок называется совершенным, если
12.2. Пусть G — линейный (n, k)-код. Доказать, что если код G имеет
для любого элемента v из Fnq найдется такой элемент g из G, что
хотя бы одно слово нечетного веса, то все кодовые слова четного
расстояние Хемминга между v и g не превосходит t. Совершенный
веса образуют (n, k − 1)-код.
q-ичный код исправляющий одиночные ошибки называется обобщен-
12.3. Пусть x — натуральноее число не превосходящее 15. Какое мини-
ным или q-ичным кодом Хемминга. Описать проверочную матрицу
мальное количество вопросов надо задать, чтобы определить x, если
q-ичного кода Хемминга. При каких n существуют q-ичные коды
на каждый вопрос дается ответ "да"или "нет и на один из вопросов
Хемминга длины n.
может быть дан неверный ответ? Сформулировать вопросы опреде-
12.13. Описать конструкцию q-ичного БЧХ-кода. Написать проверочную
ляющие x.
матрицу троичного БЧХ-кода длины 26 исправляющего две ошибки.
12.4. Пусть k — натуральное. Для заданного k найти максимальное n, для
12.14. Найти какой-либо многочлен g(x) ∈ Z5 [x], являющийся порождаю-
которого существует линейный (n, n − k)-код, исправляющий одну
щим многочленом БЧХ-кода длины 24.
ошибку.
A.2. Кольца 183
Конечные поля
и только они. Известно, что взаимная простота чисел n и a эквивалентна
существованию таких целых k и m, что kn + ma = 1. Из этого равенства
следует, что
m · a = 1 (mod n). (A.1)
Поэтому единица, порождающий элемент в (Zn , +), является m-й степенью
В этом дополнении приводятся используемые в различных разделах дис- элемента a. Следовательно, a — порождающий элемент в (Zn , +). С другой
кретной математики сведения о конечных полях, их структуре и свойствах. стороны, если a — порождающий элемент, то единица должна быть степе-
нью a, т. е. должно существовать целое m, для которого справедливо (A.1),
откуда в свою очередь следует взаимная простота n и a. Теорема доказана.
A.1 Циклические группы
Простым следствием двух предыдущих теорем является следующее
Рассматривая множество Zn = {0, 1, . . . , n − 1} с операциями сложения и утверждение.
умножения по модулю n, элементы этого множества будем заключать в Теорема A.4. Пусть m делит n. В любой конечной циклической группе
квадратные скобки и отмечать нижним индексом n, т. е. если k, m ∈ Z, то порядка n существует ϕ(m) элементов порядка m.
[k]n , [m]n ∈ Zn , и арифметические операции над [k]n и [m]n выполняются
по модулю n. Доказательство. Каждый элемент порядка m порождает подгруппу
такого же порядка. Так как в циклической группе есть только одна под-
Теорема A.1. Любая конечная циклическая группа порядка n изоморф- группа порядка m, то все элементы порядка m принадлежат одной и той
на группе (Zn , +). же подгруппе и являются ее порождающими элементами. Теорема доказа-
на.
Доказательство. Пусть конечная циклическая группа G порядка n по-
рождается элементом g. Рассмотрим отображение f : g k → k. Тогда для
любых элементов g1 = g k и g2 = g m группы G имеем: A.2 Кольца
k m k+m
f (g1 g2 ) = f (g g ) = f (g ) = [k + m]m = Множество K с определенными на нем бинарными операциями + и ∗ назы-
= [k]n + [m]n = f (g k ) + f (g m ) = f (g1 ) + f (g2 ). вается кольцом, если:
(1) множество K с операцией + является абелевой группой;
Таким образом f — изоморфизм. Теорема доказана. (2) множество K с операцией ∗ является полугруппой;
(3) для всех a, b и c из множества K выполняются законы дистрибутив-
Теорема A.2. Пусть m делит n. В любой конечной циклической группе ности:
порядка n существует единственная подгруппа порядка m. Все подгруппы a ∗ (b + c) = a ∗ b + a ∗ c, (b + c) ∗ a = b ∗ a + c ∗ a.
циклической группы циклические.
Группа (K, +) называется аддитивной группой кольца, а ее единичный эле-
Доказательство. В силу теоремы A.1, достаточно показать, что дока- мент — нулевым элементом кольца. Нулевой элемент кольца обозначается
зываемое свойство справедливо для (Zn , +). Прежде всего отметим, что по символом 0.
крайней мере одна подгруппа порядка m существует. Эта подгруппа обра- Кольцо K называется кольцом с единицей, если существует такой эле-
зована числами, делящимися на d = n/m: 0, d, . . . , (m − 1)d, порождается мент 1, что a ∗ 1 = e ∗ 1 для любого a ∈ K.
элементом d, и поэтому является циклической. Отсутствие других подгрупп Кольцо K называется коммутативным, если операция ∗ коммутативна.
следует из того, что для каждого элемента a такой подгруппы должно вы- Кольцо K называется кольцом без делителей нуля, если из равенства
полняться равенство m · a = 0 (mod n), т. е. каждый ее элемент должен a ∗ b = 0 следует либо a = 0, либо b = 0.
182
184 Дополнение A. Конечные поля A.3. Кольцо многочленов 185
Лемма A.1. В кольце без делителей нуля выполняется закон сокраще- Многочлены, не имеющие общих делителей, называются взаимнопростыми.
ния: если c = 0 и ac = bc, то a = b. Легко видеть, что (a(x), b(x)) = 1 для любых взаимнопростых многочленов
a(x) и b(x).
Доказательство. Из равенства ac = bc следует, что (a − b)c = 0, и так
как c = 0 и в кольце нет делителей нуля, то a − b = 0, т. е. a = b. Лемма Теорема A.6. Пусть F — поле, a(x) и b(x) — многочлены над F. Нену-
доказана. левой нормированный многочлен минимальной степени d(x), удовлетво-
Коммутативное кольцо с единицей 1 = 0, в котором каждый ненулевой ряющий равенству
элемент обратим, называется полем. Множество ненулевых элементов поля d(x) = a(x)s(x) + b(x)t(x), (A.2)
образует коммутативную группу, которая называется мультипликативной где s(x) и t(x) — многочлены над F, является наибольшим общим делите-
группой поля, а ее единичный элемент называется единичным элементом лем многочленов a(x) и b(x).
(единицей) поля. Нетрудно видеть, что полями являются множества Q, R,
C, Zp при простом p, с обычными для этих множеств операциями сложения Доказательство. Покажем, что a(x) делится на d(x). Представим a(x)
и умножения. в виде a(x) = p(x)d(x) + q(x), где deg q(x) < deg d(x). Тогда
Далее сумму k одинаковых элементов x поля F будем обозначать через
k · x. Характеристикой поля F называется минимальное натуральное число q(x) = a(x) + p(x)d(x) = a(x) + p(x)(a(x)s(x) + b(x)t(x)) =
m для которого m · 1 = 0, а если такого числа нет, то говорят, что характе- = a(x)(1 + p(x)s(x)) + b(x)(p(x)t(x)) = a(x)s (x) + b(x)t (x),
ристика поля равна нулю. Поле называется конечным, если оно состоит из
конечного числа элементов. Нетрудно видеть, что характеристика любого где s (x) = 1 + p(x)s(x) и t (x) = p(x)t(x). Так как d(x) — ненулевой нор-
конечного поля является простым числом. мированный многочлен минимальной степени, удовлетворяющий (A.2), то
Подмножество F элементов поля F называется подполем поля F, если F q(x) = 0 и, следовательно, a(x) делится на d(x). Аналогичным образом
является полем. Если F — подполе поля F, то F называется расширением доказывается делимость на d(x) числа b(x). Следовательно, d(x) являет-
поля F . Поле называется простым, если оно не имеет собственного под- ся общим делителем многочленов a(x) и b(x). Теперь покажем, что d(x)
поля. Очевидно, что при любом простом p поле Zp будет простым. Также будет наибольшим общим делителем. Действительно, если a(x) и b(x) де-
нетрудно видеть, что в любом конечном поле существует простое подполе, лятся на d(x)d (x), где deg d (x) > 1, то в (A.2) правая часть будет делиться
порожденное его нулевым и единичным элементами. на d(x)d (x), а левая не будет. Следовательно, d(x) = (a(x), b(x)). Теорема
доказана.
Многочлен p(x) называется неприводимым над полем F, если он не имеет
A.3 Кольцо многочленов делителей ненулевой степени над этим полем. Из определения неприводи-
мого многочлена легко следует, что любой многочлен можно представить
Пусть F — поле. Многочлен в виде произведения неприводимых многочленов, например, в Z2 [x] имеет
место равенство
p(x) = an xn + an−1 xn−1 + · · · + ai xi + · · · + a1 x + a0 ,
x4 + x = x · (x + 1)(x2 + x + 1).
где a0 , a1 , . . . , an ∈ F, назовем многочленом над полем F степени n отно- Лемма A.2. Если произведение a(x)b(x) многочленов a(x) и b(x) над
сительно переменной x если an = 0. Степень многочлена p(x) обозначим полем F делится на неприводимый многочлен p(x), то хотя бы один из
через deg p(x). Если коэффициент при старшей степени многочлена равен сомножителей также делится на p(x).
единице, то многочлен называется нормированным. Множество, состоящее
из всех многочленов любой конечной степени над F, обозначим через F[x]. Доказательство. Допустим, что утверждение леммы не верно. Тогда
Без доказательства приведем следующее очевидное утверждение. ни один из сомножителей не делится на p(x). Следовательно, (a(x), p(x)) = 1
и (b(x), p(x)) = 1, и из теоремы A.6 следует, что найдутся такие многочлены
Теорема A.5. Пусть F — поле. Тогда F[x] — коммутативное кольцо с s1 (x), s2 (x) и t1 (x), t2 (x), что
единицей и без делителей нуля.
1 = s1 (x)a(x) + s2 (x)p(x), 1 = t1 (x)b(x) + t2 (x)p(x).
Любой многочлен c(x), который делит многочлены a(x) и b(x), называ-
ется общим делителем этих многочленов. Нормированный многочлен наи- Перемножив эти равенства, получим, что
большей степени среди общих делителей многочленов a(x) и b(x) называет-
ся их наибольшим общим делителем и обозначается символом (a(x), b(x)). 1 = (s1 (x)a(x) + s2 (x)p(x)) · (t1 (x)b(x) + t2 (x)p(x)) =
186 Дополнение A. Конечные поля A.4. Поле многочленов 187
= (s1 (x)t1 (x)) · a(x)b(x)+ Лемма A.4. Многочлен f (x) над полем F делится на двучлен x − α, где
+ (s2 (x)t1 (x)b(x) + s1 (x)t2 (x)a(x) + s2 (x)t2 (x)p(x)) · p(x), α ∈ F, тогда и только тогда, когда f (α) = 0.
т. е., в силу теоремы A.6 многочлены a(x)b(x) и p(x) взаимнопросты. Про- Доказательство. Если многочлен f (x) делится на x − α, то f (x) =
тиворечие. Лемма доказана. h(x)(x − α). Тогда f (α) = h(α)(α − α) = 0. С другой стороны, f (x) =
h(x)(x − α) + β, и если f (α) = 0, то легко видеть, что β = 0. Следовательно
Лемма A.3. Если произведение a1 (x)a2 (x) · · · an (x) многочленов ai (x)
f (x) делится на x − α. Лемма доказана.
над полем F делится на неприводимый многочлен p(x), то хотя бы один
из сомножителей также делится на p(x). Теорема A.8. Многочлен f степени n над полем F имеет в поле F не
Доказательство. Лемму докажем индукцией по числу сомножителей. более n корней.
Случай n = 2 доказан в предыдущей лемме. Допустим, утверждение леммы
справедливо для любых произведений, содержащих не более k сомножите- Доказательство. Теорему докажем индукцией по степени многочле-
лей. Тогда если произведение (a1 (x)a2 (x) · · · ak (x))ak+1 (x) делится на p(x), на. Очевидно, что ненулевой многочлен нулевой степени не имеет корней.
то из леммы A.2 следует, что либо a1 (x)a2 (x) · · · ak (x), либо ak+1 (x) делит- Этот случай (deg f = 0) положим в основание индукции. Допустим, что
ся на p(x). В первом случае утверждение леммы следует из предположения утверждение теоремы справедливо для всех многочленов степени не более
индукции. Во втором случае справедливость леммы очевидна. Лемма дока- k. Пусть deg f = k + 1. Если многочлен f (x) в поле F не имеет корней, то
зана. утверждение теоремы очевидно. Пусть α — корень многочлена f (x). Тогда
в силу леммы A.4 многочлен f (x) делится на x − α, т. е. f (x) = h(x)(x − α),
Теорема A.7. Каждый многочлен над полем F единственным образом где многочлен k-й степени h(x) по предположению индукции имеет в F не
раскладывается в произведение неприводимых многочленов. более k корней. Следовательно, f имеет в поле F не более k + 1 корней.
Доказательство. Теорему докажем методом математической индукци- Теорема доказана.
ей. В основание индукции положим многочлены степени 1, единственность
разложения которых очевидна. Предположим, что каждый многочлен, сте-
пень которого не превосходит n, разлагается на неприводимые множите- A.4 Поле многочленов
ли единственным образом. Покажем, что из этого предположения следует
Множество многочленов из Zp [x] степени не выше n−1 с операциями сложе-
единственность разложения любого многочлена степени n+1. Действитель-
ния и умножения по модулю многочлена h(x) степени n называется фактор-
но, если некоторый многочлен t(x) степени n + 1 имеет два различных раз-
кольцом Zp [x]/h(x). Нетрудно видеть, что Zp [x]/h(x) является коммутатив-
ложения в произведение неприводимых сомножителей, то
ным кольцом с единицей. Более того, справедлива следующая теорема.
t(x) = pk11 (x)pk22 (x) · · · pknn (x) = q1s1 (x)q2s2 (x) · · · qm
sm
(x).
Теорема A.9. Пусть p — простое, h(x) — многочлен из Zp [x] степени
Покажем, что p1 (x) совпадает с одним из многочленов qi (x). Так как непри- n неприводимый над полем Zp . Тогда фактор-кольцо Zp [x]/h(x) является
водимый многочлен p1 (x) делит произведение полем из pn элементов.
q1 (x) · · · q1 (x) q2 (x) · · · q2 (x) · . . . . . . · qm (x) · · · qm (x) (A.3) Доказательство. Кольцо Zp [x]/h(x) является коммутативным кольцом
s1 раз s2 раз sm раз с единицей и состоит из pn элементов, поэтому для доказательства теоре-
мы достаточно показать, что любой ненулевой элемент этого кольца име-
то в силу леммы A.3 многочлен p1 (x) также делит один из его сомножите-
лей. В (A.3) все сомножители — неприводимые многочлены. Следовательно, ет обратный по умножению. Так как (f (x), h(x)) = 1 для любого f (x) из
p1 (x) совпадает с одним из них. Без ограничения общности будем полагать, Zp [x]/h(x), то в силу теоремы A.6 найдутся такие многочлены s(x) и t(x),
что 1 = s(x)f (x) + t(x)h(x). Поэтому f (x)s(x) = 1 (mod h(x)), т. е. f (x)
что p1 (x) = q1 (x). Сокращая левую и правую части равенства (A.3) на p1 (x),
получим имеет обратный элемент в Zp [x]/h(x). Теорема доказана.
неприводимого над Zp многочлена любой степени n. В свою очередь, суще- h(q−1)/pi = 1 для каждого i. Сделаем это только для i = 1, так как легко
ствование такого многочлена является простым следствием теоремы 3.2 о видеть, что доказательства для разных значений i аналогичны.
%r (q−1)/p1
числе неприводимых многочленов, доказанной на стр. 40. Так как группа F∗q абелева, то h(q−1)/p1 = i=1 hi . Далее заметим,
В любом конечном поле F характеристики p существует простое подполе что произведение ((q − 1)/pki i ) · (q − 1)/p1 кратно q − 1, если i = 1. Поэтому
F из p элементов. Нетрудно видеть, что поле F будет линейным конечно-
(q−1)/p1
мерным пространством над своим простым подполем F , и поэтому число hi =1 при i = 1. (A.6)
элементов в поле F будет натуральной степенью числа элементов в его про- k
p 1
стом подполе F . Теорема доказана. Теперь найдем порядок элемента h1 . Так как h1 1
= 1, то порядок элемента
Теорема A.9 позволяет задавать конечные поля в явном виде и выпол- h1 равен ps1 , где s не превосходит k1 . Но из неравенства (A.5) следует, что
k1 −1
p (q−1)/p
нять в этих полях операции сложения и умножения. Для задания поля из h1 1 = gi i
= 1. Поэтому порядок элемента h1 равен pk11 . Учитывая,
p элементов выберем в Zp [x] неприводимый над Zp многочлен n-й степени
n
что (q − 1)/p1 не делится на pk11 , заключаем, что
h(x). Элементы поля будем представлять в виде упорядоченных наборов
(q−1)/p1
(a0 , . . . , an−1 ) длины n с элементами из Zp . При этом операция сложения h1 = 1. (A.7)
выполняется покомпонентно, а для умножения элементов a = (a0 , . . . , an−1 ) (q−1)/p1
Из (A.6) и (A.7) следует, что h = 1. Теорема доказана.
и b = (b0 , . . . , bn−1 ) надо вычислить произведение r(x) = r0 + · · · + rn−1 xn−1
многочленов a(x) = a0 + · · · + an−1 xn−1 и b(x) = b0 + · · · + bn−1 xn−1 по моду- Порождающий элемент мультипликативной группы конечного поля на-
лю многочлена h(x) и в качестве произведения ab взять набор (r0 , . . . , rn−1 ) зывается примитивным элементом этого поля. Из теоремы A.3 следует, что
коэффициентов многочлена r(x). в поле из q элементов существует ровно ϕ(q − 1) примитивных элементов.
В качестве примера рассмотрим поле F из 27 элементов. Для этого пона- Лемма A.5. Пусть g(x) — произвольный многочлен над Zp . Тогда
добится неприводимый нормированный многочлен третьей степени из Z3 [x].
Так как любой приводимый многочлен третьей степени над Z3 имеет корень (g(x))p = g(xp ).
в Z3 , то многочлен x(x + 1)(x + 2) + 1 = x3 + 2x + 1 будет неприводимым Доказательство. Так как p простое, то в правой части равенства
над Z3 . Элементами поля F будут наборы вида (a0 , a1 , a2 ), где ai ∈ Z3 . Най-
дем сумму и произведение элементов (1, 0, 1) и (0, 1, 2). Легко видеть, что p p−1 p p−k k p
(a + b)p = ap + a b + ···+ a b + ···+ abp−1 + bp
(1, 1, 1) + (0, 2, 2) = (1, 0, 0). Далее, так как 1 k p−1
(1 + x + x2 )(2x + 2x2 ) = 2x + x2 + x3 + 2x4 = все коэффициенты kp при k = 0, p делятся на p. Поэтому в поле характе-
ристики p
= (1 + 2x + x3 )(1 + 2x) + (2 + x), (a + b)p = ap + bp (A.8)
то (1, 1, 1) · (0, 2, 2) = (2, 1, 0). для любых a и b. Используя равенство (A.8) в качестве основания индукции,
индукцией по числу слагаемых нетрудно показать, что