Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Роздiл 7.doc
Скачиваний:
48
Добавлен:
25.12.2018
Размер:
2.85 Mб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]