Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичний посібник для курс. роботи по М та СП...doc
Скачиваний:
6
Добавлен:
26.11.2019
Размер:
652 Кб
Скачать
☆

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

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

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

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

Початковій вершині Ві надається вага Рі = 0, решті вершин – нескінченні ваги Рj = .

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

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

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

Алгоритм формування рельєфу графа наведений на рис. 1.

Початок

1. Присвоєння початковій вершині

ваги Рi = 0, присвоєння решті

вершин ваг Рj = 999

2. Вибір серед неперевірених вершин

графа вершини Вk мінімальної ваги

3. Обчислення ваги = Pk + P(k,j)

чергової неперевіреної вершини

Bj графа, безпосередньо пов’язаної

з перевірною вершиною Bk

Ні

4.Рj

Так

5. Рj = , запис Bk

6. Всі

вершини Bj, безпосередньо Ні

пов’язані з вершиною Bk,

перевірені

Так

7. Присвоєння перевірній вершині

Bk позначки “перевірена” (*)

Ні 8. Перевірено

n - 1 вершин графа

Так

Кінець

Рисунок 1 – Алгоритм формування рельєфу графа

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

У блоці 1 створюється початковий рельєф графа. Початковій вершині Ві присвоюється мінімальна вага Рі = 0, решті вершин графа Bj (j = 1, 2, … n, ji) – нескінченні ваги Рj = , які подаються як надмірні ваги Рj = 999.

У блоці 2 серед неперевірених вершин вибирається вершина Вk мінімальної ваги Рk.

У блоці 3 обчислюється вага = Рk + Р(k,j) чергової неперевіреної вершини Bj відносно перевірної вершини Bk, що безпосередньо пов’язана з вершиною Bj графа.

У блоці 4 обчислена вага порівнюється з вагою Рj вершини Bj. При  Рj виконується перехід до блока 5, при  Рj – до блока 6.

У блоці 5 вага Рj замінюється вагою , тобто значення ваги вершини Bj знижується, і запам’ятовується вершина Bk, від якої одержано значення ваги Рj .

У блоці 6 перевіряється, чи всі вершини Вj графа, безпосередньо пов’язані з перевірною вершиною Bk, перевірені. Якщо так – здійснюється перехід до блока 7, якщо ні – повернення до блока 3.

У блоці 7 перевірній вершині Bk присвоюється позначка “перевірена” (*) і вона виключається з подальшого розгляду.

У блоці 8 перевіряється кількість вершин графа, що вже перевірені. Якщо таких вершин менше n - 1 – здійснюється повернення до блока 2, і процес формування рельєфу графа повторюється, якщо їх n - 1 – рельєф графа сформований і робота алгоритму закінчується.

Алгоритм формування найкоротших шляхів за сформованим рельєфом графа наведено на рис. 2.

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

У блоці 1 фіксується поточна перевірна вершина Bl = Bj (j = 1, 2, … n,

ji).

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

У блоці 3 фіксується значення номера попередньої вершини Bk графа та ваги Рl .

У блоці 4 значення l замінюється значенням k, тобто поточна вершина Bl замінюється поточною вершиною Bk графа.

У блоці 5 порівнюються значення l і i. При li виконується повернення до блока 2 і формування шляху між вершинами Bi та Bj графа продовжується. При l = i шлях між вершинами Bi та Bj графа сформований і робота алгоритму закінчується.

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

Початок

1. l = j (j = 1, 2 …, n, ji)

2. Зчитування рядка l таблиці

рельєфу графа

3. Запис номера попередньої

вершини Bk графа і ваги Pl

4. l = k

Ні 5. l = i

Так

Кінець

Рисунок 2 – Алгоритм формування найкоротших шляхів

Приклад побудови найкоротших радіальних маршрутів між обласними вузлами мережі перевезень пошти України

Таблиця 1 –Формування рельєфу графа

Таблиця 2 –Формування рельєфу графа

Крок 1

Bі

*

Рi = 0

Вк=12

1. Луцьк

∞

2. Львів

∞

3. Ужгород

∞

4. Рівне

∞

5. Тернопіль

∞

6. Ів.-Франківськ

∞

7. Житомир

139

12

8. Хмельницький

∞

9. Чернівці

∞

10. Чернігів

138

12

11. Вінниця

∞

12. Київ

*

0

13. Миколаїв

∞

14. Одеса

463

12

15.Черкаси

214

12

16. Полтава

327

12

17. Суми

320

12

18. Харків

∞

19. Кіровоград

298

12

20. Херсон

∞

21. Сімферополь

∞

22. Запоріжжя

∞

23. Дніпропетровськ

∞

24. Донецьк

∞

25. Луганськ

∞

Крок 0

Ві

*

Pi

Вк

1. Луцьк

∞

2. Львів

∞

3. Ужгород

∞

4. Рівне

∞

5. Тернопіль

∞

6. Ів.-Франківськ

∞

7. Житомир

∞

8. Хмельницький

∞

9. Чернівці

∞

10. Чернігів

∞

11. Вінниця

∞

12. Київ

0

13. Миколаїв

∞

14. Одеса

∞

15.Черкаси

∞

16. Полтава

∞

17. Суми

∞

18. Харків

∞

19. Кіровоград

∞

20. Херсон

∞

21. Сімферополь

∞

22. Запоріжжя

∞

23. Дніпропетровськ

∞

24. Донецьк

∞

25. Луганськ

∞

Таблиця 27 – Перелік найкоротших шляхів

12-7-4-1

12-7-4-2

12-7-4-2-3

12-7-4

12-7-8-5

12-7-8-5-6

12-7

12-7-8

12-7-8

12-7-8-9

12-10

12-7-11

12-19-13

12-14

12-15

12-16

12-17

12-16-18

12-19

12-19-13-20

12-19-13-20-21

12-19-23-22

12-19-23

12-16-18-24

12-16-18-25