Базисные переменные в симплекс методе

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

Симплекс-метод – один из наиболее эффективных методов численного решения задач ЛП. Суть понятия «симплекс» заключается в следующем. Для тела в k -мерном пространстве симплексом называется множество, состоящее из k +1 вершин этого тела. Так, при k = 2, т.е. на плоскости, симплексом будут вершины треугольника; при k = 3 симплексом являются вершины четырехгранника, например тетраэдра, и т.д. Такое название методу дано по той причине, что в его основе лежит последовательный перебор вершин ОДЗП с целью определения координат той вершины, в которой функция цели имеет кстремальное значение.

Решение задачи с помощью симплекс-метода разбивается на два основных этапа. На первом этапе находят одно из решений, удовлетворяющее системе ограничений . Системы, в которых переменных больше, чем ограничений N > m, называются неопределенными. Они приводятся к определенным системам (N = m) путем приравнивания к нулю N-m каких-либо переменных. При этом остается система m уравнений с m неизвестными, которая имеет решение, если определитель системы отличен от нуля. В симплекс-методе вводится понятие базисных переменных, или базиса. Базисом называется любой набор из m таких переменных, что определитель, составленный из коэффициентов при этих переменных в m-ограничениях, отличен от нуля. Остальные N-m переменных называются небазисными, или свободными переменными. Если принять, что все небазисные переменные равны нулю, и решать систему ограничений относительно базисных переменных, то получим базисное решение.

В системе из m уравнений с N неизвестными общее число базисных решений при N > m определяется числом сочетаний

Базисное решение, в котором все xi0, i = 1,m , называется допустимым базисным решением. Таким образом, первый этап решения, используя симплекс-метод, завершается нахождением допустимого базисного решения, хотя бы и неудачного.

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

1) базисные переменные и функция цели выражаются через небазисные переменные;

2) по определенному правилу выбирается та из небазисных переменных, изменение значения которой способно улучшить значение F(x) , и она вводитя в базис;

3) определяется, какая из базисных переменных должна быть выведена из базиса, при этом новый набор базисных переменных, образующийся на каждом шаге, отличается от предыдущего только одной переменной;

4) базисные переменные и функция цели выражаются через новые небазисные переменные, и повторяются операции 2) и 3).

Если на определенном шаге в симплекс-методе окажется, что изменение значений любой из небазисных переменных не может улучшить F(x) , то последнее базисное решение оказывается оптимальным.

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

Пример 1. На приобретение оборудования для нового участка выделено 20 тыс. y.e. Оборудование должно быть размещено на площади, не превышающей 72 м 2 . Может быть заказано оборудование двух видов: 1) оборудование стоимостью 5 тыс. y.e., занимающее площадь 6 м 2 и дающее 8 тыс. ед. продукции за смену; 2) оборудование стоимостью 2 тыс. y.e., занимающее площадь 12 м 2 и дающее за смену 4 тыс. ед. продукции. Найти оптимальный вариант приобретения оборудования, обеспечивающий максимум общей производительности участка, используя симплекс-метод.

Обозначим неизвестное количество оборудования первого и второго видов соответственно через x1 и x2. Функция цели может быть записана следующим образом: F(x) = 8x1 + 4x2(max). Ограничения по площади: 6x1 +12x2≤72; ограничения по стоимости: 5x1 + 2x2≤20 ; ограничения на знак переменных x1≥0 ; x2≥0.

Разделим коэффициенты первого из ограничений на 6 и приведем ограничения к виду равенств, вводя дополнительные переменные x3 и x4:

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

1-й шаг. Для решения симплекс-методом выберем в качестве базисных переменных (БП) x2 и x4, так как определитель, составленный из коэффициентов при этих переменных в ограничениях задачи отличен от нуля.

Тогда x1 и x3 будут небазисными переменными (НП). Выразим базисные переменные и F(x) через небазисные.

(3)

На каждом шаге решения задачи симплекс-методом НП приравниваются к нулю, следовательно, БП и F(x) будут равны свободным членам в соответствующих выражениях:

Это решение соответствует координатам вершины A ОДЗП на рис. 1. Оптимальность решения проверяется по выражению F(x) для функции цели. Переменная x3 входит в это выражение с отрицательным коэффициентом; если вводить x3 в базис на следующем шаге, то она примет положительное значение, и от числа 24 некоторая величина будет вычитаться, т.е. значение F(x) уменьшится. Если же вводить в базис на следующем шаге x1, то значение функции цели увеличится, т.е. улучшится.

Применяя симплекс-метод, из базиса исключают ту переменную, которая раньше обратится в нуль при введении в базис x1. Анализируя (3) и (5), определяем, что из базиса следует исключить x4. На следующем шаге местами поменяются переменные x1 и x4.

2-й шаг симплекс-метода. x1 и x2 – базисные переменные, x3 и x4 – небазисные. Выразим базисные переменные и F(x) через небазисные переменные. Из (5) следует

Рис. 1. Графическая интерпритация к примеру 1, используя симплекс-метод.

Подставив (7) в (3), получим

Читайте также:  Budgetplan minfin ru подключение

Тогда F(x) = 8x1 + 4x2 = 36 — (1/2)x3 -(3/4)x4 . В результате x3 = x4 = 0 (как небазисные), x1 = 2, x2 = 5, F = 36 . Это решение соответствует координатам вершины В на рис. 1. Найденное решение симплекс-методом будет оптимальным, улучшить значение F(x) нельзя, так как переменные x3 и x4 входят в выражение для функции цели с отрицательными коэффициентами.

Таким образом, применяя симплекс-метод, нашли, что максимальная производительность участка 36 тыс. ед. продукции за смену будет обеспечена при закупке 2 ед. оборудования первого вида и 5 ед. оборудования второго вида. Дополнительные переменные x3 и x4 имеют смысл неиспользованных ресурсов. В данном примере все ресурсы по площади и по стоимости использованы полностью (x3 = x4 = 0).

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

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

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

Рассмотрим симплексный метод на конкретном примере задачи о составлении плана.

Еще раз заметим, что симплекс-метод применим для решения канонических задач ЛП, приведенных к специальному виду, т. е. имеющих базис, положительные правые части и целевую функцию, выраженную через небазисные переменные. Если задача не приведена к специальному виду, то нужны дополнительные шаги, о которых мы поговорим позже.

Рассмотрим задачу о плане производства, предварительно построив модель и приведя ее к специальному виду.

Для изготовления изделий А и В склад может отпустить сырья не более 80 единиц. Причем на изготовление изделия А расходуется две единицы, а изделия В — одна единица сырья. Требуется спланировать производство так, чтобы была обеспечена наибольшая прибыль, если изделий А требуется изготовить не более 50 шт., а изделий В — не более 40 шт. Причем, прибыль от реализации одного изделия А — 5 руб., а от В — 3 руб.

Построим математическую модель, обозначив за х1 количество изделий А в плане, за х2 — количество изделий В. тогда система ограничений будет выглядеть следующим образом:

Эта задача имеет специальный вид (с базисом, правые части неотрицательны). Ее можно решить симплекс-методом.

I этап. Запись задачи в симплекс-таблицу. Между системой ограничений задачи (3.10) и симплекс-таблицей взаимно-однозначное соответствие. Строчек в таблице столько, сколько равенств в системе ограничений, а столбцов — столько, сколько свободных переменных. Базисные переменные заполняют первый столбец, свободные — верхнюю строку таблицы. Нижняя строка называется индексной, в ней записываются коэффициенты при переменных в целевой функции. В правом нижнем углу первоначально записывается 0, если в функции нет свободного члена; если есть, то записываем его с противоположным знаком. На этом месте (в правом нижнем углу) будет значение целевой функции, которое при переходе от одной таблицы к другой должно увеличиваться по модулю. Итак, нашей системе ограничений соответствует таблица 3.4, и можно переходить ко II этапу решения.

Таблица 3.4

базисные

свободные

II этап. Проверка опорного плана на оптимальность.

Данной таблице 3.4 соответствует следующий опорный план:

Свободные переменные х1, х2 равны 0; х1 = 0, х2 = 0. А базисные переменные х3, х4, х5 принимают значения х3 = 50, х4 = 40, х5 = 80 — из столбца свободных членов. Значение целевой функции:

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

Возможны различные ситуации.

1. В индексной F-строке нет отрицательных элементов. Значит, план оптимален, можно выписать решение задачи. Целевая функция достигла своего оптимального значения, равного числу, стоящему в правом нижнем углу, взятому с противоположным знаком. Переходим к IV этапу.

2. В индексной строке есть хотя бы один отрицательный элемент, в столбце которого нет положительных. Тогда делаем вывод о том, что целевая функция F→∞ неограниченно убывает.

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

III этап. Улучшение опорного плана.

Из отрицательных элементов индексной F-строки выберем наибольший по модулю, назовем соответствующий ему столбец разрешающим и пометим "↑".

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

В нашем примере, , элемент 2 — разрешающий. Строка, соответствующая этому элементу, тоже называется разрешающей (табл. 3.5).

Выбрав разрешающий элемент, делаем перечет таблицы по правилам:

1. В новой таблице таких же размеров, что и ранее, переменные разрешающей строки и столбца меняются местами, что соответствует переходу к новому базису. В нашем примере: х1 входит в базис, вместо х5, которая выходит из базиса и теперь свободная (табл. 3.6).

Читайте также:  Все игры fear по порядку

Таблица 3.6

базисные

свободные

2. На месте разрешающего элемента 2 записываем обратное ему число ½.

3. Элементы разрешающей строки делим на разрешающий элемент.

4. Элементы разрешающего столбца делим на разрешающий элемент и записываем с противоположным знаком.

5. Чтобы заполнить оставшиеся элементы таблицы 3.6, осуществляем пересчет по правилу прямоугольника. Пусть мы хотим посчитать элемент, стоящий на месте 50.

Соединяем этот элемент мысленно с разрешающим, находим произведение, вычитаем произведение элементов, находящихся на другой диагонали получившегося прямоугольника. Разность делим на разрешающий элемент.

Итак, . Записываем 10 на место, где было 50. Аналогично:
, , , .

Имеем новую таблицу 3.7, базисными переменными теперь являются переменные 3,x4,x1>. Значение целевой функции стало равно -200, т.е. уменьшилось. Чтобы проверить данное базисное решение на оптимальность надо перейти опять ко II этапу. Процесс, очевидно, конечен, критерием остановки являются пункт 1 и 2 II этапа.

Доведем решение задачи до конца. Для этого проверим индексную строку и, увидев в ней отрицательный элемент -½, назовем соответствующий ему столбец разрешающим и, согласно III этапу, пересчитаем таблицу. Составив отношения и выбрав среди них минимальное = 40, определили разрешающий элемент 1. теперь пересчет осуществляем согласно правилам 2-5.

Таблица 3.8

базисные

свободные

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

IVэтап. Выписывание оптимального решения.

Если симплекс-метод остановился согласно пункту 1 II этапа, то решение задачи выписывается следующим образом. Базисные переменные принимают значения столбца свободных членов соответственно. В нашем примере х3 = 30, х2 = 40, х1 = 20. Свободные переменные равны 0, х5 = 0, х4 = 0. Целевая функция принимает значение последнего элемента столбца свободных членов с противоположным знаком: —F = -220 → F= 220, в нашем примере функция исследовалась на min, и первоначально F → max, поэтому фактически знак поменялся дважды. Итак, х* = (20, 40, 30, 0, 0), F* = 220. Ответ к задаче:

— необходимо в план выпуска включить 20 изделий типа А, 40 изделий типа В, при этом прибыль будет максимальной и будет равна 220 руб.

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

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

Пример . Решить следующую задачу ЛП в канонической форме симплекс-методом.
f(x)=x1+9x2+5x3+3x4+4x5+14x6 → min
x1+x4=20
x2+x5=50
x3+x6=30
x4+x5+x6=60
xi ≥ 0, i = 1,…,6
Говорят, что задача ЛП имеет каноническую форму, если все ограничения (кроме условий неотрицательности переменных) имеют вид равенств, а все свободные члены неотрицательны. Так что мы имеем задачу в канонической форме.
Идея симплекс-метода заключается в следующем. Сначала нужно найти некоторую (начальную) вершину многогранника допустимых решений (начальное допустимое базисное решение). Затем нужно проверить это решение на оптимальность. Если оно оптимально, то решение найдено; если нет, то перейти к другой вершине многогранника и вновь проверить на оптимальность. Ввиду конечности вершин многогранника (следствие конечности ограничений задачи ЛП) за конечное число "шагов" мы найдем искомую точку минимума или максимума. Надо заметить, что при переходе от одной вершины к другой значение целевой функции убывает (в задаче на минимум) или возрастает (в задаче на максимум).
Таким образом, идея симплекс-метода основывается на трех свойствах задачи ЛП.
Решение. Чтобы найти начальное допустимое базисное решение, т.е. чтобы определить базисные переменные, систему (5.6) нужно привести к "диагональному" виду. Применяя метод Гаусса (метод последовательного исключения неизвестных), получаем из (5.6):
x2+x1+x3=40
x4+x1=20
x5-x1-x3=10
x6+x3=30
Следовательно, базисными являются переменные x2, x4, x5, x6, им придаем значения, равные свободным членам соответствующих строк: x2=40, x4=20, x5=10, x6=30,. Переменные x1 и x3 являются небазисными: x1=0, x3=0 .
Построим начальное допустимое базисное решение
x 0 = (0,40,0,20,10,30) (5.9)
Для проверки на оптимальность найденного решения x 0 нужно из целевой функции исключить базисные переменные (с помощью системы (5.8) ) и построить специальную симплекс таблицу.
После исключения переменных целевую функцию удобно записать в виде:
f(x) = -7x1 – 14x3 +880 (5.10)
Теперь при помощи (5.8) –(5.10) составляем начальную симплекс-таблицу:
В нулевую строчку записаны коэффициенты с обратным знаком соответствующих переменных при целевой функции. Критерий оптимальности (для задачи на поиск минимума): допустимое базисное решение(x 0 ) оптимально, если в нулевой строчке нет ни одного строго положительного числа (не считая значения целевой функции (880)). Это правило распространяется и на следующие итерации (таблицы). Элементы нулевой строки будем называть оценками столбцов.
Так что начальное допустимое базисное решение (5.9) неоптимально: 7>0, 14>0.
В нулевом столбике записаны значения базисных переменных. Они обязательно должны быть неотрицательными (см. уравнение (5.7) ). От первой по четвертую строки написаны коэффициенты переменных из системы (5.8).
Так как x 0 неоптимально, то надо перейти к другой вершине многогранника допустимых решений (построить новое д.б.р.). Для этого нужно найти ведущий элемент и провести определенное преобразование (симплексное преобразование).
Сначала находим ведущий элемент таблицы, который стоит в пересечении ведущего столбика (столбец с наибольшей положительной оценкой) и ведущей строки (строки, соответствующей минимальному соотношению элементов нулевого столбика к соответствующим элементам (строго положительным) ведущего столбика).
В таблице 1 ведущий столбик — третий столбик, и ведущая строка — четвертая строка (min<40/1,30/1>=30/1) обозначены стрелками, а ведущий элемент — кружочком. Ведущий элемент показывает, что базисную переменную x6 нужно заменить на небазисную x3. Тогда новыми базисными переменными будут x2, x3, x4, x5, , а небазисными —x1, x6, . Это и означает переход к новой вершине многогранника допустимых решений. Чтобы найти значения координат нового допустимого базисного решения x 00 нужно строить новую симплекс-таблицу и провести в ней элементарные преобразования:
а) все элементы ведущей строки поделить на ведущий элемент, превратив этим самым ведущий элемент в 1 (для простоты выкладок);
б) с помощью ведущего элемента (равного 1) все элементы ведущего столбика превратить в нули (аналогично методу исключения неизвестных);
В результате в нулевом столбце получены значения новых базисных переменных x2, x3, x4, x5, (см. таблицу 2) — базисные компоненты новой вершины x 00 (небазисные компоненты x1=0, x6=0, ).
Как показывает таблица 2, новое базисное решение x 00 =(0,10,30,20,40,0) неоптимально (в нулевой строке есть неотрицательная оценка 7). Поэтому с ведущим элементом 1 (см. таблицу 2 ) строим новую симплекс-таблицу, т.е. строим новое допустимое базисное решение
Таблице 3 соответствует допустимое базисное решение x 000 =(10,0,30,10,50,0) и оно оптимально, т.к. в нулевой строчке нет положительных оценок. Поэтому f(x 000 )=390 есть минимальное значение целевой функции.
Ответ: x 000 =(10, 0, 30, 10, 50, 0) — точка минимума, f(x 000 )=390.

Читайте также:  Пропал калькулятор в windows 10

Условно стандартная задача линейного программирования

Вопросы для самоконтроля

  1. Как строится симплекс-таблица?
  2. Как отражается смена базиса в таблице?
  3. Сформулируйте критерий остановки симплекс-метода.
  4. Как организовать пересчет таблицы?
  5. С какой строки удобно начинать пересчет таблицы?

Двумерные задачи линейного программирования решаются графически. Для случая N=3 можно рассмотреть трехмерное пространство и целевая функция будет достигать своё оптимальное значение в одной из вершин многогранника.

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

Симплекс-метод является основным в линейном программировании. Решение задачи начинается с рассмотрений одной из вершин многогранника условий. Если исследуемая вершина не соответствует максимуму (минимуму), то переходят к соседней, увеличивая значение функции цели при решении задачи на максимум и уменьшая при решении задачи на минимум. Таким образом, переход от одной вершины к другой улучшает значение функции цели. Так как число вершин многогранника ограничено, то за конечное число шагов гарантируется нахождение оптимального значения или установление того факта, что задача неразрешима.

Этот метод является универсальным, применимым к любой задаче линейного программирования в канонической форме. Система ограничений здесь — система линейных уравнений, в которой количество неизвестных больше количества уравнений. Если ранг системы равен r, то мы можем выбрать r неизвестных, которые выразим через остальные неизвестные. Для определенности предположим, что выбраны первые, идущие подряд, неизвестные X1, X2, . Xr. Тогда наша система уравнений может быть записана как

К такому виду можно привести любую совместную систему, например, методом Гаусса. Правда, не всегда можно выражать через остальные первые r неизвестных (мы это сделали для определенности записи). Однако такие r неизвестных обязательно найдутся. Эти неизвестные (переменные) называются базисными, остальные свободными.

Придавая определенные значения свободным переменным и вычисляя значения базисных (выраженных через свободные), мы будем получать различные решения нашей системы ограничений. Таким образом, можно получить любое ее решение. Нас будут интересовать особые решения, получаемые в случае, когда свободные переменные равны нулю. Такие решения называются базисными, их столько же, сколько различных базисных видов у данной системы ограничений. Базисное решение называется допустимым базисным решением или опорным решением, если в нем значения переменных неотрицательны. Если в качестве базисных взяты переменные X1, X2, . Xr, то решение 1, b2. br, 0, . 0> будет опорным при условии, что b1, b2. br ≥ 0.

Симплекс-метод основан на теореме, которая называется фундаментальной теоремой симплекс-метода. Среди оптимальных планов задачи линейного программирования в канонической форме обязательно есть опорное решение ее системы ограничений. Если оптимальный план задачи единственен, то он совпадает с некоторым опорным решением. Различных опорных решений системы ограничений конечное число. Поэтому решение задачи в канонической форме можно было бы искать перебором опорных решений и выбором среди них того, для которого значение F самое большое. Но, во-первых, все опорные решения неизвестны и их нужно находить, a, во-вторых, в реальных задачах этих решений очень много и прямой перебор вряд ли возможен. Симплекс-метод представляет собой некоторую процедуру направленного перебора опорных решений. Исходя из некоторого, найденного заранее опорного решения по определенному алгоритму симплекс-метода мы подсчитываем новое опорное решение, на котором значение целевой функции F не меньше, чем на старом. После ряда шагов мы приходим к опорному решению, которое является оптимальным планом.

Итак, симплексный метод вносит определенный порядок как при нахождении первого (исходного) базисного решения, так и при переходе к другим базисным решениям. Его идея состоит в следующем.