Ответ: Оптимальный план транспортной задачи равен 3230.
Расчёты проводили в Delphi.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Spin, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
Label4: TLabel;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
UpDown2: TUpDown;
UpDown1: TUpDown;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
Form1.StringGrid1.ColCount:=1+2*strtoint(Form1.Edit1.Text);
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
Form1.StringGrid1.RowCount:=1+2*strtoint(Form1.Edit2.Text) ;
end;
{procedure NEditChange(Sender: TObject);
begin
Form1.StringGrid1.ColCount:=1+2*strtoint(Form1.Edit1.Text);
end;
procedure MEditChange(Sender: TObject);
begin Form1.StringGrid1.RowCount:=1+2*strtoint(Form1.Edit2.Text) ;
end; }
procedure TForm1.Button1Click(Sender: TObject);
var i,w, v,o,p, sum : integer;
begin
w:=0;
v:=0;
o:=1;
repeat
w:=w+strtoint(StringGrid1.Cells[o,0]);
o:=o+2;
until o>=StringGrid1.ColCount-1;
p:=1;
repeat
v:=v+strtoint(StringGrid1.Cells[0,p]);
p:=p+2;
until p>=StringGrid1.RowCount-1;
if w>v then
begin
StringGrid1.RowCount:=StringGrid1.RowCount+2;
StringGrid1.Cells[0,StringGrid1.RowCount-2]:=inttostr(w-v);
o:=1;
repeat
StringGrid1.Cells[o-1,StringGrid1.RowCount-1]:='0';
o:=o+2;
until o>=StringGrid1.rowcount;
end;
if w<v then begin
StringGrid1.ColCount:=StringGrid1.ColCount+2;
StringGrid1.Cells[StringGrid1.ColCount-2,0]:=inttostr(v-w);
o:=2;
repeat
StringGrid1.Cells[StringGrid1.ColCount-1,o-1]:='0';
o:=o+2;
until o>=StringGrid1.colcount ; end;
o:=1;
p:=1;
repeat
if strtoint(StringGrid1.Cells[o,0])>strtoint(StringGrid1.Cells[0,p]) then
begin
StringGrid1.Cells[o,p]:=StringGrid1.Cells[0,p];
StringGrid1.Cells[o,0]:=inttostr(strtoint(StringGrid1.Cells[o,0])-strtoint(StringGrid1.Cells[0,p]));
StringGrid1.Cells[0,p]:='0';
p:=p+2;
end
else
begin
if strtoint(StringGrid1.Cells[p,0])<strtoint(StringGrid1.Cells[0,p]) then begin
StringGrid1.Cells[o,p]:=StringGrid1.Cells[i,0];
StringGrid1.Cells[0,p]:=inttostr(strtoint(StringGrid1.Cells[0,p])-strtoint(StringGrid1.Cells[o,0]));
StringGrid1.Cells[o,0]:='0';
o:=o+2;
end
else
begin
StringGrid1.Cells[o,p]:=StringGrid1.Cells[o,0];
StringGrid1.Cells[0,p]:='0';
StringGrid1.Cells[o,0]:='0';
o:=o+2;
p:=p+2;
end;
end;
until (o>=StringGrid1.ColCount-1) or (p>=StringGrid1.RowCount-1);
o:=1;
p:=1;
repeat
repeat
if StringGrid1.Cells[o,p]<>''
then
sum:=sum+(strtoint(StringGrid1.Cells[o,p])*strtoint(StringGrid1.Cells[o+1,p]));
inc(p,2);
until (p>=StringGrid1.RowCount-1);
p:=1;
inc(o,2);
until o>=StringGrid1.ColCount-1 ;
Label3.Caption:=Label3.Caption+inttostr(sum);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
В результате проделанной работы была изучена тема: «Линейное программирование» и освоены следующие методы решения задач линейного программирования:
· аналитический
· графический
· симплекс-метод
· решение транспортной задачи методом потенциалов
В работе использовались следующие прикладные пакеты: Word, Excel,Delphi.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.