Симплекс-метод Лекции 6, 7 Симплекс-метод с естественным базисом Симплекс –метод основан на переходе от одного опорного плана к другому, при котором значение целевой функции возрастает при условии, что задача имеет оптимальный план и каждый опорный план является невырожденным. Этот переход возможен, если известен какой-либо опорный план. В этом случае каноническая задача линейного программирования должна содержать единичную подматрицу порядка m Тогда очевиден первоначальный опорный план( неотрицательное базисное решение системы ограничений КЗЛП). Рассмотрим задачу, для которой это возможно. Пусть требуется найти максимальное значение функции F c1 x1 c2 x2 ... cn xn при условиях x1 a1m 1 xm 1 ... a1n xn b1 , x a x ... a x b , 2 2 m 1 m 1 2n n 2 ............................................., xm amm 1 xm 1 ... amn xn bm , x j 0, ( j 1, n). Здесь aij , bi , c j (i 1, m, j 1, n) -заданные постоянные числа, причем m n, bi 0. Перепишем ЗЛП в векторной форме: найти максимум n функции F cjxj j 1 при условиях Здесь x1 P1 x2 P2 ... xn Pn P0 , x j 0 ( j 1, n). b1 1 0 b 0 1 2 P0 ; P1 ; P2 ;...; ... ... ... 0 0 bm a1m 1 a1n 0 a a 0 Pm ; Pm 1 2 m 1 ; Pn 2 n . ... ... ... a a 1 mm 1 mn Так как b1P1 b2 P2 ... bm Pm P0 , то по определению опорного плана X (b1 , b2 ,..., bm ,0,0,...,0) , где последние компоненты вектора равны нулю, является опорным планом Опорный план называется невырожденным, если он содержит m положительных компонент. В противном случае он называется вырожденным. План, при котором целевая функция ЗЛП принимает свое максимальное (минимальное ) значение , называется оптимальным Этот план определяется системой единичных векторов , которые образуют базис m-векторного пространства. Проверка на оптимальность опорного плана происходит с помощью критерия оптимальности. Признак оптимальности. 1)Опорный план ЗЛП является оптимальным, если m j z j c j ci aij c j 0 i 1 для любого j 1, n . 2)Если для некоторого j=k k 0 и среди чисел aik (i 1, m) нет положительных, т.е. aik 0 , то целевая функция ЗЛП не ограничена на множестве ее планов, т.е. ЗЛП не имеет решения, так как нет конечного оптимума. 3)Если же для некоторого k выполняется условие k 0 , но среди чисел aik есть положительные, т.е. не все aik 0, то можно получить новый опорный план, для которого значения целевой функции F ( X ) F ( X ) . На основании признака оптимальности делаем вывод о целесообразности перехода к новому опорному плану. Симплекс-таблица Симплекс-таблица В столбце Сб записывают коэффициенты при неизвестных целевой функции, имеющие те же индексы, что и векторы данного базиса. В столбце P0 -положительные компоненты исходного опорного плана, в нем же в результате вычислений получают положительные компоненты оптимального плана. Первые m строк заполняют по исходным данным задачи, а показатели (m+1)-й строки вычисляют. В этой строке в столбце вектора P0 записывают значение целевой функции, которое она принимает при данном опорном плане, а в столбце вектора Pj значение j z j c j . Здесь z cá Pj , т.е. m z j ci aij c1a1 j c2 a2 j ... cm amj ( j 1, n) i 1 Значение F0 P0 cá c1b1 c2b2 ... cmbm . После заполнения таблицы исходный опорный план проверяют на оптимальность. Для этого просматривают элементы (m+1)-й строки. Может иметь место один из 3-х случаев. 1) Все j 0. Тогда составленный план оптимален. 2) j 0 для некоторого j и все соответствующие этому j aij 0 . Тогда целевая функция неограничена. 3) j 0 для некоторых индексов j и для каждого такого j по крайней мере одно из чисел aij положительно. Здесь можно перейти к новому опорному плану. Этот переход осуществляется исключением из базиса какого-нибудь из векторов и включением в него другого. В базис вводим вектор , давший минимальную отрицательную величину симплекс-разности k min( z j c j ), ( j 1, n) Из базиса выводится вектор Pr , который дает наименьшее положительное оценочное отношение bi Q min( ) aik для всех aik 0 , т.е. минимум достигается при i=r. Число ark называется разрешающим элементом. bi br Q min( ) , aik 0, i 1, m. aik ark Строка Pr называется разрешающей строкой, элементы этой строки в новой симплекс-таблице вычисляются по методу Жордана-Гаусса, т.е. по формулам: arj arj ark , j 1, n, i r. Элементы i-й строки –по формулам aij aij arj aik ark , i 1, m, j 1, n. Значение нового опорного плана считают по формулам br br äëÿ i r , i 1, m; ark br aik bi bi äëÿ i r , i 1, m. ark Значение целевой функции при переходе от одного опорного плана к другому , улучшенному, изменяется по формуле F F k Q. Процесс решения продолжаем до получения оптимального плана либо до установления неограниченности ЦФ. Если среди оценок оптимального плана нулевые только оценки , соответствующие базисным векторам, то оптимальный план единствен. Если же нулевая оценка соответствует вектору, не входящему в базис, то в общем случае это означает, что опорный план не единствен. Алгоритм применения симплексметода 1)Находят опорный план. 2)Составляют симплекс-таблицу. 3)Выясняют, имеется ли хотя бы одна отрицательная оценка. Если нет, то найденный опорный план оптимален. Если же есть отрицательные оценки, то либо устанавливают неразрешимость задачи, либо переходят к новому опорному плану. 4)Находят направляющие столбец и строку. Направляющий столбец определяется наибольшим по абсолютной величине отрицательным числом j , а направляющая строка— минимальным числом Q. 5)Определяют положительные компоненты нового опорного плана. Составляется новая таблица. 6)Проверяют найденный опорный план на оптимальность. Пример. Решить симплекс-методом ЗЛП F 10 x1 20 x2 max x1 3,5 x2 350, 2 x1 0,5 x2 240, x x 150, 1 2 x1,2 0. Решение. Приведем задачу к каноническому виду, введя новые переменные x3 , x4 , x5. В целевую функцию эти переменные войдут с нулевыми коэффициентами: F 10 x1 20 x2 0 x3 0 x4 0 x5 max, x1 3,5 x2 x3 350, 2 x1 0,5 x2 x4 240, x x x 150, 1 2 5 x1,2,3,4,5 0. Из коэффициентов при неизвестных и свободных членов составим векторы 1 3,5 1 0 0 350 P1 2 , P2 0,5 , P3 0 , P4 1 , P5 0 , P0 240 1 1 0 0 1 150 Единичные векторы образуют единичную подматрицу и составляют базис первоначального плана. Свободные неизвестные приравниваются к нулю. Получаем первоначальный опорный план: Х= (0;0;350;240;150). Составим симплекс-таблицу и проверим план на оптимальность. В нашем примере m 3, n 5. Для заполнения последней строки таблицы сразу вычислим симплекс-разности m j z j c j ci aij c j : i 1 Для этого поочередно умножаем столбец Сб на соответствующие элементы каждого столбца P1 , P2 , ... 1 z1 c1 0 1 0 2 0 1 10 10, 2 z2 c2 0 3,5 0 0,5 0 1 20 20, 3 z3 c3 0 1 0 0 0 0 0 0, 4 z4 c4 0 1 0 0 0 0 0 0, 5 z5 c5. 0 0 0 0 0 1 0 0. Составим теперь нулевую симплексную таблицу Таблица 0. Определяем разрешающий элемент симплексной таблицы. Т.к. имеется 2 отрицательные оценки, то выбираем ту, что дает максимальную по абсолютной величине отрицательную оценку, т. е. -20. Это означает, что в базис включается вектор P2 , а исключается из базиса тот вектор, которому соответствует bi br Q min i aik ark (aik 0, i 1, m) . bi 350 240 150 Q min min , , min 100, 480,150 i 3,5 0,5 1 aik br b1 100. ark a12 Разрешающим элементом является a12 3,5 . Значение целевой функции в следующей симплекс-таблице будет равно: (1) (0) (0) (0) F ( X ) F ( X ) k Q 0 (20) 100 2000 Элементы направляющей строки в новой таблице вычисляем, деля эту строку на ведущий элемент(в том числе и клетку в столбце план): (1) 11 a (0) 11 a 1 0, 286, a12 3,5 (0) 12 (1) 12 a 3,5 1 (1) 1, a13 0, 286, a12 3,5 3,5 (1) 14 0 0 (1) 0, a15 = 0. 3,5 3,5 a a Можно рассчитывать элементы строк методом Жордана-Гаусса, домножая 1ю строку на (-0,5) и прибавляя ее ко 2-й, а затем на(-1) и прибавляя к 3-й, обнулив таким образом элементы 2-го выделенного (разрешающего) столбца, или по формулам треугольника ari aik a aij ark ' ij br aik b bi , i r. ark ' i Элементы 2-ой строки получаем по методу Жордана-Гаусса (или по формулам треугольника) (1) 21 a11 1 0,5 a21 2 1,857, a12 3,5 (1) 22 a12 a22 3,5 0,5 a22 0,5 0, a12 3,5 a a (1) 23 a a23 ....... a13a 22 a12 1 3,5 0 0,143, 3,5 Аналогично рассчитываем элементы 3й строки. Значения нового опорного плана рассчитываем по формулам: (1) 2 b1a22 350 0,5 b2 240 190, a12 3,5 (1) 3 b1a22 350 1 b3 150 50. a12 3,5 b b После чего заполняем таблицу 1. Таблица 1. Проверим план на оптимальность. Вычислим симплекс-разности. 1(1) z1 c1 20 0, 286 0 1,857 0 0, 714 10 4, 286, (1) 2 z2 c2 20 1 0 0 0 0 20 0, 3(1) z3 c3 20 0, 286 0 (0,143) 0 (0, 286) 0 5, 714, (1) 4 z4 c4 20 0 0 1 0 0 0 0, 5(1) z5 c5 20 0 0 0 0 1 0 0. В первом столбце матрицы имеется отрицательная оценка. План не оптимален, но его можно улучшить , включив в базис вектор P1 . Найдем минимальное оценочное отношение: bi 50 100 190 Q min min ; ; 0, 286 1,857 0, 714 aik b3 min 350;102,308;70 70. a31 Выводится из базиса вектор P5 , которому соответствует минимальное оценочное отношение 70. Переходим к следующему опорному плану. Вводим в базис вектор P1 , делим разрешающую строку на разрешающий элемент a31 0, 714 и заполняем 3-ю строку таблицы 2. После чего методом Жордана-Гаусса домножаем эту строку на (-0,286) и прибавляем к первой, затем домножим эту строку на (-1,857) и прибавляем ко второй. Таблица 2 Вычисляем симплекс-разности. 1 z1 c1 20 0 0 0 10 1 10 0, 2 z2 c2 20 1 0 0 10 0 20 0, 3 z3 c3 20 0, 4 0 0, 6 10 (0, 4) 0 4, 4 z4 c4 20 0 0 1 10 0 0 0, 5 z5 c5 20 (0, 4) 0 (2, 6) 10 1, 4 0 6. План оптимален. Значение целевой функции F 10 70 20 80 0 60 2300.