§ 1.4. Специальные виды задач ЛП Стандартная задача максимизации минимизации max z max(c1x1 cn xn ), min z min(c1x1 cn xn ), ai 1x1 ain xn bi , i 1, m, x j 0, j 1, n. ai 1x1 ain xn bi , i 1, m, x j 0, j 1, n. Матричная форма записи min z min CX max z max CX AX B AX B X 0 X 0 Обозначения T B b1, b2 , , bm X x1, x2 , , xn T C c1, c2 , , cn Amn aij 1 Каноническая задача максимизации max z max(c1x1 ai 1x1 cn xn ), ain xn bi , i 1, m, x j 0, j 1, n. минимизации min z min(c1x1 cn xn ), ai 1x1 ain xn bi , i 1, m, x j 0, j 1, n. Матричная форма записи max z max CX AX B X 0 min z min CX AX B X 0 2 Эквивалентные преобразования • Нахождение максимума линейной функции эквивалентно нахождению минимума этой функции, взятой с противоположным знаком, и наоборот: min z max( z ), max z min( z ). • Если на переменную не накладывается условие неотрицательности, то ее можно заменить разностью двух неотрицательных переменных: x j x j x j , x j 0, x j 0. 3 • Если имеется n переменных без ограничения на знак, то их можно заменить n+1 неотрицательной переменной: x j x j x0 , x j 0, j 1, n, x0 0. • Ограничение типа неравенства можно представить в виде равенства, используя слабые переменные, следующим образом: ai 1x1 ain xn bi ai 1x1 ain xn si bi , si 0, i 1, m, ai 1x1 ain xn bi ai 1x1 ain xn si bi , si 0, i 1, m 4 • Ограничение типа равенства можно заменить двумя неравенствами: ai 1x1 ai 1x1 ain xn bi ai 1x1 ain xn bi , ain xn bi . • Если имеется m равенств, то их можно заменить m+1 неравенством: ai 1x1 ain xn bi , i 1, m ai 1x1 ain xn bi , i 1, m, m m (ai 1x1 ain xn ) bi . i 1 i 1 Знак неравенства можно заменить на противоположный, умножив данное неравенство на (-1)! 5 Пример 1.4.1. Представить задачу ЛП в стандартной и канонической формах максимизации: min z min(2 x1 3 x2 ), x1 x2 10, 2 x1 3 x2 5, 7 x 14 x2 6, x2 0. каноническая задача максимизации: x1 x1 x1 x1 , x1 0 max( z ) max( 2 x1 2 x1 3 x2 ), x1 x1 x2 10, 2 x1 2 x1 3 x2 s1 5, 7 x1 7 x1 4 x2 s2 6. x1 0, x1 0, x2 0, s1 0, s2 0 6 min z min(2 x1 3 x2 ), x1 x2 10, 2 x1 3 x2 5, 7 x 14 x2 6, x2 0. стандартная задача максимизации: x1 x1 x1 x1 , x1 0 max( z ) max( 2 x1 2 x1 3 x2 ), x1 x1 x2 10, x1 x1 x2 10, 2 x1 2 x1 3 x2 5, 7 x1 7 x1 4 x2 6, x1 0, x1 0, x2 0. 7 § 1.5. Базисное решение системы линейных уравнений max z max CX AX B, X 0. Будем считать, что СЛУ AX = B совместна (имеет решение), следовательно выполнено условие: rang ( A) rang ( A, B ) a11x1 a1 j x j a1n xn b1, a21x1 a2 j x j a2 n xn b2 , a x a x a x b . mj j mn n m m1 1 rang ( A) rang ( A, B ) n 1. Решение единственно: 2. Бескон. множество решений: rang ( A) rang ( A, B ) n 8 Базисным решением СЛУ, зависящим от множества индексов S 1, , m , будем называть решение СЛУ, которое находится по правилам: • привести данную систему, используя метод Гаусса, к диагональной форме по переменным x1, , xm ( базисные переменные) x a1m 1xm 1 a1n xn b1, 1 a 2m 1xm 1 a 2n xn b 2 , x2 xm a mm 1xm 1 a mn xn b m . переменные xm1, , xn называются небазисными, возьмем xm1 0, , xn 0, X (b1, b2, bm ,0...,0) x b , x b , x b 1 2 m 2 m получим 1 Базисное решение 9 Замечание 1.5.1. Базисное решение не может содержать более чем m отличных от нуля элементов. Замечание 1.5.2. Если базисное решение содержит ровно m отличных от нуля компонент, то оно называется невырожденным базисным решением. В противном случае – вырожденным базисным решением. Замечание 1.5.3. Если все компоненты базисного решения неотрицательные, то такое базисное решение называется допустимым базисным решением. Замечание 1.5.4. Количество базисных решений СЛУ не может превышать n! величину Cm . n m ! n m ! 10 Пример 1.5.1. Найдем все базисные решения системы ЛУ: x1 x2 2 x3 2 x1 2 x2 x3 1 S 1, 2 S 1, 3 S 2, 3 Максимальное количество базисных решений : 3 x3 5 x1 x 2 x3 3 3 x2 4 x1 x3 x 2 3 3! C 3 2!(3 2)! 2 3 x1 5, x2 3, x3 0 доп. невырожд. баз. решение x1 4, x2 0, x3 3 недоп. невырожд. баз. решение 4 5 1 3 x1 x2 4 3 x 0, x , x 1 2 3 3 3 1 3 x1 x3 5 3 доп. невырожд. баз. решение 11 § 1.6. Алгоритм симплекс-метода решения задачи ЛП Утверждение 1.6.1. Если у системы линейных уравнений существует решение, то существует и базисное решение этой системы ЛУ. Утверждение 1.6.2. Если задача ЛП имеет допустимое решение, то она имеет и допустимое базисное решение. Утверждение 1.6.3. Если задача ЛП имеет оптимальное решение, то она имеет и оптимальное базисное решение. 12 Перейдем к описанию формального алгоритма симплекс-метода для канонической задачи максимизации: max z max (с1x1 ai 1x1 сn xn ), ain xn bi , i 1, m, x j 0, j 1, n. Выполним ряд вспомогательных построений. По задаче ЛП запишем СЛУ, рассматривая целевую функцию как одно из ограничений (z-уравнение): z c1x1 cn xn 0, ai 1x1 ain xn bi , i 1, m. 17 z c1x1 cn xn 0, ai 1x1 ai n xn bi , i 1, m. Приведем данную систему к диагональной форме по переменным z,x1, , xm z x1 x2 cm 1xm 1 cn xn z 0 , a1 m 1xm 1 a1 n xn b1, a2 m 1xm 1 a2 n xn b2 , xm am m 1xm 1 am n xn bm . 18 Симплексная таблица представляет собой таблицу коэффициентов диагональной формы СЛУ, построенной для канонической задачи максимизации. z x1 xr x m xm 1 z z0 0 0 0 x1 b1 1 0 xr 0 xm b 0 m br cm 1 xs xn cs cn 0 a1 m 1 a1s a1 n 1 0 ar m 1 ar s ar n 0 1 am m 1 am s am n 19 Классификация симплексных таблиц: симплексная таблица называется прямо-допустимой, если bi 0, i 1, m , симплексная таблица называется двойств.-допустимой, если c j 0, j 1, n , симплексная таблица называется оптимальной, если она одновременно прямо- и двойственно допустимая, соответствует оптимальному базисному решению. 20 Алгоритм прямого симплекс-метода (максимизация) 0. Проверка прямо-допустимости. bi 0 ИТЕРАЦИЯ 1. Проверка оптимальности или нахождение ведущего столбца СТ. • Если все c j 0, то текущее базисное решение является оптимальным. • В противном случае в базис вводим переменную номер которой находится по правилу: xs cs min c j cj 0 Столбец s называется ведущим столбцом СТ. 21 2. Проверка неограниченности ведущей строки СТ. или нахождение • Если в ведущем столбце все коэффициенты ai s 0, i 1, m, то решение задачи неограниченно. • В противном случае следует выводить из базиса переменную, для которой: br bi min ar s ai s 0 ai s Строка с номером r называется ведущей строкой СТ, ar s 0 ведущим элементом СТ. 3. Преобразование СТ. ar s 1, ai s 0, cs 0 22 Ведущий столбец xr x m xm 1 z z0 0 0 0 x1 b1 1 0 xr 0 xm b 0 m br cm 1 xs xn cs cn 0 a1 m 1 a1s a1 n 1 0 ar m 1 ar s ar n 0 1 am m 1 am s am n Ведущая строка z x1 23 Пример 1.6.2. Решим задачу из примера 3.4.1 с помощью СТ: max z max(5 x1 3 x2 ), x1 x2 4, 5 x1 2 x2 10, x1 0, x2 0. Приведем к каноническому виду и составим диагональную форму для СЛУ z x 0, z 5 x1 3 x2 z x x s 4, 1 2 1 s1 5 x 2 x s 10, 1 2 2 s2 x1, x2, s1, s2 0. 1 x2 s1 s2 0 -5 -3 0 0 4 1 1 1 0 10 5 2 0 1 24 Итерация 1. Итерация 2. z x1 x2 s1 s2 z 0 -5 -3 0 0 s1 4 1 1 1 0 s2 10 5 2 0 1 z x1 x2 s1 s2 z 10 0 -1 0 1 s1 x1 2 2 0 1 3/5 2/5 1 0 -1/5 1/5 Итерация 3. Оптимальное решение z x1 x2 s1 s2 40/3 0 0 5/3 2/3 x2 10/3 0 1 5/3 -1/3 x1 2/3 1 0 -2/3 1/3 z x1 2 / 3, x2 10 / 3, z 40 / 3. 25 Геометрическая интерпретация расчетов по симплекс-методу: max z max(5 x1 3 x2 ), x2 x1 x2 4, C 4 5 x1 2 x2 10, x1 0, x2 0. 1-ое базисное решение B О: x1 0, x2 0 А: x1 2, x2 0 2-ое базисное решение grad z 5,3 3-ье базисное решение O A 2 x1 В: x1 2 3 x2 10 3 26 § 1.7. Прямая и двойственная задачи ЛП. Прямая задача cn xn ) min w min(b1y1 max z max(c1x1 ai 1x1 ai 1x1 Двойственная задача ai n xn bi ai n xn bi i 1, m1 yi 0 i m1 1, m yi R bm y m ) 1 xj 0 j 1, n1 a1 j y1 am j y m c j x j R1 j n1 1, n a1 j y1 am j y m c j X x1, x2, , xn R T n Y y1, y 2, , y m R m Пример 1.7.1. Запишем двойственную задачу к задаче: max z 3 x1 2x2 x3 , 1x1 1x2 1x3 5, 1 2 x1 1x2 3 x3 6, 2 x1 0, x2 R, x3 R. minw 5y1 6y 2 , y1 0, y 2 R, y1 2y 2 3, y1 y 2 2, y1 3y 2 1. 28 Прямая задача Частные случаи Двойственная задача max z max CX AX B, X 0 min w minYB YA C, Y 0 max z max CX AX B, X 0 min w minYB YA C min z minCX AX B, X 0 max w max YB YA C min z minCX AX B, X 0 max w max YB YA C, Y 0 min z min CX max w max YB YA C, Y 0 AX B 29 Экономическая интерпретация пары стандартных двойственных задач ЛП: max z max(c1x1 ai 1x1 cn xn ), min w min(b1y1 ai n xn bi , i 1, m, ai j – прибыль, приходящаяся на единицу продукции, – запас ресурса, – расход ресурса на единицу продукции, Оптимальный план производства X x ,x , * * 1 am j y m c j , j 1, n, y i 0, i 1, m. x j 0, j 1, n. c j , j 1, n bi , i 1, m a1 j y1 bm y m ), * 2 * n x , максимизирующий суммарную прибыль при ограничении на запасы ресурсов. Оптимальные цены ресурсов Y * y1* , y 2* , y m* , минимизирующие суммарные затраты при ограничении на стоимость продукции. 30 Теоремы двойственности и равновесия в линейном программировании min w minYB max z max CX AX B, X 0 YA C, Y 0 1.7.1 1.7.2 Стандартная пара двойственных задач Лемма 1.7.1. (Свойство допустимых решений) Пусть X и Y – произвольные допустимые решения задач (1.7.1) и (1.7.2) . Док-во: умножим тогда Тогда CX YB умножим AX B на Y слева: YAX YB, YA C на X справа: CX YAX CX YAX YB CX YB. 31 Лемма 1.7.2. (Достаточное условие оптимальности) Пусть X* и Y* – произвольные допустимые решения задач (1.7.1) и (1.7.2), для которых выполнено равенство CX * Y *B. Тогда X* и Y* – оптимальные решения задач ЛП. Доказательство: X и Y – произвольные допустимые решения, тогда для любого X , выполнено CX YB возьмем X* : CX * YB, но CX * Y *B Y *B YB, следовательно, Y * – оптимальное решение. Теорема 1.7.1. (Двойственности). • Если обе задачи ЛП (и прямая, и двойственная) имеют допустимые решения, то обе задачи имеют оптимальные решения X* и Y* , причем CX Y B, т.е. z X w Y • Если хотя бы одна из задач ЛП (прямая или двойств.) не имеет допустимого решения, то обе задачи ЛП не имеют оптимальных решений. Замечание 1.7.1. Теорема двойственности справедлива для любой пары двойственных задач. 33 Иллюстрация теоремы min w min(4 y1 2y 2 ), * y y1 y 2 1, 1 2 * y1 2, y 2 0 * y1 0, y 2 0. w 8 max z max( x1 2 x2 ), x1 x2 4, x1 2, x1 0, x2 0. 4 x1* 0 * x2 4 * z 8 1 2 4 1 2 34 Теорема1.7.1. (Критерий оптимальности) Для того чтобы пара допустимых решений X* и Y* задач (1.7.1) и (1.7.2) была парой оптимальных решений соответствующих задач, необходимо и достаточно, чтобы CX Y B Теорема 1.7.2. (Стандартная теорема равновесия) Для того чтобы пара допустимых решений X* и Y* задач (1.7.1) и (1.7.2) была парой оптимальных решений соответствующих задач, необходимо и достаточно, чтобы Y (B AX ) 0, (Y A C ) X 0. 35 Следствие. (Критерий оптимальности для стандартной задачи ЛП). Для того чтобы пара допустимых решений 1 n X (x , , x ) и Y ( y1 , , y m ) задач (1.7.1) и (1.7.2) была парой оптимальных решений , необх. и дост., чтобы выполнялись соотношения: 1. xj 0 a1 j y1 2. a1 j y1 3. y i 0 ai 1x1 4. ai 1x1 am j y m am j y m cj xj cj, 0, ai n xn bi , ai n xn bi y i 0. 36 Пример 1.7.1. Прямая задача max z max(5 x1 3 x2 ), x1 x2 4, 5 x1 2 x2 10, x1 0, x2 0. Оптимальное решение z 40 / 3, x1 2 / 3, x2 10 / 3. Двойственная задача min w min(4 y1 10 y 2 ), y1 5 y 2 5, y1 2y 2 3, y1 0, y 2 0. Критерий оптимальности x1 0 y1 5 y 2 5, x2 0 y1 2y 2 3. Оптимальное решение y1 5 / 3, y 2 2 / 3, w 40 / 3. 37 Пример 1.7.2. Прямая задача min z min(4 x1 x2 ), 3 x1 x2 3, 4 x1 3 x2 6, x1 2 x2 4, x1 0, x2 0. Оптимальное решение z 17 / 5 x1 2 / 5 x2 9 / 5 Двойственная задача max z max(3 y1 6 y 2 4 y 3 ), 3 y1 4 y 2 y 3 4, y1 3 y 2 2y 3 1, y 2 0, y 3 0. Критерий оптимальности x1 0 3 y1 4 y 2 y 3 4, x2 0 y1 3y 2 2y 3 1, 4 x1 3 x2 6 y 2* 0. y1 7 5 Оптимальное решение y3 1 5 * y 2 0 38 max z max CX min w minYB Каноническая пара AX B, X 0 YA C двойственных задач (1.7.4) (1.7.3) Теорема 1.7.4. (Канон. теорема равновесия) Для того чтобы пара допустимых решений X* и Y* задач (1.7.3) и (1.7.4) была парой оптимальных решений соответствующих задач, необх. и дост., чтобы (Y A C )X 0. Следствие. (Критерий оптимальности) Для того чтобы пара допустимых решений X* и Y* задач (1.7.3) и (1.7.4) была парой оптимальных решений соответствующих задач, необх. и дост., чтобы 1. x j 0 a1 j y1 2. a1 j y1 am j y m cj, am j y m c j x j 0. 39