Использование табличного симплекс-метода для решения задач линейного программирования для оптимизации экономических задач

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

Для того чтобы скачать эту работу.
1. Подтвердите что Вы не робот:
2. И нажмите на эту кнопку.
закрыть



clrscr;

WriteTargetMatrix;

WriteMatrixA;

WriteMatrixSimplex;

end;

 

procedure WriteMatrixsInFile;

 

procedure WriteTargetMatrix;

var i : integer;

begin

writeln(FileOfOutput, +-----------------------------------------------------+);

write (FileOfOutput, Target );

for i:=1 to n+m do write(FileOfOutput, ToStr(TargetVector[i]),); writeln(FileOfOutput);

end;

 

procedure WriteMatrixA;

var i,j : integer;

begin

writeln(FileOfOutput, +-----------------+--------+--------+--------+--------+--------+--------);

writeln(FileOfOutput, Basis D.Basis A 0 A 1 A 2 A 3 A 4 A 5 );

writeln(FileOfOutput, +--------+--------+--------+--------+--------+--------+--------+--------);

for i:=1 to m do

begin

write(FileOfOutput, A ,BasisVector[i], ,ToStr(DigitOfBasisVector[i]),);

for j:=0 to m+n do write(FileOfOutput, ToStr(VectorA[i, j]),); writeln(FileOfOutput);

if i = m then writeln(FileOfOutput, +--------+--------+--------+--------+--------+--------+--------+--------)

else writeln(FileOfOutput, +--------+--------+--------+--------+--------+--------+--------+--------);

end;

end;

 

 

 

 

- 35 -

 

 

procedure WriteMatrixSimplex;

var i : integer;

begin

write(FileOfOutput, Simplex);

for i:=0 to m+n do write(FileOfOutput, ToStr(SimplexVector[i]),); writeln(FileOfOutput);

writeln(FileOfOutput, +--------------------------------------------------------------+);

end;

 

begin

clrscr;

WriteTargetMatrix;

WriteMatrixA;

WriteMatrixSimplex;

end;

 

{ Головная программа }

BEGIN

ClrScr;

ReadDates;

Assign(FileOfOutput, kurs97.res);

Rewrite(FileOfOutput);

CountSimplexVector;

WriteMatrixs;

while not AllIsPositiv do

begin

IndexOfEnterVector:=GetEnterVector;

IndexOfOutputString:=GetOutputString;

ReCountOutputString;

ReCountVectorA;

CountSimplexVector;

WriteMatrixsInFile;

WriteMatrixs;

if key=#0 then key:=readkey; key:=#0;

end;

Close(FileOfOutput);

END.

 

 

 

- 36 -

 

6. ОПИСАНИЕ ЛОГИКИ СТРУКТУРНОЙ СХЕМЫ

 

В программе реализованны следующие процедуры :

1. Процедура ReadDates - считывает данные из файла.

2. Процедура ReadDatesTargetVector - считывает коэффициенты при неизвестных в целевой функции из файла.

3. Процедура ReadDatesVector - считывание их входного файла матрицы А и заполнение диагональной матрицы.

4. Процедура CountSimplexVector - рассчёт симплекс-разностей.

5. Процедура GetEnterVector - поиск вводимого в базис столбца.

6. Процедура GetOutputString - поиск выводимой из базиса строки.

7. Процедура ReCountOutputString- пересчёе выводимой строки.

8. Процедура ReCountVectorA - пересчёт остальной матрицы ограничений.

9. Процедуры WriteMatrixA, WriteTargetMatrix, WriteMatrixSimplex - печать результирующих таблиц на экран и в файл.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 37 -

 

7. ТЕСТОВЫЙ ПРИМЕР

 

Тестовый пример программы KURS 97.EXE представлен на рисунке 2 в виде исходной и результирующих симплекс-таблиц данного задания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 39 -

 

ЛИТЕРАТУРА

 

1. ЕСПД ГОСТ 19.105-78, 19.104-78.

2. ЕСПД ГОСТ 19.502-78.

3. Венцель Е.С. Исследование операций.-М.:Советское радио. 1972 г.

4. Дектярев Ю.И. Исследование операций.-М.:Высшая школа. 1986 г.

5. Зайченко Ю.П. Исследование операций.-К.:Вища школа. 1979 г.

6. Зайченко Ю.П., Шумиллова С.А. Исследование операций ( сборник задач ).-К.:Вища школа. 1990 г.