- •Кафедра транспортних технологій
- •Практична робота №1. Елементи теорії прийняття рішень.
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота №2. Найкоротший шлях на транспортній мережі.
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота №3. Найкоротший шлях на транспортній мережі.
- •Контрольні питання:
- •Практична робота №4. Найкоротший шлях на транспортній мережі.
- •Методичні вказівки
- •Контрольні питання:
- •Методичні вказівки
- •Практична робота 5. Графоаналітичний метод рішення задачі лінійного програмування
- •Методичні вказівки
- •Практична робота 6. Рішення задачі лінійного програмування симплекс-методом.
- •Методичні вказівки
- •Контрольні питання
- •Практична робота 8. Створення припустимого плану перевезень.
- •Методичні вказівки
- •Метод найменшої вартості
- •Контрольні питання:
- •Практична робота 9. Створення припустимого плану перевезень.
- •Методичні вказівки Метод Фогеля
- •Контрольні питання:
- •Практична робота 10. Зняття виродженності транспортної задачі
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 11. Рішення транспортної задачі розподільчим методом
- •Методичні вказівки
- •Контрольні питання
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 13. Рішення незбалансованої транспортної задачі.
- •Методичні вказівки
- •Контрольні запитання:
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 15. Розв’язання задачі о призначеннях
- •Методичні вказівки
- •Контрольні запитання:
- •Практична робота 16. Універсальний метод знаходження найкоротшого шляху.
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 17. Матрічний спосіб знаходження максимального потоку
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 18. Графічний спосіб знаходження максимального потоку
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 19. Вирішення задачі об інвестиціях
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 20. Вирішення задачі рюкзачного типу
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 21. Комбінаторне програмування
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 22. Розробка раціональних маршрутів перевезень масових сумісних вантажів
- •Методичні вказівки
- •Контрольні питання:
- •Практична робота 23. Розробка розвозних маршрутів перевезень дрібнопартіоних вантажів
- •Методичні вказівки:
- •Контрольні запитання
- •Практична робота 24. Розробка часових графіків спільної роботи рухомого складу та вантажних (розвантажувальних) механізмів.
- •Контрольні запитання
- •Практична робота 25. Розрахунок параметрів мережевих графіків.
- •Методичні вказівки
- •Контрольні питання
- •Практична робота 26. Розрахунок параметрів мережевих графіків
- •Контрольні питання
- •Практична робота 27. Аналіз заданої смо
- •Методичні вказівки
- •Смо з очікуванням.
- •Контрольні питання
- •Література
Контрольні питання:
Як визначити послідовність вершин у найкоротшому шляху по таблицях Флойда?
Які найкоротші шляхи дозволяють визначити таблиці Флойда?
Практична робота 17. Матрічний спосіб знаходження максимального потоку
Мета: навчитись знаходити максимальний потік на транспортній мережі..
Задача
Дана транспортна мережа.
Завдання
Знайти матричним способом всі максимальні розрізи (потоки) згідно свого варіанту.
Методичні вказівки
Розглянемо універсальний алгоритм пошуку в матричній формі.
Початковий етап алгоритму складається в побудові матриці D0, у яку заносяться значення пропускних здібностей (для неорієнтованої дуги беремо симетричні значення елементів матриці dij=dji).
Основні кроки алгоритму складаються в пошуку деякого шляху і корекції потоку на цьому шляху.
При пошуку шляху використовуємо процес відзначань.
Мітимо символом * нульові рядок і стовпець матриці (вхід мережі). У 0-й рядку відшукуємо d0j > 0 і мітимо відповідні стовпці індексами
j = 0, V j = d0j
і переносимо мітки стовпців на рядки. Потім беремо і-ю відзначений рядок, шукаємо в ній непомічений стовпець з dij > 0, якому зіставляємо мітки - індекси
j = i, Vj = min (Vj, dij).
Мітки стовпців переносимо на рядки і цей процес продовжуємо доти , поки не буде відзначений n - й стовпець.
Потім "зворотним ходом" по індексах з'ясовуємо шлях, приведший до n - й вершини, і зменшуємо пропускні здібності дуг шляху (елементи матриці) на Vn і збільшуємо симетричні елементи на цю же величину.
Така процедура продовжується доти , поки відзначання n - й вершини не стане неможливим.
Максимальний потік може бути знайдений вирахуванням з вихідної матриці D0 одержуваної після вищенаведеної коректури матриці пропускних здібностей
X = max (D0 - Dk, 0).
Контрольні питання:
У чому виявляється універсальність використаного методу?
Що таке максимальний потік?
Які ще методи знаходження максимального потоку ви знаєте?
Практичне використання поняття максимального потоку?
Література [7]
Практична робота 18. Графічний спосіб знаходження максимального потоку
Мета: навчитись знаходити максимальний потік на транспортній мережі..
Задача
Дана
транспортна мережа.
Завдання
Знайти графічним способом всі максимальні розрізи (потоки) згідно свого варіанту
Методичні вказівки
Ідея даного алгоритму складається в перебуванні наскрізних шляхів з позитивними потоками від джерела до стоку.
Розглянемо ребро (i,j) с (початкової)
пропускною здатністю (
).У
процесі виконання алгоритму частини
цих пропускних здібностей "забираються"
потоками, що проходять через дане ребро,
у результаті кожне ребро буде мати
залишкову пропускну здатність. Будемо
використовувати запис (сij,
сji) для представлення залишкових
пропускних здібностей. Мережа, де всі
ребра мають залишкову пропускну
здатність, назвемо залишкової.
Для довільного вузла j, потік, що одержує, від вузла i, визначимо мітку [aj,i], де aj – величина потоку, що протікає від вузла j до вузла i. Алгоритм перебування максимального потоку припускає виконання наступних дій.
Крок 1. Для всіх ребер (і, j) покладемо залишкову пропускну здатність рівної первісної пропускної здатності, тобто дорівняємо (сij, сji)= ( ).Призначимо а1= і позначимо вузол 1 міткою [, ]. Думаємо і=1 і переходимо до другого кроку.
Крок 2. Визначаємо множину Si як множину вузлів j, у які можно перейти від i по ребру з позитивною залишковою пропускною здатністю (т.ч. сij>0 для всіх j Si). Якщо Si, виконуємо третій крок, у противному випадку переходимо до кроку 4.
Крок 3. У множині Si
знаходимо
вузел k,
такий, що
Положимо аk=cik
і позначимо вузол k міткою
[ak,i].
Якщо останньою міткою Позначений
вузол стоку (тобто якщо k=n), наскрізний
шлях знайдений, переходимо до п'ятого
кроку. У противному випадку думаємо k=1
і повертаємося до другого кроку.
Крок 4. (Відкіт назад). Якщо і=1, наскрізний шлях неможливий і ми переходимо до кроку 6. Якщо i1, знаходимо позначений вузол r, безпосередньо попередньому вузлу і, і видаляємо вузол і з безлічі розумів, суміжних з вузлом r. Приравнюємо і=r і повертаємося до другого кроку.
Крок 5.(Визначення залишкової мережі). Позначимо через N5={1,k1,k2,…,n} безліч вузлів, через які проходить p-й знайдений наскрізний шлях від вузла джерела (вузол 1) до вузла стоку (вузол n). Тоді максимальний потік, що проходить цим шляхом , обчислюється як fp=min{a1,ak1,ak2,…,an}. Залишкові пропускні здібності ребер, що складають наскрізний шлях, зменшуються на величину fp у напрямку руху потоку і збільшуються на величину в протилежному рухи потоку і збільшуються на цю же величину в протилежному напрямку. Таким чином, для ребра (і,j), що входить у наскрізний шлях, що течуть залишкової вартості (сij, сji) зміняться так:
а) (сij-fp, сji+ fp), якщо потік йде від вузла i к вузлу;
b) (сij-fp, сji+ fp), якщо потік йде від вузла j к вузлу.
Далі відновлюємо усі вузли, вилучені на кроці 4. Думаємо і=1 і повертаємося до другого кроку для пошуку нового наскрізного шляху.
Крок 6. (Рішення).
а) При m знайдених наскрізних шляхах максимальний потік обчислюється по формулі F=f1+f2+…+fm.
b) Маючи значення
початкових (
)і
кінцевих (сij, сji)
пропускних здібностей ребра
(і,j), можна обчислити оптимальний потік
через це ребро в такий спосіб. Покладемо
(, )=(
-
сij,
-
сji). Якщо
>0, потік, що
проходить через ребро (і,j), дорівнює .
Якщо >0,
тоді потік дорівнює .
(Випадок, коли одночасно >0
і >0,
неможливий).
Процес відкоту назад на четвертому кроці виконується тоді, коли алгоритм повинний "убити" проміжний вузол до моменту реалізації наскрізного шляху.
