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

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

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

аtj`= аtj / аtk ;

bt`= bt / аtk – вся разрешающая строка делится на разрешающий элемент, при этом на его месте получают 1;

аij`= аij - аtj`* аik = аij - аtj * аik / аtk ;

bi`= bi - bt`* аik = bi - bt * аik / аtk – из всех остальных строк вычитают преобразованную разрешающую строку, умноженную на элемент, стоящий в преобразуемой строке в разрешающем столбце (при этом на его месте получают 0, так как из него вычитают его же, умножив на 1);

Dj `= Dj - аtj`* Dk =Dj - аtj *Dk / аtk ;

d`= d - bt`*Dk = d - bt * Dk / аtk – то же самое делают с критериальной строкой.

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

Лемма 2 критерии допустимости таблицы). При преобразовании таблицы она сохраняет допустимость, т.е. bi` ³ 0, "i.

Доказательство.

Свободные члены вычисляются по формулеbi`= bi - bt * аik / аtk.

Здесь bi, bt ³ 0 (т.к. предыдущая таблица – допустимая); аtk > 0 (по способу выбора разрешающего элемента).

Если аik £ 0 , то bi` ³ 0 (к неотрицательному числу прибавляют неотрицательное).

Если аik > 0, то  разделим обе части неравенства bi - bt * аik / аtk ³ 0 на  аik . Получим: bi - bt * аik / аtk ³ 0  Û bi / аik - bt / аtk ³ 0 Û bi / аik ³ bt / аtk

Последнее неравенство истинно по способу выбора разрешающего элемента. Следовательно, будет истинно и первое из этих трех неравенств, т.е. bi` ³ 0.

Лемма доказана.

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

Лемма 3 (об изменении значения целевой функции). При переходе к следующему опорному плану значение целевой функции не убывает: d`³ d.

 Доказательство. Новое значение целевой функции вычисляется по формулеd`= d - bt * Dk / аtk. Здесь аtk > 0, Dk < 0, bt ³ 0.

Если bt > 0, то d`> d.

Есди bt = 0, то d`= d.

Лемма доказана.

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

Доказательство. Пусть Dk < 0, все аik £ 0.

Хо = (b1, . . .,bm, 0, . . ., 0) - исходный опорный план; k-я переменная - небазисная.

Рассмотрим семейство планов:

Х(a) = (b1 - a1ka, b2 - a2ka,. . .,bm - amka, 0, . . ., 0, a, 0, . . .,0), a ³ 0.

Эти планы допустимые. В самом деле, так как все аik £ 0, все переменные здесь неотрицательные. В выполнении остальных ограничений легко убедиться, подставив эти планы в систему ограничений задачи (14). В самом деле, в каждом ограничении при этом будет получено:

bi – aik*a + aik*a = bi

Последнее ограничение будет иметь вид: z + = d. Подставим в него план Х(a). При этом все слагаемые при небазисных переменных, кроме –го, обратятся в ноль (при небазисных тоже, потому что при этих переменных коэффициенты в критериальном ограничении равны нулю).

z + Dk*a = d; z = d - Dk*a. Так как Dk <0, a®+µ Þ z®+µ (при стремлении к бесконечности значение целевой функции тоже будет стремиться к плюс бесконечности). Таким образом, на допустимых планах целевая функция может принимать неограниченно большие значения.

Лемма доказана.

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