- •Введение
- •1 Обзор существующих информационных систем оптимизации грузопотоков
- •1.1 Анализ состояния и перспективы роста грузопотоков в системе развития транзитного потенциала транспортной инфраструктуры Республики Казахстан
- •1.2. Высокопроизводительный механизм математического программирования ibm ilog cplex
- •1.2.1 Применение iLog в транспорте
- •1.3 Оптимизация транспортной логистики
- •1.4 Постановка исследуемой транспортной задачи
- •2 Модели и методы решения транспортных задач
- •2.1 Математическая модель исследуемой транспортной задачи
- •2.2 Постановка математической задачи оптимизации
- •2.3 Модель транспортной задачи
- •3 Выбор и обоснование метода реализации математической модели
- •3.1 Методы оптимизации транспортной задачи
- •3.2 Метод решения транспортной задачи
- •3.3 Разработка алгоритма решения исследуемой транспортной задачи
- •3.4 Пример решения исследуемой транспортной задачи
- •3.5 Разработка алгоритма и программного обеспечения
- •3.6 Диалоговая программная система для решения транспортных задач
- •3.7 Расчет примера транспортной задачи
- •Заключение
- •Список использованных источников
- •Приложение а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Приложение б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
- •Продолжение приложения б
Продолжение приложения а
for(;;)
{
fprintf(fil,"*********** Начало ДОЛБАНУТОЙ Итерации**********\n");
basper = 0;
Bas();
//void sohran(void);
if(iter>0)
{
//Количество базисных ненулевых переменных <m+n-1
if(basper <m+n-1) sohran();
}
kost(); //****** Вывод общей стоимости******
potenzial(); //*******Подсчет потенциалов********
ch2 = 0;
z = optim();
if(!z) break;
plmi();
iter++;
fprintf(fil,"%d ШАГ ДОСТАВШЕЙ ДО СЪЕХАВШЕЙ КРЫШИ ИТЕРАЦИИ",iter);
}
//************* ПРОВЕРКА************
printf("\n\nOPTIMAL PLAN :\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",*(matr+i*n+j));
}
printf("\n");
}
fprintf(fil,"optimal PLAN :\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
fprintf(fil,"%5d",*(matr+i*n+j));
}
fprintf(fil,"\n");
}
kost();
//************ВЫВОД общей стоимости***********
fclose(fil);
clrscr();
printf("Отчет о проделанной работе ");
getch();
return;
} // main
Приложение б
Листинг программы:
Программа написана на borland delphi версии 7.0
unit PTransportTask;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Math, ComCtrls, ExtCtrls, Menus;
const
fFigSize: integer = 10;
type
TFigure = class
public
x,y: integer;
num: integer;
flag: integer;
val: integer;
p: integer;
end;
TLine = class
public
i1, i2: integer;
val: integer;
end;
TData = class
public
Width, Height: integer;
Arr: array [0..99, 0..99] of integer;
Left, Top: array[0..99] of integer;
constructor Create;
procedure Reset;
procedure Assign( data: TData );
procedure AssignLT( data: TData );
function NoNulls: integer;
Продолжение приложения б
function Min: integer;
end;
TEquation = record
p1, p2: integer;
sum: integer;
solved: boolean;
end;
TVar = record
v: integer;
solved: boolean;
end;
TEqSolve = class
public
Eq: array [0..100] of TEquation;
fV: array [0..100] of TVar;
fEqCount, fVarCount, fH: integer;
function GetU( index: integer ): TVar;
function GetV( index: integer ): TVar;
procedure AddEq( p1, p2, s: integer );
constructor Create( h, v_c: integer );
procedure Solve;
property U[index: integer]: TVar read GetU;
property V[index: integer]: TVar read GetV;
end;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button5: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Button3: TButton;
MainMenu1: TMainMenu;
Afqk1: TMenuItem;
N1: TMenuItem;
Продолжение приложения б
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button7Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
fData: TData;
fFigures: TList;
fLines: TList;
fMouseState : integer;
fMouseInd: integer;
{ Public declarations }
function Check( data: TData ): boolean;
procedure CalcNorthWest( data: TData; var plan: TData );
procedure CalcMinEl( data: TData; var plan: TData );
procedure CalcPotential( data: TData; var plan, x: TData );
procedure Dump( data: TData; fl: integer );
function CalcSum( data, plan: TData ): integer;