Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Одесса / 2-3_zastosuvannya_metodiv_teoriyi_grafiv.doc
Скачиваний:
8
Добавлен:
10.02.2016
Размер:
513.02 Кб
Скачать

Лекція 2-3 Застосування методів теорії графів для розв’язання типових задач оптимізації мереж поштового зв’язку

2.1. Основні поняття теорії графів

Графом G (X,Y) називається подання заданої множини об’єктів

X = {x1, x2, …, xn}

і заданої множини зв’язків між ними

Y = {y1, y2, …, ym}

у виді відповідної множини точок і відповідної множини ліній, що ці точки з’єднують.

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

Граф, що містить лише дуги, називається орієнтованим; граф, що містить лише ребра – неорієнтованим; граф, що містить як дуги, так і ребра – змішаним.

У подальшому тексті вершини графа позначені їхніми послідовними номерами (1, 2, 3 і т.д.), а дуги або ребра – значеннями номерів вершин, які вони з’єднують.

У позначеннях дуг (і, j) перші елементи визначають вершини, з яких відповідні дуги починаються, а другі – в яких вони закінчуються.

У позначеннях ребер порядок подання елементів може бути довільним, тобто можна писати (і, j), можна ( j, і).

На рис. 2.1. наведений приклад змішаного графа G (X,Y), в якому

n = 5, m = 7.

1 2

3

4 5

Рисунок 2.1. Приклад змішаного графа

Вершинами графа рис. 2.1 є X = {1, 2, 3, 4, 5}, дугами (ребрами) –

Y= {(1, 2), (2, 5), (3, 2), (3, 4), (3, 5), (4, 1), (4, 5)}.

Вершинам або дугам (ребрам) графа можуть бути надані ваги, що визначають ті чи інші характеристики:

  • пропускну спроможність,

  • протяжність,

  • час просування,

  • вартість перевезення,

  • надійність тощо.

Граф, вершинам або дугам (ребрам) якого надані ваги, називається зваженим.

Послідовність вершин або дуг (ребер), що веде з вершини р до вершини s безпосередньо або через проміжні вершини, називається шляхом з вершини р до вершини s.

Граф, в якому існують шляхи між будь-якими його вершинами, називається зв’язним.

Граф, в якому існують вершини, між якими немає шляхів, називається незв’язним.

Дуга (ребро) (р, р), що починається і закінчується в вершині р, називається петлею.

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

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

Граф, в якому існують дуги (ребра) між кожною парою його вершин, називається повним або повнозв’язним.

2.2. Задача побудови найкоротшої мережі перевезень пошти

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

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

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

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

Випадок 1: формування нового фрагмента.

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

Випадок 2: розширення існуючого фрагмента.

У цьому випадку перша кінцева вершина перевірного ребра належить деякому раніше сформованому фрагменту, а друга – не належить жодному фрагменту. Розширений фрагмент формується з раніше сформованого фрагмента, перевірного ребра та його другої кінцевої вершини.

Випадок 3: об’єднання двох раніше сформованих фрагментів.

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

Випадок 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)

Вага

4

1

4

3

4

2

3

4

3

3

1

2

4

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

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

Крок

Перевірне

ребро

Вага перевірного ребра

Вершини

Фрагмент 1

Фрагмент 2

Фрагмент 3

1

(1,3)

1

1,3

2

(6,7)

1

1,3

6,7

3

(3,4)

2

1,3,4

6,7

4

(6,8)

2

1,3,4

6,7,8

5

(2,5)

3

1,3,4

6,7,8

2,5

6

(3,6)

3

1,3,4,6,7,8

2,5

7

(4,7)

3

1,3,4,6,7,8

2,5

8

(5,8)

3

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.

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