с опечатками сюда
Оглавление
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
Комбинаторика
1. Ai 6= ∅ ∀i
2. Ai ∩ Aj = ∅ ∀i, j : i 6= j
Следствие 1.1
Пусть A = A1 ∪ . . . ∪ An — покрытие, тогда |A| 6 |A1 | + · · · + |An |.
Доказательство:
Рассмотрим множество 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!
Cnk =
k!(n − k)!
Доказательство:
Индукция по n:
n = 1, n = 0: упражнение.
n>2:
Из тождества Паскаля
! ! !
n n−1 n−1
= + .
k k k−1
Следствие 1.2
! !
n n
=
k n−k
n
!
X n
(a + b)n = ak bn−k
k=0
k
1.3. Формула включений-исключений 7
Доказательство:
Представим степень в виде произведения
(a + b)n = (a + b) · · · (a + 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
− |A1 ∩ A2 ∩ A3 | = s0 − s1 + s2 − s3
| {z }
s3
1.3. Формула включений-исключений 8
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.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 элементов равно
Доказательство:
Индукция по k:
k = 1 : [n]1 = n
k > 1 : [n]k = [n]k−1 (n − k + 1)
Теорема 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
Теорема 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 , . . . , α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 разделитель.
Определение
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 ) — полиноминальный коэффициент.
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, 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
Доказательство:
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
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
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
Определение
Числом Стирлинга 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)
Доказательство
Пусть x некоторый элемент из множества. Разобъём на два слу-
чая:
1) Рассмотрим x как цикл из одного элемента, тогда осталось
получить k −1 цикл, а элементов осталось n−1, то есть s(n−1, k −1)
разбиений.
2) Рассмотрим x как часть других циклов, тогда сначала полу-
чим эти циклы, элементов осталось n − 1, циклов всё также k, то
1.6. Числа Стирлинга 21
Теорема 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.10, 1.11).
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.15
1) P (n, k) равно количеству разбиений на слагаемые, наибольшее
из которых равно k.
2) P (n + k, k) равно количеству разбиений n на слагаемые, не
превосходящие k.
1.8. Диаграмма Ферре 26
Доказательство:
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.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)!
Определение
∞
Последовательность чисел{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) = 1 + t(1 + t + t2 + · · · )
1.9. Производящие функции 30
A(t) = 1 + tA(t)
1
A(t) =
1−t
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
Лемма 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
Получили, что
∞
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
Пример:
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, т.е. равно нулю
Определение
Введём 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 τ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, тогда
Примеры:
1) an+3 − 5an+2 + 8an+1 − 4an = 0 — линейное однородное рекур-
рентное соотношение.
1.11. Асимптотика 39
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.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.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
Заметим, что
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
√ 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
Теория графов
Определение
Мультиграф — это пара G = (V, E), V — множество вершин (из
определения обычного графа), E — мультимножество над V (2)
2.1. Основные понятия 45
Определение
Псевдограф — это пара 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.3: O5
3) Граф Петерсена
100 110
1 01 11 001 011
101 111
1 2 3 4
5 6 7 8
Определение
Изоморфизм графа 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-регулярный граф.
X
∀G degG v = 2|EG|
v∈V G
2.3. Подграфы и операции над графами 49
Доказательство:
Упражнение.
Следствие 2.1
Произвольный граф содержит чётное число вершин нечётной
степени.
V H ⊆ V G, EH ⊆ EG
Пример:
1 3 4
2 4
6
5 7
5 6
Определение
Пусть 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, порожденный множеством
рёбер.
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 .
b 1 2
(b, 1) (b, 2)
a
(a, 1) (a, 2)
6) Дополнение графа.
Если есть граф G(V, E), то дополнение графа G это
G = (V, V (2) \ E)
Определение
Циклическая цепь — цикл (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.
Определение
Компонента связности графа 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
(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
Следствие 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
Доказательство:
Упражнение.
Определение
Ормультиграф — это пара 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 1
1 3 3 2
Определение
Пусть есть G — помеченный (n, m)-граф, V G = {1, 2, . . . , n}.
Тогда матрица смежности вершин графа G это
A = A(G)
= (aij )n×n
1, ij ∈ EG
aij =
0, в противном случае
e1 e2 e1 e2
e3
e3
Определение
Пусть есть 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,
в противном случае
Определение
Полный двудольный граф Kn,m = On + Om .
Пример:
Kn,1 — звезда.
Лемма 2.9
Граф G — двудольный ⇔ любая компонента связности — дву-
дольный граф.
Доказательство:
Упражнение.
2.8. Деревья 63
Доказательство:
(⇒) Пусть 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
Определение
Лес — это ациклический граф, дизъюнктное объединение дере-
вьев.
Доказательство:
(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 .
Определение
Код Прюфера:
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
Доказательство:
Построим кортеж 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
Определение
Если остовный подграф — дерево, то этот подграф остовное де-
рево.
Определение
Остов (каркас) графа G — подграф графа G, являющийся объ-
единением остовных деревьев компонент связности графа G.
2.9. Остов, остовный подграф 70
Лемма 2.10
Число рёбер произвольного (n, m)-графа G с k компонентами
связности, которые надо удалить, чтобы получить остов, не зави-
сит от последовательности удаления и равно m − (n − k).
Доказательство:
Упражнение.
Лемма 2.11
Любой ациклический подграф графа G содержится в каком-то
остове графа G.
Доказательство:
Упражнение.
Лемма 2.12
Пусть G — связный и пусть S — остов графа G. Тогда
Доказательство:
G — связный, S — остов дерева, в S + e1 по Теореме 2.3 есть
Лемма 2.6
один простой цикл C, e2 ∈ EC \ {e1 } ⇒ S + e1 − e2 — связный,
|E(S + e1 − e2 )| = |ES| ⇒ тоже остов.
2.10. Связность, точки сочленения, мосты 71
Определение
Вершина x ∈ V G является точкой сочленения графа G, если
G − x имеет больше компонент связности, чем G.
Пример:
Определение
Граф G — k-связный, если 1 6 k 6 æ(G)
Доказательство:
Упражнение.
Доказательство:
(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
Доказательство:
1 ⇒ 2 ⇒ 3 ⇒ 1 аналогично Теореме 2.7.
1 ⇔ 4 по Лемме 2.6.
Доказательство:
λ(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
Лемма 2.14
В двусвязном графе для любых трёх различных вершин 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 без точек сочленения называется блоком.
Любой блок — либо ребро, либо двусвязный граф.
Пример:
Лемма 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.
Определение
Две простых (x, y)-цепи — непересекающиеся, если они не имеют
общих вершин, кроме x и y.
Доказательство:
Очевидно, что k > m.
Докажем обратное: k 6 m.
Другими словами нужно доказать, что
(∗) если в G наименьшее число вершин, разделяющих x и y
равно k, то в G ∃ как минимум k попарно непересекающихся
простых (x, y)-цепей.
Доказывать будем с помощью принципа крайнего. Предположим
что (∗) не выполняется, тогда существуют контрпримеры, из этих
2.12. Разделяющее множество, теорема Менгера 79
Утверждение 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
Доказательство:
Упражнение (следствие из т. Менгера)
Определение
Независимое множество называется тупиковым (максималь-
ным), если оно не является собственным подмножеством другого
независимого множества.
2.13. Независимое множество, паросочетание и покрытия 82
Определение
Наибольшее по мощности — наибольшее независимое множе-
ство.
Его мощность — число независимости графа G (α0 (G)).
X
∀G α0 (G) > (1 + degG x)−1
x∈V G
Доказательство:
1 1
Пусть G — полный граф, тогда 1 > + ··· + = 1
n n
Следствие 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
Определение
Множество вершин, покрывающих все рёбра называется вершин-
ным покрытием.
Определение
Вершинное покрытие называется тупиковым (минимальным),
если оно не содержит в качестве собственного подмножества другое
вершинное покрытие.
Определение
Наименьшее по мощности вершинное покрытие называется наи-
меньшим вершинным покрытием.
2.13. Независимое множество, паросочетание и покрытия 85
Лемма 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
Лемма 2.20
U — клика графа ⇔ U — независимое множество графа G.
Определение
Множество попарно несмежных рёбер называется паросочетани-
ем.
Определение
Паросочетание называется тупиковым (максимальным), если
оно не является собственным подмножеством другого паросочета-
ния.
Определение
Наибольшее по мощности паросочетание — наибольшее паросо-
четание.
Его мощность — число паросочетаний (α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.13. Независимое множество, паросочетание и покрытия 88
Определение
Тупиковое (минимальное) рёберное покрытие — рёберное покры-
тие, не содержащее другого рёберного покрытия.
Определение
Наименьшее рёберное покрытие — наименьшее по мощности рё-
берное покрытие.
Его мощность — число рёберных покрытий (β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
Определение
Будем говорить, что 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
Доказательство:
(⇒) Если есть M -увеличивающаяся цепь P , то рассмотрим M 0 =
(M \EP )∪(EP \M ) — паросочетание в G, |M 0 | > |M |, противоречие.
Определение
Совершенное паросочетание — паросочетание, являющееся рё-
берным покрытием.
Примеры:
Граф Петерсена, n-мерный куб.
Доказательство:
(⇒) Очевидно.
(⇐) Индукция по числу вершин в A:
Если |A| = 1 — тривиально.
Рассмотрим произвольный двудольный граф G = (A, B, E) такой,
что |A| > 2 и выполнено условие Холла.
Рассмотрим 2 случая, объединение этих двух случаев — все
случаи:
1 случай:
x A
G0
y B
2 случай:
A0 A
G1 G2
N (A0 ) B
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
Следствие 2.5
Пусть есть двудольный граф G = (A, B, E), t 6 |A|, тогда в
G существует паросочетание мощности t ⇔ ∀X ⊆ A |NG (X)| >
|X| + t − |A|
Доказательство:
A
t рёбер ... ... Все возможные рёбра
B
|A| − t
Упражнение
Доказать теорему Холла из теоремы Фробениуса.
Теорема 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
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
α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
b0 b1 b2 b3 b4 b5 b6 b7
a0 a2 a3
b2 b4 b3
a1 a6 a4
b6
a5
Лемма 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
Определение
Эйлеров цикл — это цикл, содержащий все рёбра графа.
Определение
Граф, имеющий эйлеров цикл — эйлеров.
Лемма 2.24
В эйлеровом графе нет мостов.
Доказательство:
e — мост ⇔ e не принадлежит простому циклу (из характериза-
ции мостов). Любое ребро графа принадлежит эйлерову циклу. Из
любого цикла можно получить простой цикл. Значит любое ребро
принадлежит какому-то простому циклу.
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
Продолжаем, пока не получим эйлеров граф.
Доказательство:
Алгоритм строит какой-то цикл, т.к. степени всех вершин чётны,
а значит, если мы вышли из какой-то вершины, то должны в неё
вернуться.
Допустим, что этот цикл не эйлеров, т.е. он содержит не все рёб-
ра. Т.к. G — связный, существуют вершины в этом цикле, из кото-
рых выходят рёбра, не принадлежащие циклу. Удалим рёбра цик-
ла из графа. Берём непустую компоненту связности в этом графе.
Обозначим её H. Пусть xk — последняя вершина цикла, смежная с
вершинами из H. Тогда xk xk+1 — мост, а в H нет мостов (т.к. H —
эйлеров), получилось, что при построении цикла мы выбрали мост,
когда могли его не выбирать, противоречие.
Определение
Эйлерова цепь — цепь, содержащая все рёбра псевдографа.
Лемма 2.26
В G существует эйлерова цепь ⇔ G — связен и содержит не более
двух вершин нечётной степени.
2.17. Гамильтоновость 103
Доказательство:
Упражнение.
Определение
Цикл в орграфе называется эйлеровым, если он содержит все
дуги орграфа по одному разу.
Доказательство:
Упражнение.
2.17 Гамильтоновость
Определение
Гамильтонов цикл — простой остовный цикл (цикл, проходящий
через все вершины).
Определение
Граф, в котором есть гамильтонов цикл, называется гамильто-
новым.
Лемма 2.27
Пусть в связном графе G длина самой длинной простой цепи
равна t. Если в G существует простой цикл длины (t + 1), то G —
гамильтонов.
Доказательство:
Пусть цикл не содержит все вершины графа, то есть не является
гамильтоновым, тогда существует вершина y, смежная с некоторой
вершиной x из цикла, но в сам цикл не входящая. Уберём одно из
рёбер цикла, инцидентных x. Тогда вместо с ребром xy и оставшейся
частью цикла получим простую цепь длины (t + 1), противоречие.
Следовательно 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
Следствие 2.6
n−1
Пусть есть G = (n, m)-граф, n > 3. Если m > + 2, то
2
G — гамильтонов.
Доказательство:
Упражнение.
Доказательство:
Если в G нет циклов, то G — дерево, значит α0 (G) >
> æ(G) = 1. Условие теоремы не выполнено, значит, если условие
выполняется, то в графе обязательно есть циклы.
H H
C C
Теорема 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
Доказательство:
Рассмотрим граф G = (V, E), |V G| = n, |V E| = m. Возьмём пря-
мую в трёхмерном пространстве, на ней отметим n точек, проведём
через эту прямую m различных плоскостей. Каждой плоскости сопо-
ставляем ребро и проводим полуокружность, соединяющую концы
соответствующего ребра.
Определение
Граф G — планарный, если его можно уложить на плоскость.
Определение
Укладка планарного графа на плоскость — плоский граф.
Теорема 2.30
Граф укладывается на сфере ⇔ он планарный.
Доказательство:
Стереографическая проекция: выбираем точку N на сфере, не ле-
жащую в графе, через диаметрально противоположную точку про-
2.18. Планарность 110
Определение
Гранью плоского графа называется максимальное по включению
множество точек плоскости такое, что каждая пара точек может
быть соединена жордановой кривой, не пересекающей рёбра графа.
Границa грани — вершины и рёбра, принадлежащие ей.
Неограниченная грань — внешняя грань.
Пример:
Лемма 2.28
Для любой грани Γ плоского графа существует укладка этого
графа на плоскости такая, что Γ — внешняя.
Доказательство:
S
α
n−m+f =2
2.18. Планарность 112
Доказательство:
Рассмотрим связный плоский граф (n, m)-граф с f гранями, обо-
значим его G. Выделим в нём остовное дерево T , в графе T n − 1
ребро и 1 грань, значит формула верна.
Далее по одному возвращаем в граф рёбра. Добавляя одно ребро
мы добавляем в граф одну грань (т.к. ребро разрезает какую-то из
существующих граней), формула продолжает быть верной, возвра-
щаем рёбра пока не получим исходный граф, для которого также
будет выполнена формула.
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
Определение
G и H — гомеоморфны, если H можно получить из G конечным
числом операций добавления/удаления вершин степени 2
Доказательство:
(⇒) Пусть в G есть в качестве подграфы гомеоморфные K5 или
K3,3 ⇒ т.к. K5 и K3,3 не планарны исходные подграфы тоже будут не
планарны, значит и весь граф будет не планарным, противоречие.
(⇐) Без доказательства.
Доказательство:
Без доказательства.
Определение
Вершину 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
S1 S2 S3 S4
1 3 7 8 9
5 6 6 1 2 1 2 3
Определение
Простая цепь сегмента 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 — частичная
укладка.
Определение
ϕ называется правильной раскраской, если ∀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.
Лемма 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, то получим правильную раскраску.
Доказательство:
Упражнение.
Доказательство:
χ(G)(χ(G) − 1) χ(G)
Выражаем m, получаем m > =
2 2
Из Леммы 2.31 следует, что для каждой пары цветов существует
ребро,
концы которого раскрашены в эти цвета ⇒
χ(G)
m> .
2
Лемма 2.33
Граф G — t-раскрашиваем ⇔ каждый блок t-раскрашиваемый.
Доказательство:
(⇒) Очевидно по свойству 2.
(⇐) По индукции, упражнение.
Лемма 2.34
∀G χ(G) 6 4(G) + 1
2.21. Раскраска вершин 124
Доказательство:
Следует из жадного алгоритма.
Примеры:
χ(Kn ) = n = 4(Kn ) + 1;
χ(C2n+1 ) = 3
Других примеров с равенством нет.
Доказательство:
Упорядочим вершины 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
Следствие 2.15
При любой минимальной правильной раскраске связного непол-
ного графа G существуют две вершины одного цвета на расстоянии
2 друг от друга.
Доказательство:
Если G : χ(G) = 2, то очевидно.
2.21. Раскраска вершин 126
Определение
ω(G) — кликовое число графа G — мощность самой большой кли-
ки в графе.
Лемма 2.35
Доказательство:
Очевидно.
Лемма 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
Определение
Карта t-раскрашиваема, если существует раскраска граней в t
цветов, в которой смежные грани имеют разные цвета.
Определение
Грани называются смежными, если они имеют общее ребро.
Определение
Пусть 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
Доказательство:
Индукция по числу вершин:
|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
Доказательство:
Без доказательства.
Определение
ϕ называется правильной раскраской, если ∀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
Доказательство:
Очевидно.
χ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) = α.
Доказательство:
1) V K2k = {y, x0 , . . . x2k−2 }
Теорема 2.49
При любой раскраске рёбер графа K6 в 2 цвета существует од-
ноцветный треугольник.
Доказательство:
Надо нарисовать и понять.
Доказательство:
Полная индукция по 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
Булевы функции
Определение
Двоичный кортеж σ
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 .
Теорема 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
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
Определение
Если Φ сопоставляется f , то Φ реализует f .
Определение
Формулы Φi и Φj эквивалентны (Φi = Φj ), если они реализуют
равные функции.
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 ))
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
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 ;
Доказательство:
Рассмотрим кортеж (α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
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: Функция голосования
Тогда
Доказательство:
Распишем по определению
Примеры:
_
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
Свойства замыканий:
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
Доказательство:
Дано, что [Ω1 ] = P2 , Ω1 ⊆ [Ω2 ]
2 св-во 4 св-во
P2 = [Ω1 ] ⊆ [[Ω2 ]] = [Ω2 ] ⊆ P2 ⇒ [Ω2 ] = P2 .
Доказательство:
Докажем, что полна {&, ¬} :
Знаем, что Ω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: МЭК над множеством из трёх переменных
Доказательство:
Существование:
Знаем, что Ω = {&, ⊕, 1} — полна, тогда для любой булевой функции
3.4. Методы получения АНФ 152
Единственность:
Рассмотрим множество булевых функций и множество полиномов
Жегалкина, тогда:
1) Любой полином реализует одну булеву функцию;
2) Множества БФ и АНФ равномощны;
3) Любая булева функция задаём минимум один полином
⇒ существует биекция между множеством БФ и АНФ.
Индукция по 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
Определение
(α1 , . . . , αn ) 4 (β1 , . . . , βn ) ⇔ ∀i αi 6 βi
Пример:
Монотонные функции: 0, 1, &, ∨,функция голосования.
3.5. Классы булевых функций 156
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 )
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}
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
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
Доказательство:
(⇒) Упражнение.
(⇐) Имеем, что
∃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 ⇒ Ω полна.
T0 T1 S L M
xy ⊕ z + − − − −
1 − + − + +
3.5. Классы булевых функций 160
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 − + −
Следствие 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
Лемма 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}
000 010
100 110
001 011
101 111
Определение
Пусть есть 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
Определение
ДНФ D функции f ∈ P2 — минимальна, если D реализует f и
имеет наименьшую сумму рангов элементарных конъюнкций, вхо-
3.5. Классы булевых функций 165
Определение
Элементарная конъюнкция 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
Доказательство:
Минимальная ДНФ состоит только из простых импликант.
Пример:
Рассмотрим функцию голосования m(x1 , x2 , x3 ) и найдём для неё
DC (f ).
000 010
100 110
001 011
101 111
функции.
Теорема 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 ), минимальная и др.).
Доказательство:
Очевидно.
2. Поглощение: K1 ∨ K1 K2 = K1
Методы
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.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
Доказательство:
Без доказательства.
Пример:
K = x1 x2
D = x2 x3 ∨ x3 x1 ∨ x1 x2 ∨ x2 x3 ∨ x3 x1 = x3 ∨ x3 ≡ 1.
Определение
ДНФ функции 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))
..
.
Определение
Информационное дерево T в алфавитах A и B — это бесконечное
ордерево, обладающее следующими свойствами:
2. ∀v 6= v0 deg − v = 1;
(1, 1) (0, 0)
....................................
Определение
Рассмотрим вершину 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
Определение
Диграмма Мура (диаграмма переходов) ОДФ веса r — конечный
орграф (псевдоорграф) с r вершинами, помеченными q0 , . . . , qr−1 .
Из любой вершины выходит ровно |A| = n дуг, помеченных
(a1 , bi1 ), . . . , (an , bin ). И есть начальная вершина q0 .
Диаграмма Мура получается из усечённого дерева отождествле-
нием вершин с одинаковыми метками.
(1, 0)
(0, 0) (0, 1)
q0 q1
(1, 1)
Определение
(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
Тогда
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).
Доказательство:
Рассмотрим инициальный автомат 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
Определение
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
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)
Определение
Определим функцию меток, которая и будет сопоставлять каж-
дой вершине выходное значение (метку).
µ : 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 )
Надо доказать:
Определение
Конечный детерминированный инициальный автомат без выхо-
дов — автомат Мура — 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 )
Определение
{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
2) Конкатенация: E1 · E2
∗ V1 e V2
3) Итерация: E1∗
∗ V1
Доказательство:
Пусть Q — множество состояний автомата H, тогда S ⊆ Q назо-
вём замкнутым, если из того, что q ∈ S и есть дуга по e из q в p,
следует, что p ∈ S.
3.9. Автоматы–распознаватели 189
Пример:
(ab + c∗ )(a + bc)∗ a
2
a b b
∗ 1 4 a 5
a
e e c
3
c
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
Определение
Индивидуальная задача 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
ГЦ ∝ ЗК
То есть нам нужно вход для ГЦ, некий граф 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
ГП ∝ ГЦ
Задан 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
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
Определение
N P -трудная задача — оптимизационная задача, у которой ана-
лог — N P -полная задача.
3-выполнимость (3-ВЫП)
Дана КНФ, у которой все элементарные дизъюнкции имеют ранг
3. Существует ли выполнимый набор переменных?
Разбиение
Дано конечное множество 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