Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки з курсової роботи AтаПЗОВПвТ....doc
Скачиваний:
7
Добавлен:
05.12.2018
Размер:
7.49 Mб
Скачать

Текст процедури побудови опорного плану перевезень

вантажу методом найменшого елемента стовпця ТТ

// 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