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

Автор работы: Пользователь скрыл имя, 19 Ноября 2013 в 11:28, курсовая работа

Краткое описание

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

Содержание

Введение…………………………......………………......………………………4

1 Основные теоретические положения симплексного метода решения задачи линейного програмирования…............................……………………………6

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

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

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

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

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

2.2 Алгоритм решения задачи линейного програмирования симплексным методом………...................................................................................……………15

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

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

3 Конпьютерная реализация симплекс-метода при решении задачи линейного программирования.........................................................................….......…….....28

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

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

Заключение........………………………………………………………………….32

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

Вложенные файлы: 1 файл

курсовая работа2.docx

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

                                                                                                         (8)

 

……………

 

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

                                                                      (9) 

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

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

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

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

                                                              (10) 

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

            Выберем ту из переменных xk+1, xk+2,…, xn, которая раньше всех обратится в нуль при увеличении x1, т. е. ту, для которой величина βll1 наименьшая. Пусть это будетxr. Тогда имеет смысл разрешить систему уравнений (8) относительно других базисных переменных, исключаяиз числа свободных переменных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.

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

 
                                                                           (11) 
                                                 

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

                                        Z=5x1 - 2x3             

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

 
                                                                                         (11)       

              Число переменных (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. Из выражений (11) видно, что в y1 и y2 переменная x3 входит с отрицательным коэффициентом, значит, при увеличении x3 соответствующие переменные могут стать отрицательными. 
          Определим, какая из этих переменных (y1 или y2) раньше обратится в нуль при увеличении x3 Очевидно, что это y1 она станет равной нулю при x3=1, а величина y2 только при x3= 5.                                              

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

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

 

                                                                     (12) 
 

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

           Положим теперь свободные переменные равными нулю. Функция приобретает значение Z=-2, что меньше (лучше), чем прежнее значение Z= 0. 
          Это решение все еще не оптимально, так как коэффициент при x2 в выражении (13) отрицателен, и переменная x2 может быть увеличена. Это увеличение, как это видно из системы (12), может сделать отрицательной y2 (в первое уравнение x2 входит с положительным коэффициентом, а в третьем отсутствует).                                                             

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

 

                                                                       (13)

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

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

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

                                    (15)

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

                                                                                                          (16)                      

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

        

      

       2.4 Двойственный симплекс-метод                     

         Двойственный симплекс-метод, как и симплекс-метод, используется при нахождении решения задачи линейного программирования, записанной в форме основной задачи, для которой среди векторов , составленных из коэффициентов при неизвестных в системе уравнений, имеется m единичных. Вместе с тем двойственный симплекс–метод можно применять при решении задачи линейного программирования, свободные члены системы уравнений которой могут быть любыми числами (при решении задачи симплексным методом эти числа предполагались неотрицательными). Такую задачу и рассмотрим теперь, предварительно предположив, что единичными являются векторы P1, P2,…, Pm, т. е. рассмотрим задачу, состоящую в определении максимального значения функции.

                                                                              (17)                    

                                                     при условиях

                                  (18)

                                                                                                   (19)

Где

и среди чисел  имеются отрицательные.

           В  данном случае  есть решение системы линейных уравнений (18). Однако это решение не является планом задачи (17) – (19), так как среди его компонент имеются отрицательные числа.   

          Поскольку векторы  P1,P2,…,Pm,– единичные, каждый из векторов  можно представить в виде линейной комбинации данных векторов, причем коэффициентами разложения векторов Pj по векторам P1,P2,…,Pm служат числа  .Таким образом, можно найти

 

Определение

Решение  системы линейных уравнений (18), определяемое базисом P1,P2,…,Pm, называется п севдопланом задачи (17) – (19), если  для любого  .

Теорема 1

            Если в псевдоплане                     , определяемом базисом  P1,P2,…,Pm, есть хотя бы одно отрицательное число bi<0 такое, что все , то задача (17) – (19)) вообще не имеет планов.

Теорема 2

         Если в псевдоплане  X=(b1;b2;…;bm;0;…;0), определяемом                  базисом P1,P2,P3, имеются отрицательные числа  bi такие, что для любого из них существуют числа aij<0, то можно перейти к новому псевдоплану, при котором значение целевой функции задачи (17) – (19) не уменьшится.        

         Сформулированные  теоремы дают основание для  построения алгоритма двойственного  симплекс-метода.

          Итак, продолжим  рассмотрение задачи (17) – (19). Пусть  – псевдоплан этой задачи. На основе исходных данных составляют симплекс-таблицу (табл. 1), в которой некоторые элементы столбца вектора  P0 являются отрицательными числами. Если таких чисел нет, то в симплекс-таблице записан оптимальный план задачи (17) – (19), поскольку, по предположению, все . Поэтому для определения оптимального плана задачи при условии, что онo существует, следует произвести упорядоченный переход от одной симплекс–таблицы к другой до тех пор, пока из столбца вектора P0 не будут исключены отрицательные элементы. При этом все время должны оставаться неотрицательными все элементы (т +1)–й строки, т.е.  для любого .

Таким образом, после составления  симплекс-таблицы проверяют, имеются  ли в столбце вектора P0 отрицательные числа. Если их нет, то найден оптимальный план исходной задачи. Если же они имеются (что мы и предполагаем), то выбирают наибольшее по абсолютной величине отрицательное число. В том случае, когда таких чисел несколько, берут какое–нибудь одно из них: пусть это число bl . Выбор этого числа определяет вектор, исключаемый из базиса, т. е. в данном случае из базиса выводится вектор Pl. Чтобы определить, какой вектор следует ввести в базис, находим , где .

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