Симплекс-таблицы

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

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

Пусть имеем систему ограничений вида (3.2), в которой r = n - m переменных (x1,..., xr) являются свободными, а оставшиеся m переменных (xr+1, xr+2,..., xn) - базисными. Выразив базисные переменные через свободные, приведем систему к единичному базису, но запишем в виде, несколько отличном от системы (3.12) в том смысле, что все переменные (и свободные, и базисные) запишем в левой части, а в правой части - только свободные члены.

То есть в виде

x r+1 – a r+1,1 · x1 - a r+1,2 · x2 -.. - a r+1,p · xp -.. - a r+1,r · xr = b r+1

x r+2 – a r+2,1 · x1 - a r+2,2 · x2 -.. - a r+2,p· xp -.. - a r+2,r · xr = b r+2

.......... (3.15)

x q – a q,1 · x1 - a q,2 · x2 -.. - a q,p · xp -.. - a q,r · xr = b q

..........

x n – a n,1 · x1 - a n,2 · x2 -.. - a n,p · xp -.. - a n,r · xr = b n

а целевую функцию - в виде:

Ф - Г1·x1 – Г2·x2 -... - Гp·xp -... - Гr·xr = Гo (3.16)

(с целью упрощения записи значки «’» при коэффициентах и свободных членах уравнений в системе (3.15) упущены).

Системы (3.12) и (3.15) называются приведенными к единичному базису, имея в виду, что коэффициенты при базисных переменных составляют единичную матрицу Е.

Систему (3.15) и (3.16) можно представить в виде таблицы 3.1.

Таблица 3.1.

Базисные перемен- ные Свобод- ные члены свободные переменные Базисные переменные
x1 · · · xp · · · xr x r+1 · · · x q · · · x n
x r+1 b r+1 -ar+1,1 · · · -ar+1,p · · · -ar+1,r   · · ·   · · ·  
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
x q b q -aq,1 · · · - a q,p · · · - a q,r   · · ·   · · ·  
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
x n b n -an,1 · · · - a n,p · · · - a n,r   · · ·   · · ·  
Ф Гo - Г1 · · · - Гp · · · - Гr   · · ·   · · ·  

Хб = (0; 0;...;0; b r+1; b r+2;...; b n), при этом Фб = Го

Из таблицы 3.1 определим первое базисное решение Хб и соответствующее значение целевой функции Фб: значения базисных переменных и целевой функции «снимаются» из столбца свободных членов таблицы, а свободные переменные приравниваются нулю.

Здесь коэффициенты Гj называются оценками(индексами) соответствующих переменных xj, строка таблицы, содержащая Гj ,- индексной строкой.

В соответствии с описанным в предыдущем разделе симплекс-методом мы должны, прежде всего, выяснить имеется ли в выражении (3.13) линейной функции Ф = Гo + Г1∙x1 +... + Гj∙xj +... + Гr∙xr хотя бы один отрицательный коэффициент при свободных переменных x1,..., xr. Поскольку при записи в виде (3.16) и при внесении в таблицу 3.1 эти коэффициенты поменяли знаки, то мы должны, следовательно, выяснить имеются ли в последней строке таблицы положительные числа, не считая свободного члена Го.

Если таковых нет, то базисное решение, отвечающее данному базису, то есть (0;...; br+1,...; bq;...; bn) согласно случаю I является оптимальным, а

minФ = Го. Задача решена.

Предположим, что в последней строке имеется (не считая Го) положительная оценка - Гp>0. Отмечаем столбец, в котором она находится, вертикальной стрелкой. Этот столбец называется разрешающим столбцом.

Далее просматриваем другие элементы этого столбца. Если среди них нет положительных чисел, это означает, что все aip ≥ 0 (i = r+1,n) и задача подпадает под случай II, следовательно, min Ф = - ∞, задача решения не имеет.

И, наконец, пусть среди чисел отмеченного столбца, кроме последнего числа Гp, имеется хотя бы один положительный элемент, например, - aip > 0; Это означает, что aip < 0, задача подпадает под случай III, то есть, необходимо сделать следующий шаг по поиску оптимального решения. Для этого строку таблицы, в которой находится данный положительный элемент (- aip) выберем в качестве разрешающей строки. Отметим эту строку горизонтальной стрелкой.

Если в разрешающем столбце имеется несколько положительных элементов, то для соответствующих строк таблицы составим оценочные отношения bi/aip и выберем q-ю разрешающую строку из условия , где s– количество строк с положительными элементами в разрешающем р-ом столбце.

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

С этого момента начинается перестройка таблицы, цель которой состоит в переходе к новому базису, содержащему переменную xp базисной вместо xq (из таблицы 3.1 видно, что p ≤ r; r+1≤q ≤ n), то есть, q из числа базисных переменных, p - из числа свободных.

Перестройка осуществляется при помощи метода Джордана-Гаусса, как и в аналитическом симплекс-методе. А именно, умножим выделенную разрешающую q-ю строку на такое число, чтобы на месте разрешающего элемента появилась единица, то есть, умножим на 1/aqp. Это соответствует тому, что q-ое уравнение разрешается относительно новой базисной переменной xp.

Полученную таким образом строку запишем в новую таблицу на прежнее место, то есть в виде q-ой строки, но с новой базисной переменной xp вместо xq. Затем к каждой из остальных строк таблицы 3.1 прибавляем разрешающую строку, умноженную на такое число, чтобы в клетке отмеченного столбца появился нуль - это соответствует исключению неизвестной xp из остальных уравнений, а также из выражения для Ф. Преобразованные таким образом строки пишем в новую таблицу на место прежних строк.

К новой таблице применяется та же процедура. В результате или находится оптимальное решение (случай I, в индексной строке таблицы нет положительных оценок), или обнаруживается, что minФ = - ∞ (случай II, в разрешающем столбце нет положительных элементов), или же производится следующий шаг по поиску оптимального решения (случай III, в разрешающем столбце имеются положительные элементы) – переходим к новой таблице. И так далее, пока процесс не остановится, то есть, пока не придем к случаю I или случаю II.

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

Итак, при решении задач ЛП с помощью симплексных таблиц условием оптимальности в задачах на отыскание maxФ является отсутствие отрицательных оценок в индексной строке таблицы, в задачах на отыскание minФ - отсутствие положительных оценок в этой строке.

Вышеизложенное можно записать в виде следующего алгоритма.

1. Выделим исходный допустимый базис и заполним первую таблицу.

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

3. Пусть в оценочной строке имеется положительная оценка, скажем, Гp (в столбце xp). Отметим столбец xp (разрешающий столбец) вертикальной стрелкой. Просматриваем остальные элементы этого столбца. Если среди них нет положительных чисел, то min Ф = -∞ - задача решения не имеет.

4. Если в разрешающем столбце имеются положительные элементы, для каждого из этих чисел akp (k ≤ r) составляем оценочное отношение bk/akp, где bk - первое число в этой строке (свободный член). Из всех таких отношений выбираем наименьшее. Пусть оно соответствует строке для базисной переменной xq. Отметим эту строку (разрешающую строку) горизонтальной стрелкой. Отметим кружочком число aqp, стоящее в пересечении разрешающей строки и разрешающего столбца - разрешающий элемент таблицы.

5. Переходим к новой таблице. Для этого отмеченную (разрешающую) строку умножаем на 1/aqp (чтобы на месте разрешающего элемента появилась единица) и запишем ее в новой таблице на месте прежней с новой базисной переменной xp. К каждой из остальных строк таблицы прибавляем разрешающую строку, умноженную на (-aip/aqp), либо строку, полученную на месте разрешающей строки, умноженную на (-aip), чтобы элемент, стоящий в разрешающем столбце, обратился в 0. Полученную строку пишем на месте прежней.

6. С новой таблицей возвращаемся к выполнению пункта 2.

Примечания.

1) на практике при решении задач ЛП удобнее все переменные в столбцах симплекс-таблицы размещать в порядке возрастания их индексов (номеров), не разделяя их на базисные и свободные, как это было сделано в таблице 3.1 для удобства теоретического изложения;

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

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

***************

Пример 3.9. Найти наибольшее значение линейной функции

Ф = 7·x1 + 5·x2 → max

при ограничениях: 2·x1 + 3·x2 + x3 = 19,

2·x1 + x2 + x4 = 13,

3·x2 + x5 = 15,

3·x1 + x6 = 18.

******************** Р Е Ш Е Н И Е ********************

Задача дана в каноническом виде. Имеем систему 4 уравнений с 6 неизвестными переменными. Следовательно, m=4 переменные принять в качестве базисных, а r=n-m=2 переменные – в качестве свободных.

Шаг 1. Выберем в качестве свободных х1 и х2. Выразим базисные переменные х3, х4, х5, х6 через свободные, то есть, приведем систему уравнений к единичному базису и запишем в виде, удобном для применения симплекс-таблиц: x3 + 2·x1 + 3·x2 = 19,

x4 + 2·x1 + x2 = 13,

x5 + 3·x2 = 15,

x6 + 3·x1 = 18.

Целевая функция Ф = 7·x1 + 5·x2 уже выражена через свободные переменные, запишем ее в виде Ф - 7·x1 - 5·x2 = 0.

Заполним исходную таблицу (табл. 3.9.1).

Из этой таблицы определим первое базисное решение Х1= (0; 0; 19; 13; 15; 18) – оно допустимое, и соответствующее значение целевой функции Ф1= 0.

В индексной строке таблицы 3.9.1 имеются отрицательные оценки: -7 и –5 в столбцах х1 и х2. То есть, условие оптимальности не выполнено (при увеличении значений этих переменных значение Ф будет возрастать). Примем к рассмотрению, например, -5 в столбце х2 (переведем ее в базисные) и выделим соответствующий (разрешающий) столбец стрелкой. В этом столбце имеются три положительных элемента: 3, 1, 3 в строках х3, х4, х5.

Вычислим для этих строк оценочные отношения (разделим на эти числа соответствующие свободные члены), получим 19/3, 13/1, 15/3, из которых наименьшее - 15/3 - в строке для х5. Следовательно, строка х5 является разрешающей. Выделим ее стрелкой. Число 3, находящееся на пересечении разрешающей строки и разрешающего столбца, (обведено кружочком) является разрешающим элементом таблицы. На базе этого элемента переходим к новому базису, для чего переменные х2 и х5 меняем местами.

Шаг 2. Базисные переменные - х3, х4, х2, х6. Для составления следующей таблицы разрешающую строку таблицы 3.9.1 умножим на 1/3, чтобы получить на месте разрешающего элемента 1, и полученную таким образом строку пишем в новую таблицу 3.9.2 на месте прежней с базисной переменной х2.

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

Теперь все рассуждения повторяются применительно к табл. 3.9.2. Вторым допустимым базисным решением является Х2= (0; 5; 4; 8; 0; 18), при этом Ф2= 25. В индексной строке таблицы 3.9.2 имеется отрицательная оценка –7 в столбце х1 (разрешающий). Строка х3 с наименьшим значением оценочного отношения является разрешающей строкой, элемент 2, находящийся на пересечении столбца х1 и строки х3, есть разрешающий элемент. На базе этого элемента переходим к новому базису, то есть, к следующей таблице 3.9.3.

Шаг 3. Базисные переменные – х1, х4, х2, х6. Из таблицы 3.9.3 находим третье допустимое базисное решение Х3= (2; 5; 0; 4; 0; 12), при этом Ф3= 39. В индексной строке таблицы имеется отрицательная оценка –11/6 в столбце х5 (разрешающий столбец), в котором имеются 3 положительных элемента в строках х4, х2, х6. Строка х4 – разрешающая строка, элемент 2/3 – разрешающий элемент, на базе которого переходим к новому базису, то есть, к таблице 3.9.4.

Шаг 4. Базисные переменные – х1, х5, х2, х6. Четвертое допустимое решение Х4= (5; 3; 0; 0; 6; 3), при этом Ф4= 50. В индексной строке таблицы 3.9.4 нет отрицательных оценок, условие оптимальности выполнено, следовательно, получили оптимальное решение и наибольшее значение целевой функции.

Ответ: maxФ = 50 при Хопт= (5; 3; 0; 0; 6; 3).


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



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