You are on page 1of 202

ІВ

Ф
РА
Г
ІЇ
Р
О
Е
Т

А
И
В

Т Н К А С
Н
О

Е
О

Р Т И 7
.

С К А
И Е М
Д АТ
М

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Лариса Ернестівна.


А
М

ІВ Т
Е

АФ
Р
ЇІ Г
О Р
Т Е
ВИ
НО
О С

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Леонард Ейлер (1707-1783) —
швейцарський, німецький та
російський математик, вніс
значний внесок в розвиток
k математики, а також механіки,
фізики, астрономії та ряду
прикладних наук. Засновник
теорії графів.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
7.1 ОСНОВНІ ПОНЯТТЯ
Визначення
Граф (неорієнтований або орієнтований) G – це
упорядкована пара G=<V, E>, для якої виконані наступні
умови:
• V – це непуста множина вершин або вузлів,
• E – це множина пар (у неорієнтованому графі –
неупорядкованих, у орієнтованому - впорядкованих) вершин,
які називаються
1 a
ребрами
2
(в орієнтованому -Граф
дугами).
G=(V, E)
h
6 V={1, 2, 3, 4, 5, 6} ;
b E={a, b, c, d, e, g, h}
e
d

g 3
c

4
f
5
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 5
Відношення суміжності та інцидентності

Визначення
Вершини й ребра графа називаються також елементами графа,
число вершин у графі |V| – порядком, число ребер |E| – розміром
графа.
Вершини u й v називаються кінцевими вершинами (або просто
кінцями) ребра e={u,v}. Ребро, у свою чергу, з'єднує ці вершини.
(У орієнтованому графі вершина, з якої виходить дуга, називається її
початком, вершина, в яку заходить дуга – кінцем.)
Дві кінцеві вершини ребра називаються сусідніми (суміжними).
Два ребра називаються суміжними, якщо вони мають загальну
вершину.
Вершина називається інцидентною ребру, якщо вона є його кінцевою
вершиною.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 6


Визначення
Два ребра називаються кратними (e, g), якщо множини їхніх кінцевих вершин
збігаються.
Ребро називається петлею (h), якщо його кінці збігаються, тобто e={v,v}.
Вершина називається ізольованою (6), якщо вона не є кінцем ні для одного
ребра; висячою (5) (або листом), якщо вона є кінцем рівно одного ребра.

1 a 2
h
6
b

e
d

g 3
c

4
f
5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 7


Ступені вершин графа

Визначення
Неорієнтований граф:
Ступінь вершини v (позначається d(v) або deg(v)) - це число
ребер інцидентних v (причому петля рахується двічі).
Ступінь ізольованої вершини дорівнює 0.
Ступінь висячої вершини дорівнює 1.
Орієнтований граф:
d+(v) ― напівступень виходу (кількість дуг, які виходять з
вершини)
d−(v) ― напівступень заходу (кількість дуг, які входять у
вершину)
Петля додає одиницю і до напівступеню виходу, і до
напівступеню заходу.
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 8
Лема про рукостискання

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

1 a 2
h
6 d(1)=5
b d(2)=3
e
d
d(3)=2
g 3 d(4)=5
c d(5)=1
4 d(6)=0
f
5

m E 8   ( x)  5  3  2  5  1  0  16  2m
x X

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 10


Приклад
2

a
d+(1) =2
1 b d-(1) =0
d+(2) =1
d
c d-(2) =2
3
d+(3) =0
d-(3) =1
4
d+(4) =1
 d+(vi)=  d−(vi)=4 d-(4) =1

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 11


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 12


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 13


Приклад
2

a
Шляхи:
1 b

c (5, 1, 2) – елементарний;
d (5, 6, 3, 2) – елементарний;
3 (4, 5, 1, 4, 2) – простий
4

e
f
g Цикл:
(1, 4, 5, 1) - елементарний
h
5 6

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 14


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 15


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 16


Приклад

a b c a b c a c a b c

d e f d e f d e f d e

G G1 G2 G3

Граф G Остовний Породжений Звичайний


підграф підграф підграф
(без назви)

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 17


Визначення

Бінарне відношення на множині вершин графа, що задається


як «існує шлях з u в v», є відношенням еквівалентності, і,
отже, розбиває цю множину на класи еквівалентності, які
називаються компонентами зв’язності графа. Якщо в графі
є рівно одна компонента зв’язності, то граф зв'язний.
Усякий максимальний зв'язний підграф графа G називається
зв'язною компонентою (або просто компонентою) графа G.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 18


Визначення
На компоненті зв’язності можна ввести поняття відстані між
вершинами як мінімальну довжину шляху, що з'єднує ці
вершини.
 
Ребро графа називається мостом, якщо його видалення
збільшує число компонентів.
Вершина, видалення якої приводить до збільшення
компонентів зв’язності, називається точкою зчленування.
Множина вершин, видалення яких (всіх разом), приводить до
збільшення компонентів зв’язності, називається поділяючою
множиною.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 19


Приклад
a e b d b
c d
c d c
a e a

g e
b f g f f
G1 G2 G3

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 20


7.2 РІЗНОВИДИ ГРАФІВ
Визначення
Граф є зв’язним, якщо для будь-яких вершин u, v є шлях з u в v.
Граф є сильно зв'язним або орієнтовано зв'язним, якщо він
орієнтований, і з будь-якої вершини в будь-яку іншу є
орієнтований шлях.
1 a 2

d
e
3
c

4 Зв’язний Незв’язний
граф граф

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 21


Визначення

Граф називається деревом, якщо він зв'язний і не містить


циклів. 1 2 3

4
8

9
6 5 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Граф називається мультиграфом, якщо він містить кратні


ребра.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Граф називається псевдографом, якщо він містить петлі і кратні


ребра.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

K1 K2 K3 K4 K5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

K12 K23 K22 K33

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Граф називається однорідним (регулярним) графом ступеня
r, якщо ступені всіх вершин його однакові й дорівнюють r.
Граф третього ступеня називають кубічним; цей граф має ряд
цікавих властивостей і, зокрема, він завжди має парне число
вершин.

Граф Петерсена – регулярний


граф 3-го ступеня

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Граф називається циклічним графом, якщо ступені всіх вершин його
однакові й дорівнюють 2 (замкнутий ланцюг).
Граф називається графом-зіркою, якщо ступені всіх вершин, крім однієї,
дорівнюють 1.
Граф називається колесом на n вершинах, якщо ступені всіх вершин, крім
центральної його однакові й дорівнюють 3, а ступінь центральної
вершини - (n-1).
Циклічні графи Графи-колеса

Графи-зірки

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Граф називається планарним, якщо його можна зобразити
на площині без перетинань ребер, плоским, якщо він уже
зображений на площині без перетинань ребер.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.3 СПОСОБИ ЗАДАННЯ ГРАФІВ

• Геометрична реалізація
• Список ребер
• Матриця суміжності
• Матриця інциденцій

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 34


Визначення
Список ребер – щоб задати граф, досить для кожного ребра
вказати двохелементну множину вершин - її ми і будемо
ототожнювати з ребром.

a b

{{a,b},{b,c},{a,c},{c,d}}

c d

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Матриця
суміжності

a, якщо вершини xi та x j з ' єднують a ребер;


cij  
0, якщо вершини xi та x j не суміжні

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Матриця
суміжності
Матриця суміжності неорієнтованого графа є симетричною
й не змінюється при транспонуванні. Хоча формально кожна
вершина завжди суміжна сама із собою, у матриці
суміжності будемо ставити 0, якщо в ній немає петлі, і 2,
якщо є одна петля. Якщо граф має матрицю суміжності й не
має петель, на головній діагоналі в нього завжди стоять нулі.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Матриця
суміжності
Матриця суміжності орієнтованого графа не симетрична.
Елементи її визначаються таким чином:

a , якщо з вершини xi в x j веде a ребер;


cij  
0, в протилежному випадку

Сума елементів по рядку матриці суміжності орієнтованого графа дорівнює


ступеню напіввиходу вершини, сума елементів по стовпцю – ступеню напівзаходу
вершини.
Сума елементів по рядку (і по стовпцю) матриці суміжності неорієнтованого графа
дорівнює ступеню вершини.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
2 2

a
a
1 b
1 b
c
c d
3
d 4
3
4 e
f
g
e
f
g
h
5 6

h
5 6

  1 2 3 4 5 6   1 2 3 4 5 6
1 0 1 0 1 0 0 1 0 1 0 1 1 0
2 0 0 0 0 0 0 2 1 0 1 1 0 0
3 0 1 0 0 0 0 3 0 1 0 0 0 1
4 0 1 0 0 1 0 4 1 1 0 0 1 0
5 1 0 0 0 0 1 5 1 0 0 1 0 1
6 0 0 1 0 0 0 6 0 0 1 0 1 0

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Матрицею інциденцій графа є таблиця, що складається з n
рядків (вершини) і m стовпців (ребра). При розгляданні
неорієнтованого графа на перетині рядків і стовпців ставиться
число 1, якщо відповідна вершина й ребро інцидентні (adj) і
ставиться число 0,  якщо вони не інцидентні. Елементи матриці
інциденцій неорієнтованого графа визначаються таким чином:

1, якщо vi adj e j


bij  
0, в протилежному випадку

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
При розгляданні орієнтованого графа на перетині рядків і
стовпців ставиться число 1, якщо з вершини виходить
відповідне ребро. Якщо у вершину входить ребро, то ставлять
число (1). Якщо вершина не інцидентна ребру, то ставиться
число 0. Елементи матриці інциденцій орієнтованого графа
визначаються таким чином:
 1, якщо vi  початок дуги x j

bij   1, якщо vi  кінець дуги x j

 0 якщо vi не інцидентна дузі x j

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Очевидно, що в кожному стовпці матриці інцидентності
повинне бути тільки два ненульових числа, тому що ребро
інцидентне двом вершинам. Число ненульових елементів
кожного рядка  степінь відповідної вершини.
Матриці інцидентності прямокутні, якщо число рядків і
стовпців різні. Якщо число вершин і ребер у графі однакове, то
є квадратна матриця.
Петля у матриці інциденцій неорієнтованого графа
позначається двійкою, а у матриці інциденцій орієнтованого
графа 1.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
2 2

a
a
1 b
1 b
c
c d
3
d 4
3
4 e
f
g
e
f
g
h
5 6

h
5 6

  a b c d e f g h   a b c d e f g h
1 1 0 0 1 -1 0 0 0 1 1 0 0 1 1 0 0 0
2 -1 -1 -1 0 0 0 0 0 2 1 1 1 0 0 0 0 0
3 0 1 0 0 0 0 -1 0 3 0 1 0 0 0 0 1 0
4 0 0 1 -1 0 1 0 0 4 0 0 1 1 0 1 0 0
5 0 0 0 0 1 -1 0 1 5 0 0 0 0 1 1 0 1
6 0 0 0 0 0 0 1 -1 6 0 0 0 0 0 0 1 1

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.4 ОПЕРАЦІЇ НА ГРАФАХ

• Теоретико-множинні операції
• Операція видалення ребра
• Операція видалення вершини
• Операція введення ребра
• Операція введення вершини в
ребро
• З’єднання графів
• Композиція графів
• Декартів добуток графів

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 44


Визначення

1 1

u v
u v

2 3 4 5
2 3 4 5

6
6

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

G G(u)

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

u e v u e1 w e2 v

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

u u

w w
G

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

1 2 1 2 5
5

2
3
4 3 4 3

4
G2 G2UG1
G1

1 4 1 4

=
2 2

5 5
3
G1 G2
3
G1UG2

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Матриця об’єднання графів утворюється поелементним логічним додаванням
матриць суміжності вихідних графів.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

1 2 1 2
5

2
3
4 3 3

4
G2 G2∩G1
G1

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Матриця перетину графів утворюється поелементним логічним добутком матриць
суміжності вихідних графів.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Матриця композиції графів утворюється за допомогою алгебраїчного
множення матриць суміжності вихідних графів, у ней всі значущі числа
змінюються на 1 (операція sign).

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.5 ПЛАНАРНІСТЬ ГРАФІВ
Визначення

Геометричний граф є плоским графом, якщо він намальований


на площині так, що всі лінії, що зображують його ребра,
перетинаються тільки в точках, що відповідають вершинам
графа, тобто будь-яка точка перетинання таких ліній, є
вершина, інцидентна ребрам, які ці лінії зображують. Будь-
який граф, ізоморфний плоскому графу, називають
планарним.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 58


Приклад

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема Понтрягіна-
Куратовського

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

3
1 4

2 5

2 5 6

3 4
K3,3
K5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Визначення
Грань плоского графа (у якому ребра перетинаються тільки у
вершинах) – це така непуста замкнута підобласть площини, що
всякі дві точки області можна з'єднати простою (Жордановою)
кривою, внутрішні (не кінцеві) точки якої лежать усередині
області, не перетинаючись із ребрами графа. Інакше кажучи,
якщо площину розрізати по ребрах плоского графа, вона
розпадеться на зв'язні частини, які називають гранями.

Жордановою кривою на площині називається безперервна крива лінія без


самоперетинань. Замкнута жорданова крива – це жорданова крива, початок і
кінець якої збігаються.
Приклади жорданових кривих
2 1 2
1
1 2

G3
G2
G1

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Границею грані вважається множина ребер і вершин графа,


що належать грані. Усякий скінченний плоский граф має в
точності одну необмежену грань, що називається
зовнішньою гранню. Всі інші (обмежені) грані називаються
внутрішніми.
Якщо в плоскому графі немає циклів, то в нього є тільки
одна грань. Якщо ж цикли є, то границя кожної грані містить
цикл, але не обов'язково є циклом.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
На рисунку показаний плоский граф з п'ятьома занумерованими гранями.
Границя грані з номером 3 складається із двох циклів, а границя грані з
номером 2 крім циклу довжини 5 включає ще дерево із трьох ребер.

1
2
5

3 4

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

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
На рисунку показані два плоских укладання одного графа. У лівому
укладанні є дві грані, границі яких є простими циклами довжини 5. У
правому укладанні таких граней немає, але є грані, обмежені циклами
довжини 4 і 6.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Формула Ейлера
Для зв'язного плоского графа справедливе таке співвідношення між
кількістю вершин V, ребер E і граней F (включаючи зовнішню
грань):
V–E+F=2
Формула має багато корисних наслідків. З того, що кожна грань
обмежена не більше ніж трьома ребрами, випливає, що для
плоского графа:
E  3V - 6
тобто, при більшому числі ребер граф непланарний. Звідси
випливає, що в планарному графі завжди можна знайти вершину
степеня не більше 5.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

1
2
5

3 4

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Побудова плоскої укладки графа

Для плоского укладання графа й перевірки, чи планарний він,


зручно користуватися гама-алгоритмом.

На вхід подаються графи, що мають наступні властивості:


1. граф зв'язний.
2. граф має хоча б один цикл.
3. граф не має мостів, тобто ребер, після видалення яких граф
розпадається на дві компоненти зв’язності.

Опис алгоритма у конспекті лекцій.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.6 ЗВ’ЯЗНІСТЬ ТА
ДОСЯЖНІСТЬ
Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 70


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Зв’язність як відношення еквівалентності

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад 1 2 3 4

1 2 3 4 8 7 6 5

Граф з п’яти компонент

7 6 5
1 2 3
Граф з двох компонент

4 5 6

Зв’язний граф
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Властивості зв'язних графів

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Компоненти сильної зв'язності
орієнтованого графа

Орграф називається сильно зв'язним (strongly connected), якщо


будь-які дві його вершини сильно зв'язані.
Дві вершини s і t будь-якого графа сильно зв'язані, якщо існує
орієнтований шлях з s у t и орієнтований шлях з t в s.
Сильно зв'язними компонентами орграфа називаються його
максимальні по включенню сильно зв'язні підграфи.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
7.7 МЕТРИЧНІ
ХАРАКТЕРИСТИКИ
Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 80


Приклад
У графі різні вершини з'єднані мінімальними ланцюгами з
наступними довжинами:
d (1,2)  d (1,4)  d (1,5)  d (1,6)  d (2,3)  d (3,4)  d (3,6)  d (4,5)  1

d (1,3)  d (2,4)  d (2,5)  d (3,5)  d (4,6)  d (5,6)  d (2,6)  2,

1 2 3
звідки виходить, що діаметр
графа d(G)=2.

4 5 6

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Ексцентриситет e(v) вершини v у зв'язному графі G – це


відстань від v до найбільш віддаленої від неї вершини.

Найменший з ексцентриситетів називається радіусом r(G)


графа G.
Приклад 1 2 3

Знайдемо всі ексцентриситети графа на


рисунку:
e(1)  4, e(2)  3, e(3)  2, e(4)  3, e(5)  2, e(6)  4
5 4 6

Найменший ексцентриситет дорівнює 2, отже, радіус графа r(G)=2.


Найбільший ексцентриситет дорівнює діаметру графа: d(G)=4.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Вершина v називається центральною вершиною графа G,
якщо на ній досягається мінімум ексцентриситетів, тобто
e(v)=r(G).
Вершина v називається периферійною, якщо e(v)=d(G).
Простий ланцюг, відстань між кінцями якого дорівнює d(G),
називається діаметральним ланцюгом.
Приклад
На рисунку всі вершини, крім вершини 2, є периферійними,
(1,2,3)  діаметральний ланцюг 4 5

1 3
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Визначення
Центром графа G називається множина всіх його
центральних вершин; центр може складатися з однієї
вершини, може – із двох і більше вершин.

Приклад
У графі на рисунку два центри – вершини 3 і 5.

1 2 3

5 4 6

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.8 ЕЙЛЕРОВІ ТА ГАМІЛЬТОНОВІ
ГРАФИ

Леонард Ейлер Уільям Роуен Гамільтон

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 85


Визначення
Ейлерів цикл (ейлерова лінія, замкнутий ейлерів ланцюг,
ейлерів ланцюг) – це цикл, що містить всі ребра графа по
одному разу.
Граф, що містить ейлерів цикл, називається ейлеровим графом.
Якщо граф має розімкнутий ланцюг, що містить всі ребра цього
графа, то такий граф називається полуейлеровим.

Ейлерів граф Полуейлерів граф

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Умови існування ейлерового цикла та
ланцюга
Теорема 1.
Якщо у зв'язному графі всі вершини парні, те цей граф містить
ейлерів цикл.
Вірно й зворотне твердження: якщо граф містить ейлерів цикл, то
всі його вершини парні.

Теорема 2.
 Якщо у зв'язному графі дві вершини непарні, а всі інші – парні,
те цей граф містить ейлерів розімкнутий ланцюг.

Ейлерів цикл можна побудувати за допомогою алгоритма Фльорі


(див. конспект)

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теореми
Теорема 3.
Якщо у зв'язному графі G є 2k непарних вершин, то в ньому є k
розімкнутих ейлерових ланцюгів, у сукупності об’єднуючи всі
ребра графа G точно один раз.

Теорема 4.
 У будь-якому зв'язному графі можна побудувати замкнутий
маршрут, що проходить через кожне ребро точно два рази.

Теорема Ейлера. Граф містить ейлерів цикл тоді й тільки тоді,


коли він зв'язний і ступені всіх його вершин - парні.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Гамільтонів шлях (або гамільтонів ланцюг) – шлях
(ланцюг), що містить кожну вершину графа рівно один раз.
Гамільтонів шлях, початкова й кінцева вершини якого
збігаються, називається гамільтоновим циклом.
Гамільтонів граф – це граф, що містить гамільтонів цикл.
Граф, що містить простий ланцюг, що проходить через
кожну його вершину, називається полугамільтоновим.

Гамільтонів граф Полугамільтонів граф

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Задача знаходження ейлерова циклу з найменшою


вагою добре відома як задача китайського листоноші.

Задача знаходження гамільтонова циклу з найменшою


вагою добре відома як задача комівояжера.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Робертса-Флореса знаходження
гамільтонових циклів у графі
a
b

c
f

e d
  a b c d e f
1 b c a c c a
2 – e d f d b
3 – – – – – c

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Робертса-Флореса

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Робертса-Флореса

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

1
2

1 2

7 7
3

6
5 3
6

4
4
5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Достатні умови існування гамільтонового
циклу

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Достатні умови існування гамільтонового
циклу

Якщо в графі є висяча вершина (зі ступенем, рівним


одиниці), то гамільтонів цикл у ньому відсутній.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Цикломатика графів

Визначення
Деревом називається зв'язний граф, що не
містить жодного циклу.
Хордою кістяка D у зв'язному графі G 1 2

називається всяке ребро графа, яке не


приналежить D. Будь-який підграф, що 6 7 3

складається з хорди й кістяка, має точно один


цикл. 5 4

Кодерево графа – такий підграф графа, що


містить всі його вершини й ті ребра, які не
ввійшли в кістяк.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

1 3

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Властивості цикломатичного числа

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Властивості цикломатичного числа

Сукупність циклів графа називається лінійно-


незалежною за модулем 2, якщо жоден цикл із
даної сукупності не можна одержати за допомогою
лінійної комбінації за модулем 2 інших циклів.
Цикломатичне число графа постійно й дорівнює
числу лінійно-незалежних циклів графа.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад Цикломатична матриця
a b c d e f m g h
a b 0 1 1 0 0 0 0 1 1 R1
1 0 0 0 0 1 1 1 0 R2
g
1 0 0 1 1 1 0 1 1 R3
f c
m h C (G ) 
0 1 1 1 1 0 1 1 0 R4
e d 1 1 1 0 0 1 1 0 1 R5
0 0 0 1 1 0 1 0 1 R6
1 1 1 1 1 1 0 0 0 R7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

s1 s2 s4 5 s5
s3 y4 y5
4 6
1 s6
y6
y3 7

y1

2 y2
3

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.9 ДЕРЕВА
Деревом називається зв'язний неорієнтований граф без
циклів (ациклічний).

Ациклічний граф, який містить кілька компонент


зв'язності (складається з декількох дерев), називають
лісом.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 113


Визначення
Коренем неорієнтованого дерева називають вершину з
мінімальним порядковим номером.
Якщо в дереві T корінь заданий (тобто воно зображено
зверху вниз, і в ньому є сама верхня вершина), то дерево T
називають кореневим.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 114


Визначення

Листами неорієнтованого дерева (висячими вершинами)


називаються вершини, яким інцидентне лише одне
ребро.
Вузлом (внутрішньою вершиною) довільного дерева
називають вершину, яка не є коренем, і не є листом.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 115


Визначення
 Маршрут в будь-якому дереві називають гілкою.
В орієнтованому дереві, як і в графі, ребра називають дугами.
Коренем орієнтованого дерева називають вершину,
напівстепінь заходу якої дорівнює нулю.
Листами орієнтованого дерева (висячими вершинами)
називаються вершини, напівстепені заходу яких
дорівнюють одиниці, напівстепені виходу дорівнюють
нулю.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 116


Властивості дерев

Для графа G (v, e) еквівалентні наступні твердження:


1) G - дерево;
2) G - зв'язний граф, | e | = | v | -1, де e - кількість ребер, v-
кількість вершин графа G. Для лісу - | e | = | v | - k, де k –
кількість компонент зв’язності;
3) G - ациклічний граф, | e | = | v | -1;
4) G - граф, в якому дві вершини з'єднуються єдиним
ланцюгом;
5) G - ациклічний граф, і додавання нового ребра
призводить до появи точно одного циклу.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 117


Визначення

При описі співвідношень між вузлами дерева


використовується термінологія, прийнята в
генеалогічних деревах.
У дереві (або піддереві) всі вузли є нащадками його кореня, і
навпаки, корінь є предок всіх своїх нащадків.
Якщо існує дуга, що входить з вершини А в вершину В, то А
називається батьком вершини В, а В - син А.
Корінь є батьком коренів його піддерев, які в свою чергу є
синами кореня.
Вершини, що є синами одного батька називаються
братами.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 118


Визначення

Піддеревом дерева Т називають дерево Т1, яке містить


частину вершин дерева Т, причому коренем дерева Т1
може бути будь-яка інша вершина дерева Т.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 119


Перелічення графів та дерев

Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 120


Перелічення графів та дерев
Приклад
На рисунку зображені всі позначені графи із числом
вершин n=3; їхня кількість дорівнює 8.
1 1 2 1 3 1

2 3 2 3 2 3

4 1 5 1 6 1

2 3 2 3 2 3

1 1
7 8

2 3 2 3

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 121


Перелічення графів та дерев

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 122


Перелічення графів та дерев

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 123


Перелічення графів та дерев

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 124


Задача Келі
Нехай для деякої множини М міст відома вартість с(a,b)
споруди дороги між будь-якими двома містами a, b  M. Яка
повинна бути мережа доріг між містами, що входять в М,
щоб по ній можна було проїхати з будь-якого міста aM в будь
яке місто bM і щоб вартість цієї мережі була мінімальною?
Теорема Келі 𝑛− 2
На n вершинах можна побудувати 𝑛 дерев.
Приклад
n=4
nn-2 = 42 = 16.
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3

1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 125


Визначення

Кореневе дерево називається n-арним, якщо кожна


внутрішня вершина має не більше n дітей.
Порядком дерева називається максимальна кількість
нащадків вершин даного дерева.
Кореневе дерево називається повним n-арним деревом, якщо
кожна внутрішня вершина має рівно n дітей.
Кореневе дерево називається бінарним деревом, якщо кожна
внутрішня вершина має не більше двох дітей (n = 2).

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 126


Визначення
Рівнем вершини vi в кореневому дереві називається
довжина шляху від кореня дерева до даної вершини.
Корінь має рівень, який дорівнює нулю.
Висотою h кореневого дерева T називається величина, що
дорівнює максимальному з рівнів вершин.
Глибина (кількість рівнів) d дерева T дорівнює кількості
вершин, які лежать на максимальній гілці від кореня до
листя.

hB= 1 hH= 2
hC= 2 hI= 1
hD= 3 hJ= 2
hE= 2 hK= 2
hF= 2 h= 3
hG= 1 d= 4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 127
Приклад
Всі кореневі дерева із числом вершин 3 та 4.

n=3 n=4

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Остови (кістяки) графа

Визначення
Застосуємо операцію руйнування циклів до кожного
циклу графа, зберігаючи зв’язність. Тоді в графі не
залишиться циклів і вийде зв'язний частковий граф,
що є деревом.
Отримане дерево називається остовом (кістяком),
тобто кістяком називається зв'язний частковий граф
даного зв'язного графа G, що містить всі вершини
графа G, але не має циклів.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 129


Остови (кістяки) графа

2 2 2

1 3 1 3 1 3

4 4 4

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 130


Число остовів графа

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 131


Приклад
x4
2 1 0 1
1 3 1 1
K (G ) 
0 1 2 1
x1
1 1 1 3
x2 x3

3 1 1
2 1 1 1 1 2
K1,1   1 2  1  3 det  (1) det  (1) det  35  4  3  8
1 3 1 3 1 1
1 1 3
Існує вісім остовних дерев графа G.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Граф G, у якому ребрам (дугам) приписані ваги,


називається зваженим.
Вагою підграфа з G називається сума ваг ребер
підграфа.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 133


Побудова остова мінімальної ваги.
Алгоритм
Краскала

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 134


Алгоритм
Крок +/-
Краскала Ребро Вартість
1 (1, 7) 1 включаємо
Приклад 2 (3, 4) 3 включаємо
20 3 (2, 7) 4 включаємо
1 2 4 (3, 7) 9 включаємо
23 1 15   (2, 3) 15 утворить цикл, не
4 включаємо
36 9   (4, 7) 16 утворить цикл, не
6 7 3 включаємо
25 16 5 (1, 5) 17 включаємо
28 3   (1, 2) 20 утворить цикл, не
17 включаємо
5 4
6 (1, 6) 23 Включаємо. Всі
вершини включені в
Будуємо таблицю, у яку заносимо всі ребра з кістяк. Кінець.
їх вартостями в порядку зростання. На   (5, 7) 25  
кожному кроці алгоритму включаємо в   (5, 6) 28  
остовне дерево ребро графа мінімальної   (6, 7) 36  
вартості, перевіряючи, чи не утвориться
цикл із уже включеними в дерево ребрами.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 135


Алгоритм
Краскала
Приклад
20 20
1 2 1 2
23 1 15 23 1 15
4 4
36 9 36 9
6 7 3 6 7 3

25 16 25 16
28 3 28 3
17 17
5 4 5 4
Шаг 1 Шаг 2
20 20
1 2 1 2
23 1 15 23 1 15
4 4
36 9 36 9
6 7 3 6 7 3

25 16 25 16
28 3 28 3
17 17
5 4 5 4
Шаг 3 Шаг 4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 136
Алгоритм
Краскала
Приклад
20 20
1 2 1 2
23 1 15 23 1 15
4 4
36 9 36 9
6 7 3 6 7 3

25 16 25 16
28 3 28 3
17 17
5 4 5 4
Шаг 5 Шаг 6

eGT
 c(e)  57

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 137


Побудова остова мінімальної ваги.

Алгоритм Прима
20
1 2
Обираємо ребро з мінімальною
23 15
1
4
вагою. Включаємо його в остів.
36 9 Додаємо до нього суміжне ребро з
6 7 3
мінімальною вагою. Продовжуємо
25 16
28 3 додавати ребра, суміжні
17
5 4 отриманому на попередньому
кроці остову. Закінчуємо, коли всі
вершини включені в остів.
На кожному кроці отримуємо
зв’язний підграф.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 138


Побудова остова мінімальної ваги.

Алгоритм Борувки
20 Для кожної вершини обираємо так
1 2
зване «безпечне» ребро –
23 1 15
4 інцидентне вершині ребро з
6
36
7
9
3
мінімальною вагою. Включаємо усі
«безпечні» ребра в остів.
25 16
28 3 З’єднуємо отримані підграфи
17
5 4 ребрами з мінімальною вагою.
Закінчуємо, коли всі вершини
включені в остів.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 139


Кодування дерев. Код Прюфера

1) Вводиться послідовність Np = (1, 2,..., р), де p


– кількість вершин графа.
2) Обирається висяча вершина з найменшим
номером, ця вершина видаляється з послідовності
Np=(1,2,...,р), а номер зв’язаної з нею вершини
записується.
3) Цей процес повторюється поки не отримаємо
послідовність а(Т)=(a1,а2,...,ар-2).

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 140


Приклад

3 5

1 8 7 10 13

2 4 6 9 11 12

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 141


Декодування дерев. Код Прюфера
1)Знаходимо загальну кількість вершин (кількість
вершин в коді дерева + 2);
2)Знаходимо висячі вершини (яких немає в коді);
3)Знаходимо висячу вершину з мінімальним номером і
з’єднуємо її з першою невикористаною
вершиною в коді. Якщо обрана вершина не зустрічається
більше у послідовності коду, записуємо її у послідовність
листів;
4) Повторюємо пункт 3), до використання всіх листів;
5)Останню вершину коду з’єднуємо з листом з
максимальним номером.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 142


Приклад
Дано код: 1, 1, 1, 5. Необхідно побудувати дерево.
Вирішення.
1. Загальна кількість вершин: 4+2=6.
2. Знаходимо висячі вершини: 2, 3, 4, 6
Код дерева:
Висячі вершини:
1 5

2 3 4 6
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 143
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Бінарні дерева

Бінарним (двійковим) деревом Т називається


упорядкований дерево, з кожної вершини якого може
виходити не більше двох дуг.

2 9

3 6 10

4 5 7 8 11 12

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 147


Бінарні дерева
Кожна вершина бінарного дерева може мати або двох синів
- лівого і правого, або мати тільки лівого сина, або
тільки правого сина, або не мати жодного сина.

Піддерево, корінь якого є лівим сином вершини v,


називається лівим піддерево вершини v.

Піддерево, корінь якого є правим сином вершини v,


називається правим піддерево вершини v.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 148


Правила обходу дерев

Порядок обхода

Прямой Обратный (симметричный) Концевой

1. посетить корень 1. левое поддерево 1. левое поддерево


2. левое поддерево 2. посетить корень 2. правое поддерево
3. правое поддерево 3. правое поддерево 3. посетить корень

Синонимические названия
1. «в глубину » 1. «в ширину» снизу вверх
2. лексикографический
3. внутренний

Форма задания
Префиксная Инфиксная Постфиксная

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 149


ОБХОД БИНАРНОГО ДЕРЕВА В ПРЯМОМ
ПОРЯДКЕ

4 3

6 7 8 5

2 9

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 150


ОБХОД БИНАРНОГО ДЕРЕВА В СИММЕТРИЧНОМ
ПОРЯДКЕ

1
4 3

6 7 8 5

2 9

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 151


ОБХОД БИНАРНОГО ДЕРЕВА В КОНЦЕВОМ
ПОРЯДКЕ

4 3

6 7 8 5

2 9

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 152


ЗАПИСЬ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

* -

6 ln 8 5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 153


ЗАПИСЬ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

1. Построим концевые вершины,


соответствующие переменным и -
константам заданного выражения.
2. Определим приоритет операций в * /
выражении.
3. В соответствии с приоритетом
операций добавляем в дерево 8 ln 5 *
вершины, соответствующие
операциям и соединяем их с + х х
концевыми вершинами.
х 1

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 154


7.10 РОЗФАРБУВАННЯ ГРАФІВ
Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 155


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема про чотири фарби
Кожен плоский граф можна уявити собі як деяку географічну карту, де межі -
це країни, а нескінченна грань - навколишній океан. На такій карті всі країни
і океан розфарбовуються так, щоб їх можна було відрізнити один від одного.
Для цього країни з спільним кордоном мають бути розфарбовані в різні
кольори. Якщо в нашому розпорядженні є достатня кількість фарб, це не
складе ніяких труднощів. Набагато складніше вирішити питання про
найменшій кількості фарб, достатнього для такого розфарбовування країн
даної карти.
Інше застосування розфарбування в графах
може бути використано при: розподілі
пам'яті в ЕОМ; проектуванні мереж
телевізійного мовлення; розподілі частот і
областей стільникових систем зв'язку.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема про чотири фарби
Теорема про чотири фарби - теорема, яка стверджує, що будь-яку
розташовану на площині або на сфері карту можна розфарбувати не більше
ніж чотирма різними кольорами (фарбами) так, щоб будь-які дві області зі
спільною ділянкою кордону були розфарбовані в різні кольори.

Точне формулювання гіпотези опублікував Артур Келі (1878).


Довести теорему довгий час не вдавалося. Протягом цього часу було
зроблено безліч спроб як доказів, так і спростування, і ця задача
носила назву проблеми чотирьох фарб.
Теорема про чотири фарби була доведена в 1976 році Кеннетом
Аппелем і Вольфгангом Хакеном з університету Ілінойса. Це була
перша велика математична теорема, доведена за допомогою
комп'ютера.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

Питання про визначення мінімального числа фарб, потрібних


для правильного розфарбування графа, є однією з перших
задач теорії графів. При цьому граф, який розглядається, має
бути повністю неорієнтовний без кратних ребер і петель.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема Брукса

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема
Карта G є 2-розфарбованою тоді й тільки тоді, якщо G являє
собою ейлерів граф.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


ЗАДАЧА СОСТАВЛЕНИЯ РАСПИСАНИЙ
Предположим, что в учебном центре надо провести несколько занятий за
кратчайшее время.
Длительность всех занятий одинакова, например, один час. Некоторые
занятия не могут проводиться одновременно, например, это занятия в
одной и той же учебной группе (по разным предметам), или занятия
проводит один и тот же преподаватель.
Для решения задачи построим граф G, вершинам которого
взаимнооднозначно соответствуют занятия. Две вершины соединены
ребром, если соответствующие занятия нельзя проводить
одновременно.
Ясно, что правильная раскраска графа G определяет расписание,
удовлетворяющее требованиям несовместимости по времени:
занятия, соответствующие вершинам, окрашенным одинаково, можно
проводить одновременно.
Справедливо и обратное, любое такое расписание определяет
правильную раскраску графа G. Следовательно, кратчайшее время
необходимое для проведения всех занятий равно χ(G), а из
оптимальной
ХНУРЕ, раскраски
кафедра Штучного графа доц.
інтелекту, G получается
Чала Л.Е. необходимое расписание.
ЗАДАЧА РАСПРЕДЕЛЕНИЯ РЕСУРСОВ
Необходимо выполнить некоторое множество V={v1,v2,
…,vn} работ.
Имеется множество S={s1,s2,…,sr} ресурсов, требуемых для
выполнения этих работ.
 Каждая работа использует часть указанных ресурсов.
 Одновременно могут выполняться работы, использующие разные
ресурсы.
 Все работы выполняются за одно и то же время t.
Нужно распределить ресурсы так, чтобы общее время
выполнения всех работ было минимальным.
Рассмотрим граф G с множеством вершин V. Две
различные вершины v и v’ графа G смежны тогда и
только тогда, когда для выполнения работ v и v’
требуется хотя бы один общий ресурс.
Наименьшее время выполнения всех работ равно χ(G)·t.
Оптимальная раскраска графа G определяет
распределение ресурсов.
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
ЗАДАЧА ЭКОНОМИИ ПАМЯТИ
Предположим, что необходимо написать программу для вычисления функции φ(х1,x2,…,xn).
Вычисление этой функции разбито на ряд блоков, у каждого из блоков имеются входные
и выходные переменные.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Предположим, что значения переменной занимают одну ячейку памяти.
Задача состоит в том, чтобы определить наименьшее число ячеек памяти,
необходимое для хранения указанных в блок – схеме переменных.
Решить эту задачу можно следующим образом. На множестве переменных V={a,b,
…,g,h} введем структуру графа: две переменных соединим ребром, если
времена их жизни пересекаются. Полученный граф будем называть графом
несовместимости переменных.
Значения переменных не могут занимать одну ячейку памяти тогда и только
тогда, когда переменные соединены ребром в графе несовместимости.
Следовательно, задача экономии памяти сводится к нахождению оптимальной
раскраски графа несовместимости.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад

Граф на рисунку може бути


розфарбований 3 кольорами 12
способами.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Хроматичний поліном
Хроматичний поліном рахує число можливих варіантів
розмальовки графа з використанням не більше ніж заданого
числа кольорів.
Наприклад, граф на попередньому рисунку може бути
розфарбований 12 способами з використанням 3 кольорів.
Двома кольорами він не може бути пофарбований в принципі.
Використовуючи 4 кольори, отримуємо 24 + 4 * 12 = 72
варіантів розфарбування: при використанні всіх 4 кольорів, є 4!
= 24 коректних способу (кожне присвоєння 4 кольорів для будь-
якого графа з 4 вершин є коректним); і для кожних 3 кольорів з
цих 4 є 12 способів розфарбування.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм послідовного розфарбування
Упорядковуємо вершини графа G: V = {v1, v2, ..., vn}. Вершину
v1 фарбуємо першою фарбою. Припустимо, що вершини
v1, ..., vi вже розфарбовані і на це використано k фарб.
Якщо на розфарбовані вершини, суміжні з vi + 1, використані
всі фарби, то vi + 1 розфарбовуємо k + 1 фарбою.
Якщо серед k фарб знайдеться фарба, яку не використано для
вершин, суміжних з vi + 1, то вершину vi + 1 фарбуємо цією
фарбою.
8 1
2 11
1
2
7
9 3
12
4
3 4
6
10
5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Розфарбування графа по ступеням вершин

1. Впорядкувати вершини за ступенями починаючи з найбільшою мірою


вершини.
2. Задати початкове значення лічильника k = 1.
3. Першу вершину фарбуємо в колір k і заносимо в букет B(k).
4. Переглядаємо наступну незабарвлену вершину, якщо вона не є
суміжною з вершинами букета B (k), то фарбуємо її в колір k, інакше
пропускаємо.
5. Перевіряємо кількість переглянутих вершин, якщо in (i- номер
поточної вершини), то повернення в п.4, інакше k = k + 1 і перегляд
списку починається заново виключаючи пофарбовані вершини.
6. Перевірка на закінчення пошуку: якщо не пофарбованих вершин не
залишилося, то кінець пошуку, інакше п.5.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Розфарбування графа по ступеням вершин
2 3 8
Вершина Степень B(1) B(2) B(3) B(4)
vi 
4 5 4       6 9
1 4
6 5   6    
3 4     3  
2 4   2     5 7
5 4     5  
7 4       7
8 3 8      
9 3     9  
1 2 1      
Колір    1 2 3 4

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.11 ПОШУК НАЙКОРОТШИХ
ШЛЯХІВ
Задача про найкоротший шлях.
Нехай задана мережа з n + 1 вершини, тобто орієнтований граф, в якому
виділено дві вершини - вхід (нульова вершина) і вихід (вершина з номером
n).
Для кожної дуги задані числа, звані довжинами дуг.
Довжиною шляху (контуру) називається сума довжин дуг, які входять до
нього (якщо довжини дуг не задані, то довжина шляху (контуру)
визначається як число назв дуг).
Завдання полягає в пошуку найкоротшого шляху (шляху мінімальної
довжини) від входу до виходу мережі.
Відомо, що для існування найкоротшого шляху необхідно і достатньо
відсутності в мережі контурів негативною довжини.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 175


Алгоритми пошуку найкоротших шляхів

• Алгоритм Дейсктри;
• Алгоритм Флойда;
• Алгоритм Данцига;
• Алгоритм А*
• тощо...

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
Алгоритм заснований на приписуванні вузлам тимчасових
або постійних міток.
Спочатку тільки джерелу приписується постійна позначка,
що дорівнює нулю.
Всім іншим вузлам приписуються тимчасові мітки, відповідні
вазі дуги з джерела в розглянутий вузол.
Якщо такою дуги немає, то вузлу приписується тимчасова
мітка, що дорівнює нескінченності.
Для визначення найближчого до джерела вузла виберемо
тимчасову мітку з мінімальним значенням і оголосимо її
постійною. Потім, до тих пір, поки стоку буде приписана
постійна позначка, необхідно виконати наступне:

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
Розглянути вузли з тимчасовими мітками, що залишилися.
Порівняти величину кожної тимчасової мітки з сумою
величин останньої з постійних міток і ваги дуги, що веде з
відповідного постійно позначеного вузла в розглянутий.
Мінімальна з двох порівнюваних величин визначається як
нова тимчасова мітка розглянутого вузла.
Серед тимчасових міток вибрати мінімальну і оголосити її
постійною.
Після того, як сток отримує постійну помітку, алгоритм
припиняє роботу, при цьому мінімальна сума ваг дуг, що
з'єднує джерело і стік, дорівнює постійної мітці стоку.
Шуканий ланцюг складається з дуг, для кожної з яких різниця
між постійними мітками її кінцевих вузлів дорівнює вазі цієї
дуги.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
Приклад 3
8
6
1
9

9
1 2 4
2
Використовуючи алгоритм Дейкстри, в 5 4
2 5 8
графі знайти найкоротші відстані від 1 8
вершини 1 до всіх інших вершин. 7
1
6 4
2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

З усіх міток вибираємо мінімальну, записуємо вершину з


мінімальною міткою в наступний стовпець. В даному випадку
це вершина 2.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Алгоритм Дейкстри
4 3
3 6 9

Приклад 1
8
2 2
1
9
4

5 4
2 5 8
1 8
7
1 4
6 2
7 3
1 4 7

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


7.12 ТЕЧІЇ В ТРАНСПОРТНИХ
МЕРЕЖАХ
Визначення
Транспортною мережею називається пара T=(G,C), де G – зважений
орграф, що задовольняє наступним умовам:
а) немає петель;
б) існує тільки одна вершина, що не має жодного прообразу – це
джерело;
в) існує тільки одна вершина, що не має жодного образу – це стік.
C – функція пропускних здатностей дуг, що є додатною дійсною
функцією, яка визначена на множині дуг графа, тобто кожній дузі v графа
поставлено у відповідність додатне число C(v), яке називається
пропускною здатністю дуги v.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е. 188


Визначення
Вершина, що не має жодного прообразу, називається входом
мережі або джерелом, а вершина, що не має жодного
образу, називається виходом мережі або стоком.
У транспортній мережі існує одне джерело й один стік.
Випадки, коли є кілька джерел або кілька стоків, можуть
бути зведені до розглянутого випадку введення
узагальнених (фіктивних) джерела й стоку.
6 7
2 6 10

5 2 5 3 3 9
9
5 5
8 3 7 11 7
2 3
1 4 5 1 14
9 6
6 7
4 8 12

6 2 6 3 1
3 9

5 9 13
4 5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Течією у транспортній мережі T називається невід’ємна дійсна
функція, яка визначена на множині дуг, що задовольняє умовам:
– обмеженості: потік по будь-якій дузі мережі не перевершує
пропускної здатності цієї дуги;
– збереження: сумарний потік, що заходить у будь-яку вершину
мережі (крім джерела й стоку) дорівнює сумарному потоку, що
виходить із цієї вершини.
6;6 7;6;7
2 6 10

5;1 2;1 5 3;2


9;6;7 3 9;6;7;9
5;5 5;5
8;5;7 3 7 11 7;5

2;2 3
1 4 5;2 1 14
9;6 6;6
6;6 7;6
4 8 12

6;4 2 6 3 1
3 9;4

5 9 13
4;4 5;4

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Визначення
Дуга мережі називається насиченою, якщо течія по цій дузі дорівнює
пропускної здатності цієї дуги.
Течія по шляху називається повною, якщо хоча б одна дуга шляху насичена.
Як згадувалося вище, течія у мережі – це функція, яка визначена на множині
дуг.
Величиною течії називається сума значень цієї функції за всіма вихідними
дугами мережі (вихідні дуги мережі – це дуги, які інцидентні стоку).
Поняття течії й величини течії в мережі часто плутають, однак між ними
існує розходження: течія – це функція, а величина течії – число.
6;6 7;6;7
2 6 10

5;1 2;1 5 3;2


9;6;7 3 9;6;7;9
5;5 5;5
8;5;7 3 7 11 7;5

2;2 3
1 4 5;2 1 14
9;6 6;6
6;6 7;6
4 8 12

6;4 2 6 3 1
3 9;4

5 9 13
4;4 5;4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Визначення

Розрізом мережі називається множина дуг, якій належить джерело,


і не належить стік. Розріз – це мінімальна множина дуг,
видалення яких “розриває” всі шляхи, що з'єднують джерело й
стік.

Пропускною здатністю розрізу називається число, яке дорівнює


сумі пропускних здатностей дуг цього розрізу. Розріз називається
мінімальним, якщо має найменшу пропускну здатність.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Задача знаходження мінімального розрізу

Відшукання мінімального розрізу – одна з основних задач аналізу


транспортних мереж.
Якщо граф скінченний, то мінімальний розріз графа може бути
знайдений перебором всіх розрізів, але цей шлях, звичайно,
неприйнятний для досить великих графів. Виявляється, що
мінімальний розріз можна відшукати за допомогою
максимальної течії мережі на підставі теореми Форда -
Фалкерсона.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Теорема Форда - Фалкерсона

У будь-якій транспортній мережі величина будь-якої максимальної


течії дорівнює пропускної здатності будь-якого мінімального
розрізу.
Відомо конструктивне доведення цієї теореми, на підставі якого
побудований викладений алгоритм.
Постановка задачі: знайти максимальну течію у транспортній
мережі. 2
6
6
7
10

5 2 5 3 3 9
9
5 5
8 3 7 11 7

2 3
1 4 5 1 14
9 6
6 7
4 8 12

6 2 6 3 1
3 9

5 9 13
4 5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Знайти максимальний потік в транспортній мережі,
зображеної на рисунку

6 7
2 6 10

5 2 5 3 3 9
9
5 5
8 3 7 11 7

2 3
1 4 5 1 14
9 6
6 7
4 8 12

6 2 6 3 1
3 9

5 9 13
4 5

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Для знаходження максимальної течії скористаємося алгоритмом
Форда-Фалкерсона. Знайдемо сумарну пропускну здатність дуг,
що виходять з джерела (вершина 1) і сумарну пропускну
здатність дуг, що входять в стік (вершина 14).

Значить, максимальна течія в цій мережі не може перевищувати


31.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Далі розбиваємо мережу на прості непересічні ланцюги
(довільним чином). В даному випадку зручно зробити це в
такий спосіб:
1 – (1, 2, 6, 10, 14);
2 – (1, 3, 7, 11, 14);
3 – (1, 4, 8, 12, 14);
4 – (1, 5, 9, 13, 14).
Для кожного з ланцюгів знаходимо максимальну течію, виходячи
з пропускної здатності дуг: наприклад, в першому ланцюгу - (1,
2, 6, 10, 14) - мінімальна пропускна здатність у дуги (2,6) - 6,
тому течія по цій дузі не може перевищувати 6-ти.

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
На рисунку показана мережа, в якій синім кольором
позначені прості ланцюги, а поруч з пропускними
здатностями дуг позначено значення течії. Дуги, у яких
пропускна здатність дорівнює течії, називаються
насиченими.
На першій ітерації2 отримуємо
6;6
6
сумарну
7;6 течію:
10
6+5+6+4=
21.
5 2 5 3 3 9;6
9;6
5;5 5;5
8;5 3 7 11 7;5

2 3
1 4 5 1 14
9;6 6;6
6;6 7;6
4 8 12

6;4 2 6 3 1
3 9;4

5 9 13
4;4 5;4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Приклад

На наступних ітераціях будемо намагатися


збільшити величину течії.
Для цього вибираємо інші ланцюги, в яких немає
насичених дуг. Далі на рисунках зображені
наступні ітерації. (Над дугою поруч з
пропускними здатностями дуг через «;»
позначаємо нове значення течії).

ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.


Приклад
Друга ітерація: вибираємо ланцюг, по якому можна
збільшити течію: (1, 2, 3, 6, 10, 14). Течію можна збільшити
на 1 (тому що пропускна здатність дуги (6, 10) дорівнює 7).
На другий ітерації потік збільшився на 1, і дорівнюватиме
22.
6;6 7;6;7
2 6 10

5;1 2;1 5 3 3 9;6;7


9;6;7
5;5 5;5
8;5 3 7 11 7;5

2 3
1 4 5 1 14
9;6 6;6
6;6 7;6
4 8 12

6;4 2 6 3 1
3 9;4

5 9 13
4;4 5;4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Приклад
Третя ітерація: вибираємо ланцюг (1, 3, 8, 7, 10, 14). По цій
дузі ми можемо пропустити течію величиною 2 (тому що
пропускна здатність дуги (3,8) дорівнює 2). Отримуємо
сумарну течію, рівний 22 + 2 = 24. На рисунку зображена
мережа з течією, рівною 24.
6;6 7;6;7
2 6 10

5;1 2;1 5 3;2


9;6;7 3 9;6;7;9
5;5 5;5
8;5;7 3 7 11 7;5

2;2 3
1 4 5;2 1 14
9;6 6;6
6;6 7;6
4 8 12

6;4 2 6 3 1
3 9;4

5 9 13
4;4 5;4
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.
Приклад
Четверта ітерація: вибираємо ланцюг (1, 4, 9, 13, 14). По цій
дузі ми можемо пропустити течію величиною 1 (тому що
пропускна здатність дуги (9, 13) дорівнює 5). Отримуємо
сумарну течію, рівну 24 + 1 = 25. На рис. 5 зображена
мережа з течією, рівною 25.
6;6 7;6;7
2 6 10

5;1 2;1 5 3;2


9;6;7 3 9;6;7;9

5;5 5;5
8;5;7 3 7 11 7;5

2;2 3
1 4 5;2 1 14
9;6;7 6;6
6;6 7;6
4 8 12

6;4 2;1 6 3 1
3 9;4;5

5 9 13
4;4 5;4;5
ХНУРЕ, кафедра Штучного інтелекту, доц. Чала Л.Е.

You might also like