- •Кафедра транспортних технологій
- •Практична робота №1. Елементи теорії прийняття рішень.
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота №2. Найкоротший шлях на транспортній мережі.
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота №3. Найкоротший шлях на транспортній мережі.
- •Контрольні питання:
- •Практична робота №4. Найкоротший шлях на транспортній мережі.
- •Методичні вказівки
- •Контрольні питання:
- •Методичні вказівки
- •Практична робота 5. Графоаналітичний метод рішення задачі лінійного програмування
- •Методичні вказівки
- •Практична робота 6. Рішення задачі лінійного програмування симплекс-методом.
- •Методичні вказівки
- •Контрольні питання
- •Практична робота 8. Створення припустимого плану перевезень.
- •Методичні вказівки
- •Метод найменшої вартості
- •Контрольні питання:
- •Практична робота 9. Створення припустимого плану перевезень.
- •Методичні вказівки Метод Фогеля
- •Контрольні питання:
- •Практична робота 10. Зняття виродженності транспортної задачі
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 11. Рішення транспортної задачі розподільчим методом
- •Методичні вказівки
- •Контрольні питання
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 13. Рішення незбалансованої транспортної задачі.
- •Методичні вказівки
- •Контрольні запитання:
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 15. Розв’язання задачі о призначеннях
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 16. Універсальний метод знаходження найкоротшого шляху.
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 17. Матрічний спосіб знаходження максимального потоку
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 18. Графічний спосіб знаходження максимального потоку
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 19. Вирішення задачі об інвестиціях
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 20. Вирішення задачі рюкзачного типу
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 21. Комбінаторне програмування
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 22. Розробка раціональних маршрутів перевезень масових сумісних вантажів
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 23. Розробка розвозних маршрутів перевезень дрібнопартіоних вантажів
- •Методичні вказівки:
- •Контрольні запитання
- •Практична робота 24. Розробка часових графіків спільної роботи рухомого складу та вантажних (розвантажувальних) механізмів.
- •Контрольні запитання
- •Практична робота 25. Розрахунок параметрів мережевих графіків.
- •Методичні вказівки
- •Контрольні питання
- •Практична робота 26. Розрахунок параметрів мережевих графіків
- •Контрольні питання
- •Практична робота 27. Аналіз заданої смо
- •Методичні вказівки
- •Смо з очікуванням.
- •Контрольні питання
- •Література
Контрольні запитання:
До яких методів програмування належить угорський метод?
Які ще задачі можна вирішувати вказаним методом?
Що таке двочастковий граф? Повний двочастковий граф? Навести приклади.
Що значать «червоні нулі» у методі?
Література [7]
Практична робота 16. Універсальний метод знаходження найкоротшого шляху.
Мета: набути практичні навички знаходження найкоротших відстаней методом Флойда
Задача
Дана транспортна мережа (рис.16.1).
Рис. 16.1 Транспортна мережа
Завдання
1. Відстані на малюнку розрахувати згідно свого варіанту.
2. Визначити найкоротші відстані між 1 та 11 вершинами транспортної мережі.
Методичні вказівки
Алгоритм Флойда. Цей алгоритм знаходить найкоротші шляхи між будь-якими двома вузлами мережі. У цьому алгоритмі мережа представлена у виді квадратної матриці з n рядками і n стовпцями. Елемент (i,j) дорівнює відстані dij від вузла і до вузла j, яке має кінцеве значення, якщо існує дуга (i,j), і дорівнює нескінченності в противному випадку.
Нехай є три вузли i, j та k і задані відстані між ними (рис. 16.2). Якщо виконується нерівність dij+ djk< dik, те доцільно замінити шлях i k шляхом i j k. Така заміна (далі її будемо умовно називати трикутним оператором) виконується систематично в процесі виконання алгоритму Флойда.
Рис. 16.2 Трикутний оператор.
Алгоритм Флойда вимагає виконання наступних дій.
Крок 0. Визначаємо початкову матрицю відстаней D0 матрицю послідовності вузлів S0. Діагональні елементи обох матриць позначаються знаком “”, що вказує: ці елементи в обчисленнях не фігурують. Припускаємо k=1.
Основний крок k. Задаємо рядок k як ведучий рядок і ведучий стовпець. Розглядаємо можливість застосування трикутного оператора до всіх елементів dij матриці Dk-1. Якщо виконується нерівність
dik+ dkj<dij, (ik, jk и ij),
тоді виконуються наступні дії:
а) створюємо матрицю Dk шляхом заміни в матриці Dk-1 елемента dij на суму dij- dkj.
b) створюємо матрицю Sk шляхом заміни в матриці Sk-1 елемента sij на k. Припускаючи k=k+1 повторюємо шаг k.
-
1
2
…
j
…
n
1
d12
…
d1j
…
d1n
2
d21
…
d2j
…
d2n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
D0=
di1
di2
…
dij
…
din
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
n
dn1
dn2
…
dnj
…
-
1
2
…
j
…
n
1
2
…
j
…
n
2
1
…
j
…
n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
S0=
1
2
…
j
…
n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
n
1
2
…
j
…
Пояснимо дії, виконувані на k-м кроці алгоритму, представивши матрицю Dk-1 так, як вона показана на рис.16.3. На цьому малюнку рядок k є ведучим. Рядок i – будь-який рядок з номером від 1 до k-1, а строка p – довільний рядок з номером від k+1 до n. Аналогічно стовпець j представляє будь-який стовпець з номером від 1 до k-1, а стовпець q – довільний з номером від k+1 до n. Аналогічно стовпець j представляє будь-який стовпець з номером від k+1 до n. Трикутний оператор виконується в таким чином. Якщо сума елементів ведучих рядка і стовпця (показаних у квадратиках) менше елементів, що знаходяться на перетинанні стовпця і рядка (показаних у квадратиках) і відповідають розглянутим ведучим елементами, замінюються ці елементи визначеною сумою.
Після реалізації n кроків алгоритму визначення по матрицям Dn и Sn найкоротшого шляху між вузлами i та j виконується за наступними правилами.
Відстань між вузлами i та j дорівнює елементу dij в матриці Dn.
Проміжні вузли шляху від вузла i до вузла j визначається по матриці Sn. Пусть sij=k, тоді маємо шлях i k j. Якщо далі sik=k та skj=j, тоді вважаємо, що весь шлях визначений, тому що знайдені всі проміжні вузли. У противному випадку повторюємо описану процедуру для шляхів від вузла і до вузла k і від вузла k до вузла j.
Рис. 16.3 Геометрична інтерпретація ведучих: стовпця та рядка.
