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

Задачи линейного программирования удобно решать симплекс-методом – специальным методом оптимального (направленного) перехода. Он заключается в последовательном переходе от одной вершины области допустимых значений к другой, соседней, в которой значение функции цели лучше, чем в исходной точке. Движение происходит по периметру контура двумерной области или в случае более двух переменных – по ребрам многомерного многогранника. Более оптимальным, строго говоря, был бы путь не по периметру (или ребрам), а поперек области или вдоль грани, или внутри объема многогранника к оптимальной вершине.

Аналитически доказывается, что:

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

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

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

Геометрически (для случая n = 2) этот метод означает следующее. На первом шаге выбирают любую вершину многогранника и проводят через нее прямую – функцию цели. Решения (конкретные значения x1, x2), соответствующие вершине, будут опорными (базисными). По найденным значениям x1, x2 и функции цели находят направление к другой вершине (второй шаг), в которой функция цели возрастает (или убывает, если ищется минимум). В результате получают второе опорное решение. Симплекс-метод дает оптимальную последовательность шагов, приводящую к оптимальному решению, если оно существует.

Наглядная геометрическая интерпретация процесса нахождения оптимального решения получится, если от исходной прямоугольной системы координат (x1, x2) перейти к двумерной косоугольной системе введением дополнительных неосновных свободных переменных

y v = xn+ v, n = 1,..., m

в соответствии с равенством (2.3). Тогда для случая двух переменных имеем

y v = av1x1 + a v 2x2 + b v.

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

Пример. Максимизируем функцию

(2.7)
L = –4x1 + x2 = max

при ограничениях:

x1 + 4x2 – 8 ³ 0;

(2.8)
2x1 – x2 + 2 ³ 0;

–x1 – x2 + 10 ³ 0;

– x1 + 2x2 + 2 ³ 0.

Для этого перейдем от прямоугольной системы координат (x1, x2) к косоугольной (y1, y2) (рис. 2.5), для которой (система 1)

y1 = –x1 + 2x2 + 2= x3;

y2 = x1 + 4x2 – 8 = x4.

Рис. 2.5. Геометрическая интерпретация симплекс-метода для двумерного случая

В новой системе 1 осями координат будут прямые y1 = 0, y2 = 0, совпадающие с ребрами AD и АВ, начало координат совпадет с вершиной А, координаты которой x1 = 4, x2 = 1. Функция цели примет вид

L = –4x1 + x2 = 17/16y1 – 7/6y2 – 15,

так как

x1 = – 2/3y1 + 1/3y2 + 4;

x2 = 1/6y1 + 1/6y2 + 1.

В начале координат (точка A) y1 = x3 = 0; y2 = x2 = 0; LA = –15. Функция цели возрастает при увеличении y1 = x3, поэтому следует двигаться в положительном направлении оси y1 = x3; y2 = x4 = = 0 и в вершине В перейти к новой системе координат (система 2):

y2 = x4 = x1 + 4x2 – 8;

y3 =x5 = 2x1 – x2 + 2

(точка пересечения прямых y2 = 0, y3 = 0 определяет вершину B). Выражая из формул (2.8) x1 и x2 через y2, y3, получаем:

x1 = 1/9y2 + 4/9y3;

x2 = 2/9y2 – 1/9y3 + 2.

Подставляя эти выражения в линейную форму (2.7), имеем

L = –4x1 + x2 = –2/9y2 – 2y3 + 2.

Отсюда значение функции цели в вершине B LB = +2.

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

Заметим, что на рис. 2.5 граница области соответствует прямым уi = 0 (i = 1, 2, 3, 4). Нумерация всей косоугольной системы координат меняется на каждом шаге. Так, на первом шаге прямая AD является осью у2, а прямая АВ – осью у1; на втором шаге прямая АВ является осью у3, а прямая ВС – осью у2. Косоугольная система координат будет выбрана неудачно, если:

y1 = –x1 + 2x2 + 2 = x3;

y3 = 2x1 – x2 + 2 = x5.

В этом случае начало координат (y1 = x3 = 0, y3 = x5 = 0) придется на точку Е с координатами x1 = –1,5, x2= –2, не принадлежащую области допустимых значений. Общее правило выбора начальной вершины заключается в том, что она должна лежать на пересечении пары осей косоугольных координат уi = 0 (i= 1, 2,..., m) и при подстановке ее координат в другие ограничения остальные координаты уj должны быть положительны, т.е. точка должна принадлежать допустимой области.

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

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

L = c1y1 + c2y2 +... + cmym

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

Рис. 2.6. Геометрическая интерпретация симплекс-метода для трехмерного случая

Рассмотрим рис. 2.7, на котором представлена область допустимых значений на плоскости (x1,x2) и поверхность функции цели L(x1,x2). Так как ограничения линейные, то допустимая область представляет собой выпуклый многоугольник. Из-за линейности функции цели

L(x1,x2) = c1x1 + c2x2 + b

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

Рис. 2.7. Локальный (он же глобальный) экстремум в линейном программировании

Если функция цели нелинейная, то экстремум может достигаться в середине участка поверхности L(x1,x2) и экстремумов может быть несколько. Аналогичная ситуация может появиться при нелинейных ограничениях. Область допустимых значений тогда может быть многосвязной, и в каждой односвязной области достигается свой экстремум.

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

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

Обычно считается, что линейная форма зависит от всех переменных

но в частных случаях некоторые из cj равны нулю. На первом шаге выбирают m базисных переменных. Решение системы уравнений

при нулевых значениях небазисных координат называется базисным решением. В качестве базисных переменных можно выбрать любые m переменных, для которых векторы аi = ||aij|| линейно независимы, т.е. детерминант матрицы ||aij|| отличен от нуля. Однако на первом шаге их необходимо выбрать так, чтобы базисное решение, соответствующее началу координат косоугольной системы, принадлежало допустимой области (было бы одной из ее вершин). Вопрос о выборе начального базиса (базисного решения) требует специального рассмотрения, которое будет выполнено ниже.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: