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

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

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

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

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

Початковій вершині Ві надається вага Рі = 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

*

Р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