- •Методичні вказівки
- •1. Опис дисципліни Мета і завдання вивчення дисципліни
- •2. Структура курсової роботи
- •На тему “розробка програмного комплексу по оптимізації вантажних перевезень на транспортної мережі”
- •До виконанні курсової роботи Завдання на курсову роботу
- •Методичні вказівки до виконання курсової роботи
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом випадкового
- •Перша ітерація тт
- •Друга ітерація тт
- •Третя ітерація тт
- •Четверта ітерація тт
- •П’ята ітерація тт
- •Шоста ітерація тт
- •Тт після розподілу вантажу у клітинку а3в2
- •Тт після розподілу вантажу у клітинку а1в4
- •Тт після розподілу вантажу у клітинку а2в1
- •Тт після розподілу вантажу у клітинку а1в4
- •Перша ітерація тт
- •Друга ітерація тт
- •Модифікований метод дейкстри (метод new) зведення сітьового представлення перевезень вантажу на тм до табличного виду – тт
- •1. Задача пошуку найкоротшого шляху між двома заданими вершинами
- •2. Задача пошуку найкоротших шляхів між заданими множинами вершин
- •Результуюча матриця найкоротших відстаней
- •Матрично-мережева модель управління перевезеннями вантажів в тс
- •Масив відстаней між сусідніми вузлами тм
- •Матриця транспортних кореспонденцій між всіма вузлами тм
- •Матриця найкоротших відстаней на тм
- •Опорний план перевезень
- •Тт з потенціалами
- •4. Література
- •Варіанти завдань по курсовій роботі
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 1-го до 15-го
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 16-го до 30-го
- •Вартість перевезення одиниці вантажу між сусідніми вузлами тм
- •Вантажу методом північна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом північна – східного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – східного кута
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст програми на мові Delphi, яка реалізує симплексний метод рішення тз
- •Текст процедури на мові Pascal, яка реалізує алгоритм Дейкстри
- •Текст процедури на мові Delphy, яка реалізує метод графів
- •Завдання на курсову роботу студента
Текст процедури побудови опорного плану перевезень
вантажу методом найменшого елемента стовпця ТТ
// A[m, n] – матриця транспортних комунікацій (суміжності), де у A[i, j]-ї
клітинці знаходяться вартість транспортування одиниці вантажу із і-того транспортного вузла в j-й
// TT[m+1, n+1] – транспортна таблиця, де у (n+1)-ї колонці знаходяться обсяги
запасів, а у (m+1)-ї строки – обсяги заявок вантажу
// m – кількість постачальників вантажу
// n – кількість споживачів вантажу
for k:=1 to m do
for j:=1 to n do
begin
min := A[1,j];
i_ := 1;
for i:=2 to m do
if (A[i,j] < min) then
begin
min := A[i,j];
i_ := i;
end;
if (min <> 999) then
begin
if (A[m+1,j] <= A[i_,n+1]) then
TT[i_,j] := A[m+1,j]
else
TT[i_,j]:=A[i_,n+1];
A[i_,j] := 999;
A[m+1,j] := A[m+1,j] - TT[i_,j];
A[i_,n+1] := A[i_,n+1] - TT[i_,j];
if (A[m+1,j] = 0) then
for l:=1 to m do
A[l,j] := 999;
if (A[i_,n+1] = 0) then
for l:=1 to n do
A[i_,l] := 999;
end;
end;
Додаток 10
Текст процедури побудови опорного плану перевезень
вантажу методом найменшого елемента ТТ
// A[m, n] – матриця транспортних комунікацій (суміжності), де у A[i, j]-ї
клітинці знаходяться вартість транспортування одиниці вантажу із і-того транспортного вузла в j-й
// TT[m+1, n+1] – транспортна таблиця, де у (n+1)-ї колонці знаходяться обсяги
запасів, а у (m+1)-ї строки – обсяги заявок вантажу
// m – кількість постачальників вантажу
// n – кількість споживачів вантажу
sum_vid := 1; // Сумарний обсяг відправлення вантажу
sum_pryz := 1; // Сумарний обсяг призначення вантажу
while ((sum_vid <> 0) and (sum_pryz <> 0)) do
begin
min := A[1,1];
i_ := 1;
j_ := 1;
for i := 1 to m do
for j := 1 to n do
if (A[i, j] < min) then
begin
min := A[i, j];
i_ := i;
j_ := j;
end;
if (min <> 999) then
begin
if (A[m+1,j_] <= A[i_,n+1]) then
TT[i_, j_]:=A[m+1,j_]
else
TT[i_, j_] := A[i_,n+1];
A[i_, j_] := 999;
A[m+1,j_] := A[m+1,j_] - TT[i_, j_];
A[i_,n+1] := A[i_,n+1]-TT[i_, j_];
if (A[m+1,j_] = 0) then
for l:=1 to m do
A[l, j_] := 999;
if (A[i_,n+1] = 0) then
for l:=1 to (n+1) do
A[i_, l]:=999;
end;
sum_vid := 0;
for i:=1 To m do
sum_vid := sum_vid + A[i,n+1];
sum_pryz := 0;
for j:=1 To n do
sum_pryz := sum_pryz + A[m+1,j];
end;
Додаток 11
Текст процедури побудови опорного плану перевезень
вантажу методом мінімального вузла відправлення ТТ
// A[m, n] – матриця транспортних комунікацій (суміжності), де у A[i, j]-ї
клітинці знаходяться вартість транспортування одиниці вантажу із і-того транспортного вузла в j-й
// TT[m+1, n+1] – транспортна таблиця, де у (n+1)-ї колонці знаходяться обсяги
запасів, а у (m+1)-ї строки – обсяги заявок вантажу
// m – кількість постачальників вантажу
// n – кількість споживачів вантажу
for i:=1 to m do
for j:=1 to n do
A[i,n+2] := A[i,n+2] + A[i,j];
for i:=1 to m do
begin
min := A[1,n+2];
ind := 1;
for j:=2 to m do
if (A[j,n+2] < min) then
begin
min := A[j,n+2];
ind := j;
end;
A[ind,n+2] := 999;
A[i,n+3] := ind;
end;
sum_vid := 1; // Сумарний обсяг відправлення вантажу
sum_pryz := 1; // Сумарний обсяг призначення вантажу
while ((sum_vid <> 0) and (sum_pryz <> 0)) do
begin
for i:=1 to m do
begin
min := A [A[i,n+3],1];
i_ := A [i,n+3];
j_ := 1;
for j:=2 to n do
if (A[A[i,n+3],j] < min) then
begin
min := A[A[i,n+3],j];
j_ := j;
end;
if (min <> 999) then
begin
if (A[4,j_] <= A[i_,5]) then
TT[i_,j_] := A[4,j_]
else
TT[i_,j_] := A[i_,5];
A[i_,j_] := 999;
A[4,j_] := A[4,j_] - TT[i_,j_];
A[i_,5] := A[i_,5] - TT[i_,j_];
if (A[m+1,j_] = 0) then
for l:=1 to m do
A[l,j_] := 999;
if (A[i_,n+1] = 0) then
for l:=1 to n do
A[i_,l] := 999;
end;
end;
sum_vid := 0;
for i:=1 to m do
sum_vid := sum_vid + A[i,n+1];
sum_pryz := 0;
for j:=1 to n do
sum_pryz := sum_pryz + A[m+1,j];
end;
Додаток 12