Оптимизация показателей качества при наличии ограничений. Линейное программирование, страница 2

      Из нулевой строки  таблицы 1 имеем:

так, как a0n  > 0, отсюда следует, что увеличивая ג можно неограниченно уменьшить значение целевой функции.

     При выполнении шага 2 может оказаться, что минимум отношения ai0 / ais   (ais  > 0), будет одинаковым для нескольких строк таблицы, (нескольких i), т. е. сразу несколько строк таблицы могут быть ведущими. В этом случае выбирают строку с меньшим номером. Такое правило теоретически может приводить к зацикливанию. Задачи в этом случае называют вырожденными. Шаг 3. Используя элементарные преобразования сделать так, чтобы ведущий элемент ars стал равным единице, а остальные элементы ведущего столбца – нулевыми, т.е. преобразовать систему к диагональному виду относительно нового набора базисных переменных.

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

     Последовательное выполнение вычислений шагов 1-3 составляет одну итерацию симплекс-метода.

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

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

Замечание 1 Алгоритм СМ обладает тем свойством, что после выполнения некоторого конечного числа итераций, либо будет найдено оптимальное решение, либо установлена неразрешимость задачи.

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

     Значение целевой функции на каждой итерации уменьшается на величину  ar0 / ars:  а00 – ar0 / ars.

Пример.                  F = - 2 х1 – х2 + х3  -  х4 + х5  → min

  х1 + х2 3               = 5

                                       2 х1 + х2     4           = 9

  х1 + 2 х2           5  = 9

      Исходное допустимое базисное решение:

х1 = 0, х2 = 0, х3 = 5, х4 = 9, х5 = 7

Обозначим  х0 = F и составим уравнение (*). C уравнением (*) сложим уравнения ограничений, умноженные соответственно на +1, -1, +1.

                              х0 +  2 х1 + х2 - х3  +  х4 - х5  = 0  (*)

       х1 + х2 3               = 5     (+1)

                                    2 х1 + х2     4           = 9     (-1)

        х1 + 2 х2           5  = 9     (+1)

Получим первое уравнение системы (2.28) в виде 2х1 +3х3 = 3 и составим начальную симплекс – таблицу (табл.2.2):

                                        Таблица 2.2.

х1

х2

х3

х4

х5

х0

3

+2

+3

0

0

0

х3

5

1

1

1

0

0

х4

9

2

1

0

1

0

х5

7

1

2

0

0

1

В нулевой строке имеются положительные элементы. Поэтому текущее решение не является оптимальным. Среди двух неравных положительных элементов  нулевой строки выбираем максимальный

 a02= +3. Ведущий столбец – второй. В этом столбце выбираем минимум из отношений  min {7/2; 9/1; 5/1} = 7/2, а ведущим элементом выбираем a52= 2.

Таким образом переменную х5 следует вывести из базиса, а вместо нее ввести переменную х2. Для этого умножим последнюю строку на -3/2, -1/2, -1/2 и складываем соответственно с нулевой, первой и второй строками и запишем соответствующую симплекс – таблицу (Табл.2.3):

                                                                 Таблица 2.3

х1

х2

х3

х4

х5

х0

-15/2

+1/2

0

0

0

-3/2

х3

3/2

½*

0

1

0

- 1/2

х4

11/2

3/2

0

0

1

- 1/2

х5

7/2

1/2

1

0

0

1/2


В первой строке один положительный элемент и таким образом ведущий столбец – первый. Сравнивая отношения найдем минимум

min {3/2: 1/2; 11/2: 3/2; 7/2:1/2} = 3/2:1/2 = 3.

Это значит, что переменную х3 следует вывести из базиса и ввести вместо нее переменную х1. Для этого умножим первую строку на (-1), (-3), и (-1) и сложим ее соответственно с нулевой, второй и третьей строкой и запишем соответствующую симплекс – таблицу (2.4):

                                                                             Таблица 2.4.

х1

х2

х3

х4

х5

х0

   -9

0

0

-1

0

-1

х3

3

1

0

2

0

  -1

х4

1

0

0

-3

1

1

х5

2

0

1

-1

0

1

Таким образом минимальное значение F = -9, а оптимальный план

х1 = 3,  х2 = 2,  х3 = 0,  х4 = 1, х5 = 0.

Двухфазный симплекс-метод Рассмотрим общую (не приведенную к диагональному виду) задачу линейного программирования в каноническом виде:

 y = с1 х1 + с2x2+….+ сnxn min

a11х1 +  а12х2 +….+ a1n хn = b1

                           a21 х1 + а22х22 +….+ a2n хn = b2                  (2.29)

………………………………

aк1 xk + аk2х2 +….+ akn хn = bk

х1, х2,…, хn ≥ 0, bi  ≥ 0.

1. Введем дополнительные неотрицательные переменные хn+1, хn+2,…, хn, которые называются искусственными переменными и рассмотрим новую задачу:

z = хn+1 + хn+2 +…+  хn →  min

y - с1 х1 - с2x2-….- сnxn = 0

                  a11х1 +  а12х2 +….+ a1n хn + хn+1               = b1

                               a21 х1 + а22х22 +….+ a2n хn       + хn+2       = b2     (2.30)

………………………………

                   aк1 xk + аk2х2 +….+ akn хn              + хn = bk

х1, х2,…, хn, хn ≥ 0, bi  ≥ 0.

2. Складывая уравнение z - хn+1 - хn+2 -…-  хn= 0 со всеми уравнениями, содержащими переменные хn+1, хn+2,…,  хn, получим систему:

                  d1х1 +  d2х2 +….+ dn хn +z                             =z0 

                    - с1 х1 - с2x2-….- сnxn  +y                          = 0

                  a11х1 +  а12х2 +….+ a1n хn      + хn+1                 = b1

                              a21 х1 + а22х22 +….+ a2n хn            + хn+2          = b2  (2.31)

………………………………

                   aк1 xk + аk2х2 +….+ akn хn                    + хn = bk

х1, х2,…, хn, хn ≥ 0, bi  ≥ 0

Система (2.31) имеет диагональный вид относительно переменных z, y, хn+1,…, хn+k. К ней можно применить рассмотренный ранее симплекс – метод. Так как все искусственные не отрицательны, то минимальное значение функции  z = хn+1 + хn+2 +…+  хn = 0. Таким образом, если исходная система ограничений в системе (1) совместна, то значение zmin = 0, будет достигнуто и при этом все искусственные переменные должны стать равными нулю. Вместо них в число базисных переменных войдут переменные из числа х1, х2,…, хn. Затем первую  строку системы (2.31) можно вычеркнуть и переходить к минимизации функции y. Такой способ решения исходной канонической задачи называется двухфазным симплекс – методом.