
lek_07.ppt
- Количество слайдов: 38
Алгоритми побудови кістякового (покриваючого) дерева мережі Лекція з курсу «Структури даних» Час – 2 год
План • Метод Крускала • Метод Пріма
Деревоподібна структура характеризується наступними властивостями: 1) існує єдиний елемент, або вузол, на який не посилається жоден інший елемент і який називається коренем; 2) починаючи з кореня і слідуючи по певному ланцюжку покажчиків, що містяться в елементах, можна здійснити доступ до будьякого елементу структури; 3) на кожен елемент, крім кореня, є єдине посилання, тобто кожен елемент адресується єдиним вказівником.
Вузол y, який знаходиться безпосередньо під вузлом x, називається безпосереднім нащадком x; якщо х знаходиться на рівні i, то говорять, що у розташований на рівні i +1. Навпаки, вузол x називається безпосереднім предком y. Вважається, що корінь дерева розташований на рівні 1. Максимальний рівень якогонебудь елементу дерева називається його глибиною або висотою.
Число безпосередніх нащадків внутрішнього вузла називається його степенем. Максимальний степінь всіх вузлів є степінь дерева. Число гілок, або ребер, які потрібно пройти, щоб просунутися від кореня до деякого вузла x, називається довжиною шляху до x. Корінь має довжину шляху 1, його безпосередні нащадки - довжину шляху 2 і т. д. Взагалі, вузол на рівні i має довжину шляху i. Довжина шляху дерева визначається як сума довжин шляхів всіх його вузлів. Вона також називається довжиною внутрішнього шляху.
Якщо елемент не має нащадків, він називається термінальним елементом, або листом, а елемент, який не є термінальним, називається внутрішнім вузлом (рис. 1).
Нехай G = (V, E) - зв'язний неорієнтований граф, що містить цикли, тобто замкнуті маршрути, де V - множина вершин, а Е - множина ребер. Кістяковим (покриваючим) деревом називається підграф, який не містить циклів та включає всі вершини вихідного графа, для якого сума ваг ребер мінімальна (рис. 2).
Рис. 2. Граф (а) та його кістякове дерево (б)
Для побудови кістякового дерева графа використовують ся алгоритми Крускала і Пріма.
1. Метод Крускала
Схема алгоритма Крускала
На рис. 4 показана робота алгоритму Крускала. Ребра розглядаються в порядку зростання ваг (поточне ребро показано стрілкою). Ребро включається в остовне дерево, якщо воно не створює циклу і зв'язує вершини, що належать різним множинам.
Етапи побудови кістякового дерева за алгоритмом Крускала
Для побудови кістяка зв'язного дерева мінімальної ваги використовується алгоритм Крускала. Крок 1. Спочатку кожна вершина вихідного графа поміщається в одноелементні підмножини, де всі вершини ізольовані. Крок 2. Ребра сортуються за зростанням ваги. Крок 3. Ребро включається в кістякове дерево, якщо воно зв'язує вершини, що належать різним множинам. Крок 4. Алгоритм закінчує роботу, коли всі вершини об'єднуються в одну множину, при цьому ребра, що залишилися не включаються в кістякове дерево.
Приклад. Нехай дана схема мікрорайону. Необхідно поєднати будинки телефонним кабелем таким чином, щоб його довжина була мінімальною. Схему мікрорайону представимо зваженим графом
Приклад. Нехай дана схема комп'ютерної мережі. Необхідно з'єднати комп'ютери таким чином, щоб довжина проводки була мінімальною.
Дослідження методу Крускала показують ефективність його використання для побудови кістяка дерева мінімальної ваги зваженого неорієнтованого графа (мережі). Даний метод дозволяє обробляти сильно зв'язні графи з великим числом вершин, що необхідно в практиці розробки та створення ефективних алгоритмів розв'язання на ПЕОМ широкого класу задач.
2. Метод Пріма
У методі Пріма від вихідного графа переходимо до його поданням у вигляді матриці суміжності. На графі вибирається довільна вершина. Обрана вершина утворює первинний фрагмент кістяка дерева. Потім аналізуються ваги ребер від обраної вершини до решти невибраних вершин. Вибирається мінімальне ребро, яке вказує на наступну обрану вершину, і т. д. Процес триває до тих пір, поки в кістякове дерево не будуть включені всі вершини вихідного графа. Етапи роботи алгоритму Пріма показані на рис.
Етапи побудови кістякового дерева алгоритмом Пріма
Приклад. Нехай дана схема комп'ютерної мережі (рис. 9. 10). Необхідно з'єднати комп'ютери таким чином, щоб довжина проводки була мінімальною.
При перегляді рядка табл. знаходимо мінімальну величину ваги ребра, виділяємо її, і більше цей стовпець, в якому знаходиться ця величина, в розгляді не бере участь. Для побудови кістяка дерева необхідно переглянути стовпці таблиці знизу вгору і зафіксувати першу появу мінімальної величини. В результаті отримаємо кістякове дерево мінімальної ваги
Питання?
Дякую за увагу!!!
lek_07.ppt