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

G.1.

Направленные графы
Различают направленные и ненаправленные графы.

Направленным графом G называется пара G = < V, E >,


ДИСКРЕТНАЯ МАТЕМАТИКА где
V = { vi | i∈ {1, … , n}} есть непустое множество
вершин графа
E = { ek | k∈ {1, … , m}} есть множество дуг графа
G.
ek = < vs , v t > , s, t ∈ { 1, … , n }
ЭЛЕМЕНТЫ
ТЕОРИИ ГРАФОВ
Направленный граф является одной из форм
представления отношений и рассмотрена в
соответствующем разделе теории множеств.
2

G.2. Ненаправленные графы Степень вершины. Лемма о рукопожатиях


В далнейшем в рамках нашего курса мы рассматриваем Степенью вершины v называется число рёбер ρ(v),
симметричные (ненаправленные) графы. инцидентных v (при вычислении степени вершины петлю
учитывают 2 раза).
Графом G называется пара < V(G), E(G) > , где V (G)
Вершина степени 0 называется изолированной вершиной.
непустое множество элементов, называемых
Вершина степени 1 называется висячей (концевой)
вершинами, а E(G) - конечное семейство
вершиной.
неупорядоченных пар элементов из (не обязательно
различных), называемых рёбрами. d (1)
a (2) e (2)
Заметим, что употребление слова “семейство” говорит
о том, что допускаются кратные рёбра (мультиграф).
b (3) c (2) f (0)
d
a e Лемма о рукопожатиях : если сложить степени всех
вершин графа, то получится чётное число - равное
b c f удвоенному числу рёбер.
3 4

1
Изоморфизм графов. Матрица инциденций
Два графа G1 и G2 называются изоморфными, если Две вершины v и w грфа G называются смежными, если
существует взаимно однозначное соответствие между существует соединяющее их ребро; при этом вершины v
множествами их вершин, обладающее тем свойством, и w нзываются инцедентными этому ребру (а ребро -
что число рёбер, соединяющих любые две вершины в G1, инцедентным этим вершинам).
равно числу рёбер, соединяющих соответствующие две Матрицей инциденций простого графа G с
вершины в G2. множеством вершин {v1, v2, ..., vn} и множеством рёбер
a a {e1, e2, ..., em} называется матрица A = (apq) размера
n×m, в которой элемент apq = 1, если вершина vp
b e e инцидентна ребру eq и apq = 0 в противном случае.
b 1 2 3 4 5 6 a
1
c d 1 1 0 0 1 0 a 2 b
c d 1 0 1 0 0 0
d 3
M =  b 5
Изоморфизм f от левого графа к правому: 0 0 0 1 1 1  c 4
  c
f(a) = e, f(b) = a, f(c) = b, f(d) = c, f(e) = d. 0 1 1 1 0 0  d 6
5 6

Матрица смежности. Простой граф Подграф


Матрицей смежности графа G с множеством вершин Подграфом графа G называется граф, все вершины
{v1, v2, ..., vn} называется матрица A = (apq) размера n×n, которого принадлежат V(G), а все рёбра принадлежат E(G).
в которой элемент apq равен числу рёбер в G ,
соединяющих vp и vq. G1 G2
a b c d Полный граф
a Подграф
0 1 1 2 a
графа G1
1 1 0 1 b
AG =  d b
1 0 0 3 c
 
2 1 3 0 d c G4
Подграф графов
Графы, не содержащие петель и кратных рёбер, мы G3
G1, G2, и G3;
будем называть простыми. Максимальный максимальный
пустой подграф пустой подграф
У простого графа apq =1 для всех p, q. графа G1 графа G2
7 8

2
Некоторые типы графов Укладка графов. Планарный граф.
Жордановой кривой на плсскости называется
непрерывная кривая, не имеющая самопересечений.

Говорят, что граф может быть уложен в данном


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

Граф, который может быть уложен на плоскости,


наывается планарным графом.
C5 W5 Например, графы К5 и К3,3 не являются планарными.
циклический граф граф “колесо”
9 10

Планарный и плоский графы Маршрут. Связность графов.

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


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

Граф называется связным, если для любых его двух


вершин v и w существует простая цепь из v в w.
Несвязный граф состоит из нескольких компонент.
Например, эти три графа планарны, но только два
из них плоские.

11 12

3
Разрез G.3. Задача о кенигсбергских мостах
Найти такую точку города, выйдя из которой можно
Разделяющим множеством связного графа называется пройти по всем мостам города по одному разу и
такое множество его рёбер, удаление которого приводит вернуться в неё обратно.
к несвязному графу. A
A
Разрезом называется такое разделяющее множество, Pregel C
никакое собственное подмножество которого не B C B
является разделяющим. Если разрез состоит из River
единственного ребра, то это ребро называется мостом
или перешейком. D D
Граф называется эйлеровым, если существует
замкнутая цепь содержащий по одному разу каждое
ребро заданнрго графа (эйлеров цикл). Если снять
ограничение на замкнутость цепи, то граф
называется полуэйлеровым.
13 14

Задача о кенигсбергских мостах Алгоритм построения эйлеровой цепи


Лемма. Если степень каждой вершины графа не
меньше двух, то граф содержит цикл. Алгоритм построения эйлеровой цепи (алгоритм Флёри).
Теорема. Граф эйлеров, если и только если он Выходя из произвольной вершины, идём по рёбрам
связен и степени всех его вершин чётны. графа произвольным образом, соблюдая лишь
Связный граф полуэйлеров, если и только если в следующие правила:
нём не более двух вершин имеют нечётные степени.
A(3) A(4) 1) стираем рёбра по мере их прохождения и стираем
также изолированные вершины, которые при этом
t(2) образуются;
C(3)
B(5) B(6) 2) на каждом этапе идём по мосту только тогда, когда
C(4)
нет другой возможности.
s(2)
D(3) D(4)
Граф справа в отличие от графа слева является
эйлеровым графом.
15 16

4
G.4. Кратчайший путь. Алгоритм Дейкстры. Алгоритм Дейкстры.
Пусть G - взвешенный граф, причём все веса рёбер -
procedure Dijkstra(G: взвешенный связный простой
неотрицательные числа. Пусть Z - какой-нибудь путь,
граф с вершинами a = v0, v1, …, vn = z и
соединяющий вершины a и z; длиной пути Z из a в z
положительными весами w(vi, vj), где w(vi, vj) = ∞,
будем считать сумму весов всех входящих в данный
если {vi, vj} не является ребром графа G)
путь рёбер.
Алгоритм Дейкстры основан на двух идеях:
for i := 1 to n
1) присвоении вершинам графа меток и правиле L (vi) := ∞
пересчёта меток, при этом окончательные метки - длины L(a) := 0
соответствующих кратчайших путей; S := ∅
2) экстремальном свойстве кратчайшего пути, состоящем {теперь метки инициализироанны таким образом,
в следующем: если кратчайший путь из вершины x в что метка вершины a есть ноль, метки остальных
вершину y проходит через вершину b, то его отрезок от
вершин есть ∞, а строимое множество вершин S
вершины x до вершины b - кратчайший путь от x до b, а
его отрезок от b до y - кратчайший путь от b до y.
пока есть пустое множество}

17 18

Алгоритм Дейкстры. Пример. Начальная установка меток


while z∉S Вначале вершине v присваивается окончательная
begin метка, а каждой из остальных присваивается
u := вершина не принадлежащая S с минимальной временная метка ∞.
меткой L b ∞ d ∞
S := S ∪ {u} 5
for все вершины v не принадлежащие S 4 6
if L(u) + w(u, v) < L(v) then L(v) := L(u) + w(u, v)
a 1 8 2 z
{выбирается вершина с минимальной меткой,
вкключается в множество S и обновляются метки не 0 3 ∞
принадлежащие S} 2
10
end
c ∞ e ∞
{L(z) = длина кратчайшего пути от a к z}
19 20

5
Шаг 1 Шаг 2
На каждом шаге одной вершине с временной меткой Выбирается вершина с имеющая наименьшую метку
присваивается окончательная метка и поиск S = { a, c }
продолжается (пересчитываются метки).. Пересчитываются метки вершин, для которых
S={a} существуют рёбра, идущие из S (временные метки)
4 (a)
b ∞ d ∞ 4 (a,
3
b ∞ (a) c) d ∞10 (a, c)
5 5
4 6 4 6

a 1 8 2 z 1 8
a 2 z
0 3 ∞ 0 3 ∞
2 2
10 10
2 (a)
c ∞ e ∞ 2 (a)
c ∞ 12 (a, c)
e ∞
21 22

Шаг 3 Шаг 4
Выбирается вершина b имеющая наименьшую метку Выбирается вершина d имеющая наименьшую метку
S = { a, c, b } S = { a, c, b, d }
Пересчитываются метки вершин, для которых Пересчитываются метки вершин, для которых
существуют рёбра, идущие из b. существуют рёбра, идущие из d.
4 (a,
3
b ∞ (a) c) d ∞8
10(a,
(a,c,c)b) 4 (a,
3
b ∞ (a) c) d ∞8
10(a,
(a,c,c)b)
5 5
4 6 4 6

a 1 8 2 z 1 8
a 2 z
0 3 ∞ 0 3 ∞
14 (a, c, b, d)
2 2
10 10
2 (a)
c ∞ 12 (a, c)
e ∞ 2 (a)
c ∞ 12
10 (a,
e ∞ (a, c)
c, b, d)
23 24

6
Шаг 5 Останов алгоритма
Выбирается вершина e имеющая наименьшую метку
S = { a, c, b, d, e, z }
S = { a, c, b, d, e }
Пересчитываются метки вершин, для которых Кратчайший путь: a, c, b, d, e, z
существуют рёбра, идущие из e.
4 (a,
3
b ∞ (a) c) d ∞8
10(a,
(a,c,c)b) 4 (a,
3
b ∞ (a) c) d ∞8
10(a,
(a,c,c)b)

5 5
6 4 6
4

8 a 1 8 2 z
a 1 2 z
0 3 ∞ 0 3 ∞
14(a,
(a,c,c,b,
b,d,
d)e)
14(a,
13 (a,c,c,b,
b,d,
d)e) 13
2 2
10 10

2 (a) 12
10 (a, 2 (a)
c ∞ 12
10 (a,
e ∞ (a, c)
c, b, d)
c ∞ e ∞ (a, c)
c, b, d)
25 26

G.5. Деревья Деревья


Лесом называется граф, не содержащий циклов. Сумма степеней всех вершин дерева равна 2n -2.
Связный лес называется деревом.
В связном графе G удаление одного ребра,
Пусть граф G имеет n вершин. Тогда следующие принадлежащего некоторому выбранному циклу, не
утверждения эквивалентны: нарушает связности оставшегося графа. Применим эту
1) G является деревом; процедуру к одному из оставшихся циклов, и так до тех
пор, пока не останется ни одного цикла. В результате
2) G не содержит циклов и имеет n-1 рёбер; получим дерево, связывающее все вершины рафа G;
3) G связен и имеет n-1 рёбер; оно называется остовным деревом графа G.
4) G связен и каждое его ребро является мостом; Число удалённых в этой прцедуре рёбер называется
5) любые две вершины графа G соединены ровно одной циклическим рангом (или цикломатическим числом)
простой цепью; графа и равно в общем случае для графа G с n
6) G не содержит циклов, но добавляя к нему любое вершинами, m рёбрами и k компонентами:
новое ребро, мы получаем ровно один цикл. γ(G) = m - n + k
27 28

7
Деревья Деревья
Являются ли эти графы деревьями ? В связном графе G удаление одного ребра,
принадлежащего некоторому выбранному циклу, не
нарушает связности оставшегося графа. Применим эту
процедуру к одному из оставшихся циклов, и так до тех
пор, пока не останется ни одного цикла. В результате
получим дерево, связывающее все вершины рафа G;
Нет Да оно называется остовным деревом графа G.
Число удалённых в этой прцедуре рёбер называется
циклическим рангом (или цикломатическим числом)
графа и равно в общем случае для графа G с n
вершинами, m рёбрами и k компонентами:
γ(G) = m - n + k
Да Нет. Это лес.

29 30

Деревья Перечиление деревьев


B E Помеченный граф с n вершинами - это граф, у
остовное
дерево которого все вершины “помечены” целыми числами от
F 1 до n .
Формально имеем распределение меток как взаимно
однозначное соответствие между множеством вершин
A D
B E и множеством {1, 2,..., n} ; тогда помеченным графом
называется пара < G, ϕ > , где G - граф, а ϕ -
F распределение меток в G .
C
Теория перечисления графов занимается подсчётом
γ(G) = m - n + k = числа неизоморфных графов. Два помеченных графа
A D < G1, ϕ1 > и < G2, ϕ2 > называются изоморфными, если
= 13 - 6 + 1 = 8
существует изоморфизм между G1 и G2, сохраняющий
распределение меток в этих графах.
C
31 32

8
Перечисление деревьев G.6. Задачи раскраски графов
Графы, рассмартиваемые в этом разделе, являются
Теорема Кэли. Существует ровно nn-2 различных неориентированными и не имеют петель.
помеченных деревьев с n вершинами. В общем случае задача раскраски графов
формулируется следующим образом.
Например, число всех неизоморфных помеченных Задан неориентированный граф G с множеством
деревьев с четырьми вершинами равно 16. вершин V и множеством ребер E . Требуется
раскрасить его вершины в минимальное число цветов
1 2 3 4 так, чтобы соседние вершины были окрашены в
3
различные цвета.
Минимально необходимое число красок называется
1/2 * 4! + 4 = 16 = 1
хроматическим числом графа.
= 44-2 2 4
Например, для раскраски
Различными считаются деревья, не переводимые друг в данного графа требуется
друга изоморфизмом, сохраяющим нумерацию вершин. пять красок.
33 34

G.6.1. Поиск минимальных разбиений Задача размещения отдыхающих


Часто решение логических задач связывается с поиском Пример. Задано отношение v1 v2 v3 v4 v5
некоторой совокупности подмножеств заданного несовместимости на v1 0 0 0 0 1
множества, удовлетворяющей определённым множестве v2 0 0 0 1 0
требованиям, и оптимальной в том или ином смысле, v3 0 0 0 1 1
например минимальной по числу выбранных V = {v1, v2, v3, v4, v5}
v4 0 1 1 0 0
подмножеств. v5 1 0 1 0 0
Приведём одну из формулировок подобной задачи.
Задано некоторое множество V . На множестве V
v1 v2 L1 L2
определено отношение несовместимости. Требуется
v1
найти такое разбиение множества V на минимальное v4
число подмножеств (блоков) так, чтобы любые два v4 v2
элемента принадлежащие одному блоку не v3 v5
находились бы в отношении несовместимости. v3
v5
Поиск разбиения сводится к раскраске графа
описывающего отношение несовместимости. Получаем разбиение: V = { { v1, v2, v3 }, { v4, v5 } }
35 36

9
G.6.2. Задача раскраски карт G.6.3.Решение задача расраски графов
Решение путем сведения к задаче о кратчайшем
покрытии.
Данная задача сводится к поиску минимального числа
максимальных пустых подграфов, которые в своей
совокупности содержат все вершины заданного графа.
Задача раскраски карт сводится к задаче раскраски
Утверждение. Вершины, которые не принадлежат
планарных графов.
k2 пустому подграфу, должны покрывать все ребра
заданного графа (действительно, иначе обе вершины
k1 з1
непокрытого ребра должны принадлежать этому
подграфу, что невозможно).
с з2
На основании приведенного утверждениия построение
Теорема. Для оптимальной раскраски планарных графов пустого подграфа можно свести к поиску подмножества
достаточно четырёх цветов. вершин покрывающего все ребра заданного графа.
(1977, K. Appel, W. Haken, J. Koch)
37 38

Алгоритм Пример
1 3
1. Найти все максимальные пустые подграфы Дан граф:
графа G .
5 4 2
2. Построить матрицу бннарного отношения
принадлежности вершин графа найденным
1.Построение максимальных пустых подграфов.
подграфам.
3. Найти кратчайшее покрытие этой булевой fe (1, 2, 3, 4, 5) = (1 ∨ 5) & (2 ∨ 4) & (3 ∨ 4) & (3 ∨ 5) =
матрицы. = (1&2&3) ∨ (1&3&4) ∨ (2&3&5) ∨ (4&5)
4. Перейти к разбиению множества вершин Минимальные подмножества вершин покрывающие
(т.е. устранить возможные пересечения между все ребра будут:
множествами вершин выбранных максимальных
{1, 2, 3}, {1, 3, 4}, {2, 3, 5}, {4, 5}
пустых подграфов).
Взяв дополнения найденных подмножеств, получим
все максимальные пустые подграфы:
G1 = {4, 5}, G2 = {2, 5}, G3 = {1, 4}, G4 = {1, 2, 3}
39 40

10
Пример

2. Построение матрицы бинарного отношения


принадлежности вершин графа найденным подграфам.

1 2 3 4 5
G1 0 0 0 1 1
G2 0 1 0 0 1
G3 1 0 0 1 0
G4 1 1 1 0 0

3. Решение задачи покрытия.

Минимальное покрытие будет: {G1, G4}

Таким образом имеем решение: {{4, 5}, {1, 2, 3}}


41

11