Материалы сайта
Это интересно
Анализ экономических задач симплексным методом
Введение. Многие задачи, с которыми приходится иметь дело в повседневной практике, являются многовариантными. Среди множества возможных вариантов в условиях рыночных отношений приходится отыскивать наилучшие в некотором смысле при ограничениях, налагаемых на природные, экономические и технологические возможности. В связи с этим возникла необходимость применять для анализа и синтеза экономических ситуаций и систем математические методы и современную вычислительную технику? Такие методы объединяются под общим названием — математическое программирование. Математическое программирование — область математики, разрабатывающая теорию и численные методы решения многомерных экстремальных задач с ограничениями, т. е. задач на экстремум функции многих переменных с ограничениями на область изменения этих переменных. Функцию, экстремальное значение которой нужно найти в условиях экономических возможностей, называют целевой, показателем эффективности или критерием оптимальности. Экономические возможности формализуются в виде системы ограничений. Все это составляет математическую модель. Математическая модель задачи — это отражение оригинала в виде функций, уравнений, неравенств, цифр и т. д. Модель задачи математического программирования включает: 1) совокупность неизвестных величин, действуя на которые, систему можно совершенствовать. Их называют планом задачи (вектором управления, решением, управлением, стратегией, поведением и др.); 2) целевую функцию (функцию цели, показатель эффективности, критерий оптимальности, функционал задачи и др.). Целевая функция позволяет выбирать наилучший вариант -из множества возможных. Наилучший вариант доставляет целевой функции экстремальное значение. Это может быть прибыль, объем выпуска или реализации, затраты производства, издержки обращения, уровень обслуживания или дефицитности, число комплектов, отходы и т. д.; Эти условия следуют из ограниченности ресурсов, которыми располагает общество в любой момент времени, из необходимости удовлетворения насущных потребностей, из условий производственных и технологических процессов. Ограниченными являются не только материальные, финансовые и трудовые ресурсы. Таковыми могут быть возможности технического, технологического и вообще научного потенциала. Нередко потребности превышают возможности их удовлетворения. Математически ограничения выражаются в виде уравнений и неравенств. Их совокупность образует область допустимых решений (область экономических возможностей). План, удовлетворяющий системе ограничений задачи, называется допустимым. Допустимый план, доставляющий функции цели экстремальное значение, называется оптимальным. Оптимальное решение, вообще говоря, не обязательно единственно, возможны случаи, когда оно не существует, имеется конечное или бесчисленное множество оптимальных решений. Один из разделов математического программирования - линейным программированием. Методы и модели линейного программирования широко применяются при оптимизации процессов во всех отраслях народного хозяйства: при разработке производственной программы предприятия, распределении ее по исполнителям, при размещении заказов между исполнителями и по временным интервалам, при определении наилучшего ассортимента выпускаемой продукции, в задачах перспективного, текущего и оперативного планирования и управления; при планировании грузопотоков, определении плана товарооборота и его распределении; в задачах развития и размещения производительных сил, баз и складов систем обращения материальных ресурсов и т. д. Особенно широкое применение методы и модели линейного программирования получили при решении задач экономии ресурсов (выбор ресурсосберегающих технологий, составление смесей, раскрой материалов), производственно-транспортных и других задач. Начало линейному программированию было положено в 1939 г. советским математиком-экономистом Л. В. Канторовичем в работе «Математические методы организации и планирования производства». Появление этой работы открыло новый этап в применении математики в экономике. Спустя десять лет американский математик Дж. Данциг разработал эффективный метод решения данного класса задач — симплекс-метод. Общая идея симплексного метода (метода последовательного улучшения плана) для решения ЗЛП состоит в следующем: 1) умение находить начальный опорный план; 2) наличие признака оптимальности опорного плана; 3) умение переходить к нехудшему опорному плану. §1.Задача линейного программирования и [pic]свойства[pic] ее решений. 1.1 Понятие линейного программирования. Линейное программирование—раздел математического программирования, применяемый при разработке методов отыскания экстремума линейных функций нескольких переменных при линейных дополнительных ограничениях, налагаемых на переменные. По типу решаемых задач его методы разделяются на универсальные и специальные. С помощью универсальных методов могут решаться любые задачи линейного программирования (ЗЛП). Специальные методы учитывают особенности модели задачи, ее целевой функции и системы ограничений. Особенностью задач линейного программирования является то, что экстремума целевая функция достигает на границе области допустимых решений. Классические же методы дифференциального исчисления связаны с нахождением экстремумов функции во внутренней точке области допустимых значений. Отсюда — необходимость разработки новых методов. Формы записи задачи линейного программирования: Общей задачей линейного программирования называют задачу [pic] (1) при ограничениях [pic] (2) [pic] (3) [pic] (4) [pic] (5) [pic]- произвольные [pic] (6) где [pic]- заданные действительные числа; (1) – целевая функция; (1) – (6) –ограничения; [pic] - план задачи. 1.2 Свойства решений. Пусть ЗПЛ представлена в следующей записи: [pic] (7) [pic] (8) [pic] (9) Чтобы задача (7) – (8) имела решение, системе её ограничений (8) должна быть совместной. Это возможно, если r этой системы не больше числа неизвестных n. Случай r>n вообще невозможен. При r= n система имеет единственное решение, которое будет при [pic]оптимальным. В этом случае проблема выбора оптимального решения теряет смысл. Выясним структуру координат угловой точки многогранных решений. Пусть r5, ресурс [pic] считается более дефицитным, чем ресурс [pic]. На основе теоремы (о дополняющей нежесткости) нетрудно объяснить, почему не вошла в оптимальный план продукция [pic]и [pic]: первое и второе ограничения двойственной задачи выполняются как строгие неравенства: 4-15+2- 5+0>65, 2-15+10*5>70. Это означает, что оценки ресурсов, расходуемых на изготовление единицы продукции [pic] и [pic], превышают оценки единицы этой продукции. Понятно, что такую продукцию выпускать предприятию невыгодно. Что же касается продукции [pic] и [pic] [pic], то выпуск ее оправдан, поскольку оценка израсходованных ресурсов совпадает с оценкой произведенной продукции: 2*15+ +6*5+2*0=60, 8*15+0=120. Таким образом, в оптимальный план войдет только та продукция, которая выгодна предприятию, и не войдет убыточная продукция. В этом проявляется рентабельность оптимального плана. Рассмотрим возможность дальнейшего совершенствования оптимального ассортимента выпускаемой продукции. Выше установлено, что ресурсы [pic] и [pic] являются дефицитными. В связи с этим на основе теоремы (об оценках) можно утверждать, что на каждую единицу ресурса [pic], введенную дополнительно в производство, будет получена дополнительная выручка [pic], численно равная [pic]. В самом деле, при [pic]получаем [pic]. По тем же причинам каждая дополнительная единица ресурса[pic]обеспечит прирост [pic] выручки, равный 5 р. Теперь становится понятно, почему ресурс [pic]считается более дефицитным по сравнению с ресурсом [pic]: он может содействовать получению большей выручки. Что же касается избыточного ресурса [pic], то увеличение его запаса не приведет к росту выручки, поскольку [pic]. Из приведенных рассуждений следует, что оценки ресурсов позволяют совершенствовать план выпуска продукции. Выясним экономический смысл оценок [pic]продукции [pic],[pic],[pic],[pic]. По оптимальному плану [pic]выпускать следует продукцию [pic]и [pic]. Оценки [pic] и [pic] этих видов продукции равны нулю. Что это означает, практически станет ясно, если представить оценки в развернутой записи: [pic] [pic] Таким образом, нулевая оценка показывает, что эта продукция является неубыточной, поскольку оценка ресурсов, расходуемых на выпуск единицы такой продукции, совпадает с оценкой единицы изготовленной продукции. Что же касается продукции [pic] и [pic] являющейся, как установлено выше, убыточной, а потому и не вошедшей в оптимальный план, то для ее оценок [pic] и [pic]получаем: [pic] [pic] Отсюда видно, что оценка убыточной продукции показывает, насколько будет снижать каждая единица такой продукции достигнутый оптимальный уровень. §8. Программа и расчеты. {Программа составлена для решения задачи линейного программирования симплексным методом} uses crt; const n=2;{число неизвестных исходной задачи} m=3;{число ограничений} m1=0;{последняя строка равенств} m2=1;{последняя строка неравенств вида >=} label 5,15,20,10; var b,cb:array[1..m] of real;c,x,e:array[1..50] of real;a:array[1..m,1..50] of real; s0,max,mb,s1:real;i,j,k,i0,j0,m21,nm1,n1:integer; Bi:array[1..m] of integer; begin clrscr; writeln; writeln (' Симплексный метод решения задачи линейного программирования:'); writeln; writeln (' Проведем некоторые преобразования с данной задачей:'); writeln; writeln (' Подготовьте матрицу: сначала равенства, потом неравенства вида >= и неравенства вида <=;'); writeln (' Целевая функция должна быть на минимум (привести ее к такому виду); '); writeln (' Вектор b должен состоять только из положительных элементов (привести его к та- кому виду);'); writeln(' Введите матрицу А ',m,'*',n,' построчно:'); for i:=1 to m do begin for j:=1 to n do read (a[i,j]); readln end; writeln (' Введите в виде строки вектор b, состоящий из ',m,' компонент:'); for i:=1 to m do read (b[i]); writeln(' Введите теперь вектор с, состоящий из ',n,' компонент:'); for i:=1 to n do read (c[i]); m21:=m2-m1+n;nm1:=n+m-m1;n1:=n+m-m1+m2; for i:=1 to m do for j:=n+1 to n1 do a[i,j]:=0; {переход к равенствам в неравенствах >=} for i:=m1+1 to m2 do a[i,n+i-m1]:=-1; {переход к равенствам в неравенствах <=} for i:=m2+1 to m do a[i,m21+i-m2]:=1; {создание искуственного базиса} for i:=1 to m2 do a[i,nm1+i]:=1; {ввод mb в вектор с} mb:=12345; for i:=n+1 to nm1 do c[i]:=0; for i:=nm1+1 to n1 do c[i]:=mb; {выписать cb} for i:=1 to m2 do begin cb[i]:=mb; Bi[i]:=nm1+i end; for i:=m2+1 to m do begin Bi[i]:=m21+i-m2; cb[i]:=0; end; for i:=1 to n1 do x[i]:=0; writeln(' Решение задачи:'); {применяем симплексный метод, вычисляем оценки} 5: for j:=1 to n1 do begin s0:=0; for i:=1 to m do s0:=s0+cb[i]*a[i,j]; e[j]:=s0-c[j] end; max:=e[1];j0:=1; for i:=2 to n1 do if e[i]>max then begin max:=e[i]; j0:=i end; {получили столбец с максимальной оценкой} if max<=0 then begin for i:=1 to m do x[Bi[i]]:=b[i]; goto 15 end; s1:=a[1,j0]; for i:=2 to m do if s10 then if s1>b[i]/a[i,j0] then begin s1:=b[i]/a[i,j0]; i0:=i end; {главный элемент a[i0,j0]} s0:=a[i0,j0]; Bi[i0]:=j0; for j:=1 to n1 do a[i0,j]:=a[i0,j]/s0; b[i0]:=b[i0]/s0; for i:=1 to m do if i<>i0 then begin s1:=-a[i,j0]; b[i]:=b[i]+b[i0]*s1; for j:=1 to n1 do a[i,j]:=a[i,j]+a[i0,j]*s1 end; cb[i0]:=c[j0]; goto 5; 10: writeln(' Нет оптимального плана, функция неограничена'); goto 20; {просмотр иск. переменных} 15: for i:=nm1+1 to n1 do if x[i]>0 then begin writeln(' Пустое множество планов'); goto 20 end; for i:=1 to n do writeln(' x[',i,']=',x[i]:7:4); 20:readkey end. Содержание Введение………………………………………………………………………………1 §1. Задача линейного программирования и свойства её решений…………….…4 §2. Графический способ решения задачи линейного программирования……………………………………….…6 §3. Симплексный метод……………………………………………………………..8 §4. Понятие двойственности……………………………………………………….11 §5. Основные теоремы двойственности и их экономическое содержание………………………………………….……14 §6. Примеры экономических задач………………………………………………..16 §7. Анализ задачи об оптимальном использовании сырья………………………19 §8. Программа и расчеты…………………………………………………………..25