Транспортная задача

Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 12:17, курсовая работа

Описание работы

Целью данной работы является построение математической модели, выбор метода и разработка алгоритма решения задачи, а также экспериментальная проверка и разработка рекомендаций по практическому использованию результатов решения транспортной задачи и определения стоимости транспортировки товара в зависимости от потребности в разных пунктах назначения и вместимости отдельных транспортных средств. В качестве методов решения данной задачи были выбраны: метод северо-западного угла, метод потенциалов и построение циклов.

Содержание работы

Введение
1. Содержательное и формализованное описание задачи
2. Математическая модель задачи
3. Выбор метода и разработка алгоритма решения задачи
3.1 Получение начального базисного решения
3.2 Нахождение вводимой переменной. Метод потенциалов
3.3 Поиск выводимой переменной. Построение циклов
4. Программная реализация
5. Экспериментальная проверка и разработка рекомендаций по практическому использованию результатов
6. Руководство пользователя
Заключение
Библиографический список

Файлы: 1 файл

тпр_вет_курсач.doc

— 369.50 Кб (Скачать файл)

ri:=1; ci:=1;

while  ((ri<=rw) and (ci<=cl)) do begin

  if spl[ri]<dmd[ci] then tmp:=spl[ri] else tmp:=dmd[ci];

  x[ri,ci]:=floattostr(tmp);

  spl[ri]:=spl[ri]-tmp;

  dmd[ci]:=dmd[ci]-tmp;

  if spl[ri]=0 then ri:=ri+1;

  if dmd[ci]=0 then ci:=ci+1;

end; end;

//значения U,V и  оценка для небазисных переменных

procedure TForm1.search_uv();

var

vc,uc: array [1..100] of integer;

ind,i,j: integer;

begin

for i:=1 to cl do begin v[i]:=0; vc[i]:=0; end;

for i:=2 to rw do begin u[i]:=0; uc[i]:=0; end;

u[1]:=0; uc[1]:=1;

for t:=1 to rw do

  for ind:=1 to rw do begin

   for i:=1 to cl do

    if(not(x[ind,i]='------------'))and(uc[ind]=1) then begin

                              v[i]:=c[ind,i]-u[ind];

                              vc[i]:=1;

                                                        end;

  if not (ind=rw) then

   for j:=1 to cl do

    if(not(x[ind+1,j]='------------'))and(vc[j]=1) then begin

                              u[ind+1]:=c[ind+1,j]-v[j];

                              uc[ind+1]:=1;

end; end;

for i:=1 to rw do

  for j:=1 to cl do begin

   if (x[i,j]='------------') then xnb[i,j]:=u[i]+v[j]-c[i,j]

                              else xnb[i,j]:=0;

end;end;

//максимальная небазисная переменная

procedure TForm1.maxnotbas(var max:real;var xi,yi:integer);

var

i,j:integer;

begin

max:=0; xi:=1; yi:=1;

for i:=1 to rw do

for j:=1 to cl do begin

  if (max<xnb[i,j]) and (x[i,j]='------------') then begin

                                                     max:=xnb[i,j];

                                                     xi:=i; yi:=j;

end; end; end;

procedure TForm1.create_matr();

var

i,j: integer;

begin

  for t:=1 to cl do

    form3.spr2.Cells[t-1,0]:=floattostr(v[t]);

 

  for t:=1 to rw do

    form3.pr2.Cells[0,t-1]:=floattostr(u[t]);

 

  for i:=1 to rw do

    for j:=1 to cl do

      form3.sg1.Cells[j,i]:=x[i,j];

end;

//просмотр задания

procedure TForm1.Button1Click(Sender: TObject);

begin

form2.Visible:=true;

end;

end.




Информация о работе Транспортная задача