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

ДИСКРЕТНАЯ МАТЕМАТИКА

Лекции господина Пережогина А.Л.

ФИТ НГУ, 2021

с опечатками сюда
Оглавление

1 Комбинаторика 4
1.1 Основные понятия . . . . . . . . . . . . . . . . . . . . . 4
1.2 Число сочетаний . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Формула включений-исключений . . . . . . . . . . . . 7
1.4 Первичная и вторичная спецификации . . . . . . . . . 14
1.5 4 вида выборок . . . . . . . . . . . . . . . . . . . . . . . 15
1.6 Числа Стирлинга . . . . . . . . . . . . . . . . . . . . . 16
1.7 Разбиение чисел . . . . . . . . . . . . . . . . . . . . . . 23
1.8 Диаграмма Ферре . . . . . . . . . . . . . . . . . . . . . 25
1.9 Производящие функции . . . . . . . . . . . . . . . . . . 28
1.10 Рекуррентные соотношения . . . . . . . . . . . . . . . . 35
1.11 Асимптотика . . . . . . . . . . . . . . . . . . . . . . . . 39

2 Теория графов 44
2.1 Основные понятия . . . . . . . . . . . . . . . . . . . . . 44
2.2 Изоморфизмы графов . . . . . . . . . . . . . . . . . . . 47
2.3 Подграфы и операции над графами . . . . . . . . . . . 49
2.4 Маршруты, связность . . . . . . . . . . . . . . . . . . . 51
2.5 Ориентированный граф . . . . . . . . . . . . . . . . . . 57
2.6 Помеченный граф, матрицы смежности, инцидентности 59
2.7 Двудольный граф . . . . . . . . . . . . . . . . . . . . . 61

2
2.8 Деревья . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.9 Остов, остовный подграф . . . . . . . . . . . . . . . . . 69
2.10 Связность, точки сочленения, мосты . . . . . . . . . . 71
2.11 Двусвязный граф, блоки . . . . . . . . . . . . . . . . . 74
2.12 Разделяющее множество, теорема Менгера . . . . . . . 78
2.13 Независимое множество, паросочетание и покрытия . 81
2.14 Чередующаяся и увеличивающая цепи . . . . . . . . . 90
2.15 Паросочетания в двудольном графе . . . . . . . . . . . 92
2.16 Обходы, эйлеровость . . . . . . . . . . . . . . . . . . . 100
2.17 Гамильтоновость . . . . . . . . . . . . . . . . . . . . . . 103
2.18 Планарность . . . . . . . . . . . . . . . . . . . . . . . . 108
2.19 Как определить планарный граф или нет? . . . . . . . 115
2.20 Алгоритм укладки двусвязного графа на плоскость . 116
2.21 Раскраска вершин . . . . . . . . . . . . . . . . . . . . . 120
2.22 Карты и их раскраски . . . . . . . . . . . . . . . . . . . 128
2.23 Раскраска рёбер . . . . . . . . . . . . . . . . . . . . . . 132

3 Булевы функции 138


3.1 Основные понятия . . . . . . . . . . . . . . . . . . . . . 138
3.2 Замыкания систем булевых функций . . . . . . . . . . 147
3.3 Полином Жегалкина . . . . . . . . . . . . . . . . . . . 151
3.4 Методы получения АНФ . . . . . . . . . . . . . . . . . 152
3.5 Классы булевых функций . . . . . . . . . . . . . . . . . 155
3.6 Методы построения DC (f ) . . . . . . . . . . . . . . . . 168
3.7 Ограниченно–детерминированные функции . . . . . . 171
3.8 Автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.9 Автоматы–распознаватели . . . . . . . . . . . . . . . . 181
3.10 Полиномиальная сводимость комбинаторной задачи . 192
Глава 1

Комбинаторика

1.1 Основные понятия


Определение
Семейство множеств {A1 , . . . , An } называется покрытием мно-
жества A, если A = A1 ∪ . . . ∪ An .
Покрытие {A1 , . . . , An } множества A называется разбиением, ес-
ли при этом

1. Ai 6= ∅ ∀i

2. Ai ∩ Aj = ∅ ∀i, j : i 6= j

Лемма 1.1 (правило суммы)


Для любого разбиения конечного множества A = A1 t . . . t An ,
|A| = |A1 | + · · · + |An |.
α ∈ A можно выбрать n способами, β ∈ B можно выбрать m
способами, "α или β" можно выбрать n + m способами.
1.2. Число сочетаний 5

Следствие 1.1
Пусть A = A1 ∪ . . . ∪ An — покрытие, тогда |A| 6 |A1 | + · · · + |An |.

1.2 Число сочетаний


Определение
Число сочетаний из n по k — количество выборов k-элементных
подмножеств n-множества. !
n
Обозначение: Cnk =
k

Лемма 1.2 (тождество Паскаля)


! ! !
n n−1 n−1
= +
k k k−1

Доказательство:
Рассмотрим множество A : |A| = n, x ∈ A
I случай: x  содержится
 в подмножестве из k элементов.
n−1
... ..... ⇒
x |{z}
k−1
k−1
| {z }
n−1
 II случай:
 x не содержится в подмножестве из k элементов.
n−1
k

Так как случаи не пересекаются, получаем


     
n n−1 n−1
= +
k k−1 k
1.2. Число сочетаний 6

Лемма 1.3 (число сочетаний)

n!
Cnk =
k!(n − k)!

Доказательство:
Индукция по n:
n = 1, n = 0: упражнение.
n>2:
Из тождества Паскаля
! ! !
n n−1 n−1
= + .
k k k−1

Значит, по предположению индукции,


 
n (n − 1)! (n − 1)! n!
= + =
k k!(n − 1 − k)! (k − 1)!(n − k)! k!(n − k)!

Следствие 1.2
! !
n n
=
k n−k

Лемма 1.4 (бином Ньютона)

n
!
X n
(a + b)n = ak bn−k
k=0
k
1.3. Формула включений-исключений 7

Доказательство:
Представим степень в виде произведения

(a + b)n = (a + b) · · · (a + b)

Из каждой скобки, при перемножении, можно выбрать либо a, либо


 
n
b, допустим выбрали k раз a, выбрать k скобок из n можно
k
способами, а из оставшихся n − k скобок будет выбрано b.

Следствие 1.3
n  
X n
1. = 2n
k=0
k

n
! 
X n 0, n > 0
2. (−1)k =
k=0
k 1, n = 0

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


Лемма 1.5
Пусть A — конечное множество, A1 , A2 , A3 ⊆ A, тогда

|A \ (A1 ∪ A2 ∪ A3 )| = |A| − (|A1 | + |A2 | + |A3 |) +


|{z} | {z }
s0 s1

+ (|A1 ∩ A2 | + |A1 ∩ A3 | + |A2 ∩ A3 |) −


| {z }
s2

− |A1 ∩ A2 ∩ A3 | = s0 − s1 + s2 − s3
| {z }
s3
1.3. Формула включений-исключений 8

Теорема 1.1 (формула включений-исключений)

 A — конечное множество, A1 , . . . , An ⊆ A,
Пусть
|A|, X k=0


sk = |Ai1 ∩ . . . ∩ Aik |, 1 6 k 6 n

{i1 ,...,ik }⊆{1,...,n}

16i1 <···<ik 6n
Тогда
n
X
|A \ (A1 ∪ . . . ∪ An )| = s0 − s1 + s2 − · · · = (−1)k sk
k=0

Доказательство:
Первый способ: индукция по n — упражнение.
Второй способ: пусть x ∈ A, рассмотрим количество вхождений
x в правую часть равенства:
Допустим, что он входит в t подмножеств Ai1 , . . . , Ait . Сколько раз
мы посчитаем его справа?
s0 = |A| — 1 раз,
s1 = |A1 | + · · · + |An | — t!раз,
t
s2 = |A1 ∩ A2 | + · · · — раз,
2
..
. !
t
st = = 1 раз.
t
Получаем:
! ! t
! 
t 0, t > 0
t t t
X
j
1−t+ + · · · + (−1) = (−1) =
2 t j=0
j 1, t = 0
То есть, если x входил хотя бы в одно подмножество, то мы его ни
разу не посчитаем, что нам и требуется, ведь нам нужна мощность
A без подмножеств, а если x не входил ни в одно подмножество, то
1.3. Формула включений-исключений 9

мы посчитаем его один раз.

Определение
ϕ(m), m ∈ N — функция Эйлера, количество чисел взаимнопро-
стых с m, и не превосходящих m.

Теорема 1.2
Известно, что ∀m > 2 m = pα1 1 · · · pαnn , тогда
n  
Y 1
ϕ(m) = m 1− =
i=1
pi
!
1 1 1 X 1 X 1
=m 1− − − ··· − + − + ···
p1 p2 pn 16i<j6n pi pj 16i<j<k6n pi pj pk

Доказательство:
Пусть A — все числа, не превосходящие m: {1, . . . , m}, Ai — все
числа из A, которые делятся на pi , тогда

ϕ(m) = |A \ (A1 ∪ . . . ∪ An )|
s0 = |A| = m
n
m Xm
|Ai | = , s1 =
pi p
i=1 i
m X m
|Ai ∩ Aj | = , s2 =
p i pj pp
16i<j6n i j
X m
|Ai1 ∩ . . . ∩ Aik |, sk =
p · · · pik
16...6n i1
1.3. Формула включений-исключений 10

Тогда по формуле включений-исключений

ϕ(m) = |A \ (A1 ∪ . . . ∪ An )| =
n
!
X X 1
=m 1+ (−1)k =
k=1 16i1 <...<ik
p · · · p ik
6n i1
n  
Y 1
=m 1−
i=1
pi

Определение
(a1 , . . . , an ) — кортеж (упорядоченная последовательность) из n
элементов a1 , . . . , an на множествах A1 , . . . , An , где ai ∈ Ai для
1 6 i 6 n, ai — i-ая координата,
(a1 , . . . , an ) = (b1 , . . . , bn ) ⇔ ai = bi ∀i

A1 × · · · × An = {(a1 , . . . , an ) ai ∈ Ai i = 1, . . . , n} — декартово
произведение, A1 = . . . = An = A, An = |A × ·{z · · × A} .
n

Лемма 1.6
a) A × (B ∪ C) = (A × B) ∪ (A × C)
b) A × (B ∩ C) = (A × B) ∩ (A × C)
c) A × ∅ = ∅ × A = ∅

Лемма 1.7 (правило произведения)


Если α ∈ A можно выбрать n способами, и для каждого такого
выбора β ∈ B можно выбрать m способами, то пару "α и β" можно
выбрать nm способами.
|A1 × · · · × An | = |A1 | · · · |An |
1.3. Формула включений-исключений 11

Следствие 1.4

|{0, 1, . . . , k − 1}n | = k n

Определение
A — n-множество, (a1 , . . . , ak ) ∈ Ak , ai 6= aj при i 6= j — k-
размещение из n элементов Akn

Лемма 1.8
Число k-размещений из n элементов равно

[n]k = n(n − 1) · · · (n − k + 1), k 6 n.

Доказательство:
Индукция по k:
k = 1 : [n]1 = n
k > 1 : [n]k = [n]k−1 (n − k + 1)

Пример (задача о беспорядках):


Выкладываем 2 колоды карт по 2 карты, π(i) — карта второй
колоды на i-ой позиции или перестановка карты из 1 колоды на i-й
позиции.
1 π(1)
2 π(2)
..
.
n π(n)
1.3. Формула включений-исключений 12

Сколько перестановок n элементов, в которых ни один элемент не


остался на месте?

Теорема 1.3
Число перестановок, в которых ни один элемент не остался на
месте равно
n
X (−1)k
n!
k=0
k!

Доказательство:
Пусть A — все перестановки, Ai — перестановки, в которых π(i) =
i, тогда |A \ (A1 ∪ . . . ∪ An )| — искомое число.

s0 = |A| = n!

|Ai | = (n − 1)!
n  
X n
s1 = |Ai | = (n − 1)!
i=1
1

|Ai ∩ Aj | = (n − 2)!
 
X n
s2 = |Ai ∩ Aj | = (n − 2)!
16i<j6n
2
..
.
 
n
sk = (n − k)!
k
1.3. Формула включений-исключений 13

Теперь используем формулу включений-исключений


n n  
k n
X X
k
|A \ (A1 ∪ . . . ∪ An )| = (−1) sk = (−1) (n − k)! =
k=0 k=0
k
n
X n!
= (−1)k (n − k)! =
k=0
k!(n − k)!
n
X (−1)k
= n!
k=0
k!

Теорема 1.4
Число сюръективных отображений f (x) : X → Y , где
|X| = |{x1 , . . . , xm }|, |Y | = |{y1 , . . . , yn }| равно
n  
k n
X
n
(−1) (−1) · km
k=1
k

Доказательство:
Пусть A — множество всех отображений X → Y , Ai — множество
всех отображений X → Y , в которых yi не имеет прообраза,
(A \ (A1 ∪ . . . ∪ An )) — множество отображений, в которых все эле-
менты из Y имеют прообраз.

|A| = nm
|Ai | = (n − 1)m
|Ai1 ∩ . . . ∩ Ait | = (n − t)m
 
X
m n
st = (n − t) = (n − t)m
16i1 <...<it 6n
t
n   n  
k n i=n−k n m
X X
|A \ (A1 ∪ . . . ∪ An )| = (−1) (n − k)m = n−i
(−1) i
k=0
k i=1
i
1.4. Первичная и вторичная спецификации 14

1.4 Первичная и вторичная специфика-


ции
Определение
X = {x1 , . . . , xn } (α1 , . . . , αn ) αi ∈ N ∪ {0}, α1 + · · · + αn = m. Со-
вокупность из m элементов множества X, в которой xi встречается
αi раз ∀i, называется m-мультимножеством первичной специфи-
кации [xα1 1 , . . . , xαnn ], порожденной множеством X.
< x1 , . . . , x1 , x2 , . . . , x2 , . . . , xn , . . . , xn >, α1 , . . . , αn — показатели пер-
| {z } | {z } | {z }
α1 α2 αn
вичной спецификации.
Пример:
X = {x1 , x2 , x3 , x4 , x5 , x6 } — множество.
[x31 , x02 , x23 , x24 , x05 , x36 ] — первичная спецификация.
< x1 , x1 , x1 , x3 , x3 , x4 , x4 , x6 , x6 , x6 > — 10-мультимножество.

Определение
Пусть < α1 , . . . , αn > — мультимножество. Если среди αi нулей
β0 штук, единиц β1 штук и т.д., то [0β0 , . . . , mβm ] — вторичная спе-
цификация для исходного мультимножества.
Пример:
< α1 , . . . , αn > = < 3, 0, 2, 2, 0, 3 >⇒ [02 , 10 , 22 , 32 ]

Определение
Количество m-мультимножеств над {x1 , . . . , xn } — m-сочетаний
из n элементов с повторениями, C(n,
b m) — их количество.
1.5. 4 вида выборок 15

Лемма 1.9

n−1 m
C(n,
b m) = Cn+m−1 = Cn+m−1

Доказательство:
C(n,
b m) равно количеству решений в целых числах уравнения
m+n−1
z }| {
α1 + · · · + αn = m. 0| .{z
. . 0} 1 |0 .{z . . 0}, n − 1 — количество
. . 0} 1 . . . 1 |0 .{z
α1 α2 αn
единиц. Расставляем в m + n − 1 позицию n − 1 разделитель.

1.5 4 вида выборок


Мы рассмотрели 4 вида выборок:
1) Упорядоченная без повторений: [n]k .
2) Упорядоченная с повторениями: nk .
3) Неупорядоченная без повторений: Cnk .
4) Неупорядоченная с повторениями: C(n,
b k).

Определение
Pm (α1 , . . . , αn ) — количество m-кортежей из m-мультимножества.

Лемма 1.10
∀m, α1 , . . . , αn : α1 + · · · + αn = m

m!
Pm (α1 , . . . , αn ) =
α1 ! . . . αn !
1.6. Числа Стирлинга 16

Доказательство:
(x1 , . . . , x1 , . . . , xn , . . . , xn ), x1 , . . . , x1 можно упорядочить α1 ! раз.
| {z } | {z }
α1 αn
α1 !α2 ! . . . αn ! · Pm (α1 , . . . , αn ) = m!
Pm (α1 , . . . , αn ) — полиноминальный коэффициент.

Лемма 1.11 (обобщенный бином Ньютона)

X
(x1 + · · · + xn )m = Pm (α1 , . . . , αn )xα1 1 · · · xαnn
α1 ,...,αn
αi >0
α1 +···+αn =m

Доказательство:
Упражнение.

Следствие 1.5

X
Pm (α1 , . . . , αn ) = nm
α1 +···+αn =m
αi >0

1.6 Числа Стирлинга


Определение
Числа Стирлинга II рода S(n, k) — количество неупорядоченных
разбиений n-элементного множества на k непустых подмножеств.
Полагаем, что S(0, 0) = 1, S(n, 0) = 0, n > 0
Очевидно, что ∀n ∈ N : S(n, 1) = 1, S(n, n) = 1, S(n, k) = 0, при
k>n
1.6. Числа Стирлинга 17

Пример:
Пусть дано множество {1, 2, 3, 4}, тогда для него

S(4, 2) = |{{1}{2, 3, 4}, {2}{1, 3, 4}, {3}{1, 2, 4}, {4}{1, 2, 3}, {1, 2}{3, 4},
{1, 3}{2, 4}, {1, 4}{2, 3}}| = 7

Теорема 1.5 (рекуррентное соотношение для чисел


Стирлинга II рода)

S(n, k) = S(n − 1, k − 1) + k · S(n − 1, k)

Доказательство:
M —множество всех разбиений.
M1 — {a}-одноэлементное подмножество.
M2 = M \ M1
|M | = S(n, k)
|M1 | = S(n − 1, k − 1)
|M2 | = S(n − 1, k) · k
|M | = |M1 | + |M2 |
Разобьем на 2 случая:
1) Рассмотрим {a} как отдельное подмножество, тогда нам оста-
лось выбрать k − 1 подмножество, а элементов осталось n − 1.
2) Рассмотрим {a} как часть других подмножеств, тогда сначала
выберем k подмножеств из n − 1 элемента, а потом добавим {a}
в каждое подмножество, и получим в k раз больше подмножеств.
Случаи не пересекаются, значит используем правило суммы.
1.6. Числа Стирлинга 18

Теорема 1.6 (формула с биномиальными коэффи-


циентами для чисел Стирлинга II рода, не запоми-
нать)

n−1  
X n−1
∀k > 1, n > k S(n, k) = S(i, k − 1)
i=k−1
i

Доказательство:
M из теоремы 1.5.
Mt — а попал в t элементное подмножество.
n−1
Mt = · S(n − t, k − 1); 1 6 t 6 n − (k − 1)
t−1
По правилу суммы:
n−k+1
X n − 1
S(n, k) = |M | = |M1 |+· · ·+|Mn−k+1 | = S(n−t, k −1) =
t=1
t−1
k−1   n−1  
X n−1 X n−1
= S(i, k − 1) = S(i, k − 1)
i=n−1
n − i − 1 i=k−1
i

Теорема 1.7

k  
(−1)k X k
S(n, k) = (−1)i · in
k! i=1 i

Доказательство:
Сюръективное отображение из n-множества в k-множество ⇔
упорядоченное разбиение n-множества на k непустых подмножеств.
1.6. Числа Стирлинга 19

Определение
Число Белла — количество неупорядоченных разбиений n-
множества на непустые подмножества.
n
X
Положим B0 = S(0, 0), Bn = S(n, k)
k=0

Теорема 1.8 (рекуррентное соотношение для чисел


Белла)

n−1   n−1  
X n−1 X n−1
∀n > 1 Bn = Bi = Bn−1−i
i=0
i i=0
i

Доказательство (супер сложное, лучше использо-


вать доказательство с семинаров):

n n X
n−1  
X X n−1
Bn = S(n, k) = S(i, k − 1) =
k=1 k=1 i=k−1
i
n−1 i+1   X n−1   i+1
XX n−1 n−1 X
= S(i, k − 1) = S(i, k − 1) =
i=0 k=1
i i=0
i k=1
n−1   i n−1  
X n−1 X X n−1
= S(i, k) = Bi
i=0
i k=0 i=0
i

Доказательство (с семинара):
Выбираем один элемент из множества, в нём остаётся n − 1 эле-
мент, затем выбираем i элементов на каждом шаге, которые 
добавим

n−1
к этому множеству из одного элемента, сделать это можно
i
1.6. Числа Стирлинга 20

способами. Оставшиеся n − 1 − i элементов разбиваем на всевозмож-


ные подмножества и т.д.

Определение
Числом Стирлинга I рода s(n, k) называется количество неупо-
рядоченных разбиений n-множества на k непустых циклов.
Примеры:
s(0, 0) = s(n, n) = 1
s(n, 0) = s(0, n) = 0, n > 0
s(n, k) = 0, k > n
s(n, 1) = (n −1)!
n
s(n, n − 1) = = S(n, n − 1)
2
s(n, k) > S(n, k)

Теорема 1.9 (рекуррентное соотношение для чисел


Стирлинга I рода)

s(n, k) = s(n − 1, k − 1) + (n − 1) · s(n − 1, k), 0 < k 6 n

Доказательство
Пусть x некоторый элемент из множества. Разобъём на два слу-
чая:
1) Рассмотрим x как цикл из одного элемента, тогда осталось
получить k −1 цикл, а элементов осталось n−1, то есть s(n−1, k −1)
разбиений.
2) Рассмотрим x как часть других циклов, тогда сначала полу-
чим эти циклы, элементов осталось n − 1, циклов всё также k, то
1.6. Числа Стирлинга 21

есть s(n − 1, k) разбиений. Учитывая, что порядок элементов в цик-


ле важен, мы можем добавлять наш x в каждом цикле после раз-
ных элементов и каждый раз получать новое разбиение. Тогда надо
лишь понять сколько всего позиций во всех циклах, их столько же
сколько элементов в циклах, а их n − 1, то есть из каждого разбие-
ния можно получить n − 1 разбиение, итого в этом случае получаем
(n − 1) · s(n − 1, k) различных разбиений.
Случаи не пересекаются, значит используем правило суммы и
получаем требуемую формулу.

Теорема 1.10

n
X
n
x = S(n, k)[x]k , ∀n ∈ N
k=1

Доказательство:
Индукция по n:
n = 1 : x1 = [x]1
n > 2 : [x]k+1 = [x]k · (x − k)
x · [x]k = [x]k+1 + k · [x]k
Предп. n−1
n−1 инд.
X
n
x =x·x = x· S(n − 1, k) · [x]k =
k=1
n−1
X n−1
X
= S(n − 1, k)[x]k+1 + S(n − 1, k) · k[x]k =
k=1 k=1
n n−1 S(n−1,0)=0
X X S(n−1,n)=0
= S(n − 1, k − 1)[x]k + S(n − 1, k)k[x]k =
k=2 k=1
S(n−1,0)=0 n n
S(n−1,n)=0 X X
= S(n − 1, k − 1)[x]k + S(n − 1, k)k[x]k =
k=1 k=1
1.6. Числа Стирлинга 22
n
X n
X
= (S(n − 1, k − 1) + kS(n − 1, k))[x]k = S(n, k)[x]k
k=1 k=1

Теорема 1.11

n
X
[x]n = (−1)n−k s(n, k) · xk , ∀n ∈ N
k=1

Доказательство:
Индукция по n:
n = 1 : [x]1 = x (очевидно).
n > 1 : [x]n = [x]n−1 (x − (n − 1)) =
Xn−1 n−1
X
=x (−1)n−1−k s(n − 1, k)xk − (n − 1) (−1)n−1−k s(n − 1, k)xk =
k=1 k=1
n
X n−1
X
n−k−2 k
= (−1) s(n−1, k −1)x + (n−1)(−1)n−1−k+1 s(n−1, k)xk =
k=2 k=1
n
X n
X
n−k k
= (−1) s(n − 1, k − 1)x + (−1)n−k (n − 1)s(n − 1, k)xk =
k=1 k=1
n
X
= (−1)n−k (s(n − 1, k − 1) + (n − 1)s(n − 1, k))xk =
k=1
n
X
= (−1)n−k s(n, k)xk
k=1

Теорема 1.12 (связь между числами Стирлинга)



n
X 1, n = m
S(n, k)(−1)k−m s(k, m) =
0, n 6= m
k=1
1.7. Разбиение чисел 23

Доказательство:
Упражнение (следствие из теорем 1.10, 1.11).

1.7 Разбиение чисел


Определение
n = x1 + · · · + xk , x i > 0
I. Упорядоченное (2 + 1 6= 1 + 2)  
n−1
Если k фиксировать, то количество разбиений равно , рас-
k−1
ставляем k − 1 разделителей на n − 1 позицию.
Если k не фиксировать, то общее число разбиений равно 2n−1
II. Неупорядоченное (2 + 1 = 1 + 2)
x1 + · · · + xk = n, x1 > . . . > xk > 1
P (n, k) —количество неупорядоченных разбиений n на k натураль-
ных слагаемых.
P (n) —число разбиений n на натуральные слагаемые.
Xn
P (n, k) = P (n)
k=1
Пример:
n = 6, 6 = 5 + 1 = 4 + 2 = 3 + 3 = . . . = 1 + 1 + 1 + 1 + 1 + 1,
P (6) = 11, P (6, 3) = 3

Теорема 1.13 (рекуррентное соотношение для


неупорядоченного разбиения n на k слагаемых)

k
X
P (n, k) = P (n − k, i), ∀k, n : 0 < k < n
i=1
1.7. Разбиение чисел 24

Доказательство:
n = x1 + · · · + xk
(∗)n − k = (x1 − 1) + · · · + (xk − 1) = y1 + · · · + yk
∀i yi = xi − 1, y1 > . . . > yk > 0
Если s : ys > 0 ⇒ ys+1 = . . . = yk = 0 ⇒ n − k = y1 + · · · + ys , y1 >
. . . > ys > 1, то (∗) — разбиение n − k на s слагаемых, которых
P (n − k, s)
X k
P (n, k) = P (n − k, s)
s=1

Теорема 1.14
Количество разбиений n на различные слагаемые равно количе-
ству разбиений n на нечетные слагаемые.

Доказательство:
Qn — различные, Tn — нечётные. Нужно построить биекцию меж-
ду этими множествами.
f : Qn → Tn
n = x1 + · · · + xk , x1 > . . . > xk
xi = 2ti · yi , yi — нечётное (любое xi можно представить в таком
виде)
n = y1 + · · · + y1 + · · · + yk + · · · + yk
| {z } | {z }
2ti 2tk
Пример:
10 + 7 + 6 + 5 + 4 + 1 = 5 + 5 + 7 + 3 + 3 + 5 + 1 + 1 + 1 + 1 + 1 =
= 7 + 5 + 5 + 5 + 3 + 3 + 3 + 1 + 1 + 1 + 1 + 1 = 33
h : Tn → Qn
n = y1 + · · · + y1 + · · · + yk + · · · + yk , yi — нечётное.
| {z } | {z }
d1 dk
Любое di однозначно раскладывается по степеням двойки.
1.8. Диаграмма Ферре 25

di = 2δi,1 + · · · + 2δi,mi
X k
2δi,1 yi + · · · + 2δi,mi yi

n=
i=1
Пример:
n = 7| + 7 + 7 {z
+ 7 + 7 + 7} + |5 + 5 {z
+ 5 + 5} + |3 {z
+ 3} + |1 +{z
1 + 1} = 28 +
22 +21 22 21 21 +20
14 + 20 + 6 + 2 + 1
f (h(α)) = α, h(f (β)) = β ⇒ биекция ⇒ |Qn | = |Tn |

1.8 Диаграмма Ферре


Определение
x1 + · · · + xk = n, x1 > . . . > xk > 0
k строк точек: в i-й строке xi точек, расположенных в первых xi
столбцах.
Пример:
n=6+6+5+3+1+1
6m
z }| {

. . . . . .

. . . . . .





. . . . .
k


. . .

.



.

Теорема 1.15
1) P (n, k) равно количеству разбиений на слагаемые, наибольшее
из которых равно k.
2) P (n + k, k) равно количеству разбиений n на слагаемые, не
превосходящие k.
1.8. Диаграмма Ферре 26

3) Число симметричных разбиений числа n равно количеству его


разбиений на нечётные слагаемые.
4) Число разбиений числа n − k на m − 1 слагаемых, не превос-
ходящих k равно количеству разбиений n − m на k − 1 слагаемых,
не превосходящих m.

Доказательство:
1), 2), 3) — упражнение.

k
6k z }| {
. . . . . .
z
 }| {

 . . . . . 

. . . . .

 

.

 . . . . добавляем 

строку из 
.

k точек . . . . транспонируем
4) (m − 1) . . . ↔ m ↔
  . . .
. .

 

 


.


 . .

.

m
z
 }| { 6m
. . . . . .
z }| {


 . . . . .
. . . . .

 

. . . .

 


. . . . 
транспонируем
↔ k ↔ (k − 1) . . .
 . . . 
. . .

 

 

 . . . 


 .
.

Количество диаграмм одинаково для начальных данных и для по-
лученных, потому что ↔ — соответствующие биекции.

Определение
Cn — n пар скобок.
n = 1: ()
1.8. Диаграмма Ферре 27

n = 2: ()(), (())
n = 3: ()()(), (())(), ((())), (()()), ()(())
C0 = C1 = 1, C2 = 2, C3 = 5
Cn = C0 Cn−1 + C1 Cn−2 + · · · Cn−1 C0 . Такая последовательность на-
зывается числами Каталана.

Определение
 Числа Каталана — это последовательность:
0 n−1 + · · · + Cn−1 C0
C = C C
n
C 0 = 1

Закодируем скобочную структуру:


(— +1
)— −1
Тогда любая правильная скобочная структура из n пар скобок за-
даёт код b = (b1 , . . . , b2n ) ⊂ {−1; 1}2n :
Xk
1) bi > 0 ∀k : 1 6 k 6 2n − 1 (открывающих скобок в
i=1
каждой позиции должно быть больше, либо столько же, сколько
закрывающих).
2n
X
2) bi = 0 (количество открывающих скобок должно быть рав-
i=1
но количеству закрывающих).

Теорема 1.16
 
1 2n
Cn =
n+1 n
1.9. Производящие функции 28

Доказательство:
 
2n
Рассмотрим кортежи, удовлетворяющие 2 условию, таких .
n
Обозначим Wn — множество кортежей, удовлетворяющих 2 усло-
вию, но не удовлетворяющие
  1 условию.
2n
Тогда, Cn = − |Wn |.
n
Рассмотрим α = (α1 , . . . , αn ) ⊂ Wn .
i
X 2n
X
Пусть i — минимальное число такое, что αj = −1; αj = +1.
j=1 j=i+1
Сопоставим α → β = (β1 , . . . , βn ) = (−α1 , . . . , −αi , αi+1 , . . . , α2n ),
Vn — всевозможные кортежи β.
Таким образом, в β: "-1" n − 1 штука, "+1" n + 1 штука.
Рассмотрим β = (β1 , . . . , β2n ) ∈ Vn и наименьший s такой, что
Xs
βj = +1
j=1
Сопоставим этому кортежу (−β1 , −β2 , . . . , −βs , βs+1 , . . . , β2n ) ∈ Wn ,
количество "+1" и "-1" одинаковое.
−β1 + · · · + (−βs ) = −1  
2n
Получили биекцию между Wn и Vn ⇒ |Wn | = |Vn | = ⇒
    n−1
2n 2n 2n! 2n! 2n!
Cn = − = − =
n n−1 n!n! (n − 1)!(n + 1)! n!(n + 1)!

1.9 Производящие функции


Задача про кроликов
Вам подарили пару кроликов, первый месяц они растут, а затем
ежемесячно дают потомство в размере одной пары кроликов, ново-
рожденные кролики также месяц растут, а потом начинают размно-
жаться, при чем всегда только брат с сестрой. Вопрос: сколько пар
1.9. Производящие функции 29

кроликов будет в i-ый месяц?


a0 = 1
a1 = 1
a2 = 2
a3 = 3
..
.
ai = ai−1 + ai−2

Определение

Последовательность чисел{fn }n=0 называется последовательно-
1, n = 0, 1
стью Фибоначчи, если fn =
fn−1 + fn−2 , n > 2

Определение
Пусть есть последовательность чисел {an }∞
n=0 . Рассмотрим фор-
мальный степенной ряд:

X
2
A(t) = a0 + a1 t + a2 t + · · · = an t n
n=0

Данный ряд называется производящей функцией. Если A(t) сходится


в некоторой окрестности т. 0 к аналитической функции (функция в
замкнутом виде, не представлена в виде суммы ряда), то A(t) — тоже
производящая функция (краткая запись производящей функции).
Производящую функцию следует воспринимать как некий аппарат
для проверки свойств, мы знаем только, что A(0) = a0
Пример: {1}∞ n=0
A(t) = 1 + t + t + t3 + · · ·
2

A(t) = 1 + t(1 + t + t2 + · · · )
1.9. Производящие функции 30

A(t) = 1 + tA(t)
1
A(t) =
1−t

Свойства (операции) над производящими функци-


ями
Пусть есть A(t), B(t) — производящие функции последователь-
ностей {an }∞ ∞
n=0 , {bn }n=0 , α, β, c — константы тогда:
1) αA(t) + βB(t) — производящая функция последовательности
{αan + βbn }∞
n=0

2) A(t) · B(t) — производящая функция последовательности


{a0 bn + a1 bn−1 + · · · + an b0 }∞
n=0

3) tm A(t) — производящая функция последовательности


{0, . . . , 0, a0 , a1 , . . .}
| {z }
m

4) A(ct) — производящая функция последовательности {cn an }∞


n=0

0
5) tA (t) — производящая функция последовательности {nan }∞
n=0

Zt
A(t) − a0
6) dt — производящая функция последовательности
t
0
n a o∞
n
n n=1

A(t)
7) — производящая функция последовательности
( n )1∞− t
X
ai
i=0 n=0
1.9. Производящие функции 31

Элементарные производящие функции


∞  
α
X α n
(1 + t) = t ;
n=0
n

t
X tn
e = ;
n=0
n!
  X ∞ n
1 t
ln = ;
1−t n=0
n

X t2n+1
sin t = (−1)n ;
n=0
(2n + 1)!
∞ 2n
n t
X
cos t = (−1) .
n=0
(2n)!

Лемма 1.13

X
Пусть A(t) — производящая функция, тогда ∃! B(t) = bn tn
i=0
такая, что A(t) · B(t) = 1

Доказательство:
Пусть A(t) = a0 + a1 t + a2 t2 + · · · + an tn + · · ·
B(t) = b0 + b1 t + b2 t2 + · · · + bn tn + · · ·
Тогда,
A(t) · B(t) = a0 b0 + t(a0 b1 + a1 b0 ) + t2 (a0 b2 + a1 b1 + a2 b0 ) + · · ·
· · · + tn (a0 bn + a1 bn−1 + · · · + an−1 b1 + an b0 ) + · · · .
Необходимо, чтобы A(t) · B(t) = 1, т.е.
a0 b 0 = 1
a0 b 1 + a1 b 0 = 0
a0 b 2 + a1 b 1 + a2 b 0 = 0
..
.
a0 bn + a1 bn−1 + · · · + an−1 b1 + an b0 = 0
1.9. Производящие функции 32
..
.
Т.к. a0 6= 0 получим
1
b0 =
a0
a1 b 0 a1
b1 = − =− 2
a0 a0
a21 a2
b2 = 3 − 2
a0 a0
..
.
Единственность гарантируется тем, что bi зависят только от aj 0 6
j 6 i, которые однозначно задаются изначально.

Лемма 1.14
Производящая функция последовательности чисел Каталана
{Cn }∞
n=0 равна √
1 − 1 − 4t
C(t) =
2t

Доказательство:
∞ ∞
св-во 2
X X
n
C(t) = Cn t = C0 + (Cn−1 C0 + · · · + C0 Cn−1 )tn =
n=0 n=1 √
св-во 2 1 ± 1 − 4t
= 1 + t(C(t))2 ⇒ C(t) =
√ √ 2t p
1 − 1 − 4t (1 − 1 − 4t)(1 + 1 − 4t)
1) = √ =
2t 2t(1 + 1 − 4t)
1 − 1 + 4t 4t
= √ = √ =
2t(1 + 1 − 4t) 2t(1 + 1 − 4t)
2
= √ ;
1 + 1 − 4t
2
lim √ = 1.
t→0 1 + 1 − 4t
1.9. Производящие функции 33

1 + 1 − 4t 2
2) = √ ;
2t 1 − 1 − 4t
2
lim √ =∞⇒
t→0 1 − 1 − 4t √
⇒ 2tC(t) = 1 − 1 − 4t

Введём число Каталана II способом:


∞ 


1
X 1/2
1 − 4t = (1 − 4t) 2 = (−4t)n =
n=0
n

X 1/2(1/2 − 1)(1/2 − 2) . . . (1/2 − n + 1)
=1+ (−4t)n =
n=1
n!

X 1/2(−1/2)(−3/2) . . . (− 2n−3 )
=1+ 2
(−4t)n =
n=1
n!

X 1 · 3 · 5 · · · (2n − 3) n n
=1− 2 t =
n=1
n!

X 3 · 5 · · · (2n − 3)(n − 1)!
=1− 2n tn =
n=1
n!(n − 1)!

X 3 · 5 · · · (2n − 3) · 2 · 4 · · · · · (2n − 2) n
=1− 2t =
n=1
n!(n − 1)!

X (2n − 2)! n−1
= 1 − 2t t =
n=1
n!(n − 1)!

X (2n)! n
= 1 − 2t t .
n=0
(n + 1)!n!

Получили, что
∞  
X (2n)! (2n)! 1 2n
C(t) = Cn = =
n=0
(n + 1)!n! (n + 1)!n! n+1 n
1.9. Производящие функции 34

Лемма 1.15
Производящая функция последовательности чисел Фибоначчи
{fn }∞
n=0 :
1
F (t) =
1 − t − t2

Доказательство:


X ∞
X
F (t) = fn tn = f0 + f1 t + (fn−1 + fn−2 )tn =
n=0 n=2

X ∞
X
=1+t+ fn−1 tn + fn−2 tn =
n=2 n=2
X∞ ∞
X
n−1 2
=1+t+t fn−1 t +t fn−2 tn−2 =
n=2 n=2
2
= 1 + tF (t) + t F (t)

Теорема 1.17

√ !n+1 √ !n+1
 
1 1+ 5 1− 5
∀n > 0 fn = √  − 
5 2 2

Доказательство:
1
F (t) =
1 − t − t2
2
t + t√− 1 = (t − t1 )(t − t2 )
5−1
t1 =
√2
− 5−1
t2 =
2
1.10. Рекуррентные соотношения 35

 
1 1 1 1
F (t) = − =√ − =
(t − t1 )(t − t2 ) 5 t1 − t t2 − t
t2
 
1 1 1 1 1 t
=√ −√ =√ 1 + + 2 + ··· −
5t1 1 − tt1 5t2 1 − tt2 5t1 t1 t1
2
 
1 t t
−√ 1 + + 2 + ···
5t2 t2 t2

1 tn+1 − tn+1
 
1 1 1 2 1 т. Виета
fn = √ − = √ =
5 tn+1
1 tn+1
2 (t
5 12 t )n+1

√ √
 !n+1 !n+1 
n+1
т. Виета (−1)
= √  − 5−1 −
5−1 =
5 2 2
√ √ !n+1
 !n+1 
1 5+1 1− 5
=√  − 
5 2 2

1.10 Рекуррентные соотношения


Определение
Линейное однородное рекуррентное соотношение порядка k для
последовательности {an }∞
n=0 :

an+k + p1 an+k−1 + · · · + pk an = 0, pk 6= 0 (∗)

Пример:
fn+2 − fn+1 − fn = 0 — частный случай порядка 2 (для чисел Фибо-
наччи).
1.10. Рекуррентные соотношения 36

Определение
Если {an }∞ ∞
n=0 ∀n удовлетворяет (∗), то {an }n=0 — однородная воз-
вратная последовательность порядка k.

Теорема 1.18
Пусть {an }∞
n=0 удовлетворяет (∗)∀n, тогда производящая функ-
C(t)
ция A(t) = , где K(t) = 1 + p1 t + p2 t2 + · · · + pk tk , C(t) —
K(t)
некоторый многочлен ст. 6 (k − 1).

Доказательство:
Перемножим производящую функцию и K(t)

X
C(t) = A(t) · K(t) = an tn (1 + p1 t + p2 t2 + · · · + pk tk ) =
n=0

= a0 + a1 t + a2 t + · · · + a0 p1 t + a1 p1 t2 + · · · + a0 p2 t2 + · · · +
2
| {z }
C(t)

+ ak t + ak−1 p1 t + ak−2 p2 t + · · · + a0 pk tk +
k k k
| {z }
это (∗) при n = 0, т.е. равно нулю

+ ak+1 tk+1 + ak p1 tk+1 + ak−1 p2 tk+1 + · · · + a1 pk tk+1 + · · ·


| {z }
это (∗) при n = 1, т.е. равно нулю

Определение
Введём f (t) = tk + p1 tk−1 + · · · + pk = 0 — характеристический
многочлен для (∗), так что
s
X
τ1 τs
f (t) = (t − λ1 ) · · · (t − λs ) , λi 6= λj , i 6= j, τi = k
i=1
1.10. Рекуррентные соотношения 37

Теорема 1.19 (об общем решении однородного ре-


куррентного соотношения)
Пусть есть последовательность {an }∞ n=0 — линейная однородная
возвратная последовательность удовлетворяющая (∗), тогда an =
Xs
λni Qi (n), где λ1 , . . . , λs — корни характеристического многочлена
i=1
кратности τ1 , . . . , τs соответственно, Qi (n) — многочлен степени, не
превосходящей τi − 1

Доказательство:
   τ1  τs
k 1 k 1 1
K(t) = t f =t − λ1 ··· − λs =
t t t
= (1 − λ1 t)τ1 · · · (1 − λs t)τs
Из алгебры известно, что
s X τi
C(t) X Bij
A(t) = Qs =
(1 − λi t)j
(1 − λi t)τi i=1 j=1
i=1
Разложим в ряд
∞  
1 −j
X −j
j
= (1 − λt) = 1 + (−λt)n (∗∗)
(1 − λt) n=1
n
 
−j (−j)(−j − 1) · · · (−j − n + 1)
= =
n n!  
n (j + n − 1)(j + n − 2) · · · j n j +n−1
= (−1) = (−1) =
 n! n
j+n−1
= (−1)n
j−1
Подстановкой в (∗∗) получим
∞  
X j+n−1 n n
1+ λ t
n=1
j−1
Тогда
1.10. Рекуррентные соотношения 38
∞ 
τi
s X
!
X X j+n−1 n n
A(t) = Bij 1 + λi t =
i=1 j=1 n=1
j−1
∞ s τi  !
X X X j + n − 1
= a0 + λni Bij tn
n=1 i=1 j=1
j − 1
Таким образом,
s τi  
X
n
X j+n−1
an = λi Bij , Bij = const,
j − 1
i=1 j=1

j+n−1
где — многочлен от n степени n − 1
j−1
τi  
X j+n−1
Qi (n) = Bij — многочлен от n степени, не превосхо-
j=1
j − 1
дящей τi − 1
∞ s
! s
X X X
A(t) = a0 + λni Qi (n) tn , где an = λni Qi (n)
n=1 i=1 i=1

Следствие 1.6
Если характеристический многочлен имеет простые корни
λ1 , . . . , λk , то
an = c1 λn1 + c2 λn2 + · · · + ck λnk

Следствие 1.7
Если характеристический многочлен имеет один корень λ крат-
ности k, тогда

an = λn (c0 + c1 n + c2 n2 + · · · + ck−1 nk−1 )

Примеры:
1) an+3 − 5an+2 + 8an+1 − 4an = 0 — линейное однородное рекур-
рентное соотношение.
1.11. Асимптотика 39

t3 − 5t2 + 8t − 4 = 0 — характеристический многочлен


(t − 2)2 (t − 1) = 0
an = 2n (c0 + c1 n) + 1n c2 — общее решение
Если a0 = 1, то подставляем в общее решение n = 0 и an = 1, нахо-
дим ci .
2) an+3 − 5an+2 + 8an+1 − 4an = n3n — неоднородное рекуррентное
соотношение. Заданы a0 , a1 , a2
I способ:
Найдем производящую функцию

X
2
A(t) = a0 + a1 t + a2 t + an tn
n=3
an = 5an−1 − 8an−2 + 4an−3 + (n − 3)3n−3

X
2
A(t) = |{z} +5A(t)t + 8A(t)t + 4A(t) + n3n
начальные условия n=0
II способ:
an = 2n (c0 + c1 n) + 1n c2 + частное решение
a1n = (α + βn)3n
Необходимо подставить в исходный многочлен, найти α и β. Здесь
15 1
α= , β=
4 2
Решение выглядит следующим  образом

n n 15 1
an = 2 (c0 + c1 n) + 1 c2 + + n 3n
4 2

1.11 Асимптотика
b(n) 1
Рассмотри задачу о беспорядках, там ∼ , n → ∞ это
n! e
означает, что
g(n)
f (n) ∼ g(n), → 1, n → ∞
f (n)
Рассмотрим латинский прямоугольник1 размера
1
Латинский прямоугольник — матрица размера n · m, в которой элементами
являются числа от 1 до n и в каждой строке, в каждом столбце все элементы
1.11. Асимптотика 40

1) 2 · n, это задача о беспорядках


2) 3 · n, это задача о супружеских парах, где женщины уже сидят.
Пусть b2 (n) — количество таких пар, тогда можно показать
b2 (n) 1
∼ 2, n → ∞
n! e
Асимптотика n-го члена числа Фибоначчи
√ !n+1
1 1+ 5
fn ∼ √ (1 — бесконечно малое)
5 2

Лемма 1.16
     
2n 2n 2n
< < ... <
0 1 n
     
2n 2n 2n
> > ... >
n n+1 2n

Доказательство:
Рассмотрим разность
   
2n 2n (2n)! (2n)! (2n)!2n − (2n)!
− = − = =
1 0 1!(2n − 1)! 0!(2n)! (2n)!
(2n)!(2n − 1)
= = 2n − 1
(2n)!

Чтобы это была возрастающая последовательность необходимо,


1
чтобы 2n − 1 > 0 ⇒ n >
2

различны.
1.11. Асимптотика 41

Рассмотрим отношение
2n

n (2n)! (n − 1)!(n + 1)! (n − 1)!(n + 1)!
2n
 = · = =
n+1
n!n! (2n)! n!n!
(n − 1)!(n + 1) n+1 1
= = =1+
n! n n
Чтобы последовательность была убывающей необходимо, чтобы
1
1 + > 0 ⇒ n > −1
n

Исходя из леммы получаем, если


2n  
X 2n
= 22n ( по следствию из бинома Ньютона), то
i=0 
i

2n
< 22n
n
22n
 
2n
>
n 2n
Получим  2множества:
22n 2n
< < 22n
2n n
Прологарифмируем: 
2n
2n ln 2 − ln(2n) < ln < 2n ln 2
  n
ln(2n)
2n ln 2 1 −
  2n ln 2
2n
ln ∼ 2n ln 2
n
Это
  значит, что
2n
= (4 + O(1))n
n
Упражнение:  n
1
Найти асимптотику величины f (n) = 2 + √ .

n
n 1
Ответ: f (n) ∼ 2n e 2 − 4
1.11. Асимптотика 42

Заметим, что
nk
 
n n(n − 1) · · · (n − k + 1)
= 6
k k! k!

Теорема 1.20
K2 nk
 
2 n
1) Если K = o(n), n → ∞, т.е → 0, n → ∞ , то ∼ ,
n k n!
где K — функция от n;
nk − k(k−1) nk − K 2
 
3 2 n
2) Если K = o(n ), то ∼ e 2n ∼ e m , где K —
k k! k!
функция от n.

Доказательство:
Распишем число сочетаний
 
n n(n − 1) · · · (n − k + 1)
= =
k k!
nk
   
1 k−1
= 1− ... 1 − =
k! n n
разложим
в ряд
nk 1 k−1 логарифм
= eln(1− n )+···+ln(1− n ) =
k!
разложим
в ряд
 
(k−1)2
логарифм nk − n1 +O( n12 )+ −2
n n
−(k−1)
+O( 42 )+···+ n +O
n2
= e =
k!
nk −k(k−1) k3
 
+O
= e 2n n2
k!
Оценим чему равна сумма O
(k − 1)2 k(k − 1)2
 3
1 4 k
2
+ 2 + ··· + 2
6 2
6 C1
n n n n n2
2 2
1 4 (n − 1) (k/2) (k − 1)2 1 (k/2)2 k/2
+ + · · · + > + · · · + > >
n2 n2 n2 n2 n2 2 n2
1.11. Асимптотика 43
 3
k
> C2
n2

Теорема 1.21 (формула Стирлинга, знать всем!)

√  n n
n! ∼ 2πn , n→∞
e
Пример: √ 2n 2n

4n
 
2n (2n)! 4πn e 1 2n
= ∼ = √ 2 = √
n (n!)2 n 2n πn πn

2πn e
Глава 2

Теория графов

2.1 Основные понятия


Определение
Графом называется пара множеств G = (V, E),
где V — конечное непустое множество, E ⊆ V (2) ,

V (2) = {{x, y} x, y ∈ V, x 6= y},
V — множество вершин,
E — множество рёбер.
Обозначения:
V G — множество вершин графа G,
EG — множество рёбер графа G,
|G| = |V G| — порядок графа,
(n, m)-граф ⇔ |V G| = n, |EG| = m.

Определение
Мультиграф — это пара G = (V, E), V — множество вершин (из
определения обычного графа), E — мультимножество над V (2)
2.1. Основные понятия 45

Рис. 2.1: Пример мультиграфа

Определение
Псевдограф — это пара G = (V, E), где V — множество вершин,
E — мультимножество неупорядоченных пар вершин, не обязатель-
но различных (возможны петли).
Обозначение:
{x, y} ∈ E ∼ xy = yx

Определение
Если xy ∈ E, то x, y — смежные, x, xy — инцидентные.

Определение
Ребро и вершина инцидентны, если вершина является концом
ребра.

Примеры графов:
E ⊆ V (2) , рассмотрим 2 крайних случая:
1) E = V (2) ⇒ G = (V, V (2) ) — полный граф на |V | вершинах.
Обозначение: Kn — полный граф на n вершинах.
2.1. Основные понятия 46

Рис. 2.2: K1 , K2 , K3 и K4 соответственно

2) On — пустой (вырожденный) граф, EOn = ∅

Рис. 2.3: O5

3) Граф Петерсена

Рис. 2.4: Граф Петерсена

4) Граф n-мерного куба — Qn , V (Qn ) = {0, 1}n — все двоичные


кортежи длины n.

E(Qn ) = {e e и ye различаются ровно в одной позиции }
xye x
Q1 , V Q1 = {(0), (1)}
Q2 , V Q2 = {(0, 0), (0, 1), (1, 0), (1, 1)}
Q3 , V Q3 = {(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0),
(1, 0, 1), (1, 1, 0), (1, 1, 1)}
2.2. Изоморфизмы графов 47
0 00 10 000 010

100 110

1 01 11 001 011

101 111

Рис. 2.5: Q1 , Q2 и Q3 соответственно

2.2 Изоморфизмы графов


Определение
Два графа G1 = (V1 , E1 ) и G2 = (V2 , E2 ) изоморфны
(обозначается G1 ∼
= G2 ) , если ∃ биекция ϕ между V1 и V2 ϕ : V1 → V2
такая, что xy ∈ E1 ⇔ ϕ(x)ϕ(y) ∈ E2
Пример:
Изоморфизм ϕ между Q3 и графом на рисунке:
1 → 000 5 → 111
2 → 011 6 → 001
3 → 101 7 → 010
4 → 110 8 → 100

1 2 3 4

5 6 7 8

Рис. 2.6: Граф, изоморфный Q3


2.2. Изоморфизмы графов 48

Определение
Изоморфизм графа G в себя — автоморфизм.

Определение
Два графа называются равными, если они изоморфны.

Определение
Обозначим deg x — степень x — количество рёбер, инцидентных
x.
degG x — степень x в графе G.
NG (x) — окрестность вершины x в G, множество вершин, смежных
с x.
N (x) — окрестность вершины x.
degG x = |NG (x)|.
4(G) — max deg x, x ∈ V G.
δ(G) — min deg x, x ∈ V G.
Если 4(G) = δ(G) = k, то G — k-регулярный граф.
Примеры:
1) Граф Петерсена — 3-регулярный граф.
2) Qn — n-регулярный граф.
3) Полный граф на n вершинах — (n − 1)-регулярный граф.
4) On — 0-регулярный граф.

Лемма 2.1 (лемма о рукопожатии)

X
∀G degG v = 2|EG|
v∈V G
2.3. Подграфы и операции над графами 49

Доказательство:
Упражнение.

Следствие 2.1
Произвольный граф содержит чётное число вершин нечётной
степени.

2.3 Подграфы и операции над графами


Определение
Граф H называется подграфом графа G, если

V H ⊆ V G, EH ⊆ EG

Пример:

1 3 4
2 4

6
5 7
5 6

Рис. 2.7: Граф G и его подграф H

Определение

Пусть U ⊆ V G, D = {xy x, y ∈ U, xy ∈ EG}, тогда граф
H = (U, D) — подграф графа G, порождённый множеством вершин
2.3. Подграфы и операции над графами 50

U.
Обозначение: H = G[U ].

Определение
Пусть D ⊆ EG и пусть U — множество концевых вершин рёбер
из D, H = (U, D) — подграф графа G, порожденный множеством
рёбер.

Операции над графами


1) Удаление вершины и ребра.

x ∈ V G G − x = (V G \ {x}, EG \ {xy y ∈ V G, xy ∈ EG})
e ∈ EG G − e = (V G, EG \ {e})

2) Добавление
) вершины и ребра.
x, y ∈ V G
⇒ G + xy = (V G, EG ∪ {xy})
xy ∈ / EG

x∈/ V G G + x = (V G ∪ {x}, EG ∪ {xy y ∈ V G})

3) Объединение графов.
G и H — графы, тогда
G ∪ H = (V G ∪ V H, EG ∪ EH)
Если V G ∩ V H = ∅, то G t H — дизъюнктное объединение графов
G и H.

4) Сложение графов.
Пусть V G ∩ V H = ∅ ⇒ G + H = (V G ∪ V H, E), где

E = EG ∪ EH ∪ {xy x ∈ V G, y ∈ V H}
Примеры:
Kn + Km = Kn+m
2.4. Маршруты, связность 51

G + O1 = G + x, где x ∈ V O1 .

5) Декартово произведение двух графов.


Пусть есть два графа G1 = (V1 , E1 ), G2 = (V2 , E2 ).
G1 × G2 = G такой, что
V G = V G1 × V G2

EG = {(x, y)(a, b) либо x = a, yb ∈ E2 , либо y = b, xa ∈ E1 }
Пример:
c
(c, 1) (c, 2)

b 1 2
(b, 1) (b, 2)

a
(a, 1) (a, 2)

Рис. 2.8: Пример декартова произведения

6) Дополнение графа.
Если есть граф G(V, E), то дополнение графа G это
G = (V, V (2) \ E)

2.4 Маршруты, связность


Определение
Пусть есть чередующаяся последовательность
P = x1 , e1 , x2 , e2 , . . . , xk , ek , xk+1 . Такая, что
xi ∈ V G ∀i
ei ∈ EG ∀i
ei = xi xi+1 ∀i, тогда эта последовательность называется маршрутом
Обозначение: (x1 , xk+1 )-маршрут.
2.4. Маршруты, связность 52

Если x1 = xk+1 , то такой маршрут циклический, k — длина марш-


рута.
Если ei 6= ej i 6= j, то P — цепь.
Если xi 6= xj i 6= j, то P — простая цепь.

Определение
Циклическая цепь — цикл (Cn — цикл на n вершинах).
Цикл, в котором вершины не повторяются — простой цикл.

Лемма 2.2
Если x 6= y, то всякий (x, y)-маршрут содержит простую (x,y)-
цепь.

Доказательство:
Упражнение.

Лемма 2.3
Всякий цикл содержит простой цикл.

Доказательство:
Упражнение.

Определение
Две вершины x, y ∈ V G — связные, если в G ∃ простая (x, y)-цепь.
2.4. Маршруты, связность 53

Определение
Граф G называется связным, если связные любые две вершины
графа G.

Рис. 2.9: Несвязный и связный графы соответственно

Определение
Компонента связности графа G — это максимальный по вклю-
чению вершин и рёбер связный подграф графа G.

Лемма 2.4
Любой граф — дизъюнктное объединение своих компонент связ-
ности.

Лемма 2.5
Если граф G не является связным, то G — связный.

Лемма 2.6
Пусть G — связный граф, e ∈ EG.
1) Если e принадлежит циклу графа G, то G−e — связный граф.
2) Если e не принадлежит никакому циклу, то G − e имеет ровно
2 компоненты связности.
2.4. Маршруты, связность 54

Доказательство:
Рассмотрим ребро e = xy:
1) ∀u, v ∈ V G, в G ∃ простая (u, v)-цепь. Если цепь проходит
через e, то заменим e на (x, y)-цепь, получаемую из цикла удалением
e ⇒ (u, v) — маршрут в G, не содержащий e
⇒ в G − e ∃ простая (u, v)-цепь
⇒ граф G — связный.
2) Из условия следует, что x, y в разных компонентах связности
графа G − e (иначе цикл).
Разобьём граф на:
Gx , Gy ∀z 6= x, если простая (z, x)-цепь содержит e, то z ∈ V Gy ,
иначе z ∈ V Gx ⇒ Gx и Gy — компоненты связности графа G − e =
Gx t Gy

Теорема 2.1 (оценка числа рёбер)


Пусть есть (n, m)-граф G с k компонентами связности, тогда

(n − k)(n − k + 1)
n−k 6m6
2

Доказательство:
Верхняя оценка:
Возьмём граф G с наибольшим числом рёбер (n вершин, k компо-
нент связности).
В G любая компонента связности является полным графом
⇒ G = Kn1 t . . . t Knk
n1 + · · · + nk = n, где n1 > . . . > nk .
Покажем, что n2 = 1
Пусть n2 > 1
2.4. Маршруты, связность 55

Тогда рассмотрим граф G0 = (Kn1 + x) t (Kn2 − x) t Kn3 t . . . t Knk


Тогда |EG0 | = |EG| − (n2 − 1) + n1 = |EG| + n1 − n2 + 1 > |EG| + 1
(⇒ в G не наибольшее число рёбер, противоречие).
n1 = n − (k − 1)
n2 = . . .= nk = 1, 
n−k+1 (n − k + 1)! (n − k)(n − k + 1)
|EG| = = = .
2 2!(n − k − 1)! 2
Нижняя оценка:
Индукция по числу рёбер:
m = 0 : n = k.
m > 0 : рассмотрим (n, m)-граф G с k компонентами связности,
e ∈ EG. Тогда в G − e, (n, m − 1)-графе, k1 компонента связности,
k1 6 k + 1, т. е. более чем на одну компоненту связности увеличится
не может.
По индукционному предположению:
n − k1 6 m − 1
m > n − k1 + 1 > n − (k + 1) + 1 = n − k.

Следствие 2.2
(n − 2)(n − 1)
Пусть G — (n, m)-граф. Если m > , то G — связ-
2
ный.

Доказательство:
Упражнение.

Определение
Пусть G — связный граф. Обозначим за d(x, y) длину кратчай-
шей (x, y)-цепи — расстояние между вершинами x и y, d(x, x) = 0
Оно удовлетворяет всем аксиомам метрики. Граф с заданным
2.4. Маршруты, связность 56

расстоянием между вершинами будем рассматривать как метриче-


ское пространство.

Определение
Эксцентриситет вершины x ∈ V G e(x) = max d(x, y) — длина
y∈V G
кратчайшей цепи от x к y.
Пример:

3
e(2) = 3
e(3) = 2
5
2 d(2, 6) = 3
4
6 d(2, 7) = 3
d(2, 3) = 1
1 7
r(G) = 2

Определение
Радиус графа G — это минимальный эксцентриситет по всем вер-
шинам
r(G) = min e(x)
x∈V G

Определение
Диаметр графа G — это максимальный эксцентриситет по всем
вершинам
d(G) = max e(x)
x∈V G
2.5. Ориентированный граф 57

Примеры:
r(Kn ) = d(Kn ) = 1
r(Qn ) = d(Qn ) = n

Лемма 2.7

r(G) 6 d(G) 6 2r(G)

Доказательство:
Упражнение.

2.5 Ориентированный граф


Определение
Ориентированный граф (орграф) это пара G = (V, D), где V —
конечное непустое множество, D ⊆ V × V — дуги.
V G — множество вершин орграфа G.
DG — множество рёбер орграфа G.
Обозначение: − → — дуга.
xy

Рис. 2.10: Пример орграфа


2.5. Ориентированный граф 58

Определение
Ормультиграф — это пара G = (V, D), V — непустое конечное
множество, D — мультимножество над V (2)
Орпсевдограф — это пара G = (V, D), V — непустое конечное
множество, D — мультимножество неупорядоченных пар вершин,
не обязательно различных.

Определение
Удаляем ориентацию из орграфа — получаем мультиграф, если
он связен, то исходный орграф связен.

Определение
Пусть есть чередующаяся последовательность
P = x1 , e1 , x2 , e2 , . . . , xk , ek , xk+1 , такая, что
xi ∈ V G ∀i
ei ∈ EG ∀i
ei = −
x→
i xi+1 ∀i, тогда эта последовательность называется ормаршру-
том.
Если x1 = xk+1 , то такой ормаршрут циклический, k — длина
маршрута.
Если ei 6= ej i 6= j, то P — орцепь.
Если xi 6= xj i 6= j, то P — простая орцепь.

Определение
Циклическая орцепь — орцикл.
Орцикл без повторяющихся вершин — простой орцикл.
2.6. Помеченный граф, матрицы смежности, инцидентности 59

Определение
Вершина y достижима из x, если ∃ простая (x, y)-орцепь.

Определение
Орграф G сильносвязен, если любая вершина достижима из лю-
бой.

Определение
Полустепень исхода deg + x — число исходящих дуг из вершины
x.
Полустепень захода deg − x — число входящих дуг из вершины
x.

Лемма 2.8 (орлемма о рукопожатии)


Для любого орграфа G = (V, D)
X X
deg + x = deg − x = |DG|
x∈V G x∈V G

Доказательство:
Упражнение.

2.6 Помеченный граф, матрицы смежно-


сти, инцидентности
Определение
G — помеченный граф, если V G = {1, 2, . . . , n}.
2.6. Помеченный граф, матрицы смежности, инцидентности 60

Определение
Два помеченных графа равны, если совпадают их множества
рёбер.

Сколько помеченных графов на n вершинах?


Рассмотрим граф с n вершинами. Количество способов
 выбрать
n
две вершины, образующих ребро, равно |EKn | = . Тогда будем
2
рассматривать кортежи из 0 и 1, где 0 на i-ом месте будет озна-
чать, что i-ое ребро не взято, а 1 — взято. Таких кортежей, т.е. и
n
количество помеченных графов на n вершинах равно 2( 2 ) .
Пример:

2 1

1 3 3 2

Рис. 2.11: Разные помеченные графы

Определение
Пусть есть G — помеченный (n, m)-граф, V G = {1, 2, . . . , n}.
Тогда матрица смежности вершин графа G это
A = A(G)
 = (aij )n×n
1, ij ∈ EG
aij =
0, в противном случае

Матрицу смежности рёбер не вводят, так как она не определяет


граф однозначно.
2.7. Двудольный граф 61

e1 e2 e1 e2
e3
e3

Рис. 2.12: Рёбра одинаково смежны, но графы разные

Определение
Пусть есть G — помеченный (n, m)-граф, V G = {1, 2, . . . , n},
EG = {e1 , . . . , em }, тогда матрица инцидентности графа G это
I = I(G)
 = (bij )n×m
1, i инцидентно e
j
bij =
0, в противном случае

Определение
Пусть есть G — (n, m)-орграф, V G = {1, . . . , n}, DG =
= {e1 , . . . , em }, тогда матрица инцидентности орграфа G это
I = I(G)
 = (bij )n×m
1,
 ej выходит из i


bij = −1, ej входит в i


0,

в противном случае

2.7 Двудольный граф


Определение
Граф G называется двудольным, если существует разбиение
V G = A t B, такое, что G[A] и G[B] — пустые (у любого ребра
e = ab ∈ EG концы находятся в разных множествах).
Пример:
2.7. Двудольный граф 62

Полные графы, граф Петерсена — не двудольные, Qn — двудольный


(в одну долю берём вершины с четным количеством единиц, а в
другую с нечетным).

Определение
Полный двудольный граф Kn,m = On + Om .
Пример:
Kn,1 — звезда.

Рис. 2.13: K4,1

Лемма 2.9
Граф G — двудольный ⇔ любая компонента связности — дву-
дольный граф.

Доказательство:
Упражнение.
2.8. Деревья 63

Теорема 2.2 (теорема Кёнига, критерий двудольно-


сти)
Граф G — двудольный ⇔ он не содержит циклов нечётной дли-
ны.

Доказательство:
(⇒) Пусть C = x1 , x2 , x3 , . . . , xt , x1 — цикл в G, тогда, в силу
двудольности, x1 , x3 , x5 , . . . принадлежат одной доле, в то время как
x2 , x4 , x6 , . . . другой, отсюда следует, что t — чётно.
(⇐) Пусть G — связный.  Докажем, используя Лемму 2.9.
y ∈ A, если d(x, y) — чётно
x ∈ V G, ∀y ∈ V G
y ∈ B, если d(x, y) — нечётно
Докажем, что G[A] и G[B] — пустые.
Пусть в G[A] есть ребро ab, a, b ∈ A.
x Рассмотрим кратчайшие цепи (x, a) и
(x, b). Пусть z — последняя, начиная
от x, общая вершина этих цепей. Тогда
z подцепи (x, z) этих цепей имеют оди-
наковую длину, иначе это не кратчай-
шие цепи. Тогда подцепи (z, a) и (z, b)
a b
цепей (x, a) и (x, b) имеют одинаковую
чётность длины ⇒ вместе с ab получа-
ем цикл нечётной длины, противоречие.

2.8 Деревья
Определение
Дерево — это связный ациклический граф.
2.8. Деревья 64

Определение
Лес — это ациклический граф, дизъюнктное объединение дере-
вьев.

Теорема 2.3 (о характеризации деревьев)


Для любого (n, m)-графа следующие утверждения эквивалент-
ны:
1) G — дерево.
2) G — связный и m = n − 1.
3) G — ациклический и m = n − 1.
4) G — такой, что любые две вершины соединены единственной
простой цепью.
5) G — ациклический и ∀e ∈
/ EG G + e имеет единственный про-
стой цикл.

Доказательство:
(1 ⇒ 2) имеем, что G — связный и ациклический граф. Покажем,
что m = n − 1.
Индукция по числу рёбер m:
m=1: n=2
m > 1 : Пусть G — произвольное дерево с m > 1 рёбер. Рассмот-
рим e ∈ EG. По Лемме 2.6 G − e имеет две компоненты связности.
Каждая из компонент связности (T1 и T2 ) является деревом. Ti —
(ni , mi )-дерево, тогда по индукционному предположению mi = ni −1.
Получим, n = n1 + n2 ,
m = m1 + m2 + 1 = n1 − 1 + n2 − 1 + 1 = n − 1.
(2 ⇒ 3) от противного. Пусть в графе G есть цикл C. Пусть
e ∈ C. По Лемме 2.6 G−e — связный, в нём n−2 ребра. Противоречие
2.8. Деревья 65

с Теоремой 2.1.
(3 ⇒ 4) знаем, что G — ациклический, m = n − 1. Докажем, что
граф G — связный.
Пусть T1 , . . . , Tk — компоненты связности графа G, тогда Ti —
(ni , mi )-деревья. Воспользуемся тем, что получили из (1 ⇒ 2). Тогда
mi = ni − 1 ∀i
X X
n−1=m= mi = ni − k = n − k ⇒ k = 1
i i
Единственность: любые две вершины x и y соединены простой
цепью. Пусть есть две различные простые (x, y)-цепи, z — последняя
от x вершина общего начала этой цепи, zt — следующее ребро первой
цепи. Тогда G − zt — связный граф. По Лемме 2.6 zt принадлежит
циклу. Исходный граф ацикличен, противоречие.
(4 ⇒ 5) в простом цикле любые две вершины соединены двумя
различными простыми цепями ⇒ G — ацикличен.
Пусть x, y ∈ V G, xy ∈
/ EG. ∃ простая (x, y)-цепь P . P , вместе с
xy, образует простой цикл. Единственность следует из единственно-
сти простой цепи.
(5 ⇒ 1) необходимо доказать, что G — связный. Если G — не
связный, то для x и y из разных компонент связности G + xy не
имеет циклов, противоречие.

Следствие 2.3
В любом дереве порядка n > 2 есть не менее двух висячих вершин
(v — висячая ⇔ deg v = 1).

Доказательство:
Допустим, что в дереве нет висячих вершин, т.е deg x > 2 ∀x
X
По Теореме 2.3 2n − 2 = 2m = deg x > 2n, противоречие.
x∈V G
2.8. Деревья 66

Определение
Периферия графа это множество вершин

{x ∈ V G e(x) = d(G)}

Определение
Центр графа это множество вершин

{x ∈ V G e(x) = r(G)}

Теорема 2.4
Центр любого дерева состоит из одной вершины, либо из двух
смежных вершин.

Доказательство:
Если G = K1 или G = K2 , то утверждение верно. Пусть T —
дерево с n > 2 вершинами. Рассмотрим T 0 — дерево, получаемое из
T удалением всех висячих вершин.
Пусть x ∈ V T 0 . Рассмотрим eT 0 (x). Для этого рассмотрим eT (x),
eT (x) — расстояние до висячей вершины ⇒ eT 0 (x) = eT (x) − 1 ⇒
центр T 0 совпадает с центром T . Удаляем висячие вершины до тех
пор, пока не получим K1 или K2 .

Теорема 2.5 (теорема Кэли, 1897 год)


Число помеченных деревьев на n вершинах равно nn−2
2.8. Деревья 67

Определение
Код Прюфера:
T — помеченное дерево, V T = {1, . . . , n}, a = (a1 , . . . , an−2 ).
1) T0 = T
2) 1 6 i 6 n − 2 : в Ti−1 находим висячую вершину с наименьшим
номером xi , ai — номер соседа xi , Ti = Ti−1 − xi .

Пример:

5 4

1 8 7

6 3

10 2 9

Для графа на рисунке a = (3, 8, 1, 8, 3, 8, 1, 6)

Свойство кода Прюфера: ai ∈ {1, . . . , n}

Теорема 2.6 (код Прюфера)


Если (a1 , . . . , an−2 ) ∈ {1, . . . , n}n−2 , то существует и единственно
помеченное дерево T с кодом Прюфера (a1 , . . . , an−2 ).
Пример:
Вычеркиваем то минимальное число, которого нет в коде и записы-
ваем под кодом. После вычеркивания всех чисел получим рёбра.
(8, 5, 1, 1, 3, 4, 8, 1) 1,! 2, 3, 4, 5, 6, 7, 8, 9, 10
8
, 5, 1, 1, 3, 4, 8, 1 1, 2/, 3, 4, 5, 6, 7, 8, 9, 10
2
2.8. Деревья 68
!
85
, 1, 1, 3, 4, 8, 1 1, 2/, 3, 4, 5, /6, 7, 8, 9, 10
26
!
851
, 1, 3, 4, 8, 1 1, 2/, 3, 4, 5/, 6/, 7, 8, 9, 10
265
..
. !
85113481
1, 2/, 3/, 4/, 5/, 6/, 7/, 8/, 9/, 10, {1, 10} — ребро.
26579348

Доказательство:
Построим кортеж b = (b1 , . . . , bn−1 ) (по показанному выше алго-
ритму) такой, что
bi = min {1, . . . , n} \ {b1 , . . . , bi−1 , ai , ai+1 , . . . , an−2 }, 1 6 i 6 n − 1, и
покажем что этот кортеж удовлетворяет условиям кода Прюфера и
строит дерево.
Рассмотрим граф T такой, что V T = {1, 2, . . . , n},

ET = {(ai , bi ) 1 6 i 6 n − 2} ∪ {(n, bn−1 )}.
Докажем, что:
1) T — дерево,
2) (a1 , . . . , an−2 ) — код Прюфера дерева T

1) Рассмотрим последовательность графов


T0 = T, T1 , . . . , Tn−1
Будем строить их следующим образом
Ti = Ti−1 − bi ⇒ Tn−1 = O1 ⇒ Tn−1 — дерево. По построению
{1, 2, . . . , n} = {b1 , . . . , bn−1 , n}
V Ti−1 = {bi , . . . , bn−1 , n}
ETi−1 = {(bi , ai ), (bi+1 , ai+1 ), . . . , (bn−2 , an−2 ), (bn−1 , n)}
bi 6= bj i 6= j bi ∈/ {ai , . . . , an−2 , n} ⇒ bi — висячая в Ti−1 ,
Ti — дерево ⇒ Ti−1 — дерево ⇒ T — дерево.
2.9. Остов, остовный подграф 69

2) Так как Ti−1 — дерево ⇒


⇒ ETi−1 = {(ai , bi ), (ai+1 , bi+1 ), . . . , (an−2 , bn−2 ), (n, bn−1 )}
Рассмотрим x ∈ V Ti−1 , degTi−1 x — количество появлений x в ETi−1 .
⇒ degTi−1 x > 1 ⇔ x ∈ {ai , . . . , an−2 }
⇒ висячие вершины дерева Ti−1 это множество
{bi , . . . , bn−1 , n} \ {ai , . . . , an−2 }
Получим, bi = min{1, . . . , n} \ {b1 , . . . , bi−1 , ai , . . . , an−2 } =
= min{b1 , . . . , bn−1 , n} \ {b1 , . . . , bi−1 , ai , . . . , an−2 } =
= min{bi , . . . , bn−1 , n} \ {ai , . . . , an−1 }
А по условию построения кода Прюфера мы как раз и брали вися-
чую вершину с минимальным номером.

2.9 Остов, остовный подграф


Определение
Подграф H графа G является остовным ⇔ V G = V H.

Определение
Если остовный подграф — дерево, то этот подграф остовное де-
рево.

Определение
Остов (каркас) графа G — подграф графа G, являющийся объ-
единением остовных деревьев компонент связности графа G.
2.9. Остов, остовный подграф 70

Лемма 2.10
Число рёбер произвольного (n, m)-графа G с k компонентами
связности, которые надо удалить, чтобы получить остов, не зави-
сит от последовательности удаления и равно m − (n − k).

Доказательство:
Упражнение.

Лемма 2.11
Любой ациклический подграф графа G содержится в каком-то
остове графа G.

Доказательство:
Упражнение.

Лемма 2.12
Пусть G — связный и пусть S — остов графа G. Тогда

∀e1 ∈ EG \ ES ∃e2 ∈ ES : S + e1 − e2 — остов графа G

Доказательство:
G — связный, S — остов дерева, в S + e1 по Теореме 2.3 есть
Лемма 2.6
один простой цикл C, e2 ∈ EC \ {e1 } ⇒ S + e1 − e2 — связный,
|E(S + e1 − e2 )| = |ES| ⇒ тоже остов.
2.10. Связность, точки сочленения, мосты 71

2.10 Связность, точки сочленения, мосты


Определение
Число вершинной связности графа G (æ(G)) — наименьшее ко-
личество вершин, удаление которых делает граф несвязным или од-
новершинным.
Если æ(G) = 0, то G — несвязный.
Примеры:
æ(Kn ) = n − 1
æ(Cn ) = 2

Определение
Вершина x ∈ V G является точкой сочленения графа G, если
G − x имеет больше компонент связности, чем G.
Пример:

Рис. 2.14: Пример точки сочленения

Определение
Граф G — k-связный, если 1 6 k 6 æ(G)

Лемма 2.13 (альтернативное определение)


G —k-связный ⇔ G — связный и удаление любых (k − 1) вершин
оставляет его связным и не одновершинным.
2.10. Связность, точки сочленения, мосты 72

Доказательство:
Упражнение.

Теорема 2.7 (характеризация точек сочленения)


G — связен, x ∈ V G, тогда следующие утверждения эквивалент-
ны.
1) x — точка сочленения.
2) ∃ разбиение V G \ {x} = A t B: ∀a ∈ A, ∀b ∈ B любая простая
(a, b)-цепь содержит x.
3) ∃ a, b ∈ V G \ {x} : любая простая (a, b)-цепь содержит x.

Доказательство:
(1 ⇒ 2) x — точка сочленения ⇒ G−x имеет несколько компонент
связности, A — одна компонента связности, B — все остальные.
a ∈ A, b ∈ B в G − x нет простых (a, b)-цепей ⇒ любая простая
(a, b)-цепь в G содержит x.
(2 ⇒ 3) 3 частный случай 2.
(3 ⇒ 1) G − x не содержит простых (a, b) цепей.

Определение
Числа рёберной связности графа G (λ(G)) — наименьшее число
рёбер, удаление которых делает граф несвязным.

Определение
Ребро e ∈ EG называется мостом, если G − e имеет больше
компонент связности, чем G.
Конец моста — либо висячая вершина, либо точка сочленения.
2.10. Связность, точки сочленения, мосты 73

Теорема 2.8 (характеризация мостов)


Пусть G — связен, e ∈ EG. Тогда следующие утверждения экви-
валентны:
1) e — мост.
2) ∃ разбиение V G = A t B : ∀a ∈ A, ∀b ∈ B любая простая
(a, b)-цепь содержит e.
3) ∃ a, b ∈ V G такие, что любая простая (a, b)-цепь содержит e.
4) e не принадлежит простому циклу.

Доказательство:
1 ⇒ 2 ⇒ 3 ⇒ 1 аналогично Теореме 2.7.
1 ⇔ 4 по Лемме 2.6.

Теорема 2.9 (Уитни, о числах связности)


Для любого графа G порядка n > 1

æ(G) 6 λ(G) 6 δ(G)

Доказательство:
λ(G) 6 δ(G)
δ(G) — это минимальная степень вершины из графа G, то есть уда-
ление такого числа рёбер, инцидентных этой вершине, точно делает
граф несвязным. Рассмотрим несвязный граф (то есть λ(G) = 0), в
котором каждая вершина x имеет степень degx > 0 ⇒ λ(G) < δ(G).
Итого λ(G) 6 δ(G).
æ(G) 6 λ(G)
Если граф G не является связным, то æ(G) = λ(G) = 0.
Если граф G — связный и имеет мост, то æ(G) = λ(G) = 1
2.11. Двусвязный граф, блоки 74

Пусть λ(G) > 2, т.е. G — связный без мостов.


Пусть E1 : E1 ⊆ EG, |E1 | = λ(G), G − E1 — несвязный. Выделим
ребро e ∈ E1 , E2 = E1 \ {e}. ∀h ∈ E2 выберем конец x, не инцедент-
ный e. Назовём это множество вершин X.
|X| 6 |E2 |, т.к. G1 = G − X.
|X| 6 |E2 | = λ(G) − 1
Если G1 несвязный, то æ(G) 6 |X| 6 λ(G) − 1 < λ(G).
Иначе e — мост в графе æ(G1 ) = λ(G1 ) = 1.
æ(G) 6 |X| + 1 6 |E2 | + 1 = λ(G) − 1 + 1 = λ(G).

2.11 Двусвязный граф, блоки


Определение
Двусвязный граф — это связный граф G порядка n > 3, у кото-
рого нет точек сочленения.

Лемма 2.14
В двусвязном графе для любых трёх различных вершин x, y, z ∃
простая (x, y)-цепь, не содержащая z.

Теорема 2.10 (характеризация двусвязных графов)


Пусть граф G порядка n > 3 и связный, тогда следующие утвер-
ждения эквивалентны:
1) G — двусвязный.
2) Любые x, y ∈ V G принадлежат простому циклу.
3) Любая вершина и любое ребро принадлежат простому циклу.
4) Любые два ребра принадлежат простому циклу.
2.11. Двусвязный граф, блоки 75

5) Для любых x, y ∈ V G, e ∈ EG существует простая (x, y)-цепь,


содержащая e.
6) ∀x, y, z существует простая (x, y)-цепь, содержащая z.

Доказательство:
(1 ⇒ 2) возьмём x ∈ V G, обозначим

U = {y y ∈ V G, x 6= y, y и x принадлежат простому циклу}.
Докажем, что U 6= ∅.
В двусвязном графе ∀x ∈ V G deg x > 2.
По Лемме 2.14 ∃ простая (a, b)-
a цепь, не содержащая x. Она вме-
сте с xa и xb образует простой цикл
x ⇒ U 6= ∅
Если U = V G, то доказано.
b Пусть U 6= V G.
Обозначим за U1 = V G \ U .

Т.к. G — связный ∃a ∈ U и b ∈ U1 : ab ∈ EG, т.к. a ∈ U


∃ простой цикл C, содержащий a и x.
По Лемме 2.14 ∃ простая (b, x)-цепь,
U не содержащая a. Пусть z — первая от
U1 x
b вершина этой цепи, принадлежащая
b a C.
Берём ab, подцепь (b, z) и часть цик-
ла C между a и z, содержащую x, по-
z
лучили простой цикл, содержащий b и
x, противоречие.
2 ⇒ 3 ⇒ 4 ⇒ 5 ⇒ 6 ⇒ 1 — упражнение.
2.11. Двусвязный граф, блоки 76

Определение
Максимальный по включению вершин и рёбер связный подграф
графа G без точек сочленения называется блоком.
Любой блок — либо ребро, либо двусвязный граф.
Пример:

Рис. 2.15: Граф с обведенными блоками

Лемма 2.15
Любые два блока имеют не более одной общей вершины (любое
ребро лежит ровно в одном блоке).

Доказательство:
Упражнение.

Лемма 2.16
Если блок содержит x и y, то он содержит любую простую (x, y)-
цепь.

Доказательство:
Упражнение.
2.11. Двусвязный граф, блоки 77

Лемма 2.17
Если x принадлежит более чем одному блоку, то x — точка со-
членения графа G.

Доказательство:
Упражнение.

Определение
Пусть
B = {B1 , . . . , Bs } — все блоки графа G.
C = {C1 , . . . , Ct } — все точки сочленения графа G.
Тогда bc(G)-граф: bc(G) = (V, E), V = B t C,

E = {Bi Cj Cj ∈ Bi }

Лемма 2.18
Если G — связный, то bc(G) — дерево.

Доказательство:
Пусть есть цикл Bi1 Ci1 Bi2 Ci2 . . . Bik Cik Bin . Любой блок Bi
содержит простую (Cij−1 , Cij )-цепь. Их объединение — простой
цикл в G. Этот цикл содержит по две вершины из каждого блока.
Следовательно, по Лемме 2.16 он принадлежит каждому блоку.
Следовательно, существует не менее 3-х вершин, общих для этих
блоков. Противоречие с Леммой 2.15.

Будем называть bc(G) bc-деревом графа G.


2.12. Разделяющее множество, теорема Менгера 78

2.12 Разделяющее множество, теорема


Менгера
Определение
Множество вершин S ⊆ V G разделяет a и b (a, b ∈ V G, a 6=
b, ab ∈
/ EG), если a и b лежат в разных компонентах связности
графа G − S.

Определение
Две простых (x, y)-цепи — непересекающиеся, если они не имеют
общих вершин, кроме x и y.

Теорема 2.11 (Менгера, 1927)


Наименьшее число вершин k, разделяющих две несмежные вер-
шины x и y графа G равно наибольшему числу m попарно непере-
секающихся простых (x, y)-цепей в G.

Доказательство:
Очевидно, что k > m.
Докажем обратное: k 6 m.
Другими словами нужно доказать, что
(∗) если в G наименьшее число вершин, разделяющих x и y
равно k, то в G ∃ как минимум k попарно непересекающихся
простых (x, y)-цепей.
Доказывать будем с помощью принципа крайнего. Предположим
что (∗) не выполняется, тогда существуют контрпримеры, из этих
2.12. Разделяющее множество, теорема Менгера 79

контрпримеров выберем наименьший, и придём к выводу, что суще-


ствуют примеры ещё меньше, т.е к противоречию.
k = 1 верно.
Выберем наименьшее k > 1 для которого (∗) не выполнено. Сре-
ди всех таких графов выберем графы с наименьшим числом вершин.
Среди них выберем граф G с наименьшим числом рёбер.
Получили k и G такие, что (∗) верно для:
1) Всех меньших k;
2) ∀H : n(H) < n(G) (где n(G) = |V G|);
3) G − e ∀e ∈ EG;

Утверждение 1
NG (x) ∩ NG (y) = ∅ (в G нет простых (x, y)-цепей длины 2).
Доказательство:
Пусть такая цепь существует, P = x, (x, z), z, (z, y), y
⇒ z принадлежит любому разделяющему x и y множеству.
⇒ в G − z x и y разделяются k − 1 вершиной
⇒ по 3) пункту в G − z ∃(k − 1) попарно непересекающихся простых
(x, y)-цепей
⇒ в G их k штук. Противоречие с выбором G, т.к. для нашего G
(∗) не должно выполняться.

Утверждение 2
Пусть W — множество, разделяющее x и y, |W | = k, тогда W ⊆
N (x), либо W ⊆ N (y), т.е. всё множество W смежно либо с x, либо
с y.
Доказательство:
Пусть W * N (x), W * N (y) и пусть
Px — все простые (x, w)-цепи для всех w ∈ W ,
Py — все простые (y, w)-цепи для всех w ∈ W .
2.12. Разделяющее множество, теорема Менгера 80

W W

x y ⇒ x y

Рис. 2.16: G ⇒ G0

Тогда любая простая (x, y)-цепь начинается с элемента из Px , закан-


чивается элементом из Py .
Общие вершины для цепей из Px и Py — вершины из W .
Рассмотрим граф G0 = G − (V Px \ ({x} ∪ W )) + xw1 + · · · + xwk ,
где W = {w1 , . . . , wk }.
Т.к. W * N (x), то n(G0 ) < n(G) ⇒ по 2) в G0 ∃k простых попарно
непересекающихся (x, y)-цепей.
⇒ в G ∃ попарно непересекающиеся простые (w1 , y), . . . , (wk , y)-цепи.
Аналогично, с другой стороны
00
G = G − (V Py \ ({y} ∪ W )) + w1 y + · · · + wk y
Т.к. W * N (y), то n(G00 ) < n(G)
⇒ в G00 ∃k попарно непересекающихся простых (x, y)-цепей
⇒ в G ∃ попарно непересекающиеся (x, w1 ), . . . , (x, wk )-цепи.
⇒ получили k попарно непересекающихся простых (x, y)-цепей в G.
Противоречие с выбором G.

Рассмотрим кратчайшую (x, y)-цепь P . По Утверждению 2 (без


ограничения общности) W ⊆ N (x).
Пусть P = x, a1 , a2 , . . . , as , y, тогда a1 ∈ W, a2 6= y (по Утверждению
/ W , т.к. P — кратчайшая. Рассмотрим граф G0 , полученный
1), a2 ∈
из графа G склеиванием a1 и a2 в одну вершину ⇒ в G0 ∃k попарно
2.13. Независимое множество, паросочетание и покрытия 81

непересекающихся простых (x, y)-цепей (т.к. в G0 на одну вершину


меньше чем в G, вспоминаем 2)). Теперь расклеиваем эту вершину,
т.е. возвращаемся к графу G, и получаем, что в нём тоже k попарно
непересекающихся цепей, ведь всё, что мы сделали, это добавили
вершину в одну из цепей, количество цепей при этом не изменилось,
противоречие с выбором G.

Теорема 2.12 (Уитни о k-связности)


Граф G является k-связным ⇔ любая его пара несмежных вер-
шин соединена k попарно непересекающимися цепями.

Доказательство:
Упражнение (следствие из т. Менгера)

2.13 Независимое множество, паросочета-


ние и покрытия
Определение
Множество попарно несмежных вершин называется независи-
мым.

Определение
Независимое множество называется тупиковым (максималь-
ным), если оно не является собственным подмножеством другого
независимого множества.
2.13. Независимое множество, паросочетание и покрытия 82

Рис. 2.17: α0 (G) = 4

Определение
Наибольшее по мощности — наибольшее независимое множе-
ство.
Его мощность — число независимости графа G (α0 (G)).

Теорема 2.13 (оценка числа независимости)

X
∀G α0 (G) > (1 + degG x)−1
x∈V G

Доказательство:
1 1
Пусть G — полный граф, тогда 1 > + ··· + = 1
n n

Индукция по n: G — неполный граф.


n 6 2 : очевидно
n>3:
Пусть x — вершина с наименьшей степенью, G0 = G − x − NG (x)
2.13. Независимое множество, паросочетание и покрытия 83
X
0
N (x) α0 (G ) > (1 + degG0 a)−1 (по ин-
G
a∈V G0
дукционному предположению).
0
x G0 Xα0 (G) > 1 + α0 (G ) >
Тогда
>1+ (1 + degG0 a)−1
a∈V G0
degG0 a 6 XdegG a, следовательно
α0 (G) > 1 + (1 + degG a)−1
X a∈V G0
−1 −1
(1 + degG x) + (1 + degG b) 6
b∈NG (x)
X
6 (1 + degG x)−1 + (1 + degG x)−1 =
b∈NG (x)
= (1 + degG x)(1 + degG x)−1 = 1.
Получим: X
α0 (G) > (1 + degG x)−1 + (1 + degG b)−1 +
b∈NG (x)
X X
−1
+ (1 + degG a) = (1 + degG a)−1
a∈V G0 a∈V G

Следствие 2.4

n 1 X
∀ n-графа G α0 (G) > , d= degG x
1+d n x∈V G

Доказательство:
Воспользуемся неравенством Коши–Буняковского
v v
n u n u n
X √ p uX uX
ai b i 6 t ai t bi
i=1 i=1 i=1

Возьмём ai = 1 + deg xi , bi = (1 + deg xi )−1


Возводя правую и левую часть в квадрат, получаем:
2.13. Независимое множество, паросочетание и покрытия 84
! !
X X
n2 6 (1 + deg xi ) (1 + deg xi )−1
i ! i !
1 X X
n6 (1 + deg xi ) (1 + deg xi )−1
n i X i
−1
n 6 (1 + d) (1 + deg xi ) 6 (1 + d)α0 (G)
i
n
α0 >
1+d

Определение
Множество вершин, покрывающих все рёбра называется вершин-
ным покрытием.

Рис. 2.18: Пример вершинного покрытия

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

Определение
Наименьшее по мощности вершинное покрытие называется наи-
меньшим вершинным покрытием.
2.13. Независимое множество, паросочетание и покрытия 85

Его мощность — число вершинного покрытия (β0 (G)).

Лемма 2.19
U ⊆ V G — независимое множество ⇔ V G \ U —
вершинное покрытие.

Доказательство:
(⇒) пусть V G \ U — не вершинное покрытие
⇒ ∃xy ∈ EG : x, y ∈/ V G \ U ⇒ x, y ∈ U , противоречие.
(⇐) пусть U — не независимое множество
⇒ ∃x, y ∈ U : xy ∈ EG ⇒ xy не покрыто множеством V G \ U ,
противоречие.

Теорема 2.14

∀G α0 (G) + β0 (G) = |V G|

Доказательство:
Пусть U — независимое, |U | = α0 (G), тогда вершинное покрытие
имеет мощность β0 (G) 6 n − α0 (G)
Пусть D — вершинное покрытие, |D| = β0 (G), тогда независимое
множество имеет мощность α0 > n − β0 (G) ⇒ β0 (G) > n − α0 (G)
Знаем, что β0 (G) 6 n − α0 (G) ⇒ β0 (G) = n − α0 (G)

Определение
Подмножество вершин называется кликой, если все вершины в
нём попарно смежны.
2.13. Независимое множество, паросочетание и покрытия 86

Т.е. U — клика ⇔ G[U ] — полный граф.

Лемма 2.20
U — клика графа ⇔ U — независимое множество графа G.

Определение
Множество попарно несмежных рёбер называется паросочетани-
ем.

Рис. 2.19: Пример паросочетаний

Определение
Паросочетание называется тупиковым (максимальным), если
оно не является собственным подмножеством другого паросочета-
ния.

Определение
Наибольшее по мощности паросочетание — наибольшее паросо-
четание.
Его мощность — число паросочетаний (α1 (G)).
2.13. Независимое множество, паросочетание и покрытия 87

Лемма 2.21

|V G|
α1 (G) 6
2

Доказательство:
Упражнение.

Определение
Пусть есть граф G = (V, E), тогда граф L(G) = (E, E1 ), где

E1 = {eh e и h смежны в G} называется рёберным графом.

Рис. 2.20: Пример рёберного графа

Определение
Множество рёбер, покрывающих все вершины графа называет-
ся рёберным покрытием (рассматриваем графы без изолированных
вершин).
2.13. Независимое множество, паросочетание и покрытия 88

Рис. 2.21: Пример рёберного покрытия

Определение
Тупиковое (минимальное) рёберное покрытие — рёберное покры-
тие, не содержащее другого рёберного покрытия.

Определение
Наименьшее рёберное покрытие — наименьшее по мощности рё-
берное покрытие.
Его мощность — число рёберных покрытий (β1 (G)).

Лемма 2.22

|V G|
β1 (G) >
2

Теорема 2.15
Для любого графа G без изолированных вершин

α1 (G) + β1 (G) = |V G|

Доказательство:
Обозначим: α1 = α1 (G), β1 = β1 (G), n = |V G|
2.13. Независимое множество, паросочетание и покрытия 89

Докажем 2 неравенства:
1) α1 + β1 > n
2) α1 + β1 6 n

1. Пусть M — наибольшее паросочетание, |M | = α1 .


Рассмотрим множества вершин V 0 — концы рёбер из M и V 00 =
V G \ V 0.
Вершины из V 00 попарно несмежны, иначе ребро могли добавить
в паросочетание.
Тогда V 00 — независимое множество вершин или V 00 = ∅. Постро-
им E 0 : если V 00 = ∅, то E 0 = ∅, если V 00 — независимое множество,
то E 0 — множество рёбер, покрывающих V 00 .
Получим, что |V 00 | = |E 0 | = n − 2α1 . Очевидно, что E 0 ∪ M —
рёберное покрытие (по построению). |E 0 ∪ M | = |E 0 | + |M | = n −
2α1 + α1 = n − α1 — мощность какого-то рёберного покрытия, а β1 —
мощность наименьшего рёберного покрытия ⇒ β1 6 |E 0 ∪ M | ⇒
α1 + β1 6 n.
2. Пусть P — наименьшее рёберное покрытие, |P | = β1 .
Рассмотрим G1 — подграф, порождённый множеством рёбер P .
В G1 нет циклов, иначе P – не минимальный ⇒ G1 — остов-
ный лес с k компонентами связности. Берём из каждой компоненты
связности по ребру, получаем паросочетание M .
Пусть в k компонентах связности m1 , . . . , mk рёбер соответствен-
но, n1 , . . . , nk вершин, тогда
X k Xk Xk
n= ni = (mi + 1) = mi + k = |P | + k = β1 + k = β1 + |M |.
i=1 i=1 i=1
Тогда α1 > |M | = n − β1 ⇒ n 6 α1 + β1 .
2.14. Чередующаяся и увеличивающая цепи 90

2.14 Чередующаяся и увеличивающая це-


пи
Определение
Рассмотрим граф G, M -паросочетание, тогда простая цепь P =
x1 , . . . , xt — M -чередующаяся цепь, если
xi xi+1 ∈ M ⇔ xi−1 xi+1 ∈ / M.

Определение
Будем говорить, что x — не покрыта M , если рёбра из M не
покрывают x.

Определение
M -чередующаяся цепь, у которой концы не покрыты M , назы-
вается M -увеличивающей цепью.

x7

x4
x6 x1 , x2 , x3 , x4 , x5 , x6 — M -увеличивающая цепь
x7 , x4 , x5 , x6 — M -увеличивающая цепь
x5 x3 x1

x2

Рис. 2.22: Пример M -увеличивающих цепей


2.14. Чередующаяся и увеличивающая цепи 91

Теорема 2.16 (об увеличивающей цепи)


M — наибольшее паросочетание ⇔ в G нет M -увеличивающих
цепей.

Доказательство:
(⇒) Если есть M -увеличивающаяся цепь P , то рассмотрим M 0 =
(M \EP )∪(EP \M ) — паросочетание в G, |M 0 | > |M |, противоречие.

Рис. 2.23: Рёбра, выделенные жирным, из M , рёбра, выделенные


волной, из M 0

(⇐) Пусть M 0 — наибольшее паросочетание. Рассмотрим G0 —


граф, порождённый множеством рёбер (M \ M 0 ) ∪ (M 0 \ M ) В G0
degG0 x 6 2 ∀x ∈ V G0 ⇒ каждая компонента связности графа G0 —
либо цикл, либо цепь. В цикле рёбра чередуются ⇒ одинаковое чис-
ло рёбер из M и M 0 .
M 0 — наибольшее ⇒ нет M 0 -увеличивающих цепей, нет M -
увеличивающих цепей (по условию) ⇒ в любой компоненте связно-
сти цепь, начинающаяся с ребра одного паросочетания, заканчива-
ется ребром из другого (в противном случае можем получить увели-
чивающую цепь) ⇒ |M | = |M 0 | ⇒ M — наибольшее паросочетание.
2.15. Паросочетания в двудольном графе 92

Определение
Совершенное паросочетание — паросочетание, являющееся рё-
берным покрытием.
Примеры:
Граф Петерсена, n-мерный куб.

2.15 Паросочетания в двудольном графе


Теорема 2.17 (Холла)
Пусть граф G = (A, B, E) — двудольный, тогда в графе G есть
паросочетание, покрывающее A ⇔ ∀X ⊆ A |N (X)| > |X|

Доказательство:
(⇒) Очевидно.
(⇐) Индукция по числу вершин в A:
Если |A| = 1 — тривиально.
Рассмотрим произвольный двудольный граф G = (A, B, E) такой,
что |A| > 2 и выполнено условие Холла.
Рассмотрим 2 случая, объединение этих двух случаев — все
случаи:

1 случай:

∀X ⊂ A |N (X)| > |X|

Берём произвольное ребро xy ∈ EG, x ∈ A, y ∈ B. Рассмотрим


G = G − x − y. Граф G0 удовлетворяет условию Холла, т.к.
0

∀X ⊆ A \ {x} |NG (X)| > |X|


|NG (X)| 6 |NG0 (X)| + 1 ⇒ |X| 6 |NG0 (X)|
2.15. Паросочетания в двудольном графе 93

x A
G0

y B

Рис. 2.24: Графы G и G0

По индукционному предположению в G0 ∃ паросочетание M 0 ,


покрывающее A \ {x}, тогда M 0 ∪ {xy} — паросочетание в G,
покрывающее A.

2 случай:

A0 A
G1 G2

N (A0 ) B

∃A0 ⊂ A : |N (A0 )| = |A0 |

G1 = G[A0 ∪ N (A0 )]
G2 = G − A0 − N (A0 )
Т.к. A0 ⊂ A, G1 и G2 не пустые. Проверим условие Холла в G1 :
∀X ⊆ A0 NG1 (X) = NG (X) ⇒ |NG1 (X)| = |NG (X)| > |X|
(т.к. рёбра из A0 идут только в N (A0 )). По индукционному предпо-
ложению в G1 есть паросочетание M1 , покрывающее A0 .
2.15. Паросочетания в двудольном графе 94

Возьмём X ⊆ A \ A0 . Т.к. из X идут рёбра и в N (A0 ), то рассмот-


рим X ∪ A0 .
Для X ∪ A0 в G условие Холла выполнено, т.к. |X| + |A0 | =
|X ∪ A0 | 6 |NG (X ∪ A0 )| 6 |NG2 (X)| + |NG (A0 )| ⇒ |X| 6 |NG2 (X)|.
⇒ По индукционному предположению в G2 ∃ паросочетание M2 ,
покрывающее A \ A0 ⇒ M1 ∪ M2 — искомое.
Пример:
Если в Q2k+1 взять только 2 слоя веса k + 1 и k, то в этом под-
графе есть совершенное паросочетание (теорема говорит только о
существовании, как построить мы не знаем).

Следствие 2.5
Пусть есть двудольный граф G = (A, B, E), t 6 |A|, тогда в
G существует паросочетание мощности t ⇔ ∀X ⊆ A |NG (X)| >
|X| + t − |A|

Доказательство:

A
t рёбер ... ... Все возможные рёбра

B
|A| − t

Рис. 2.25: Граф G0

В G существует паросочетание мощности t ⇔ в G0 существу-


ет паросочетание A ⇔ ∀X ⊆ A |NG0 (X)| > |X|, где |NG0 (X)| =
|NG (X)| + |A| − t.
2.15. Паросочетания в двудольном графе 95

Теорема 2.18 (о свадьбах, т. Фробениуса)


Двудольный граф G = (A, B, E) имеет совершенное паросочета-
ние ⇔ |A| = |B|, ∀X ⊆ A |N (X)| > |X|

Упражнение
Доказать теорему Холла из теоремы Фробениуса.

Теорема 2.19
В любом k-регулярном (k > 1) двудольном графе существует
совершенное паросочетание.

Доказательство:
Рассмотрим X ⊆ A. Выпишем соседей первого элемента из X:
x1 , . . . , xk , второго: y1 , . . . , yk и так далее.
Рассмотрим такое мультимножество этих соседей
x1 , . . . , xk , y1 , . . . , yk , . . . , z1 , . . . , zk . Любая вершина повторится
не более k раз ⇒ |N (x)| (количество различных вершин-соседей)
|X| · k
> = |X| ⇒ по Теореме о свадьбах есть совершенное
k
паросочетание.

Определение
A — непустое конечное множество, Si ⊆ A, i = 1, . . . , n
x1 , . . . , xn — система различных представителей для S1 , . . . , Sn , ес-
ли
1) xi 6= xj ∀i 6= j
2) xi ∈ Si ∀i
2.15. Паросочетания в двудольном графе 96

Теорема 2.20 (Холла на другом (его) языке)


S1 , . . . , Sn имеют систему различных представителей ⇔
⇔ ∀k < n, ∀{i1 , . . . , ik } ⊆ {1, . . . , n} |Si1 ∪ . . . ∪ Sik | > k.

Теорема 2.21 (Кёнига о (0, 1)-матрицах1 )


Для любой (0, 1)-матрицы минимальное число линий, покрываю-
щих все единицы, равно максимальному числу единиц, никакие две
из которых не стоят в одной линии (линия — либо столбец, либо
строка).
Любая (0, 1)-матрица будет задавать двудольный граф. Тогда
минимальное число линий — вершинное покрытие. Максимальное
число единиц, никакие две из которые не стоят рядом в одной ли-
нии — число паросочетаний.
Матрица
! смежности двудольного графа имеет вид
O A
, то есть матрица A однозначно задаёт двудольный
AT O
граф, именно эта матрица и дана в теореме.
Например:

x1 x2 x3

G
x4 x5
 
0 0 0 1 1
 
0 0 0 1 1 1 1
 
 
 
A(G) =  0 0 0 0 1 , A = 
1 1

 
1 1 0 0 0 0 1
 
 
1 1 1 0 0
1
Матрицы, элементы которых — 0 и 1.
2.15. Паросочетания в двудольном графе 97

Переформулируем теорему для графов.

Теорема 2.22 (Кёнига)


Для любого двудольного графа G верно

α1 (G) = β0 (G)

Доказательство:
6: Очевидно.
>: Пусть у (0, 1)-матрицы минимальное количество линий, по-
крывающих все единицы, равно k ⇒ найдётся k независимых еди-
ниц.
Перенумеруем вершины так, чтобы эти ! линии остались сверху
A B
или снизу слева, получим матрицу
C O
Рассмотрим матрицу B, это матрица смежности графа G1 =
(X, Y, E1 )
∀Z ⊆ X |NG1 (Z)| > |Z| ⇒ существует паросочетание, покрыва-
ющее эту долю (по теорема Холла).
Если |NG1 (Z)| < |Z|, то меняем линии-строки на линии-столбцы
⇒ получили меньше линий, покрывающих единицы в G.
С матрицей C аналогично.
 Пример:   
0 1 0 1 1 1
1 1 1 ⇒  1 1 0 
   

1 1 0 1 0 0
2.15. Паросочетания в двудольном графе 98

Алгоритм построения наибольшего паросочетания


в двудольном графе
Пусть граф G = (A, B, E) — двудольный. Рассмотрим некоторое
паросочетание M . Пусть A1 ⊆ A, B1 ⊆ B — множества вершин, не
покрытых M . Строим максимальный по включению вершин лес F
в графе G со следующими свойствами:
1) ∀b ∈ B леса F имеет степень 2 в F и одно из рёбер, инцидент-
ных b, принадлежит M .
2) Любая компонента связности леса F содержит вершину из A1 .
Добавим оставшиеся вершины из A1 — одновершинные компоненты
связности.
Пример:
a0 a1 a2 a3 a4 a5 a6 a7

b0 b1 b2 b3 b4 b5 b6 b7

Рис. 2.26: Граф G

a0 a2 a3

b2 b4 b3

a1 a6 a4

b6

a5

Рис. 2.27: Лес F

Идея в том, что после построения F , мы можем перебрать все


2.15. Паросочетания в двудольном графе 99

его вершины и, если какая-то вершина будет смежна с вершиной (в


исходном графе), не покрытой паросочетанием, то мы получим уве-
личивающую цепь, а тогда, перестроив эту увеличивающую цепь,
мы получим паросочетание большей мощности. Например, для на-
шего леса одной из таких вершин будет a1 (смежна с b0 ), тогда мы
можем из старого паросочетания удалить ребро {b2 , a1 } и добавить
рёбра {a1 , b0 }, {a2 , b2 }, получим паросочетание большей мощности,
чем исходное.
Далее будет доказано, что если таких вершин не осталось, то мы
получили наибольшее паросочетание.

Лемма 2.23
M — наибольшее паросочетание ⇔ ни одна вершина из B1 не
смежна ни с одной вершиной из F .

Доказательство:
(⇒) Пусть b ∈ B1 , a ∈ V F : ab ∈ EG и пусть a попала в одну из
компоненту связности леса F с корнем a0 ∈ A1 .
Тогда в этих компонентах связности есть цепи из a0 в a и вместе
с ребром ab получаем M -увеличивающую цепь, противоречие.
(⇐) Дано, что нет рёбер из B1 в F . Рассмотрим X = A \ V F,
Y = V F ∩ B (в нашем примере было Y = {b2 , b3 , b4 , b6 },
X = {a7 }). Покажем, что |X ∪ Y | = |M |.
По построению M покрывает X ∪ Y и только по одной вершине,
т.е. если e ∈ M , то оно покрывает не более одной вершины из |X ∪Y |.
Пусть оно покрывает y ∈ Y = V F ∩ B ⇒ e ∈ EF ⇒ второй конец
не принадлежит X.
Докажем, что X ∪ Y — вершинное покрытие графа G. Пусть это
не верно, тогда ∃ab : a ∈ A, b ∈ B, a ∈/ X, b ∈/Y ⇒
2.16. Обходы, эйлеровость 100

⇒ a ∈ V F, b ∈ / B1 . Тогда существует цепь из a в a0 , которую


/ V F, b ∈
можно добавить в лес. Противоречие с максимальностью леса.
|M | 6 α1 (G) = β0 (G) 6 |X ∪ Y | = |M |

2.16 Обходы, эйлеровость


Здесь будем рассматривать псевдографы.

Определение
Эйлеров цикл — это цикл, содержащий все рёбра графа.

Определение
Граф, имеющий эйлеров цикл — эйлеров.

Лемма 2.24
В эйлеровом графе нет мостов.

Доказательство:
e — мост ⇔ e не принадлежит простому циклу (из характериза-
ции мостов). Любое ребро графа принадлежит эйлерову циклу. Из
любого цикла можно получить простой цикл. Значит любое ребро
принадлежит какому-то простому циклу.

Теорема 2.23 (Эйлера)


Для связного псевдографа G эквивалентны следующие утвер-
ждения:
1) G — эйлеров;
2.16. Обходы, эйлеровость 101

2) deg x ≡ 0 (mod 2) ∀x ∈ V G;
3) EG разбивается на простые циклы.

Доказательство:
(1 ⇒ 2) Если мы зашли в какую-то вершину, значит должны
и выйти из неё, т.к. эйлеров цикл покрывает всё рёбра и нельзя
проходить по одному ребру дважды ⇒ все вершины имеют четную
степень.
(2 ⇒ 3) Возьмём какую-нибудь вершину x0 . Строим цепь, на-
чиная с этой вершины, пока в первый раз не попадём в верши-
ну, в которой уже были ⇒ получили первый простой цикл: C1 =
xi , . . . , xr−1 , xr , где xi = xr . Рёбра из C1 удаляем из графа, тогда
степень каждой вершины либо уменьшилась на два (если вершина
была в C1 ), либо осталась неизменной (если вершина не попала в C1 ).
В полученном после удаления рёбер графе G1 степени всех вершин
остались чётными. Продолжаем искать простые циклы и удалять
рёбра, пока не разобъём так весь граф.
(3 ⇒ 1) Дано разбиение рёбер на простые циклы C1 , . . . , Ck . Рас-
смотрим C1 , т.к. граф связный, найдётся вершина из C1 , которая
принадлежит и другому циклу:
∃x ∈ C1 : x ∈ Ci
C1 = x1 , x2 , . . . , x, . . . , xk , x1
C1 ∪ Ci = x1 , x2 , . . . , x, . . . , x, . . . , xk , x1 .
| {z }
Ci
Продолжаем, пока не получим эйлеров граф.

Алгоритм Флёри (построение эйлерова цикла)


1) Начинаем с произвольной вершины x. Берём xy ∈ EG, обо-
значим его номером 1. Переходим в y, удаляем xy.
2.16. Обходы, эйлеровость 102

2) Как выбрать следующую вершину? Если из текущей вершины


есть мост, то идём не по мосту, если это возможно. Переходим в
следующую вершину, нумеруем и удаляем ребро.

Лемма 2.25 (о корректности алгоритма Флёри)


Если G — эйлеров, то алгоритм Флёри строит эйлеров цикл этого
графа.

Доказательство:
Алгоритм строит какой-то цикл, т.к. степени всех вершин чётны,
а значит, если мы вышли из какой-то вершины, то должны в неё
вернуться.
Допустим, что этот цикл не эйлеров, т.е. он содержит не все рёб-
ра. Т.к. G — связный, существуют вершины в этом цикле, из кото-
рых выходят рёбра, не принадлежащие циклу. Удалим рёбра цик-
ла из графа. Берём непустую компоненту связности в этом графе.
Обозначим её H. Пусть xk — последняя вершина цикла, смежная с
вершинами из H. Тогда xk xk+1 — мост, а в H нет мостов (т.к. H —
эйлеров), получилось, что при построении цикла мы выбрали мост,
когда могли его не выбирать, противоречие.

Определение
Эйлерова цепь — цепь, содержащая все рёбра псевдографа.

Лемма 2.26
В G существует эйлерова цепь ⇔ G — связен и содержит не более
двух вершин нечётной степени.
2.17. Гамильтоновость 103

Доказательство:
Упражнение.

Определение
Цикл в орграфе называется эйлеровым, если он содержит все
дуги орграфа по одному разу.

Теорема 2.24 (Эйлера для орпсевдографа)


Для связного орпсевдографа эквивалентны следующие утвер-
ждения:
1) G — эйлеров;
2) deg + x = deg − x ∀x ∈ V G.

Доказательство:
Упражнение.

2.17 Гамильтоновость

Рис. 2.28: Как пройти все вершины по одному разу и вернуться в


исходную?
2.17. Гамильтоновость 104

Определение
Гамильтонов цикл — простой остовный цикл (цикл, проходящий
через все вершины).

Определение
Граф, в котором есть гамильтонов цикл, называется гамильто-
новым.

Лемма 2.27
Пусть в связном графе G длина самой длинной простой цепи
равна t. Если в G существует простой цикл длины (t + 1), то G —
гамильтонов.

Доказательство:
Пусть цикл не содержит все вершины графа, то есть не является
гамильтоновым, тогда существует вершина y, смежная с некоторой
вершиной x из цикла, но в сам цикл не входящая. Уберём одно из
рёбер цикла, инцидентных x. Тогда вместо с ребром xy и оставшейся
частью цикла получим простую цепь длины (t + 1), противоречие.
Следовательно G — гамильтонов.

Теорема (необходимое условие гамильтоновости)


Граф G не гамильтонов, если

1. Существует подмножество вершин S : N (S) < S;

2. При удалении k вершин из графа он распадается на более, чем


k компонент связности.
2.17. Гамильтоновость 105

Доказательство:
Без доказательства.

Теорема 2.25 (Дирака)


|V G|
Если в графе G deg x > ∀x ∈ V G, то G — гамильтонов.
2

Доказательство:
Упражнение (немедленно следует из теоремы Оре).

Теорема 2.26 (Оре)


Если в графе G для любых несмежных вершин x и y
deg x + deg y > |V G|, то G — гамильтонов.

Доказательство:
G — связный, иначе для x и y из разных компонент связности
неравенство не верно.
Пусть x, x1 , . . . , xk , y — самая длинная простая цепь в G, её длина
k + 1, тогда если мы докажем, что существует цикл длины k + 2, то
мы доказали теорему по Лемме 2.27. В этой связи рассмотрим 2
случая:
1) x и y смежны, тогда получаем цикл длины k + 2, и по Лемме
2.27 G — гамильтонов.
2) x и y не смежны.
Т.к. цепь наибольшей длины, то все соседи x и y содержатся в
цепи. Пусть

I = {1 6 i 6 k − 1 xxi+1 ∈ EG}

Y = {1 6 j 6 k − 1 yxj ∈ EG}
2.17. Гамильтоновость 106
x y x y
x1 xk x1 xk

xi xi+1

Надо показать, что эти множества пересекаются, т.е. существу-


ют вершины xi , xi+1 такие, что yxi ∈ EG и xxi+1 ∈ EG, если мы
докажем это, то получим, что в графе есть цикл длины k + 2 (его
несложно построить, глядя на рисунок).
|I| = deg x − 1 (т.к. не считаем ребро xx1 )
|Y | = deg y − 1 (т.к. не считаем ребро yxk )
Рассмотрим |Y ∪ I| 6 k − 1 6 |V G| − 3 (т.к. |V G| > k + 2).
|I ∪ Y | = |I| + |Y | − |I ∩ Y |
|I ∩ Y | = |I| + |Y | − |I ∪ Y | > deg x − 1 + deg y − 1 − |V G| + 3 > 1
(т.к. deg x + deg y > |V G|) ⇒ есть цикл длины k + 2 ⇒ по Лемме
2.27 граф G — гамильтонов.

Следствие 2.6
 
n−1
Пусть есть G = (n, m)-граф, n > 3. Если m > + 2, то
2
G — гамильтонов.

Доказательство:
Упражнение.

Теорема 2.27 (Эрдёш, Хватал)


Пусть граф G — связный, |V G| > 3. Если α0 (G) 6 æ(G), то G —
гамильтонов.
2.17. Гамильтоновость 107

Доказательство:
Если в G нет циклов, то G — дерево, значит α0 (G) >
> æ(G) = 1. Условие теоремы не выполнено, значит, если условие
выполняется, то в графе обязательно есть циклы.

H H
C C

Рис. 2.29: Обведённые вершины — те самые «правые» соседи.

Пусть C — самый длинный простой цикл в G. Докажем, что C —


гамильтонов. Допустим, что он не гамильтонов.
Удалим из графа все вершины нашего цикла, получим граф G0 =
G − V C. Пусть H — компонента связности графа G0 , NG (H) ⊆ V C.
1) Любые две вершины из NG (H) не смежны (иначе мы могли бы
пойти в H по ребру из первой вершины и вернуться в цикл по ребру
из второй вершины, получив цикл большей длины, противоречие,
ведь C — наибольший).
2) G − NG (H) — несвязный граф ⇒ æ(G) 6 |NG (H)|
Рассмотрим M — множество правых соседей вершин из NG (H),
по построению |M | = |NG (H)|. Если мы докажем, что M — независи-
мое в G, то, объединив его с какой-нибудь вершиной из H, получим
независимое множество большей мощности, чем NG (H), и, вспомнив
2), придём к противоречию с условием теоремы.
Допустим, что M — не независимое, тогда между какими-то из
них существует ребро, тогда мы можем построить цикл большей
длины, чем C, противоречие с выбором C (цикл показан на рисунке).
Пусть x ∈ V H ⇒ M ∪ {x} — независимое множество в G. Тогда
α0 (G) > |M ∪ {x}| = |NG (H)| + 1 > æ(G), противоречие с условием.
2.18. Планарность 108

Теорема 2.28
Если G — гамильтонов, то G × K2 — гамильтонов.

Доказательство:
Пусть x1 , . . . , xt — гамильтонов цикл в G, V K2 = {0, 1}, то-
гда (x1 , 0), (x2 , 0), . . . , (xt , 0), (xt , 1) . . . , (x1 , 1), (x1 , 0) — гамильтонов
цикл в G × K2 .

2.18 Планарность
Определение
Пусть L — пространство, в котором определено понятие жорда-
новой кривой2 . Тогда граф G укладывается в пространство L, если
G изоморфен графу H, вершины H — точки пространства L, рёб-
ра — кривые, соединяющие соответствующие точки, удовлетворяют
условиям:
1) Кривая-ребро xy не содержит других вершин;
2) Кривые-рёбра могут пересекаться только в общих вершинах —
концах этих рёбер.
Пример:

Теорема 2.29
Любой граф укладывается в трёхмерное евклидово простран-
ство.
2
Жорданова кривая — непрерывная, спрямляемая, без самопересечений ли-
ния.
2.18. Планарность 109

Рис. 2.30: Пример укладки графа.

Доказательство:
Рассмотрим граф G = (V, E), |V G| = n, |V E| = m. Возьмём пря-
мую в трёхмерном пространстве, на ней отметим n точек, проведём
через эту прямую m различных плоскостей. Каждой плоскости сопо-
ставляем ребро и проводим полуокружность, соединяющую концы
соответствующего ребра.

Определение
Граф G — планарный, если его можно уложить на плоскость.

Определение
Укладка планарного графа на плоскость — плоский граф.

Теорема 2.30
Граф укладывается на сфере ⇔ он планарный.

Доказательство:
Стереографическая проекция: выбираем точку N на сфере, не ле-
жащую в графе, через диаметрально противоположную точку про-
2.18. Планарность 110

водим плоскость α, касающуюся нашей сферы. Теперь проводим


прямые через N и вершины графа, пересечение этих прямых и плос-
кости α и есть проекции вершин графа на плоскость. На рисунке
приведён пример отображения графа-окружности на плоскость.
В обратную сторону делаем то же самое, получаем биекцию.

Определение
Гранью плоского графа называется максимальное по включению
множество точек плоскости такое, что каждая пара точек может
быть соединена жордановой кривой, не пересекающей рёбра графа.
Границa грани — вершины и рёбра, принадлежащие ей.
Неограниченная грань — внешняя грань.
Пример:

Рис. 2.31: Граф G с выделенными гранями, вся оставшаяся плос-


кость — внешняя грань
2.18. Планарность 111

Лемма 2.28
Для любой грани Γ плоского графа существует укладка этого
графа на плоскости такая, что Γ — внешняя.

Доказательство:

S
α

Рис. 2.32: Если бы грань имела форму окружности.

Берём произвольную точку S внутри грани Γ (не должна лежать


на границе), проводим сферу, касающуюся плоскости α, в которой
лежит граф, в точке S, противоположная точка сферы — N , через
точку N проводим плоскость β, касающуюся окружности.
1) Проводим стереографическую проекцию на сферу (северный
полюс N );
2) Проводим стереографическую проекцию графа со сферы на
плоскость β (северный полюс S), получаем искомую укладку.

Теорема 2.31 (формула Эйлера)


Пусть G — связный, плоский (n, m)-граф с f гранями, тогда

n−m+f =2
2.18. Планарность 112

Доказательство:
Рассмотрим связный плоский граф (n, m)-граф с f гранями, обо-
значим его G. Выделим в нём остовное дерево T , в графе T n − 1
ребро и 1 грань, значит формула верна.
Далее по одному возвращаем в граф рёбра. Добавляя одно ребро
мы добавляем в граф одну грань (т.к. ребро разрезает какую-то из
существующих граней), формула продолжает быть верной, возвра-
щаем рёбра пока не получим исходный граф, для которого также
будет выполнена формула.

Следствие 2.10 (Эйлер, 1758)


Для всякого выпуклого многогранника с n вершинами, m рёбра-
ми и f гранями верно n − m + f = 2.

Следствие 2.11 (оценка числа рёбер планарного


графа)
Пусть G — связный планарный (n, m)-граф, n > 3. Тогда

m 6 3n − 6

Доказательство:
Пусть H — плоская укладка графа G, f — число граней графа
⇒ верна формула Эйлера n − m + f = 2.
Рассмотрим Γ1 , . . . , Γf — грани, l1 , . . . , lf — количество рёбер на
границе соответствующих граней.
Тогда 3f 6 l1 + · · · + lf , т.к. на границе любой грани минимум 3
ребра, l1 + · · · + lf 6 2m, т.к. каждое ребро принадлежит максимум
2.18. Планарность 113

двум
 граням.
3f 6 2m
⇒ m 6 3n − 6
n − m + f = 2

Следствие 2.12
K5 не планарен.

Доказательство:
n = 5, m = 10, 10
5 · 3 − 6 ⇒ K5 не планарен.

Следствие 2.13
K3,3 — не планарный.

Доказательство:
Упражнение.

Следствие 2.14
В любом планарном графе существует вершина степени не более
5.

Доказательство:
Упражнение.

Теорема 2.32
Плоский граф двусвязен ⇔ границей любой грани является про-
стой цикл.
2.18. Планарность 114

Доказательство:
(⇐) Очевидно.
(⇒) Пусть G — двусвязный плоский и существует грань Γ гра-
ница которой не простой цикл.
Рассмотрим максимальный по включению подграф H графа G
для которого условие выполнено, H 6= G и понятно, что V G 6= V H.
Рассмотрим x, y ∈ V G, z ∈ V G \ V H. По теореме о характеризации
двусвязных графов существует простая (x, y)-цепь, содержащая z.
Пусть простая (a, b)-цепь, содержащая z, является подцепью
(x, y)-цепи, a, b ∈ V H, остальные вершины не принадлежат V H ⇒
существует грань графа H такая, что a и b лежат на границе, а цепь
внутри грани ⇒ цепь разделит грань на две простые цепи, противо-
речие с выбором H.

Теорема 2.33
Связный граф планарен ⇔ каждый его блок планарен.

Доказательство:
(⇒) Очевидно.
(⇐) Индукция по числу блоков t:
t = 1 : очевидно.
t > 1 : пусть B — висячий блок нашего графа G, x — точка сочле-
нения для блока B. Рассмотрим G0 = G − (V B \ {x}). По индукци-
онному предположению G0 — планарен. По условию B — планарен.
Рассматриваем плоские укладки графов G0 и B такие, что x на
границе внешней грани. Соединяем в одну укладку графа G.
2.19. Как определить планарный граф или нет? 115

2.19 Как определить планарный граф


или нет?
Определение
Если в G есть x такая, что deg x = 2 и xy, xz ∈ EG, тогда удаляем
из графа x и добавляем yz ⇒ G−x+yz — удаление вершины степени
2, обратная операция — добавление вершины степени 2.

Определение
G и H — гомеоморфны, если H можно получить из G конечным
числом операций добавления/удаления вершин степени 2

Теорема 2.34 (Понтрягин–Куратовский, критерий


планарности)
Граф G — планарный ⇔ в нем нет подгарфов, гомеоморфных
K5 или K3,3 .

Доказательство:
(⇒) Пусть в G есть в качестве подграфы гомеоморфные K5 или
K3,3 ⇒ т.к. K5 и K3,3 не планарны исходные подграфы тоже будут не
планарны, значит и весь граф будет не планарным, противоречие.
(⇐) Без доказательства.

Теорема 2.35 (Вагнера)


G — планарный ⇔ в G нет подграфа, который стягивается в K5
или в K3,3
2.20. Алгоритм укладки двусвязного графа на плоскость 116

Доказательство:
Без доказательства.

Рис. 2.33: Пример использования теоремы Вагнера

2.20 Алгоритм укладки двусвязного гра-


фа на плоскость
Определение
Ge — частичная укладка графа G. Сегментом S относительно
G
e называется:
1) ребро e = xy : x, y ∈ V G,
e e∈ e e ∈ EG,
/ E G,
2) компонента связности графа G − V Ge с добавленными рёбрами
из этой компоненты связности в G e

Определение
Вершину x сегмента S назовём контактной, если x ∈ V G
e

Определение
Грань Γ укладки G e допустима в сегменте S относительно G,
e
если все контактные вершины S лежат на границе Γ.
2.20. Алгоритм укладки двусвязного графа на плоскость 117
7 8 9

1 1 2 3
3
2

6 5 4 6 5 4

Рис. 2.34: Граф G и его частичная укладка G


e

S1 S2 S3 S4
1 3 7 8 9

5 6 6 1 2 1 2 3

Рис. 2.35: Сегменты Si относительно укладки G,


e обведённые верши-
ны — контактные

Обозначение: Γ(S) — множество допустимых граней для S.

Определение
Простая цепь сегмента S, концы которой являются контактными,
а все остальные вершины не контактные, называется α-цепью.

Алгоритм укладки
1) Выбираем простой цикл C, G
e := C;
2) Находим грани G,
e сегменты относительно G,
e если сегментов
нет — Ge = G, конец;
3) Для каждого сегмента определяем множество допустимых
2.20. Алгоритм укладки двусвязного графа на плоскость 118

граней Γ(S);
4) Если существует S : Γ(S) = ∅, то G — не планарный, конец.
Если существует S : |Γ(S)| = 1, выбираем S, иначе выбираем
произвольный S;
5) Выбираем α-цепь в S и укладываем в допустимую грань. G
e :=
G
e + α-цепь, идём в пункт 2.

Определение
S1 и S2 относительно G e — конфликтующие если:
1) Γ(S1 ) ∩ Γ(S2 ) 6= ∅;
2) Существуют α-цепь l1 в S1 и α-цепь l2 в S2 , которые нельзя
одновременно уложить без пересечений ни в какую грань из Γ(S1 ) ∩
Γ(S2 ).
Пример:
В примере на рисунке конфликтующие S1 и S2 , S3 и S4 , S1 и S3 .

Лемма 2.29
Если S1 и S2 конфликтуют и при этом |Γ(S1 )| > 2, |Γ(S2 )| > 2 ⇒
Γ(S1 ) = Γ(S2 ), |Γ(S1 )| = 2.

Доказательство:
Пусть Γ(S1 ) 6= Γ(S2 ), тогда существуют три разные грани Γ1 ∈
Γ(S1 ), Γ2 ∈ Γ(S2 ), Γ3 ∈ Γ(S1 ) ∩ Γ(S2 ). Любая α-цепь из S1 уклады-
вается в Γ1 , любая α-цепь из S2 укладывается в Γ2 ⇒ одновременно
укладываются не в Γ3 , значит можно одновременно уложить и в Γ3 ,
противоречие.
Аналогично, |Γ(S1 )| = 2.
2.20. Алгоритм укладки двусвязного графа на плоскость 119

Определение
S(G)
e — граф сегментов, вершины — сегменты относительно G,
e
рёбра — если они конфликтуют.

Определение
Частичная укладка графа G — подграф уложенного графа G.

Лемма 2.30
Если после укладки α-цепи получили частичную укладку графа
G: |Γ(Si )| > 2 ∀i, тогда S(G)
e — двудольный.

Доказательство:
Пусть S1 , S2 , . . . , St , S1 — простой цикл в S(G).
e По Лемме 2.29
Γ(Si ) = {Γ1 , Γ2 } ∀ 1 6 i 6 t. G e — частичная укладка, тогда в
укладке G S1 уложена в одну из Γ1 или Γ2 . Тогда S2 в другую, S3 в
первую и т.д. ⇒ t — чётно ⇒.

Теорема 2.36
Если G — планарный граф, то после каждой укладки α-цепи
получим частичную укладку графа G.

Доказательство:
Индукция по числу шагов (укладок α-цепей):
База индукции:
n = 1, C — частичная укладка;
2.21. Раскраска вершин 120

Шаг индукции:
Пусть G e — частичная укладка, l — α-цепь, докажем, что G e∪l —
частичная укладка.
Т.к. G e — частичная укладка ∀S Γ(S) 6= ∅.
Если существует S : Γ(S) = {Γi }, то в G0 (G0 — укладка G, из
которой получен G) e S уложен в Γi ⇒ укладка α-цепи из S в Γi даёт
частичную укладку графа G.
Пусть |Γ(Si )| > 2 ∀i, рассмотрим граф S(G). e По Лемме 2.30 он
двудольный. Пусть S — изолированная вершина графа S(G), e тогда
S не конфликтует и укладка α-цепи приводит к частичной укладке
графа G.
Пусть H — компонента связности графа S(G), e не являющая-
ся изолированной вершиной и пусть {S1 , . . . , St } = V H, Γ(Si ) =
{Γ1 , Γ2 } ∀i 1 6 i 6 t.
Пусть алгоритм выбрал S1 и уложил α-цепь в Γ1 . Если в G0 S1
уложен в Γ1 , то получаем частичную укладку. Если в G0 S1 уложен
в Γ2 , то все сегменты из одной доли H уложены в Γ1 , из другой в Γ2 ,
поменяли местами, получили G00 ⇒ G e ∪ l — подграф G00 — частичная
укладка.

2.21 Раскраска вершин


Определение
Любая функция ϕ : V G → {C1 , . . . , Ct } — раскраска вершин
графа G в t цветов, V G = V1 t . . . t Vt , Vi — множество вершин
цвета Ci .
2.21. Раскраска вершин 121

Определение
ϕ называется правильной раскраской, если ∀xy ∈ EG
ϕ(x) 6= ϕ(y) (V G = V1 t . . . t Vt : Vi — независимое множество).

Определение
Граф G называется t-раскрашиваемым, если существует правиль-
ная раскраска G в t цветов.

Определение
Если G — t-раскрашиваемый и не является (t − 1)-
раскрашиваемым, то G — t-хроматический.

Определение
Хроматическое число графа G — минимальное число цветов, в
которые можно правильно раскрасить граф G.
Обозначение: χ(G) = t — хроматическое число графа G.

Свойства правильных раскрасок вершин


1) Если G — t-раскрашиваем, то G — (t + 1)-раскрашиваем;
2) Если G — t-раскрашиваем, то любой подграф графа G t-
раскрашиваем;
3) Если G0 — подграф графа G, то χ(G) > χ(G0 );
4) G — 2-раскрашиваем ⇔ G — двудольный (χ(G) 6 2 ⇔ G —
двудольный).
2.21. Раскраска вершин 122

Лемма 2.31
В любой минимальной (в χ(G) цветов) правильной раскраске
графа G для любого цвета существует вершина этого цвета, в окру-
жении которой есть вершины всех остальных цветов.

Доказательство:
Пусть такой вершины не существует ⇒ найдётся Ci : ∀x ∈ V G :
ϕ(x) = Ci в N (x) не все цвета ⇒ тогда x можно перекрасить в
тот цвет, которого нет в окружении x, перекрашиваем так каждую
вершину, получаем раскраску, в которой нет Ci , противоречие, ведь
изначальная раскраска была минимальной.

Лемма 2.32
Пусть ϕ : V → {C1 , . . . , Ct } — правильная раскраска графа G и
пусть Cij — подграф графа G, порожденный множеством вершин i-
ого и j-ого цветов. Если в компоненте связности графа Cij поменять
местами цвета i и j, то получим правильную раскраску.

Доказательство:
Упражнение.

Теорема 2.37 (верхняя оценка хроматического чис-


ла)
Для любого графа G с m рёбрами
r
1 1
χ(G) 6 + 2m +
2 4
2.21. Раскраска вершин 123

Доказательство:
 
χ(G)(χ(G) − 1) χ(G)
Выражаем m, получаем m > =
2 2
Из Леммы 2.31 следует, что для каждой пары цветов существует
ребро,
 концы которого раскрашены в эти цвета ⇒
χ(G)
m> .
2

Лемма 2.33
Граф G — t-раскрашиваем ⇔ каждый блок t-раскрашиваемый.

Доказательство:
(⇒) Очевидно по свойству 2.
(⇐) По индукции, упражнение.

Жадный алгоритм раскраски


1) Упорядочим вершины, получим x1 , . . . , xn и упорядочим C1 <
. . . < Ct ;
2) Следующую вершину красим в минимальный цвет, которого
нет в её окружении.
Рассмотрим 4(G), тогда 4(G) + 1 цветов всегда хватит для рас-
краски графа G по этому алгоритму.

Лемма 2.34

∀G χ(G) 6 4(G) + 1
2.21. Раскраска вершин 124

Доказательство:
Следует из жадного алгоритма.
Примеры:
χ(Kn ) = n = 4(Kn ) + 1;
χ(C2n+1 ) = 3
Других примеров с равенством нет.

Теорема 2.38 (Брукса)


Для любого связного не полного графа G, не являющегося цик-
лом нечётной длины,
χ(G) 6 4(G)

Доказательство:
Упорядочим вершины x1 , . . . , xn таким образом, чтобы выполня-
лись следующие утверждения:
1) ∀ 3 6 i 6 n − 1 : xi смежна с некоторой вершиной xj для j > i,
2) x1 x2 ∈
/ EG, x1 xn , x2 xn ∈ EG.
Тогда теорема будет доказана. Докажем, что свойства выполняются.

Утверждение 1
G — связный n-граф, y ∈ V G. Тогда можно так упорядочить вер-
шины G: y = y1 , . . . , yn ∀i > 2, yi смежна с вершинами с меньшим
номером.
Доказательство:
Обход в ширину.

Утверждение 2
Пусть G — двусвязный граф (не полный и не цикл), тогда найдутся
2.21. Раскраска вершин 125

x, y ∈ V G : xy ∈
/ EG, d(x, y) = 2 G − x − y — связный граф.
Доказательство:
Пусть D = {x ∈ V G : deg x = n − 1} — множество доминирующих
вершин. Т.к. G — не полный D 6= V G.
Если D 6= ∅, то x и y : xy ∈
/ EG — искомые.
Если D = ∅, то т.к. G — не цикл ∃z : deg z > 3. Рассмотрим граф
G = G − z ⇒ G0 — связный. Если G0 — двусвязный, то т.к. D = ∅
0

найдётся x : xz ∈ / EG, d(x, z) = 2. G0 − x — связный ⇒ x и z —


искомые. Если G0 — не двусвязный, то ∃ B1 и B2 — висячие блоки
графа G0 ⇒ ∃x ∈ B1 — не точка сочленения, ∃y ∈ B2 — не точка
сочленения ⇒ xz, yz ∈ EG (т.к. в G существует простой цикл, содер-
жащий x и y). G0 −x−y — связный, т.к. deg z > 3 G−x−y — связный.

Если G — двусвязный и не цикл, то по Утверждению 2 ∃x, y :


xy ∈
/ EG xz, zy ∈ EG G − x − y — связный. По Утверждению 1
можно упорядочить z1 , . . . , zn−2 , тогда x, y, zn−2 , . . . , z2 , z1 искомое.
Если G — не двусвязный. Тогда в G есть блоки. Если блок — Km ,
то точка сочленения имеет степень как минимум m, т.е. 4(G) >
m. Если блок является циклом, то 4(G) > 3. Иначе верно, что
4(Bi ) 6 4(G) ⇒ любой блок — 4(G)-раскрашиваем ⇒ G — 4(G)-
раскрашиваем.

Следствие 2.15
При любой минимальной правильной раскраске связного непол-
ного графа G существуют две вершины одного цвета на расстоянии
2 друг от друга.

Доказательство:
Если G : χ(G) = 2, то очевидно.
2.21. Раскраска вершин 126

Если χ(G) > 3, то по Теореме 2.36 ∃x ∈ V G : deg x > χ(G), т.к.


χ(G) 6 4(G) две вершины окружения — искомые.

Определение
ω(G) — кликовое число графа G — мощность самой большой кли-
ки в графе.

Лемма 2.35

χ(G) > ω(G)

Доказательство:
Очевидно.

Лемма 2.36
Правильная раскраска это V = V1 t . . . t Vχ(G) , Vi — независимое
множество ⇒ |Vi | 6 α0 (G), тогда

|V G|
χ(G) > .
α0 (G)

Примеры:
1) Рассмотрим полный граф без одного ребра (Kn − e), тогда первая
n
оценка даёт χ(G) > n − 2, вторая χ(G) > , в этом случае первая
2
оценка лучше.
2) G(n, 3,
 1), α0 (G) 6 n (было доказано).
n n3
|V G| = ∼
3 6
2.21. Раскраска вершин 127
n

n2
χ(G) > 3 ∼
α0 (G) 6
Попробуем найти клику наибольшей мощности в этом графе
1110000 . . . 0
1001100 . . . 0
0101010 . . . 0
0010110 . . . 0
И больше кортежей нет, выберем другую стратегию:
1110000 . . . 0
1001100 . . . 0
1000011 . . . 0
..
.
n−1
Получаем χ(G) > , т.е. в этом случае вторая оценка намного
2
лучше первой.

Теорема 2.39
Существуют графы без треугольников с произвольным большим
хроматическим числом.

Доказательство:
Строим последовательность графов G2 , G3 , G4 , . . . таких, что
χ(Gi ) = i, Gi без треугольников.
По индукции:
1) Пусть G2 = K2 (ребро, треугольников нет)
2) Gi → Gi+1
Пусть V Gi = {x1 , . . . , xn }. Построим Gi+1 следующим образом:
V Gi+1 = V Gi ∪ V 0 ∪ {y}, где V 0 = {x01 , . . . , x0n },

EGi+1 = EGi ∪ {x0i xj xi xj ∈ EGi } ∪ {x0i y 1 6 i 6 n}
2.22. Карты и их раскраски 128

Gi

Рис. 2.36: Построение графа Gi+1

1) В Gi+1 нет треугольников. Если есть, то ∃i, j, k : xi , xj , x0k —


треугольник ⇒ xi , xj , xk — тоже треугольник, по построению, про-
тиворечие.
2) χ(Gi+1 ) = i + 1
Пример раскраски в i + 1 цвет — тривиально. Покажем, что нельзя
выбрать меньше цветов. Пусть ∃ правильная раскраска в i цветов.
Она индуцирует минимальную правильную раскраску графа Gi .
По Лемма 2.31 для любого цвета существует вершина, в окруже-
нии которой есть все цвета ⇒ её клон раскрашиваем в тот же цвет
⇒ в V 0 есть все i цветов ⇒ нет цвета для y, противоречие.

2.22 Карты и их раскраски


Определение
Карта — связный плоский мультиграф без мостов.
2.22. Карты и их раскраски 129

Определение
Карта t-раскрашиваема, если существует раскраска граней в t
цветов, в которой смежные грани имеют разные цвета.

Определение
Грани называются смежными, если они имеют общее ребро.

Гипотеза (Кэли, 1879)


Всякая карта 4-раскрашиваема.

Определение
Пусть G — плоский псевдограф. Тогда G∗ — геометрически двой-
ственный граф, если в любой грани Γ графа G берём точку не на
границе грани — это множество вершин G∗ , между двумя вершина-
ми есть ребро, если у их граней было общее ребро, ребро должно
пересекать это общее ребро, количество рёбер между двумя верши-
нами равно количеству общих рёбер их граней. Полученный граф
G∗ также будет плоским.

Теорема 2.40
Если G — плоский связный псевдограф, то

(G∗ )∗ ∼
=G

Доказательство:
Без доказательства.
2.22. Карты и их раскраски 130

Теорема 2.41
Карта G — t-раскрашиваема ⇔ G∗ — вершинно t-раскрашиваем.

Доказательство:
По построению G∗ очевидно.

Теорема 2.42
Плоский двусвязный граф 2-хроматический ⇔ граница каждой
грани содержит чётное число рёбер.

Доказательство:
(⇒) Тривиально (2-хроматический — двудольный, любой цикл —
чётный, граница грани — цикл).
(⇐) Пусть C — произвольный простой цикл. Внутренняя часть
цикла содержит грани Γ1 , . . . , Γt , на границе этих граней l1 , . . . , lt
рёбер соответственно. По условию l1 , . . . , lt — чётные. l1 + · · · + lt —
чётное число, и в него все рёбра цикла C входят по одному разу,
остальные по два ⇒ C — чётной длины ⇒ G — двудольный.

Теорема 2.43
Карта G — 2-раскрашиваема ⇔ G — эйлеров.

Доказательство:
Упражнение.
2.22. Карты и их раскраски 131

Теорема 2.44 (Хивуда)


Любой планарный граф 5-раскрашиваем.

Доказательство:
Индукция по числу вершин:
|V G| 6 6 — очевидно.
|V G| = n > 6. Пусть H — плоский, H ∼= G. В H существует
0
вершина x : deg x 6 5. Рассмотрим H = H − x. По индукцион-
ному предположению он 5-раскрашиваем. H1,4 — подграф графа G,
вершины которого покрашены в цвет C1 или C4 .

y2 , C2
y1 , C1 y3 , C3

y5 , C5 y4 , C4

Если y1 и y4 (с рисунка) в разных компонентах связности графа


H1,4 , то в одной из них перекрашиваем вершину ⇒ освободился цвет
для x.
Иначе существует цепь из вершин цветов C1 и C4 , соединяющая
y1 и y4 .
Тогда в H2,5 y2 и y5 в разных компонентах связности, потому что
пересечься они могут только по рёбрам, а граф плоский.

Теорема 2.45 (Хакен, Аппель, 1977)


Всякий планарный граф 4-раскрашиваем.
2.23. Раскраска рёбер 132

Доказательство:
Без доказательства.

2.23 Раскраска рёбер


Определение
Любая функция ϕ : EG → {C1 , . . . , Ct } — раскраска рёбер графа
G в t цветов, EG = E1 t . . . t Et , Ei — множество рёбер цвета Ci .

Определение
ϕ называется правильной раскраской, если ∀e1 , e2 ∈ EG
e1 смежно с e2 ⇒ ϕ(e1 ) 6= ϕ(e2 ) (EG = E1 t . . . t Et : Ei — паросо-
четание).

Определение
Граф G называется рёберно t-раскрашиваемым, если существует
правильная раскраска рёбер графа G в t цветов.

Определение
Если G — рёберно t-раскрашиваемый и не является рёберно (t −
1)-раскрашиваемым, то G — рёберно t-хроматический.

Определение
Хроматический индекс графа G — минимальное число цветов, в
которые можно правильно раскрасить рёбра графа G.
Обозначение: χ0 (G) = t — хроматический индекс графа G.
2.23. Раскраска рёбер 133

Лемма 2.37 (нижняя оценка хроматического ин-


декса)

∀G χ0 (G) > 4(G)

Доказательство:
Очевидно.

Теорема 2.46 (Кёнига, о хроматическом индексе


двудольных графов)
Для любого двудольного графа G

χ0 (G) = 4(G)

Доказательство:
Индукция по числу рёбер:
n = 1 : очевидно.
n > 1 : пусть e ∈ EG — произвольное ребро, G0 = G − e,
4(G0 ) 6 4(G) ⇒ G0 — 4(G)-раскрашиваемый. Пусть ϕ — правиль-
ная раскраска G0 в 4(G) цветов.
Восстановим ребро e, все рёбра кроме него правильно раскра-
шены в 4(G) цветов. Теперь нам надо покрасить e в один из этих
цветов. Пусть e = xy, тогда
∃α : в x нет α (т.к. степень x без e не превышает 4(G) − 1),
∃β : в y нет β (аналогично).
Если α = β, то ϕ(e) = α.
2.23. Раскраска рёбер 134

Если α 6= β, то рассмотрим G
eαβ — подграф графа G, порождён-
ный множеством рёбер, покрашенных в α и β. Если x и y принад-
лежат одной компоненте связности графа G eαβ , то получаем цикл
нечётной длины, противоречие с двудольностью графа. Если они
не лежат в одной компоненте связности, то мы можем перекрасить
рёбра, компоненты связности, в которой лежит x, тогда ϕ(e) = α.

Теорема 2.47 (Визинг, верхняя оценка хроматиче-


ского индекса)

∀G 4(G) 6 χ0 (G) 6 4(G) + 1

Теорема 2.48 (хроматический индекс полного гра-


фа)
1) χ0 (K2k ) = 2k − 1
2) χ0 (K2k+1 ) = 2k + 1

Доказательство:
1) V K2k = {y, x0 , . . . x2k−2 }

Рис. 2.37: Продолжаем добавлять паросочетания для каждой вер-


шины на окружности
2.23. Раскраска рёбер 135

Mi = {xyi } ∪ {y(i−j) mod (2k−1) y(i+j) mod (2k−1) 1 6 j 6 k − 1},
i = 0, . . . , 2k − 2
Mi — паросочетание ∀i, Mi ∩ Mj = ∅ ∀i 6= j.
2) EK2k+1 = E1 t . . . t Et , Ei — паросочетание,
|V G|
α1 (G) 6 ⇒ |Ei | 6 k,
2 
2k + 1
|EK2k+1 | = = k(2k +1) ⇒ t > 2k +1 ⇒ по Теореме Визинга
2
χ0 (G) = 2k + 1

Теорема 2.49
При любой раскраске рёбер графа K6 в 2 цвета существует од-
ноцветный треугольник.

Доказательство:
Надо нарисовать и понять.

Теорема 2.50 (Рамсея)


∀p > 2, q > 2 существует наименьшее число N (p, q) : ∀n >
N (p, q), для любой раскраски рёбер Kn в 2 цвета, хотя бы одно вы-
полнено:
1) Существует порождённый полный подграф на p вершинах пер-
вого цвета (все рёбра первого цвета);
2) Существует порождённый полный подграф на q вершинах вто-
рого цвета (все рёбра второго цвета).
Примеры:
N (3, 3) 6 6;
N (p, 2) = p;
N (2, q) = q.
2.23. Раскраска рёбер 136

Доказательство:
Полная индукция по p + q:
База индукции:
N (p, 2) = p, N (2, q) = q
Шаг индукции:
Покажем, что N (p, q) 6 N (p − 1, q) + N (p, q − 1).
Пусть n = N (p − 1, q) + N (p, q − 1) и покажем, что для любой рас-
краски рёбер Kn теорема верна.

рёбра первого цвета рёбра второго цвета

V1 V2

Пусть ϕ — произвольная раскраска рёбер Kn в 2 цвета и x ∈ V Kn ,


Vi — множество вершин в V Kn , смежные с x по ребру i-го цвета.
Обозначим: |V1 | = n1 , |V2 | = n2 .
Тогда n1 + n2 + 1 = n = N (p − 1, q) + N (p, q − 1) и выпоняется
одно из неравенств:
1) n1 > N (p − 1, q);
2) n2 > N (p, q − 1).
Если выполнено 1), то либо существует полный подграф на q верши-
нах второго цвета и тогда теорема доказана, либо сущесвует полный
подграф на p − 1 вершинах первого цвета, добавим к нему вершину
x, теорема доказана.
Если выпонено 2), то аналогично.
Примеры:
N (3, 4) 6 N (3, 3) + N (2, 4) = 6 + 4 = 10
2.23. Раскраска рёбер 137

N (p, q) < N (p − 1, q) + N (p, q − 1), если N (p − 1, q), N (p, q − 1) —


чётные.
Глава 3

Булевы функции

3.1 Основные понятия


Определение
Функция f : {0, 1}n → {0, 1} называется булевой функцией.
Обозначение: f (x1 , . . . , xn )

Определение
Двоичный кортеж σ
e = (σ1 , . . . , σn ) имеет номер
n
X
ν(e
σ) = σi 2n−i
i=1

Лемма 3.1
n
Число булевых функций от n переменных равно 22 .
3.1. Основные понятия 139

Доказательство:
Сначала считаем количество кортежей на n переменных, их 2n ,
теперь каждому кортежу сопоставляем либо 0, либо 1, получаем
n
ответ 22 .

Определение
Булева функция f (x1 , . . . , xn ) существенно зависит от перемен-
ной xi , если ∃α1 , . . . , αi−1 , αi+1 , . . . , αn ∈ {0, 1} :
f (α1 , . . . , αi−1 , 0, αi+1 , . . . , αn ) 6= f (α1 , . . . , αi−1 , 1, αi+1 , . . . , αn ).

Определение
Если f (x1 , . . . , xn ) не зависит от xi , то xi — фиктивная перемен-
ная.

Определение
Если xi — фиктивная переменная, то из таблицы значений уда-
ляем все строки, в которых xi = 1, потом удаляем столбец xi , тогда
получаем функцю g(x1 , . . . , xi−1 , xi+1 , . . . , xn ) от меньшего числа ар-
гументов — удаление фиктивной переменной.
Обратная операция — добавление фиктивной переменной.
Любые функции f1 , . . . , ft можно привести к функциям f10 , . . . , ft0
от одинакового количества переменных путём удаления и/или до-
бавления фиктивной переменной(ых).

Определение
Булевы функции f1 и f2 равны, если f1 можно получить из f2
удалением и/или добавлением фиктивной переменной.
3.1. Основные понятия 140

Пример:
Функция g(x2 ) получена удалением фиктивной переменной x1 ,
функция h(x2 , x3 ) получена добавлением фиктивной переменной x3 .

x1 x2 f (x1 , x2 ) x2 g(x2 ) x2 x3 h(x2 , x3 )


0 0 0 0 0 0 0 0
0 1 1 1 1 0 1 0
1 0 0 1 0 1
1 1 1 1 1 1

Теорема 3.1
Число булевых функций f (x1 , . . . , xn ) существенно зависящих от
всех переменных x1 , . . . , xn равно
n  
X
k 2n−k n
(−1) 2
k=0
k

Доказательство:
Пусть A — множество всех булевых функций f (x1 , . . . , xn ), Ai —
булевы функции, содержащие фиктивную переменную xi , тогда
n n−1 n−2
|A| = 22 , |Ai | = 22 , |Ai ∩ Aj | =22 
X n 2n−k
Si = |Ai1 ∩ . . . ∩ Aik | = 2
16i1 <...<ik 6n
k
X n
Тогда |A \ (Ai ∪ . . . ∪ An )| = (−1)k Sk
k=0
3.1. Основные понятия 141

Примеры булевых функций:


Пусть P2 — все булевы функции. Определим все функции от од-
ной и двух переменных1 :

x f (x) = x f (x) = x 0 1
0 0 1 0 1
1 1 0 0 1

x y x&y = xy x ∨ y x ⊕ y x ∼ y x → y x | y x ↓ y
0 0 0 0 0 1 1 1 1
0 1 0 1 1 0 1 1 0
1 0 0 1 1 0 0 1 0
1 1 1 1 0 1 1 0 0

Определение
Пусть Ω ⊆ P2 , тогда формулой над Ω называется:
1) Любое выражение f (x1 , . . . , xn ) — формула над Ω, где f ∈ Ω;
2) Пусть f0 ∈ Ω и Φ1 , . . . , Φn — формулы, либо символы перемен-
ных, тогда f0 (Φ1 , . . . , Φn ) — формула над Ω;
3) Других формул нет (:

Определение
Сопоставим каждой формуле Φ(x1 , . . . , xn ) над Ω булеву функ-
цию f (x1 , . . . , xn ):
1) Если Φ(x1 , . . . , xn ) = f (x1 , . . . , xn ), то сопоставим f (x1 , . . . , xn ).
2) Если Φ = f0 (Φ1 , . . . , Φm ), то, если Φi — функция, то ей сопо-
ставляется функция fi , если Φi — символ переменной xji , то сопо-
1
| – штрих Шеффера, ↓ — стрелка Пирса.
3.1. Основные понятия 142

ставляем fi = xji и Φ сопоставляем


f (x1 , . . . , xn ) = f0 (f1 , . . . , fm ).

Определение
Если Φ сопоставляется f , то Φ реализует f .

Определение
Формулы Φi и Φj эквивалентны (Φi = Φj ), если они реализуют
равные функции.

Основные эквивалентности формул:


Ω = {x1 &x2 , x1 ∨ x2 , x1 ⊕ x2 , x, x, 0, 1}, ◦1 , ◦2 ∈ {&, ∨, ⊕}

1. Коммутативность &, ∨, ⊕ :
(x1 ◦1 x2 ) = (x2 ◦1 x1 )

2. Ассоциативность &, ∨, ⊕ :
(x1 ◦1 (x2 ◦1 x3 )) = ((x1 ◦1 x2 ) ◦1 x3 )

3. Дистрибутивность &, ∨, ⊕ :
(x1 ◦1 (x2 ◦2 x3 )) = ((x1 ◦1 x2 ) ◦2 (x1 ◦1 x3 ))

4. Закон двойного отрицания:


x=x

5. Закон де Моргана:
(x1 &x2 ) = (x1 ∨ x2 )
(x1 ∨ x2 ) = (x1 &x2 )
3.1. Основные понятия 143

6. Закон поглощения:
(x1 &(x1 ∨ x2 )) = x1
(x1 ∨ (x1 &x2 )) = x1

7. Идемпотентность:
(x&x) = x
(x ∨ x) = x

8. Закон противоречия:
(x&x) = 0

9. Закон исключённого третьего:


(x ∨ x) = 1

10. Законы умножения на константу и сложение с константой:


(x&0) = 0
(x&1) = x
(x ∨ 1) = 1
(x ∨ 0) = x

11. Законы для операции ⊕:


(x ⊕ x) = 1
(x ⊕ 1) = x
(x ⊕ x) = 0
(x ⊕ 0) = x

Соглашения по записи формул:


1. Опускаем внешние скобки;

2. Опускаем скобки: A1 ◦1 . . . ◦1 An ;
3.1. Основные понятия 144
n
^
3. Ai = A1 & . . . &An ,
i=1
_n
Ai = A1 ∨ . . . ∨ An ,
i=1
M n
Ai = A1 ⊕ . . . ⊕ An ;
i=1

4. x1 &x2 = x1 · x2 = x1 x2 ;

5. & имеет приоритет перед ∨, ⊕, ∼, →.



x, σ = 1
σ
Далее будем писать x = , тогда xσ = 1 ⇔ x = σ.
x, σ = 0

Теорема 3.2 (о разложении функции по перемен-


ным)
Пусть есть булева функция f (x1 , . . . , xn ), 1 6 k 6 n, тогда
_
f (x1 , . . . , xn ) = xσ1 1 & . . . &xσk k f (σ1 , . . . , σk , xk+1 , . . . , xn )
(σ1 ,...,σk )∈{0,1}k

Доказательство:
Рассмотрим кортеж (α1 , . . . , αn ) ∈ {0, 1}n , подставим значения в
правую часть равенства:
_
α1σ1 · · · αkσk f (σ1 , . . . , σk , αk+1 , . . . , αn ) =
(σ1 ,...,σk )∈{0,1}k
= α1α1 · · · αkαk f (α1 , . . . , αn ) = f (α1 , . . . , αn )
Примеры:

1. Пусть k = 1, тогда
f (x1 , . . . , xn ) = x01 f (0, x2 , . . . , xn ) ∨ x11 f (1, x2 , . . . , xn )
3.1. Основные понятия 145

Если x1 = 0, то занулится второе слагаемое.


Если x1 = 1, то занулится первое слагаемое.

2. Пусть k = n, тогда
_
f (x1 , . . . , xn ) = xσ1 1 · · · xσnn f (σ1 , . . . , σn ) =
(σ1 ,...,σn )∈{0,1}n
_
= xσ1 1 · · · xσnn — СДНФ (Совершенная Дизъюнк-
(σ1 ,...,σn )∈{0,1}n
f (σ1 ,...,σn )=1
тивная Нормальная Форма).

Определение
Пусть есть f (x1 , . . . , xn ), тогда f ∗ (x1 , . . . , xn ) — двойственная к
f , если f ∗ (x1 , . . . , xn ) = f (x1 , . . . , xn )
Примеры:
(x&y)∗ = x ∨ y
(x ⊕ y)∗ = x ∼ y
(f ∗ )∗ = f
(x)∗ = x
(1)∗ = 0

Определение
Функция f (x1 , . . . , xn ) называется самодвойственной, если

f (x1 , . . . , xn ) = f ∗ (x1 , . . . , xn )

Определение
Определим функцию m от трёх переменных — функцию голосо-
вания, она является самодвойственной.
3.1. Основные понятия 146

x1 x2 x3 m(x1 , x2 , x3 ) m∗ (x1 , x2 , x3 )
0 0 0 0 0
0 0 1 0 0
0 1 0 0 0
0 1 1 1 1
1 0 0 0 0
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1
Таблица 3.1: Функция голосования

Теорема 3.3 (принцип двойственности)


Пусть

F (x1 , . . . , xn ) = f (f1 (x1 , . . . , xn ), . . . , fm (x1 , . . . , xn ))

Тогда

F ∗ (x1 , . . . , xn ) = f ∗ (f1∗ (x1 , . . . , xn ), . . . , fm



(x1 , . . . , xn ))

Доказательство:
Распишем по определению

F ∗ (x1 , . . . , xn ) = f (f1 (x1 , . . . , xn ), . . . , fm (x1 , . . . , xn ) =

= f (f1 (x1 , . . . , xn ), . . . , fm (x1 , . . . , xn ) =


= f ∗ (f1∗ (x1 , . . . , xn ), . . . , fm

(x1 , . . . , xn ))

Примеры:

1. (x ⊕ (yz ∼ t) ⊕ 1)∗ = x ∼ ((y ∨ z) ⊕ t) ∼ 0

2. Применим принцип двойственности к СДНФ. Пусть


3.2. Замыкания систем булевых функций 147

f (x1 , . . . , xn ) 6≡ 1 и f ∗ (x1 , . . . , xn ) 6≡ 0, тогда



f (x1 , . . . , xn ) = (f ∗ (x1 , . . . , x
n )) =

_
xσ1 1 · · · xσnn 
 
=
  =
(σ1 ,...,σn )∈{0,1}n
f (σ1 ,...,σn )=1
^
= (xσ1 1 ∨ . . . ∨ xσnn ) =
(σ1 ,...,σn )∈{0,1}n
f (σ 1 ,...,σ n )=0
^
xσ1 1 ∨ . . . ∨ xσnn

= — СКНФ (Совершенная
(σ1 ,...,σn )∈{0,1}n
f (σ1 ,...,σn )=0
Конъюнктивная Нормальная Форма).

Определение
σ σi
Формула вида xi1i1 · · · xik k , {i1 , . . . , ik } ⊆ {1, . . . , n}, где xij 6=
xit , j 6= t называется элементарной конъюнкцией над {x1 , . . . , xn }
ранга k.

Определение
Формула вида K1 ∨ . . . ∨ Kl , где Ki — элементарная конъюнкция
и ∀i, j : i 6= j, Ki 6= Kj называется дизъюнктивной нормальной
формой (ДНФ)
n
Всего различных ДНФ над множеством {x1 , . . . , xn } 23

3.2 Замыкания систем булевых функций


Определение
Пусть Ω ⊆ P2 , тогда [Ω] — замыкание системы булевых функций
Ω относительно операции суперпозиции (все булевы функции, по-
3.2. Замыкания систем булевых функций 148

лучаемые с помощью применения оператора суперпозиции к функ-


циям из Ω).

Свойства замыканий:
1) Ω ⊆ [Ω];
2) Ω1 ⊆ Ω2 ⇒ [Ω1 ] ⊆ [Ω2 ];
3) [Ω1 ] ∪ [Ω2 ] ⊆ [Ω1 ∪ Ω2 ];
4) [[Ω]] = [Ω].

Определение
Ω — замкнутая, если [Ω] = Ω.
Пример:
[{0, 1}] = {0, 1}

Определение
Ω — полна, если [Ω] = P2

Теорема 3.4
{&, ∨, ¬} — полна.

Доказательство:
Если f ≡ 0, то x&x, иначе СДНФ.
3.2. Замыкания систем булевых функций 149

Теорема 3.5 (о полноте двух систем булевых функ-


ций)
Ω1 , Ω2 ⊆ P2 , Ω1 — полна, любая булева функция из Ω1 выража-
ется формулой над Ω2 . Тогда Ω2 — полна.

Доказательство:
Дано, что [Ω1 ] = P2 , Ω1 ⊆ [Ω2 ]
2 св-во 4 св-во
P2 = [Ω1 ] ⊆ [[Ω2 ]] = [Ω2 ] ⊆ P2 ⇒ [Ω2 ] = P2 .

Лемма 3.2 (примеры полных систем)


Полны {&, ¬}, {∨, ¬}, {↓}, {|}, {&, ⊕, 1}.

Доказательство:
Докажем, что полна {&, ¬} :
Знаем, что Ω1 = {&, ∨, ¬} — полна. Покажем, что любая булева
функция из Ω1 выражается формулой над Ω2 = {&, ¬}, получим:
x ∨ y = x&y
x&y = x&y
x=x
По Теореме 3.5 система Ω2 полна.
Докажем, что полна {&, ⊕, 1} :
Знаем, что Ω1 = {&, ¬} — полна. Покажем, что любая булева функ-
ция из Ω1 выражается формулой над Ω2 = {&, ⊕, 1}, получим:
x&y = x&y
x=x⊕1
По Теореме 3.5 система Ω2 полна.
Остальное — упражнение.
3.2. Замыкания систем булевых функций 150

Теорема 3.6
Из любой полной системы можно выделить конечную полную
подсистему.

Доказательство:
Пусть Ω — полна, тогда существуют конечные формулы Φ& , Φ¬ ,
которые реализуют & и ¬ соответственно.
Пусть Ω0 — множество функций из Ω, входящих в Φ& и Φ¬ .
По Теорема 3.5 Ω0 — полна, Ω0 ⊆ Ω ⇒ Ω0 — конечная.

Определение
Пусть есть {x1 , . . . , xn } — множество переменных, тогда xi1 · · · xit ,
где xij 6= xis при j 6= s, {i1 , . . . , it } ⊆ {1, . . . , n} — монотонная эле-
ментарная конъюнкция ранга t.
При t = 0 : 1 — монотонная элементарная конъюнкция.

Определение
Упорядочим монотонную элементарную конъюнкцию (далее:
МЭК): 
1, x входит в МЭК
i
xi1 & . . . &xit 7→ (σ1 , . . . , σn ), где σi =
0,
n
X
Тогда номер этого двоичного кортежа: σi 2n−i
i=1
Пример:
f1 (x1 , x2 , x3 ) = f1 = (10010100) — функция, заданная своим
столбцом значений.
3.3. Полином Жегалкина 151

f1 (x1 , x2 , x3 ) x1 x2 x3 МЭК Cf
1 0 0 0 1 1
0 0 0 1 x3 0
0 0 1 0 x2 1
1 0 1 1 x2 x3 1
0 1 0 0 x1 1
1 1 0 1 x1 x3 0
0 1 1 0 x1 x2 0
0 1 1 1 x1 x2 x3 1
Таблица 3.2: МЭК над множеством из трёх переменных

3.3 Полином Жегалкина


Определение
Формула вида K1 ⊕· · ·⊕Kl , где Ki — МЭК ∀i и Ki 6= Kj при i 6= j
называется полиномом Жегалкина (полином, АНФ (Алгебраическая
Нормальная Форма)).
Если l = 0, то 0 — полином Жегалкина.
Пример:
C
ef — столбец коэффициентов полинома Жегалкина некоторой
функции, задаёт полином Жегалкина x1 x3 ⊕ x2 x3 ⊕ 1

Теорема 3.7 (Жегалкина)


Для любой булевой функции f ∈ P2 существует и единственный
полином Жегалкина реализующий её.

Доказательство:
Существование:
Знаем, что Ω = {&, ⊕, 1} — полна, тогда для любой булевой функции
3.4. Методы получения АНФ 152

1) Существует формула f над Ω, реализующая нашу функцию;


2) В f раскрываем все скобки;
3) Убираем повторения с помощью A ⊕ A = 0, получаем АНФ.
Пример:
x → y = x ∨ y = x&y = x(y ⊕ 1) ⊕ 1 = xy ⊕ x ⊕ 1

Единственность:
Рассмотрим множество булевых функций и множество полиномов
Жегалкина, тогда:
1) Любой полином реализует одну булеву функцию;
2) Множества БФ и АНФ равномощны;
3) Любая булева функция задаём минимум один полином
⇒ существует биекция между множеством БФ и АНФ.

3.4 Методы получения АНФ


3 метода получения АНФ
1) Преобразование формулы
I. Получаем СДНФ;
II. По закону де Моргана избавляемся от ∨;
III. По x = x ⊕ 1 избавляемся от отрицаний;
IV. Раскрываем скобки, приводим подобные.
2) Метод неопределённых коэффициентов
Пусть f (x1 , . . . , xn ) = C0 K0 ⊕C1 K1 ⊕· · ·⊕C2n −1 K2n −1 , а далее подстав-
ляем значения функции и аргументов и находим коэффициенты.
Пример:
Найдём методом неопределённых коэффициентов АНФ для
f1 = f1 (x1 , x2 , x3 ) = C0 ⊕ C1 x3 ⊕ C2 x2 ⊕ C3 x2 x3 ⊕ C4 x1 ⊕ C5 x1 x3 ⊕
C 6 x1 x2 ⊕ C 7 x1 x2 x3
3.4. Методы получения АНФ 153

Подставляем значения x1 , x2 x3 построчно из таблицы 3.2, полу-


чаем
1 = C0
0 = C0 ⊕ C1
0 = C0 ⊕ C2
1 = C0 ⊕ C1 ⊕ C2 ⊕ C3
0 = C0 ⊕ C4
1 = C0 ⊕ C1 ⊕ C4 ⊕ C5
0 = C0 ⊕ C2 ⊕ C4 ⊕ C6
M7
0= Ci
i=0

Теперь находим все Ci , по Теореме Жегалкина система уравне-


ний имеет решение.
C0 = 1
C1 = 1
C2 = 1
C3 = 0
C4 = 1
C5 = 0
C6 = 1
C7 = 1
Тогда полином этой функции имеет вид
f (x1 , x2 , x3 ) = 1 ⊕ x3 ⊕ x2 ⊕ x1 ⊕ x1 x2 ⊕ x1 x2 x3
3) Преобразования столбца значений
Пусть α e = (α1 , . . . , αk ) ∈ {0, 1}k ,
βe = (β1 , . . . , βk ) ∈ {0, 1}k , тогда определим
αe ⊕ βe = (α1 ⊕ β1 , . . . , αk ⊕ βk )
αef = (α0 , . . . , α2n −1 ) — столбец значений булевой функции f
Cef = (C0 , . . . , C2n −1 ) — столбец коэффициентов полинома функции
f.
3.4. Методы получения АНФ 154

Индукция по n:
База:
n=1:α ef = (α0 , α1 ) ⇒ C ef = (α0 , α0 ⊕ α1 )
Шаг:
n > 1 : Пусть f = (y, x1 , . . . , xn−1 ), тогда
f0 (x1 , . . . , xn−1 ) = f (0, x1 , . . . , xn−1 )
f1 (x1 , . . . , xn−1 ) = f (1, x1 , . . . , xn−1 )
Им соответствуют C ef0 и C ef1 , пусть
C
ef = (C ef0 , Cef0 ⊕ Cef1 )

Лемма 3.3
Полученный C
ef — кортеж коэффициентов АНФ функции f .

Доказательство:
База:
Очевидно.
Шаг:
Упр.
f (y, x1 , . . . , xn ) = yf (0, x1 , . . . , xn−1 ) ⊕ yf (1, x1 , . . . , xn−1 ) =
= (y ⊕ 1)f0 (x1 , . . . , xn−1 ) ⊕ yf1 (x1 , . . . , xn−1 ) =
= f0 (x1 , . . . , xn−1 ) ⊕ y(f0 (x1 , . . . , xn−1 ) ⊕ f1 (x1 , . . . , xn−1 ))
Пример:
На первом шаге разбиваем значения функции на пары по порядку,
первое значение в паре просто сносим на новую строку, а второе
складываем с первым и результат записываем под вторым значени-
ем и так для всех пар. На втором шаге делаем то же самое, только
разбиваем на группы по четыре, сносим первые 2 значения, осталь-
ные 2 складываем как кортеж с первыми двумя и записываем вниз
и т.д. пока на очередном шаге не придётся разбивать значения на
группы по n, в этом случае строка значений и будет C ef .
3.5. Классы булевых функций 155

x1 0 0 0 0 1 1 1 1
x2 0 0 1 1 0 0 1 1
x3 0 1 0 1 0 1 0 1
f (x1 , x2 , x3 ) 1 1 0 1 0 0 1 1
1 0 0 1 0 0 1 0
1 0 1 1 0 0 1 0
C
ef 1 0 1 1 1 0 0 1

3.5 Классы булевых функций


5 классов булевых функций

1. T0 = {f (x1 , . . . , xn ) f (0, . . . , 0) = 0} — класс функций, сохра-
няющих ноль.

2. T1 = {f (x1 , . . . , xn ) f (1, . . . , 1) = 1} — класс функций, сохра-
няющих единицу.

3. S = {f f ∗ = f } — класс самодвойственных функций.

4. L = {f f (x1 , . . . , xn ) = α1 x1 ⊕ · · · αn xn ⊕ αn+1 } — класс линей-
ных функций.

5. M = {f α e 4 βe ⇒ f (e α) 6 f (β)} e — класс монотонных функ-
ций.

Определение
(α1 , . . . , αn ) 4 (β1 , . . . , βn ) ⇔ ∀i αi 6 βi
Пример:
Монотонные функции: 0, 1, &, ∨,функция голосования.
3.5. Классы булевых функций 156

Теорема 3.8 (о замкнутости основных классов бу-


левых функций)

T0 , T1 , L, S, M — замкнуты.

Доказательство:
1) Рассмотрим T0 :
Надо показать, что суперпозиция функций из T0 , также является
функцией из T0 . Пусть f0 , f1 , . . . , fm ∈ T0 . Рассмотрим
F (x1 , . . . , xn ) = f0 (f1 (x1 , . . . , xn ), . . . , fm (x1 , . . . xn ))
F (0, . . . , 0) = f0 (0, . . . , 0)
2) Для T1 аналогично.
3) Рассмотрим S:
F = f0∗ (f1∗ , . . . , fm
∗ ∗
) (принцип двойственности)
4) Рассмотрим L:
L = [{⊕, 1}], т.к. любая булева функция из L получается с помощью
суперпозиции ⊕ и 1.
5) Рассмотрим M :
F (x1 , . . . , xn ) = f0 (f1 (x1 , . . . , xn ), . . . , fm (x1 , . . . , xn ))
F (α1 , . . . , αn ) = f0 (f1 (α1 , . . . , αn ), . . . fm (α1 , . . . , αn )) 6
6 f0 (f1 (β1 , . . . , βn ), . . . , fm (β1 , . . . , βn )) = F (β1 , . . . , βn )

Лемма 3.4 (о не самодвойственной функции)

f∈
/ S ⇔ 0, 1 ∈ [{f, ¬}]
3.5. Классы булевых функций 157

Доказательство:
(⇐) Пусть f ∈ S. Тогда, так как ¬ ∈ S, то [{f, ¬}] ⊆ S, противо-
речие с тем, что 0, 1 ∈ [{f, ¬}], а они не самодвойственные.
(⇒) f ∈ / S ⇔ ∃β1 , . . . , βn ∈ {0, 1} :
f (β 1 , . . . , β n ) 6= f (β1 , . . . , βn ), т.к. функция принимает значения из
{0, 1}, то
f (β 1 , . . . , β n ) = f (β1 , . . . , βn )
Рассмотрим пример:
f (0, 1, 1, 0, 1, 1) = f (1, 0, 0, 1, 0, 0) тогда
ϕ(x) = f (x, x, x, x, x, x) ∈ {0, 1}
Значит в общем случае
ϕ(x) = f (xβ1 1 , . . . , xβnn ) ∈ {0, 1} — суперпозиция функции f и отрица-
ния. Получили, что ϕ(x) ∈ [{f, ¬}] и
ϕ(x) = const ∈ {0, 1}

Лемма 3.5 (о нелинейной функции)

f∈
/ L ⇔ x&y ∈ [{f, 1, 0, x}]

Доказательство:
(⇐) Аналогично Лемме 3.4, упражнение.
(⇒) f (x1 , . . . , xn ) ∈ / L по т. Жегалкина
f (x1 , . . . , xn ) = K1 ⊕ · · · ⊕ Km , выберем Ki — МЭК наименьшего
ранга, но большего 1.
Без ограничения общности Ki = x1 · · · xt , тогда рассмотрим
f (x1 , . . . , xt , 0, . . . , 0), в полиноме этой функции ровно одна МЭК
ранга, большего 1.
Рассмотрим f (x1 , x2 , 1, . . . , 1, 0, . . . , 0) =
| {z }
t
3.5. Классы булевых функций 158

= x1 x2 ⊕ ax1 ⊕ bx2 ⊕ c = ϕ(x1 , x2 )


ϕ(x1 ⊕b, x2 ⊕a) = (x1 ⊕b)(x2 ⊕a)⊕a(x1 ⊕b)⊕b(x2 ⊕a)⊕c = x1 x2 ⊕ab⊕c,
получили конъюнкцию.

Лемма 3.6 (о немонотонной функции)

f∈
/ M ⇔ x ∈ [{f, 0, 1}]

Доказательство:
(⇐) Упражнение.
(⇒) f (x1 , . . . , xn ) ∈/ M ⇔ ∃(α1 , . . . , αn ) 4 (β1 , . . . , βn ) такие, что
f (α1 , . . . , αn ) > f (β1 , . . . , βn ), надо построить функцию отрицания
ϕ(x)
Рассмотрим пример, пусть
f (0, 1, 1, 0, 1, 0) = 1
f (0, 1, 1, 1, 1, 1) = 0
Тогда в тех позициях, где значения аргументов не совпадают ставим
в ϕ(x) x
ϕ(x) = f (0, 1, 1, x, 1, x)
ϕ(0) = f (0, 1, 1, 0, 1, 0) = 1
ϕ(1) = f (0, 1, 1, 1, 1, 1) = 0
Получили, что ϕ(x) — функция отрицания.
Тогда в общем виде функция ϕ(x) получается  при подстановке на

0, αi = βi = 0



места переменных функции f вместо xi 1, αi = βi = 1


x, αi 6= βi

ϕ(0) = 1
ϕ(1) = 0 ⇒ ϕ(x) = x
3.5. Классы булевых функций 159

Теорема 3.9 (Поста)


Система булевых функций Ω полна ⇔ Ω 6⊆ T0 , Ω 6⊆ T1 ,
Ω 6⊆ S, Ω 6⊆ L, Ω 6⊆ M

Доказательство:
(⇒) Упражнение.
(⇐) Имеем, что
∃f0 ∈ Ω : f0 ∈ / T0
∃f1 ∈ Ω : f1 ∈ / T1
∃fL ∈ Ω : fL ∈ /L
∃fS ∈ Ω : fS ∈ /S
∃fM ∈ Ω : fM ∈ /M
Докажем, что {f0 , f1 , fL , fS , dM } — полна. Рассмотрим полную
систему {&, ¬}
1) Получим 0, 1, x
Пусть ϕ0 (x) = f0 (x, . . . , x), где ϕ0 (0) = 1
ϕ1 (x) = f1 (x, . . . , x), где ϕ1 (1) = 0
Если x ∈ {ϕ0 (x), ϕ1 (x)}, то по Лемме 3.4 получим 0, 1 ∈ [{x, f }]
Иначе {ϕ0 (x), ϕ1 (x)} = {0, 1}, а значит по Лемме 3.6 получим x ∈
[{0, 1, f }]
2) x&y ∈ [{f, 0, 1, x}] по Лемме 3.5 ⇒ Ω полна.

Применение Теоремы Поста


1) Проверим полноту Ω = {xy ⊕ z, 1}

T0 T1 S L M
xy ⊕ z + − − − −
1 − + − + +
3.5. Классы булевых функций 160

В каждом столбце есть минус, значит Ω полна.

2) Ω = {f1 = (01101001), f2 = (00111100), f3 = (11010100)}.

T0 T1 S L M
f1 + + + + +
f2 + − − + −
f3 − −

В каждом столбце есть минус, значит Ω полна.

3) Ω = (S ∩ M ) ∪ (L \ M ).

T0 T1 S L M
m(x, y, z) + + + − +
x⊕y + − − + −
x⊕y⊕1 − + −

m(x, y, z) = xy ⊕ xz ⊕ yz, значит функция голосования не линей-


ная. В итоге получаем, что Ω полна.

Следствие 3.1
Из любой полной системы можно выделить полную подсистему,
состоящую из не более чем четырёх функций.

Доказательство:
В Теореме Поста рассматривали систему {f0 , f1 , fS , fM }, в первом
пункте доказательства Теоремы Поста получали ϕ0 (x), ϕ1 (x), одна
из которых x — не монотонная функция, а значит можем вместо
немонотонной функции в доказательстве взять функцию отрицания,
т.е. нам нужно лишь 4 функции.
3.5. Классы булевых функций 161

Иначе одна из этих функций — тождественная единица, которая


не является самодвойственной, и мы снова можем обойтись без пя-
той функции в доказательстве, используя вместо неё тождественную
единицу.

Теорема 3.7
Для любых двух классов булевых функций из {T0 , T1 , S, L, M }
найдётся функция которая принадлежит первому классу, но не при-
надлежит второму, т.е.

∀Ω1 , Ω2 ∈ {T0 , T1 , S, L, M }, Ω1 6= Ω2 ∃f ∈ P2 : f ∈ Ω1 , f ∈
/ Ω2

Доказательство:

T0 T1 S L M
T0 0 0 xy x⊕y
T1 1 1 xy x∼y
S x x m(x, y, z) x
L 1 0 0 x⊕y
M 1 0 0 xy

В столбец выписаны Ω1 , в строку Ω2 . Для каждой пары привели


пример такой функции.

Лемма 3.8
Пусть
1) Ω — замкнута;
2) Ω 6= P2 .
Тогда Ω содержится в одном из классов T0 , T1 , S, L, M .
3.5. Классы булевых функций 162

Доказательство:
Из Теоремы Поста очевидно.

Определение
Система булевых функций Ω называется предполным классом,
если
1) Ω 6= P2 ;
2) Ω — замкнуто;
3) ∀f ∈ P2 \ Ω, Ω ∪ {f } — полна.

Теорема 3.10
В P2 существует ровно 5 предполных классов T0 , T1 , S, L, M .

Доказательство:
Докажем, что S — предполный, для остальных аналогично
1) S 6= P2 (по т. Поста);
2) S — замкнутый (по Теореме 3.8);
3) f ∈ P2 \ S

∃f0 ∈ S \ T0  

∃f1 ∈ S \ T1 
⇒ по т. Поста {f0 , f1 , fL , fM , f } ⊆ S ∪ {f } — полна.
∃fL ∈ S \ L  

∃fM ∈ S \ M

Докажем, что других нет, Ω — предполный, Ω — замкнут, Ω 6= P2 ,
по Лемме 3.8 Ω содержится в одном из классов T0 , T1 , S, L, M и пусть
Ω не совпадает с T0 , T1 , S, L, M . Без ограничения общности пусть
Ω ⊆ M : Ω 6= M ⇒ ∃f ∈ M \ Ω ⇒ Ω ∪ {f } ⊆ M — не полна.
3.5. Классы булевых функций 163

Определение
Пусть f (x1 , . . . , xn ) — булева функция, тогда множество единиц
функции это

Nf = {(α1 , . . . , αn ) ∈ {0, 1}n f (α1 , . . . , αn ) = 1}

График функции f (x1 , . . . , xn ) — это n-мерный куб, в котором


выделены вершины, лежащие в Nf .

000 010

100 110

001 011

101 111

Рис. 3.1: График функции xyz

Определение
Пусть есть K = xσi11 · · · xσirr , тогда

NK = {(α1 , . . . , αn ) ∈ {0, 1}n αi1 = σ1 , . . . , αir = σr }
|NK | = 2n−r
NK — это грань (подкуб) размерности n − r или же интервал ранга
r (чем больше ранг, тем меньше размерность).

Определение
Пусть f1 , f2 ∈ P2 . Говорим, что f1 имплицирует f2 (f1 4 f2 ), если
f1 → f2 ≡ 1 ⇔ кортеж значений функции α ef2 ⇔ Nf1 ⊆ Nf2 ⇔
e f1 4 α
3.5. Классы булевых функций 164

⇔ f1 = f1 &f2 ⇔ f2 = f1 ∨ f2 .
Имплицирование — частичный порядок на множестве булевых
функций от n переменных.

Свойства имплицирования
1) f : Nf = Qn \ Nf ;
2) f1 &f2 : Nf1 &f2 = Nf1 ∩ Nf2 ;
3) f1 ∨ f2 : Nf1 ∨f2 = Nf1 ∪ Nf2 .

Определение
Если f ∈ P2 и f (x1 , . . . , xn ) = K1 ∨ . . . ∨ Ks , то Nf = NK1 ∪ . . . ∪
NKs — покрытие множества единиц функции f гранями (подкуба-
ми).
Пример:
f1 (x1 , x2 , x3 ) = x1 x3 ∨ x1 x3 ∨ x1 x3 = x1 ∨ x1 x3 = x1 ∨ x3

000 010

100 110

001 011

101 111

Рис. 3.2: График функции f1 (x1 , x2 , x3 )

Определение
ДНФ D функции f ∈ P2 — минимальна, если D реализует f и
имеет наименьшую сумму рангов элементарных конъюнкций, вхо-
3.5. Классы булевых функций 165

дящих в D среди всех ДНФ, реализующих f (покрытие множества


единиц функции f интервалами, для которых сумма рангов мини-
мальна среди всех таких покрытий).
n
Элементарных конъюнкций 3n ⇒ ДНФ 23 .

Определение
Элементарная конъюнкция K — допустима для функции f , если
NK ⊆ Nf ⇔ K 4 f ⇔ K — импликанта.

Определение
Интервал Nk — максимальный для f (K — простая импликан-
та), если NK ⊆ NF и не существует K 0 : NK ⊂ NK 0 ⊆ Nf
⇔ K 4 K 0 , K 6= K 0 ⇔ K 0 получается из K вычеркиванием некото-
рых переменных.
Пример:
x1 x2 x3 4 x1 x2 4 x1 (вершина, ребро, Q2 ).

Определение
Сокращённой ДНФ функции f (DC (f )) называется дизъюнкция
всех простых импликант функции f (покрытие множества единиц
функции f максимальными интервалами).
Пример:
Максимальные интервалы соответствуют простым импликантам:
x1 x3 , x1 x2 , x2 x3 , x1 x3 .
DC (f1 ) = x1 x3 ∨ x1 x2 ∨ x2 x3 ∨ x1 x3 .
3.5. Классы булевых функций 166
000 010

100 110

001 011

101 111

Рис. 3.3: График функции f1 (x1 , x2 , x3 )

Теорема 3.11 (о минимальной ДНФ)


Минимальная ДНФ булевой функции f получается из DC (f ) уда-
лением некоторых элементарных конъюнкций.

Доказательство:
Минимальная ДНФ состоит только из простых импликант.
Пример:
Рассмотрим функцию голосования m(x1 , x2 , x3 ) и найдём для неё
DC (f ).

000 010

100 110

001 011

101 111

Рис. 3.4: График функции m(x1 , x2 , x3 )

DC (m) = x2 x3 ∨x1 x3 ∨x1 x2 единственная минимальная ДНФ этой


3.5. Классы булевых функций 167

функции.

Теорема 3.12
Сокращённая ДНФ монотонной булевой функции f не содержит
отрицаний переменных и является её единственной минимальной
ДНФ.

Доказательство:
Минимальность:
Пусть f ∈ M, K 4 f, K = xi1 · · · xit xit+1 · · · xis — простая.
Рассмотрим произвольный кортеж вида
(1, . . . , 1, 0, . . . , 0, любые значения)
Если на этом кортеже функция даёт единицу, то на больших
кортежах она также будет давать 1, т.е. на таких
(1, . . . , 1, любые значения)
Тогда K 0 = xi1 · · · xit — также импликанта, K 4 K 0 4 f , противоре-
чие с тем, что K — простая.

Единственность:
Пусть DC (f ) = K1 ∨ . . . ∨ Km , Ki = xi1 · · · xit , отрицаний нет (дока-
зано). 
1, i ∈ {i , . . . , i }
1 t
α
e = (α1 , . . . , αn ) : αi =
0, иначе
Ki (α1 , . . . , αn ) = 1
Докажем, что Kj (α1 , . . . , αn ) = 0 ∀i 6= j
Пусть Kj (α1 , . . . , αn ) = 1 ⇒ Ki 4 Kj , Kj 6= Ki , противоречие с
тем, что Kj — простая.
3.6. Методы построения DC (F ) 168

Теорема 3.13
Линейная булева функция f (x1 , . . . , xn ) = x1 ⊕ . . . ⊕ xn ⊕ α имеет
единственную ДНФ (она же СДНФ, DC (f ), минимальная и др.).

Доказательство:
Очевидно.

3.6 Методы построения DC (f )


Правила
1. Склеивание: xK ∨ xK = xK ∨ xK ∨ K

2. Поглощение: K1 ∨ K1 K2 = K1

3. Обобщённое склеивание: xK1 ∨ xK2 = xK1 ∨ xK2 ∨ K1 K2

Методы
1) Метод Квайна (из СДНФ)
СДНФ → применяем склейку → поглощение
Пример:
f (x1 , x2 , x3 ) = x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x3 ∨
x1 x2 ∨ x2 x3 ∨ x1 x2 ∨ x1 x3 ∨ x1 . Применяем поглощение, всё, что со-
держит x1 вычёркиваем, вычёркиваем все тройки, так как они по-
глащаются рёбрами, получим x1 ∨ x2 x3 .
2) Метод Блэйка (из ДНФ)
Обобщённое склеивание, пока можем → поглощение.
Пример:
f (x1 , x2 , x3 ) = x1 x2 ∨ x1 x3 ∨ x2 x3 ∨ x1 x3 ∨ x1 x2 ∨ x1 = x2 x3 ∨ x1
3.6. Методы построения DC (F ) 169
000 010

100 110

001 011

101 111

Рис. 3.5: График функции f (x1 , x2 , x3 )

3) Метод Нельсона (из КНФ)


КНФ → раскрыть скобки → поглощение → привести подобные

Лемма 3.7
Пусть есть f1 , f2 ∈ P2 и их DC (f1 ), DC (f2 ). Пусть D получает-
ся из DC (f1 )&DC (f2 ) в результате раскрытия скобок, поглощения,
приведения подобных. Тогда D = DC (f1 &f2 ).

Доказательство:
Пусть f = f1 &f2 . Надо показать, что любая простая импликация
функции f входит в D.
Пусть K — простая импликанта функции f , K 4 f = f1 &f2 ⇒
∃K1 ∈ DC (f1 ) : K 4 K1
K 4 f1 , K 4 f2 ⇒ ⇒ K 4 K1 &K2 .
∃K2 ∈ DC (f2 ) : K 4 K2
По построению в D ∃K e : K1 K2 4 K.
e Получим, что K 4 K1 K2 4
K
e 4 f, т.к. K — простая K = K1 K2 = K e ⇒ K входит в D.
3.6. Методы построения DC (F ) 170

Теорема 3.14 (Журавлёва)


m
_
Дизъюнкция D = Ki поглощает K ⇔ существует представле-
i=1
ние Ki = Ki0 Ki00 :
^m
1) K 4 Ki0 ;
i=1
m
_
2) Ki00 = 1.
i=1

Доказательство:
Без доказательства.
Пример:
K = x1 x2
D = x2 x3 ∨ x3 x1 ∨ x1 x2 ∨ x2 x3 ∨ x3 x1 = x3 ∨ x3 ≡ 1.

Алгоритм проверки на поглотимость


1) ∀xσi i входящей в K вычеркиваем все элементарные конъюнк-
ции, содержащие xσi i ;
2) В остальных вычёркиваем xσi i ∀i;
3) Оставшаяся формула тождественно истинна ⇔ D поглощает
K.

Определение
ДНФ функции f называется тупиковой, если D = K1 ∨ . . . ∨ Km ,
где Ki — простая импликанта f ∀i и K1 ∨. . .∨Ki−1 ∨Ki+1 ∨. . .∨Km —
не ДНФ функции f ∀i.
3.7. Ограниченно–детерминированные функции 171

Определение
Простая импликанта K функции f называется ядровой, если она
входит в любую тупиковую ДНФ функции f .

Определение
Ядро DC (f ) — множество всех ядровых импликант.
Обозначение:
Дизъюнкция всех ядровых импликант функции f (D∩T (f )).

Определение
ДНФ вида DQ (f ) — ДНФ квайна, получается из DC (f ) удалением
всех импликант, поглощаемых D∩T (f ).

3.7 Ограниченно–детерминированные
функции
Определение
Пусть A = {a1 , . . . , an }, B = {b1 , . . . , bm } — конечные алфавиты,
тогда будем рассматривать функции f : A∞ → B ∞ . Если α e ∈ A∞ ,
то αe = (α(1), α(2), . . .), α(i) ∈ A ∀i.
Пример:
Зададим функцию
f (e
0) = e
0
f (e
α) = e e 6= e
1, α 0
Для произвольной последовательности, начинающейся с нулей, мы
не можем сразу сказать чему будет равно значение функции, потому
что единицы могут появиться в самом конце последовательности,
3.7. Ограниченно–детерминированные функции 172

такие функции мы рассматривать не будем. Нам будут интересны


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

Определение
Функция f : A∞ → B ∞ детерминированная, если ye = f (e x),
ye = (y(1), y(2), . . .) — выходная последовательность,
xe = (x(1), x(2), . . .) — входная последовательность и ∀t = 1, 2, . . .
y(t) можно вычислить по x(1), . . . , x(t). То есть по первым t входным
значениям можно однозначно определить y(t).
y(1) = f (x(1))
y(2) = f (x(1), x(2))
..
.

Примеры детерминированных функций


A = B = {0, 1}, f : A∞ → B ∞

0, если x(1) = . . . = x(t) = 0
1. y(t) =
1, иначе

2. Функция чётности y(t) = x(1) ⊕ · · · ⊕ x(t).



0, t=1
3. Функция единичной задержки y(t) =
x(t − 1), t > 1

0, если t = 2k
4. y(t) =
1, иначе
3.7. Ограниченно–детерминированные функции 173

Определение
Информационное дерево T в алфавитах A и B — это бесконечное
ордерево, обладающее следующими свойствами:

1. Существует вершина v0 : deg − v0 = 0 (полустепень захода);

2. ∀v 6= v0 deg − v = 1;

3. Из любой вершины выходит |A| = n дуг, помеченных


(a1 , bi1 ), . . . , (an , bin ), где bi1 , . . . , bin ∈ B, A = {a1 , . . . , an }.

Для любой последовательности αe ∈ A∞ существует единственный


путь в дереве, а вторые метки задают β ∈ B ∞ ⇒ дерево задаёт
детерминированную функцию fT : A∞ → B ∞ .

(1, 1) (0, 0)

(1, 0) (0, 1) (1, 1) (0, 0)

(1, 1) (0, 0) (1, 0) (0, 1) (1, 0) (0, 1) (1, 1) (0, 0)

....................................

Рис. 3.6: Информационное дерево для функции чётности, выделен-


ные вершины — попарно изоморфны

Определение
Рассмотрим вершину v ∈ T , Tv — поддерево с корнем в v. Tv зада-
ёт детерминированную функцию fTv . Будем говорить, что Tv ∼ Tu ,
если fTv = fTu (существует изоморфизм, сохраняющий все метки).
3.7. Ограниченно–детерминированные функции 174

Определение
Детерминированная функция f называется ограниченно–
детерминированной (ОДФ), если в её информационном дереве
конечное число попарно неизоморфных поддеревьев.

Определение
Пусть f (x) — ОДФ веса r (вес — количество попарно неизоморф-
ных поддеревьев), v0 — корень, v1 , . . . , vr−1 : Tvi  Tvj , i 6= j. Поме-
тим все вершины дерева метками q0 , . . . , qr−1 следующим образом:
v 0 q0
v 1 q1
..
.
vr−1 qr−1
∀v ∈ T если Tv ∼ Tvi , то v помечаем qi , {q0 , . . . , qr−1 } = Q — множе-
ство состояний ОДФ f .

Определение
Усечённое информационное дерево — содержит v0 и любая орцепь
из v0 содержит ровно две вершины с одинаковыми метками.

q0
(1, 1) (0, 0)

q1 q0
(1, 0) (0, 1)

q0 q1

Рис. 3.7: Усечённое информационное дерево для функции чётности


3.7. Ограниченно–детерминированные функции 175

Определение
Диграмма Мура (диаграмма переходов) ОДФ веса r — конечный
орграф (псевдоорграф) с r вершинами, помеченными q0 , . . . , qr−1 .
Из любой вершины выходит ровно |A| = n дуг, помеченных
(a1 , bi1 ), . . . , (an , bin ). И есть начальная вершина q0 .
Диаграмма Мура получается из усечённого дерева отождествле-
нием вершин с одинаковыми метками.

(1, 0)
(0, 0) (0, 1)
q0 q1
(1, 1)

Рис. 3.8: Диаграмма Мура для функции чётности

Определение

(aj , λ(qi , aj ))
qi δ(qi , aj )

δ — функция переходов;
λ — функция выходов;
δ × λ : Q × A → Q × B, δ и λ полностью задают нашу ОДФ.
Пример:

q i \ aj 0 1
q0 (q0 , 0) (q1 , 1)
q1 (q1 , 1) (q0 , 1)
Таблица 3.3: Функция чётности
3.8. Автоматы 176

Определение
 ОДФ можно задать каноническими уравнениями
y(t) = λ(q(t), x(t))



q(t + 1) = δ(q(t), x(t))


q(1) = q0

Где x(t) ∈ A, q(t) ∈ Q, y(t) ∈ B.


Пример:

q(t) x(t) y(t) q(t + 1)


0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0
Таблица 3.4: Здесь q0 = 0, q1 = 1

 Тогда
y(t) = q(t) ⊕ x(t)



q(t + 1) = q(t) ⊕ x(t)


q(1) = 0

3.8 Автоматы
Определение
Конечный детерминированный автомат с выходом (автомат
Мили), это V = (A, B, Q, δ, λ), где
A = {a1 , . . . , an } — входной алфавит
B = {b1 , . . . , bm } — выходной алфавит
Q = {q0 , . . . , qr−1 } — алфавит состояний
δ : Q × A → Q — функция переходов
3.8. Автоматы 177

λ : Q × A → B — функция выходов
Если задано начальное состояние q0 , то такой автомат называется
инициальным
Обозначение: Vq0 — инициальный автомат.
Vq0 вычисляет f (e
x) = ye — автоматную функцию.

Определение
Функция f : A∞ → B ∞ — автоматная, если существует ко-
нечный детерминированный автомат с выходом, вычисляющий эту
α ∈ A∞ перерабатывает в выходную βe ∈ B ∞ : βe =
функцию, т.е. ∀e
f (e
α).

Определение
Последовательность α = (α(1), α(2), . . .) называется периодиче-
ской с периодом d, если ∃N : ∀t > N α(t + d) = α(t).

Лемма 3.10 (о периодической последовательности)


Конечный инициальный автомат с K состояниями преобразует
периодическую последовательность с периодом d в периодическую
последовательность с периодом K1 · d, K1 6 K.

Доказательство:
Рассмотрим инициальный автомат Vq0 = (A, B, Q, δ, λ), пусть
|Q| = K, α e — периодическая последовательность с периодом d и
α), т.е. ∃N : α(N ) = α(N +d) = α(N +2d) = . . . = α(N +Kd)
βe = fVq0 (e
Рассмотрим K + 1 состояние автомата:
q(N ), q(N + d), . . . , q(N + Kd)
3.8. Автоматы 178

Так как |Q| = K ∃i, j : i < j : q(N + id) = q(N + jd) (∗)
Положим K1 = j − i
Покажем, что ∀t > N + id выполнено
β(t) = β(t + K1 d), q(t) = q(t + K1 d)
Индукция по t:
База индукции:
(∗)
t = N + id, q(t) = q(N + id) = q(N + jd) = q(t − id + jd) = q(t + K1 d)
β(t) = λ(q(t), α(t)) = λ(q(t + K1 d), α(t + K1 d)) = β(t + K1 d)
Шаг индукции:
Инд.
пред.
q(s + 1) = δ(q(s), α(s)) = δ(q(s + K1 d), α(s + K1 d)) = q(s + K1 d + 1)
β(s + 1) = λ(q(s + 1), α(s + 1)) = λ(q(s + 1 + K1 d), α(s + 1 + K1 d)) =
β(s + 1 + K1 d)
Обозначение: AS — множество всех периодических последова-
тельностей в алфавите A, у которых минимальный период не имеет
простых делителей больше S.
Примеры:
A2 — периодические последовательности, у которых минимальный
период 2k .
У A3 2k · 3t

Следствие
Конечный инициальный автомат с k, k 6 S состояниями преоб-
разует последовательность из AS в последовательность из AS (за-
мкнут внутри AS ).

Определение
Пусть A = {a1 , . . . , an }, B = {b1 , . . . , bm }, Q = {q1 , . . . , qK } и
канонические уравнения функции:
3.8. Автоматы 179

y(t) = λ(q(t), x1 (t), . . . , xν (t))



q(t + 1) = δ(q(t), x1 (t), . . . , xν (t))


q(1) = q0

Тогда автоматная функция от нескольких переменных это
f1 : (A∞ )ν → B ∞ ∼ f2 : (Aν )∞ → B ∞ ,
f2 — функция одной переменной
λ : Q × Aν → B
δ : Q × Aν → Q
Пример:
Сумматор это
x1 (1) x1 (2) . . .
+
x2 (1) x2 (2) . . .
y(1) y(2) . . .
Зададим автомат, который реализует эту функцию:
q0 = (A, B, Q, δ, λ), где A = B = Q = {0, 1}
V

y(t) = x1 (t) ⊕ x2 (t) ⊕ q(t)





q(t + 1) = m(x1 (t), x2 (t), q(t))


q(1) = 0

Обозначение: PA — все автоматные функции, у которых вход-
ной и выходной алфавиты равны A.

Определение
F = {f1 (x1,1 , . . . , x1,m1 ), . . . , fs (xs,1 , . . . , xs,ms )} ⊆ PA
[F ] — все автоматные функции, полученные суперпозицией функций
из F .
[F ] = PA ⇒ F — полна.
3.8. Автоматы 180

Лемма 3.11
Пусть F ⊆ PA , |F | < ∞ и ∀f ∈ F f имеет не более K состояний.
Если f (x1 , . . . , xn ) ∈ [F ], α1 , . . . , αn ∈ A∞ : αi ∈ AK ∀i, тогда
f (α1 , . . . , αn ) = βe ∈ AK .

Доказательство:
Индукция по числу N вхождений в суперпозицию функций из
F:
База индукции:
N = 0 : очевидно.
Шаг индукции:
N > 0 : f (x1 , . . . , xn ) = g(f1 (x1,1 , . . . , x1,m1 ), . . . , fm (xm,1 , . . . , xm,mm ))
f (α1 , . . . , αn ) = g(f1 (α, . . . , α), . . . , fm (α, . . . , α))
| {z } | {z }
β1 βm
β1 , . . . , βm ∈ AK по индукционному предположению.
Пусть γ e = (β1 , . . . , βm ) имеет период d = НОК(d1 , . . . , dm ), di — пе-
риод βi ∀i. d не имеет простых делителей больше K по Лемме 3.10
f (α1 , . . . , αn ) = g(e γ ) = βe ∈ AK .

Теорема 3.15
Пусть |A| > 2, тогда в PA не существует конечных полных систем
автоматных функций.

Доказательство:
Докажем от противного. Пусть существует F ∈ PA — конечная
полная. K — максимальное число состояний функций из F . Рассмот-
рим p — простое p > k и последовательность
3.9. Автоматы–распознаватели 181

βe = (a1 , . . . , a1 , a2 , a1 , . . . , a1 , a2 , . . .) с минимальным периодом p ⇒


| {z } | {z }
p−1 p−1
βe ∈
/ AK (∗)
Рассмотрим f (x) : A∞ → B ∞ и любую α e ∈ A∞ переводит в β.
e
Поскольку f (x) ∈ PA существует суперпозиция функций из F ,
реализующих f (x). Возьмём α e = (a1 , a1 , . . .). По Лемме 3.11 f (e
α) =
βe ∈ AK , по (∗) βe ∈
/ AK , противоречие.

3.9 Автоматы–распознаватели
Определение
Vq0 = (A, B, Q, δ, λ) — конечный детерминированный инициаль-
ный автомат
A = {a1 , . . . , an } — входной алфавит
B = {b1 , . . . , bm } — выходной алфавит
Q = {q1 , . . . , qk } — алфавит состояний
δ : Q×A→Q
λ: Q×A→B
q0 ∈ Q
gVq0 : A∗ → B ∗ , A∗ , B ∗ — конечные
δ ∗ : Q × A∗ → Q δ ∗ (qi , α) = qj
λ∗ : Q × A∗ → B λ∗ (qi , α) = bj
δ ∗ (qi , aj ) = δ(qi , aj )
λ∗ (qi , aj ) = λ(qi , aj )
Пусть α e ∈ A∗ , aj ∈ A и пусть α eai — конкатенация α
e и aj , тогда
∗ ∗
δ (qi , α eaj ) = δ(δ (qi , αe), ai )
∗ ∗
λ (qi , α eaj ) = λ(δ (qi , αe), aj )
Пример:
q0 — начальная, gVq0 (00110) = 11012
3.9. Автоматы–распознаватели 182
(0, 2) (0, 2)
(0, 1) (1, 1)
q0 q1 q2
(1, 0) (1, 1)

Определение
Рассмотрим два автомата:
V = (A, B, Q1 , δ1 , λ1 ), W = (A, B, Q2 , δ2 , λ2 ).
Тогда состояние q автомата V неотличимо от состояния p авто-
мата W , если ∀e α ∈ A∗ gVq (eα) = gWp (e
α).

Определение
Автомат V эквивалентен автомату W , если для любого состо-
яния автомата V найдётся неотличимое состояние автомата W и
наоборот.

Определение
Конечный автомат — автомат Мура, если для любой вершины
на всех дугах, входящих в эту вершину, выходная буква одинаковая.

(a2 , 1)
(a2 , 1) (a1 , 2)
q1 q2
(a1 , 2)

Рис. 3.9: Пример автомата Мура

Заметим, что выходные значения зависят только от вершины,


в которую мы переходим, поэтому можно перерисовать автомат с
рисунка, сопоставив каждой вершине выходное значение.
3.9. Автоматы–распознаватели 183
a2
a2 a1
q1 (1) a1 q2 (2)

Рис. 3.10: Автомат, с функцией меток

Определение
Определим функцию меток, которая и будет сопоставлять каж-
дой вершине выходное значение (метку).
µ : Q → B, тогда в автоматах Мура
λ∗ (q, α) = µ(δ ∗ (q, α))

Теорема 3.16
Для любого автомата Милли существует эквивалентный ему ав-
томат Мура.

Доказательство:
Пусть есть автомат Милли V = (A, B, Q, δ, λ)
A = {a1 , . . . , an }, Q = {q1 , . . . , qk }
VM = (A, B, QM , δM , µ) — автомат Мура ему соответствующий.

QM = {qij i = 1, . . . , k, j = 1, . . . , n} ∪ {qi0 i = 1, . . . , k}
δM (qi0 , ar ) = qir , i = 1, . . . , k
δM :
δM (qij , ar ) = qlr , где δ(qi , ar ) = ql
µ(qi0 ) — любые
µ:
µ(qij ) = λ(qi , aj )
Надо доказать:

1. ∀i = 1, . . . , k qi ∈ Q автомата V неотличимо от qi0 ∈ QM авто-


мата VM ;
3.9. Автоматы–распознаватели 184

2. ∀i = 1, . . . , k, j = 1, . . . , n qij неотличимо от qr ∈ Q, где


δ(qi , aj ) = qr .

Доказательство этих двух фактов оставим за рамками нашего курса.

Определение
Конечный детерминированный инициальный автомат без выхо-
дов — автомат Мура — V = (A, Q, δ, q0 , F ), где
A = {a1 , . . . , an } — входной алфавит
Q = {q1 , . . . , qk } — множество состояний
δ : Q × A → Q — функция переходов
q0 ∈ Q — начальное состояние
F ⊆ Q — заключительные состояния
Этот автомат является автоматом-распознавателем. На вход ему
подаётся некоторое слово, и он начинает его обрабатывать, «бегать»
с одной вершины на другую, если в конце слова автомат остановится
на заключительном состоянии, то слово распознано, иначе не распо-
знано.

Определение
E ⊆ A∗ — язык. Язык распознаётся автоматом
e) ∈ F ⇔ α
V = (A, Q, δ, q0 , F ), если δ(q0 , α e ∈ E.

E ⊆ A — распознаваем конечным автоматом, если существует
автомат Мура, распознающий его.

Лемма 3.12
Любое конечное множество слов E = {e es } распознаётся
α1 , . . . , α
конечным автоматом.
3.9. Автоматы–распознаватели 185

Доказательство:
Упражнение (строим словарь языка, то есть префиксное дерево,
в котором заключительные состояния совпадают с концами слов,
а чтобы сделать автомат детерминированным заводим вершину, в
которую рисуем все оставшиеся стрелки из всех вершин, эта вершина
не заключительная, получим конечный автомат).

Теорема 3.17
Множество всех бесконечных непериодических последовательно-
стей не распознаётся конечным автоматом.

Доказательство:
x1 , x2 , x3 , . . . — бесконечная непериодическая последователь-
ность, E = {x1 , x1 x2 , x1 x2 x3 , . . .}.
Докажем от противного, пусть существует V = (A, Q, δ, q0 , F ), рас-
познающий E, |Q| = k ⇔
1) ∀s δ(q0 , x1 x2 · · · xs ) ∈ F ;

2) ∀eα ∈ A∗ δ(q0 , α e) ∈ F ⇒ α e = x1 , . . . , x|eα| .

δ(q0 , x1 · · · xs ) = δ(q0 , x1 · · · xs+t )



∃s, t : xs+1 6= xs+t+1


δ(q0 , x1 · · · xs+1 ) 6= δ(q0 , x1 · · · xs+t+1 )

Так как |Q| < ∞ и x1 , x2 , . . . — непериодическая.


δ(q0 , x1 · · · xs+t xs+1 ) = δ(q0 , x1 · · · ss+1 ), но
x1 , . . . , xs+t , xs+1 6= x1 , . . . , xs+1 , противоречие.

Операции над языками


1. Объединение: E1 ∪ E2 = E1 + E2 ;
3.9. Автоматы–распознаватели 186

2. Конкатенация: E1 · E2 = {e1 · e2 e1 ∈ E1 , e2 ∈ E2 };

[
∗ 2
3. Итерация: E = {e} ∪ E ∪ E ∪ . . . = Ei
i=0
E n = |E ·{z
· · E}
n
E 0 = {e}, e — пустое слово.

Определение
{e}, {a1 }, {a2 }, . . . , {an } — элементарные языки. Язык — регуляр-
ный, если он может быть получен из элементарных языков с помо-
щью конечного числа применения операций объединения, конкате-
нации, итерации.
Регулярный язык задаётся регулярным выражением (форму-
лой).
A∗ = {a1 , . . . , an }∗ = ({a1 }, . . . , {an })∗ = (a1 + · · · + an )∗
Примеры:
E = ((a + b)∗ c(a + b)∗ c(a + b)∗ )∗ — множество слов, в которых чётное
число букв c.

Определение
(R1 , +, ·, ∗) — алгебра.

1. R1 (R2 + R3 ) = R1 R2 + R1 R3 ;

2. (R1 + R2 )R3 = R1 R3 + R2 R3 ;

3. Ассоциативность +, ·;

4. Коммутативность +;

5. (E ∗ )∗ = E ∗ ;
3.9. Автоматы–распознаватели 187

6. E ∗ = e + E(E ∗ );

7. E + = E(E ∗ ).

Определение
V = (A, Q, δ, q0 , F ) — конечный недетерминированный автомат
без выходов
δ : Q × (A ∪ {e}) → 2Q , 2Q — подмножество множества состояний.

Теорема 3.18
Для любого регулярного языка существует конечный недетерми-
нированный автома с одним заключительным состоянием, распозна-
ющий его.

Доказательство:
Индукция по глубине формулы (регулярного выражения, задаю-
щего регулярный язык):
База индукции:
Не трудно построить такие автоматы.
Шаг индукции:
Пусть есть регулярные языки E1 , E2 и автоматы V1 , V2 , распознаю-
щие их (индукционное предположение), построим автоматы, распо-
знающие объединение, конкатенацию и итерацию этих языков.
1) Объединение: E1 + E2
3.9. Автоматы–распознаватели 188

∗ V1 V1
e e

e e
∗ V2 V2

Рис. 3.11: Автомат, распознающий E1 + E2

2) Конкатенация: E1 · E2

∗ V1 e V2

Рис. 3.12: Автомат, распознающий E1 · E2

3) Итерация: E1∗

∗ V1

Рис. 3.13: Автомат, распознающий E1∗

Теорема 3.19 (о детерминизации)


Для любого недетерминированного автомата H c K состояниями
существует эквивалентный ему детерминированный автомат V с не
более чем 2K состояниями.

Доказательство:
Пусть Q — множество состояний автомата H, тогда S ⊆ Q назо-
вём замкнутым, если из того, что q ∈ S и есть дуга по e из q в p,
следует, что p ∈ S.
3.9. Автоматы–распознаватели 189

Зададим автомат V следующим образом:


Пусть Q e — все замкнутые подмножества множества Q.
P0 ∈ Q e — начальное, если P0 — минимальное, содержащее q0 ,
q0 — начальное состояние H.
P ∈Q e — заключительное, если оно содержит хотя бы одну за-
ключительную вершину H.
a
Pi → Pj ⇔ Pj — замыкание множества всех концов дуг по a из
вершин из Pi , ∅ ∈ Q.e
Мы построили автомат V , теперь нужно доказать, что он экви-
валентен H.
Индукция по длине слова α :
В V существует непустой путь α из P0 в Pi ⇔ в H ∀q ∈ Pi существует
путь α из q0 в q.
База индукции:
|α| = 1 по построению.
Шаг индукции:
Рассмотрим слово αa.
(⇒) В V существует непустой путь αa из P0 в Pi . Пусть Pj —
предпоследний и из P0 попадаем в Pj по α.
1) По индукционному предположению ∀q ∈ Pj существует путь
α из q0 в q;
2) По построению ∀q 0 ∈ Pi существует путь a из некоторой q ∈ Pj
в q0.
Из 1), 2) следует, что ∀q 0 ∈ Pi существует путь αa из q0 в q.
(⇐) Упражнение (аналогично).

Теорема 3.20 (синтеза автоматов)


Для любого регулярного языка существует конечный детерми-
нированный автомат, распознающий его.
3.9. Автоматы–распознаватели 190

Пример:
(ab + c∗ )(a + bc)∗ a

2
a b b

∗ 1 4 a 5
a
e e c
3
c

Рис. 3.14: Недетерминированный автомат

P ∈Q e a b c
∗{1, 3, 4} {2, 4, 6} {5} {3, 4}
{2, 4, 6} {4, 6} {4, 5} ∅
{5} ∅ ∅ {4}
{3, 4} {4, 6} {5} {3, 4}
{4, 6} {4, 6} {5} ∅
{4, 5} {4, 6} {5} {4}
∅ ∅ ∅ ∅
{4} {4, 6} {5} ∅
Таблица 3.5: Получение множества состояний детерминированного
автомата

Определение
Пусть есть V = (A, Q, δ, q0 , F ) и MiKj — множество всех слов в
алфавите A, ведущих из qi в qj и не проходящих через состояния с
номерами, большими K (i и j могут быть больше K).
Определим регулярный язык EiKj индукцией по K :
3.9. Автоматы–распознаватели 191

База индукции:

Ei0j = {a ∈ A δ(qi , a) = qj }
Шаг индукции:
K−1 ∗ K−1
Eij = EiK−1
K

K
EK K
EKj , для любых i, j, K, меньших количества
состояний, этот язык регулярный.

Лемма 3.13

EiKj = MiKj

Доказательство:
Индукция по K:
База индукции:
Eij = Mi0j по построению
0

Шаг индукции:
Mij = MiK−1
K
j
∪M j
fiK — слова из MiK , которые проходят через
fiK , где M
j j
K
qK . Рассмотрим α ∈ M , пусть α заходит в qK s раз и α = α0 α1 . . . αs ,
f
ij
тогда 
α0 ∈ MiK−1
K


α1 ∈ MKK−1



K

..
 ∗
. ⇒ α ∈ MiK−1
K
MKK−1
K
MKK−1
j

αs−1 ∈ MKK−1


K



K−1 
αs ∈ MKj
В обратную сторону упражнение.
Получили
Инд.
K−1 K−1 K−1
 K−1 пред.
= EiK−1 K−1 K−1
K
 K−1
Mij = Mij ∪MiK MKK MKj j
∪Ei K
E KK EKj =
K
Eij
3.10. Полиномиальная сводимость комбинаторной задачи 192

Теорема 3.21 (анализа автоматов)


Всякий язык, распознаваемый конечным автоматом регулярен.

Доказательство (на экзамене надо будет Лемму


3.13 доказать):
Рассмотрим конечный алфавит V = (A, Q, δ, q1 , F ), где
|Q| = n, F = {qi1 , . . . , qit }. V распознаёт язык M1ni1 ∪ . . . ∪ M1nit =
= E1ni1 + · · · + E1nt1 — регулярный язык.

3.10 Полиномиальная сводимость комби-


наторной задачи
Определение
Массовая задача Π — общий вопрос, на который надо дать ответ.
Массовая задача содержит некоторые параметры.
Пример:
Является ли данный граф гамильтоновым? В данном случае граф —
параметр массовой задачи.

Определение
Индивидуальная задача I ∈ Π — получается из массовой, если
заданы параметры.
Пример:
Если задан конкретный граф, то задача из прошлого примера ста-
новится индивидуальной.
3.10. Полиномиальная сводимость комбинаторной задачи 193

Определение
Алгоритм решает массовую задачу, если он применим к каждой
индивидуальной задаче и даёт на неё ответ.

Определение
Алгоритм полиномиальный, если его временная сложность
O(P (n)).

Определение
Массовые задачи — задачи распознавания, если ответ на задачу
да или нет.
Обозначение:

L(Π, ε) = {x ∈ Σ∗ x — вход индивидуальной задачи I ∈ Π :
ответ на x да}, ε — схема кодирования входа (в алфавите Σ).
Π ∈ P ⇔ L(Π, ε) ∈ P ⇔ существует ДМТ, распознающая L.
Π ∈ N P ⇔ для любой индивидуальной задачи I ∈ Π справедли-
во:

1) Если I ∈ YΠ (где YΠ = {I ∈ Π на I ответ да}, то существует
структура S : (I, S) «да» за наименьшее время.
2) Если I ∈
/ YΠ , то не ∃ такой структуры.

Определение
Задача Π1 полиномиально сводится к Π2 (Π1 ∝ Π2 ), если су-
ществует функция f : ∀I ∈ Π1 → f (I) ∈ Π2 и верны следующие
условия:
1) Существует полиномиальный алгоритм, вычисляющий f ;
2) I ∈ YΠ1 ⇔ f (I) ∈ YΠ2 .
3.10. Полиномиальная сводимость комбинаторной задачи 194

Примеры
Задача коммивояжера (ЗК)
C = {C1 , . . . , Cn } — города, d(Ci , Cj ) — расстояние между го-
родами, определённое для всех городов. Найти такую перестановку
городов π, что Cπ(1) , . . . , Cπ(n) — минимальный по длине маршрут,
другими словами, необходимо, чтобы была минимальной сумма:

n−1
X
d(Cπ(i) , Cπ(i+1) ) + d(Cπ(n) , Cπ(1) )
i=1

Кроме того, задано некоторое число B, и данная сумма не должна


его превосходить.
Вопрос: существует ли перестановка, для которой сумма не пре-
восходит B?
Гамильтонов цикл (ГЦ)
Задан граф G.
Вопрос: существует ли в G гамильтонов цикл?

ГЦ ∝ ЗК
То есть нам нужно вход для ГЦ, некий граф G, переделать во
вход ЗК. При этом ответ «да» на ЗК означает «да» для ГЦ.
Задан G.Тогда положим C = {C1 , . . . , Cn } = V G, B = |V G|,
1, если C C ∈ EG
i j
d(Ci , Cj ) =
2, в противном случае
Осталось проверить корректность. Если в G существует гамиль-
тонов цикл, тогда мы пройдём только по вершинкам, расстояние
между которыми 1, т.к. гамильтонов цикл проходит все вершины по
одному разу, и длина такого маршрута в точности равна |V G|, то
есть ответ «да», гамильтонов цикл в G даёт искомую перестановку.
Если теперь ответ на ЗК с нашим входом «да», то пройдя по всем
3.10. Полиномиальная сводимость комбинаторной задачи 195

городам мы получили маршрут длины, не превосходящей |V G|, это


возможно только если мы шли по рёбрам исходного графа, то есть
это и есть гамильтонов цикл.

Гамильтонов путь между x и y (ГП)


Задан граф H, x, y ∈ V H, x 6= y.
Вопрос: существует ли гамильтонова цепь с концами в x и y?

ГП ∝ ГЦ
Задан H и x, y ∈ V H : x 6= y. Построим граф G следующим
образом:
V G = V H + z, z ∈
/ V H,
EG = EH + xz + yz.
Проверим корректность. Если в H был требуемый ГП, тогда
не трудно заметить, что в G будет ГЦ. Обратно, если в G был
гамильтонов цикл, то в H будет гамильтонов путь (удалим из ГЦ
вершину z и рёбра zx, zy).

ГЦ ∝ ГП
Дан граф G, надо построить граф H и взять две его вершины.
Построим H следующим образом:
V H = V G + y, y ∈/ V G, пусть x ∈ V G

EH = EG ∪ {yz xz ∈ EG}
Проверим корректность. Если в G существовал ГЦ, тогда, заме-
нив одно из рёбер цикла, идущих из x, на ребро, идущее в y (оба
ребра инцидентны одной и той же вершине, понятное дело), полу-
чим гамильтонов путь между x и y. Обратно, если существует ГП
из x в y в H, то, проделываю обратную замену ребра, получим га-
мильтонов цикл в G.
3.10. Полиномиальная сводимость комбинаторной задачи 196

Свойства полиномиальной сводимости


1. Π ∝ Π;

2. Π1 ∝ Π2 , Π2 ∝ Π3 ⇒ Π1 ∝ Π3 ;

3. Π1 ∝ P, Π2 : YΠ2 6= ∅, Π2 \ YΠ2 6= ∅ ⇒ Π1 ∝ Π2
I1 ∈ YΠ2 , I2 ∈ Π2
\ YΠ 2 ,
I , если I ∈ Y
1 Π1
∀I ∈ Π1 , f (I) =
I2 , если I ∈ Π1 \ YΠ
1

4. Π1 ∈ P, Π2 ∝ Π1 ⇒ Π2 ∈ P ;

5. Π1 ∈ N P, Π2 ∝ Π1 ⇒ Π2 ∈ N P .

Определение
Π — N P -полная (Π ∈ N P C), если Π ∈ N P и ∀Π0 ∈ N P Π0 ∝ Π.

Лемма 3.14

Π1 , Π2 ∈ N P, Π1 ∈ N P C, Π1 ∝ Π2 ⇒ Π2 ∈ N P C

Доказательство:
Упражнение.

Задача-выполнимость (ВЫП)
Дана КНФ. Существует ли выполнимых набор переменных, т.е.
такой, при котором КНФ даёт единицу.
3.10. Полиномиальная сводимость комбинаторной задачи 197

Теорема 3.22 (Кука)


ВЫП ∈ N P C
Доказательство:
Без доказательства.

Определение
N P -трудная задача — оптимизационная задача, у которой ана-
лог — N P -полная задача.

7 основных задач и их сводимость (стрелочка)


ВЫП → 3-ВЫП → 3-сочетания → разбиение;
3-ВЫП → вершинное покрытие (ВП) → ГЦ
ВП → клика.

3-выполнимость (3-ВЫП)
Дана КНФ, у которой все элементарные дизъюнкции имеют ранг
3. Существует ли выполнимый набор переменных?

3-сочетание (трёхмерное сочетание)


Дано некоторое множество M ⊆ W × X × Y , W, X, Y — попарно
непересекаются, |W | = |X| = |Y | = q. Существует ли такое M 0 ⊆ M ,
что |M 0 | = q и ∀(w1 , x1 , y1 ), (w2 , x2 , y2 ) ∈ M 0 w1 6= w2 , x1 6= x2 , y1 6= y2 ?
3.10. Полиномиальная сводимость комбинаторной задачи 198

Разбиение
Дано конечное множество A и ∀a ∈ A s(a) ∈ Z + , s(a) — вес
элемента a. Существует ли A0 :
X X
s(a) = s(a)
a∈A0 a∈A\A0

Теорема 3.23
Задача 3-ВЫП N P -полна.
Доказательство:
3-ВЫП ∈ N P (очевидно).
ВЫП ∝ 3-ВЫП:
Дана КНФ K = D1 & . . . &Dn , Di = u1 ∨ . . . ∨ us .
1) s = 1 : Di = u1 , добавим фиктивных переменных, получим
0
Di = (y1 ∨ y2 ∨ u1 )(y 1 ∨ y2 ∨ u1 )(y1 ∨ y 2 ∨ u1 )(y 1 ∨ y 2 ∨ u1 )
2) s = 2 : Di = u1 ∨ u2
0
Di = (u1 ∨ u2 ∨ y1 )(u1 ∨ u2 ∨ y 1 )
3) s = 3 : Di = Di0
4) s > 4 : Di = u1 ∨ . . . ∨ us
0
Di = (u1 ∨ u2 ∨ y1 )(y 1 ∨ u3 ∨ y2 )(y 2 ∨ u4 ∨ y3 ) · · · (y s−4 ∨ us−2 ∨ ys−3 )(y s−3 ∨
us−1 ∨ us )
Теперь докажем существование выполнимого набора, не трудно
заметить, что проверять нужно лишь для 4 случая. Пусть существу-
ет выполнимый набор переменных для Di0 , применим обобщённую
склейку:
(D1 ∨ y)(D2 ∨ y) = (D1 ∨ y)(D2 ∨ y)(D1 ∨ D2 ), тогда получим
Di0 = (u1 ∨ u2 ∨ y1 )(y 1 ∨ u3 ∨ y2 )(y 2 ∨ u4 ∨ y3 ) · · · (y s−4 ∨ us−2 ∨ ys−3 )
(y s−3 ∨ us−1 ∨ us )(u1 ∨ u2 ∨ u3 ∨ y2 )(u1 ∨ u2 ∨ u3 ∨ u4 ∨ y3 ) · · · (u1 ∨ . . . ∨ us )
Полученная Di0 также имеет выполнимый набор переменных, сле-
3.10. Полиномиальная сводимость комбинаторной задачи 199

довательно, скобка (u1 ∨ . . . ∨ us ) = Di имеет выполнимый набор


переменных. Докажем обратное.
Пусть Di = u1 ∨ . . . ∨ us имеет выполнимый набор переменных ⇒
∃i : ui = 1.
Рассмотрим скобку, в которой содержится ui : (y i−2 ∨ ui ∨ yi−1 ),
тогда положим yi−1 = yi = . . . = ys−3 = 0, y1 = . . . = yi−2 = 1. Для
этих значений переменных Di0 даёт единицу.

Багаев А.А., Казакова Е.В., 2021

Вам также может понравиться