Общая теория симплекс-метода на базе линейной алгебры

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

(2.17)
ai1x1 + ai2x2 +... + ainxn = bi, i = 1,..., m;

L = c0 +c1x1 + c2x2+... +cnxn → min, 0 ≤ xi.

Будем считать, что система уравнений (2.17) содержит r линейно независимых уравнений, где r ≤ m. Эти r переменных на первом шаге являются базисными переменными, т.е. определяют базис. Строго говоря, с практической точки зрения можно считать, что r = m, так как в противном случае равенства (2.17) или несовместны, или хотя бы одно из них представляет линейную комбинацию остальных и поэтому является лишним. Разрешив уравнения (2.17) относительно этих переменных, получим

i = 1, 2,..., r.

(2.18)
Без потери общности можно считать, что независимы первые r уравнений (2.17). Предположим, что свободные коэффициенты bi неотрицательны. Каждое из этих уравнений можно рассматривать как проекцию векторного уравнения

на единичные векторы, направленные по координатным осям (ортам) p 1, p 2,..., p r, где

p 1 = (1,0,...,0);

p 2 = (0,1,0,...,0);

p r = (0,0,...,1).

Векторы p 1, p 2,..., p r образуют базис в m-мерном пространстве (рис. 2.8). При этом матрица разложений векторов p 0, p 1, p 2,..., p n в базисе p 1, p 2,..., p r представляется в виде

(2.19)

В этой матрице первые r столбцов представляют собой орты системы координат. Столбец r+1 состоит из свободных членов ограничений. Последние n–r столбцов состоят из компонент проекций вектор-столбцов p r+1,..., p n на орты p 1, p 2,..., p r. В целом матрица состоит из n + 1 вектор-столбцов с m компонентами каждый.

Рис. 2.8. Геометрическая интерпретация базисных переменных для трехмерного случая

Cимплекс-таблица теперь примет вид.

Таблица 2.5

    xr+1 xn
x1 b1 a1,r+1 ... a1n
x2 b2 a2,r+1 ... a2n
.   .    
.   .    
.   .    
xr bm c0 ar,r+1 c1 ... ... arn cn

Причем, соотношение для L запишется как

L = c0, j = 1, 2,..., r.

После процедуры включения в базис небазисных переменных и исключения базисных, отвечающих ряду требований, получим группу векторов p 1, p 2,..., p i1,..., p r образующих новый базис. Их определитель, записанный в старой системе координат, отличен от нуля.

Следовательно, эти векторы независимы и могут быть выбраны за новый базис. Повторяя этот процесс до тех пор, пока все числа в последней строке симплекс-таблицы 2.5 станут неположительны, получим оптимальное решение. Еще раз напомним, что в практически важных случаях r = m.

Обсудим методы отыскания начальной вершины многоугольника.

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

(2.20)
Ах = b;

Cx → min;

x ³ 0,

где b ³ 0; C = ||c1, c2,..., cn||. Стартовый базис считается найденным, если ограничения, содержащиеся в задаче (2.20), записаны как

xv = bv – (av,m+1xm+1+... + avnxn), v = 1, 2,..., m,

где bv ³ 0, так как, положив небазисные переменные xm+k = 0 (k = 1, 2,..., n–m), получим значения xv = bv ³ 0, которые являются допустимыми и соответствуют одной из вершин.

Иногда сразу удается выделить первый базис. Однако в общем случае это непростая задача.

(2.21)
Для каждого ограничения вводим вспомогательную переменную zi (i = 1,..., m). Тогда ограничения системы (2.20) будут выглядеть как

Ax + z = b; x ³ 0, z ³ 0.

Без нарушения общности считаем, что b неотрицательна, так как этого всегда можно достигнуть, поменяв соответствующие знаки в строках матрицы А. Поэтому допустимым базисным решением будет х = 0, z = b. Соот­ветствующая симплекс-таблица на первом шаге запишется в виде

z = b – Ax,

т.е. за базис взят вектор z.

На первом шаге минимизируется функция цели ∑zj при ограничениях (2.21). Непосредственно из этих ограничений следует, что если минимум функции ∑zj является положительной величиной, то система (2.21) не имеет неотрицательных решений, для которых z1,...,zm =0, так как в противном случае min∑zj = 0. Это означает, что исходная система (2.21) не имеет неотрицательных решений. Если min∑zj = 0, т.е. zj = 0 для всех j, то вектор z является базисным. Отправляясь от этого базиса, мы стремимся прийти к базису, не содержащему ни одной вспомогательной переменной:

xv = bv – (av,m+1xm+1 +... + avnxn + av1z1 +... + avmzm), v = 1, 2,..., m,

где bv ³ 0. Полагая в системе (2.21) zj = 0, придем к системе

xv = bv – (av,m+1xm+1 +... + avnxn), v = 1, 2,..., m,

которая равносильна исходной (2.20). Но здесь х1, х2,..., xm – базисные переменные. Следовательно, задача нахождения базиса решена. Может получиться, что при переходе от базиса z1, z2,..., zm к следующему эти переменные будут оставаться в следующем базисе. Тогда необходимо постепенно их перевести в небазисные.

Если среди неизвестных х1, х2,..., xm имеется такая переменная, например х1, которая входит только в одно уравнение, например в первое, причем коэффициент при этой переменной a11 имеет тот же знак, что и свободный член b1, тогда не имеет смысла вводить для первого уравнения искусственную переменную, так как х1 сразу войдет в базис. Действительно, первое уравнение можно представить в виде

x1 = b′1 – (a′12x2 +... + a′1nxn),

где b′1 = b1/a11 ³ 0. Если таких неизвестных несколько, то все их можно сразу включить в базис.

Пример. Дана система

x1 – 2x2 + x3 = 2;

–x1 – 4x2 + x4 = –8;

x1 + x2 + x5 = 10;

–2x1 + x2 + x6 = 2,

рассмотренная в примере ранее. Так как x3, х5, х6 входят каждая только в одно ограничение и коэффициенты при них имеют тот же знак, что и соответствую­щие свободные члены, включаем их сразу в базис. Для оставшегося ограничения вводим искусственную переменную z1. В итоге получаем:

x3 = 2 – (x1 – 2x2);

x5 = 10 – (x1 + x2);

(2.22)
x6 = 2 – (-2x1 + x2);

z1 = 8 – (x1 + 4x2 – x4);

x1 ³ 0; z1 ³ 0.

С помощью симплекс-метода требуется минимизировать форму

L1 = z1 = 8 – (x1 + 4x2 – x4)

при ограничениях (2.22). Составляем симплекс-таблицу на первом шаге.

Таблица 2.6

    x1 x2 x4
  x3 x5 x6 z1 L1 L   –2 –2 –1 –1 –1 –1

Необходимо минимизировать L. Опорный элемент выбираем на пересечении строки x3 и столбца x1. После первого шага получаем базис (х1, х5, x6, z1). На втором шаге опорный элемент выбирается на пересечении строки z1 и столбца x4, поэтому искусственная переменная z1 выводится из базиса. При этом L1 = 0. Таким образом, базис найден и состоит из х1, х2, x5, x6:

x1 = 4 – 2/3x3 + x4;

x2 = 1 + 1/6x3 + 1/6x4;

x5 = 5 + 1/2x3 – 1/2x4;

x6 = 9 – 3/2x3 + 1/2x4;

L = –15 + 17/6x3 – 7/6x4.


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



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