Симплексный метод решения ЗЛП

Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 18:13, курсовая работа

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

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

Содержание работы

ВВЕДЕНИЕ…………………………………………………………………4

І Основные теоретические положения симплексного метода решения ЗЛП…………………………………………………….…6

1.1 Теория линейного программирования……………………………...6

1.2 Общий вид задач линейного программирования………………….8

1.3 Методы решения задач линейного программирования…………..10

1.4 Общая характеристика симплекс-метода……………………………12

ІІ РЕШЕНИЕ ЗЛП СИМПЛЕКСНЫМ МЕТОДОМ………………..…..14

2.1 Примеры использования симплекс-метода в экономике…………14

2.2 Алгоритм решения ЗЛП симплексным методом……………………15

2.3 Решение задачи линейного программирования симплекс-

методом…………………………………………………………………...17

2.4 Двойственная задача………………………………………………....23

ІІІ КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ……….....28

3.1 Описание программного продукта……………………………...…28

3.2 Тестирование программного продукта………………….…………30

ВЫВОДЫ………………………………………………………………….32

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ………………………….34

ПРИЛОЖЕНИЕ А………………………………………………………...35

Файлы: 1 файл

Курсач ММДО полный.docx

— 200.53 Кб (Скачать файл)

     Предположим, что все свободные переменныеx1, x2,…,xkравны нулю.

     При этом мы получим:

      xk+1k+1;

     xk+2k+2;

           …….. (2.2)

     Xnn

     Это решение может быть допустимым или  недопустимым. Оно допустимо, если все  свободные членыβk+1, βk+2,…,βn(2.2)неотрицательны. Предположим, что это условие выполнено. Тогда мы получили опорное решение. Но является ли оно оптимальным? Чтобы проверить это, выразим целевую функцию Z через свободные переменныеx1, x2,…,xk. 

           Z=γ01x12x2+…+γkx(2.3) 

     Очевидно, что приx1=x2=…=xk=0, Z=γ0. Проверим, может ли быть улучшено решение, т. е. получено уменьшение функции Z c увеличением каких-нибудь из переменныхx1, x2,…, xk(2.2) (уменьшать их мы не можем, так как все они равны нулю, а отрицательные значения переменных недопустимы). Если все коэффициентыγ12,…,γkв (2.3) положительны, то увеличение каких-либо из переменныхx1,x2,…,xk(2.2) не может уменьшить Z; следовательно, найденное опорное решение является оптимальным. Если же среди коэффициентовγ12,…,γkесть отрицательные, то, увеличивая некоторые из переменныхx1,x2,…,xk(те, коэффициенты при которых отрицательны), мы можем улучшить решение.

     Пусть, например, коэффициентγ1в (2.3) отрицателен. Значит, есть смысл увеличитьx1, т. е. перейти от данного опорного решения к другому, где переменнаяx1не равна нулю, а вместо нее равна нулю какая-то другая. Однако увеличиватьx1следует с осторожностью, так чтобы не стали отрицательными другие переменныеxk+1, xk+2,…,xnвыраженные через свободные переменные, в частности черезx1формулами (2.2).

     Например, если коэффициент приx1в соответствующемxjуравнении (2.2) отрицателен, то увеличениеx1может сделатьxjотрицательным. Наоборот, если среди уравнений (2.2) нет уравнения с отрицательным коэффициентом приx1то величинуx1можно увеличивать беспредельно, а, значит, линейная функция Z не ограничена снизу и оптимального решения ОЗ не существует.

     Допустим, что это не так и что среди уравнений (2.2) есть такие, в которых коэффициент приx1отрицателен. Для переменных, стоящих в левых частях этих уравнений, увеличениеx1опасно — оно может сделать их отрицательными.

     Возьмем одну из таких переменныхxlи посмотрим, до какой степени можно увеличитьx1, пока переменнаяxlне станет отрицательной. Выпишемl-eуравнение из системы (2.2): 

           xll1x1l2x2+…+αlkxk(2.4) 

     Здесь свободный членβl≥0, а коэффициентαl1отрицателен.

     Легко понять, что если мы оставимx2=x3=…=xk=0, тоxkможно увеличивать только до значения, равного–βll1,а при дальнейшем увеличенииx1переменнаяx1станет отрицательной.

     Выберем ту из переменныхxk+1,xk+2,…,xn, которая раньше всех обратится в нуль при увеличении x1, т. е. ту, для которой величина–βll1 наименьшая. Пусть это будетxr. Тогда имеет смысл разрешить систему уравнений (2.2) относительно других базисных переменных, исключаяиз числа свободных переменныхx1и переводя вместо нее в группу свободных переменныхxr. Действительно, мы хотим перейти от опорного решения, задаваемого равенствамиx1=x2=…=xn=0 к опорному решению, в котором ужеx1≠0, аx2=…=xk=xr=0. Первое опорное решение мы получили, положив равными нулю все прежние свободные переменныеx1,x2,…,xkвторое мы получим, если обратим в нуль все новые свободные переменныеx2,x3,…,xk,xr.

     Базисными переменными при этом будутxl,xk+1,xk+2,…,xr-1, xr-1,…,xr.

     Предположим, что уравнения типа (2.2) для нового набора базисных и свободных переменных составлены. Тогда можно выразить через новые свободные переменные и линейную функцию Z.Если все коэффициенты при переменных в этой формуле положительны, то мы нашли оптимальное решение: оно получится, если все свободные переменные положить равными нулю. Если среди коэффициентов при переменных есть отрицательные, то процедура улучшения решения продолжается: система вновь разрешается относительно других базисных переменных, и так далее, пока не будет найдено оптимальное решение, обращающее функцию Z в минимум.

     Пример 2. Пусть имеется задача линейного программирования с ограничениями-неравенствами:

     

     -5x1-x2+2x3≤2;

           -x1+x3+x4≤5; (2.5)

     -3x1+5x4≤7. 

     Требуется минимизировать линейную функцию 

     Z=5x1-2x3

     Приводя неравенства к стандартному виду (≥0) и вводя добавочные переменныеy1,y2,y3переходим к условиям-равенствам:

     

     y1=5x1+x2-2x3+2

           y2=x1-x3-x4+5 (2.5)

     y3=3x1-5x4+7 

     Число переменных (n = 7) на 4 превышает число  уравнений (т = 3). Значит, четыре переменные могут быть выбраны в качестве свободных.

     Пусть в качестве свободных переменных выступаютx1,x2,x3,x4. Положим их равными нулю и получим опорное решение: 

     x1=x2=x3=x4=0;

     y1=2, y2=5, y3=7. 

     При этих значениях переменных Z= 0.

     Это решение не оптимально, поскольку  в линейной функции Z коэффициент  приx3отрицателен. Значит, увеличиваяx3можно уменьшить Z.

     Попробуем увеличиватьx3.Из выражений (2.5) видно, что вy1и y2переменнаяx3входит с отрицательным коэффициентом, значит, при увеличенииx3соответствующие переменные могут стать отрицательными.

     Определим, какая из этих переменных (y1илиy2)раньше обратится в нуль при увеличенииx3Очевидно, что этоy1она станет равной нулю приx3=1, а величинаy2— только приx3= 5.

     Выбирается  переменная у, и вводится в число  свободных вместоx3Чтобы разрешить систему (2.5) относительноx3, y2, y3поступим следующим образом. Разрешим первое уравнение (2.5) относительно новой базисной переменнойx3: 

     x3=5/2*x1+1/2*x2-1/2*y1+1

     Это выражение подставляется вместоx3во второе уравнение: 

      x3=5/2*x1+1/2*x2-1/2y1+1;

           y2=-3/2*x1-1/2*x2+1/2*y1-x4+4; (2.6)

     y3=3x1-5x4+7. 

     Что касается третьего уравнения, то оно, как  не содержащееx3не изменится. Система (2.2) приведена к виду со свободными переменнымиx1, x2, y1, x4и базиснымиx3, y2, y3.

     Положим теперь свободные переменные равными  нулю. Функция приобретает значение Z=-2, что меньше (лучше), чем прежнее  значение Z= 0.

     Это решение все еще не оптимально, так как коэффициент приx2в выражении (2.7) отрицателен, и переменнаяx2может быть увеличена. Это увеличение, как это видно из системы (2.6), может сделать отрицательнойy2(в первое уравнениеx2входит с положительным коэффициентом, а в третьем — отсутствует).

     Поменяем  местами переменныеx2 и y2— первую исключим

     из  числа свободных, а вторую — включим. Для этого разрешим второе уравнение (2.6) относительноx2и подставимx2в первое уравнение. Получим следующий вид системы (2.5): 

      x3=x1-y2-x4+5

           y2=-3x1-2y2+y1-2x4+8  (2.7)

     y3=3x1-5x4+7 

     Выразим Z через новые свободные переменные:

           Z=3x1+2y2-y1+2x4-8+y1-2=3x1+2y2+2x4-10 (2.8)

     Полагаяx1=y1=y2=x4=0 , получим Z = -10.

     Это решение является оптимальным, так  как коэффициенты при всех свободных переменных в выражении (2.8) неотрицательны. Итак, оптимальное решение ОЗ найдено (2.9):

           x1*=0, x2*=8, x3*=5, x4*=0, y1*=0, y2*=0, y3*=7. (2.9)

     При таких значениях переменных линейная функция Z принимает минимальное  значение (2.10): 

           Zmin=-10 (2.10) 

     Заметим, что в рассмотренном примере  нам не пришлось искать опорное решение: оно сразу же получилось, когда  мы положили свободные переменные равными  нулю. Это объясняется тем, что в уравнениях (2.5) все свободные члены были неотрицательны и, значит, первое же попавшееся решение оказалось опорным. Если это окажется не так, можно будет прийти к опорному решению с помощью такой же процедуры обмена местами некоторых базисных и свободных переменных, повторно решая уравнения до тех пор, пока свободные члены не станут неотрицательными  

     2.4 Двойственная задача 

     Использование идей двойственности в сочетании с общей идеей симплекс-метода позволило разработать еще один метод решения задач ЛП - двойственный симплекс-метод. Впервые этот метод был предложен Лемке в 1954г. Решение задачи ЛП двойственным симплекс-методом сводится к отысканию оптимального плана прямой задачи последовательным переходом от одного базиса к другому.

     Задача ЛП в канонической форме имеет вид:  
максимизировать L(x) = сумма от j=1 до n (сjчj) 
при условиях: 
сумма от j=1 до n (аjXj)=bv, (v=1,2,....m) 
или 
сумма от j=1 до n (АjXj)=b, xj>=0,  j=1,2,...n

     Составим двойственную задачу по условиям прямой задачи и определим области допустимых решений ДП:  
Прямая задача Двойственная задача

      
maxZ=x1-3x3-3x4-MR1-MR2

     y1: x1+2x3-2x4+x5=4

     y2: 3x1-4x3+4x4+R1=11

     y3: x1+x3-x4-x6+R2=0

     minW=4y1+12y2

     x1: y1+3y2+y3≥1

     x3: 2y1-4y2+y3≥-3

     -2y1+4y2-y3≤3(1)

     X4: -2y1+4y2-y3≥3  (2)

     X5: y1≥0

     X6: -y3≥0 => y3≤0

     R1: y2≥-M

     R2: y3≥-M 
Итак, получено: y1≥0,y2≤≥0 ,y3≤0. 

      
2. Приведём запись двойственной задачи к канонической форме. На основании полученных ОДР двойственных переменных введём необходимые подстановки:y2=y4-y5; y3=-ỹ3; 3,y4,y5≥0 
Для удобства решения свернём ограничения (1) и (2) в одно со знаком равенства, а также введем в ограничения и целевую функцию избыточные, остаточные и искусственные переменные. 
 

     minW=4y1+12y4-12y5+MR1+MR2

     y1+3y4-3y5-ỹ3-y6+R1=1  (3)

     -2y1+4y4-4y5+ỹ3+R2=3  (4)

      
3. Решим ДЗ симплекс методом:  
Из (3) выразим: R1=1-y1-3y4+3y5+ỹ3+y6 
Из (4) выразим:R2=3+2y1-4y4+4y5-ỹ3

     W+y1(-4-M)+y4(-12+7M)+y5(12-7M)-My6=4M 

     Создаём симплекс-таблицы: 

      Таблица 2.2 – симплекс-таблица №1 

            W      y1      y4      y5      3      y6      R1      R2      ПЧ
     W      1      -4-M      7M-12      12-7M      0      -M      0      0      4M
     R1                        -3       -1       -1                   
     R2            -2             -4                               

Информация о работе Симплексный метод решения ЗЛП