Методы оптимизации в технико-экономических задачах

Дипломная работа - Менеджмент

Другие дипломы по предмету Менеджмент

кл пересчета.

Выполнив цикл пересчета получим таблицу.

Потребители Заводы B1B2B3B4В5ЗапасыПот-лыA15 12 3 4 5 -124 23 110 725 6 19240A230 4 262 8 22 7 16 9 77 5 215-1A330 9 21 24 7 17 27 729 14 1510 9164А415 -3 1817 -5 2221 15 62 243 -2 524-8Потребности12131431979 79Пот-лы5323106

Из таблицы видно, что все коэффициенты неотрицательны, следовательно полученный план оптимален.

Минимальная стоимость перевозок составляет:

fmin = 5*12+3*5+10*7+2*8+22*7+27*7+10*9+2*24= 453

Планы перевозок будут следующие:

1)С завода А1 будут отправлены 12 шт. товара потребителю B1, 5 шт. товара потребителю B2 и 7 шт. товара потребителю B4.

2)С завода А2 будут отправлены 8 шт. товара потребителю B2 и 7 шт. товара потребителю B3.

)С завода А3 будет отправлено 7 шт. товара потребителю B3 и 9 шт. товара потребителю B5.

)С завода А4 будут отправлены 24 шт. товара потребителю B4.

 

Заключение

 

В данной курсовой работе были решены поставленные задачи двумя способами: ручным расчетом и программным. Для программного расчета были написаны соответствующие программы, которые позволяют решать не одну конкретную задачу, а любую задачу подобного класса.

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

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

Приложение1. Блок-схема к задаче безусловной минимизации функции нескольких переменных

 

 

Вычисление основной функции

Вычисление производной по х1

Вычисление производной по х2

 

 

 

 

 

 

 

Основная программа:

Приложение2

 

Текст программы к задаче безусловной минимизации функции нескольких переменных

{Программа, реализующая поиск}

{поиск безусловного минимума функции}

{нескольких переменных}

{методом градиентного спуска}

program kurs;

uses crt;

Const

x3=0.0308;{фиксированная переменная}

var

x0,x1:array [1..2] of real;{k-ое и (k+1)-ое приближение}

alfa:real;{шаг}

u1,u2,u3,u4:boolean;{условия останова}

k:integer;{счътчик итераций}

a,b,tau,xgr,fgr,fgrK,Epr,Ef,Ex:real;{погрешности измерений}

{основная функция}

Function f(x1,x2:real):real;

begin

f:=7*sqr(x1)+4*sqr(x2)+6*sqr(x3)-3*x1*x2+x3*x1-x3*x2+x1-x2+x3+82.9;

end;

{производная по х1}

Function DfDx1(x1,x2:real):real;

begin

DfDx1:=14*x1-3*x2+x3+1;

end;

{производная по х2}

Function DfDx2(x1,x2:real):real;

begin

DfDx2:=8*x2-3*x1-x3-1;

end;

 

begin

clrscr;

alfa:=1; {шаг}

 

x0[1]:=x3; {начальное приближение}

x0[2]:=x3;

 

tau:=25*0.00000001;

fgr:=0.0001;

xgr:=0.0001;

fgrK:=0.001;

 

u1:=false;

u2:=false;

u3:=false;

u4:=false;

k:=0;{счътчик итераций}

 

repeat

k:=k+1;

 

x1[1]:=x0[1]-alfa*DfDx1(x0[1],x0[2]);{вычисление приближений х}

x1[2]:=x0[2]-alfa*DfDx2(x0[1],x0[2]);

 

if f(x1[1],x1[2])>f(x0[1],x0[2])

then

alfa:=alfa/2;{уменьшение шага}

 

 

{1условие}

if abs(f(x1[1],x1[2]))>=fgr

then

Ef:=tau*abs(f(x1[1],x1[2]))

else

Ef:=tau;

if abs(f(x1[1],x1[2])-f(x0[1],x0[2]))<=Ef

then

u1:=true;

{2условие}

if sqrt(sqr(x1[1])+sqr(x1[2]))>=xgr

then

Ex:=sqrt(tau)*sqrt(sqr(x1[1])+sqr(x1[2]))

else

Ex:=sqrt(tau);

if sqrt(sqr(x1[1]-x0[1])+sqr(x1[2]-x0[2]))<=Ex

then

u2:=true;

{3условие}

if abs(f(x1[1],x1[2]))>fgrK

then

Epr:=exp(1/3*ln(tau))*abs(f(x1[1],x1[2]))

else

Epr:=exp(1/3*ln(tau));

if abs(DfDx1(x1[1],x1[2])+DfDx2(x1[1],x1[2]))<=Epr

then

u3:=true;

{4условие}

if (u2=true) and (u3=true) and (u1=false) and (k=10)

then

u4:=true;

if (u1=true) and (u2=true) and (u3=true)

then

u4:=true;

 

x0[1]:=x1[1]; {запоминаем к-ое приближение}

x0[2]:=x1[2];

 

until u4;

writeln('Вычисленное значение alfa = ',alfa:4:3);

writeln('Значение x вычисленные методом градиентного спуска:');

writeln('[',x1[1],',',x1[2],']');

writeln('f[',x1[1]:4:10,',',x1[2]:4:10,']=',f(x1[1],x1[2]));

 

readln;

end.

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

 

1.Конюховский П. В. Математические методы исследования операций в экономике - СПб: Питер, 2000г.;

2.Калихман И.Л. Сборник задач по математическому программированию, 1975г.;

.Акулич И.Л. Математическое программирование в примерах и задачах, 1986г.;

.Калихман И.Л., Войтенко М.А. Динамическое программирование в примерах и задачах, 1979г.;

.Мухачева Э.А., Рубинштейн Г.Ш. Математическое программирование, 1977г.;

.Калихман И.Л. Сборник задач по математическому программированию, 1975 г.

.Кузнецов Ю.Н., Кузубов В.И., Волощенко А.Б. Математическое программирование, 1976 г.

.Сборник задач по математике для ВТУЗов, ч. 3, изд. 4, 2002 г.