Автор работы: Пользователь скрыл имя, 26 Ноября 2013 в 21:33, курсовая работа
Целью данного проекта является реализация программы решения задачи маршрутизации. Данная система предназначена для предприятий, которые работают с большим количеством заказчиков, расположенных относительно друг друга в совершенном различном порядке. Данный программный продукт предназначен прежде всего для компаний, которые хотят оптимизировать маршрут и порядок обработки заказов.
ВВЕДЕНИЕ …………………………………………………………..………......3
1.ПОСТАНОВКА ЗАДАЧИ……….…………………………………………….4
2.ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ……………………………………………...5
2.1 Изучение математических методов решения задач...…...…………….5
2.2 Метод ветвей и границ ………………………………………………… 6
2.3 Метод динамического программирования…………………………….12
3.ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ РАЗРАБАТЫВАЕМЫХ ПРОГРАММНЫХ СРЕДСТВ…………………………………………………..14
3.1 Схема взаимодействия программ……………………………………..14
3.2 Формат исходных данных и результаты решения задачи…………..15
3.3 Требования к программному изделию………………………….........16
3.4 Требования к программной документации…..……………………....16
4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ………………………………………...17
ЭКСПЕРИМЕНТАЛЬНЫЕ РАСЧЕТЫ……………………………………..20
5.1 Контрольные примеры для решения на ЭВМ………………………..20
5.2 Экспериментальные расчеты………………………………………….28
ЗАКЛЮЧЕНИЕ………………………………………………………………….30
ЛИТЕРАТУРА…………………………………………………………………...31
ПРИЛОЖЕНИЕ………………………………………………………………….32
if ((strtoint(form2.stringgrid1.
end;
function Q(j:integer;i:integer) :integer;
var stolbec,stroka,l,k:integer;
begin
for l:=1 to form2.StringGrid2.ColCount-2 do
begin
if form2.StringGrid2.Cells[l,i]<>
if l<>j then
if form2.StringGrid3.Cells[form2.
then form2.StringGrid3.Cells[form2.
else if form2.StringGrid2.cells[l,i]<>
then form2.StringGrid3.Cells[form2.
end;
end;
stroka:=strtoint(form2.
for k:=1 to form2.StringGrid2.rowCount-2 do
begin
if form2.StringGrid3.Cells[j,
then form2.StringGrid3.Cells[j,
else if form2.StringGrid2.cells[j,k]<>
then form2.StringGrid3.Cells[j,
end;
stolbec:=strtoint(form2.
Result:=stolbec+stroka;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
var i,j,k,l,schetchik,number,
listboxitem_in_stringgrid: boolean;
begin
schetchik:=0;
h0:=0;
for j:=1 to form1.SpinEdit1.Value-1 do
begin
listboxitem_in_stringgrid:=
for i:=0 to listbox1.Items.Count-1 do
begin
if form2.StringGrid1.Cells[0,j]=
end;
if listboxitem_in_stringgrid=
then begin
form2.edit1.text:=form2.edit1.
schetchik:=schetchik+1;
for i:=0 to form2.StringGrid1.ColCount-1 do
form2.StringGrid1.Cells[i,j]:=
end
else form2.edit1.text:=form2.edit1.
end;
form2.Edit1.text:=form2.Edit1.
form2.Show;
number:=4;
for i:=0 to form1.spinedit1.Value-1 do
form2.stringgrid1.Cells[i,0]:=
for i:=1 to form2.StringGrid1.ColCount-1 do
if form2.StringGrid1.cells[0,i]='
begin
for l:=i to form2.stringgrid1.rowcount do
for k:=1 to form2.StringGrid1.colCount do
form2.StringGrid1.Cells[k-1,l]
end;
for i:=1 to form2.StringGrid1.ColCount-1 do
if form2.StringGrid1.cells[i,0]='
begin
for l:=i to form2.stringgrid1.rowcount do
for k:=1 to form2.StringGrid1.colCount do
form2.StringGrid1.Cells[l,k-1]
end;
form2.StringGrid1.RowCount:=
form2.StringGrid1.colCount:=
form4.visible:=true;
if form3.ListBox1.Items.Count=
begin
case min3 of
1:form4.edit2.text:=inttostr(
2:form4.edit2.text:=inttostr(
3:form4.edit2.text:=inttostr(
end;
for j:=2 to 4 do
for i:=2 to 4 do
if (i<>j) and (i<>min3+1) and (j<>min3+1) then
if B(i,j)<B(j,i) then form4.edit1.text:=form2.String
else form4.edit1.text:=form2.
form4.edit3.text:=inttostr(
form4.edit4.text:=inttostr(
form4.edit5.text:=inttostr(
end;
if form3.ListBox1.Items.Count=
if (strtoint(form2.stringgrid1.
then begin
form4.edit2.text:=inttostr(
for i:=1 to 3 do form4.edit1.text:=form4.edit1.
form4.edit1.text:=form4.edit1.
end
else begin
form4.edit2.text:=inttostr(
form4.edit1.text:=form2.
end;
if form3.ListBox1.Items.Count=
begin
form4.edit2.text:=inttostr(
form4.edit1.text:=form2.
end;
form2.StringGrid2.RowCount:=
form2.StringGrid2.colCount:=
form2.StringGrid2.ColCount:=
form2.StringGrid2.rowCount:=
form2.StringGrid3.RowCount:=
form2.StringGrid3.colCount:=
for i:=0 to form2.StringGrid1.RowCount-1 do
for j:=0 to form2.StringGrid1.colcount-1 do
form2.stringgrid2.cells[j,i]:=
if form3.ListBox1.Items.Count>
for i:=1 to strtoint(form3.Edit1.text)-2 do
begin
for j:=1 to form2.StringGrid2.colCount-2 do //min po strokam
for i:=1 to form2.StringGrid2.RowCount-2 do
if form2.StringGrid2.cells[j,i]<>
if form2.StringGrid2.cells[form2.
else if strtoint(form2.StringGrid2.
for j:=1 to form2.StringGrid2.colCount-2 do //otnimaem po strokam
for i:=1 to form2.StringGrid2.RowCount-2 do
if form2.StringGrid2.cells[i,j]<>
for i:=1 to form2.StringGrid2.colCount-2 do //min po stolbcam
for j:=1 to form2.StringGrid2.RowCount-2 do
if form2.StringGrid2.cells[i,j]<>
if form2.StringGrid2.cells[i,
else if strtoint(form2.StringGrid2.
for i:=1 to form2.StringGrid2.colCount-2 do //otnimaem po stolbcam
for j:=1 to form2.StringGrid2.RowCount-2 do
if form2.StringGrid2.cells[j,i]<>
for i:=1 to form2.StringGrid2.rowCount-2 do
h0:=h0+strtoint(form2.
for i:=1 to form2.StringGrid2.rowCount-2 do
h0:=h0+strtoint(form2.
form2.Edit2.Text:=inttostr(h0)
end;
qmax:=0;
qj:=0;
qi:=0;
for i:=1 to form2.StringGrid2.colCount-2 do
for j:=1 to form2.StringGrid2.RowCount-2 do
if form2.StringGrid2.cells[j,i]<>
begin
if strtoint(form2.StringGrid2.
then begin
if Q(j,i)>qmax then begin qmax:=Q(j,i);
end;
end;
h0:=ho+qmax;
for i:=1 to form2.StringGrid2.rowCount-2 do
form2.StringGrid2.cells[qj,i]:
for i:=1 to form2.StringGrid2.rowCount-2 do
form2.StringGrid2.cells[i,qi]:
form2.StringGrid2.rowCount:=
form2.StringGrid2.colCount:=
form4.Edit1.Text:=form4.Edit1.
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit3;
{$R *.dfm}
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form3.Close;
end;
end.