- •3 Симплекс-метод решения задачи линейного программирования
- •3.1 Векторная запись задачи линейного программирования. Опорный план
- •3.2 Сущность симплекс-метода
- •3.2.1 Пример решения задачи линейного программирования симплекс-методом
- •3.2.2 Решение задачи в общем виде. Симплексная таблица
- •3.3 Решение задачи производственного планирования симплекс-методом
- •3.4 Вопросы и упражнения
3.2 Сущность симплекс-метода
Симплекс-метод может быть применен для решения любой задачи линейного программирования, однако в общем случае приходится использовать различные его модификации. Рассмотрим вначале его применение для задачи линейного программирования, удовлетворяющей следующим условиям:
а) на все переменные наложены ограничения неотрицательности, а все остальные ограничения (пусть их m) представляют собой уравнения;
б) свободные члены ограничений неотрицательны;
в) среди векторных коэффициентов имеется полный набор линейно независимых векторов, который представляет собой m единичных столбцов.
Отметим, что задача, удовлетворяющая первому условию, представляет собой задачу линейного программирования в канонической форме. Любая задача линейного программирования в смешанной форме (т.е. в общем виде) может быть к ней приведена (см. раздел 1.4.1).
Что касается двух других условий, то в ряде частных случаев (но отнюдь не всегда) можно добиться их выполнения, умножив или разделив обе части ограничения на одно и то же число. Так, если свободный член в ограничении отрицателен, можно умножить обе части уравнения на -1. Если после этого одного из единичных векторов не хватает, но в соответствующем ограничении присутствует с некоторым положительным коэффициентом переменная, которая в другие ограничения не входит, то обе части этого ограничения можно разделить на данный коэффициент. Например, если одно из ограничений имеет вид -4х1- 6х2+ 2х3 - 2х4 = -10, и, например, переменная х4 в других ограничениях не встречается, то разделив обе части на -2, можно получить 2х1+ 3х2- х3 + х4 = 5. В полученном уравнении свободный член неотрицателен, и векторный коэффициент при х4 является единичным.
Задачу, удовлетворяющую перечисленным условиям, можно записать в общем виде следующим образом (для задачи на максимум):
(14)
Разумеется, единичные вектора не обязательно должны стоять при первых m переменных. Однако переменные всегда можно обозначить по-другому, перенумеровать, поэтому запись (14) все-таки можно считать общей.
О
порный
план построим следующим образом: базисные
переменные (в (14) это первые m переменных)
примем равными соответствующим элементам
столбца свободных членов, а небазисные
- равными нулю. Таким образом, исходный
опорный план Х = (b1, b2, . . . bm,
).
Такой план, очевидно, является допустимым,
что легко проверить, подставив его в
систему ограничений:
b1 + 0 = b1
b2+ 0 =b2
…
bm+ 0 =bm
b1-m 0; 00
Векторные коэффициенты при его ненулевых компонентах b1-mпредставляют собой линейно независимые единичные столбцы; т.е. этот план действительно опорный. Далее применение симплекс-метода рассмотрим на примере.
3.2.1 Пример решения задачи линейного программирования симплекс-методом
Решим следующую задачу:
max-5х1+ 2х3
-
5х1- х2+ 2х32
-х1+ х3+ х4 5
-3х1+ 5х47
х1-40
Приведем ее к канонической форме.
m
ax-5х1+ 2х3
-5х1- х2+ 2х3+ х5 = 2
-х1+ х3+ х4 + х6= 5
-3х1+ 5х4 + х7= 7
х1-70
Теперь пример имеет вид задачи (14) с той разницей, что единичные вектора стоят не при первых трех, а при последних трех переменных - х5, х6и х7; но изменять обозначения не имеет смысла.
Для удобства дальнейших рассуждений ограничения пронумеруем. При этом обозначим значение целевой функции (-5х1+ 2х3) =zи припишем к системе новое (четвертое) ограничение, после чего задача примет следующий вид:
m
axz
1) -5х1- х2+ 2х3+ х5 = 2
2
(15)
3) -3х1+ 5х4 + х7= 7
4) z+ 5х1- 2х3 = 0
х1-70
Решений такой системы бесконечно много.
При последних трех
переменных (дополнительных) стоят
единичные столбцы: А5=
,
А6=
и А7=
. Поэтому удобно взять переменные х5,
х6и х7в качестве базисных.
Приравняем их к свободным членам, а
остальные – к нулю. Таким образом мы
получим исходный опорный план - одно из
решений этой системы - Хо=
= (0;
0; 0; 0; 2; 5; 7).
На этом плане
значение целевой функции zо= 0
(-5*0 +
+ 2*0 = 0). Отметим, что в системе (15)
столбец коэффициентов при переменной
z тоже единичный (
- она входит только в ограничение (4) с
коэфициентом 1). Она тоже приравнивается
к свободному члену – 0.
Является ли план Хооптимальным? Чтобы ответить на этот вопрос, попытаемся увеличить значение целевой функцииz. Переменнаяzвходит в ограничение (4). Если в ограничении (4) увеличиватьz, то остальные слагаемые (5х1- 2х3) необходимо уменьшить. Это можно сделать либо за счет уменьшения х1(при этой переменной стоит положительный коэффициент 5), либо увеличения х3(при этой переменной стоит отрицательный коэффициент -2). Однако уменьшить переменную х1нельзя, так как она небазисная и равна нулю (а отрицательные значения переменные задачи принимать не могут). Поэтому следует увеличить х3. Эту переменную увеличить можно, при этомzвозрастет. Следовательно, оптимальный план еще не найден.
Итак, в следующем опорном плане появится новая ненулевая переменная - х3. Но так как базисных переменных должно быть в этой задаче не более трех, какая-то другая переменная при этом из базиса выйдет, т.е. уменьшится до нуля.
До какого значения можно увеличивать переменную х3, и какую переменную следует вывести из базиса? Чтобы ответить на этот вопрос, следует проанализировать остальные ограничения задачи.
В ограничение (1) входит базисная переменная х5. Если уменьшить ее до нуля, то, учитывая, что небазисные переменные х1= х2= 0, получим 2х3= = 2х3= 2/2 = 1. Следовательно, ограничение (1) позволяет увеличить х3до 1 (за счет уменьшения х5).
Аналогично ограничение (2) позволяет увеличить х3 до 5 (за счет уменьшения х6).
В ограничение (3) переменная х3 вообще не входит, следовательно, оно позволяет увеличивать значение этой переменной до бесконечности.
Таким образом, самым жестким ограничением является первое, и мы увеличим х3только до 1 (если попытаться увеличить эту переменную до большего значения, то придется уменьшить переменную х5до отрицательных значений, иначе ограничение (1) не будет выполняться).
Следовательно, в в новом опорном плане переменная х3станет базисной, а х5из базиса выйдет. Преобразуем систему методом Гаусса таким образом, чтобы перейти к новому опорному плану. В новой системе столбец коэффициентов при х3станет единичным, причем единица должна стоять именно в первом ограничении, а в остальных – нули (тогда при ненулевых компонентах опорного плана снова будут линейно независимые столбцы коэффициентов - единичные).
Столбец коэффициентов при х3будем называтьразрешающим(ведущим, ключевым). Так же будем называть и первое ограничение, которое определило выбор переменной, выходящей из базиса. Коэффициент в этом ограничении в разрешающем столбце (он равен 2) будем называтьразрешающим элементом.
Чтобы получить на месте разрешающего элемента единицу, надо обе части первого ограничения разделить на этот элемент, т.е. на 2. После этого ограничение примет вид (1`).
В ограничение (2) переменная х3входит с коэффициентом 1. На месте этого коэффициента необходимо получить ноль. Для этого вычтем из ограничения (2) ограничение (1`), в которое х3входит теперь именно с коэффициентом 1. Результат обозначим (2`).
Ограничение (3) можно оставить без изменений, так как коэффициент при х3в нем и так нулевой. В новой системе обозначим его (3`).
В ограничение (4) переменная х3входит с коэффициентом -2. Умножим обе части ограничения (1`) на -2. Теперь переменная х3входит в него не с коэффициентом 1, а с коэффициентом -2. Вычтем из уравнения (4) полученное уравнение, при этом коэффициент при х3станет нулевым. Результат обозначим (4`).
П
реобразованная
система примет вид:
1`) -2,5х1– 0,5х2+ х3+ 0,5х5 = 1
2
(16)
3`) -3х1+ 5х4 + х7= 7
4`) z– х2+ х5= 2
х1-70
Этой системе можно поставить в соответствие новый опорный план, приравняв базисные переменные х3, х6и х7к свободным членам, а остальные – к нулю: Х(1)= (0; 0; 1; 0; 0; 4; 7).
Значение целевой функции увеличилось: z(1)= 2. Это число является свободным членом ограничения (4`). В самом деле, так как небазисные переменные х2= х5=0, то из (4`)z= 2 (z- 0 + 0 = 2). Подстановкой плана в целевую функцию можно получить тот же результат (-5*0 + 2*1 = 2).
Из ограничения (4`) видно, что план Х(1)тоже не является оптимальным. Значениеzможно еще увеличить за счет увеличения х2.
Чтобы определить, до какого значения можно увеличить переменную х2, и какую переменную следует вывести из базиса, снова по очереди рассмотрим ограничения.
В ограничение (1`) х2входит с отрицательным коэффициентом -0,5. Следовательно, при увеличении х2значение базисной переменной х3, входящей в это ограничение, тоже будет увеличиваться (и это увеличение может происходить до бесконечности).
В ограничение (2`) входит базисная переменная х6. Если уменьшить ее до нуля, то, учитывая, что небазисные переменные х1= х4= х5= 0, получим 0,5х2= 4х2= 4/0,5 = 8. Следовательно, ограничение (2`) позволяет увеличить х2до 8 (за счет уменьшения х6).
В ограничение (3`) переменная х2 вообще не входит, следовательно, и оно позволяет увеличивать значение этой переменной до бесконечности.
Таким образом, самым жестким ограничением является второе, и мы увеличим х2до 8.
Следовательно, в новом опорном плане переменная х2станет базисной, а х6из базиса выйдет. Снова преобразуем систему методом Гаусса таким образом, чтобы столбец коэффициентов при х2стал единичным, причем единица должна стоять во втором ограничении (разрешающим столбцом будет столбец коэффициентов при х2, а разрешающим ограничением – второе; разрешающий элемент равен 0,5).
Для этого обе части ограничения (2`) разделим на 0,5 (результат обозначим (2``)).
Из ограничения (1`) вычтем уравнение (2``), умноженное на (-0,5) (поскольку в ограничении (1`) в разрешающем столбце стоит именно (-0,5), а надо получить 0). Результат обозначим (1``).
Третье ограничение оставим без изменений, обозначив (3``) (поскольку х2в это ограничение не входит).
И
з
ограничения (4`) вычтем уравнение (2``),
умноженное на (-1) (поскольку в ограничении
(4`) в разрешающем столбце стоит именно
(-1), а надо получить 0). Результат
обозначим (4``).
1``) -х1+ х3+ х4+ х6 = 5
2
(17)
3``) -3х1+ 5х4 + х7= 7
4``) z+ 3х1+ 2х4 + 2х6= 10
х1-70
Этой системе можно поставить в соответствие новый опорный план Х(2)= (0; 8; 5; 0; 0; 0; 7). Значение целевой функции увеличилось:z(2)= 10.
Из ограничения (4`) видно, что значение целевой функции увеличить больше нельзя. Для этого пришлось бы уменьшить значения переменных х1, х4или х6, а они и так равны нулю. Следовательно, Х(2)– оптимальный план, а 10 – оптимум задачи.
