Программная реализация на языке Delphi

Автор: Пользователь скрыл имя, 25 Января 2012 в 22:49, реферат

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

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

Содержание

Введение
Линейное программирование
Симплекс метод
Постановка задачи
Разработка алгоритма
Решение задачи
Программная реализация на языке Delphi
Приложение
Заключение
Список используемой литературы

Работа содержит 1 файл

httpreferatwork.rurefssourceref-12534.html.docx

— 56.45 Кб (Скачать)

is_basis:=true;

for k:=1 to n do

if k<>i then

if (matrix[k,j]<>0) then

if (is_basis=true) then

begin

is_basis:=false;

all_basis[i]:=0;

end;

end;

if is_basis=false then

begin

i_basis:=i_basis+1;

y:=y+1;

for k:=1 to n+1 do

begin {во всех ограничениях и в ЦФ}

{перед правой  частью добавляем столбец}

matrix[k,m+y+1]:=matrix[k,m+y];

matrix[k,m+y]:=0;{состоящий из нулей}

end;

matrix[i,m+y]:=1;

all_basis[i]:=m+y;

end;

end;

{//////////////// Закончили  ввод искусственного базиса //////////////////////}

{////////////////////////////////////////////////////////////////////////////}

{////////////////////////////////////////////////////////////////////////////}

{//////////////// теперь  надо от него избавиться ////////////////////////////}

if i_basis>0 then

begin

write(f, '<H2>Необходимо ввести искусственный базис</H2>');

zapisat(n+1,m+y+1,-1,-1);

writeln(f, '<P>Искусственный базис введен.<br>');

writeln(f, 'Избавившись от него, получим первое допустимое решение</P>');

iter:=0;

repeat

inc(iter);

findved;

preobr;

until (i_basis=0) or (iter=20) or (done=true);

if i_basis=0 then

begin

writeln(f,'<P>Искусственный базис выведен полностью.<br>');

writeln(f,'Получено первое допустимое решение!</P>');

end

else

begin

writeln(f,'<P>Не удалось вывести искусственный базис.<br>');

writeln(f,'Решение не найдено.</P>');

end;

end;

{//////////////////////// попытки  избавленя окончены ////////////////////////}

{////////////////////////////////////////////////////////////////////////////}

{/////////////////////////////// SIMPLEX START /////////////////////////////}

if i_basis=0 then

begin

iter:=0;

findved;

if done=false then

begin

writeln(f,'<H2>Применяем симплекс метод</H2>');

repeat

inc(iter);

findved;

preobr;

until (done=true) or (iter=20);

end;

end;

otvet;

{/////////////////////////////// SIMPLEX END ///////////////////////////////}

writeln(f,'</BODY>');

writeln(f,'</HTML>');

CloseFile(f);

{////////////////////////////////////////////////////////////////////////////}

end;

{////////////////////////////////////////////////////////////////////////////}

{///////// все, что  ниже, относится к переходам между  шагами ////////////////}

{////////////////////////////////////////////////////////////////////////////}

procedure TForm1.ExitClick(Sender: TObject);

begin

Close();

end;

procedure TForm1.Button_NextClick(Sender: TObject);

begin

step:=step+1;

Form1.Button_Prev.Enabled:=true;

case step of

1:Step1;

2:begin

Step2;

Form1.Button_Next.Enabled:=false;

end;

else step:=step-1;

end;

form1.Caption:='Симплекс метод - шаг '+inttostr(step);

end;

procedure TForm1.Button_PrevClick(Sender: TObject);

begin

step:=step-1;

Form1.Button_Next.Enabled:=true;

case step of

0:begin

Init;

Form1.Button_Prev.Enabled:=false;

end;

1:Step1;

else step:=step+1;

end;

form1.Caption:='Симплекс метод - шаг '+inttostr(step);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Init;

end;

Заключение

В данной курсовой работе было рассмотрено решение  задач линейного программирования симплекс методом. Задача была решена симплекс методом, так же задача была решена графически (построен график). Для  представленной задачи была составлена программа на языке Delphi, программа находит значения целевой функции при условии максимизации значения.

Таким образом, вычислительная техника в настоящее  время находит широкое применение, как в общей математике, так  и в одном из её разделов - математических методах.

Список  используемой литературы

1. Зайченко Ю.П., Шумилова С.А. Исследование операций.

2. Лищенко «Линейное и нелинейное программирование», М. 2003

3. А.Н. Карасев,  Н.Ш. Кремер, Т.Н. Савельева «Математические  методы в экономике», М.2000

4. Орлов А.И.  Теория принятия решений. Учебное  пособие. - М.: Издательство "Март", 2004

5. Интернет

Информация о работе Программная реализация на языке Delphi