Випадок 4: збереження раніше сформованих фрагментів

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

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

Алгоритм побудови графа з мінімальною сумарною вагою ребер наведений на рис. 2.2.

Алгоритм містить 10 блоків.

У блоці 1 провадиться введення в довільному порядку переліку ребер початкового графа з зазначенням їх ваг.

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

У блоці 3 з переліку ребер початкового графа виключається перевірне ребро для запобігання його повторного вибору.

У блоці 4 перевіряється умова формування нового фрагмента (випадок 1). В разі виконання умови – перехід до блоку 5, в разі невиконання – до блоку 6.

У блоці 5 провадиться формування нового фрагмента.

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

У блоці 7 провадиться формування розширеного фрагмента.

У блоці 8 перевіряється умова об’єднання двох існуючих фрагментів (випадок 3). В разі виконання умови – перехід до блоку 9, в разі невиконання – до блоку 10.

У блоці 9 провадиться формування об’єднаного фрагмента.

У блоці 10 перевіряється умова закінчення формування графа. В разі невиконання умови – повернення до блоку 2, в разі виконання – закінчення роботи алгоритму.

Зазначимо, що оскільки перевірка будь-якого ребра завжди призводить до одного з чотирьох зазначених випадків, достатньо перевірити умови виконання лише трьох з них, тому в наведеному алгоритмі умова виконання випадку 4 не перевіряється.

 

Початок

 

 
 


1. Введення переліку

ребер початкового

графа

           
   
 
   
 

 


2.Вибір чергового перевірного

ребра мінімальної ваги

 

 
 


3. Виключення перевірного

ребра з переліку ребер

початкового графа

 
 


4.Жодна

з кінцевих вершин Так 5.Формування нового фрагмента з

перевірного ребра не належить перевірного ребра і двох його

жодному фрагменту кінцевих вершин

 

       
 
 
 
 
   


Ні

6. Перша

кінцева вершина 7. Включення перевірного ребра

перевірного ребра належить Так і його другої кінцевої вершини

деякому фрагменту, а друга - не до фрагмента, якому належить

належить жодному перша кінцева вершина зазначе-

фрагменту ного ребра

 

Ні

8.Перша

кінцева вершина пере- 9.Формування об’єднаного

вірного ребра належить одному Так фрагмента з перевірного ребра

фрагменту, а друга - іншому і двох фрагментів, яким належать

фрагменту його кінцеві вершини

 

Ні

 

10.Всі

Ні вершини графа

увійшли в один фрагмент

 

 

 
 


Так

Кінець

 

 

Рисунок 2.2. Алгоритм побудови графа з мінімальною сумарною вагою ребер

Наведемо приклад побудови найкоротшої мережі перевезень пошти. Граф початкової мережі зображений на рис. 2.3. Біля ребер графа зазначені їх ваги.

2 5

3

4 4 3

 

1 1 3 3 6 2 8

                   
   
   
 
     
   
 
 


 

4 2 4 1 4

 

4 3 7

 

Рисунок 2.3. Граф початкової мережі

 

У табл. 2.1 наведений перелік ваг ребер початкового графа.

Таблиця 2.1. Перелік ваг ребер початкового графа

Ребро (1,2) (1,3) (1,4) (2,5) (2,6) (3,4) (3,6) (4,6) (4,7) (5,8) (6,7) (6,8) (7,8)
Вага

 

У табл. 2.2 наведено послідовність кроків формування графа з мінімальною сумарною вагою ребер

Таблиця 2.2. Послідовність кроків формування графа з мінімальною сумарною вагою ребер

Крок Перевірне ребро Вага перевірного ребра Вершини
Фрагмент 1 Фрагмент 2 Фрагмент 3
(1,3) 1,3    
(6,7) 1,3 6,7  
(3,4) 1,3,4 6,7  
(6,8) 1,3,4 6,7,8  
(2,5) 1,3,4 6,7,8 2,5
(3,6) 1,3,4,6,7,8   2,5
(4,7) 1,3,4,6,7,8   2,5
(5,8) 1,3,4,6,7,8,2,5    

 

Усього для формування графа з мінімальною сумарною вагою ребер знадобилось 8 кроків, при чому крок 7 (перевірка ребра (4,7)) виявився зайвим.

На рис. 2.4 наведений граф, на якому жирними лініями виділене дерево з мінімальною сумарною вагою ребер.

 

 

2 5

3

4 4 3

 

1 1 3 3 6 2 8

               
   
   
 
   
 
 
 


 

4 2 4 1 4

 

4 3 7

 

Рисунок 2.4. Дерево з мінімальною сумарною вагою ребер.

 

В наведеному прикладі сумарна вага ребер початкового графа складає 38, а дерева з мінімальною сумарною вагою ребер – 15.

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