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

ДМ - зачёт (+ коллоквиум)

Краткий конспект по всем вопросам зачёта (а в том числе и коллоквиума) по


дискретной математике
1 семестр

Авторы: Никита Карамов


Дарья Ковтун
conspects.karamoff.dev 

Поддержите авторов: на сайте вы можете найти реквизиты для перевода денег

В комментарии к платежу просьба писать “За конспект по дискре” 


1
Операции на множествах
Пусть A ,  B  — множества

Объединение
A [ B = fx j x 2 A или x 2 B g  

Пересечение
A \ B   =  fx j x 2 A;  x 2 B g  

Разность
AnB  =  fx j x 2 A;  x 2
= Bg  

Симметрическая разность
A4B  =  fx j x 2 A;  x 2
= B  или x 2 B ;  x 2
= A 

2
Дополнение
= Ag  
A = fx j x  2

Декартово произведение
A Â B = f(x; y ) j x 2 A;  y 2 B g  

● An = A Â A Â ::: Â A   — декартова степень множества

Функции и биекции
Пусть A ,  B  — множества.

Функцией f : A ! B  называется правило, ставящее в соответствие элементу


a 2 A  единственный элемент f (a) 2 B  .

A  — область определения функции f  


B  — область значений функции f  
a  — прообраз f (a)  
f (a)   — образ a  

Инъекция
Функция f : X ! Y   называется инъективной, если

8a;  b 2 X : (a = = f (b))  
= b ) f (a) =

Сюръекция
Функция f : X ! Y   называется сюръективной, если

8b 2 Y  9 a 2 X : f (a) = b  

3
Биекция
Функция f : X ! Y   называется биективной, если она
является как инъективной, так и сюръективной;

Равномощность множеств, мощность


множества и свойства мощности
Мощность множества
Мощностью конечного множества A  называется
количество его элементов jAj  .

Множества A  и B  называются равномощными, т. е., имеют одинаковую


мощность, если существует биекция f : A ! B  .
Для конечных множеств это значит, что они имеют одинаковое количество
элементов.

Свойства мощности
● Два конечных множества равномощны тогда и только тогда, когда они
состоят из одинакового числа элементов.
● Множество бесконечно тогда и только тогда, когда оно содержит
равномощное собственное подмножество.
● jA Â B j = jAj Á jBj  
● jA [ B j = jAj + jBj À jA \ B j  

Теорема Кантора
Множества A  и P (A) = fx j x Ú Ag   не являются равномощными.

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

Пусть f : A ! P (A)  — биекция. Рассмотрим

X = fa 2 A j a 2
= f (a)g ) X Ú A ) X 2 P (A)  

f  — биекция. Значит, 9b 2 A :  f (b) = X  . Тогда возможны два случая:

1. b 2 X  , значит, b 2 f (b) ) b 2
= X  . Противоречие.
= X ,  значит, b 2
2. b 2 = f (b) ) b 2 X  . Противоречие.

4
Выходит, что функция f  не может быть биективной, поэтому A  и P (A)  не
являются равномощными, что и требовалось доказать.

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

Число размещений из n  элементов по n  элементов обозначается Akn  и равно:

Akn = n(n À 1)(n À 2):::(n À k + 1) = n!


(nÀk)!  .

Сочетания
Пусть имеется множество, содержащее n  элементов. Произвольный
неупорядоченный набор, состоящий из k   различных элементов данного
множества, называется сочетанием из n  элементов по k   элементов.

Число сочетаний из n  элементов по n  элементов обозначается C kn   и равно:

Akn
C kn = k!
= n!
k!(nÀk)!
 .

Теорема о количестве подмножеств фиксированной мощности


Пусть jAj = n  , P k (A) = fX Ú A j  jX j = k g  , тогда jP k (A)j = n!
(nÀk)!k! = C kn  .

Доказательство (методом мат. индукции)

1. Базис. n = 0  
jAj = 0 ) A = ∅ ) P 0 (A) = f∅g ) jP 0 (A)j = 1 = C 00  
2. Предположим, что утверждение jP k (A)j = C kn  верно для любых n  
3. Докажем для n + 1  
Пусть X Ú A  , jXj = k  , a 2 A  . Найдём количество таких X .  Возможны два
случая:
= X ) X Ú Anfag  . Так как jAnfagj = jAj À 1 = n  , количество X  
1) a 2
равно C kn   (см. п. 2)
2) a 2 X  , тогда количество X  равно количеству множеств
X nfag Ú Anfag  , то есть C kÀ1
n . 
4. Тогда jP k (A)j = C n + C n = C n+1 ,  что и требовалось доказать.
k kÀ1 k

5
6
2
Булевы функции
Булевой называется функция f : B n ! B  , где B = f0; 1g  — булево множество.

Таблицы истинности основных булевых функций

x^y  x $ y 
x  xÁy  x Ø y  x+y 
x  y  :x   x & y   x_y  x ! y  x Ñ y  xÈy  x j y   x # y 

0 0 1 0 0 1 1 0 1 1
0 1 1 0 1 1 0 1 1 0
1 0 0 0 1 0 0 1 1 0
1 1 0 1 1 1 1 0 0 0

Соотношение между операциями


См. эквивалентные соотношения

Число булевых функций от n переменных


Число булевых функций от n  переменных равно 22  .
n

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

Из n  переменных можно составить 2n наборов


  переменных. На каждом из этих
наборов значение функции может быть равно 0 или 1, тогда всего различных
булевых функций от n  переменных будет 22  , что и требовалось доказать.
n

7
3
Литералы
В математической логике литералом называют атомарную формулу, без 0 и 1,
или её логическое отрицание.
В логике высказываний литералом называют логическую переменную или её
логическое отрицание.

Элементарные конъюнкты, полные элементарные конъюнкты


Элементарный конъюнкт или конъюнктивный одночлен — конъюнкция
нескольких литералов:

l1 ^ ::: ^ ln , 
где каждый li   — литерал.

Полный элементарный конъюнкт — элементарный конъюнкт, содержащий


все рассматриваемые переменные

ДНФ, СДНФ
Дизъюнкция нескольких элементарных конъюнктов называется дизъюнктивной
нормальной формой (ДНФ)
Пример: x _ y z _ xz  

Дизъюнкция нескольких полных элементарных конъюнктов называется


совершенной дизъюнктивной нормальной формой (СДНФ)
Пример: xyz _ xyz _ xy z   (для функции от трёх переменных)

Теоремы о существовании СДНФ


Введём обозначение xÛ  , где Û  (сигма) — параметр, равный либо 0, либо 1 ⇒
x0 = x  , а x1 = x  .

 
Любая булева функция от n переменных, тождественно не равная нулю, может
быть записана в виде


f (x1 ;  ::: ;  xn ) = x1Û1 ^ ::: ^ xÛnn ^ f (Û 1 ; :::; Û n )  
(Û 1 ;:::;Û n )

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

8
Рассмотрим произвольный набор (Ë1 ; :::; Ën )  и покажем, что левая и правая части
данного соотношения принимают на нём одно и то же значение.

Для левой части получим f (Ë1 ;  ::: ;  Ën )  .


Для правой части получим Ë1Û1 ^ ::: ^ ËÛnn ^ f (Û 1 ; :::; Û n )  . На одном из
(Û 1 ;:::;Û n )
наборов (Û 1 ; :::; Û n )   выполняется Ë1Û1 ^ ::: ^ ËÛnn = 1  ,  Û 1 = Ë1 ; :::; Û n = Ën  (так как
00 = 11 = 1  ), тогда получим
Ë1Û1 ^ ::: ^ ËÛnn ^ f (Ë1 ; :::; Ën ) = 1 ^ f (Ë1 ; :::; Ën ) = f (Ë1 ; :::; Ën )  , что и требовалось
доказать.

Для всякой булевой функции, тождественно не равной нулю, существует СДНФ,


причём единственная

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

Пусть есть различные равносильные СНДФ D1   и D2  . Так как они различны,


существует хотя бы один полный элементарный конъюнкт x1Û1 Á ::: Á xÛnn ,  который
входит в D1   и не входит в D2  . Тогда на наборе (Û 1 ; :::; Û n )   D1 = 1  , а D2 = 0  .
Следовательно, эти СДНФ не являются равносильными, и представляют разные
функции, что и требовалось доказать.

9
4
Формулы над классом функций
Формулой над множеством булевых функций F   называется f (x1 ; :::; xn ) 2 F   или
È(A1 ; :::; An )  , где È(x1 ; :::; xn )   — формула, A1 ; :::; An   — переменные или функции
из F  .

ab _ c =_ (^ (a; b); c)  

Каждой формуле над F   можно сопоставить булеву функцию:

1. Пусть È 2 F ) È = f (x1 ; :::; xn )  , где f (x1 ; :::; xn ) 2 F  , тогда È ! f (x1 ; :::; xn )  


2. Пусть È =  f (A1 ; :::; An ) ,  где A1 ! f 1 ; :::; An ! f n  , тогда È ! f (f 1 ; :::; f n )  

Пусть дан класс функций C Ò F  

➢ Каждая переменная есть формула над C  


➢ Если f 2 C  , f : B n ! B  , а A1 ; :::; An   — формулы над C  , то f (A1 ; :::; An )  —
тоже формула над C  
➢ Других формул над C   нет

Примеры формул над каким-нибудь классом функций


Пусть C = f:g  . Тогда формулами над C  будут:
x  , x  , x  , x  ,...

Пусть C = f_;^; :g .  Тогда формулами над C  будут:


x  , y  , xy  , x _ y ,  xy _ y ,...
 
Любая ДНФ и любая КНФ будет формулой над C  .

Реализация функций формулами


Будем говорить, что формула È   задает булеву функцию f (x1 ; :::; xn )  , а функция
реализует формулу, и в этом случае использовать обозначение Èf .

Пример: È = x È y z _ (x ! z ) =_ (È (x;^ (y; z )); ! (x; :(z)))  . Функция,


задаваемая формулой È  , может быть найдена путём вычисления значений
подформул с помощью таблицы истинности. В данном случае
f (x; y ; z ) = (1111 1110) . 

10
5
Двойственные функции
Функцией f à (x1 ; :::; xn )  , двойственной к f (x1 ; :::; xn )  , называется функция,
удовлетворяющая равенству f à (x1 ; :::; xn ) = f (x1 ; :::; x2 )  .

Формула для двойственной функции


Чтобы получить формулу È0 f à   для функции f à (x1 ; :::; xn )  , двойственной функции
f (x1 ; :::; xn )  , необходимо, согласно определению, проинвертировать все
переменные, пользуясь при этом законом двойного отрицания, и саму функцию.

Принцип двойственности
Если формула È1 = f 0 (f 1 ; :::; f n )   задаёт некоторую функцию f ,  то
È2 = f 0 à (f 1 à ; :::; f n à )  задаёт функцию f à  .

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

Следующий переход корректен, т. к. при необходимости можно добавить


несущественнные переменные:

È1 = f 0 (f 1 (x1 ; :::; xm ); :::; f n (x1 ; :::; xn )) = f (x1 ; :::; xm )  

f à (x1 ; :::; xm ) = f 0 (f 1 (x1 ; :::; xm ); :::; f n (x1 ; :::; xm )) = f 0 à (f 1 à (x1 ; :::; xm ); :::; f n à (x1 ; :::; xm ) =
, что и требовалось доказать.

11
6
СКНФ
Конъюнкция нескольких полных элементарных дизъюнктов называется
совершенной конъюнктивной нормальной формой (СКНФ)
Пример: (x _ y _ z ) ^ (x _ y _ z )  

Теорема о существовании СКНФ


Булеву функцию f ,  не равную тождественно нулю, можно представить в виде
СКНФ

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


f à (x1 ; :::; xn ) = x1Û1 ^ ::: ^ xÛnn  . Тогда
(Û ;:::;Û n )
 f(Û1
1 ;:::;Û n )=1
T  T  T 
f ÃÃ (x1 ; :::; xn ) = x1Û1 _ ::: _ xÛnn = x1Û1 _ ::: _ xÛnn = x1Û1 _ ::: _ xÛnn  
(Û ;:::;Û n ) (Û ;:::;Û n ) (Û ;:::;Û n )
 f Ã1(Û  f(Û1  f(Û1
1 ;:::;Û n )=1 1 ;:::;Û n )=0 1 ;:::;Û n )=0


f (x1 ; :::; xn ) = x1Û1 _ ::: _ xÛnn  , что и требовалось доказать.
(Û ;:::;Û n )
 f(Û1
1 ;:::;Û n )=0

12
7
Импликанты и простые импликанты функции, примеры
импликант и простых импликант.
Элементарный конъюнкт K  называется импликантом булевой функции f  ,
если K _ f = f  или K ! f = 1  .

Импликант булевой функции называется простым импликантом, если


вычёркиванием из него литералов нельзя получить другой импликант.

Для любого набора аргументов, на которых конъюнкт-импликант равен единице,


функция будет также равна единице.

Пример:
f 1 (x; y ; z ) = (0010 1111)  .
Импликанты: x  , xy  , y z ,  …

x y z F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

f 2 (x; y ; z ) = (0111 1110)  .
Импликанты: xy  , xy  , y z ,  …

Сокращённая ДНФ
Дизъюнкция всех простых импликантов булевой функции f  называется
сокращённой дизъюнктивной нормальной формой (сокращённой ДНФ) для
функции f . 

13
Методы получения сокращённой ДНФ функции
1. Метод Блейка. Применяется к ДНФ.
a. Применить формулу обобщённого склеивания, пока возможно
xK 1 _ xK 2 = xK 1 _ xK 2 _ K 1 K 2  

xyz _ xtw = xyz _ xtw _ y ztw  


b. Применить формулу поглощения
K _ KK1 = K  

a _ (b ^ a) = a  
a ^ (b _ a) = a  

2. Метод Квайна. Применяется к СДНФ. Пусть дана функция от n  


переменных, k = n  .
a. Применить формулу xK _ xK = xK _ xK _ K   ко всем конъюнктам,
содержащим k   литералов
b. Применить формулу поглощения
K _ KK1 = K  
c. Повторять, с каждым разом уменьшая k   на 1.

3. Метод Нельсона. Применяется к КНФ.


a. Раскрыть скобки
(a _ c)(b _ c) = c _ ab  
b. Упростить, используя формулы
xxK = xK  
xxK = 0  
K _ KK1 = K  

Теорема о конъюнкции двух сокращённых ДНФ


Конъюнкция сокращённых ДНФ для функций f  и g   является сокращённой ДНФ
для конъюнкции f ^ g  .

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

14
S
p S
q
Пусть f = K i  и g = Lj   — сокращённые ДНФ для функций f  и g  
i=1 j=1
Ò p
Ó Ò q Ó p Sq
S S S
соответственно. Тогда Ki ^ Li = K i ^ Lj   является ДНФ для
i=1 j=1 i=1 j=1
f ^ g  .

Пусть M  — простой импликант функции f ^ g  . Тогда он является импликантом


как f ,  так и g  . Следовательно, существуют простые импликанты K i0 функции f  
и Lj 0 функции g   такие, что M  — импликант для K i0 и Lj 0 .

Значит, M  — импликант для конъюнкта K i0 ^ Lj 0  , входящего в ДНФ функции


f ^ g  . Поскольку M —  простой импликант функции f ^ g  , то M = K i0 ^ Lj 0   и
S S
p q
входит в K i ^ Lj = f ^ g  .
i=1 j=1

S
p S
q
  некоторый конъюнкт из
Пусть теперь M — K i ^ Lj = f ^ g  . Следовательно,
i=1 j=1
он импликант функции f ^ g  . Допустим, что M  — не простой импликант
функции, тогда существует простой импликант M 0  такой, что M  является
S
p Sq
импликантом для M 0  . По доказанному выше, M 0  входит в K i ^ Lj = f ^ g  ,
i=1 j=1
S
p S
q
следовательно, M  поглощается M 0  . Таким образом, в K i ^ Lj = f ^ g  
i=1 j=1
после поглощения входят только простые импликанты функции f ^ g  , что и
требовалось доказать.

15
8
Геометрическая интерпретация
Пусть дана булева функция f : B n ! B  . B n  можно отождествить с вершинами
единичного куба в ℝn (далее для простоты изложения под кубом
подразумеваются его вершины).

C каждой булевой функцией f  можно связать множество N f вершин, в которых


f = 1  .

Грани, максимальные грани


 
Пусть дан n -мерный куб. Множество его вершин из N f , для которых
xi1 = Ë1 ; :::; xik = Ëk , называется гранью ранга n À k  .
Каждая грань однозначно соответствует некоторому элементарному конъюнкту,
который принимает значение 1 в точности на вершинах грани.

Грань записывается как набор переменных, где на месте одинаковых значений


подставляются они же, а на месте разных значений — пропуски.
Пример: грань f(0; 0; 1); (1; 0; 1)g  можно записать как (—; 0; 1)  .
грань f(0; 1; 0); (0; 1; 1); (1; 1; 0); (1; 1; 1)g   можно записать как (—; 1; —)  
Количество цифр в такой записи также является рангом грани.

Грань N K  называется максимальной относительно булевой функции f ,  если


N K Ò N f  , 8N K 0 ;  N K Ò N K 0 Ò N f :  N K = N K 0  .

Соответствие между простыми импликантами и


максимальными гранями
Каждой максимальной грани относительно булевой функции f  соответствует
простой импликант f . 

Доказательство
Пусть N K  — максимальная грань.
K (Ë1 ; :::; Ën ) = 1 ) (Ë1 ; :::; Ën ) 2 N k Ò N f ) f (Ë1 ; :::; Ën ) = 1  , тогда K  —
импликант f . 

Докажем от противного простоту K .  Пусть K  не является простым импликантом


f ,  значит, можно получить простой импликант K 0  из K  путём вычёркивания
переменных. Тогда получается, что N K Ú N K 0 Ò N f  , а значит N K  не является

16
максимальной гранью. Противоречие.
Утверждение доказано

Если K  — простой импликант, то N K  — максимальная грань.

Доказательство
Пусть K  не является максимальной гранью. Тогда N K Ú N K 0 ,  где N K 0   —
максимальная грань. Значит, можно получить простой импликант K  из K 0  
вычёркиванием переменных, поэтому K  не является простым импликантом.
Противоречие.
Утверждение доказано

Неприводимые покрытия
Набор граней N K 1 ; :::; N K m называется покрытием булевой функции f ,  если
N f = N K 1 [ ::: [ N K m  .

Покрытие булевой функции f  называется неприводимым, если оно состоит


только из максимальных граней, и при удалении любой грани из него перестаёт
быть покрытием.

ДНФ тупиковые в геометрическом смысле


Каждое покрытие булевой функции f  однозначно соответствует ДНФ для f . 

Доказательство
Каждому конъюнкту в ДНФ однозначно соответствует некоторая грань в
покрытии, тогда покрытие из этих граней однозначно соответствует данной ДНФ.

ДНФ, соответствующая неприводимому покрытию, называется тупиковой.

17
9
Операции I и II
Пусть дана ДНФ D . 

ДНФ D0   получается из D  операцией типа I, если D0   эквивалентна D  и


получена вычёркиванием элементарного конъюнкта из D . 

ДНФ D0   получается из D  операцией типа II, если D0   эквивалентна D  и


получена вычёркиванием литералов в каком либо элементарном конъюнкте D . 

ДНФ, тупиковые относительно операций I и II


ДНФ D  называется тупиковой относительно операций типа I и II, если они
к ней неприменимы.

Эквивалентность определений тупиковых ДНФ


ДНФ D  тупиковая относительно операций типа I и II тогда и только тогда, когда
она тупиковая в геометрическом смысле.

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

1. Пусть D  тупиковая относительно операций I и II, то есть, они к ней


неприменимы. Значит, ей соответствует неприводимое покрытие, поэтому
D  тупиковая в геометрическом смысле.
2. Пусть D  тупиковая в геометрическом смысле.
1) Операции типа I соответствует удаление грани из покрытия,
соответствующего D .  Удалить грань нельзя, значит, операция типа I
неприменима к D . 
Û
2) Пусть D = K 1 _ ::: _ K m ,  K i = xj j K 0 i  , тогда N K i Ú N K 0 i  . Если
N f = N K 1 [ ::: [ N K 0 i [ ::: [ N K m  , то N K i не является максимальной
гранью, что неверное, значит, операция типа II неприменима к D . 
3. Тогда D  тупиковая относительно операций типа I и II, что и требовалось
доказать.

18
10
Минимальные, кратчайшие ДНФ
Минимальной ДНФ булевой функции f (x1 ; :::; xn )   называется ДНФ наименьшего
ранга из всех ДНФ, задающих функцию f ,  то есть та, что содержит наименьшее
число литералов.

Кратчайшей ДНФ булевой функции f (x1 ; :::; xn )   называется ДНФ наименьшей


длины из всех ДНФ, задающих функцию f ,  то есть та, что содержит наименьшее
число элементарных конъюнктов.

Построение тупиковых, минимальных, кратчайших ДНФ

Таблица Квайна
Применяется для нахождения тупиковой ДНФ. Пусть дана функция f . 

1. Найти сокращённую ДНФ D = K 1 _ ::: _ K m  для f .  Пусть N f = fP 1 ; :::; P r g . 


2. Составить таблицу m  r : 
Заголовки столбцов: вершины из N f : P 1 ; :::; P r  в виде конъюнктов СДНФ
Заголовки строк: конъюнкты из D :  K 1 ; :::; K m  
Ячейки: Û ij = 1 , если P j 2 N K i  ,
= N K i  .
Û ij = 0 , если P j 2

Пример: f = (1111 1000 0100 1100) = xy _ yz w _ y zw _ xzw _ xyz _ xzw  

xyzw   xyz w   xy zw   xy zw   xyzw   xyzw   xyzw   xyzw  

xy   1 1 1 1 0 0 0 0

yz w   0 1 0 0 0 1 0 0

y zw   0 0 0 0 1 0 1 0

xzw   0 0 0 0 0 1 0 1

xyz   0 0 0 0 0 0 1 1

19
xzw   1 0 0 0 1 0 0 0

T
r S m À Á
3. Составить выражение Û ij K i  
j=1 i=1
À Á À Á
развернуто: Û 1;1 K 1 _ ::: _ Û m;1 K m ^ ::: ^ Û 1;r K 1 _ ::: _ Û m;r K m  

(xy _ xzw) ^ (xy _ yz w) ^ (xy) ^ (xy) ^ (yzw _ xzw) ^ (yzw _ xzw) ^ (yzw _ xyz) ^  
^ (xzw _ xyz)  

4. Раскрыть скобки, используя законы дистрибутивности (


(A _ B ) ^ C = AC _ B C  ) и поглощения ( A _ B A = A  ). В полученной ДНФ
относительно переменных K 1 ; :::; K m  каждому конъюнкту однозначно
соответствует тупиковая ДНФ для f : 
K i1 Á ::: Á K ip ! K i1 _ ::: _ K ip  .
5. Построив тупиковые ДНФ, из них можно выделить минимальные и
кратчайшие.

20
11
Полнота набора функций
Множество булевых функций F   называется полным, если любая булева функция
реализуется формулой над F  .

  множество всех булевых функций


P2 —

Примеры полных наборов функций


f_;^; :g   — ДНФ и КНФ
fÈ;^; 1g   — полиномы Жегалкина
fjg ,  f#g  — штрих Шеффера и стрелка Пирса

Теорема о полноте набора функций, реализующих формулами


полный набор
Пусть F = ff 1 ; f 2 ; :::g   — полный набор булевых функций, G = fg 1 ; g 2 ; :::g   —
набор булевых функций таких, что каждая функция из F   реализуется формулой
над G  . Тогда G  — полный набор функций.

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

f 1 = È1 (g 1 ; g 2 ; :::) ,  f 2 = È2 (g 1 ; g 2 ; :::) ,  … — функции реализуются формулами

Любая функция реализуется формулой над F  , значит


8f = È(f 1 ; f 2 ; :::) = È (È1 (g 1 ; g 2 ; :::) ; È2 (g 1 ; g 2 ; :::) ; :::) = È(g 1 ; g 2 ; :::)  ,
следовательно, G  — полный набор, что и требовалось доказать.

21
12
Замыкание класса функций
Замыканием множества F   булевых функций называется множество всех
булевых функций, реализуемых формулами над F   и обозначается [F ] . 

Замкнутый класс — такое множество P   булевых функций, замыкание которого


относительно операции суперпозиции совпадает с ним самим [F ] = F  .
Другими словами, любая функция, которую можно выразить формулой с
использованием функций множества P  , снова входит в это же множество.

Свойства замыкания
1. F Ò [F ]  
2. [[F ]] = [F ]  
3. F Ò K ) [F ] Ò [K ]  

Примеры
● Класс конъюнкций K ,  являющийся замыканием множества f^; 0; 1g  
● Класс дизъюнкций D ,  являющийся замыканием множества f_; 0; 1g  
● Класс P 2 ,  являющийся множеством всех булевых функций

Определение полного класса через операцию замыкания


Класс функций F   является полным тогда и только тогда, когда [F ] = P 2  .

22
13
Классы T0, T1
Определение
T 0 = ff (x1 ; :::; xn ) j f (0; :::; 0) = 0g  .

T 1 = ff (x1 ; :::; xn ) j f (1; :::; 1) = 1g  .

Замкнутость
Доказательство одинаковое, для простоты заменим 0 и 1 на s  .

Пусть f ; f 1 ; :::; f n 2 T s  , тогда È = f (f 1 (s; :::; s) ; :::; f n (s; :::; s)) = f (s; :::; s) = s  .
Значит, È   реализует функцию из T s  .

Число функций
n
T 0  и T 1  содержат 22
  функций от n  переменных.
n
À1
2 = 22

23
14
Класс S

Определение
Булева функция f  называется самодвойственной, если f = f à  .

S = ff (x1 ; :::; xn )    j     f (x1 ; :::; xn ) = f à (x1 ; :::; xn )g  .

Замкнутость
Пусть f ; f 1 ; :::; f n 2 S  , тогда È = f (f 1 ; ::; f n ) = f à (f 1 à ; :::; f n à ) = Èà  , значит, È  
реализует функцию из S  .

Число функций
2n
p n
S   содержит 22 22  функций от n  переменных.
nÀ1
=22 =

Лемма о несамодвойственной функции


Если булева функция f 2 = S ,  то подстановкой x  и x  вместо переменных можно
получить константу (0 или 1).

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

= S ) 9(Ë1 ; :::; Ën ) : f (Ë1 ; :::; Ën ) = f (Ë1 ; :::; Ën )  


f (x1 ; :::; xn ) 2

Подставим xËi  в f  (при этом 0a = a;  1a = a) : 

1. При x = 0  получим f (0Ë1 ; :::; 0Ën ) = f (Ë1 ; :::; Ën )  


2. При x = 1  получим f (1Ë1 ; :::; 1Ën ) = f (Ë1 ; :::; Ën )  
3. По условию получаем f (0Ë1 ; :::; 0Ën ) = f (1Ë1 ; :::; 1Ën )  , значит f (xË1 ; :::; xËn )  —
константа, что и требовалось доказать.

24
15
Порядок на булевых наборах
Набор1 x = (x1 ; :::xn )   меньше или равен набору y = (y 1 ; :::; y n ) : 

x = (x1 ; :::; xn ) Ö y = (y 1 ; :::; y n )  ,

если x1 < y 1 ,  x2 < y 2 ,  …, xn < y n  .

Монотонные функции
Булева функция f  называется монотонной, если 8Ë; Ì ;  Ë Ö Ì : f (Ë) Ô f (Ì)  ( Ë  
и Ì   — наборы переменных)

Примеры монотонных и немонотонных функций


Функции 0  , 1  , x _ y ,  x ^ y  монотонны
Функция x È y È z   не монотонна, т. к. (0; 1; 0) Ô (1; 1; 0) ,  но
1 = f (0; 1; 0) > f (1; 1; 0) = 0  

Замкнутость класса монотонных функций


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

Пусть f ; f 1 ; :::; f n 2 M ,  È = f (f 1 ; :::; f n )  .

Ë Ö Ì ) f (Ë) Ô f (Ì);  f 1 (Ë) Ô f 1 (Ì); :::; f n (Ë) ≤ f n (Ì) )  


(f 1 (Ë); :::; f n (Ë)) Ö (f 1 (Ì); :::; f n (Ì)) )  f (f 1 (Ë); :::; f n (Ë)) Ô f (f 1 (Ì); :::; f n (Ì))  .

Значит, È   реализует функцию из M ,  что и требовалось доказать.

Лемма о немонотонной функции


= M  , то подстановкой 0  , 1   и x  вместо переменных
Если булева функция f 2
можно получить x  .

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

1
Здесь и далее набор переменных обозначается не литералом с отрицанием, а литералом с
волной (˜) сверху, просто формулы в Google Документах не поддерживают такой символ :( Для
удобства уточню: в этом разделе нет отрицаний, так что все “отрицания” — это на самом деле
“волна”.
25
= M ,  9Ë = (Ë1 ; :::; Ën ); Ì = (Ì 1 ; :::; Ì n ) : Ë Ö Ì ; f (Ë) > f (Ì) ,  
f (x1 ; :::; xn ) 2
f (Ë) = 1;  f (Ì) = 0  .

1. Пусть Ë  и Ì   отличаются в нескольких позициях: Ë = (:::; Í 1 ; :::; Í 2 ; :::; Í k ; :::)  ,


где Í 1 ; :::; Í k  — позиции, в которых наборы отличаются. Рассматривая
позиции, введём наборы значений
Ë0 = Ë = (:::; 0; :::; 0; :::; 0; :::)  
Ë1 = (:::; 1; :::; 0; :::; 0; :::)  
Ë2 = (:::; 1; :::; 1; :::; 0; :::)  
:::  
Ëk = Ì = (:::; 1; :::; 1; :::; 1; :::)  
f (Ë) > f (Ì) ) 9i 2 [0; k ) :  f (Ëi ) > f (Ëi+1 )  , то есть есть два соседних набора
значений, где монотонность функции нарушается, таким образом, этот
случай сведён к следующему случаю
2. Пусть Ë  и Ì   отличаются только в одной позиции:
f (Ë1 ; :::; 0; :::; Ën ) = 1  
f (Ë1 ; :::; 1; :::; Ën ) = 0  
Значит, f (Ë1 ; :::; x; :::; Ën ) = x  , что и требовалось доказать.

Теорема о сокращённой ДНФ (простых импликантах) для


монотонной функции и её следствие о представимости
монотонной функции через конъюнкцию и дизъюнкцию
Если булева функция f 2 M  и K  — простой импликант этой функции, то K  не
содержит отрицаний.

Доказательство (от противного)

Пусть дана f (x1 ; :::; xn ; y )  , K = x1Û1 x2Û2 Á ::: Á xk k y   — простой импликант с


Û

отрицанием

K (Û 1 ; :::; Û k ; 0) = 1 )  f (Û 1 ; :::; Û k ; xk+1 ; :::; xn ; 0) = 1 )  f (Û 1 ; :::; Û k ; xk+1 ; :::; xn ; 1) = 1  


(так как функция монотонна)

Пусть K 0 = x1Û1 Á ::: Á xk k  . K (Û 1 ; :::; Û k ) = 1 )  f (Û 1 ; :::; Û k ; xk+1 ; :::; xn ; y ) = 1  , значит


Û

K 0  — простой импликант f ,  в то время, как K  не является простым


импликантом f .  Противоречие, что и требовалось доказать.

Булева функция f 2 M  тогда и только тогда, когда СДНФ не содержит отрицаний.

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

1. Если f 2 M ,  то её простые импликанты не содержат отрицаний, а так как


СДНФ есть дизъюнкция простых импликантов, то она тоже не содержит
отрицаний.
2. Если СДНФ для f  не содержит отрицаний, то f 2 M как
  функция,
реализуемая формулой над монотонными функциями.

27
16
Многочлен Жегалкина
Многочленом или полиномом Жегалкина называется многочлен вида

ai1 ;:::;ik Á xi1 Á ::: Á xik  , где ai1 ;:::;ik 2 f0; 1g . 
(i1 ;:::;ik )

Многочлены Жегалкина выражаются в виде формул над f^;È; 1g  .

Пример многочлена Жегалкина


x = x È 1 

x ^ y = xy È x  

(x ! y ) ^ z = xyz È z  

Теорема о существовании и единственности многочлена


Жегалкина
Каждая булева функция единственным образом представима в виде многочлена
Жегалкина

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

1. Любую булеву функцию можно реализовать формулой над f:;^;_g  .


Произведём замены x = x È 1  , x ^ y = xy  , x _ y = xy È x È y  . Раскроем
скобки по дистрибутивности x(y È z ) = xy È xz   и упростим по формулам
x È x = 1  , x È x = 0  , xx = x ,  x Á 0 = 0  , x È 0 = x  . В итоге получим многочлен
Жегалкина.
2. Многочлен Жегалкина для булевой функции от n  переменных можно
n À1
2P
представить в виде ci K i ,  где ci   — коэффициент, K i   — элементарный
i=0
конъюнкт. Тогда всего различных многочленов 22  , то есть, столько же,
n

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


одним многочленом, тогда каждой функции однозначно соответствует
многочлен Жегалкина.

28
17
Линейные функции
Булева функция f  называется линейной, если она реализуется формулой над
fÈ; 1g  , то есть, может быть представлена в виде многочлена Жегалкина с
литералами в качестве слагаемых.

Примеры линейных и нелинейных функций


= L 
f (x; y ) = x ^ y = xy 2
= L 
f (x; y ) = x _ y = xy È x È y 2

f (x) = x = x È 1 2 L  
f = 1 2 L 
f = 0 = 1 È 1 2 L 

Замкнутость класса линейных функций


Пусть
f (x1 ; ::; xn ) = c0 È c1 x1 È ::: È cn xn  ,
f 1 (x1 ; :::; xn ) = c10 È c11 x1 È ::: È c1n xn  ,
…,
f n (x1 ; :::; xn ) = cn0 È cn1 x1 È ::: È cnn xn  .

È = f (f 1 ; :::; f n ) = cn0 È c1 (c10 È c11 x1 È :::c1n xn ) È ::: È cn (cn0 È cn1 x1 È ::: È cnn xn ) =  
c0 È c1 c10 È ::: È cn cn0 È (c1 c11 È ::: È cn cn1 )x1 È ::: È (c1 c1n È ::: È cn cnn )xn  , значит, È  
реализует функцию из L  .

Число линейных функций


L  содержит 2n+1  функций от n  переменных.

Лемма о нелинейной функции


= L ,  то подстановкой 0  , 1  , x  , y  , x  , y  вместо
Если булева функция f 2
переменных и, возможно, инверсией значения f  можно получить x ^ y . 

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

29
f 2= L ,  тогда она содержит произведение переменных. Пусть
f (x1 ; :::; xn ) = x1 x2 f 1 (x3 ; :::; xn ) + x1 f 2 (x2 ; x3 ; :::; xn ) + x2 f 3 (x1 ; x3 ; :::; ) + f 4 (x3 ; :::; xn )  ,
тогда 9Ë3 ; :::; Ën : f 1 (Ë3 ; :::; Ën ) = 1  .

Рассмотрим функции:
'(x1 ; x2 ) = f (x1 ; x2 ; Ë3 ; :::; Ën ) = x1 x2 + ax1 + bx2 + c   ( a ,  b ,  c  — какие-то
значения функций)
ï (x1 ; x2 ) = '(x1 + b; x2 + a) + ab + c = (x1 x2 + ax1 + bx2 + ab) +  
(ax1 + ab) + (bx2 + ab) + c + ab + c = x1 x2  .

ï  получена из '  подстановкой x  , y  , x  , y  и, возможно, инверсией значения


функции ' ,  которая в свою очередь получена из f  подстановкой 0   и 1  . Значит,
x ^ y  можно получить подстановкой 0  , 1  , x  , y  , x  , y  вместо переменных и,
возможно, инверсией значения f ,  что и требовалось доказать.

30
18
Методы построения многочлена Жегалкина
1. Эквивалентные преобразования

2. Эквивалентные преобразования СДНФ. Заменим K 1 _ K 2 = K 1 + K 2  ,


x = x + 1   и упростим.
Доказательство. Пусть K 1  и K 2  — элементарные конъюнкты СДНФ. Тогда
9x : K 1 = xK 1 0 ;  K 2 = xK 2 0 . 
K 1 _ K 2 = xxK 1 0 K 2 0 + xK 1 0 + xK 2 0 = xK 1 0 + xK 2 0 = K 1 + K 2  .

3. Метод неопределённых коэффициентов.


n À1
2P
f (x1 ; :::; xn ) = ci K i  
i=0
Составим систему уравнений:
f (0; :::; 0; 0) = c0  
f (0; :::; 0; 1) = c0 + c2n À1  

f (1; :::; 1; 1) = c0 + ::: + c2n À1  

Решив её, найдем коэффициенты многочлена Жегалкина

Определим операцию T   над векторами размерности 2n : 

1) n = 1  . Ë = (a; b)  , тогда T (Ë) = (a; a + b)  


2) n > 1  . Ë = (Ì; Í )  , тогда T (Ë) = (T (Ì); T (Ì) + T (Í))  

4. Преобразование вектора значений булевой функции.


Если cf — вектор коэффициентов многочлена Жегалкина, а Ëf — вектор
значений булевой функции, то T (Ëf ) = cf .

31
32
19
Теорема [Поста] о функциональной полноте
Класс булевых функций F   является полным тогда и только тогда, когда он не
лежит целиком ни в одном из классов: T 0 ;  T 1 ;  S;  M ;  L  .

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

1) От обратного. Пусть среди вышеназванных классов найдётся класс K , 


содержащий F  . Тогда, F Ò K ) [F ] Ò [K] ) K =
= P 2  , а значит F   не является
полным. Противоречие.

2) Пусть F   не лежит целиком ни в одном из вышеназванных классов, тогда


9f 0 ; f 1 ; f S ; f M ; f L 2 F :  f 0 2
= T 0 ;  f 1 2
= T 1 ;  f S 2
= S ;  f M 2
= M ;  f L 2
= L 

1. Пусть есть формула '(x) = f 0 (x; :::; x)  , тогда '(0) = f 0 (0) = 1  .


a. Если '(1) = 0 ,  то '(x) = x .  Подставляя x  и x  в f 0  , можно получить
одну из констант, а через неё и другую.
b. Если '(1) = 1 ,  то '(x) = 1  , а f 1 ('(x); :::; '(x)) = f 1 (1; :::; 1) = 0  
2. Подставляя 0; 1; x  в f M ,  можно получить x  
3. Подставляя 0; 1; x; y ; x; y  и, возможно, меняя значение функции на
противоположное, можно получить x ^ y  

Таким образом, функции из полного набора f:;^; 1g   реализуются формулами


над ff 0 ; f 1 ; f S ; f M ; f L g Ò F  , значит, F   — полный набор, что и требовалось
доказать.

33
20
Неориентированный граф
Неориентированный граф состоит из множества вершин V и ребер E, причем
каждому ребру е из Е сопоставлена неупорядоченная пара вершин (a, b) 

Петли и кратные рёбра


Петля — ребро, начало и конец которого находятся в одной и той же вершине.

Кратные рёбра — несколько рёбер, инцидентных одной и той же паре вершин.

Простые графы
Простой граф — граф, в котором нет кратных рёбер и петель.

Инцидентность вершины и ребра


Инцидентность — понятие, используемое только в отношении ребра или дуги и
вершины: если v1, v2 — вершины, а e = (v1,v2) — соединяющее их ребро, тогда
вершина v1 и ребро e инцидентны, вершина v2 и ребро e e тоже инцидентны.

Смежность вершин
Два ребра, инцидентные одной вершине, называются смежными; две вершины,
инцидентные одному ребру, также называются смежными.

Степень вершины
Степень вершины x — количество рёбер графа G, инцидентных вершине x.
Обозначается deg(x).

Лемма о рукопожатиях
Любой конечный неориентированный граф имеет чётное число вершин нечётных
степеней.

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

34
чётным числом только в том случае, если количество их — чётное число,
следовательно, количество вершин нечётной степени — чётное число, что и
требовалось доказать.

35
222
Маршрут (путь), цепь и простая цепь, цикл и простой цикл
Маршрут (путь) — последовательность рёбер, такая, что конец одного ребра

является началом другого ребра последовательность вершин и рёбер, в
которой каждый элемент инцидентен предыдущему и последующему.

Цепь — маршрут, все рёбра которого различны. Если все вершины (а тем самым
и рёбра) различны, то такая цепь называется простой.

Цикл — цепь, первая вершина которой является и последней. Если это


выполняется для простой цепи, то она — простой цикл.

Лемма о существовании простого цикла в графе, в котором


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

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

Предположим, что в графе G существует две различные цепи между вершинами


u и v. Пусть это будут цепи p = ue1v1...vn-1env и p' = ue'1v'1...v'n-1e'nv. Пусть их
наибольший общий префикс3 заканчивается в вершине w = vk = v'k. Заметим, что
w ≠ v, т.к. цепи различны. Рассмотрим суффиксы4 цепей p и p': s = wek+1...v и s' = 
we'k+1...v соответственно.

2
В нумерации списка тем был пропущен номер 21; мы также пропускаем его для более простой навигации по
документу.
3
Общая подцепь исходных цепей, расположенная до момента расхождения цепей
4
Различные подцепи исходных цепей, расположенные после момента расхождения цепей

36
Найдём первую совпадающую вершину w' в s и s', не равную w. Замкнутая
цепь c, получаемая объединением w → w' части цепи s вместе с w' → w частью
цепи s', является циклом. Лемма доказана.

37
23
Изоморфизм графов
Изоморфизм графов — биекция между равномощными множествами вершин
графов G и H, где любые вершины графа G соединены тогда и только тогда,
когда они смежны в графе H.

Примеры изоморфных и неизоморфных графов с одинаковыми


степенями вершин
Изоморфные графы (A и B, E и F):

Неизоморфные графы а и б (разное количество циклов длины 4: в а – 2, в б – 3):

38
24
Эйлеровы и полуэйлеровы пути5. Эйлеровы и полуэйлеровы
графы.
Эйлеров путь (цепь) — путь, однократно проходящий по всем рёбрам графа.

Эйлеров цикл — эйлеров путь, являющийся циклом (= замкнутый).

Эйлеров граф — граф, содержащий эйлеров цикл.

Полуэйлеров граф — граф, содержащий эйлеров путь.

Критерий эйлеровости и полуэйлеровости графа. Примеры.


Эйлеров цикл в графе существует тогда и только тогда, когда граф связный и в
нём отсутствуют вершины нечётной степени.

Эйлеров путь в графе существует тогда и только тогда, когда граф связный и
содержит не более двух вершин нечётной степени. Из леммы о рукопожатиях
⇒ число вершин с нечётной степенью должно быть четным эйлеров путь ⇒
существует только тогда, когда это число 0 или 2. Если 0, то эйлеров путь
вырождается в эйлеров цикл.

5То, что Зубков в списке назвал “эйлеровыми и полуэйлеровыми путями”, в реальности именуется эйлеровыми
циклами и эйлеровыми путями соответственно.

39
25
Гамильтоновы и полугамильтоновы пути6. Гамильтоновы и
полугамильтоновы графы.
Гамильтонов путь — простой путь в графе, содержащий все вершины графа
ровно по одному разу.

Гамильтонов цикл — замкнутый гамильтонов путь.

Гамильтонов граф — граф, в котором есть гамильтонов цикл.

Полугамильтонов граф — граф, в котором есть гамильтонов путь.

Теорема Дирака.
Пусть G — неориентированный граф с n вершинами. Если n ≥ 3 и степень
каждой вершины deg(vi) ≥ n/2, то G — гамильтонов граф.

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

Пусть C — цикл наибольшей длины в графе G. По лемме7 его длина l ≥ δ + 1, где


δ — минимальная степень вершин графа. Если C - гамильтонов, то теорема
доказана.

Предположим обратное, т. е. G\C ≠ ∅. Рассмотрим путь P = x...y : P ∩ C = {y}


наибольшей длины m. Заметим, что по условию δ ≥ n/2, а значит
δ ≥ n - δ > n - l = |V(G\C)|, и каждая вершина из G\C смежна с некоторыми
вершинами из C.

Заметим, что вершина x не может быть смежна:

● с вершинами из C, расстояние от которых до y (по C) не превышает m.


Действительно, пусть вершина v ∈ C и расстояние от v до y по циклу
меньше либо равно m. Тогда этот участок цикла можно заменить на
v → x → P → y, длина которого m + 1. Таким образом образуется цикл
большей длины, что противоречит предположению о максимальности
цикла C.
● двум смежным вершинам на C. Пусть u, v ∈ C и {(u, v), (u, x), (x, v)} ∈ E.
Тогда, заменив ребро (u, v) на u → x → v, мы увеличим длину цикла на 1.
● вершинам из G \ (C ∪ P), поскольку P — максимальный.

Получаем deg x ≤ m + l-2m/2 = l/2 < n/2 ≤ δ. Противоречие.

6 См. сноску 5
7 Лемма о длине цикла; здесь не приводится

40
Теорема Оре
Пусть G — простой граф с n ≥ 3 вершинами. deg(v) — степень вершины v ∈ G.
Если deg(v) + deg(w) ≥ n для любой пары несмежных вершин v и w графа G, то
он гамильтонов.

Доказательство (от противного)

Пусть G — негамильтонов граф с n ≥ 3 вершинами, и граф H образован из G


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

Рассмотрим любые две несмежные вершины x и y графа H. Добавление ребра 


xy в H создаёт по меньшей мере один гамильтонов цикл, а рёбра, отличные от xy
в этом цикле, должны образовывать гамильтонов путь v1v2...vn в H с x = v1 и
y = vn.

Для каждого индекса i в диапазоне 2 ≤ i ≤ n, рассмотрим два возможных ребра в


H из v1 в vi и из vi−1 в vn. Максимум одно из этих рёбер может присутствовать в H,
поскольку в противном случае цикл v1v2...vn−1vnvn−1...vi был бы гамильтоновым.
Таким образом, общее число рёбер, инцидентных v1 или vn, не превосходит
числа возможных i, что равно n − 1. Поэтому H не удовлетворяет условию,
которое требует, чтобы общее число рёбер (deg v1 + deg vn) было больше или
равно n. Поскольку степени вершин G не превосходят степеней в H, то G также
не удовлетворяет этому условию.

Примеры гамильтоновых и полугамильтоновых графов,


удовлетворяющих и не удовлетворяющих теоремам Дирака и
Оре в различных комбинациях
По определению любой граф, удовлетворяющий теореме Дирака, удовлетворяет
теореме Оре.

На рисунке первый граф удовлетворяет теореме Дирака и теореме Оре, другие


три не удовлетворяют ни той, ни другой.

41
Данные графы гамильтоновы, однако не удовлетворяют теоремам Дирака и Оре.

Данный граф гамильтонов, удовлетворяет теореме Оре, но не Дирака.

42
26
Связность вершин
Две вершины u и v связаны, если в графе существует путь из u в v.

Связность графов
Связный граф — граф, содержащий ровно одну компоненту связности = граф,
любые две вершины которого связаны = между любыми двумя вершинами графа
существует путь.

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

43
27
Мост
Мост — ребро, удаление которого увеличивает число компонент связности на 1.

Необходимое и достаточное условие того, что ребро является


мостом
Ребро является мостом в том и только в том случае, если оно не содержится ни в
одном цикле. Если ребро принадлежит циклу, то существует два пути между
потенциальными компонентами связности, а значит удаление одного из них не
увеличит количество компонент связности, что противоречит определению моста.

44
28
Лес и дерево. Различные эквивалентные определения
деревьев
Дерево —связный граф без циклов; граф, каждое ребро которого является
мостом

Лес — граф без циклов; граф, компонентами связности которого являются


деревья

Существование висячей вершины в дереве


В любом дереве существует минимум две висячие вершины (вершины, степень
которых равна 1)

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

Предположим, что висячих вершин 0 или 1.

Если таких вершин нет, то ∑deg(vi) = 2m = 2(n - 1) = 2n-2 (добавление нового



ребра увеличивает сумму степеней на 2); deg(v) ≥ 2 ∑deg(vi) ≥ 2n ⇒

2n-2 ≥ 2n — противоречие висячих вершин не может не быть.


Если такая вершина одна, то ∑deg(v) ≥ 2n-1 2n-2 ≥ 2n-1 — противоречие ⇒
только одной висячей вершины быть не может.

Следовательно, должно быть как минимум две висячие вершины, что и


требовалось доказать.

Число ребер в дереве и лесе


Любое дерево с n вершинами содержит n-1 ребро. Проверяется по индукции: мы
не можем добавлять рёбра между существующими вершинами, но при этом не
можем иметь и вершин со степенью 0, следовательно, добавление вершины
влечет за собой добавление ребра и наоборот. Из индукции и теоремы о

45
существовании висящей вершины следует, что в дереве вершин всегда на одну
больше, чем рёбер.

Любой лес с k деревьями и n вершинами содержит n-k рёбер. Проверка: в


каждом дереве рёбер на одно меньше, чем вершин. С добавлением в лес новых
деревьев это отношение увеличивается на 1 ребро для каждого нового дерева.

Число компонент связности в лесе


Из предыдущего пункта следует, что в лесе с n вершинами и m рёбрами
существует n-m компонент связности.

46
29
Остов графа
Остовное дерево (остов) связного графа G — всякий подграф графа G,
являющийся деревом.

Вес остова
Вес остова — сумма весов всех рёбер остова.

Вес ребра — значение, поставленное в соответствие данному ребру графа.


Иногда можно интерпретировать как «длину» ребра.

Остовы наименьшего веса


Минимальное остовное дерево в связанном взвешенном графе — это остовное
дерево этого графа, имеющее минимальный возможный вес.

Алгоритм Краскала
Из всех рёбер графа последовательно выбираются рёбра наименьшего веса, не
образующие цикла с выбранными ранее до тех пор, пока таких рёбер не
останется.

Полученный подграф является остовным деревом наименьшего веса для


исходного графа.

47
Алгоритм Прима
Сначала берётся произвольная вершина и находится ребро, инцидентное данной
вершине и обладающее наименьшим весом. Далее рассматриваются рёбра
графа, один конец которых — уже принадлежащая дереву вершина, а другой —
нет; из этих рёбер выбирается минимальное по весу. Выбираемое на каждом
шаге ребро присоединяется к дереву до тех пор, пока не закончатся вершины.

Результатом работы алгоритма является остовное дерево минимального веса


для исходного графа.

48
30
Код Прюфера
Код Прюфера однозначно сопоставляет произвольному конечному дереву
последовательность; дереву с n вершинами сопоставляется последовательность
из n-2 чисел от 1 до n с возможными повторениями.

Дерево с кодом Прюфера 4445 

Алгоритм кодирования
Пусть T есть дерево с n вершинами, занумерованными числами {1,2,...,n}.
Построение кода Прюфера дерева T ведётся путем последовательного удаления
вершин из дерева, пока не останутся только две вершины. При этом каждый
раз выбирается висящая вершина с наименьшим номером и в код
записывается номер той вершины, с которой она соединена. В результате
получаем последовательность (p1,...,pn-2), составленную из чисел {1,...,n},
возможно с повторениями.

Алгоритм декодирования
Для восстановления дерева по коду p = (p1,...,pn-2), заготовим список номеров
вершин s = (1,2,...,n). Выберем наименьший номер s1, который не встречается в
коде. Добавим ребро (s1,p1), после этого удалим s1 из s и p1 из p.

Повторяем процесс до момента, когда код p становится пустым. В этот момент


список s содержит ровно два числа: sn-1 и n. Остаётся добавить ребро (sn-1,n), и
дерево построено.

49
Теорема Кэли о количестве помеченных деревьев
Число различных деревьев на n вершинах, пронумерованных числами от 1 до n
равно nn-2.

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

Любое дерево можно закодировать с помощью кода Прюфера. В коде Прюфера


может быть неограниченное число повторений, а сам он состоит из n-2 чисел.
Следовательно, общее количество различных деревьев на n вершинах есть
n×…(n-2 раз)...×n = nn-2, что и требовалось доказать.

50
31
Плоские и планарные графы
Плоский граф — геометрический граф, в котором никакие два ребра не
пересекаются.

Планарный граф — граф, который может быть изображён на плоскости без


пересечения рёбер, то есть граф, который изоморфен некоторому плоскому
графу.

Разница между понятиями плоского и планарного графа


Плоский граф — граф, уже уложенный на плоскость без пересечений. Планарный
граф может иметь пересечения, но его можно уложить на плоскость без них.

Формула Эйлера
Грань — область, ограниченная рёбрами в плоском графе. Внешняя часть
плоскости образует внешнюю грань.

Для связного плоского графа справедливо следующее соотношение между


количеством вершин n, рёбер m и граней l (включая внешнюю грань):

n - m + l = 2 

Было найдено Эйлером в 1736 г. при изучении свойств выпуклых многогранников.

Неравенство для планарных графов


Из формулы Эйлера следует: если каждая грань ограничена не менее чем тремя
рёбрами, а каждое ребро разделяет две грани, то

3l ≤ 2m

следовательно,

m ≤ 3n - 6 

то есть, при большем числе рёбер такой граф заведомо непланарен.

Непланарность графов K5 и K3,3

Полный граф с пятью вершинами (К5) нельзя уложить на


плоскость, так как для него не выполняется m ≤ 3n - 6.

51
Полный двудольный граф с тремя вершинами в каждой из
долей (К3,3) нельзя уложить на плоскость.

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

По формуле Эйлера граф имеет 5 граней. С другой стороны, любая грань


(включая внешнюю) содержит чётное число рёбер — а значит, не менее 4.

Поскольку каждое ребро включается в ровно две грани, получается соотношение


4l ≤ 2m. Подставляем в это неравенство l = 5 и m = 9 и видим, что оно не
выполняется.

Граф планарен тогда и только тогда, когда он не содержит подграфов,


гомеоморфных K5 или K3,3.

52
32
Укладка графов в пространстве, на плоскости и на сфере
Граф укладывается на некоторой поверхности, если его можно нарисовать на
этой поверхности так, чтобы рёбра графа при этом не пересекались.

Каждый конечный граф может быть уложен в трехмерном пространстве.

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

Пусть дан граф G с n вершинами. На прямой, перпендикулярной плоскости S,


расставляем все n вершин. Пусть G имеет m рёбер. Через прямую, на которой
расставлены все n вершин, проводим m различных плоскостей,
перпендикулярных нашей плоскости S. Затем каждое ребро проводим на
отдельной плоскости.

Пересечений у этих рёбер не будет, кроме вершин. Получилась укладка графа в


трехмерном пространстве. Теорема доказана.

На плоскости могут быть уложены только планарные графы (см. п. 31).

На сфере могут быть уложены только планарные графы

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

Пусть граф G уложен на сфере. Проведем плоскость Q, касательную к сфере,


так, чтобы северный полюс N (точка, диаметрально противоположная точке
касания) не лежал на ребре и не совпадал с вершиной графа G. Теперь

53
рассмотрим граф G', полученный стереографической проекцией графа G из
точки N на плоскость Q (см. рис.)

Поскольку существует биективное соответствие между точками сферы,


отличными от N, и их стереографическими проекциями, то граф G' — плоский и
изоморфен графу G. Следовательно, G — планарный граф.

54
33
Подразбиения графов, гомеоморфизм графов
Подразбиение графа G — это граф, полученный делением рёбер в G.

Деление некоторого ребра e с конечными вершинами {u,v} даёт граф,


содержащий новую вершину w и два ребра {u,w} и {w,v} вместо ребра e:

Гомеоморфные графы — графы, подразбиения которых изоморфны.

В следующем примере графы G и H гомеоморфны.

G H 

Если граф G' — подразбиение внешних рёбер графа G, а граф H' —


подразбиение внутренних рёбер графа H, то G' и H' изоморфны:

G', H'

Критерий планарности
С геометрической точки зрения, подразбиение — это добавление точки на ребре,
а стирание такой вершины объединяет два ребра с общим концом в одно.

Очевидно, что любая из этих операций, применённая к плоскому графу, снова


даст плоский граф. Значит, никакой плоский (и планарный) граф не гомеоморфен
графам K5 и K3,3 (заведомо непланарным графам). С учетом замечания о
непланарных подграфах8, необходимость доказана.

8 Если подграф не планарен, то граф, содержащий этот подграф, тоже не планарен

55