- •Методичні вказівки
- •1. Опис дисципліни Мета і завдання вивчення дисципліни
- •2. Структура курсової роботи
- •На тему “розробка програмного комплексу по оптимізації вантажних перевезень на транспортної мережі”
- •До виконанні курсової роботи Завдання на курсову роботу
- •Методичні вказівки до виконання курсової роботи
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом випадкового
- •Перша ітерація тт
- •Друга ітерація тт
- •Третя ітерація тт
- •Четверта ітерація тт
- •П’ята ітерація тт
- •Шоста ітерація тт
- •Тт після розподілу вантажу у клітинку а3в2
- •Тт після розподілу вантажу у клітинку а1в4
- •Тт після розподілу вантажу у клітинку а2в1
- •Тт після розподілу вантажу у клітинку а1в4
- •Перша ітерація тт
- •Друга ітерація тт
- •Модифікований метод дейкстри (метод new) зведення сітьового представлення перевезень вантажу на тм до табличного виду – тт
- •1. Задача пошуку найкоротшого шляху між двома заданими вершинами
- •2. Задача пошуку найкоротших шляхів між заданими множинами вершин
- •Результуюча матриця найкоротших відстаней
- •Матрично-мережева модель управління перевезеннями вантажів в тс
- •Масив відстаней між сусідніми вузлами тм
- •Матриця транспортних кореспонденцій між всіма вузлами тм
- •Матриця найкоротших відстаней на тм
- •Опорний план перевезень
- •Тт з потенціалами
- •4. Література
- •Варіанти завдань по курсовій роботі
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 1-го до 15-го
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 16-го до 30-го
- •Вартість перевезення одиниці вантажу між сусідніми вузлами тм
- •Вантажу методом північна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом північна – східного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – західного кута
- •Текст процедури побудови опорного плану перевезень вантажу методом південна – східного кута
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст процедури побудови опорного плану перевезень
- •Текст програми на мові Delphi, яка реалізує симплексний метод рішення тз
- •Текст процедури на мові Pascal, яка реалізує алгоритм Дейкстри
- •Текст процедури на мові Delphy, яка реалізує метод графів
- •Завдання на курсову роботу студента
Текст процедури на мові Pascal, яка реалізує алгоритм Дейкстри
Program Dijkstra;
Uses Crt;
Label 1,2,3;
Var
n,i,j,m,a_0,a_n,sum,k,min,ind,w,v_:Integer;
S, D, P, V : Array[1..10]of Integer;
C : Array[1..10,1..10]of Integer;
SIM : Array[1..10,1..20] Of Char;
prom : Char;
symbol : String;
cifra : Integer;
Function v_s (ind : Integer):Boolean;
Var i : Integer;
Begin
v_s := false;
For i:=1 To n Do
If (s[i] = ind) Then
v_s := true;
End;
Begin
ClrScr;
Write('Введите количество a/п : ');
Readln (n);
Write('Введите количество авиалиний : ');
Readln(m);
Writeln('');
Write('V={');
For i:=1 To n Do
Begin
V[i] := i;
If (i<>n) Then
Write(V[i],',')
Else
Write(V[i],'}');
End;
sum := 0;
C[1,2] := 10; C[1,4] := 30; C[1,5] := 100;
C[2,3] := 50;
C[3,1] := 70; C[3,5] := 10;
C[4,3] := 20;
C[5,4] := 60;
Writeln('');
For i:=1 To n Do
For j:=1 To n Do
Begin
Write('Введите номер а\п отправления : ');
Readln(a_0);
Write(''Введите номер а\п назначения : ');
Readln(a_n);
Write('Введите время полёта по авиалинии : ');
Readln(C[a_0,a_n]);}
If (C[i,j] <> 0) Then
sum := sum + C[i,j];
writeln;
End;
For i:=1 To n Do
Begin
If (Round(n/2)=i) Then
Write ('C=')
Else
Write(' ');
For j:=1 To n Do
Begin
If (C[i,j] = 0) Then
Begin
C[i,j] := sum;
Write(' ~',' ');
End
Else
Write(C[i,j],' ');
End;
Writeln(' ');
End;
S[1] := 1;
For i:=1 To n Do
V[i] := V[i+1];
For i:=2 To n Do
Begin
P[i] := 1;
D[i]:=C[1,i];
End;
For k:=1 To (n-1) Do
Begin
min := sum;
For i:=2 To n Do
If ((D[i] <= min) And (Not(v_s(i)))) Then
Begin
min := D[i];
w := i;
End;
For i:=1 To n Do
If (S[i] = 0) Then
Begin
S[i] := w;
Goto 1;
End;
1: For i:=1 To n Do
If (V[i] = w) Then
Begin
For j:=i To n Do
V[j] := V[j+1];
Goto 2;
End;
2: i := 1;
v_ := V[i];
While (v_ <> 0) Do
Begin
If (D[v_] > (D[w] + C[w, v_])) Then
Begin
D[v_] := D[w] + C[w, v_];
P[v_] := w;
End;
i :=i + 1;
v_ := V[i];
End;
End;
writeln;
Write ('D={');
For i:=2 To n Do
If (I <> n) Then
Write(D[i],',')
Else
Write (D[i],'}');
writeln;
Write('P={');
For i:=2 To n Do
If (i <> n) Then
Write (P[i],',')
Else
Write (P[i],'}');
For i:=2 To n Do
Begin
j := 1;
Str(i, simbol);
SIM[i,j] := simbol[1];
3:If (j = 1) Then
Begin
Str(P[i],simbol);
prom := simbol[1];
End
Else
Begin
Val(prom, cifra, cifra);
Str(P[cifra],simbol);
prom := simbol[1];
End;
j := j + 1;
SIM[i,j] := '>';
j := j + 1;
SIM[i,j] := '-';
j := j + 1;
SIM[i,j] := prom;
If (prom <> '1') Then
Goto 3;
End;
Writeln(' ');
For i:=2 to n Do
Begin
Writeln('');
For j:=20 downto 1 Do
Write(SIM[i,j]);
Write(' = ',D[i]);
End;
readln;
End. {Dijkstra}
Додаток 18