- •Методичні вказівки
- •1. Опис дисципліни Мета і завдання вивчення дисципліни
- •2. Структура курсової роботи
- •На тему “розробка програмного комплексу по оптимізації вантажних перевезень на транспортної мережі”
- •До виконанні курсової роботи Завдання на курсову роботу
- •Методичні вказівки до виконання курсової роботи
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом випадкового
- •Перша ітерація тт
- •Друга ітерація тт
- •Третя ітерація тт
- •Четверта ітерація тт
- •П’ята ітерація тт
- •Шоста ітерація тт
- •Тт після розподілу вантажу у клітинку а3в2
- •Тт після розподілу вантажу у клітинку а1в4
- •Тт після розподілу вантажу у клітинку а2в1
- •Тт після розподілу вантажу у клітинку а1в4
- •Перша ітерація тт
- •Друга ітерація тт
- •Модифікований метод дейкстри (метод new) зведення сітьового представлення перевезень вантажу на тм до табличного виду – тт
- •1. Задача пошуку найкоротшого шляху між двома заданими вершинами
- •2. Задача пошуку найкоротших шляхів між заданими множинами вершин
- •Результуюча матриця найкоротших відстаней
- •Матрично-мережева модель управління перевезеннями вантажів в тс
- •Масив відстаней між сусідніми вузлами тм
- •Матриця транспортних кореспонденцій між всіма вузлами тм
- •Матриця найкоротших відстаней на тм
- •Опорний план перевезень
- •Тт з потенціалами
- •4. Література
- •Варіанти завдань по курсовій роботі
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 1-го до 15-го
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 16-го до 30-го
- •Вартість перевезення одиниці вантажу між сусідніми вузлами тм
- •Вантажу методом північна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом північна – східного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – східного кута
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст програми на мові Delphi, яка реалізує симплексний метод рішення тз
- •Текст процедури на мові Pascal, яка реалізує алгоритм Дейкстри
- •Текст процедури на мові Delphy, яка реалізує метод графів
- •Завдання на курсову роботу студента
2. Задача пошуку найкоротших шляхів між заданими множинами вершин
У якості вихідних даних для цієї задачі беремо позначений орграф G(V,E), зображений на рис. 6, що містить час польоту по маршрутах, що зв'язує визначені міста, причому вся множина його вершин V розбита на дві підмножини. До першої підмножини відносяться міста вильотів ( m міст ), а друга підмножина містить міста посадки літаків ( n міст ). Потрібно відшукати найкоротші маршрути перельотів між аеропортами( а\п) вильотів і посадок, включаючи посадки в проміжних а\п (ними можуть бути як а\п вильотів, так і а\п посадок літаків). Іншими словами ми повинні одержати матрицю найкоротших відстаней між а\п вильотів і а\п посадок (табл. 63).
Таблиця 63
Результуюча матриця найкоротших відстаней
|
а\п посадок |
||||
а\п вильотів |
|
1 |
2 |
. . . |
n |
1 |
C11 |
C12 |
. . . |
C1n |
|
2 |
C21 |
C22 |
. . . |
C2n |
|
. . . |
. . . |
. . . |
. . . |
. . . |
|
m |
Cm1 |
Cm2 |
. . . |
Cmn |
Для рішення цієї задачі розглянутий вище алгоритм Дейкстри недостатній для її рішення (він знаходить усього лише один рядок з матриці найкоротших відстаней). Тому розглянемо принципово новий алгоритм, зображений на лістингу 2.
Тут масив D являє собою результуючу матрицю найкоротших відстаней, причому на кожному кроці елемент D[i, v] містить довжину поточного найкоротшого шляху від вершини i до вершини v. Масив C задає вартості перельотів, де елемент C[i, j] дорівнює вартості дуги i —> j. Якщо дуги i —> j не існує, то C[i,j] лягає рівним (нескінченності), тобто більшим будь-якої фактичної вартості дуг. Елемент масиву Р[i, v] містить номер вершини, безпосередньо попередній вершині v у найкоротшому шляху від вершини i. Множина S має той же зміст, що й в алгоритмі Дейкстри.
Лістинг 2. Алгоритм побудови матриці найкоротших відстаней
procedure New( var D: array[1 .. m, l .. (m + n)] of real;
C: array[1 .. (m + n), l .. (m + n)] of real;
P: array[1 .. m, l .. (m + n)] of integer);
begin
(1) for i := 1 to m do
begin
S := {i}; { вибір чергової вершини з підмножини а\п вильотів }
for j := 1 to (m + n) do
begin
D[i, j] := C[i, j]; { ініціалізація D }
P[i, j] := i
end
(2) for j := 1 to (m + n –1) do
begin
вибір з множини V\S такої вершини w, що значення D[i, w]
мінімально;
додати w до множини S;
for кожна вершина v з множини V\S do
begin
if (D[i, w) + C[w, v] < D[i, v] then
P[i, j] := w;
D[i, v] := min(D[i, v], D([i, w] + C[w, v] );
end
(3) end
(4) end
end; { New }
Зовнішній цикл( рядка 1 – 4 ) здійснює послідовний перебір всіх а\п вильотів, а внутрішній цикл( рядка 2 – 3 ) знаходить найкоротші маршрути від цих а\п до всіх інших, причому якщо в цьому маршруті присутні проміжні вершини, то вони запам'ятовуються.
У таблицях 64, 65 і 66, відповідно, приведена матриця C, D і P, які отримані за допомогою нового алгоритму для орграфа, зображеного на рис. 6. У якості а\п вильотів обрані 1 і 2, інші 3, 4 і 5 – а\п посадок.
(У додатку 18 наведений текст процедури на мові Delphy, яка реалізує метод графів – модифікований метод Дейкстри).
Таблиця 64 Таблиця 65
Матриця вартостей Матриця найкоротших відстаней
|
а\п вильотів і посадок |
|
|
а\п вильотів і посадок |
||||||||||||||||
1 |
2 |
3 |
4 |
5 |
1 |
2 |
3 |
4 |
5 |
|||||||||||
а\п вильотів і посадок |
1 |
|
10 |
|
30 |
100 |
а\п вильотів |
1 |
|
10 |
50 |
30 |
60 |
|||||||
2 |
|
|
50 |
|
|
2 |
120 |
|
50 |
120 |
60 |
|||||||||
3 |
70 |
|
|
|
10 |
|
Таблиця 66 Матриця проміжних вершин |
|||||||||||||
|
1 |
2 |
3 |
4 |
5 |
|||||||||||||||
4 |
|
|
20 |
|
|
|
а\п вильотів |
1 |
|
1 |
4 |
1 |
3 |
|||||||
5 |
|
|
|
60 |
|
2 |
3 |
|
2 |
5 |
3 |