![](/user_photo/2706_HbeT2.jpg)
- •Розділ VII Теорія графів
- •7.1. Основні поняття теорії графів.
- •7.2. Подання графа за допомогою матриці інцидентності.
- •7.3. Подання графа за допомогою матриці суміжності графа.
- •7.4. Визначення локальних степенів вершин графа. Повні графи.
- •7.5. Ізоморфізм графів.
- •7.6. Частини графа, суграфи й підграфи.
- •7.7. Графи і бінарні відношення.
- •7.8. Маршрути, шляхи, ланцюги та цикли.
- •7.10. Дерева.
- •7.11. Кістякове дерево зв’язного графа.
- •7.12. Ейлерові графи
- •7.13. Гамільтонові графи.
- •7.14. Планарність графів.
- •7.15. Задачі пошуку маршрутів в графі.
- •7.16. Пошук відстані між вершинами графа.
- •7.17. Мінімальні шляхи у зважених орієнтованих графах.
- •Контрольні запитання
- •Задачі й вправи
7.10. Дерева.
Означення
7.30. Звичайний
граф
називається деревом, якщо він є зв'язним
і не має циклів, а граф
,
всі компоненти зв’язності якого є
деревами − лісом.
Приклад 7.15. Графи, зображені на рис.7.18, є деревами.
|
|
а) |
б) |
Рис.7.18 |
Розглянемо деякі властивості дерев.
Означення
7.31. Вершина
графа
називається кінцевою (такою що висить),
якщо її локальний ступінь
.
Ребро, яке інцідентне кінцевої вершини,
називається кінцевим.
Очевидно, якщо дерево має більш за одну вершину, то воно має хоча б одне кінцеве ребро, якщо дерево має більш двох вершин, то серед них є некінцеві.
Можна сказати, що такі твердження є еквівалентними:
1)
граф
− дерево;
2)
граф
є зв'язним і не має простих циклів;
3)
граф
є зв'язним, і
;
4)
для будь-яких двох різних вершини графа
існує єдиний (і притому простий) ланцюг;
5)
граф
не містить циклів, але, додаючи до нього
будь-яке нове ребро, дістаємо рівно один
і притому простий цикл.
В
дереві
вибирають вершину
,
яку називають коренем дерева
.
На рис.7.13 а) і б) наведено приклади двох
ізоморфних графів – дерев, які
відрізняються за вибором кореня.
Нехай
– деяка вершина дерева
з коренем
,
– множина вершин, які зв’язані з коренем
ланцюгами, що містять вершину
.
Ця множина породжує підграф
,
який називається гілкою вершини
у дереві з коренем
.
Означення
7.32.
Нехай
є дерево
.
Вершинами типа 1 називається кінцеві
вершини. Якщо з дерева
вилучити всі кінцеві вершини разом з
інцідентними ребрами, то в частині
графа, що залишилася, є кінцеві вершини.
Вони називаються вершинами типа 2 дерева
.
Аналогічно визначаються вершини типа
3, 4, …
Приклад
7.16.
В
наведеному на рис.7.18 б. графі гілкою
вершини
дерева з коренем
є частина графа –дерево на вершинах
.
В початковому графі вершини
– типа 1.
– типа 2.
– типа 3.
Означення
7.33.
Нехай
– звичайний граф. Його цикломатичним
числом називається число
,
де
– кількість зв’язних компонент графа;
– кількість його ребер, а
–
кількість вершин.
Цикломатичне число звичайного графа є невід’ємним.
Цикломатичне число дерева дорівнює нулю, цикломатичне число лісу – сумі цикломатичних чисел своїх зв’язних компонент-дерев, тобто також дорівнює нулю.
7.11. Кістякове дерево зв’язного графа.
Означення
7.34.
Кістяковим деревом зв’язного графа
називається будь-яка його частина, що
містить усі вершини графа
і є деревом.
Нехай
− зв’язний граф. Тоді кістякове дерево
графа
(якщо воно існує) має містити
ребер, і є результатом вилучення з
рівно
ребер. Покажемо існування кістякового
дерева для довільного зв’язного
псевдографа
,
описавши алгоритм його вибору.
Алгоритм включає такі кроки:
Крок
1. Вважаємо
.
Вибираємо в
довільну вершину
,
що утворює підграф
псевдо графа
,
який є деревом.
Крок
2. Якщо
,
де
,
то задачу розв’язано, і
− шукане кістякове дерево псевдографа
.
В іншому випадку переходимо до кроку
3.
Крок
3. Нехай уже побудовано дерево
,
що є підграфом псевдографа
і містить деякі вершини
,
де
.
Будуємо граф
,
додаючи до графа
нову вершину
,
суміжну в
з деякою вершиною
графа
,
та нове ребро, інцідентне вершинам
і
(внаслідок зв’язаності
та тієї обставини, що
,
вершина
обов’язково знайдеться). Очевидно, граф
також є деревом. Прирівнюємо
і переходимо до кроку 2.
Означення
7.35.
Граф
називається зваженим, якщо
на множині його ребер означено вагову
функцію
,
тобто кожному ребру
зв'язного графа
поставлена у відповідність величина
– вага ребра
.
Наведемо
алгоритм, що дає змогу знайти
кістякове дерево графа
з мінімальною сумою довжин ребер, які
містяться
в ньому. Кістякове дерево зв'язного
навантаженого графа
з мінімальною сумою ваг ребер, що
містяться
в ньому, будемо називати
мінімальним кістяковим деревом графа
.
Алгоритм включає такі кроки:
Крок
1. Виберемо в графі
ребро мінімальної ваги. Разом з
інцидентними йому вершинами воно
утворить підграф
графа
.
Покладемо
.
Крок
2.
Якщо
,
де
,
то задачу розв’язано, і
– шукане мінімальне кістякове дерево
графа
.
В іншому випадку переходимо до кроку
3.
Крок
3. Будуємо граф
,
додаючи до графа
нове ребро мінімальної ваги, вибране
серед усіх ребер графа
,
кожне з
яких інцидентне якій-небудь вершині
графа
і одночасно інцидентне якій-небудь
вершині графа
,
що не міститься
в
.
Разом із цим ребром включаємо
в
інцидентну йому вершину, яка не міститься
в
.
Надамо
і переходимо до кроку 2.
Приклад
7.17.
Нехай
є звичайний граф
,
який заданий на рис.7.19 а). Знайти кістякове
дерево графа
з мінімальною сумою довжин ребер.
Згідно наведеному алгоритму пошуку кістякового дерева з мінімальною сумою довжин ребер знаходимо кістякове дерево, наведене на рис.7.19 б. В дужках позначено номер чергового ребра, яке додаємо до дерева.
|
|
а) |
б) |
Рис.7.19 |