Федеральное агентство по образованию и Российской Федерации ГОУВПО «Пермский государственный университет» С.В. Лутманов ЛИНЕЙНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ Часть 1 Линейное программирование Учебное пособие ПЕРМЬ 2004 1 ББК 22. 161.8 Л86 УДК 519.9 Лутманов С.В. Л 86. Линейные задачи оптимизации: Учеб. пособие /Перм. ун.-т. – Пермь, 2004. Ч.1. Линейное программирование -128 с. ISBN 5-7944-0467-1 В учебном пособии рассматриваются линейные задачи оптимизации в конечномерных пространствах, обычно называемые задачами линейного программирования. Приводятся основные типы прикладных задач линейного программирования, описывается графический и симплекс - методы их решения, развивается теория двойственности в линейном программировании и исследуется возможность применения линейного программирования в теории игр. Весь излагаемый материал поясняется на примерах, большинство из которых решены с применением пакета MATHEMATIC 4.2. Пособие предназначено для студентов, магистрантов и аспирантов математических специальностей, изучающих курсы, связанные с вопросами оптимизации, Ил. 12. Табл. 13. Библиогр. 15 назв. Печатается в соответствии с решением редакционно–издательского совета Пермского государственного университета. Рецензенты: кафедра высшей математики Пермской государственной сельскохозяйственной академии, канд. ф.-м. наук, доцент кафедры дифференциальных уравнений декан, математического факультета Удмуртского государственного университета Н.Н. Петров. ISBN 5-7944-0467-1 © С.В. Лутманов 2 ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ……………………………………………………………5 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА…………………………….. 7| 1.1.Пространство R n ………………………………………………………….. 7 1.2. Точки и подмножества пространства R n …………………………….... 7 1.3. Алгебраические линейные комбинации подмножеств R n ….……...... 10 1.4. Расстояние Хаусдорфа………………………………………………..... 13 1.5. Определение выпуклого множества. Примеры…………………..….... 14 1.6. Операции над выпуклыми множествами………………….………….. 16 1.7. Выпуклые оболочки……………………………….………………….... 18 1.8. Опорные функции и множества………………………….……………. 22 1.9. Определение выпуклой функции. Примеры………….………………. 24 1.10. Действия с выпуклыми функциями………………….……………….. 27 1.11. Критерии выпуклости гладких функций…………….……………….. 29 1.12. Минимум выпуклой функции………………………..……………….. 33 1.13. Проекция точки на множество……………………………..…………. 35 1.14. Отделимость точки и множества………………..……………………. 36 1.15. Отделимость выпуклых множеств………………………………….….. 38 1.16. Некоторые следствия из теорем об отделимости выпуклых множеств. ……………………………………………………………………. 41 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ…………………………………………………..46 2.1. Общая задача линейного программирования………………………… 46 2.2. Каноническая и стандартная форма задачи линейного программирования…………………………………………………………... 48 2.3. Примеры прикладных задач линейного программирования………….51 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ…………………………………………………. 56 3.1. Графический метод……………………………………………………... 56 3.2. Угловые точки допустимого множества канонической задачи……… 61 3 3.3 Обоснование симплекс-метода…………………………………………. 67 3.4. Алгоритм симплекс метода…………………………………………….. 72 3.5. Существование решения задачи линейного программирования…….. 76 3.6. Алгоритм решения канонической задачи линейного программирования ………………………………………………………….. 79 3.7. Решение задачи линейного программирования на ЭВМ……………. 88 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ………………………………………………… 92 4.1. Двойственная задача к общей задаче линейного программирования.. 92 4.2. Функция Лагранжа для задачи линейного программирования….…... 98 4.3. Теоремы двойственности и равновесия ….…………………………. 105 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР……………………………………………………………… 112 5.1. Общее описание антагонистической игры………………………….. 112 5.2. Седловая точка игры. Цена игры…………………………………….. 115 5.3. Матричные игры…………………………………………….………… 117 ЛИТЕРАТУРА………………………………………............................ 127 4 ПРЕДИСЛОВИЕ Предлагаемое учебное пособие написано на основе спецкурса «Линейные задачи оптимизации», который автор читает для студентов и магистрантов специальности «механика» механико-математического факультета Пермского государственного университета. Возникновение этого спецкурса обусловлено тем, что именно линейные задачи оптимизации представляют собой наиболее исследованную область теории экстремальных задач. Методы решения линейных задач оптимизации детально разработаны и легко воспринимаются студенческой аудиторией. Существует развитое программное обеспечение, поддерживающее реализацию этих методов на ЭВМ. Последнее обстоятельство позволяет в рамках практических занятий рассматривать содержательные задачи на экстремум, имеющие и прикладное значение. Пособие представляет конспект лекций той части курса, которая посвящена линейному программированию. Систематическое исследование задач линейного программирования было впервые начато в работах российского ученого Л.В. Канторовича в 1939 г., а основной метод их решения – симплекс-метод, был разработан американским ученым Дж. Данцигом в 1949 г. Пособие состоит из пяти разделов. В первом разделе излагается математический аппарат выпуклого анализа, который является основным инструментом исследования задач линейного программирования. Материал этого раздела используется также и при чтении других частей курса. Во втором разделе дается общая постановка задачи линейного программирования и приводятся ее основные частные случаи (каноническая и стандартная задачи). Рассматриваются некоторые типы прикладных задач, математическими моделями для которых программирования. 5 служат задачи линейного В третьем разделе приводится обоснование симплекс-метода и алгоритм его реализации. Заключительный пункт раздела посвящен решению задачи линейного программирования на ЭВМ в системе Mathematica 4.2. В четвертом разделе развивается теория двойственности в линейном программировании. В частности, на основании теоремы Куна – Таккера здесь доказываются теоремы двойственности и равновесия. Пятый раздел посвящен применению линейного программирования в матричных играх. Здесь формулируются основные понятия теории антагонистической игры двух лиц. Ее частным случаем является игра, в которой каждый из игроков обладает конечным множеством стратегий. Такая игра представляется в форме матричной игры. Определение оптимальных «смешанных» стратегий игроков в ней сводится к решению задачи линейного программирования специального вида. По тематике книги существует обширная библиография. Приведенный в конце книги библиографический список содержит лишь те источники, которые непосредственно использовались при написании этого учебного пособия. Пособие разбито на разделы, внутри которых принята самостоятельная нумерация задач, лемм, рисунков, примеров и теорем. В свою очередь, раздел разбит на пункты, в которых ведется независимая нумерация формул. Ссылки на материалы (за исключением формул), расположенные в пределах данного раздела, нумеруются одним числом, вне данного раздела – двумя числами. Ссылки на формулы нумеруются одним числом только в пределах данного пункта. Вне данного пункта, но в пределах данного раздела, они нумеруются двумя числами, вне данного раздела – тремя числами 6 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА 1.1. Пространство R n . Рассмотрим n - мерное евклидовое векторное пространство R n æ u1 ö ç ÷ с элементами u = ç L ÷ . В частности, R1 - числовая ось, R 2 ç n÷ èu ø двумерная плоскость и т.д. Элементы R n будем обозначать строчными буквами, а подмножества R n заглавными. При этом будем различать одноточечное множество и точку этого множества как элемент пространства R n . В первом случае принимается запись {u} Ì R n , а во втором - u Î R n . В пространстве R n определены обычные операции: сложения векторов, умножения вектора на число и скалярное произведение векторов æ u1 ö æ v1 ö æ u1 + v1 ö æ u1 ö æ a u1 ö ç ÷ ç ÷ ç ÷ ç ÷ ç ÷ ç L ÷ + ç L ÷ = ç L ÷, a ç L ÷ = ç L ÷, ç n÷ ç n÷ ç n ç n÷ ç n÷ n÷ èu ø èv ø èu + v ø è u ø èa u ø æ u1 ö æ v1 ö ç ÷ ç ÷ n u , v = ç L ÷ × ç L ÷ = å u i v i , u , v Î R n , a Î R1 ç n ÷ ç n ÷ i =1 èu ø èv ø Пространство R n является нормированным с нормой u = определяет расстояние r (u , v ) = u - v между любыми u , u . Норма двумя точками пространства. 1.2. Точки и подмножества пространства R n Определение 1. Открытой окрестностью точки u 0 Î R n радиуса R называется множество { } O(u 0 , R ) = u Î R n u - u 0 < R , u 0 Î R n , R > 0 . Множество O(u 0 , R ) еще называют открытым шаром с центром в точке u 0 и радиусом R . По отношению к произвольному множеству U Ì R n можно определить точки следующих четырех типов: внутренние, изолированные. 7 внешние, граничные и 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Определение 2. Точка u называется внутренней точкой множества U , если O(u0 , e ) Ì U для некоторого числа e > 0 . Определение 3. Совокупность всех внутренних точек множества U называется внутренностью множества U и обозначается символом int U . Заметим, что не любое множество имеет непустую внутренность. Например, плоский диск в трехмерном пространстве не имеет внутренних точек. Определение 4. Множество, состоящее только из внутренних точек, называется открытым множеством. Очевидно, что если внутренность множества не пуста, то она открыта. Определение 5. Точка v Î R n называется внешней по отношению к множеству U Ì R n , если v Ï U и для некоторого числа e > 0 выполнено O(v, e ) I U = Æ . Из определения внешней точки множества следует, что она не принадлежит самому множеству. Определение 6. Точка v Î R n называется граничной точкой множества U Ì R n , если любая ее окрестность содержит как точки из множества U , так и из его дополнения – множества U c . Граничная точка может принадлежать, а может и не принадлежать самому множеству. Определение 7. Совокупность всех граничных точек множества U Ì R n называется границей множества U и обозначается символом ¶U . Определение 8. Точка v Î R n называется изолированной для множества U , если v Î U и существует такая окрестность O(v, e ) , что U I O (v, e ) = {v} . Пусть U Ì R n . 8 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Определение 9. Точка u называется предельной точкой множества U , если в любой открытой окрестности этой точки содержится хотя бы одна точка множества U . Из приведенного определения следует, что для любой предельной точки множества U найдется последовательность точек uk ÎU , k = 1,2,L , сходящаяся к u. Определение 10. Множество U Ì R n называется замкнутым, если оно содержит все свои предельные точки. Пересечение любого числа замкнутых множеств замкнуто. Это свойство позволяет ввести следующее определение. Определение 11. Замыканием U множества U называется наименьшее замкнутое множество, содержащее U . Пример 1. Множество O(0,1) не является замкнутым, так как, æ1ö ç ÷ 0 например, точка çç ÷÷ Ï O (0,1) , хотя она является предельной для множества L ç ÷ ç0÷ è ø O(0,1) . { } O (u 0 , R ) = u Î R n u - u 0 £ R , u 0 Î R n , R > 0 Множество называется замкнутой окрестностью точки u0 радиуса R . Оно замкнуто и является замыканием множества O(u 0 , R ) . Кроме того, справедливо [ { ] int O (u0 , R ) = O(u0 , R ) , ¶ éëO (u0 , R)ùû = S (u0 , R) = s Î R n s = R} . Определение 12. Множество U Ì R n называется ограниченным, если оно содержится в замкнутом шаре некоторого конечного радиуса. Определение 13. Множество U Ì R n называется компактным, если оно замкнуто и ограничено. 9 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Напомним, что из последовательности элементов компактного множества всегда можно извлечь подпоследовательность, сходящуюся к некоторому элементу этого множества. Пример 2. Множество O (u0 , R ) компактно. Множество O(u 0 , R ) не является компактным, т.к. оно незамкнутое. Прямая на плоскости не является компактным множеством, т.к. это неограниченное множество. Пусть U Ì R n компактное множество. Определение 14. Величина U = max u uÎU называется модулем множества U . В силу непрерывности функции нормы и компактности множества U операция max в принятом определении корректна. Геометрический смысл модуля множества таков: это есть радиус наименьшего шара с центром в начале координат, содержащего это множество. Таким образом, U Ì O (0, U ) . 1.3. Алгебраические линейные комбинации подмножеств R n . Пусть A1 , L, Am Ì R n и l1 ,L , lm Î R 1 . Определение 15. Множество m m ì ü A = å li Ai = ía = å li a i a i Î Ai , i = 1, L, mý i =1 i =1 î þ будем называть алгебраической линейной комбинацией множеств A1 ,L , Am с коэффициентами l1 ,L, lm . В частности, если A Ì R n , B = {b} Ì R n , то множество A + B = {u = a + b a Î A} называется сдвигом множества A на вектор b . 10 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Теорема 1. Пусть множества A1 , L, Am Ì R n компактны. Тогда их любая m алгебраическая комбинация A = å li Ai является компактным множеством. i =1 Доказательство. Докажем Действительно, имеют компактности множеств ограниченность место включения A1 ,L, Am Ì R n множества A. Ai Ì O (0, Ai ), i = 1,L , m . следует их Из ограниченность и конечность величин Ai , i = 1,L, m . Тогда для всех a Î A справедливо неравенство a = m ål a i i i =1 m m æ m ö £ å li ai £å li × Ai Þ A Ì O ç 0, å li × Ai ÷ , i =1 i =1 ø è i =1 что и означает ограниченность множества A . Докажем замкнутость множества A . Пусть последовательность {x j }, x j Î A, j = 1,2,L сходится к x . Надо доказать, что x Î A . Справедливо представление m x j = å li a ij , a ij Î Ai , j = 1,2,L , i = 1,L , m . i =1 В силу {a } ® a ij i0 компактности множеств Ai можно считать, что Î Ai , i = 1,L, m . Тогда m æ m ö m x = lim ç å li a ij ÷ = å li lim (aij ) = å li ai 0 Î A . j ®¥ i =1 è i =1 ø i =1 j ®¥ Теорема доказана. Теорема 2. Имеет место равенство O (u1 , R1 ) + O (u 2 , R2 ) = O (u1 + u 2 , R1 + R2 ) . Доказательство. Пусть u Î O (u1 , R1 ) + O (u 2 , R2 ) . Тогда u = u (1) + u (2 ) , u (1) Î O (u1 , R1 ), , u (2 ) Î O (u 2 , R2 ) Þ u1 - u (1) £ R1 , u 2 - u ( 2 ) £ R2 Þ ( ) ( ) u - ( u1 + u2 ) = u (1) + u ( 2 ) - ( u1 + u2 ) = u (1) - u1 + u ( 2 ) - u2 £ u (1) - u1 + u ( 2 ) - u2 £ 11 (1) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА £ R1 + R2 Þ u Î O ( u1 + u2 , R1 + R2 ) Þ O ( u1 , R1 ) + O ( u2 , R2 ) Ì O ( u1 + u2 , R1 + R2 ) . Докажем обратное вложение. Пусть u Î O (u1 + u 2 , R1 + R2 ) . Тогда 0 £ l = u - (u1 + u2 ) £ R1 + R2 . В случае, если l = 0 , то u = u1 + u 2 Î O (u1 , R1 ) + O (u 2 , R2 ) . Пусть теперь l > 0 . Тогда возможно представление l = l 1 + l 2 , 0 < l i £ Ri , i = 1,2 . Обозначим u (1) = u1 + l1 (u - u1 - u2 ), u ( 2 ) = u2 + l2 (u - u1 - u2 ) . l l Справедливо равенство l l é ù é ù u = êu1 + 1 (u - u1 - u 2 )ú + êu2 + 2 (u - u1 - u2 )ú = u (1) + u ( 2 ) . l l ë û ë û Заметим, что u (i ) = u i + li l l (u - u1 - u 2 ) Þ u (i ) - u i = i u - u1 - u 2 = i l = l i £ Ri , i = 1,2 . l l l Таким образом, u Î O(u1 , R1 ) + O(u 2 , R2 ) Þ O(u1 + u 2 , R1 + R2 ) Ì O (u1 , R1 ) + O(u 2 , R2 ) , и равенство (1) доказано. Теорема 3. Имеет место равенство k × O (0, R ) = O (0, k R ) . Доказательство. При k = 0 справедливость доказываемого равенства очевидна. Пусть k ¹ 0 и u Î k × O (0, R ) . Тогда u = ku (0 ) , u (0 ) Î O (0, R ) Þ u = ku (0 ) = k u (0 ) £ k R Þ u Î O (0, k R ) . Обратно, если u Î O (0, k R ) , полагаем v= kR 1 1 uÞ v £ u £ = R Þ v Î O (0, R ) Þ u = kv Þ u Î k × O (0, R ) . k k k Теорема доказана. Из теорем 2,3 следует, что любой шар O (u 0 , R ) можно представить в виде O (u0 , R) = {u0 } + R × O (0,1) . 12 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Непосредственно проверяется, что для любых чисел a , b и любых множеств U , V Ì R n выполняются следующие свойства: 1) a (b U ) = (ab )U ; 2) 1 × U = U ; 3) a (U + V ) = aU + a V . Эти свойства являются следствием соответствующих свойств векторов из пространства R n . Пространство подмножеств R n нельзя считать линейным пространством, хотя бы потому, что не всегда выполняется равенство (a + b ) × U = aU + bU . (2) Пример 3. Пусть U = O (0,1), a = 1, b = -1 . Тогда, с одной стороны, a U = 1 × O (0,1) = O (0,1), b U = (- 1) × O (0,1) = O (0,1) Þ a U + b U = O (0,2 ) , а с другой - (a + b )U = (1 - 1)O (0,1) = {0} ¹ O (0,2) . Вместо равенства (2) в общем случае справедливо лишь одностороннее вложение (a + b ) × U Ì aU + bU . Действительно, пусть u Î (a + b ) × U . Тогда существует u (0 ) Î U такой, что u = (a + b ) u( ) . Отсюда следует 0 u = (a + b )u (0 ) = a u (0 ) + b u (0 ) Î a U + b U . Определение 16. Множество U e = {v Î R n v - u < e , u Î U } называется e - окрестностью множества U . Очевидно, что U e = U + O(0, e ) . 1.4. Расстояние Хаусдорфа. Введем понятие расстояния на множестве компактных подмножеств пространства R n . Определение 17. Пусть U , V Ì R n - компактные множества. Величина h (U ,V ) = min {R ³ 0 U Ì V + O (0, R ) , V Ì U + O (0, R )} называется расстоянием Хаусдорфа между множествами U и V . 13 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Покажем, что введенное понятие действительно является расстоянием, т.е. что для любых множеств U , V ,W Ì R n справедливо 1) h (U ,V ) ³ 0 ; 2) h (U ,V ) = 0 Û U = V ; 3) h (U ,V ) = r (V ,U ) ; 4) h (U ,W ) £ h (U ,V ) + h (V ,W ) . Подробного доказательства требует лишь пункт 4). Приведем его. Пусть a = h (U ,V ) , b = h (V ,W ) . Тогда U Ì V + O (0,a ), V Ì W + O (0, b ) Þ U Ì W + O (0, b ) + O (0, a ) = W + O (0,a + b ) Þ U Ì W + O (0, a + b ) , (1) W Ì V + O (0, b ), V Ì U + O (0,a ) Þ W Ì U + O (0, b ) + O (0,a ) = U + O (0,a + b ) Þ W Ì U + O (0, a + b ) . (2) Из вложений (1) и(2) следует доказываемое свойство. Пример 4. Для любого компактного множества U Ì R n имеют место равенства (без доказательства) h ({0} , O (0,1)) = 1, h ({0},U ) = U . 1.5. Определение выпуклого множества. Примеры. Геометрический u2 u2 смысл выпуклости множества состоит в том, что выпуклое множество u1 u1 вместе с любыми двумя точками содержит Рис. 1 и отрезок, их соединяющий Например, левое множество на рис. 1 выпукло, а правое нет. Дадим формальное определение выпуклого множества. Определение 18. Множество U Ì R n называется выпуклым, если для всех u1 , u 2 Î U , a Î [0,1] справедливо включение au1 + (1 - a )u 2 ÎU . Пустое одноточечное множества принимаются выпуклыми по определению. 14 и 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Приведем примеры выпуклых множеств. Пример 5. Замкнутая (открытая) окрестность точки u0 Î R n радиуса R множество { } O (u 0 , R ) = u Î R n u - u 0 £ R , u 0 Î R n , R ³ 0 (O(u , R ) = {u Î R n 0 } ) u - u0 < R , u0 Î R n , R ³ 0 , является выпуклым множеством. Действительно, для всех a Î [0,1] и u1 , u 2 Î O (u 0 , R ) ( u1 , u 2 Î O (u 0 , R ) ) справедливо au1 + (1 - a )u 2 - u 0 = a (u1 - u 0 ) + (1 - a )(u 2 - u 0 ) £ a u1 - u 0 + (1 - a ) u 2 - u 0 £ £ aR + (1 - a )R = R Þ au1 + (1 - a )u 2 Î O (u 0 , R ) , ( au1 + (1- a )u2 - u0 = a (u1 - u0 ) + (1- a)(u2 - u0 ) £ a u1 - u0 + (1- a) u2 - u0 < < aR + (1 - a ) R = R Þ au1 + (1 - a)u2 Î O (u0 , R) ). Пример 6. Множество точек { } G (c, g ) = u Î R n c, u = g , c Î R n , c ¹ 0, g Î R1 , называемое гиперплоскостью в R n , выпукло. Действительно, для всех a Î [0,1] и u1 , u 2 Î G (c, g ) справедливо c, au1 + (1 - a )u 2 = a c, u1 + (1 - a ) c, u 2 = ag + (1 - a )g = g Þ au1 + (1 - a )u 2 Î G(c, g ) . Гиперплоскости G (c, g ) поставим в соответствие множества { } { } G + (c, g ) = u Î R n c, u ³ g , G - (c, g ) = u Î R n c, u £ g , которые называются замкнутыми полупространствами, и множества { } { } G + (c, g ) = u Î R n c, u > g , G - (c, g ) = u Î R n c, u < g , которые называются открытыми полупространствами. 15 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Пример 7. Множества G + (c, g ), G - (c, g ), G + (c, g ), G - (c, g ) выпуклы. Доказательство этого утверждения проводится аналогично доказательству выпуклости множества G (c, g ) в предыдущем примере. Векторам v, d Î R n , d ¹ 0 поставим в соответствие множества M 1 = { v + td t Î (- ¥,+¥ )}, M 1+ = {v + td t Î [0,+¥ )}, которые будем называть, соответственно, прямой и лучом, проходящими через точку v в направлении вектора d . Пример 8. Множества M 1 , M 1+ выпуклы. Действительно, для всех a Î [0,1] и u1 = v + t1 d , u 2 = v + t 2 d , t1 , t 2 Î R 1 ( t1 , t 2 ³ 0 ) справедливо wa = au1 + (1 - a )u 2 = av + (1 - a )v + [at1 + (1 - a )t 2 ] d = v + ta d В wa Î M 1 ta Î R 1 (ta ³ 0 ) силу (w a отсюда следует требуемое включение Î M 1+ ). 1.6. Операции над выпуклыми множествами. К числу операций над выпуклыми множествами, сохраняющих их выпуклость, относятся операции пересечения, взятия линейной алгебраической комбинации и линейного преобразования. Теорема 4. Пересечение любого числа выпуклых множеств является выпуклым множеством. Доказательство. Пусть множества U b Ì R n , b Î B , где B – множество индексов произвольной мощности, выпуклы в R n . Покажем, что множество U= IU b b ÎB выпукло. Для любых u1 , u2 Î U справедливы включения u1 , u2 ÎU b , "b Î B . В силу выпуклости каждого множества U b имеет место включение ua = au1 + (1 - a )u2 Î U b , "b Î B , " a Î [0,1] . 16 (1) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Из условия (1) следует, что ua Î U и множество U выпукло. Теорема доказана. Заметим, что объединение выпуклых множеств не обязательно выпукло. Теорема 5. Любая линейная комбинация конечного числа выпуклых множеств выпукла. m Доказательство. Пусть A1 ,L, Am Ì R n - выпуклые множества и A = å li Ai . i =1 Для всех u, v Î A справедливо представление m m i =1 i =1 u = å li a i(u ) , v = å li a i(v ) , ai(u ) , ai(v ) Î Ai , i = 1,L , m . Тогда при всех a Î [0,1] имеем au + (1 - a )v = a å li a i(u ) + (1 - a )å li a i(v ) = å li [aa i(u ) + (1 - a )a i(v ) ]. m m m i =1 i =1 i =1 Из выпуклости множества Ai следует aa i(u ) + (1 - a )a i(v ) Î Ai , i = 1, L, m , что и означает au + (1 - a )v Î A . Теорема доказана. Теорема 6. Пусть U Ì R n - выпуклое множество и a ³ 0, b ³ 0 . Тогда (a + b ) × U = aU + bU . (2) Доказательство. Вложение (a + b ) × U Ì aU + bU было доказано в ранее в общем случае без предположения о выпуклости множества U и положительности чисел a и b . В условиях теоремы докажем обратное вложение. Будем предполагать, что a + b > 0 . В противном случае a = b = 0 и формула (2) очевидна. Пусть u Î a U + b U . Тогда в силу a + b > 0 имеем æ a ö æ a ö b b u = a u1 + b u 2 = (a + b )çç u1 + u 2 ÷÷, u1 , u 2 Î U Þ çç u1 + u 2 ÷÷ Î U . a+b ø a+b ø èa + b èa + b Таким образом, u Î (a + b )U , и теорема доказана. Пусть U Ì R n и A - квадратная матрица n - го порядка. 17 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Определение 19. Образом множества U при линейном преобразовании A называется множество A(U ) = {v = Au u Î U } . Теорема 7. При линейном преобразовании образ компактного выпуклого непустого множества является непустым компактным выпуклым множеством. Доказательство. Пусть v1 , v 2 Î A(U ) Þ vi = Aui , i = 1,2 . Для всех a Î [0,1] выполнено a v1 + (1 - a ) v2 = a Au1 + (1 - a )Au 2 = A(a u1 + (1 - a )u 2 ) . В силу выпуклости множества U имеет место включение a u1 + (1 - a )u 2 Î U . Тогда a v1 + (1 - a ) v2 Î A(U ) и выпуклость множества A(U ) доказана. Компактность множества A (U ) является следствием непрерывности линейного преобразования. Пример 9. Пусть ìïæ u1 ö 1 2 üï æ a 0ö 2 2 ç ÷ ç ÷ n = 2, A = ç U O u u , 0 , 1 1 = = + £ ( ) ( ) ( ) í ý. ÷ ç 2÷ ïîè u ø ïþ è 0 bø Тогда üï ìïæ v1 ö æ a 0 ö æ u1 ö 1 2 üï ìïæ v1 ö æ au1 ö 2 2 2 ÷÷ çç 2 ÷÷ (u ) + (u 2 ) £ 1ý = íçç 2 ÷÷ = çç 2 ÷÷ (u1 ) + (u 2 ) £ 1ý = A(O (0,1)) = íçç 2 ÷÷ = çç ïþ ïîè v ø è 0 b ø è u ø ïþ ïîè v ø è bu ø 2 2 1 ìïæ v1 ö üï æ v2 ö 2 æv ö = íçç 2 ÷÷ Î R çç ÷÷ + çç ÷÷ £ 1ý . ïîè v ø ïþ èaø èbø 1.7. Выпуклые оболочки. В этом пункте сформулируем и докажем одно свойство выпуклых множеств, которое иногда непосредственно берется за определение выпуклого множества. Определение 20. Пусть u1 ,L, u m Î R n и числа a1 ³ 0,L , a m ³ 0 таковы, что m m i =1 i =1 åa i = 1 . Точка u = åai ui называется выпуклой комбинацией точек u1 , L, u m Î R n . 18 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Теорема 8. Множество U Ì R n выпукло тогда и только тогда, когда оно содержит все выпуклые комбинации любого конечного числа своих точек. Необходимость. Пусть множество U выпукло. Проведем индукцию по числу m . При m = 2 справедливость утверждения теоремы вытекает сразу из определения выпуклого множества. Предположим, что утверждение теоремы верно для любого k £ m - 1, m > 2 . Рассмотрим произвольную выпуклую комбинацию каких-либо m точек этого множества m u = å a i u i , u1 ,L , u m ÎU , a 1 ³ 0, L , a m ³ 0, i =1 m åa i = 1. i =1 Для определенности примем, что a m < 1 . Тогда m -1 m -1 ai å1-a i =1 = m åa i åa i =1, i =1 m -1 i =1 æ ai i =1 è 1 - a m m -1 и точка v = å çç ö ÷÷ u i является выпуклой комбинацией точек u1 ,L , u m -1 ÎU . В ø силу предположения индукции v ÎU . Нетрудно видеть, что справедливо равенство u = (1 - a m )v + a m u m . Отсюда и из выпуклости множества U следует u ÎU . Необходимость доказана. Достаточность. Если множество U Ì R n содержит все выпуклые комбинации любого конечного числа своих точек, то оно содержит, в частности, и любые выпуклые комбинации любых своих двух точек, следовательно, оно выпукло. Достаточность доказана. Приведем одно простое свойство выпуклых комбинаций конечного числа точек из R n . Теорема 9. Пусть u1 , L , u m Î R n – фиксированные точки и v1 , L , v s – их произвольные выпуклые комбинации. Тогда любая выпуклая комбинация точек v1 , L , v s является выпуклой комбинацией точек u1 , L , u m . 19 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Доказательство. Действительно, для любой из точек v1 , L , v s справедливо представление m m i =1 i =1 v j = åa ji u i , åa ji = 1, a ji ³ 0, j = 1, L s, i = 1,L, m . s Тогда для любых чисел b 1 ³ 0, L, b s ³ 0, å b j = 1 имеет место равенство j -1 А E s s m m ö æ s w = å b j v j = å b j åa ji ui =å çç å b ja ji ÷÷ ui . j =1 j =1 i =1 i =1 è j =1 ø B æ å ççççèå b a m i =1 М s j j =1 ji s m s ö÷ ÷÷ = å b j å (a ji ) = å b j = 1, , ÷ø j =1 i=1 j=1 Очевидно, что åb a s D F Рис. 2 C j =1 j ji ³ 0, i = 1,L, m и точка w будет выпуклой комбинацией точек u1 ,L , u m . Теорема доказана. Из доказанной теоремы легко выводится, например, что любая точка n мерного куба является выпуклой комбинацией своих вершин. Действительно, покажем это на примере двухмерного куба (квадрата). На рис. 2 видно, что точка M является выпуклой комбинацией точек E и F . Те, в свою очередь, являются выпуклыми комбинациями вершин A, B и C, D , соответственно. Таким образом, точка M является выпуклой комбинацией вершин куба. В тех случаях, когда рассматриваемое множество не выпукло, бывает полезно расширить его до выпуклого множества. Определение 21. Пересечение всех выпуклых множеств, содержащих множество U Ì R n , называется выпуклой оболочкой множества и обозначается символом co U . Множество co U выпукло как пересечение выпуклых множеств, и оно содержится в любом выпуклом множестве, содержащим U . Таким образом, 20 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА выпуклую оболочку множества U можно трактовать как минимальное выпуклое множество, содержащее U . Теорема 10. Выпуклая оболочка множества U Ì R n состоит из тех и только тех точек, которые являются выпуклыми комбинациями конечного числа точек из множества U . Доказательство. Пусть множество W является совокупностью всех выпуклых комбинаций конечного числа точек из U . Покажем, что co U = W . Вложение W Ì co U очевидно, так как в силу выпуклости множества co U оно будет содержать все выпуклые комбинации конечного числа своих точек, в частности, и точек из множества U Ì co U . Для доказательства обратного вложения co U Ì W достаточно установить выпуклость множества W . Последнее сразу следует из теоремы 6, в силу которой любая выпуклая комбинация конечного числа точек из множества W будет выпуклой комбинацией конечного числа точек из множества U . Теорема доказана. Теорема 11 (Каратеодори). Пусть U Ì R n – произвольное непустое множество. Тогда любая точка u Î co U представима в виде выпуклой комбинации не более чем n + 1 точки из U . Доказательство. По теореме 7 любая точка u Î co U представима в виде m m i =1 i =1 u = åa i u i , a i ³ 0, u i Î U , i = 1,L , m, åa i = 1 . (1) Покажем, что число ненулевых слагаемых в этом выражении можно уменьшить, если m > n + 1 . В пространстве R n +1 рассмотрим m векторов вида æu ö u i = çç i ÷÷ , i = 1,L , m . Так как число таких векторов m > n + 1 , то они линейно è1ø зависимы. Тогда существуют такие числа g 1 ,L, g m , не все равные нулю, что будет выполняться m åg i =1 i m æ ui ö çç ÷÷ = 0 Þ å g i u i = 0, i =1 è1ø 21 m åg i =1 i =0. (2) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА В силу(1), (2) для всех t Î R 1 справедливы равенства m å (a i i =1 m m i =1 i =1 - tg i ) u i = å a i u i - t å g i u i = u, m å (a i i =1 m m i =1 i =1 - tg i ) = å a i - t å g i = 1 . Поскольку не все числа g 1 ,L, g m равны нулю, а их сумма равна нулю, постольку Полагаем I = {i Î {1,L , m} g i > 0}. среди них найдутся строго положительные. Определим номер s и число t * из условия t* = Для всех номеров æa as = min çç i iÎI gs ègi i = 1, L, m ö ÷÷ . ø справедливо неравенство a i - t *g i ³ 0 . Действительно, для номеров i Ï I это очевидно, а для номеров i Î I вычисляем a i - t *g i = a i - Таким образом, точку as a g i ³ a i - i g i = 0, a s - t *g s = 0 . gs gi u удалось представить в виде выпуклой .комбинации меньшего, чем m числа точек из множества U . Теорема доказана. 1.8. Опорные функции и множества. Пусть U Ì R n - компактное множество. Определение 22. Функция c : R n ® R1 , определенная равенством c (U , v ) = max u, v , v Î R n , uÎU (1) называется опорной функцией множества U . В силу теоремы Вейерштрасса максимум в (1) действительно достигается при любом v Î R n . Пусть для некоторого вектора c Î R n , c ¹ 0 справедливо u0 , c = max u, c = c (U , c) . (2) uÎU Определение 23. Вектор c называется опорным вектором к множеству U в точке u0 Î U . Множество { V (c,U ) = u0 Î U u0 , c = max u, c uÎU } называется опорным множеством к множеству U в направлении вектора c . 22 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Определение 24. Гиперплоскость G (c) = {v Î R n v, c = u0 , c G ( c) U c u0 c называется } опорной гиперплоскостью 0 V ( c ,U ) -c (U , c) E+ E = P (v ) - Рис. 3 к множеству U в направлении вектора c . Дадим геометрическую интерпретацию введенным выше понятиям (см. рис. 3). Гиперплоскость G (c) разбивает все пространство R n на два полупространства E + и E - . Множество U Ì E - , т.к. для всех u Î U выполняется неравенство u, c £ u0 , c . Полупространство E - будем называть опорным к множеству U в направлении вектора c и обозначать символом P (c) . Таким образом, P (c) = {u Î R n c, u £ u0 , c } . В случае, когда c = 1 , величина u0 , c = c (U , c ) является расстоянием от начала координат 0 до гиперплоскости G ( c) , взятым со знаком «+», если 0 Î E и со знаком «-», если 0 Î E + . Пример 10. Пусть множество U = {u} является одноточечным. Тогда c (U , v ) = u, v , v Î R n . Пример 11. Пусть множество U = O (0, 1) является единичным шаром с центром в нуле. Тогда 0, v = 0, ïìï ïï c (O (0, 1) , v ) = í v Þ c (O (0, 1), v) = v . ïï , v = v , v¹0 ïïî v 23 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА æ u1 ö÷ ïìï çç ÷ ïï Пример 12. Пусть множество U = íu = çççL÷÷÷÷ ïï ç n ÷÷ çèu ÷ø ï îï ïüï ï u1 £ 1,L, u n £ 1ïý является ïï ï þï квадратом с центром в нуле и со стороной 1. Тогда c (U , v ) = max u, v = å max (ui v i ) = i n uÎU i=1 u £1 åv n i =1 i , v Î Rn 1.9. Определение выпуклой функции. Примеры. Определение 25. Функция I : U ® R 1 , где U Ì R n - выпуклое множество, называется выпуклой на этом множестве, если I (au + (1 - a) v ) £ a I (u ) + (1 - a) I ( v) , "u, v Î U , a Î [ 0,1] . (1) В случае, когда u ¹ v в (1) равенство возможно только для a = 0 и a = 1 , функцию I называют строго выпуклой. По определению полагается, что если I (u ) множество U функция I случае, одноточечное или пустое, то выпукла на этом множестве. В когда не оговорено противное, рассматриваемые функции всюду принимают конечные значения. Геометрический u Рис. 4 смысл данного определения состоит в том, что секущая, соединяющая любые две точки графика выпуклой функции, располагается не ниже графика этой функции (см. рис. 4). Определение 26. Функцию I называют вогнутой (строго вогнутой) на выпуклом множестве U , если функция - I выпукла (строго выпукла) на множестве U . Пример 13. Функция I : R n ® R 1 , определенная формулой I (u) = u , выпукла. Действительно, при всех u, v Î R n , a Î [0,1] имеем 24 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА I (au + (1 - a ) v ) = au + (1 - a )v £ a u + (1 - a ) v = aI (u ) + (1 - a ) I (v) . Пример 14. Функция I : R n ® R 1 , определенная формулой I (u ) = c, u , c Î R n , выпукла. Действительно, при всех u, v Î R n , a Î [0,1] имеем I (au + (1 - a ) v ) = c, au + (1 - a ) v = a c, u + (1 - a ) c, v = aI (u ) + (1 - a ) I (v ) . Аналогично проверяется выпуклость функции - I . Таким образом, в данном примере функция I выпукла и вогнута одновременно. Пример 15. Функция I : R n ® R 1 , определенная формулой I (u) = u, u , строго выпукла. Действительно, при всех u, v Î R n , u ¹ v справедливо неравенство 2 u , v < u, u + v , v . Отсюда для любого a Î [0,1] выводим I (au + (1 - a )v ) = a 2 u, u + 2a (1 - a ) u, v + (1 - a ) v, v < a 2 u, u + a (1 - a )[ u, u + v, v ] + 2 + (1 - a ) v, v = a 2 u , u + a u , u - a 2 u , u + a v, v - a 2 v, v + v, v - 2a v, v + a 2 v, v 2 = a u, u + a v , v + v , v - 2a v , v = = a u, u + (1 - a) v, v = a I (u ) + (1 - a) I ( v ) , "u, v Î R n , u ¹ v что и означает строгую выпуклость функции I . Теорема 12. Пусть функция I : U ® R 1 , где U Ì R n - выпуклое множество, выпукла. Тогда для любых u i Î U ,a i ³ 0, i = 1,L, m, m åa i i =1 = 1, m = 1,2,L имеет место неравенство (Иенсена) æ m ö m I ç å a i u i ÷ £ å a i I (u i ) . è i =1 ø i =1 Доказательство. Проведем индукцию (2) по числу m. При m=2 справедливость неравенства (2) есть следствие определения выпуклости 25 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА функции. Допустим, что неравенство Иенсена имеет место для всех k £ m - 1, m > 2 . Примем для определенности, что a m ¹ 1 . Тогда æ ö ö æ ç ÷ ÷ ç m -1 m -1 ai çæ ÷ æ ö æ ö öç ÷ I ç å a i u i ÷ = I ç å a i u i + a m u m ÷ = I ç ç å a i ÷ ç å m -1 ui ÷ + a m u m ÷ . è i =1 ø è i =1 ø ç è i =1 ø ç i =1 æç åa i ö÷ ÷ ÷ ÷ ç ç ÷ 1 = i è ø ø è è ø m m -1 Обозначим bi = ai æ ö ç åa i ÷ è i =1 ø m -1 , i = 1,L , m - 1 . m -1 åb Легко видеть, что b i ³ 0, i = 1,L , m - 1 и m -1 åæ i =1 ai i =1 i = 1 . Тогда m -1 u i = å b i u i ÎU . m -1 ö i =1 ç åa i ÷ è i =1 ø По предположению индукции находим m ö æ m -1 ö æ m -1 ö æ m ö æ m -1 ö æ m -1 I ç å a i u i ÷ £ ç å a i ÷ × I ç å b i u i ÷ + a m I (u m ) £ ç å a i ÷ × ç å b i I (u i )÷ + a m I (u m ) = å a i I (u i ) . i =1 ø è i =1 ø è i =1 ø è i =1 ø è i =1 ø è i =1 Теорема доказана. Следующая теорема позволяет свести исследование выпуклости функции многих переменных к исследованию выпуклости функций одной переменной. Теорема 13. Функция I : U ® R 1 , где U Ì R n - выпуклое множество, выпукла тогда и только тогда, когда для любых v, w ÎU , функция j : [0,1] ® R 1 , определенная формулой j (e ) = I (ev + (1 - e ) w ), e Î [0,1] , выпукла. Доказательство. Необходимость. Пусть функция множестве U . Для любых e 1 , e 2 , a Î [0,1], v, w ÎU находим 26 I выпукла на 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА j (ae 1 + (1 - a ) e 2 ) = I ((ae 1 + (1 - a )e 2 ) v + (1 - ae 1 - (1 - a ) e 2 ) w) = = I (ae 1 v + e 2 v - ae 2 v + w - ae 1 w - e 2 w + a e 2 w) = = I (ae 1v + e 2 v - ae 2 v + w - ae 1 w - e 2 w + a e 2 w + aw - aw ) = = I (ae 1v + aw - ae 1 w + e 2 v(1 - a ) + e 2 w(a - 1) + (1 - a )w ) = = I (a (e 1v + w - e 1 w) + (1 - a )(e 2 v - e 2 w + w)) = I (a (e 1v + (1 - e 1 ) w) + (1 - a ) (e 2 v + (1 - e 2 ) w)) £ £ aI (e 1v + (1 - e 1 ) w ) + (1 - a ) I (e 2 v + (1 - e 2 ) w) = = aj (e 1 ) + (1 - a )j (e 2 ) . Необходимость доказана. Достаточность. Пусть для любой пары точек из множества U функция j выпукла. Тогда для всех u1 , u 2 ÎU , a Î [0,1] имеем I (au1 + (1 - a )u 2 ) = j (a ) = j (a × 1 + (1 - a ) × 0 ) £ aj (1) + (1 - a )j (0) = aI (u1 ) + (1 - a ) I (u 2 ) . Теорема доказана. 1.10. Действия с выпуклыми функциями. Рассмотрим некоторые операции над выпуклыми функциями, сохраняющие их выпуклость. Теорема 14. Пусть функции I i : U ® R 1 , где U Ì R n - выпуклое множество, выпуклы, и li ³ 0, i = 1, L , m . Тогда функция I : U ® R 1 , определенная формулой m I (u ) = å li I i (u ), u ÎU , i =1 выпукла. Доказательство. Для любых u, v ÎU , a Î [0,1] имеем m m æ m ö I (au + (1 - a ) v ) = å li I i (au + (1 - a ) v ) £ å li [a I i (u ) + (1 - a ) I i (v )] = a ç å li I i (u ) ÷ + i =1 i =1 è i =1 ø æ m ö + (1 - a ) ç å li I i (v ) ÷ = aI (u ) + (1 - a ) I (v ) . è i =1 ø Теорема доказана. 27 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Теорема 15. Пусть функции I i : U ® R 1 , i = 1,L , m , где U Ì R n - выпуклое множество, выпуклы. Тогда функция I : U ® R 1 , определенная формулой I (u ) = max {I i (u )}, u Î U , iÎ{1,L, m } выпукла. Доказательство. Для любых u, v ÎU , a Î [0,1] имеем I (au + (1 - a ) v ) = max {I i (au + (1 - a ) v )} £ max {a I i (u ) + (1 - a ) I i ( v )} £ a max {I i (u )} + iÎ{1,L, m } iÎ{1,L, m } iÎ{1,L, m } + (1 - a ) max {I i (v )} = a I (u ) + (1 - a ) I ( v ) . iÎ{1,L, m} Теорема доказана. Из доказанной теоремы, в частности, следует, что функция g + : U ® R 1 , определенная на выпуклом множестве U Ì R n равенством g + (u ) = max{g (u ), 0}, u ÎU , где g : U ® R 1 , выпукла на множестве U , если на этом же множестве выпукла функция g . Теорема 16. Пусть функция j : [a, b] ® R 1 выпуклая и неубывающая, а функция g : U ® [a, b] , где множество U Ì R n выпуклое, выпуклая на этом множестве. Тогда функция I : U ® R 1 , определенная равенством I (u ) = j (g (u ) ), u ÎU , выпукла на множестве U . Доказательство. Для любых u, v ÎU , a Î [0,1] имеем I (au + (1 - a ) v ) = j (g (au + (1 - a ) v )) £ j (a g (u ) + (1 - a ) g (v ) ) £ a j ( g (u )) + (1 - a ) j ( g ( v )) = = a I (u ) + (1 - a ) I (v ) . Теорема доказана. 28 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Следствие 1. Пусть функция g : U ® [a, b] выпукла и неотрицательна на выпуклом множестве U Ì Rn . Тогда функция I : U ® R 1 , определенная равенством I (u ) = g p (u ), u Î U , p ³ 1 выпукла на множестве U . Следствие 2. Пусть функция g : U ® [a, b] выпукла на выпуклом множестве U Ì R n . Тогда функция I : U ® R1 , определенная равенством ( ) I (u ) = (max{0, g (u )}) = g + (u ) , u Î U , p ³ 1 , p p выпукла на множестве U . Следствие 3. Пусть функция g : U ® R1 выпукла на выпуклом множестве U Ì R n , причем g (u ) < 0 при всех u Î U . Тогда функции I i : U ® R 1 , i = 1,2 , определенные равенствами I1 (u ) = - 1 p , I 2 (u ) = max{- ln (- g (u )), 0} , p ³ 1, u Î U , g (u ) выпуклы на множестве U . 1.11. Критерии выпуклости гладких функций. Проверка произвольной функции на выпуклость непосредственно по определению выпуклости обычно сопряжена со значительными трудностями. Для гладких функций существуют более конструктивные критерии выпуклости, упрощающие эту проверку. Теорема 17. (Первый критерий выпуклости дифференцируемой функции). Пусть U Ì R n - выпуклое множество, I Î C 1 (U ) , тогда для выпуклости функции I на множестве U необходимо и достаточно, чтобы I (u ) ³ I (v ) + I ' (v ), u - v , " u, v ÎU . Доказательство. Необходимость. Из выпуклости (1) функции I на множестве U для всех u, v ÎU и a Î [0,1] следует справедливость цепочки неравенств I (au + (1 - a )v ) £ aI (u ) + (1 - a ) I (v ) Þ I (v + a (u - v ) ) £ I (v ) + a (I (u ) - I (v ) ) Þ I (v + a (u - v)) - I (v) £ a (I (u ) - I (v)) . 29 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА В последнем неравенстве применим формулу конечного приращения для гладких функций. Имеем a I ' (v + qa (u - v ) ), u - v £ a ( I (u ) - I ( v )), q Î [0,1] . (2) Разделим неравенство (2) на a > 0 и устремим a к нулю. В результате получим (1). Необходимость доказана. Достаточность. Пусть u, v ÎU и a Î [0,1]] . Положим wa = au + (1 - a ) v ÎU . Из (1) находим I (u ) - I (wa ) ³ I ' (wa ), u - wa , I (v ) - I (wa ) ³ I ' (wa ), v - wa . Первое из этих неравенств умножим на a , второе на (1 - a ) и сложим их почленно. Имеем a I(u) +(1-a) I ( v)- I ( wa) ³ I '( wa) , a(u-wa) +(1-a) ( v-wa) = I '( wa) , au+(1-a) v-wa =0 . Таким образом, I (wa ) £ a I (u ) + (1 - a ) I (v ) , и теорема доказана. Теорема 18. (Второй критерий выпуклости дифференцируемой функции). Пусть U Ì R n - выпуклое множество, I Î C 1 (U ) , тогда для выпуклости функции I на множестве U необходимо и достаточно, чтобы I ' (u ) - I ' (v ), u - v ³ 0, " u , v ÎU . (3) Доказательство. Необходимость. В силу выпуклости функции I на множестве U по первому критерию выпуклости (теорема 17) следует, что для любой пары точек u, v ÎU справедливы неравенства I (u ) ³ I (v ) + I ' (v ), u - v , I (v ) ³ I (u ) + I ' (u ), v - u . Сложив эти неравенства, приходим к (3). Необходимость доказана. Достаточность. По формуле конечного приращения для гладких функций 1 I (u + Du ) - I (u ) = ò I ' (u + tDu ), Du dt 0 при всех u, v ÎU , a Î [0,1] имеем 30 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА a I (u ) + (1 - a ) I ( v ) - I (a u + (1 - a ) v ) = = a éë I (u )- I (a u + (1 - a ) v )ùû + (1 - a ) éë I (v)- I (a u + (1 - a ) v )ùû = 1 = a ò I ' (au + (1 - a )v + t (u - au - (1 - a )v )), u - au - (1 - a )v dt + 0 1 + (1 - a ) ò I ' (au + (1 - a ) v + t (v - au - (1 - a ) v )), v - au - (1 - a ) v dt = 0 1 = a ò I ' (a u + (1 - a ) v + t (1 - a )(u - v )), (1 - a )(u - v ) dt + 0 1 + (1 - a ) ò I ' (au + (1 - a ) v + ta (v - u )), a (v - u ) dt = 0 1 = a (1 - a ) ò I ' (au + (1 - a ) v + t (1 - a )(u - v )) - I ' (au + (1 - a ) v + ta (v - u )), u - v dt . (4) 0 Обозначим z1 = au + (1 - a ) v + t (1 - a )(u - v ), z 2 = au + (1 - a ) v + ta (v - u ) , b 11 = a + t (1 - a ), b 12 = 1 - a - t (1 - a ), b 21 = a - ta , b 22 = 1 - a + ta . Тогда z1 = b 11 u + b 12 v, z 2 = b 21u + b 22 v, b ij ³ 0, b i1 + b i 2 = 1, i, j = 1,2 . (5) Из (5) следует, что z1 , z 2 ÎU для всех t , a Î [0,1] . Кроме того, z1 - z 2 = t (1 - a )(u - v ) + ta (u - v ) = t (u - v) . (6) Перепишем (4) с учетом равенства (6). В результате получим 1 a I (u ) + (1 - a ) I (v ) - I (au + (1 - a )v ) = a (1 - a ) ò I ' (z1 ) - I ' (z 2 ), z1 - z 2 0 1 dt . t (7) В силу условия (3) правая часть равенства (7) не отрицательна, неотрицательна и его левая часть. Теорема доказана. 31 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Теорема 19. (Критерий выпуклости дважды дифференцируемой функции). Пусть U Ì R n выпуклое множество, I Î C 2 (U ) , тогда для выпуклости функции I на множестве U достаточно, чтобы I ' ' (u )x , x ³ 0, " u Î U , x Î R n , (8) если int U ¹ Æ , то это условие является необходимым. Доказательство. Необходимость. Пусть int U ¹ Æ . Возьмем u Î int U и x Î R n . Тогда найдется число e 0 > 0 , что u + ex Î U , если e £ e 0 . Из второго критерия выпуклости и формулы конечного приращения для гладких функций находим e I ' (u + ex ) - I ' (u ), x = e 2 I ' ' (u + qe x ) x , x ³ 0, q Î [0,1], e Î [0, e 0 ] . (9) Сокращая в неравенстве (9) на e 2 > 0 и устремляя e к нулю, получим (8). В случае, когда u ÎU \ int U , то так как выпуклое множество не может содержать изолированные точки, найдется последовательность {u k }® u, u k Î intU , k = 1,2,L . По доказанному выше будет выполняться I ' ' (u k )x , x ³ 0, " u Î U , x Î R n . Переходя здесь к пределу при k ® ¥ , получим условие (8) и для точек u ÎU \ int U . Необходимость доказана. Достаточность. Возьмем произвольные точки u, v ÎU и положим x = u - v . По формуле конечного приращения для гладких функций из условия (8) получим I ' (u ) - I ' (v ), u - v = I ' ' (v + q (u - v ) ) (u - v ), u - v ³ 0, "u, v Î U . Таким образом, для функции I выполнен второй критерий выпуклости дифференцируемых функций и, следовательно, она выпукла. Теорема доказана. Пример 16. Определить значения параметров, для которых функция I : R 3 ® R1 , определенная равенством I ( x, y, z ) = x 2 + 2axy + by 2 + cz 2 , 32 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА будет выпуклой на всем пространстве R 3 . Функция I дважды непрерывно дифференцируема на всем пространстве R 3 . По теореме 19 для ее выпуклости требуется положительность матрицы æ 2 ç I ' ' ( x, y, z) = ç 2a ç 0 è 2a 2b 0 0 ö ÷ 0 ÷. 2 c ÷ø Вычислим ее главные миноры и выясним, при каких значениях параметров они будут неотрицательны 2 > 0, 2 2a = 4b - 4a 2 ³ 0, 2a 2b 2 2a 2a 2b 0 0 = (4b - 4a 2 ) 2c ³ 0 . 0 2c 0 Таким образом, искомая область изменения параметров определяется неравенствами a 2 £ b, c ³ 0 . Например, значения параметров a = 2, b = 5, c = 1 этим неравенствам удовлетворяют. 1.12. Минимум выпуклой функции. Выпуклые функции представляют собой удобные объекты исследования для анализа их значений на минимум. Это объясняется тем обстоятельством, что выпуклые функции не могут иметь локальных минимумов. Теорема 20. Пусть функция I : U ® R 1 , где U Ì R n – выпуклое множество, выпукла. Тогда всякая точка локального минимума функции I на множестве U одновременно является точкой ее глобального минимума на этом множестве, причем множество ì ü U * = íu * ÎU I (u * ) = min I (u ) = I * ý uÎU î þ выпукло. В случае, когда функция I строго выпукла на U , множество U * содержит не более одной точки. Доказательство. Пусть u* точка локального минимума функции I на множестве U . Тогда существует окрестность O (u* , e ) точки u* , что 33 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА I (u * ) £ I (u ), "u Î O (u * , e ) I U . Для любого u ÎU и достаточно малого a Î [0,1] будет выполнено a u - u * < e . Тогда в силу выпуклости множества U имеем u * + a (u - u * ) = au + (1 - a ) u * Î O (u * , e ) I U . Из выпуклости функции I следует, что I (u * ) £ I (u * + a (u - u * )) = I (au + (1 - a ) u * ) £ aI (u ) + (1 - a ) I (u * ) или I (u * ) £ I (u ), " u ÎU Þ u * ÎU * . Таким образом, всякий локальный минимум одновременно является глобальным. Пусть теперь u* , v * ÎU * и a Î [0,1] . Тогда I * £ I (au * + (1 - a )v* ) £ aI (u * ) + (1 - a )I (v * ) = aI * + (1 - a )I * = I * . (1) Следовательно, (au* + (1 - a ) v* ) ÎU * , и множество U * выпукло. Для строго выпуклых функций, в случае когда u* ¹ v * , неравенство (1) не может превратиться в равенство при a Î (0,1) . Следовательно, строго выпуклая функция не может достигать минимума на выпуклом множестве более чем в одной точке. Теорема доказана. Выведем условия, которым должна удовлетворять точка минимума, выпуклой дифференцируемой функции. Теорема 21. Пусть функция I : U ® R 1 , где U Ì R n – выпуклое множество, выпукла и I Î C 1 (U ) . Тогда в любой точке u* ÎU * выполняется неравенство I ' (u * ), u - u * ³ 0, " u Î U , (2) а в случае u* Î int U неравенство (2) превращается в равенство. Кроме того, если функция I выпукла на множестве U , то условие (2) является достаточным для того, чтобы u* ÎU * . 34 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Доказательство. Необходимость. Пусть u* ÎU * . Для всех u Î U , a Î (0,1] имеем é o (a) ù ú . (3) 0 £ I (au + (1 - a) u* ) - I (u* ) = I (u* - a (u - u* ))- I (u* ) = a ê I ' (u* ), u - u* + ê ú a ë û Последнее неравенство разделим на число a > 0 и устремим его к нулю. В пределе получим неравенство (2). Пусть теперь u* Î int U . Тогда для любого вектора e Î R n , e = 1 найдется число e 0 > 0 , что u = u* + e e ÎU , "e Î [- e 0 , e 0 ]. В неравенстве (3) полагаем u = u* + e e . Тогда e I ' (u* ), e ³ 0 . В силу произвольности e Î R n , e = 1 из последнего неравенства выводим, что I ' (u * ) = 0 . Необходимость доказана. Заметим, что при доказательстве необходимости выпуклость функции I не использовалась. Для граничной точки u* , равенство I ' (u* ) = 0 может выполняться, а может и не выполняться. Например, пусть u Î R 1 , I (u ) = u 2 Þ I ' (u ) = 2u . Тогда: 1) U = [0, 1] Þ u · = 0 - равенство I ' (u* ) = 0 выполняется; 2) U = [1, 2] Þ u· = 1 - равенство I ' (u* ) = 0 не выполняется. Достаточность. Пусть функция I выпукла на множестве U и для некоторой точки u* Î U выполнено условие (2). Тогда в силу первого критерия выпуклости выполнено I (u ) ³ I (u * ) + I ' (u * ), u - u * Þ I (u ) ³ I (u * ), "u Î U , что и доказывает достаточность. Теорема доказана. Из доказанной теоремы следует, что для выпуклых функций равенство I ' (u * ) = 0 влечет за собой u * ÎU * . 1.13. Проекция точки на множество Определение 27. Пусть U Ì R n . Проекцией точки v Î R n на множество U называется точка w = PU (v) Î U , удовлетворяющая условию 35 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА w - v = inf u - v . uÎU Справедливо следующее утверждение (см. рис 5). Теорема 22. Пусть U Ì R n - замкнутое множество. Тогда для всякой точки v Î R n существует ее проекция на это множество. Если множество U выпукло, то проекция единственна и равенство w = PU (v ) имеет место тогда и только тогда, u v U w когда w - v, u - w ³ 0, "u Î U . Рис . 5 Доказательство. w = PU (v) - проекции точки v на множество U Задача (1) построения сводится к минимизации функции I : U ® R 1 , определенной равенством I (v ) = u - v 2 = u - v , u - v . Очевидно, что точка минимума этой функции, если она существует, должна принадлежать множеству B = O ( v, r ) I U , где O ( v, r ) шар столь большого радиуса, что для него B ¹ Æ . Множество B компактно, а функция I непрерывна, поэтому по теореме Вейерштрасса точка минимума wÎU функции I действительно существует, и PU ( v ) = w . Множество B является выпуклым как пересечение двух выпуклых множеств. Тогда по теореме 21 в точке w выполнено неравенство I '( w), u - w ³ 0 . Из него следует искомое условие (1). Теорема доказана. 1.14. Отделимость точки и множества. Точку и выпуклое множество можно разделить гиперплоскостью так, что они будут находиться в разных полупространствах, определяемых этой гиперплоскостью. Теорема 23. Пусть U Ì R n выпуклое множество. Тогда для любой точки v Ï int U существует вектор c ( v ) ¹ 0 , такой, что 36 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА c ( v ), u ³ c (v ) , v , " u Î U , если при этом v ÏU , то c ( v ) , u ³ c (v ) , v + c (v ) , " u Î U . 2 Доказательство. Сначала рассмотрим случай v ÏU . Множество U замкнуто и выпукло. Тогда согласно теореме 22 существует проекция w = PU (v ) ÎU точки v на множество U , причем w - v, u - w ³ 0, "u ÎU . Заметим, что w - v ¹ 0 , так как v ÏU . Положим c ( v ) = w - v . Тогда с учетом последнего неравенства находим c (v ) , u - v = w - v , u - w + w - v , w - v ³ c ( v ) , " u Î U 2 и для рассматриваемого случая теорема доказана. Пусть теперь v ÎU . Тогда v Î ¶ (U ) и существует последовательность {v k } ® v, v k ÏU , k = 1,2,L . Для каждого номера k = 1,2, L по доказанному выше существует вектор c ( vk ) ¹ 0 такой, что c ( vk ) , u > c ( vk ) , vk , " u Î U . (1) Можно считать, что c ( vk ) = 1, k = 1, 2L . Если бы это было не так, то обе части неравенства (1) V (c ) следовало бы поделить на величину c U k = 1,2, L .Переходя, G (v ) если подпоследовательности, {c (vk )} ® с (v ) . При этом Рис.6 это c (vk ) > 0, необходимо, принимаем, к что с (v ) = 1 ¹ 0 . В неравенстве (1) устремим k в бесконечность. В пределе получим требуемое соотношение. Теорема доказана. 37 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Геометрический смысл (см. рис. 6)доказанной теоремы состоит в том, что через любую точку v , не принадлежащую выпуклому множеству U Ì R n , можно провести гиперплоскость G (с (v )) так, что множество U будет целиком располагаться в одном из полупространств, отвечающих этой гиперплоскости. Очевидно, что когда точка v принадлежит границе множества U , вектор с (v ) является опорным вектором к множеству U G (с (v )) = {u Î R n полупространство с (v ) , u = с (v ) , v } - в точке v , гиперплоскость опорной P (с (v )) = {u Î R n с (v ) , u ³ с (v ) , v гиперплоскостью, } – а опорным полупространством к множеству U в направлении вектора с (v ) . В случае компактности множества U любой вектор c ¹ 0 может служить опорным к множеству U в некоторой точке v(c ) Î ¶U . Эта точка определяется из условия c, v(c ) = min c, v . vÎU Совокупность всех точек v (c ) образует множество V (c,U ) - опорное к множеству U в направлении вектора c . Очевидно, что V (c,U ) = U I G ( c) . 1.15. Отделимость выпуклых множеств. Результаты предыдущего пункта допускают обобщение на случай, когда вместо точки берется выпуклое множество. Определение 27. Будем говорить, что множества A, B Ì R n отделимы, если для некоторого вектора c Î R n , c ¹ 0 справедливо неравенство sup с, b £ inf c, a , bÎB aÎ A строго отделимы, если c, b < c, a , "a Î A, b Î B , и сильно отделимы, если знак неравенства в (1) строгий. 38 (1) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Геометрический смысл отделимости множеств состоит в существовании гиперплоскости G (c, g ), c Î R n , c ¹ 0, g Î R 1 , для которой множества A и B находятся в разных по отношению к ней полупространствах. Такую гиперплоскость называют отделяющей (строго, сильно). C A C A C B B B Рис. 9 На рис. 9 слева множества A и B отделены, в центре – строго отделены и справа – сильно отделены плоскостью с нормальным вектором c . В теореме 23 утверждается, что любая точка, не принадлежащая выпуклому множеству, отделима от его замыкания, и если при этом точка не принадлежит замыканию множества, то отделение сильное. Теорема 24. Пусть A, B Ì R n - непустые выпуклые множества и A I B = Æ . Тогда существует гиперплоскость G (c, g ), c ¹ 0 , отделяющая множества A и B , причем, если A I B ¹ Æ и v Î A I B , то g = c, v . Доказательство. Рассмотрим множество U = A - B = {u = a - b a Î A, b Î B }. Множество U выпукло. Поскольку A I B = Æ , то 0 ÏU . Тогда по теореме 23 существует вектор c ¹ 0 , что c, u ³ c, 0 = 0, " u Î U . Отсюда выводим с, a ³ c, b , " a Î A, b Î B . 39 (2) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Пусть теперь {ak } ® a, {bk } ® b, ak Î A, a Î A, b Î B . Найдутся bk Î B, k = 1,2, L В силу последовательности неравенства (2) будет c, a k ³ c, bk , k = 1,2, L . Переходя в последнем неравенстве к выполняться пределу при k ® ¥ , получим с, a ³ c, b , " a Î A , b Î B , (3) что и означает выполнение неравенства (1). Пусть, наконец, v Î A I B ¹ Æ . Тогда, с одной стороны, из v Î A и (3) вытекает, что c, b £ c, v , "b Î B , а с другой - из v Î B и снова (3) следует с, a ³ ³ c, v , "a Î A . Таким образом, g = c, v . Теорема доказана. Теорема 25. Пусть A, B Ì R n - непустые выпуклые замкнутые множества одно из которых ограничено и A I B = Æ . Тогда множества A и B строго отделимы. Если в условиях теоремы оба множества ограничены, то отделимость будет сильной. Доказательство. В условиях доказываемой теоремы множество U = A - B замкнуто. ограничено Действительно, и u последовательность – пусть для предельная {u k } ® u , определенности точка множества множество U. u k = a k - bk , a k Î A, bk Î B, k = 1,2,L . A Найдется В силу ограниченности множества A из последовательности {a k } можно извлечь сходящуюся bk j = u k j - a k j подпоследовательность {a }® a Î A . k j Тогда в равенстве в результате предельного перехода при k j ® ¥ получим, что b = u - a , где b Î B в силу замкнутости множества B . Таким образом, для предельной точки множества U получено представление u = a - b, a Î A, b Î B , что и означает замкнутость множества U . Из условия A I B = Æ следует, что 0 ÏU = U . Тогда по теореме 2 найдется вектор c ¹ 0 , для которого будет справедливо неравенство с, a - b ³ c 2 Þ с,a > c, b , "a Î A, b Î B . 40 (4) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Строгая отделимость множеств A и B доказана. Пусть оба множества A и B компактны. Тогда найдутся точки a * Î A и b * Î B , удовлетворяющие условию c , b * = max c , b . c , a * = min c , a , aÎ A bÎ B Отсюда и из неравенства (4) выводим, что inf c, a = min c, a = c, a* > c, b* = max c, b = sup c, b . aÎA aÎA bÎB bÎB Теорема доказана. 1.16. Некоторые следствия из теорем об отделимости выпуклых множеств. Всякое выпуклое множество полностью определяется своими опорными полупространствами. Именно, справедлива следующая теорема. Теорема 26. Выпуклое компактное множество U совпадает с пересечением всех своих опорных полупространств. Доказательство. Требуется доказать U = очевидно. Пусть существует точка w Î I P (с ) I P (с) . cÎR n c ¹0 Вложение U Ì I P (с) cÎR n c ¹0 такая, что w Ï U = U . Тогда, cÎ R n c ¹0 полагая в условиях теоремы 25 A = {w} , B = U , приходим к существованию вектора cˆ Î R n , cˆ ¹ 0 , удовлетворяющего условию cˆ, w > max cˆ, u = cˆ, u0 , u0 Î U . uÎU Последнее неравенство противоречит включению w Î P ( cˆ) = {u Î R n cˆ, u £ cˆ, u0 }. Теорема доказана. Приведем критерий непустоты пересечения выпуклых компактов в R n . Теорема 27. Для любых выпуклых компактов A, B Ì R n условие A I B ¹ Æ имеет место тогда и только тогда, когда выполнено неравенство 41 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА min l , a £ c( B , l ), " l Î S (0, 1) . (1) aÎ A Доказательство. Необходимость. Пусть A I B ¹ Æ . Справедлива цепочка неравенств min l , a £ min l , q £ c( A I B, l ) £ c ( B, l ), " l Î S (0, 1) , aÎ A qÎ AI B что и доказывает необходимость. Достаточность. От противного в силу теоремы 25 приходим к существованию вектора l * Î S (0, 1) , для которого min l * , a > max l * , b = c B (l * ) . aÎ A bÎB Последнее соотношение противоречит (1). Теорема доказана. Одним из важных следствий отделимости выпуклых множеств является теорема Фаркаша. Пусть заданы целые числа m £ k £ s, матрицы B* , B** , B размеров m´ n, (k - m)´ n, ( s - k )´ n , соответственно. Полагаем K = {e Î R n B* e £ 0, B** e ³ 0, Be = 0} ¹ Æ . Теорема 28 (Фаркаша). Для вектора d Î Rn неравенство d, e £ 0 выполняется при всех e Î K в том и только в том случае, когда существует вектор æ v * ö÷ ïìï ïüï çç ÷ ïï ï ÷ v Î V% = ív = çç v** ÷÷ Î R s v * Î R m , v * ³ 0, v ** Î R k-m , v ** ³ 0, v Î R s-k ïý çç ÷÷ ïï ïï çè v ÷÷ø ï ï îï þï такой, что d = B*T v * - B**T v ** + B T v . Доказательство. Необходимость. Пусть для всех e Î K неравенство d, e £ 0 . Требуется доказать, что d Î X = { x = B*T v* - B**T v** + B T v v Î V%} . 42 справедливо 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Предположим, dÏX . что Множество X выпукло и замкнуто (замкнутость множества X является следствием непрерывности линейных функций). Тогда по теореме 25 существует вектор с Î R n , c ¹ 0 такой, что c, x < c, d , "x Î X . (2) Очевидно, что a x Î X при всех x Î X и a ³ 0 . Из неравенства (2) получаем, что a c, x < c, d , "a ³ 0, "x Î X , а значит c, x £ 0, "x Î X . Тогда с, x = c, B*T v* - B**T v** + B T v = c, B*T v* - c, B**T v** + c, B T v = = B* c, v* - B** c, v** + Bc, v £ 0 "v Î V% . Запишем последнее неравенство для векторов x(i) Î X , порожденных векторами v(i) Î V%, i = 1, 2,3 следующего вида: æv* ö÷ æ 0 ö÷ æ 0ö÷ çç ÷ çç ÷ çç ÷ ÷ 2 3 (1) ( ) ( ) ** v = ççç 0 ÷÷ , v = ççv ÷÷÷ , v = çç 0 ÷÷÷ . çç ÷÷ çç ÷÷ çç ÷÷÷ èç 0 ø÷ èçv ø÷ çè 0 ÷ø В результате получим B*c, v * £ 0, B ** c, v ** £ 0, Bc, v £ 0 . В силу произвольности v* Î R m , v* ³ 0, v** Î R k -m , v** ³ 0, v Î R s-k из последних неравенств следует B*c £ 0, B** c ³ 0, Bc = 0 , (3) то есть c Î K . Для c Î K должно выполняться неравенство d, c £ 0 . Однако это невозможно, так как из неравенства (2) и включения 0 Î X следует c, d > 0 . Полученное противоречие доказывает необходимость. 43 (4) 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА Достаточность. Пусть æ v * ö÷ çç ÷ ÷ *T * **T ** T d = B v - B v + B v , v = çç v** ÷÷ Î V% . çç ÷÷ çè v ÷÷ø Тогда для любого e Î K будет d , e = B*T v * - B **T v ** + B T v , e = B*T v * , e - B **T v ** , e + B T v , e = = v* , B* e - v** , B** e + v , Be £ 0 . Теорема доказана полностью. Упражнения для самостоятельной работы 1. Доказать, что для всех u, v, w Î R n справедливо неравенство r ( u, v ) = u - v, u - v £ u - w, u - w + w - v, w - v = r (u, w) + r ( w, v ) . 2. Доказать, что ¶U = U \ int U . 3. Для любых множеств U1,U 2 ,W1 ,W2 Ì R n , таких, что U1 Ì U 2 , W1 Ì W2 и чисел a, b Î R1 доказать справедливость вложения aU1 + bW1 Ì aU 2 + bW2 . 4. Найти расстояние Хаусдорфа h (U ,W ) между множествами ìï üï æ u1 ö U = ïíu = çç 2 ÷÷÷ Î R 2 u1 £ 1, u 2 £ 1ïý и W = O (0, r ) Ì R 2 , ïï çèu ÷ø ïï î þ определить при каком значении r > 0 оно минимально. 5. Доказать, что компактное множество W Ì R n , обладающее следующим свойством: для всех u, v Î W справедливо включение 1 2 (u + v ) Î W , является выпуклым множеством. æ u1 ö÷ ïìï ïü 6. Найти образ множества U = íu = çç 2 ÷÷ Î R 2 u1 £ 1, u 2 £ 1ïý при линейных ï çèu ÷ø ïï îï þ преобразованиях следующего вида: æ a 0ö÷ ÷, è 0 b ø÷÷ а) A = çç ç 44 1. ЭЛЕМЕНТЫ ВЫПУКЛОГО АНАЛИЗА æ0 б) A = ççç 2 çè 2 ö÷ ÷÷, 0 ø÷÷ 2 2 æ sin j cos j ö÷ ÷ çè- cos j sin j ø÷÷ в) A3 = ççç 7. Для всех U ,V Ì R n доказать равенство co (U + V ) = coU + coV . 8. Найти опорные функции следующих множеств: ìï üï æ u1 ö÷ ïï ïï ç ÷ ç а) n - мерного куба U = ïíu = çççL÷÷÷÷ Î R n ui £ 1, i = 1,L, nïý , ïï ïï çç n ÷÷ u ø÷ ï ï è îï þï ì ï ïü æ u1 ö÷ æ u1 ö2 æ u 2 ö2 ï б) эллипса U = íu = ççç 2 ÷÷ çç ÷÷÷ + çç ÷÷÷ = 1ïý . ï ïï èu ø÷ çè a ÷ø çè b ÷ø ï ï ïþ î 9. Пусть функция I выпуклая на выпуклом множестве U Ì R n . Будет ли выпуклой функция I на том же множестве U ? 10. Привести пример невыпуклой функции, являющейся произведением двух выпуклых функций. 11. При каких p, q Î R1 функция I : R 2 ® R1 , определенная равенством ìïæ u1 ö üï p q I (u ) = (u1 ) (u 2 ) , будет выпуклой на множестве U = ïíçç 2 ÷÷÷ Î R 2 u1 ³ 0, u 2 ³ 0ïý . ïççèu ÷ø ï îï þï 12. Доказать, что выпуклая функция, не равная постоянной, может достигать своего максимума на выпуклом множестве лишь на граничных точках этого множества. æ v1 ö÷ çç ÷ 13. Найти проекцию точки v = çççL÷÷÷÷ на множество ç n ÷÷ çèv ÷ø ì æ u1 ö÷ ï ïüï ï çç ÷ ï ï ÷ n i U =ï íu = çççL÷÷÷ Î R ai £ u £ bi , i = 1,L, nïý . ï ïï ç n ÷÷ ï çèu ÷ø ï ï ï î þï 45 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 2.1. Общая задача линейного программирования. Общая задача линейного программирования ставится так. Задача 1 I (u ) = c1u1 + L + cn u n ® min (max), u Î R n , a11 u 1 + L + a1n u n £ b 1 , …………………….. a m1u 1 + L + a mn u n £ b m , am +11u1 + L + am+1n u n ³ b m+1 ……………………… ak1u1 + L + akn u n ³ b k ak +11u1 + L + ak +1n u n = b k +1 , ……………………… as1u1 + L + asn u n = b s , u1 ³ 0,L, u l ³ 0. Здесь aij , с j , bi , i = 1, L, s, j = 1, L, n, 0 £ m £ k £ s, 0 £ l £ n - заданные числа, не все равные нулю. Возможны другие виды записи задачи 1. Пусть, например, æu1 ÷ö æ u1 ö æ c1 ö æ a i1 ö çç ÷ ç ÷ ç ÷ ç ÷ ÷ ç u = ç L ÷ , c = ç L ÷ , u% = ççL÷÷ a i = ç L ÷ , i = 1,L , s . çç l ÷÷÷ ç n÷ çc ÷ ça ÷ çèu ÷ø è nø è in ø èu ø Условимся писать для векторов x, y Î R n , что x ³ y , если x i ³ y i , "i = 1, L, n . Тогда задача 1 допускает следующую запись: 46 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ I (u ) = c, u ® min (max), u Î R n , a1 , u £ b1 ,L, am , u £ b m , am+1 , u ³ b m+1 ,L, ak , u ³ b k , ak +1 , u = bk +1 ,L, a s , u = b s , u% ³ 0. Или по-другому. Обозначим æ a11 L a1n ö÷ æam+11 L am+1n ö÷ æ ak +11 L ak +1n ö÷ çç çç çç ÷÷ ÷÷ ÷ ** A = çç L L L ÷÷ , A = çç L L L ÷÷ , A = çç L L L ÷÷÷ , çç çç çç ÷ ÷ ÷ çèam1 L amn ÷÷ø çè ak 1 L akn ÷÷ø çè a s1 L a sn ø÷÷ * æ b1 ö÷ æb m +1 ö÷ æb k +1 ö÷ çç ÷ çç çç ÷ ÷÷ ÷ ÷ b* = ççç L÷÷ , b** = ççç L ÷÷ , b = ççç L ÷÷ . çç m ÷÷ çç k ÷÷÷ çç s ÷÷÷ çèb ø÷ çè b ø÷ çè b ø÷ Тогда I (u ) = c, u ® min (max), u Î R n , A*u £ b* , A**u ³ b* , Au = b , u% ³ 0. æ A* ÷ö çç ÷ Матрица A = ççç A** ÷÷÷÷ размера s ´ n называется матрицей коэффициентов, а çç ÷ çè A ÷ø вектор æ b * ÷ö çç ÷ ÷ b = çççb** ÷÷ -вектором правых частей ограничений задачи линейного çç ÷÷÷ çè b ÷ø программирования. В дальнейшем строки матриц A* , A** , A будем нумеровать теми же номерами, какие они имеют как строки матрицы A , а элементы столбцов b* , b** , b - как элементы столбца b . В линейном программировании принята следующая терминология. Линейная форма I (u ) называется целевой функцией, вектор u Î Rn , удовлетворяющий всем ограничениям задачи, - допустимым вектором, множество U всех допустимых векторов - допустимым множеством. Задача линейного программирования называется допустимой, если U ¹ Æ . В случае, 47 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ когда целевая функция достигает на допустимом множестве своего наименьшего (наибольшего) значения, его называют значением задачи, а допустимый вектор, на котором это значение достигается, - оптимальным вектором или решением задачи линейного программирования. Множество всех допустимых векторов, на которых достигается минимум (максимум) целевой функции, обозначим символом U * (U * ) . В случае, когда целевая функция неограниченна снизу и задача решается на min (сверху и задача решается на max ), говорят, что решение задачи линейного программирования неограниченно или, что оно уходит на бесконечность. В ограничениях задачи 1 первые m соотношений являются неравенствами со знаком « £ » следующие k - m соотношений – неравенствами со знаком « ³ », а заключительные s - k соотношений – равенствами. Такое соглашение о порядке ограничений принято только для удобства записи общей постановки задачи линейного программирования, и оно необязательно для конкретных задач. Задача максимизации целевой функции I на некотором допустимом множестве всегда может быть заменена эквивалентной ей задачей минимизации функции -I на том же множестве. Эквивалентность этих задач следует понимать в том смысле, что экстремум целевых функций I и -I достигается на одних и тех же элементах множества U . Заметим, что экстремальные значения целевых функций при этом будут совпадать только по абсолютной величине, а знаки их будут противоположными. Указанная эквивалентность позволяет иногда ограничиваться изучением задач линейного программирования только на минимум целевой функции. 2.2. Каноническая и стандартная форма задачи линейного программирования. Рассмотрим наиболее важные частные случаи общей задачи линейного программирования. Определение 1. Задачу линейного программирования будем называть канонической, если для нее l = n и k = 0 . 48 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Определение 2. Задачу линейного программирования будем называть стандартной, если для нее l = n и k = s . Таким образом, ограничениями канонической задачи являются только равенства, а стандартной задачи – только неравенства. В обеих задачах все переменные неотрицательны. Любую задачу линейного программирования можно записать как в канонической, так и в стандартной форме. Действительно, на первом этапе установим, что любую задачу в стандартной форме можно записать в канонической форме. Пусть имеется стандартная задача линейного программирования Задача 2. I (u ) = c, u ® min (max), u Î R n , a1 , u £ b1 ,L, am , u £ b m , am+1 , u ³ b m +1 ,L, ak , u ³ b k , u³0 . æu ö В пространстве переменных çç ÷÷÷ Î R n+k рассмотрим задачу линейного çè v ÷ø программирования в канонической форме Задача 3. I * (u , v) º I (u ) = c, u ® min (max), u Î R n , v Î R k , a1 , u + v1 = b1 ,L, am , u + v m = b m , am+1 , u - v m+1 = b m+1 ,L, ak , u - v k = bk , u ³ 0, v ³ 0 . æu ö Очевидно, что çç * ÷÷÷ Î R n+k – решение задачи 3 тогда и только тогда, когда çè v* ÷ø u* – решение задачи 2 и 49 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ v*i = bi - ai , u* , i = 1,L, m, v*i = -bi + ai , u* , i = m + 1, L, k . Покажем теперь, что любая задача линейного программирования (задача 1) может быть сведена к стандартной задаче. В пространстве переменных æ u1 ÷ö çç ÷ çç L ÷÷ ÷÷ çç çç u l ÷÷÷ çç l +1 ÷÷ çç v ÷÷ ÷÷ çç n +(n-l ) = R 2 n-l çç L ÷÷÷ Î R ÷ çç n ÷ çç v ÷÷ çç wl +1 ÷÷÷ ÷ çç çç L ÷÷÷ ÷÷ çç çèç wn ÷÷÷ø ÷÷ ç рассмотрим задачу линейного программирования в стандартной форме Задача 4. c1u1 + L + cl u l + cl +1 ( wl +1 - v l +1 ) + L + cn ( wn - v n ) ® min, a11u1 + L + a1l u l + a1l +1 ( wl +1 - v l +1 ) + L + a1n ( wn - v n ) £ b1 , …………………………………………………………………… am1u1 + L + aml u l + aml +1 ( wl +1 - vl +1 ) + L + amn ( wn - v n ) £ b m , am +11u1 + L + am+1l u l + am +1l +1 ( wl +1 - v l +1 ) + L + am +1n ( wn - v n ) ³ b m+1 , …………………………………………………………………… ak 1u1 + L + akl u l + akl +1 ( wl +1 - v l +1 ) + L + akn ( wn - v n ) ³ b k , ak +11u1 + L + ak +1l u l + ak +1l +1 ( wl +1 - v l +1 ) + L + ak +1n ( wn - v n ) £ b k +1 ak +11u1 + L + ak +1l u l + ak +1l +1 ( wl +1 - v l +1 ) + L + ak +1n ( wn - v n ) ³ b k +1 …………………………………………………………………….. as1u1 + L + asl u l + asl +1 ( wl +1 - vl +1 ) + L + asn ( wn - v n ) £ b s , as1u1 + L + asl u l + asl +1 ( wl +1 - vl +1 ) + L + asn ( wn - v n ) ³ b s 50 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ u1 ³ 0, L, u l ³ 0, v l +1 ³ 0,L, v n ³ 0, wl +1 ³ 0,L, wn ³ 0 . В записи задачи 4 используется тот очевидный факт, что равенство A = B эквивалентно двум неравенствам A £ B, A ³ B , а любое действительное число представимо в виде разности двух положительных чисел: z = x - y, x ³ 0, y ³ 0 . Легко видеть, что если вектор æ u*1 ÷ö çç ÷ çç L ÷÷ ÷÷ çç çç u*l ÷÷÷ çç l +1 ÷÷ çç v* ÷÷ ÷÷ çç 2 n-l çç L ÷÷÷ Î R çç n ÷÷ çç v* ÷÷ çç wl +1 ÷÷÷ çç * ÷÷ çç L ÷÷ ÷÷ çç ççè w*n ÷÷÷ø ÷÷ çç является решением задачи 4,то вектор æ u*1 ö÷ çç ÷ çç L ÷÷ çç ÷÷÷ ç u l ÷÷ u* = ççç l +* 1 ÷÷ Î R n , u*l +1 = w*l +1 - v*l +1 ,L, u*n = w*n - v*n ççu* ÷÷ çç ÷÷÷ çç L ÷÷ çç n ÷÷ èç u* ø÷ является решением задачи 1. 2.3. Примеры прикладных задач линейного программирования. К задачам линейного программирования сводятся различные типы прикладных задач технико-экономического содержания. Приведем некоторые из них. Задача построения оптимальной производственной программы предприятия. Предприятие производит n видов продукции, каждый из которых проходит обработку на m видах оборудования. Введем обозначения: a ij , i = 1,L, m, j = 1,L, n – трудоемкость изготовления одной единицы продукции j-го вида на i-м виде оборудования; bi , i = 1,L, m – годовой фонд времени работы оборудования i-го вида; 51 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ c j , j = 1,L, n – прибыль с одной единицы продукции j-го вида; u*j , u j * , j = 1,L, n – директивные задания на год по j-му виду продукции (продукция j-го вида должна быть выпущена в количестве не менее u j* единиц и не более u*j единиц); Требуется составить годовой план работы предприятия, удовлетворяющий директивным заданиям по выпуску всех видов продукции, трудоемкость которого не превосходит годового фонда времени работы по каждому виду оборудования, и при этом получить максимум прибыли от реализации изготовленной продукции. Математическая модель задачи имеет следующий вид. Пусть u j , j = 1,L, n – плановое задание на год по j-му виду продукции. Требуется определить вектор æu10 ö÷ çç ÷ ÷ u0 = ççL÷÷ , удовлетворяющий соотношениям çç ÷÷ çèu10 ÷÷ø a11u01 + L + a1n u0n £ b1 , LLLLLLLLL am1u10 + L + amn u0n £ b m , u*1 £ u10 £ u1* , LLLLL u*n £ u0n £ u n* и доставляющий наибольшее значение функции I (u ) = c1u1 +L cn u n . Задача оптимального раскроя ширины сетки бумагоделательной машины. Ширина отливаемой полосы бумаги ограничена шириной сетки L бумагоделательной машины. Отлив бумажной полосы меньших размеров влечет непроизводительные расходы по обслуживанию бумагоделательной машины. Бумажная фабрика имеет заказ на изготовление m различного типа размеров бумаги шириной li и массой Pi , i = 1,L, m . Выполнение заказа осуществляется путем отлива бумажной полосы переменной ширины с дальнейшей ее разрезкой по типоразмерам бумаг. Отходы при резке бумажной 52 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ полосы недопустимы. Требуется определить такой профиль бумажной полосы, для которого неиспользуемая площадь сетки бумагоделательной машины минимальна. Для построения математической модели задачи раскроя нарабатываются варианты разметки ширины сетки бумагоделательной машины. Вариант разметки представляет собой набор различных типоразмеров бумаги из заказа. При этом i - й типоразмер входит в j - й вариант разметки kij раз, а суммарная длина типоразмеров, составляющих вариант разметки, не должна превосходить ширину сетки. Математическая модель задачи имеет следующий вид. Обозначим через u j , j = 1,L, n длину бумажного полотна, отливаемого по j - му варианту разметки (см. рис. 1). l1 l1 li li L lm lm lm uj Рис. 1 æ u10 ö÷ çç ÷ Требуется определить вектор u0 = çççL÷÷÷÷ , удовлетворяющий соотношениям ç n ÷÷ çèu0 ÷ø 53 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ P1 , r LLLLLLLL k11u01 + L k1n u0n = km1u10 + Lkmn u0n = u j ³ 0, j = 1,L, n Pm , r и доставляющий наименьшее значение функции m m æ ö æ ö I (u ) = çç L - å ki1li ÷÷ u1 + L + çç L - å kin li ÷÷ u n . çè ÷ø çè ÷ø i =1 i =1 Здесь r - удельная плотность бумаги. Легко видеть, что построенная математическая модель представляет собой задачу линейного программирования. Эта задача будет допустимой, если в число вариантов разметки сетки бумагоделательной машины для каждого типоразмера включить вариант, содержащий только этот типоразмер. Транспортная задача. Имеется r карьеров, где добывается песок и p потребителей песка. В i - м карьере ежесуточно добывается ai тонн песка, i = 1,L, r , а j - му потребителю ежесуточно требуется b j тонн песка, j = 1,L, p . Стоимость перевозки одной тонны песка с i - го карьера j - му потребителю равна cij , i = 1,L, r , j = 1,L, p . Требуется составить план перевозок песка так, чтобы вывести весь песок, добытый в каждом из карьеров в течение суток, обеспечить потребителей нужным суточным количеством песка и при этом минимизировать затраты на перевозку. Математическая модель задачи имеет следующий вид. Обозначим через u ij планируемое к перевозке количество тонн песка с i - го карьера j - му потребителю i = 1,L, r, j = 1,L, p . Требуется удовлетворяющий соотношениям 54 определить вектор æ u011 ÷ö çç ÷ çç L ÷÷ çç ÷÷÷ ççu01 p ÷÷ ç ÷÷ u0 = çç L ÷÷÷ , çç ÷ çç u0r1 ÷÷ çç ÷÷÷ çç L ÷÷ çç rp ÷÷ çèç u0 ÷÷÷ø 2. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ u011 + L + u10 p u = a1 , LLLLLLLL u0r 1 + L + u0rp = ar , u011 + L + u0r1 = b1 , LLLLLLLL u01 p + L + u0rp = bp , u0ij ³ 0, i = 1,L, r, j = 1,L, p, и доставляющий наименьшее значение функции I (u ) = åå cij u ij . p r j =1 i=1 Упражнения для самостоятельной работы 1. Является ли допустимой следующая задача линейного программирования: u1 + u 2 + u 3 ® min, 2u1 + 3u 2 - 4u 3 = 3, 3u1 + 4u 2 - u 3 = 4, u1 ³ 0, u 3 ³ 0? 2. Записать общую задачу линейного программирования 3u1 + 3u 2 8u 3 - 5u 4 + 7u 5 ® min, -4u1 - 3u 2 + 4u 3 - 8u 4 - 12u 5 £ 24, 2u1 - 6u 2 - 4u 3 + 17u 4 - 2u 5 £ 3, 7u1 - 6u 2 + 9u 3 - 8u 4 - 7u 5 ³ 11, 4u1 + 3u 2 + 11u 3 - 3u 4 - 16u 5 = 7, u1 ³ 0, u 2 ³, u 3 ³ 0. в канонической и стандартной формах. 3. Записать математическую модель задачи оптимального раскроя ширины сетки бумагоделательной машины при следующих данных: L = 3200 мм, m = 3, l1 = 300 мм, l2 = 420 мм, l3 = 510 мм, P1 = 230 кг , P2 = 380 кг, 55 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3.1. Графический программирования в метод. Рассмотрим стандартной форме для задачу линейного n = 2. Обозначим x = u 1 , y = u 2 , u = ( x, y ) . Задача 1. c1 x + c2 y ® min(max) , a11 x + a12 y £ b1 , LLLLLL am1 x + am 2 y £ b m , am +11 x + am+12 y ³ b m+1 , LLLLLL ak 1 x + ak 2 y ³ b k , x ³ 0, y ³ 0. Опишем графический метод решения этой задачи. Полагаем æ xö ïì ïü U 0 = ïí u = çç ÷÷÷ Î R 2 x ³ 0, y ³ 0ïý , çè y ÷ø ïîï ïþï ìï üï ìï üï æ xö æ xö U1 = ïí u = çç ÷÷÷ Î R 2 a11 x + a12 y £ b1 ïý ,LLU m = ïí u = çç ÷÷÷ Î R 2 am1 x + am 2 y £ b m ïý , çè y÷ø çè y÷ø ïîï ïþï ïîï ïþï ìï üï ìï üï æ xö æ xö U m+1 = ïí u = çç ÷÷÷ Î R 2 am+11 x + am+12 y ³ b1 ïý ,LLU k = ïí u = çç ÷÷÷ Î R 2 ak 1 x + ak 2 y ³ b k ïý . çè y÷ø çè y ÷ø ïîï ïþï ïïî ïþï Множество U 0 представляет собой положительный квадрант плоскости XOY , а множества U i – полуплоскости с границами ai1 x + ai 2 y = bi , i = 1,L, k . Для определения той половины плоскости, с которой отождествляется множество U i , достаточно проверить, удовлетворяет ли соответствующему неравенству какая-нибудь точка, например точка 0 . Если да, то берется полуплоскость, 56 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ содержащая эту точку, в противном случае – ее дополнение. На рис.1 линия, помеченная символом (i ) , задается уравнением a i1 x + a i 2 y = b i , i = 1,L, k , а положение выбранной полуплоскости относительно границы определяется направлением стрелки. y (i) y y (i) (i) x O O x x O Рис. 1 Область допустимых значений вектора ( x, y ) строится по формуле k U = IUi . i= 0 Множество U является либо ограниченным выпуклым многоугольником (см. левую фигуру на рис. 1), либо неограниченным выпуклым многоугольником (см. центральную фигуру на рис. 1), либо пустым множеством (см. правую фигуру на рис. 1). Пусть a Î R 1 – какое-либо число. Уравнение c1 x + c2 y = a определяет линию уровня целевой функции, соответствующую значению a . æс ö Эта линия ортогональна вектору c = çç 1 ÷÷ . При изменении a от - ¥ до + ¥ она, è с2 ø смещаясь параллельно самой себе, зачертит всю плоскость. Направление перемещения линии уровня при возрастании a на рис. 1 отмечено стрелкой. æx ö Последняя точка çç * ÷÷ множества U , через которую линия уровня будет è y* ø 57 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ проходить при уменьшении (увеличении) a , является решением задачи линейного программирования a = I* , (a = I * ) , на минимум (максимум). Величина соответствующая этому положению линии уровня, будет минимальным (максимальным) значением целевой функции I на множестве U . æx ö Очевидно, что точку çç * ÷÷ следует искать среди вершин многоугольника U . è y* ø Точное значение ее координат находится как решение системы двух линейных алгебраических уравнений, задающих стороны многоугольника, пересечением которых является указанная точка. Возможна ситуация, когда линия уровня целевой функции, отвечающая значению a = I * (a = I * ) , будет иметь не одну общую точку с множеством U , а целую сторону, однако и в этом случае вершина многоугольника войдет во множество решений задачи линейного программирования. Если множество U неограниченно, то не исключается, что линия уровня целевой функции будет иметь общую точку с множеством U при всех a Î (- ¥,+¥ ) . Это означает, что I* = -¥ ( I * = +¥) , т.е. решение задачи неограниченно. Итак, возможны следующие ситуации: 1) U ¹ Æ, I * > -¥ ( I * < +¥) , U * ¹ Æ (U * ¹ Æ) , U * (U * ) содержит ровно одну точку; 2) U ¹ Æ, I * > -¥ , ( I * < +¥) , U * ¹ Æ (U * ¹ Æ) , U * (U * ) совпадает со стороной многоугольника; 3) U ¹ Æ, I * = -¥ ( I * = +¥) , U * = Æ (U * = Æ) ; 4) U = Æ . Аналогичные результаты имеют место и при n > 2 . 58 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Пример y 1. задачу линейного 8 программирования 6 графическим методом: 4 I ( x, y ) = -2 x + 5 y ® min , ( x* , y * ) 2 - 7 x - 2 y £ -14 , x -6 -4 -2 Решить 2 4 6 8 10 -2 5 x + 6 y £ 30 , -3 x - 8 y £-24 , x ³ 0, y ³ 0 . Рис. 2 Проведем необходимые построения. Из чертежа (рис. 2) видно, что точка (x* , y * ) определяется как решение следующей системы алгебраических уравнений: 5 x + 6 y = 30, - 3x - 8 y = -24 . Отсюда находим x* = Графический способ 48 15 21 , y * = , I * = I (x * , y * ) = - . 11 11 11 решения применим и для задач линейного программирования в канонической форме с матрицей ограничений A размера m ´ (m + 2) , для которой rang [ A] = m, m = 1, 2,L . Продемонстрируем это на примере для случая m = 3 . Пример 2. Решить задачу линейного программирования в канонической форме: I (x1 , x 2 , x 3 , x 4 , x 5 ) = -40 x1 + 7 x 2 - 3 x 3 + 6 x 4 + 3 x 5 , 4 x1 + x 2 + 2 x 3 + x 4 + 3 x 5 = 55 , - 17 x1 + 16 x 2 - 4 x 3 + 2 x 4 + 5 x 5 = 46 , - 33x1 + 26 x 2 - 7 x 3 + 4 x 4 + 8 x 5 = 66 , x1 ³ 0, x 2 ³ 0, x 3 ³ 0, x 4 ³ 0, x 5 ³ 0 . 59 (1) 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Здесь матрица ограничений имеет вид 1 2 1 3ö æ 4 ç ÷ A = ç - 17 16 - 4 2 5 ÷ . ç - 33 26 - 7 4 8 ÷ è ø Ее ранг равен трем, так как определитель, составленный из элементов трех последних столбцов матрицы, отличен от нуля. Действительно 2 1 3 - 4 2 5 = -17 ¹ 0 . -7 4 8 Последнее обстоятельство позволяет представить ограничения (1) в виде x 3 = 6 - 3 x1 + 2 x 2 ³ 0, x 4 = -5 + 5 x1 + x 2 ³ 0, x 5 = 16 - x1 - 2 x 2 ³ 0, x1 ³ 0, x 2 ³ 0 и свести исходную каноническую задачу линейного программирования к стандартной задаче с матрицей ограничений размера 3 ´ 2 . Сформулируем эту задачу I ( x1 , x 2 ) = -4 x1 + x 2 ® min , 3 x1 - 2 x 2 £ 6, - 5 x1 - x 2 £ -5, x1 + 2 x 2 £ 16, x1 ³ 0, x 2 ³ 0 . Проведем необходимые построения для реализации графического решения x2 8 6 ( x1* , x 2* ) 4 2 -2 O x1 2 4 6 8 10 12 14 16 -2 Рис. 3 сформулированной задачи. Из чертежа (рис. 3) видно, что точка (x1* , x 2* ) определяется как решение следующей системы алгебраических уравнений: 60 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3 x1 - 2 x 2 = 6, x1 + 2 x 2 = 16 . Отсюда находим x1* = 11 21 , x 2* = , 2 4 I * = I ( x1* , x 2* ) = - 67 . 4 Таким образом, решением исходной задачи будет x1* = 11 21 111 67 , x 2* = , x 3* = 0, x 4* = , x 5* = 0, I * = I (x1 * , x 2 * , x 3 * , x 4 * , x 5 * ) = - . 2 4 4 4 Заметим, что в полученном решении число содержащихся в нем нулей в точности совпадает с разностью между числом переменных в канонической задаче линейного программирования и рангом матрицы ограничений. Ниже будет установлена закономерность такого результата. 3.2. Угловые точки допустимого множества канонической задачи. Дадим формальное определение интуитивно легко представляемому понятию угловой точки множества в пространстве R n . Определение 1. Точка v Î U Ì R n называется угловой точкой множества U , если ее представление в виде v = av1 + (1 - a )v2 , v1 , v 2 Î U , a Î (0,1) возможно лишь при v1 = v2 = v . Геометрический смысл данного определения состоит в том, что угловая точка не может быть внутренней точкой ни одного отрезка, принадлежащего множеству U . Пример 3. B B Для A обеих A изображенных Рис. 4 угловая, а точка В – нет. множеств, рис. 4, точка А – Изучим структуру угловых точек допустимого множества канонической задачи линейного программирования 61 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ U = {u Î R n Au = b, u ³ 0}. Здесь A – матрица размера m ´ n, m £ n , rang[A] = r Î {1,L, m} . Символом A j , j Î {1,L , n} обозначим j - й столбец матрицы A и заметим, что равенство Au = b эквивалентно равенству A1u 1 + L + An u n = b . (1) Теорема 1. Для того чтобы точка v ÎU была угловой точкой множества U , необходимо и достаточно существование номеров j1 ,L, j r Î {1,L , n} , таких, что 1) столбцы A j ,L, A j матрицы А линейно независимы; 1 r 2) v j = 0 , если j Ï { j1 , L, j r }. Доказательство. Необходимость. Пусть v ÎU – угловая точка. Сначала предположим, что v = 0 . Ранг матрицы A равен r , поэтому существует набор линейно независимых столбцов A j ,L , A j 1 r этой матрицы. Номера j1 , L, j r удовлетворяют условиям теоремы. Для случая v = 0 теорема доказана. Пусть теперь v ¹ 0 и v j ,L, v j – все положительные координаты точки v k 1 (остальные равны нулю). Тогда из равенства Av = b , записанного в форме (1), следует Av = A j1 × v j1 + L + A jk × v jk = b . (2) Покажем, что столбцы A j ,L, A j линейно независимы. От противного 1 k приходим к существованию ненулевого набора чисел a1 ,L ,a k Î R1 , для которых имеет место равенство a1 A j + L + a k A j = 0 . 1 k æ v1+ ö ç ÷ Построим точку v + = ç L ÷ с координатами ç n÷ è v+ ø 62 (3) 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ v jp + ìïv j p + e × a p , p = 1, L, k , =í ïî0, p = k + 1, L, n æ v 1- ö ç ÷ и точку v - = ç L ÷ с координатами ç n÷ è v- ø v jp - ìïv j p - e × a p , p = 1,L , k , =í ïî0, p = k + 1,L , n . Умножим равенство (3) на e и сложим результат с равенством (2). Получим ( ( ) ) A j1 v j1 + ea1 + L + A jk v jk + ea k = b . (4) Умножим равенство (3) на e и вычтем результат из равенства (2). Тогда ( ( ) ) A j1 v j1 - ea1 + L + A j k v jk - ea k = b . (5) Из соотношений (4), (5) следует, что при достаточно малом e > 0 имеют место включения v - Î U , v + Î U . Кроме того, v= v + + v2 и, значит, v = av + + (1 - a )v - , a = 1 Î (0,1) . 2 По условию теоремы v – угловая точка множества U , поэтому v + = v- . Тогда a1 = L = a k = 0 , что противоречит сделанному предположению. Таким образом, набор столбцов A j ,L, A j линейно независим и k £ r . 1 k Если k = r , то необходимость уже доказана. В качестве номеров j1 ,L, j r следует взять номера столбцов A j ,L, A j ( k = r ). Если k < r , то к столбцам 1 k 63 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ A j1 ,L, A j k надо добавить A jk +1 , L , A jr столбцы так, чтобы полученная совокупность столбцов A j ,L , A j матрицы A была линейно независима. Это r 1 можно сделать, так как ранг матрицы A равен r . Номера j1 , L, j r будут искомыми. Необходимость доказана. æ v1 ö ç ÷ Достаточность. Пусть v = ç L ÷ Î U и ç n÷ èv ø v = av1 + (1 - a )v2 (6) при некоторых v1 , v 2 Î U ,a Î (0,1) . Покажем, что равенство (6) возможно только при v1 = v 2 = v . Прежде всего заметим, что если v j = 0 , то из 0 £ a × v1j + (1 - a ) × v 2j = 0 следует v1j = v2j = 0 . Остается показать, что v1j = v 2j и при тех номерах j , для которых v j > 0 . Перечислим все такие номера: j1 , L, j k . В силу условия 2) теоремы k £ r . Поскольку координаты вектора v отличны от нуля только для номеров j1 , L, j k , то из равенства (1) следует Av = A j1 v j1 + L + A jk v jk = b . (7) Из включения vi Î U следует равенство Av i = b, i = 1,2 . Координаты вектора vi отличны от нуля тоже только для номеров j1 , L, j k , поэтому Avi = Aj1 vij1 + L + Ajk vi jk = b , i = 1,2 . В силу v j > 0,L, v j > 0 справедливо вложение {A j ,L, A j } Ì {A j ,L, A jr }. По 1 1 1 k 1 условию 1) теоремы столбцы A j ,L , A j линейно независимы, следовательно, 1 r линейно независимы и столбцы A j ,L , A j . Вектор b выражается через 1 k столбцы A j ,L, A j единственным образом. Тогда 1 k v1 p = v 2 p = v p , p = 1, L, k . j j j Достаточность доказана. 64 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Из доказанной теоремы, в частности, следует, что число угловых точек у множества U не превосходит величины Cnr = n! r !(n - r )! и, следовательно, конечно. Определение 2. Систему векторов A j ,L , A j будем называть базисом r 1 угловой точки v , а соответствующие им координаты v j ,L, v j – базисными 1 r координатами точки v . Определение 3. Если все базисные координаты угловой точки положительны (строго больше нуля), то ее называют невырожденной. Теорема 2. Если угловая точка невырожденная, то она имеет единственный базис. Доказательство. Пусть A j ,L , A j – невырожденный базис угловой точки 1 r v множества U . Покажем, что любой другой базис A j ,L, A j 1* r* этой же угловой точки с ним совпадает. Действительно, по условию 2) теоремы 1 для всех индексов { j Ï j1* ,L , j p* } должно выполняться v j = 0. Тогда из невырожденности базиса A j ,L, A j следует, что j Ï { j1 ,L, j r } и 1 r { j1 ,L , j r } Ì {j1 ,L, j r }. * (8) * Число элементов в каждом из множеств { j1 ,L , j r } , { j1 , L, j r * * } конечно и одинаково, поэтому вложение (8) влечет за собой искомое совпадение базисов. Теорема доказана. Пример 4. Пусть ì æ u1 ö ç 2÷ ï çu ÷ ï ï U = íu = ç u 3 ÷ Î R 5 ç ÷ ï çu 4 ÷ ï ç 5÷ ïî èu ø æ u1 ö ç ÷ 3 1 2 9 ö ç u 2 ÷ æ11ö æ1 ç ÷ ç 3÷ ç ÷ ç 2 -1 4 1 1÷ × çu ÷ = ç 2 ÷, ç -1 2 2 -1 2÷ çu 4 ÷ ç 1 ÷ è ø è ø ç 5÷ èu ø Здесь 65 ü æ u1 ö ç 2÷ ï çu ÷ ï ç 3 ÷ ³ 0ï . u ý ç ÷ ï çu 4 ÷ ï ç 5÷ ïþ u è ø 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3 1 2 9ö æ11ö æ 9ö æ 2ö æ1ö æ 3ö æ1ö æ1 ç ÷ ç ÷ ç ÷ ç ÷ ç ÷ ç ÷ ç ÷ A = ç 2 - 1 4 1 1 ÷ , A1 = ç 2 ÷ , A2 = ç - 1÷ , A3 = ç 4 ÷ , A4 = ç 1 ÷ , A5 = ç 1 ÷ , b = ç 2 ÷ . ç1÷ ç 2÷ ç - 1÷ ç 2÷ ç 2÷ ç - 1÷ ç -1 2 2 -1 2÷ è ø è ø è ø è ø è ø è ø è ø Ранг матрицы А равен трем. Например, вектора A1 , A2 , A4 линейно независимы, так как 1 2 3 -1 2 1 =8¹0. -1 2 -1 æ1ö ç ÷ ç2÷ Точка v1 = ç 0 ÷ является угловой для множества U . Действительно, для ç ÷ ç2÷ ç0÷ è ø нее j1 = 1, j 2 = 2, j 3 = 4 . Условие 1) теоремы 1 для этих номеров установлено выше, а равенство Av1 = b проверяется следующими вычислениями: æ 1 ö æ 3ö æ 2 ö æ11ö ç ÷ ç ÷ ç ÷ ç ÷ 1 × ç 2 ÷ + 2 × ç - 1÷ + 2 × ç 1 ÷ = ç 2 ÷ . ç - 1÷ ç 2÷ ç - 1÷ ç 1 ÷ è ø è ø è ø è ø Заметим, что угловая точка v1 – невырожденная. Точка æ0ö ç ÷ ç0÷ v2 = ç 0 ÷ ç ÷ ç1÷ ç1÷ è ø также угловая. Равенство Av 2 = b проверяется непосредственно. Эта угловая точка вырожденная. Ее базис не единственен, так как, по крайней мере, можно указать два ее базиса: {A1 , A4 , A5 }, {A3 , A4 , A5 } . Действительно, 1 2 2 1 9 1 1 = -16 ¹ 0, 4 -1 -1 2 2 1 9 1 = -63 ¹ 0 . 2 -1 2 66 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3.3 Обоснование симплекс-метода. Рассмотрим каноническую задачу линейного программирования на минимум, опишем и обоснуем метод ее решения, который обычно называется симплекс-методом. Задача 2. I (u ) = c, u ® min , u ÎU = {u Î R n u ³ 0; Au = b}. Здесь А – матрица размера m ´ n, rang [ A] = r . Предполагается, что r = m, U ¹ Æ и множество U имеет хотя бы одну угловую точку v . Покоординатно равенство Au = b может быть представлено так a11u 1 + L + a1n u n = b1 , ................................. (1) a r1u 1 + L + a rn u n = b r . Перенумеровав переменные, можно считать, что столбцы A1 ,L, Ar матрицы А являются базисом точки v . Определение 4. Переменные u 1 ,L , u r будем называть базисными переменными, а переменные u r +1 ,L, u n – внебазисными, для угловой точки v . Придадим задаче 2 новую форму, выразив базисные переменные через внебазисные. Обозначим æ u1 ö æ v1 ö æ a j1 ö æ c1 ö ç ÷ ç ÷ ç ÷ ç ÷ u = ç L ÷ , v = ç L ÷ , c = çL ÷ , A j = ç L ÷ , j = 1, L, n , B = ( A1 L Ar ) . ç r÷ ç r÷ ça ÷ çc ÷ è rø èu ø èv ø è jr ø Тогда A1u 1 + L + Ar u r + Ar +1u r +1 + L + An u n = Bu + Ar +1u r +1 + L + An u n = b . (2) Из линейной независимости столбцов A1 ,L, Ar следует существование æv ö матрицы B -1 . Точка v – угловая с базисом A1 ,L , Ar , поэтому v = çç ÷÷ . Из è 0ø равенства (2) вытекает, что 67 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Bv = b Þ v = B -1b . Умножим обе части равенства (2) на B -1 слева n u+ åB -1 k = r +1 Ak u k = B -1b = v . (3) Обозначим æ g 1k ö ç ÷ B Ak = ç L ÷ , k = r + 1,L, n çg ÷ è rk ø -1 и перепишем (3) в координатной форме u 1 = v1 - g 1r +1u r +1 - L - g 1k u k - L - g 1n u n , ………………………………………….. u i = v i - g ir +1u r +1 - L - g ik u k - L - g in u n , ………………………………………….. u r = v r - g rr +1u r +1 - L - g rk u k - L - g rn u n . (4) Преобразуем целевую функцию I (u ) = c, u = c , v - n åB k = r +1 = с, v - n å c , B -1 Ak ×u k + k = r +1 n -1 å ck u k = с , v - k = r1 n Ak u k + å ck u k = k = r1 å[ c, B n -1 ] Ak - c k ×u k . k = r +1 (5) В силу очевидного равенства c , v = c, v = I (v ) из (5) выводим, что I (u ) = I (v) - n åD u k =r +1 k k , D k = c , B -1 Ak - c k = n åc g s = r +1 s sk - ck . (6) Информацию, содержащуюся в формулах (4),(6), удобно поместить в таблицу (рис. 5). 68 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Таблица 1 Базисные u r +1 … uk … un переменные Свободный член g 1r +1 … g 1k … g … … … … … … … ui g ir+1 … g ik … g in vi … … … … … … ur g rr +1 … g rk … g rn vr Целевая D r +1 … Dk … Dn I (v) u1 1n v1 функция Определение 5. Формулы (4), (6) будем называть симплекс-разложением, а таблицу 1– симплекс-таблицей, отвечающими угловой точке v . Добавляя к формулам (4),(6) неравенства u i ³ 0, i = 1, L, n , получим искомую эквивалентную запись исходной задачи 2. Укажем один способ построения точки æ w1 ö ç ÷ w = çL÷ ç n÷ èw ø из множества U . Зададимся набором значений внебазисных переменных w r +1 = 0,L , w k = u*k ³ 0 , L , w n = 0 , а значения базисных переменных вычислим по формулам (4), подставив в них выбранные значения внебазисных переменных. Тогда w1 = v1 - g 1k u *k ,L , w i = v i - g ik u *k ,L, w r = v r - g rk u *k . (7) Пусть оказалось, что wi ³ 0, i = r + 1,L, n . Тогда цель достигнута. Заметим, что если u*k = 0 , то w = v . 69 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Усложним задачу. Потребуем, чтобы для построенной точки w еще выполнялось бы неравенство I ( w) < I (v) . В силу формулы (6) справедливо равенство I ( w) = I (v) - D k u *k , (8) поэтому номер k Î {r + 1,L , n} следует искать из множества K = {k D k > 0} . Теорема 3. Пусть K = Æ . Тогда угловая точка v является решение задачи 2. Доказательство. Из равенства I (u ) = I (v) - n åD u k =r +1 k k , положительности величин u k , k = r + 1, L , n для всех u Î U и условия теоремы следует, что I (u ) ³ I (v ), "u ÎU . Последнее и означает, что точка v – решение исходной задачи. Теорема доказана. Теорема 4. Пусть K ¹ Æ и существует номер k Î K , такой, что g ik £ 0 для всех i = 1,L, r . Тогда I * = -¥ . Доказательство. В силу неположительности коэффициентов g ik для всех i = 1, L, r из (7) следует, что w i ³ 0, i = 1, L, r , при любом u *k ³ 0 . Тогда в соответствии с формулой (8) выбором u*k > 0 можно добиться, чтобы величина I (w) была меньше любого наперед заданного числа. Теорема доказана. Рассмотрим случай, когда K ¹ Æ и для всех номеров k Î K множество I k = {s Î {1, L, r} g sk > 0} ¹ Æ . Для произвольного индекса k Î K определим номер i * из условия vi * gi k * Для величины u = k * vi ì vs ü = min í ý . sÎ I k g î sk þ * g i *k все правые части в равенствах (7) будут неотрицательны. Действительно, это утверждение очевидно, если g ik £ 0 . Для случая g ik > 0 его справедливость можно проверить из формулы 70 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ w = v - g ik × i vi i Заметим, что w = g i k * * g i *k æ vi vi ×ç çg * è i k g i *k * i* æ vi vi = g ik × ç ç g ik g * i k è * * ö ÷ ³ 0. ÷ ø i ö ÷ = 0 , а величина u *k = v ÷ g i *k ø * – максимально возможная, при которой правые части всех равенств в (7) будут положительны. Определение 6. Элемент g i k > 0 назовем разрешающим элементом * симплекс-таблицы. Таким образом, при u = k * vi * g i *k точка w , строящаяся по формулам (7), принадлежит множеству U и имеет вид: i æ 1 ç v - g 1k × v ç g i *k ç L ç 0 ç ç L * ç i r çv - g × v rk w=ç g i *k ç 0 ç ç L* ç vi ç g i *k ç ç L çç 0 è * ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷. ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷÷ ø (9) Теорема 5. Точка w , определенная формулой (9), является угловой для множества U . Доказательство. Из (9) следует, что базис для точки w Î U могут образовать лишь столбцы A1 ,L, Ai -1 , Ai +1 ,L, Ar , Ak матрицы A . Убедимся в том, * * что они действительно составляют базис. Для этого достаточно доказать их линейную независимость. Пусть для некоторого набора чисел a1 ,L , a i* -1 , a i* +1 ,L , a r , a k выполнено равенство a1 × A1 + L + a i* -1 × Ai* -1 + a i* +1 × Ai* +1 + L + a r × Ar + a k × Ak = 0 . 71 (10) 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Заметим, что æ g 1k ö r ç ÷ L Ar ) × ç L ÷ = å As g sk . ç g ÷ s =1 è rk ø Ak = B × B Ak = ( A1 -1 (11) Подставим (11) в (10): r åa s =1 s ¹ i* s é r ù r As + a k × ê å As g sk ú = å (a s + a k g sk ) As + a k Ai* g i*k = 0 . ë s =1 û s =1* (12) s ¹i Вектора A1 , L , Ai , L , Ar составляют базис точки v , поэтому они линейно * независимы и равенство (12) возможно лишь при a s + a k g sk = 0, s = 1,L , r, s ¹ i * ; a k g i k = 0 . * Коэффициент g i*k > 0 , так как это разрешающий элемент симплекстаблицы. a k = 0, a s = 0, s = 1,L , r, s ¹ i , Тогда что доказывает линейную независимость векторов A1 ,L , Ai -1 , Ai +1 ,L , Ar , Ak , а вместе с тем и теорему. * * Теорема доказана. Из доказанной теоремы 5 вытекает, что w – угловая точка множества U с базисом A1 ,L , Ai -1 , Ai +1 ,L , Ar , Ak . Заметим, что w ¹ v , так как I (w) < I (v ) . Для * * угловой точки w вновь можно составить симплекс – таблицу, провести анализ ее коэффициентов и. т. д. В силу конечности числа угловых точек множества U процесс счета обязательно закончится по одному из критериев, сформулированных в теоремах 3,4. 3.4. Алгоритм симплекс метода. Пусть выполнены предположения относительно канонической задачи линейного программирования, принятые в предыдущем пункте. Приведем последовательность действий реализующих симплекс метод решения этой задачи. 1. Преобразовать ограничения задачи (3.1) к виду (3.4). 2. С помощью формул (3.4) исключить из выражения для целевой функции базисные переменные и привести его к виду (3.6). 72 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 3. Построить симплекс-таблицу, отвечающую симплекс-разложению угловой точки v , т.е. формулам (3.4), (3.6). 4. Провести анализ коэффициентов целевой функции в построенной симплекс таблице: если среди них нет строго положительных коэффициентов, то угловая точка v является решением задачи линейного программирования и вычисления заканчивается. В противном случае перейти к следующему пункту алгоритма. 5. Провести анализ элементов столбцов симплекс-таблицы, располагающихся над строго положительными коэффициентами целевой функции: если хотя бы для одного такого столбца среди его элементов нет строго положительных, то решение является неограниченным, I* = -¥ и вычисления заканчиваются. В противном случае перейти к следующему пункту алгоритма. 6. Определить разрешающий элемент g i k > 0 симплекс таблицы по * правилу, описанному в пункте 3.3. 7. Для угловой точки w , определенной формулой (3.9), выразить ее базисные переменные u 1 , L , u k , L, u r через ее внебазисные переменные * u r +1 ,L, u i ,L, u n . С этой целью в равенствах (3.4) в i -м уравнении выразить * переменную uk u r +1 ,L, u k -1 , u k +1 ,L, u n , u i . * через переменные В результате получится u k = wk - gˆkr +1 × u r +1 - L - gˆki * × u i - L - gˆkn × u n , * (1) где wk = vi * g i* k , gˆ kr+1 = g i *r +1 g i *k , L, gˆ ki * = g i*r +1 g i *k , L, gˆ kn = g i* n g i* k . Подставляя выражения для u k из (1) в остальные уравнения (3.4), выразить оставшиеся базисные переменные точки w через ее внебазисные переменные. В результате будем иметь 73 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ u1 = w1 - gˆ1r +1u r +1 - L - gˆ1i · u i - L - gˆ1nu n , * ………………………………………….. u k = wk - g kr +1u r +1 - L - gˆki * u i - L - gˆknu n , * ………………………………………….. u r = wr - gˆrr +1u r +1 - L - gˆri * u i - L - gˆrnu n . * (2) 8. Перейти к пункту 2 алгоритма, где вместо формул (3.4) использовать формулы (2). Через конечное число итераций либо будет получено решение задачи линейного программирования, либо будет установлено, что решение неограниченно. Заметим, что алгоритм симплекс-метода находит решение обязательно как угловую точку допустимого множества, даже если это решение не является единственным. Пример 5. Решить задачу линейного программирования из примера 2. 1. Столбцы с номерами 2,3,5 образуют базис, поскольку 1 2 3 16 2 5 = 30 ¹ 0 . 26 4 8 Уравнения (1.1) разрешаем относительно переменных x 2 , x 3 , x 5 . Имеем x 2 = 5 - 5 x1 + x 4 , x 3 = 16 - 13x1 + 2 x 4 , x 5 = 6 + 9 x1 - 2 x 4 . 2. Целевая функция, выраженная через внебазисные переменные угловой точки v , имеет вид Таблица 2 I ( x) = 5 - 9 x1 + x4 . x1 x4 С.ч. x2 5* -1 5 x3 13 -2 16 x5 -9 2 6 74 3. Получено симплекс разложение для угловой точки 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ æ0ö ç ÷ ç5÷ v = ç16 ÷ . ç ÷ ç0÷ ç6÷ è ø Занесем коэффициенты этого разложения в симплекс-таблицу (таблица 2). 4. Строка симпликс-таблицы, отвечающая целевой функции, содержит строго положительные элементы (первый). Следовательно, угловая точка v не является решением задачи линейного программирования, и требуется перейти к следующему пункту алгоритма. 5. Строго положительный элемент в строке целевой функции единственный. Среди элементов столбца симплекс-таблицы, содержащего этот элемент, имеются строго положительные (первый и второй) элементы. Следовательно, решение задачи линейного программирования конечно, и требуется перейти к следующему пункту алгоритма. 6. Разрешающий элемент симплекс-таблицы определяется по правилу, описанному в пункте 3.3. В таблице 2 он отмечен символом «*». 7. Переменную x 2 выводим из числа базисных, а переменную x1 вводим в их число. В результате получим: 1 1 13 3 9 1 x1 = 1 - × x2 + × x4 , x3 = 3 + × x2 - × x4 , x5 = 15 - × x2 - × x4 , 5 5 5 5 5 5 I ( x ) = -4 + 8. Далее, действуя по 9 4 × x2 - × x4 5 5 аналогии, приведем реализующиеся в ходе вычислений симплекс-таблицы. Имеем: 75 последовательно 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Таблица 3 x2 x4 x1` 1 5 - x3 - x5 9 5 Ц.ф. - 13 5 9 5 Таблица 4 С.ч. x2 Таблица 5 x3 .ч. x3 x5 С.ч. 1 4 11 2 3 8 21 4 3 8 111 4 1 5 1 x1` - 2 3 1 3 2 x1` 1 4 3 * 5 3 x4 - 13 3 5 3 5 x2 - 1 5 15 x5 8 * 3 - 1 3 14 x4 9 8 4 5 -4 Ц.ф. 5 3 - 4 3 -8 Ц.ф. - 1 8 9 8 - 5 8 - 67 4 Для последней симплекс – таблицы выполнено условие K = Æ . Тогда в силу æ 11 ö÷ çç ÷ çç 2 ÷÷ ÷÷ çç çç 21 ÷÷÷ ç 4 ÷÷ теоремы 3 угловая точка u* = ççç ÷÷÷ является решением задачи линейного çç 0 ÷÷ çç111 ÷÷÷ çç ÷ çç 4 ÷÷÷ ÷÷ çç çèç 0 ÷ø÷÷ программирования и I * = - 67 . 4 3.5. Существование решения задачи линейного программирования. Рассмотрим задачу 2 линейного программирования в канонической форме без дополнительных предположений, принятых в пункте 3.3. Не теряя общности, будем считать, что b ³ 0 . Действительно, если бы это было не так, то соответствующие равенства в ограничениях задачи следовало бы умножить на 76 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ æ u1 ö ÷ ç çL÷ ç n÷ u z = ç 1 ÷ Î R n+m çw ÷ ÷ ç çL÷ ç wm ÷ ø è (- 1) . В пространстве переменных рассмотрим следующую каноническую задачу линейного программирования: Задача 3. I 1 ( z ) = w1 + L + w m ® min, ì ü æuö z Î Z = í z = çç ÷÷ Î R n + m ( A, E )z = b, z ³ 0 ý . è wø î þ Сформулированную задачу 3 будем называть вспомогательной задачей по отношению к задаче 2. В координатной форме ограничения вспомогательной задачи запишутся в виде a11u1 + L + a1n u n + w1 = b1 , …………………………… am1u1 + L + amnu n + wm = b m , u 1 ³ 0, L, u n ³ 0, w 1 ³ 0,L , w m ³ 0 . Заметим, что для задачи 3 выполнены условия éæ a11 L a1n êç rang [( A, E )] = rang êç M M M ç êëè am1 L amn 1 0 L 0 öù ÷ú æ 0ö M M M M ÷ú = m, Z ¹ Æ , z 0 = çç ÷÷ Î Z , èbø 0 0 L 1 ÷øúû точка z 0 – угловая для множества Z , и последние m ее координат – базисные. В силу неравенства I 1 (z ) ³ 0 для всех z Î Z (случай I 1* = -¥ невозможен) за конечное число итераций симплекс-метод приведет к решению задачи 3. Пусть æv ö z * = çç * ÷÷ – решение этой задачи. Заметим, что точка z * – угловая для множества è w* ø Z . Имеются две возможности: либо I 1 ( z * ) > 0 , либо I 1 ( z * ) = 0 . 77 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В первом случае U = Æ . Действительно, если бы существовала точка u ÎU , æu ö то выполнялось бы z = çç ÷÷ Î Z и I 1 ( z ) = 0 < I 1 ( z * ) , что невозможно. è 0ø Пусть имеет место второй случай. Тогда 0 = I 1 ( z * ) = w*1 + L + w*m . В силу w ³ 0 отсюда выводим w1* = L = w m* = 0 Þ z * = (v * ,0 ) . Покажем, что v* – угловая точка множества U . Неравенство z * ³ 0 влечет за собой неравенство v* ³ 0 , а включение z * Î Z – равенство Av* = b . Таким образом, v * ÎU . Рассмотрим представление точки v * v * = au1 + (1 - a )u 2 , a Î (0,1) , u1 , u 2 Î U . (1) æu ö æu ö Докажем, что оно возможно лишь когда v * = u1 = u 2 . Точки z1 = çç 1 ÷÷, z 2 = çç 2 ÷÷ è0ø è0ø принадлежат Z , а из равенства (1) следует, что z * = az1 + (1 - a ) z 2 . (2) Точка z * – угловая для множества Z , и поэтому ее представление (2) возможно лишь при z * = z1 = z 2 . Тогда v * = u1 = u 2 и точка v* является угловой для допустимого множества исходной задачи. Таким образом, доказано, что если допустимое множество задачи 2 не пустое, то оно содержит угловую точку. В этом случае, не теряя общности, можно считать, что содержат ровно r rang[ A] = r = m . Действительно, ограничения задачи независимых непротиворечивых равенств. Остальные равенства являются их линейными комбинациями и могут быть отброшены. Тогда процедура симплекс метода, описанная в п. 4, позволяет либо получить решение задачи 2 в виде угловой точки допустимого множества, либо установить неограниченность решения. 78 Приведенные выше рассуждения 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ позволяют сформулировать следующие условия существования решения задачи линейного программирования. Теорема 6. Пусть допустимое множество задачи линейного программирования на минимум не является пустым, а целевая функции задачи ограничена снизу на этом множестве. Тогда существует угловая точка допустимого множества, представляющая собой решение задачи линейного программирования. 3.6. Алгоритм программирования. решения Дана канонической задача линейного задачи линейного программирования в канонической форме c1u1 + L + cnu n ® min a11u1 + L + a1nu n = b1 , ................................. (1) am1u1 + L + amnu n = b m . u1 ³ 0,L, u n ³ 0 . Ниже приводится алгоритм решения канонической задачи линейного программирования, базирующийся на результатах, изложенных в п.п. 2-4. 1. Привести ограничения(1) задачи к виду, когда bi ³ 0, i = 1,L, m . 2. Сконструировать вспомогательную задачу I1 (z ) = w1 + L + wm ® min a11u1 + L + a1n u n + w1 = b1 , …………………………… am1u1 + L + amnu n + wm = b m , u 1 ³ 0, L, u n ³ 0, w 1 ³ 0,L , w m ³ 0 . 3. Преобразовать ограничения вспомогательной задачи к виду (3.4). 79 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ w1 = -a11u1 - L - a1nu n + b1 …………………………… (2) wm = -am1u1 - L - amnu n + b m 4. Выполнить пункты 2-8 алгоритма, описанного в п.4. В результате будет найдена угловая точка æv ö z* = çç * ÷÷ Î R n + m , v* Î R n , w* Î R m è w* ø допустимого множества вспомогательной задачи. 5. Провести анализ величины I1 (z* ) ³ 0 : если I1 (z* ) > 0 , то допустимое множество исходной задачи линейного программирование пусто, и эта задача не имеет решения. В противном случае сделать переход на следующий пункт данного алгоритма. 6. Обратиться к последней симплекс-таблице решения вспомогательной æv ö задачи (рис. 8), то есть симплекс-таблице точки z * = çç * ÷÷ , и провести анализ è0ø структуры базиса угловой точки z* . Таблица 6 1 2 3 u r +1 u1 5 6 7 8 9 10 … uk … un w m -r +1 … wm Св. ч. g 1 r +1 … g1k … g 1n g 1 m - r +1 … g 1m v *1 … … … … … … … … … … uj g … g jk … g jn g j m -r +1 … g jm v *j … … … … … … … … … … ur g r r +1 … grk … grn g r m -r +1 … grm v *r w1 g r +1 r +1 … g r +1 k … g r +1 n g r +1 m - r +1 … g r +1 m 0 … … … … … … … … … … j r +1 4 80 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ wi g r + i r +1 … g r+ i k … g r+ i n g r +i m - r +1 … g r+ i m 0 … … … … … … … … … … w m-r g m r +1 … gmk … gmn g m m -r +1 … gmn 0 В базис этой точки могут входить столбцы не только матрицы А, но и столбцы, отвечающие вспомогательным переменным. Пусть в базис точки z * вошли r £ m столбцов матрицы А (не теряя общности, первых r ) и m - r столбцов, отвечающих вспомогательным переменным (не теряя общности первым m - r переменным. В случае, когда вспомогательные переменные не входят в число базисных переменных симплекс-таблица (таблица 6) представлена лишь своей верхней половиной, из таблицы вычеркиваются колонки 7-9. Затем таблицу следует дополнить строкой целевой функции исходной задачи, в которой переменные u 1 ,L , u r выражены через переменные u r +1 , L , u n . В результате будет получена симплекс-таблица, отвечающая угловой точке v* допустимого множества исходной задачи. Далее выполнить пункты 28 алгоритма, описанного в п.4. В противном случае сделать переход к следующему пункту данного алгоритма. 7. Выяснить наличие в колонках 2-6 в нижней половине таблицы строго положительных коэффициентов. Если они есть, то выбрать в качестве разрешающего элемента симплекс-таблицы любой из них и выполнить пункт 7 алгоритма, описанного в п.4. В результате одно вспомогательное переменное перейдет из числа базисных переменных в число внебазисных переменных. Далее вернуться на пункт 7 данного алгоритма. В противном случае сделать переход на следующий пункт данного алгоритма. 8. Отбросить нижнюю часть таблицы, колонки 7-9 и те колонки из числа 2-6, для которых в нижней части таблицы имеются строго отрицательные коэффициенты. Из оставшейся таблицы вычеркнуть нулевые 81 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ строки. Присвоить переменным исходной задачи, отвечающим выброшенным колонкам, значения, равные нулю. В соответствии с полученной таблицей выписать формулы (3.4), в которых учтено присвоение нулевых значений части переменным, и выполнить пункты 2-8 алгоритма, описанного в п.4. Пункты 7-8 алгоритма требуют дополнительного обоснования. В частности, выбор разрешающего элемента в пункте 7, как произвольного строго положительного элемента нижней части симплекс-таблицы в колонках 2-6, возможен в силу того, что свободные члены в нижней части таблицы все равны нулю. Остановимся теперь на случае, когда в колонках 2-6 нижней половины таблицы все коэффициенты неположительные. Покажем, что симплекс-таблица для решения первоначальной задачи получается путем отбрасывания нижней части таблицы, колонок 7-9 и тех колонок с номерами от 2-го до 6-го, для которых в нижней части таблицы имеются строго отрицательные коэффициенты. При этом основные переменные, отвечающие отброшенным колонкам, следует обратить в ноль в ответе исходной задачи. Действительно, симплекс-таблице для угловой точки z * соответствует система равенств uj +g j r +1 u r +1 + L + g jk uk + L + g jn un + g j m - r +1 w m - r +1 + L + g jm wm = v j , j = 1,L , r ; (3) w i + g r + i r +1 u r +1 + L + g r +i k u k + L + g r +i n u n + g r + i m - r +1 w m - r +1 + L + g r + i m w m = 0 i = 1, L , m - r . (4) Полагая в равенствах (3),(4) w s = 0, s = 1, L , m , получим u n = v j , j = 1,L , r , (5) g r +i r +1 u r +1 + L + g r + i k u k + L + g r + i n u n = 0 , i = 1, L, m - r . (6) uj +g j r +1 u r +1 + L + g jk uk +L+ g jn Система соотношений (5), (6) эквивалентна системе ограничений исходной задачи. Это означает, что колонки 7-9 таблицы могут быть отброшены. Равенства (4) и (6) соответствуют нижней половине таблицы. Если для 82 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ некоторого номера i = 1,L, m - r окажется, что все g r + i k = 0, k = r + 1,L , n , то соответствующее равенство превращается в тождество, и его можно отбросить. В силу того, что u k ³ 0, k = r + 1, L , n , неравенство g r + i k < 0 , имеющее место хотя бы для одного i = 1,L, m - r , влечет за собой u k = 0 , поэтому столбец, отвечающий такому номеру k , можно вычеркнуть из таблицы. После вычеркивания в колонках 2-6 нижней части таблицы останутся только нули, и эту часть таблицы можно отбросить. В результате в таблице остаются только основные переменные u 1 ,L , u r . В этом случае rang ( A) = r < m . Из приведенных рассуждений вытекает, в частности, следующее полезное правило заполнения симплекс-таблицы при решении задачи 2: если в процессе применения симплекс-метода какая-либо вспомогательная переменная w j перешла в число внебазисных переменных, то столбец симплекс-таблицы для этой переменной можно сразу же вычеркнуть из таблицы. Проиллюстрируем алгоритм выбора начальной угловой точки на решении конкретной задачи. Пример 6. Решить задачу линейного программирования I (x1 , x 2 , x 3 , x 4 , x 5 ) = -40 x1 + 7 x 2 - 3 x 3 + 6 x 4 + 3 x 5 , 4 x1 + x2 + 2 x3 + x4 + 3x5 = 55, - 17 x1 + 16 x 2 - 4 x 3 + 2 x 4 + 5 x 5 = 46 , - 33x1 + 26 x 2 - 7 x 3 + 4 x 4 + 8 x 5 = 66 , - 108 x1 + 96 x 2 - 21x 3 + 16 x 4 + 35 x 5 = 354 , x1 ³ 0, x 2 ³ 0, x 3 ³ 0, x 4 ³ 0, x 5 ³ 0 . Заметим, что последнее ограничение в форме равенства здесь намеренно взято в виде линейной комбинации первых трех ограничений. По существу задача линейного программирования, сформулированная в этом примере, есть в точности та же задача, что и в примерах 2 и 5. 83 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 1. В данном примере условие b j ³ 0, j = 1,L, 4 уже выполнено. 2. В пространстве переменных x1 , x 2 , x 3 , x 4 , x 5 , w1 , w2 , w 3 , w 4 составим вспомогательную задачу линейного программирования I 1 ( z ) = w1 + w2 + w3 + w4 ® min , 4 x1 + x 2 + 2 x 3 + x 4 + 3 x 5 + w1 = 55 , - 17 x1 + 16 x 2 - 4 x 3 + 2 x 4 + 5 x 5 + w 2 = 46 , - 33x1 + 26 x 2 - 7 x 3 + 4 x 4 + 8 x 5 + w3 = 6 , - 108 x1 + 96 x 2 - 21x 3 + 16 x 4 + 35x 5 + w4 = 354 , x1 ³ 0, x 2 ³ 0, x 3 ³ 0, x 4 ³ 0, x 5 ³ 0, w1 ³ 0, w 2 ³ 0, w3 ³ 0, w 4 ³ 0 . 3. Преобразуем ограничения вспомогательной задачи к виду (3.4) w1 = 55 - 4 x1 - x2 - 2 x3 - x4 - 3x5 , w2 = 46 + 17 x1 - 16 x2 + 4 x3 - 2 x4 - 5 x5 , w3 = 6 + 33 x1 - 26 x2 + 7 x3 - 4 x4 - 8 x5 , w4 = 354 + 108 x1 - 96 x2 + 21x3 - 16 x4 - 35 x5 . 4. Целевая функция вспомогательной задачи, выраженная через основные переменные, имеет вид I1 ( z ) = 521 + 154 x1 - 139 x2 + 30 x3 - 23 x4 - 51x5 . Таким образом, получено симплекс-разложение для угловой точки 84 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ æ 0 ö ÷ ç ç 0 ÷ ç 0 ÷ ÷ ç ç 0 ÷ z * = çç 0 ÷÷ = (0, 0, 0, 0,0 ,55, 46, 66, 354) . ç 55 ÷ ÷ ç ç 46 ÷ ç 66 ÷ ÷÷ çç è 354 ø Решение вспомогательной задачи представлено в виде последовательности симплекс таблиц, приведенной на рис. 9. Заметим, что в процессе решения всякий раз, когда вспомогательная переменная попадала в число внебазисных переменных, соответствующий ей столбец симплекстаблицы вычеркивался. Таблица 7 Таблица 8 x1 x2 x3 x4 x5 С.ч w1 4 1 2 1 3 55 w2 -17 16 -4 2 5 w3 -33 26* -7 4 w4 -108 96 139 Ц.ф -154 x1 x3 x4 x5 С.ч w1 137 26 59 26 11 13 35 13 682 13 46 w2 43 * 13 4 13 - 1 13 70 13 8 66 x2 - 2 13 4 13 33 13 -21 16 35 354 w4 180 13 63 13 16 13 71 13 1434 13 -30 23 51 521 Ц.ф 583 26 193 26 21 13 107 13 2186 13 85 33 26 - 7 26 6 13 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Таблица 9 Таблица 10 С.ч x4 x5 С.ч 17 4 17 8 51 4 3 2 1 4 1 4 x3 x4 x5 w1 153 86 68 43 221 1887 86 43 w1 - x1 4 43 1 43 70 43 x3 43 4 - x2 - 29 86 198 43 x2 13 8 - w4 153 43 w4 - * - 6 43 1 13 43 86 136 43 221 3774 43 43 x1 153 8 153 4 Таблица 11 17 2 x1 x5 С.ч x2 1 2 1 2 8 35 2 x3 4 1 22 3 8 29 4 x4 - 9 1 2 2 3 17 4 51 2 w1 0 0 0 51 8 153 4 Ц.ф 0 0 0 * Ц.ф 459 86 204 43 Последняя 663 5661 86 43 Ц.ф - 459 8 51 4 симплекс-таблица соответствует симплекс-разложению угловой точки æ 0 ö÷ çç ÷ çç 8 ÷÷ çç ÷÷÷ çç 22÷÷ çç ÷÷ çç 3 ÷÷÷ ÷ z* = ççç 0 ÷÷÷ . çç ÷÷ çç 0 ÷÷ çç ÷÷ çç 0 ÷÷÷ çç 0 ÷÷ çç ÷÷ ççè 0 ø÷÷÷ ç ÷÷ Эта точка является решением вспомогательной задачи, поскольку все коэффициенты строки целевой функции неположительные. 86 в симплекс-таблице 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 5. Значение целевой функции вспомогательной задачи в точке z* равно нулю. Следовательно, допустимое множество исходной задачи непустое. 6. В число базисных переменных угловой точки z* входит вспомогательное переменное w1 . 7. В строке симплекс-таблицы, отвечающей переменной w1 , нет ни строго положительных, ни строго отрицательных элементов. 8. Строка, отвечающая переменной w1 , вычеркивается из симплекс таблицы. Полученной таблице соответствует следующая система ограничений: x3 = -4 x1 - x5 + 22, x2 = - 12 x1 - 12 x5 + 8, x4 = 92 x1 - 12 x5 + 3. Выразим целевую функцию исходной задачи через переменные x1 , x5 I ( x) = 8 - 9 1 × x1 - × x 5 2 2 и завершим решение Таблица 12 Таблица 13 x1 x5 С.ч. x3 4* 1 22 x2 1 2 1 2 x4 - Ц.ф. 9 2 9 2 x3 x5 С.ч. x1 1 4 1 4 11 2 8 x2 - 3 8 21 4 1 2 3 x4 9 8 13 8 111 4 1 2 8 Ц.ф. 87 - 1 8 9 8 - 5 8 - 67 4 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Последняя симплекс таблица ( таблица 13) совпадает с таблицей 5, что означает совпадение решений задач линейного программирования в данном примере и примере 5. 3.7. Решение задачи линейного программирования на ЭВМ. Симплекс метод является универсальным средством решения задач линейного программирования. Существует разнообразное и хорошо зарекомендовавшее себя программное обеспечение, реализующее алгоритм этого метода. В данном пособии решение использованием конкретных системы числовых Mathematica примеров 4.2 путем осуществлялось применения с команд ConstrainedMin [ ], и ConstrainedMax [ ]. Для применения указанных команд требуется, чтобы задача линейного программирования была записана в следующей форме: Задача 4. I (u ) = c1u1 + L + cn u n ® min (max), u Î R n , a11 u 1 + L + a1n u n £ b 1 , …………………….. a m1 u 1 + L + a mn u n £ b m , am +11u1 + L + am+1n u n ³ b m+1 ……………………… ak1u1 + L + akn u n ³ b k ak +11u1 + L + ak +1n u n = b k +1 , ……………………… a s1u 1 + L + a sn u n = b s u1 ³ 0,L, u n ³ 0. Заметим, что задача 4 является частным случаем общей задачи 2.1. Ее особенность состоит в том, что все переменные этой задачи должны быть 88 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ положительными. Однако данный факт не является препятствием для решения общей задачи линейного программирования посредством команд ConstrainedMin [ ], и ConstrainedMax, [ ], поскольку в силу пункта 2.2 любую переменную произвольного знака можно заменить на разность двух положительных переменных. Пример 7. Решить следующую задачу линейного программирования: 2u1 - 2u 2 + 4u 3 + 3u 4 + 2u 5 ® min 4u1 - 2u 2 + 4u 3 + 4u 4 + 5u 5 £ 19, -u1 - 3u 2 + 5u 3 + 7u 4 + u 5 £ 12, -2u1 + 7u 2 + 3u 3 + u 4 + 2u 5 ³ 7, u1 - 7u 2 + 11u 3 + 4u 4 + 2u 5 ³ -11, -u1 + 7u 2 - 3u 3 + 4u 4 + 2u 5 = -8, 2u1 - 6u 2 + 3u 3 + u 4 - 5u 5 = 10, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. Ниже приведен протокол применения команды ConstrainedMin [ ] для решения этой задачи в системе Mathematica 4.2 8 @ ConstrainedMin 2 * u1 - 2 * u2 + 4 * u3 + 3 * u4 + 2 * u5, 4 * u1 - 2u2 + 4 * u3 + 4 * u4 + 5 * u5 Ј 19, - u1 - 3 u2 + 5u3 + 7 * u4 + u5 Ј 12, - 2u1 + 7u2 + 3 u3 + u4 - u5 і 7, u1 - 7 u2 + 11 * u3 + 4 * u4 + 2 * u5 і - 11, - u1 + 7 u2 - 3u3 + 4 * u4 + 2 * u5 == - 8, 2u1 - 6u2 + 3u3 + u4 - 5 * u5 Љ10 , u1, u2, u3, u4, u5 8 : : <D < >> 9634 1059 165 1936 2 , u1 ® , u2 ® , u3 ® , u4 ® , u5 ® 0 697 697 697 697 41 Упражнения для самостоятельной работы 1. Решить следующие задачи линейного программирования графическим методом: 89 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ а) 2u1 + u 2 + 6u 3 - u 4 - 9u 5 ® max 3 x - 2 y ® max, -x + 2 y ³ 2, u1 + u 2 + 7u 3 - 3u 4 - 7u 5 = 13, б) u1 + 2u 2 + 13u 3 + 2u 4 -14u5 = 20, 7 x + 10 y £ 28, x ³ 0, y ³ 0. u1 + 3u 2 + 20u 3 + 6u 4 - 23u 5 = 19, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. ìï üï æ 1ö ïï ïï çç u ÷÷ 2. Пусть U = ïíu = çççL÷÷÷÷ Î R n ai , u £ bi , i = 1,L, m, m ³ nïý . Показать, что точка ïï ïï çç n ÷÷ u ø÷ ï ï è îï þï v Î U будет угловой для множества U тогда и только тогда, когда в ней обращаются в точные равенства не менее чем n неравенств ai , u £ bi , i = 1,L, m , среди которых есть n линейно независимых. 3. Сформулировать правило нахождения разрешающего элемента симплекс таблицы и критерий остановки счета в симплекс-методе. 4. Сформулировать линейного критерий программирования неограниченности на минимум решения симплекс-методом. задачи Дать геометрическую интерпретацию неограниченности решения в плоском случае. 5. Показать, что точка æ 0ö÷ çç ÷ çç 0÷÷ çç ÷÷÷ v = çç1 ÷÷ çç ÷÷÷ çç 2÷÷ çç1 ÷÷ è ø÷ является угловой для допустимого множества в следующей задаче линейного программирования: u1 + 2u 2 + u 3 + 3u 4 + u 5 ® max, u1 + u 2 + 2u 4 + u 5 = 5, u1 + u 2 + u 3 + 3u 4 + 2u 5 = 9, u 2 + u 3 + 2u 4 + u 5 = 6, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. Начав с точки v как с начальной, решить задачу линейного программирования симплекс-методом. 6. Построить начальную угловую точку и решить симплекс-методом следующие задачи линейного программирования: 90 3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ I = 3u1 - 2u 2 + 5u 3 - u 4 + u 5 ® min I = 2u1 - u 2 + 3u 3 + 2u 4 - u 5 ® min u1 + 2u 2 + 3u 3 + u 4 - u 5 = 3, 2u1 + 7u 2 - u 3 + u 4 - u 5 = 2, -7u1 + 2u 2 + u 3 + 2u 4 + u 5 = 8, 2u1 - 5u 2 + u 3 + 2u 4 - 3u 5 = 1, 5u1 + 4u 2 + 3u 3 - u 4 + 2u 5 = 1, 3u1 + 4u 2 - 2u 3 - u 4 + 2u 5 = 1, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. I = -u1 + 2u 2 - 3u 3 + 2u 4 + 3u 5 ® min I = u1 + u 2 - u 3 + 2u 4 + 3u 5 ® min 3u1 - 3u 2 + u 3 + 8u 4 - u 5 = 1, 4u1 + 2u 2 + u 3 + u 4 - u 5 = 2, 2u1 - 2u 2 + 4u 3 - 3u 4 + u 5 = 4, -3u1 - u 2 + 5u 3 - u 4 + 3u 5 = 2, u1 + 5u 2 - u 3 - 5u 4 + 2u 5 = 9, 2u1 + u 2 + u 3 - 2u 4 + 5u 5 = 2, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. u1 ³ 0, u 2 ³ 0, u 3 ³ 0, u 4 ³ 0, u 5 ³ 0. 91 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 4.1. Двойственная программирования. В задача общей к задаче общей задаче линейного линейного программирования, описанной в пункте 2.1, рассмотрим отдельно случаи минимизации и максимизации целевой функции. Задача 1. I (u ) = c, u ® min , u Î R n , A*u £ b* , A**u ³ b** , Au = b , u% ³ 0, . Задача 2. I (u ) = c, u ® max, u Î R n , A*u £ b* , A**u ³ b** , Au = b , u% ³ 0, . Вводя дополнительные обозначения æ v1 ö÷ æv m+1 ÷ö æ k +1 ö çç ÷ çç ççv ÷÷ ÷ ÷ ÷ ÷ v* = ççç L÷÷ , v** = ççç L ÷÷ , v = ççç L ÷÷ , ÷ ÷ çç m ÷÷ çç k ÷÷ çç s ÷÷÷ çè v ÷ø èçv ø÷ èç v ÷ø поставим задачам 1, 2 в соответствие следующие задачи линейного программирования. Задача 3. æ-b* ö÷ çç ÷÷ I Д (v) = ççç b** ÷÷ , ÷÷ çç èç -b ÷ø÷ æ v* ö÷ çç ÷ ççv** ÷÷ ® max , çç ÷÷÷ èçç v ø÷÷ ( A*T v* - A**T v** + AT v ) ³ -ci , i Î {1,L, l} , i (- A*T v* + A**T v** - AT v ) = ci , i Î {l +1, L, n} . i 92 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ v* ³ 0, v** ³ 0 . Задача 4. æ b* ö÷ çç ÷÷ I Д (v ) = ççç-b** ÷÷ , ÷÷ çç èç b ÷ø÷ æ v* ö÷ çç ÷ ççv** ÷÷ ® min , çç ÷÷÷ çèç v ÷ø÷ ( A*T v* - A**T v** + AT v ) ³ ci , i Î {1,L, l} , i (- A*T v* + A**T v** - AT v ) = -ci , i Î {l +1, L, n} . i v* ³ 0, v** ³ 0 . Определение 1. Задачи 3, 4 называется двойственными по отношению к задачам 1, 2 соответственно. Сами задачи 1, 2 при этом называется прямыми. Пример 1. Прямая задача линейного программирования на минимум целевой функции имеет вид u1 + 2u 2 - 3u 3 + 5u 4 - 4u 5 ® min u1 + 2u 2 - 3u 3 + 4u 4 + 6u 5 £ 8, -2u1 + 3u 2 - 4u 3 + u 4 + 5u 5 £ 10, 2u1 + 4u 2 - 3u 3 + 5u 4 - u 5 ³ -7, 2u1 - 4u 2 + 7u 3 + 8u 4 + u 5 ³-3, -4u1 + 6u 2 + 2u 3 - 5u 4 + u 5 = -4, 3u1 - 5u 2 + 2u 3 + u 4 - 4u 5 = 8, u1 ³ 0, u 2 ³ 0, u 3 ³ 0. Запишем для нее двойственную задачу (задача 3). -8v1 -10v 2 - 7v3 - 3v 4 + 4v5 - 8v 6 ® max, v1 - 2v 2 - 2v3 - 2v 4 - 4v5 + 3v6 ³ -1, 2v1 + 3v 2 - 4v 3 + 4v 4 + 6v 5 - 5v 6 ³ -2, -3v1 - 4v 2 + 3v3 - 7v 4 + 2v5 + 2v 6 ³ 3, -4v1 - v 2 + 5v3 + 8v 4 + 5v 5 - v6 = 5, -6v1 - 5v 2 - v3 + v 4 - v5 + 4v6 = -4, v1 ³ 0, v 2 ³ 0, v3 ³ 0, v 4 ³ 0. 93 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Пример 2. Прямая задача линейного программирования на максимум целевой функции имеет вид 2u1 - 2u 2 + 4u 3 + 6u 4 + 9u 5 ® max, 3u1 - 22u 2 - u 3 + 14u 4 -12u 5 £ 5, -14u1 + 5u 2 + 3u 3 + u 4 + 4u 5 £ 22, 12u1 - 4u 2 + 3u 3 + 15u 4 -12u 5 ³ 19, 22u1 -14u 2 + 71u 3 + 4u 4 + 12u 5 ³ -10, 21u1 -16u 2 -14u 3 - 4u 4 + 13u 5 = 18, 4u1 + 17u 2 + 2u 3 + u 4 - 4u 5 = 10, u1 ³ 0, u 2 ³ 0, u 3 ³ 0. Запишем для нее двойственную задачу (задача 4). 5v1 + 22v 2 -19v3 + 10v 4 + 18v5 + 10v 6 ® min, 3v1 -14v 2 -12v3 - 22v 4 + 21v5 + 4v 6 ³ 2, -22v1 + 5v 2 + 4v3 + 14v 4 -16v 5 + 17v 6 ³ -2, -v1 + 3v 2 - 3v3 - 71v 4 -14v 5 + 2v 6 ³ 4, -14v1 - v 2 + 15v3 + 4v 4 + 4v 5 - v6 = -6, 12v1 - 4v 2 -12v3 + 12v 4 -13v5 + 4v 6 = -9, v1 ³ 0, v 2 ³ 0, v 3 ³ 0, v 4 ³ 0. Теорема 1. Задача 1 и задача 3 являются взаимодвойственными. Доказательство. Требуется доказать, что задача двойственная к задаче 3 совпадает с задачей 1. Запишем задачу 3 в координатной форме. Задача 3а I Д (v) = -b1v1 -L- b m v m + b m+1v m+1 + L + b k v k - b k +1v k +1 - L- b s u s ® max , a11v1 + L + am1v m - am+11v m+1 -L- ak1v k + ak +11v k +1 + L + as1u s ³ -c1 , ……………………………………………………………………… a1l v1 + L + aml v m - am+1l v m+1 - L- akl v k + ak +1l v k +1 + L + asl u s ³ -cl , -a1l +1v1 -L- aml +1v m + am+1l +1v m+1 + L + akl +1v k - ak +1l +1v k +1 -L- asl +1u s = cl +1 , ……………………………………………………………………… 94 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ -a1n v1 - L- amn v m + am+1n v m +1 + L + akn v k - ak +1n v k +1 -L- asn u s = cn , v1 ³ 0,L, v m ³ 0, v m +1 ³ 0,L, v k ³ 0 . Эта задача является задачей линейного программирования на максимум целевой функции с n ограничениями. Первые l ограничений имеют форму неравенств, причем со знаком « ³ ». Построим двойственную задачу к задаче 3а. формализмом построения двойственной задачи В соответствии с к задаче линейного программирования на максимум целевой функции (см. задача 4), вектор неизвестных u двойственной задачи должен быть n -мерным и иметь первые l положительных координат æ u1 ö÷ çç ÷ çç L ÷÷ ÷÷ çç çç u l ÷÷÷ u = çç l +1 ÷÷ Î R n , u i ³ 0, i Î {1,L, l } , ççu ÷÷÷ ÷÷ çç çç L ÷÷÷ ççè u n ÷ø÷ ÷÷ ç а целевая функция и ограничения двойственной задачи иметь соответственно вид I (u ) = -å (-ci ) u i + å ci u i = å ci u i = c, u ® max . l n n i =1 i =l +1 i =1 -å a1i u i + å (-a1i ) u i ³ -b1 Þ å a1i u i £ b1 , l n n i=1 i =l +1 i =1 ……………………………………………… -å ami u i + å (-ami ) u i ³ -b m Þ å ami u i £ b m , l n n i=1 i= l +1 i =1 -å (-am+1i ) u i + å am+1i u i ³ b m+1 Þ å am+1i u i ³ b m+1 , l n n i=1 i =l +1 i =1 ………………………………………………… 95 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ -å (-aki )u i + å aki u i ³ b k Þ å aki u i ³ b k , l n n i=1 i=l +1 i =1 å ak +1iu i - å (-ak +1i )u i = -(-bk +1 ) Þ å ak+1iu i = bk +1 , l n n i =1 i=l +1 i=1 ………………………………………………….. å aniu i - å (-ani )u i = -(-b n ) Þ å ani u i = b n . l n n i =1 i= l +1 i=1 Таким образом, построенная задача линейного программирования является задачей 1. Теорема доказана Теорема 2. Задача 2 и задача 4 являются взаимодвойственными. Доказательство. Требуется доказать, что задача двойственная к задаче 4 совпадает с задачей 2. Запишем задачу 4 в координатной форме. Задача 4а I Д (v) = b1v1 + L + b m v m - b m+1v m +1 -L- b k v k + b k +1v k +1 + L + b s u s ® min , a11v1 + L + am1v m - am+11v m+1 -L- ak 1v k + ak +11v k +1 + L + as1u s ³ c1 , ……………………………………………………………………… a1l v1 + L + aml v m - am+1l v m+1 - L- akl v k + ak +1l v k +1 + L + asl u s ³ cl , -a1l +1v1 -L- aml +1v m + am+1l +1v m+1 + L + akl +1v k - ak +1l +1v k +1 - L- asl +1u s = -cl +1 , ……………………………………………………………………… -a1n v1 - L- amn v m + am+1n v m +1 + L + akn v k - ak +1n v k +1 - L- asn u s = -cn , v1 ³ 0,L, v m ³ 0, v m +1 ³ 0,L, v k ³ 0 . Эта задача является задачей линейного программирования на минимум целевой функции с n ограничениями. Первые l ограничений имеют форму неравенств, причем со знаком « ³ ». Построим двойственную задачу к задаче 4а. В соответствии с формализмом построения двойственной 96 задачи к задаче линейного 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ программирования на минимум целевой функции (см. задача 3), вектор неизвестных u двойственной задачи должен быть n -мерным и иметь первые l положительных координат æ u1 ö÷ çç ÷ çç L ÷÷ çç ÷÷ çç u l ÷÷÷ u = çç l +1 ÷÷ Î R n , u i ³ 0, i Î {1,L, l } , ççu ÷÷÷ ÷÷ çç çç L ÷÷÷ ççè u n ÷÷ø÷ ç ÷ а целевая функция и ограничения двойственной задачи иметь соответственно вид I (u ) = å ci u i - å (-ci )u i = å ci u i = c, u ® min , l n n i=1 i =l +1 i=1 -å a1i u i + å (-a1i ) u i ³ -b1 Þ å a1i u i £ b1 , l n n i=1 i =l +1 i =1 ……………………………………………… -å ami u i + å (-ami ) u i ³ -b m Þ å ami u i £ b m , l n n i=1 i= l +1 i =1 -å (-am+1i )u i + å am +1i u i ³ -(-b m +1 ) Þ å am +1i u i ³ b m +1 , l n n i=1 i =l +1 i =1 ………………………………………………… -å (-aki ) u i + å aki u i ³ -(-b k ) Þ å aki u i ³ b k , l n n i=1 i=l +1 i=1 å ak +1iu i - å (-ak +1i )u i = b k +1 Þ å ak +1iu i = bk +1 , l n n i =1 i=l +1 i =1 ………………………………………………….. åa l i =1 ni u i - å (-ani ) u i = b n Þ å ani u i = b n . n n i=l +1 i =1 97 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Таким образом, построенная задача линейного программирования является задачей 2. Теорема доказана. Доказанные теоремы 1,2 позволяют принять следующее соглашение. В паре взаимодвойственных задач прямая задача всегда является задачей на минимум целевой функции, а «двойственная» задача – на максимум целевой функции. 4.2. Функция Лагранжа для задачи линейного программирования. Рассмотрим задачу 1 линейного программирования на минимум целевой функции. Полагаем æ u% ö÷ ïìï ïüï çç ÷ æu1 ö÷ ïï ïï çç ÷ ççu l +1 ÷÷ ï ï ÷ n l ÷ ç % ÷ U = íu = çç ÷÷ Î R u% = çL÷ Î R , u% ³ 0ý , ç ïï ïï çç L ÷÷ ç l ÷÷÷ çèu ÷ø ïï ïï ç n ÷÷÷ çèç u ø÷ ïîï ïþï æ v* ö÷ æ v1 ö÷ æv m +1 ö÷ æv k +1 ö÷ ïìï ïüï ç ÷ ç ç ÷ ÷ ïï ï ççç ** ÷÷ ç ç ç ÷ ÷ ÷ V% = ív = ççv ÷÷ Î R s v* = ççç L÷÷ Î R m , v** = ççç L ÷÷ Î R k -m , v = ççç L ÷÷ Î R s-k ; v* ³ 0, v** ³ 0ïý ïï ïï çç ÷÷ çç m ÷÷ çç k ÷÷ çç s ÷÷ çèç v% ÷ø çèçv ÷ø çèç v ÷ø çèç v ÷ø ï ï îï þï Определение 2.Функция L : U% ´V% ® R1 , определенная формулой L (u , v) = c, u + v* , A*u - b* + v** , - A**u + b** + v , Au - b , u Î U% , v Î V% , называется функцией Лагранжа для задачи 1 линейного программирования. Определение 3. Точка (u0 , v0 ) Î U% ´V% называется седловой точкой функции Лагранжа для задачи 1, если L (u0 , v) £ L (u0 , v0 ) £ L (u , v0 ) (1) для всех u Î U% , v Î V% . Теорема 3. Для того чтобы точка (u0 , v0 ) Î U% ´V% была седловой точкой функции Лагранжа для задачи 1, необходимо и достаточно, чтобы выполнялись следующие условия: L (u0 , v0 ) £ L (u , v0 ) , "u Î U% , (2) v0i ( A*u0 - b* ) = 0, i = 1,L, m, . (3) i 98 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ v0i (- A**u0 + b** ) = 0, i = m + 1,L, k , i (4) v0i ( Au0 - b ) = 0, i = k + 1,L, s . i (5) u0 Î U . Доказательство. Необходимость. Пусть (u0 , v0 ) Î U% ´V% (6) - седловая точка. В силу (1) условие (2) выполнено автоматически. Перепишем левое неравенство (1) с учетом определения функции Лагранжа I (u0 ) + v* , A*u0 - b * + v** , - A**u0 + b** + v , Au0 - b £ £ I (u0 ) + v0* , A*u0 - b* + v0** ,- A**u0 + b** + v0 , Au0 - b Þ 0 £ v0* - v* , A*u0 - b* + v0** - v** , - A**u0 + b** + v0 - v , Au0 - b "v Î V% . (7) Покажем, что точка u0 Î U% принадлежит множеству U (условие(6)), т.е. что точка u0 является допустимой. Возьмем точку vˆ Î R s , такую, что ìïvi + 1 при некоторм i Î {1,L, m}, vˆi = ïí 0 i . ïï v0 для всех остальных i Î 1, , s L { } î Очевидно, что v̂ Î V% . Тогда из неравенства (7) следует (-1)( A*u0 - b* ) ³ 0, i Î {1,L, m} Þ A*u0 £ b* . i Возьмем точку vˆ Î R s такую, что ìïv i + 1 при некоторм i Î {m + 1,L, k } , vˆi = ïí 0 i ïï v0 для всех остальных i Î {1,L, s}. î Очевидно, что v̂ Î V% . Тогда из неравенства (7) следует (-1)(- A**u0 + b** ) ³ 0 i Î {m +1,L, k } Þ A**u0 ³ b** . i Возьмем точку vˆ Î R s такую, что ìïv i + Au - b i ( 0 ) ï vˆ = í 0 ïï v0i ïî i при некоторм i Î {k + 1,L, s} , для всех остальных i Î {1,L, s}. 99 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Очевидно, что v̂ Î V% . Тогда из неравенства (7) следует -( Au0 - b ) ×( Au0 - b ) ³ 0 i Î {k + 1,L, s} Þ Au0 = b . i i Таким образом, u0 Î U . Покажем выполнение условий 3)-5). Возьмем точку vˆ Î R s такую, что ìï 0 vˆi = ïí i ïïîv0 при некоторм i Î {1,L, m} , для всех остальных i Î {1,L, s} . Очевидно, что v̂ Î V% . Тогда из неравенства (7) следует v0i × ( A*u0 - b* ) ³ 0 , i Î {1,L, m} . i С другой стороны, в силу v0i ³ 0, ( A*u0 - b* ) £ 0, имеем i v0i × ( A*u0 - b* ) £ 0 , i Î {1,L, m} . i Таким образом, v0i × ( A*u0 - b* ) = 0 i i Î {1,L, m} , и условия (3) имеют место. Возьмем точку vˆ Î R s , такую, что ïì 0 vˆi = ïí i ïïîv0 при некоторм i Î {m + 1,L, k }, для всех остальных i Î {1,L, s}. Очевидно, что v̂ Î V% . Тогда из неравенства (7) следует, что v0i × (- A**u0 + b* ) ³ 0 , i Î {m + 1,L, k } . i С другой стороны, в силу v0i ³ 0, ( A**u0 - b** ) ³ 0, имеем i v0i × (- A**u0 + b* ) £ 0 , i Î {m + 1,L, k } . i Таким образом, v0i × (- A**u0 + b* ) = 0 , i Î {m + 1,L, k } i 100 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ и условия (4) имеют место. Условия 5) выполняются с очевидностью. Необходимость доказана. Достаточность. Пусть для некоторой точки (u0 , v0 ) Î U% ´V% выполнены условия (2)-(6). Правое неравенство в (1) следует сразу из (2). Докажем выполнение левого неравенства в (1). Для всех u Î U , v Î V% в силу (3)-(5) справедливы равенства ìï-v i A*u - b* i , ( ) ï (v - v )( A u - b) = ïíï ïï 0, î i 0 i * i (v0i - v i )(- A**u - b** ) i ( A*u - b* ) < 0, i ( A*u - b* ) = 0, ìï-v i - A**u + b** i , ) ï ( = ïí ï 0, ïîï i i Î {1,L, m} , ( A**u - b** ) > 0, (8) i ( A**u - b** ) = 0, i i Î {m + 1,L, k } , (v0i - v i )( Au - b ) = 0, i Î {k + 1,L, s} . i (9) (10) Правые части всех равенств (8)-(10) неотрицательны. Тогда суммируя эти равенства при u = u0 , получим å (v m i =1 i 0 - v i )( A*u0 - b* ) + i å (v k i = m+1 i 0 - vi )( A**u0 - b** ) + i å (v s i = k +1 i 0 - vi )( Au0 - b ) = i = (v0* - v* ) , ( A*u0 - b* ) + (v0** - v* ) , (- A**u0 + b** ) + (v0 - v ) , ( Au0 - b ) ³ 0 Þ c, u0 + v0* , A* u0 - b* + v0** , - A**u0 + b** + v0 , Au0 - b ³ ³ c, u0 + v* , A*u0 - b* + v** , - A**u0 + b** + v , Au0 - b = L (u0 , v) Þ L (u0 , v ) £ L (u0 , v0 ) "v Î V% . Теорема доказана. Теорема 4. Пусть (u0 , v0 ) Î U% ´V% - седловая точка функции Лагранжа для задачи 1. Тогда u0 - является решением задачи 1 линейного программирования и при этом справедливо равенство L (u0 , v0 ) = I (u0 ) . 101 (11) 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Доказательство. В процессе доказательства теоремы 3 было установлено, что u0 Î U . Равенство (11) следует непосредственно из соотношений (3)-(5). Правому неравенству в (1) можно придать вид I (u0 ) £ I (u ) + v0* , A*u - b* - v0** , A**u - b** + v0 , Au - b "u Î U% . (12) Для всех u Î U справедливы соотношения A*u - b* £ 0, A**u - b** ³ 0, Au - b = 0 . Тогда в силу v0* ³ 0, v0** ³ 0 из неравенства (12) для всех u Î U следует I (u0 ) £ I (u ) . Теорема доказана. Теорема 5 (Куна-Таккера). Пусть точка u0 Î U является решением задачи 1 линейного программирования. Тогда необходимо существует вектор v0 Î V% такой, что пара (u0 , v0 ) Î U% ´V% образует седловую точку функции Лагранжа для задачи 1 линейного программирования. Доказательство. Введем множества индексов { } { } I * = i Î {1,L, m} ( A*u0 - b* ) = 0 , I ** = i Î {m + 1,L, k } (- A**u0 + b** ) = 0 , i i J% = { j Î {1, L, l } u0j = 0} и построим множество æ e1 ö÷ ïìï ïüï ïï ï ççç ÷÷ i i K = íe = çL÷÷ Î R n ( A*e) £ 0, i Î I * ;( A**e) ³ 0; i Î I ** ; Ae = 0; e j ³ 0, j Î J%ïý . ç ÷ ïï ïï ç n ÷÷ çèe ÷ø ïï ïï î þ Покажем, что для всех e Î K и достаточно малого числа t ³ 0 справедливо включение u0 + te Î U . Действительно, последовательно вычисляем A (u0 + te) = Au0 + tAe = 0 , i Î I * Þ ( A*u0 ) = b*i Þ ( A* (u0 + te)) = ( A*u0 ) + t ( A*e) £ b*i , "t ³ 0 , i i 102 i i 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ i Î I ** Þ ( A**u0 ) = b**i Þ ( A** (u0 + te)) = ( A**u0 ) + t ( A**e) ³ b**i , "t ³ 0 , i i i i j Î J% Þ u0j + te j = te j ³ 0, "t ³ 0 , i Î {1,L, m} \ I * Þ ( A*u0 ) < b*i Þ ( A* (u0 + te)) = ( A*u0 ) + t ( A* e) £ b* i , t Î [0, e] , i i i i i Î {m + 1,L, k } \ I ** Þ ( A**u0 ) > b**i Þ ( A** (u0 + te)) = ( A**u0 ) + t ( A** e) ³ b**i , t Î [0, e] , i i i i j Î {1,L, l } \ J% Þ u0j + te j ³ 0, t Î [0, e] , где e > 0 достаточно мало. Таким образом, u0 + te Î U . В силу того, что точка u0 Î U является решением задачи 1, для нее справедливо неравенство c, u - u0 ³ 0, "u Î U . В частности, для точек u0 + te Î U , где t ³ 0 достаточно мало, имеем c, u0 + te - u0 = t c, e ³ 0 Þ -c, e £ 0, "e Î K . Множество K перепишем в эквивалентной форме æ e1 ö÷ ïìï ïüï çç ÷ ïï ï ÷ K = íe = çççL÷÷ Î R n AI** e £ 0, AI**** e ³ 0; Ae = 0; E%J% e ³ 0ïý . ïï ïï çç n ÷÷ ççèe ÷ø ï ï îï þï Здесь символами AI* и AI** обозначены матрицы, которые получаются из * ** матриц A* и A** путем замены в них всех элементов строк с номерами, соответственно, j Î {1,L, m} \ I * и j Î {m + 1,L, k } \ I ** на нули. Матрица E%J% получается из единичной матрицы n -го порядка путем замены ее диагональных элементов, не находящихся на пересечении строк и столбцов с номерами j Î J% , на нули. Применим теорему 1.28 по отношению к множеству K и вектору -c . Из указанной теоремы следует существование векторов v* Î R m , v * ³ 0, v ** Î R k-m , v ** ³ 0, m% Î R n , m% ³ 0, v0 Î R s-k таких, что -c = AI**T v * - AI****T v ** + AT v0 - E%JT% m% . 103 (13) 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Заметим, что æ m ö æ k ö æ å ai1v i ö÷ çç a v i ÷÷ æ å ai1v i ö÷ çç a v i ÷÷ å å i1 0 ÷ i1 0 ÷ çç * ç ÷÷ çç i=1 ÷÷ çç i =m çç iÎI ** ÷÷ ÷÷ çç iÎI ÷÷ ç ÷÷ ç ÷ ÷ ç T *T * * * ** T ** ÷ ç ç AI * v = çç L ÷÷÷ = çç L ÷÷ = A v0 , AI ** v = çç L ÷÷÷ = çç L ÷÷÷ = A**T v0** , (14) çç ÷÷ ÷÷ ççç i÷ i÷ ÷÷ çç m ÷÷ çç k ÷ ç ÷ a v a v å å in i ç in ç i ÷ çç * çç ** ÷÷ ç a v ÷ ÷÷ ç a v ÷÷ è iÎI ø÷ ççå in 0 ÷÷ èiÎI ø÷ ççå in 0 ÷÷ çè i=1 ø÷ èç i =m ø÷ где ìïv i , ìïv i , i Î I *, i Î I ** , i ïí v0i = ïí v = ïï 0 i Î {1,L, m} \ I * , 0 ïï 0 i Î {M + 1,L, k } \ I ** . î î (15) Из соотношений (14) следует, что равенству (13) можно придать вид -c = A*T v0* - A*T v0** + AT v0 - E%JT% m% . æ *ö çç v0 ÷÷ Полагаем v0 = ççç v0** ÷÷÷÷ Î V% . Тогда для всех u Î U% в силу (16) имеем ç ÷÷ çè v0 ÷ø L (u, v0 ) - L (u0 , v0 ) = = c, u + v0* , A*u - b * + v0** , - A**u + b** + v0 , Au - b - c, u0 - v0* , A*u0 - b* - v0** , - A**u0 + b** - v0 , Au0 - b = = c, u - u0 + v0* , A* (u - u0 ) + v0** , - A** (u - u0 ) + v0 , A (u - u0 ) = = c + A*T v0* - A**T v0** + AT v0 , u - u0 = = -( A*T v0* - A*T v0** + AT v0 - E%JT% m%) + A*T v0* - A**T v0** + AT v0 , u - u0 = = E%JT% m%, u - u0 = E%JT% m%, u ³ 0 . Таким образом, справедливо неравенство L (u , v0 ) ³ L (u0 , v0 ) , "u Î U% . 104 (16) 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Из определения множеств индексов I * , I ** и условий (15) следует, выполнение равенств (2)-(5). Тогда по теореме 3 пара (u0 , v0 ) Î U% ´V% является седловой точкой функции Лагранжа для задачи 1. Теорема доказана. 4.3. Теоремы двойственности и равновесия. Результаты данного пункта относятся к свойствам взаимно двойственных задач. В силу замечания после теоремы 2 их доказательство достаточно проводить только для случая, когда прямая задача является задачей на минимум целевой функции, а двойственная – на максимум. Справедлива следующая теорема, которую обычно называют теоремой двойственности. Теорема 6. Либо обе взаимно двойственные задачи не имеют решения, либо они обе имеют решение и при этом справедливо равенство I (u0 ) = I Д ( v0 ) , где u0 - решение прямой, а v0 - решение двойственной задачи. Доказательство. Выпишем функцию Лагранжа для задачи 1. L (u , v) = c, u + v* , A*u - b* + v** , - A**u + b** + v , Au - b , u Î U% , v Î V% . Рассмотрим вспомогательную задачу. Задача 3* æ-b* ö÷ çç ÷÷ I *Д ( v) = -I Д (v ) = - çç b** ÷÷ , çç ÷ çèç-b ÷÷ø÷ æ v * ö÷ æ b* ö÷ çç ÷ ç ÷ çç v** ÷÷ = ççç-b** ÷÷, ÷ ÷÷ çç ÷÷ çç çè v ÷ø÷ çè b ø÷÷÷ æ v * ö÷ çç ÷ çç v** ÷÷ ® min , çç ÷÷÷ èç v ø÷÷ ( A*T v* - A**T v** + AT v ) ³ -ci , i Î {1,L, l} , i (- A*T v* + A**T v** - AT v ) = ci , i Î {l +1, L, n} , i æ v * ö÷ çç ÷ ÷ v = çç v** ÷÷ Î V% . çç ÷÷ çè v ÷ø÷ 105 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Решение задачи 3* достигается в тех же точках v0 Î V , что и решение задачи 3. При этом I *Д ( v0 ) = -I Д (v0 ) . Выпишем функцию Лагранжа для задачи 3*. Имеем i L*Д (v, u ) = b* , v * - b** , v ** + b , v + å u i éê-( A*T v * - A**T v ** + AT v ) - ci ùú + ë û i =1 l i + å u i éê(- A*T v * + A**T v ** - AT v ) - ci ùú ë û i =l +1 n = b* , v * - b** , v ** + b , v - u, A*T v * - A**T v ** + AT v - c, u = = b* , v * - b** , v** + b , v - u , A*T v* + u, A**T v ** - u, AT v - c, u = = b* , v * - b** , v ** + b , v - A*u, v* + A**u , v ** - Au, v - c, u = = - A*u - b* , v * - - A**u + b** , v ** - Au - b , v - c, u = -L (u, v ) , u Î U% , v Î V% . Пусть u0 Î U - решение задачи 1. Тогда по теореме 5 существует седловая точка (u0 , v0 ) Î U% ´V% функции Лагранжа для этой задачи. Это означает, что для всех (u, v ) Î U% ´V% справедливо двойное неравенство L (u0 , v ) £ L (u0 , v0 ) £ L (u, v0 ) Þ - L*Д (v, u0 ) £ -L*Д (v0 , u0 ) £-L*Д (v0 , u ) Þ L*Д (v, u0 ) ³ L*Д (v0 , u0 ) ³ L*Д (v0 , u ) Þ L*Д ( v0 , u ) £ L*Д (v0 , u0 ) £ L*Д (v, u0 ) . (1) Таким образом, пара ( v0 , u0 ) Î V% ´U% является седловой точкой функции Лагранжа для задачи 3*. Тогда по теореме 4 точка v0 является решением задачи 3* и, следовательно, задачи 3. При этом I Д ( v0 ) = -I *Д ( v0 ) = -L*Д (v0 , u0 ) = L (u0 , v ) = I (u0 ) (2) Обратно, если v0 Î V является решением задачи 3*, то справедливо последнее двойное неравенство в (1). Рассматривая цепочку неравенств (1) в 106 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ обратном направлении, приходим к выводу, что точка u0 является решением задачи 1. При этом снова справедливы равенства (2). Теорема доказана. Пример 3. Приведем решения взаимнодвойственных задач 1, 3 из примера 1 и задач 2, 3 из примера 2. Для первой пары задач имеем I (u0 ) = - 131006 41443 2 3225 3 7323 4 19058 5 15410 , u10 = , u0 = , u0 = , u0 = , u0 = . 5269 5269 5269 5269 5269 5269 IД (v0 )= - 131006 6635 2 505 4 73 5 470 6 7164 , v10 = , v 0 = 0, v 30 = , v0 = , v0 = , v0 = . 5269 5269 479 479 479 5269 Аналогично для второй пары задач I (u0 ) = I Д ( v0 ) = Таким 1192805 8765 2 7164 4 52834 5 59627 , u10 = , u 0 = 0, u 30 = , u0 = , u0 = . 6279 2093 6279 6279 6279 1192805 583 2 2033 3 433 6 42919 , v01 = , v0 = , v0 = 0, v04 = 0, v05 = , v0 = 6279 6279 483 273 6279 . образом, оптимальные значения целевых функций в рассмотренных примерах попарно совпадают между собой. В следующей теореме приводятся условия разрешимости взаимнодвойственных задач. Теорема 7. Для существования решения взаимнодвойственных задач достаточно, чтобы обе взаимно двойственные задачи были допустимыми. Доказательство. В силу теоремы 3.6. достаточно установить ограниченность целевых функций взаимно двойственных задач: для задачи на минимум целевой функции – ограниченность снизу, а для задачи на максимум целевой функции – ограниченность сверху. Имеем I (u ) = c, u = å ci u i = å ci u i + å ci u i ³ å (- A*T v* + A**T v** - AT v ) u i + n l n l i =1 i=1 i =l +1 i =1 + å (- A*T v * + A**T v ** - AT v ) u i = - A*T v * + A**T v ** - AT v , u = n i i =l +1 107 i 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ = - A*T v * , u + A**T v ** , u - AT v , u = - v* , A*u + v** , A**u - v , Au ³ ³ - v * , b* + v** , b** æ-b* ö÷ çç ÷÷ - v , b = çç b** ÷÷ , çç ÷ çè b ÷÷÷ø ç- æ v * ö÷ çç ÷ ** ÷ ççç v ÷÷÷ = I Д (v ) . ç ÷÷ çè v ÷ø (3) Таким образом, I (u ) ³ I Д ( v ), "u Î U , "v Î V . Требуемая ограниченность целевых функций установлена. Теорема доказана. Теорема 8 (равновесия). Пусть u0 Î U и v0 Î V решения взаимно двойственных задач 1 и 3 соответственно. Тогда из неравенства u0i > 0, i Î {1,L, l } следует равенство (-A*T v0* + A**T v0** - AT v0 ) = ci , i из неравенства v i > 0, i Î {1,L, m} - равенство ( A*u0 ) = b*i , i а из неравенства v i > 0, i Î {m + 1,L, k } - равенство ( A**u0 ) = b**i . i Доказательство. Неравенство (3) справедливо при всех u Î U и v Î V . В частности, оно верно и для пары u0 Î U , v0 Î V . По теореме 6 выполняется равенство I (u0 ) = I Д ( v0 ) . Для этой пары все знаки неравенств в (3) следует поменять на знаки равенств. Имеем å ci u0i + å ciu0i = å (- A*T v0* + A**T v0** - AT v0 ) u0i + å (- A*T v0* + A**T v0** - AT v0 ) u0i Þ l n l i =1 i =l +1 i =1 i n i i =l +1 å éêë(- A n i =1 *T i ù v0* + A**T v0** - AT v0 ) - ci ú × u0i = 0 , û - v0* , A*u0 + v0** , A**u0 - v0 , Au0 = - v0* , b* + v0** , b** - v0 , b Þ 108 (4) 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ - v0* , A*u0 - b* + v0** , A**u0 - b** = 0 Þ i é é ** i i* i** * *i ù **i ù ê-( A u0 ) + b ú × v0 + å ê( A u0 ) - b ú × v0 = 0 . å ë û ë û i =1 i= m+1 m k (5) Все слагаемые в равенствах (4) и (5) неотрицательны в силу ограничений задач 1 и 3, следовательно, все они равны нулю. Для слагаемых, содержащих строго положительные вторые сомножители u0i > 0, i Î {1,L, l } , v i > 0, i Î {m + 1,L, k } , v i > 0, i Î {m + 1,L, k } последнее утверждение выполняется, только в том случае, если первый сомножитель слагаемого равен нулю. Теорема доказана. Пример 4. Рассмотрим взаимно двойственные задачи из примера 2 и выпишем их решения. u10 = v01 = 8765 2 7164 4 52834 5 59627 , u 0 = 0, u 30 = , u0 = , u0 = , 2093 6279 6279 6279 583 2 2033 3 433 6 42919 , v0 = , v0 = 0, v04 = 0, v05 = , v0 = . 6279 483 273 6279 По теореме 8 первые два ограничения прямой задачи на оптимальном векторе должны выполняться со знаком «=», а следующие два со знаком «>». Действительно, 8765 7164 52834 59627 - 22 × 0 + 14 × - 12 × = 5, 2093 6279 6279 6279 8765 7164 52834 59627 -14 × + 5 × 0 + 3× + +4× = 22, 2093 6279 6279 6279 8765 7164 52834 59627 202484 12 × - 4 × 0 + 3× + 15 × - 12 × = > 19, 2093 6279 6279 6279 2093 8765 7164 52834 59627 6591932 22 × - 14 × 0 + 71 × + 4× + 12 × = > 10. 2093 6279 6279 6279 6279 3× По той же теореме 8 первое и третье ограничение двойственной задачи на оптимальном векторе должны выполниться со знаком «=», второе со знаком «>». Действительно, 109 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 583 2033 433 42919 - 14 × - 12 × 0 - 22 × 0 + 21 × +4× = 2, 6279 483 273 6279 583 2033 433 42919 2526 -22 × + 5× + 4 × 0 + 14 × 0 - 16 × + 17 × = > -2, 6279 483 273 6279 23 583 2033 433 42919 + 3× - 3 × 0 - 71 × 0 - 14 × + 2× = 4. 6279 483 273 6279 3× Упражнения для самостоятельной работы 1. Исследовать задачу линейного программирования u1 + 3u 2 - 8u 3 + 12u 4 + 8u 5 ® min, u1 - 2u 2 + 12u 3 + 3u 4 + 7u 5 £ 9, -4u1 + 5u 2 - 3u 3 - u 4 + 10u 5 £ -12, 2u1 - 7u 2 + u 3 - 14u 4 - 3u 5 ³ -5, u1 - 8u 2 - u 3 + 9u 4 + 12u 5 ³ 4, -u1 - u 2 + u 3 - 2u 4 + 3u 5 = -4, 3u1 + 5u 2 + 12u 3 + 4u 4 - 4u 5 = 8, u1 ³ 0, u 2 ³ 0, u 3 ³ 0, по следующей схеме: а) убедиться в том, что она недопустима; б) составить двойственную к ней задачу; в) убедиться в том, что двойственная задача недопустима. 2. Исследовать задачу линейного программирования 2u1 - 7u 2 - 3u 3 + 4u 4 - 8u 5 ® min, 2u1 + 2u 2 + 4u 3 + 4u 4 - 7u 5 £ 10, -2u1 + 4u 2 - 4u 3 + u 4 + 12u 5 £-1, u1 - 4u 2 + 3u 3 - 4u 4 - u 5 ³ -7, 8u1 - 12u 2 - 7u 3 - 8u 4 + u 5 ³ 3, -u1 + u 2 + u 3 - 5u 4 + u 5 = -4, 3u1 + 5u 2 + 12u 3 + 4u 4 - 4u 5 = 8, u1 ³ 0, u 2 ³ 0, u 3 ³ 0. по следующей схеме: а) убедиться в том, что она допустима, и найти ее решение; б) составить двойственную к ней задачу; 110 4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ в) убедиться в том, что двойственная задача допустима, и найти ее решение; г) проверить совпадение оптимальных значений целевых функций в прямой и в двойственной задачах; д) проверить справедливость теоремы 8 (равновесия) для данной задачи. 111 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР 5.1. Общее описание антагонистической игры. Антагонистическая игра представляет собой математическую модель конфликта между двумя заинтересованными сторонами. Участников конфликта в дальнейшем будем называть игроками. Определение 1. Любое возможное действие игрока называется его стратегией. Множество всех стратегий первого игрока обозначим символом {U } , а второго - {V } . В процессе конфликта каждый игрок выбирает свою стратегию U Î {U } , V Î {V } , в результате чего складывается пара стратегий W = (U ,V ) . Определение 2. Пара стратегий W = (U ,V ) называется ситуацией. Множество всех ситуаций является декартовым произведением множеств {U } и {V } . Оно обозначается символом {W } = {U }´{V } . Заинтересованность игроков в ситуации характеризуется некоторым числом I (W ) . Антагонизм конфликта состоит в том, что первый игрок выбором своей стратегии стремится это число минимизировать, а второй игрок – максимизировать. Определение 3. Функция I : {U }´{V } ® R1 называется функцией платы игры. Таким образом, антагонистическая игра двух лиц полностью описывается тройкой ({U }, {V } , I ) . Важнейшим аспектом исследования теории игр является выработка принципов оптимальности поведения игроков. Из определения платы вытекает, что цель первого игрока состоит в ее минимизации, а второго – в максимизации. В дальнейшем, для упрощения изложения, будем предполагать, 112 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР что встречающиеся по ходу дела минимумы и максимумы функции платы существуют. Пусть первый игрок выбрал стратегию U Î {U }. В этом случае самый неблагоприятный исход в игре для него будет иметь место, если второй игрок применит стратегию V (U )Î {V }, найденную из условия I (U ,V (U )) = max I (U ,V ) . (1) V Î{V } Функция I (1) : {U } ® R 1 , задаваемая равенством I (1 ) (U ) = max I (U ,V ) , U Î {U }, V Î{V } характеризует наиболее неблагоприятный результат первого игрока при выборе им той или иной стратегии U Î {U }. Желая предельно обезопасить себя, первый игрок может применить стратегию U 0 Î {U }, определенную равенством I (1 ) (U 0 ) = min I (1) (U ) = min max I (U ,V ) = I * . U Î{U } Определение 4. U Î{U } V Î{V } U 0 Î {U } Стратегию будем называть наилучшей гарантирующей стратегией, а число I * – наилучшим гарантированным результатом в игре первого игрока. Повторяя приведенные рассуждения за второго игрока, приходим к функции I (2 ) : {V }® R 1 , задаваемой равенством I (2 ) (V ) = min I (U ,V ), V Î {V } U Î{U } (2) и характеризующей наиболее неблагоприятный исход игры для второго игрока при выборе им той или иной стратегии V Î {V }, а также к понятиям наилучшей гарантирующей стратегии V 0 Î {V } и наилучшего гарантированного результата I * второго игрока, определяемым условием I (2 ) (V 0 ) = max I (2 ) (V ) = max min I (U ,V ) = I * . V Î{V } V Î{V } U Î{U } Смысл введенных понятий наилучшей гарантирующей стратегии и наилучшего гарантированного результата в игре состоит в следующем. 113 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР Пусть первый (второй) игрок применяет наилучшую гарантирующую стратегию U 0 Î {U } ( V 0 Î {V }). Тогда, как бы не действовал второй (первый) игрок, результат игры для первого (второго) игрока будет не хуже, чем I * ( I * ). Теорема 1. Справедливо неравенство max min I (U ,V ) = I * £ I * = min max I (U ,V ) . V Î{V } U Î{U } (3) U Î{U } V Î{V } Доказательство. Запишем очевидное неравенство I (U ,V ) £ max I (U ,V ) , (4) V ÎV имеющее место для всех U Î {U } и V Î {V } . Возьмем минимум по всем U Î {U } от обеих частей неравенства (4). В результате получим min I (U ,V ) £ min max I (U ,V ) = min I ( ) (U ) = I * . (5) 1 U Î{U } U Î{U } V Î{V } U Î{U } Неравенство (5) справедливо для всех V Î {V } . Возьмем максимум по всем V Î {V } от обеих частей неравенства (5). Учитывая, что правая часть этого неравенства не зависит от стратегии V Î {V } , будем иметь I * = max min I (U ,V ) = max I (2) (V ) £ I * , V Î{V } U Î{U } V Î{V } что и требовалось доказать. Таким образом, «минимакс» всегда не меньше «максимина». В соотношении (3) возможен как знак равенства, так и знак строгого неравенства. Убедимся в этом на конкретных примерах. Пример 1. Пусть U ,V Î R 1 , {U } = {V } = [- 1,1], I (U ,V ) = U × V . Тогда I (1 ) (U ) = max U × V = U Þ I * = 0 , V Î[ -1,1] I (2 ) (V ) = min U × V = - V Þ I * = 0 . U Î[ -1,1] Из равенств (6) и (7) следует, что I * = I * = 0 . Пример 2. Пусть U ,V Î R 1 , {U } = {V } = {- 1,1}, I (U ,V ) = U × V . Тогда 114 (6) (7) 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР I (1 ) (U ) = max U × V = U Þ I * = 1 , (8) I (2 ) (V ) = min U × V = - V Þ I * = -1 . (9) V Î{-1,1} U Î{-1,1} Из равенств (8) и (9) следует, что - 1 = I * < I * = 1 5.2. Седловая точка игры. Цена игры. Подойдем к вопросу об оптимальности поведения игроков в антагонистической игре с несколько иной стороны. Естественно считать оптимальной такую ситуацию, от которой невыгодно отклоняться ни для одного игрока. Определение 5. Ситуация W* = (U * ,V* )Î {W } называется приемлемой для первого (второго) игрока если I (U ,V* ) ³ I (U * ,V* ) , "U Î {U }, ( I (U * ,V ) £ (U * ,V* ) , "V Î {V }). Определение 6. Ситуация W* = (U * ,V* )Î {W } называется равновесной, или ситуацией равновесия, если она приемлема для каждого из игроков. Из определения ситуации равновесия следует, что она удовлетворяет двойному неравенству I (U* ,V ) £ I (U * ,V* ) £ I (U ,V* ) , "U Î {U } , "V Î {V } . (1) Таким образом, равновесная ситуация является седловой точкой функции платы. Двойное неравенство (1) имеет простой физический смысл: единоличное отклонение игрока от равновесной ситуации не приводит к улучшению его выигрыша. Множество всех ситуаций равновесия в игре обозначим символом E ( E Ì {W }). Следующая теорема выражает свойство равноценности ситуаций равновесия в антагонистических играх. Теорема 2. Пусть W* = (U * ,V* ) Î E, W = (U ,V )Î E . Тогда ~ ~ ~ ( ~ ~ I (U * ,V* ) = I U ,V ) и (U ,V~ )Î E, W~ = (U~,V )Î E . * * Доказательство. Из двойного неравенства (10) и условий теоремы следует 115 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР I (U * ,V ) £ I (U * ,V* ) £ I (U ,V* ), "(U ,V )Î {W }, ( ) ( ) ( (2) ) ~ ~ ~ ~ I U ,V £ I U ,V £ I U ,V , "(U ,V ) Î {W }, ~ (3) ~ Положим в (2) слева V = V , справа U = U , а в (3) слева V = V* , справа U = U * . Тогда ( ) ( ) ( ) ( ) (4) ~ ~ I (U ,V ) = I (U ,V ) . Из неравенств (2) и (4) следует, ~ ~ ~ ~ ~ I U * ,V £ I (U * ,V* ) £ I U ,V* £ I U ,V £ I U * ,V , откуда вытекает равенство * * что при любом V Î {V } выполняется ( ) ~ I (U * ,V ) £ I (U * ,V* ) = I U * ,V , а из неравенств (3) и (4) – что при любом U Î {U } выполняется ( ) ( ) ( ) ~ ~ ~ ~ I U * ,V = I U * ,V £ I U ,V . Оба эти неравенства дают ( ) ( ) ~ ~ I (U * ,V ) £ I U * ,V £ I U * ,V , " (U ,V ) Î {W }, что и означает (U * ,V )Î E . Соотношение (U ,V* )Î E получается благодаря ~ ~ аналогичным рассуждениям. Теорема доказана. Установим связь между седловыми точками функции платы и наилучшими гарантирующими стратегиями игроков. Справедливо следующее утверждение. Теорема 3. Для выполнения включения (U * ,V* )Î E необходимо и достаточно, чтобы U * ,V* были наилучшими гарантирующими стратегиями первого и второго игроков соответственно, и имело место равенство I* = I * . (5) Доказательство. Необходимость. Пусть (U * ,V* )Î E и, следовательно, выполнено двойное неравенство (1). Тогда I (U* ,V ) £ I (U * ,V* ) , "V Î {V } Þ max I (U * ,V ) £ I (U * ,V* ) , V Î{V } I (U ,V* ) ³ I (U* ,V* ) , "U Î {U } Þ min I (U ,V* ) ³ I (U * ,V* ) . U Î{U } Таким образом, I * = min max I (U * ,V ) £ max I (U * ,V ) £ I (U* ,V* ) £ min I (U ,V* ) £ max min I (U ,V* ) = I * . (6) U Î{U } V Î{V } U Î{U } V Î{V } V Î{V } U Î{U } Из теоремы 1 следует, что в соотношении (6) все знаки « £ » надо заменить знаками «=». Отсюда следует справедливость необходимости. Достаточность. Из очевидного неравенства 116 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР I (U ,V ) ³ min I (U ,V ) , "U Î {U } , "V Î {V } U Î{U } и определения наилучшей гарантирующей стратегии второго игрока следует, что для всех U Î {U } при V = V* имеет место условие I (U ,V* ) ³ min I (U ,V* ) = max min I (U ,V ) = I * . U Î{U } V Î{V } U Î{U } (7) Аналогично из неравенства I (U ,V ) £ max I (U ,V ), "U Î {U } , "V Î {V } V Î{V } и определения наилучшей гарантирующей стратегии первого игрока следует, что для всех V Î {V } при U = U * имеет место условие I (U * ,V ) £ max I (U* ,V ) = min max I (U ,V ) = I * . U Î{U } V Î{V } V Î{V } (8) Из (7) и (8) с учетом равенства (5) получим I (U ,V* ) ³ I (U * ,V ) , "U Î {U } , "V Î {V } . (9) Полагая в (9) последовательно U = U * , V = V* , будем иметь I (U ,V* ) ³ I (U * ,V* ) , "V Î {V } , I (U * ,V* ) ³ I (U * ,V ), "V Î {V } . Последние неравенства и означают выполнение двойного неравенства (1). Достаточность доказана. Определение 7. Антагонистическую игру двух лиц, в которой существует седловая точка, будем называть вполне определенной, а величину I 0 = I * = I * – ценой игры. 5.3. Матричные игры. Рассмотрим антагонистическую игру двух лиц, в которой каждый игрок располагает конечным числом различных стратегий. В частности, пусть множество {U } содержит m элементов, а множество {V } - n элементов. Обозначим aij = I (U i ,V j ), U i Î {U } , V j Î {V }, i Î {1,L, m} , j Î {1,L, n} . Вся информация об исходах игры содержится в матрице æ a11 a12 çç çç a a22 A = çç 21 çç L L çç çèam1 am 2 117 L a1n ö÷ ÷ L a2 n ÷÷÷ ÷. L L ÷÷÷ ÷÷ L amn ÷÷ø 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР Процесс игры можно трактовать следующим образом. Игроки независимо друг от друга выбирают ряды матрицы A : первый игрок выбирает строку матрицы, а второй игрок – столбец матрицы. Элемент матрицы A , стоящий на пересечении выбранных рядов, является значением платы в игре. Описанную игру будем называть матричной игрой с матрицей A . Существование седловой точки в матричной игре означает, что наименьший элемент среди наибольших элементов из каждой строки совпадает с наибольшим элементом среди наименьших элементов из каждого столбца. Оптимальными стратегиями игроков будут те ряды матрицы A , на пересечении которых стоит указанный элемент. Цена игры равна значению этого элемента. Пример 3. В матричной игре с матрицей æ2 çç çç-3 A = çç çç 8 çç çè 0 -10ö÷ ÷ -3 ÷÷÷ ÷ 5 -3 1 ÷÷÷ ÷÷ 5 6 7 ø÷÷ 6 4 7 2 существует седловая точка. Она образована стратегией первого игрока, состоящей в выборе второй строки, и стратегии второго игрока, состоящей в выборе второго столбца. Цена игры здесь равна 4. В случае отсутствия седловой точки в игре полезно перейти к расширенной модели конфликта. Следует считать, что игра повторяется много раз. При этом игрока интересует выигрыш не в каждой отдельной партии, а средний выигрыш по многим партиям. Определение 8. «Смешанной» стратегией первого игрока называется вектор æ u1 ö÷ çç ÷ m ÷ u = çç L ÷÷ Î R m , u i ³ 0, i Î {1,L, m} , å u i = 1 . çç ÷÷ i=1 çèu m ÷÷ø Множество всех «смешанных» стратегий первого игрока обозначим символом U. Координату ui вектора u следует понимать как вероятность выбора первым игроком строки матрицы с номером i Î {1,L, m} . Заметим, что частным 118 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР æ 0 ö÷ çç ÷ ççL÷÷ ç ÷÷ случаем «смешанной» стратегии является стратегия вида ui = ççç 1 ÷÷÷ , i Î {1,L, m} , çç ÷÷÷ ççL÷÷ çç 0 ÷÷ è ø÷ где «1» стоит на i - м месте. Стратегия ui предписывает первому игроку во всех партиях выбирать строку матрицы с номером i Î {1,L, m} . Такая стратегия называется «чистой» стратегией первого игрока. Аналогично вводится понятие «смешанной» стратегии для второго игрока. Определение 9. «Смешанной» стратегией второго игрока называется вектор æ v1 ö÷ çç ÷ n ÷ v = ççL÷÷ Î R n , v j ³ 0, j Î {1,L, n} , å v j = 1 . çç ÷÷ j =1 çè v n ÷÷ø Множество всех «смешанных» стратегий второго игрока обозначим символом V . Частным случаем «смешанной» стратегии второго игрока является æ 0 ö÷ çç ÷ ççL÷÷ ç ÷÷ стратегия вида v j = ççç 1 ÷÷÷ , j Î {1,L, n} , где «1» стоит на j - м месте. Стратегия v j çç ÷÷÷ ççL÷÷ çç 0 ÷÷ è ø÷ предписывает второму игроку во всех партиях выбирать столбец матрицы с номером j Î {1,L, n} и называется «чистой» стратегией второго игрока. Применение «смешанных» стратегий игроками состоит в следующем. Каждый из игроков указывает свою стратегию: u Î U , v Î V . После этого выбор конкретных рядов матрицы A в каждой партии осуществляется случайным образом, в соответствии с векторами u, v . Первый игрок минимизирует математическое ожидание платы, а второй его максимизирует. Вероятность того, что в конкретной партии величина платы будет aij , равна u i × v j , 119 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР i Î {1,L, m}, j Î {1,L, n} . Тогда математическое ожидание платы M : U ´V ® R1 , как функция «смешанных» стратегий игроков, имеет вид M (u, v ) = åå aij u i v j = u, Av = AT u , v , u Î U , v Î V . m n i =1 j =1 Определение 10. Антагонистическая игра двух лиц (U ,V , A) называется матричной игрой в «смешанных» стратегиях (с матрицей A ). Седловая точка (u0 , v0 ) Î U ´V в матричной игре в «смешанных» стратегиях удовлетворяет двойному неравенству æ u1 ö÷ æ 1ö çç ÷ çç v ÷÷ ÷ ÷ aij u0i v j £ åå aij u0i v0j £ åå aij u i v0j , "u = çç L ÷÷ Î U , "v = ççL÷÷ Î V . åå ç ç ÷ çç m ÷÷ çç n ÷÷÷ i =1 j =1 i =1 j =1 i =1 j =1 èu ø÷ èu ÷ø m n m n m n (1) Покажем, что в двойном неравенстве (1) перебор всех «смешанных» стратегий игроков достаточно проводить лишь по множеству «чистых» стратегий. Действительно, справедливо следующее утверждение. Теорема 4. Пара «смешанных» стратегий (u0 , v0 ) Î U ´V образует седловую точку в матричной игре тогда и только тогда, когда выполнено неравенство å aij u0i £ åå aij u0i v0j £ å aij v0j , "j Î {1,L, n} , "i Î {1,L, m} . m i =1 m n i =1 j =1 n (2) j =1 Доказательство. Необходимость. Пусть (u0 , v0 ) Î U ´V - седловая точка. Неравенство (1) справедливо для всех «смешанных» стратегий игроков. В частности, оно будет верно и для «чистых» стратегий ui , v j , i Î {1,L, m}, j Î {1,L, n} . Подставляя эти стратегии в (1), получим двойное неравенство (2). Необходимость доказана. Достаточность. Пусть для некоторой пары стратегий (u0 , v0 ) Î U ´V выполнено условие (2). Перепишем это условие в виде AT u0 £ d n , d m £ Av0 , 120 (3) 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР где d n Î R n , d m Î R m - вектора, координаты которых равны одному и тому же числу u0 , Av0 . Умножим первое неравенство в (3) скалярно на вектор v Î V . Учитывая, что v ³ 0 , имеем n æ n ö AT u0 , v £ d n , v = å u0 , Av0 v j = u0 , Av0 ççç å v j ÷÷÷ = u0 , Av0 . çè j =1 ÷ø j =1 (4) Аналогично, второе неравенство в (3) умножим на вектор u Î U . Учитывая, что u ³ 0 , в результате получим m æ m ö Av0 , u = u , Av0 ³ d m , u = å u0 , Av0 u i = u0 , Av0 çç å u i ÷÷÷ = u0 , Av0 . èç i =1 ø i=1 (5) Из (4) и (5) выводим, что AT u0 , v £ u0 , Av0 £ u, Av0 , "u Î U , "v Î V . Последнее двойное неравенство означает выполнение условия (1) Достаточность доказана. Матрица A игры может быть произвольной матрицей размера m ´ n . Тем не менее, при необходимости можно все ее элементы считать положительными числами. Это следует из следующего утверждения. Лемма 1. Пара стратегий (u0 , v0 ) Î U ´V образует седловую точку в матричной игре с матрицей A тогда и только тогда, когда для любого числа a Î R1 . Эта же пара стратегий образует седловую точку в матричной игре с матрицей A , где матрица A составлена из элементов вида aij = aij + a, i Î {1,L, m}, j Î {1,L, n} Доказательство. Обозначим функцию платы в игре с матрицей A символом M . Тогда для всех u Î U , v Î V имеем M (u, v ) = åå aij u i v j = åå (aij + a ) u i v j = åå aij u i v j + a åå u i v j = m n m i=1 j=1 n m i =1 j =1 n i=1 j =1 m n i =1 j =1 m n m m n m æ n ö = åå aij u i v j + a å u i ççç å v j ÷÷÷ = åå aij u i v j + a å u i = M (u, v ) + a . çè j =1 ÷ø i =1 j =1 i =1 j=1 i=1 i=1 Таким образом, двойное неравенство M (u0 , v ) £ M (u0 , v0 ) £ M (u, v0 ) , u Î U , v Î V 121 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР имеет место тогда и только тогда, когда выполнено двойное неравенство M (u0 , v ) £ M (u0 , v0 ) £ M (u, v0 ) , u Î U , v Î V . Лемма доказана. Справедлива следующая теорема, утверждающая существование седловой точки в матричной игре в «смешанных» стратегиях. Теорема 5 (Джона фон Неймана). Всякая матричная игра в «смешанных» стратегиях имеет седловую точку. Доказательство. Пусть A матрица игры. В силу леммы 1 все элементы матрицы будем считать положительными. Рассмотрим задачу линейного программирования. Задача 1. em , x ® max , AT x £ en , x ³ 0, x Î R m , где en Î R n , em Î R m - вектора, координаты которых равны одному и тому же числу 1. Построим двойственную к ней задачу. Задача 2. en , y ® min , Ay ³ em , y ³ 0, y Î R n . Задача 2 имеет решение y0 , так как она допустима (любой вектор y с достаточно большими положительными координатами удовлетворяет ограничениям), а целевая функция задачи ограничена снизу. По теореме 4.6. тогда и задача 1 имеет решение x0 . При этом справедливо равенство em , x0 = en , y0 = s . Легко видеть, что å x0i = em , x0 = s = en , y0 = å y0j . m n i =1 j =1 (6) Вектор y0 ³ 0 не может быть нулевым и поэтому s > 0 . Тогда вектора 1 1 u0 = x0 , v0 = y0 являются «смешанными» стратегиями первого и второго s s 122 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР игроков соответственно. Покажем, что именно эти стратегии образуют 1 - служит ее ценой. В самом s седловую точку в матричной игре, а величина d = деле, 1 1 AT x0 £ en Þ AT u0 £ en = d n , Ay0 ³ em Þ Av0 ³ em = d m . s s (7) По теореме 4.8 (равновесия) всякий раз из неравенства y0j > 0 следует равенство ( AT x0 ) = 1, j Î {1,L, n} . Отсюда и в силу равенства (6) выводим j x0 , Ay0 = AT x0 , y0 = å ( AT x0 ) y0j = e n , y0 = s . n j (8) j=1 1 s 1 s С учетом u0 = x0 , v0 = y0 из (8) находим su0 , A( sv0 ) = s Þ u0 , Av0 = 1 =d . s (9) Объединяя условия (7) и (9), приходим к неравенствам ( AT u0 ) £ i u0 , Av0 £ ( Av0 ) , i Î {1,L, m} , j å a u £ åå a u v m i =1 i ij 0 m n i =1 j =1 i j ij 0 0 j Î {1,L, n} Þ £ å aij v0j , "j Î {1,L, n} , "i Î {1,L, m} . n j=1 Тогда по теореме 4 смешанные стратегии u0 , v0 образуют седловую точку. Теорема доказана. Пример 5. Рассмотрим матричную игру с матрицей æ1 2 7 2 4 ö÷ çç ÷ çç 2 1 5 3 8 ÷÷ ÷÷ çç A = çç 0 5 5 9 2 ÷÷÷ . ÷÷ çç çç 6 3 2 1 4 ÷÷÷ çç 4 13 46 25 38÷÷ è ø÷ Наименьший элемент среди наибольших элементов из каждой строки равен 6. В то же время наибольший элемент среди наименьших элементов из каждого столбца равен 4. Таким образом, I* = 5 < 6 = I * , и седловая точка в классе чистых стратегий в данной матричной игре не существует. 123 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР Найдем седловую точку в классе смешанных стратегий. Для этого поставим и решим следующие взаимодвойственные задачи линейного программирования: x1 + x 2 + x 3 + x 4 + x 5 ® max, x1 + 2 x 2 + 6 x 4 + 4 x 5 £ 1, 2 x1 + x 2 + 5 x 3 + 3x 4 + 13x 5 £ 1, 7 x1 + 5 x 2 + 5 x 3 + 2 x 4 + 46 x 5 £ 1, 2 x1 + 3x 2 + 9 x 3 + x 4 + 25 x 5 £ 1, 4 x1 + 8 x 2 + 2 x 3 + 4 x 4 + 38 x 5 £ 1, x1 ³ 0, x 2 ³ 0, x 3 ³ 0, x 4 ³ 0, x 5 ³ 0, y1 + y 2 + y 3 + y 4 + y 5 ® min, y1 + 2 y 2 + 7 y 3 + 2 y 4 + 4 y 5 ³ 1, 2 y1 + y 2 + 5 y 3 + 3 y 4 + 8 y 5 ³ 1, 5 y 2 + 5 y 3 + 9 y 4 + 2 y 5 ³ 1, 6 y1 + 3 y 2 + 2 y 3 + y 4 + 4 y 5 ³ 1, 4 y1 + 13 y 2 + 46 y 3 + 25 y 4 + 38 y 5 ³ 1, y1 ³ 0, y 2 ³ 0, y 3 ³ 0, y 4 ³ 0, y 5 ³ 0. Решениями этих задач будут соответственно векторы 22 ö æ 701 çç ÷÷ 13 ÷ çç 1402 ÷ çç ÷÷÷ 117 ÷ x0 = çç 1402 ÷, çç 111 ÷÷ çç 701 ÷÷÷ çç 0 ÷÷ è ø÷ Общее значение целевых 81 ö æ 701 çç ÷÷ çç 0 ÷÷ ç ÷÷÷ 74 ÷ y0 = ççç 701 ÷. çç 35 ÷÷ çç 701 ÷÷÷ çç 8 ÷÷ èç 701 ø÷÷ функций равно смешанные стратегии игроков здесь имеют вид æ 229 ö÷ æ 19 ö÷ çç ÷ çç ÷ 13 ÷ çç 0 ÷÷ çç 396 ÷÷ çç ÷÷÷ ç ÷ 1 1 ç 13 ÷ ÷ u0 = x0 = çç 44 ÷÷ , v0 = y0 = çç 37 99 ÷ , s s çç 35 ÷÷ çç 37 ÷÷÷ çç 198 ÷÷÷ çç 66 ÷÷ çç 4 ÷÷ çç 0 ÷÷ è ø÷ èç 99 ø÷÷ а цена игры равна 1 701 M (u0 , v0 ) = d = = . s 198 124 s= 198 . 701 Оптимальные 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР Проиллюстрируем тот факт, что пара оптимальных смешанных стратегий u0 , v0 образует седловую точку. С этой целью случайным образом выберем смешанные стратегии первого и второго игроков æ 101 ö÷ æ 19 ÷ö çç ÷ çç ÷ çç 307 ÷÷ çç 16 ÷÷ çç ÷÷÷ ç ÷÷ u = çç 151 ÷÷ , v = ççç 181 ÷÷÷ çç 1 ÷÷ çç 7 ÷÷ çç 3 ÷÷÷ çç 18 ÷÷÷ çç 4 ÷÷ çç 5 ÷÷ èç 15 ÷ø÷ èç 18 ÷÷ø и проверим выполнение двойного неравенства M (u0 , v ) £ M (u0 , v0 ) £ M (u , v0 ) . (10) Действительно, M (u0 , v ) = 4181 701 9113 = 3.51936, M (u0 , v0 ) = = 3.5404, M (u, v0 ) = = 9.20505 , и 1188 198 990 неравенство (10) имеет место. Упражнения для самостоятельной работы 1. Матричную игру с матрицей æ0 1 6 çç çç 2 4 5 çç çç 3 2 8 çç çç 3 11 7 çç8 5 9 è 4 ö÷ ÷ 1 ÷÷÷ ÷ 1 8 12÷÷÷ ÷÷ 0 7 5 ÷÷ ÷÷ 4 3 2 ÷ø÷ 5 7 3 4 исследовать по следующей схеме: а) показать, что в игре существует седловая точка в классе «чистых» стратегий; б) найти оптимальные «чистые» стратегии игроков в) определить цену игры. 2. Матричную игру с матрицей æ 2 2 6 3 5 ö÷ çç ÷ çç 3 2 4 4 9 ÷÷ ÷÷ çç çç1 4 6 10 1 ÷÷÷ ÷÷ çç çç7 2 1 2 5 ÷÷÷ çç 3 14 47 24 39÷÷ è ø÷ 125 5. ПРИМЕНЕНИЕ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ТЕОРИИ ИГР исследовать по следующей схеме а) показать, что в игре не существует седловой точки в классе «чистых» стратегий; б) найти оптимальные «смешенные» стратегии игроков; в) определить цену игры (в классе «смешанных» стратегий); г) для произвольных «смешанных» стратегий продемонстрировать выполнение двойного неравенства (3.10) 126 игроков ЛИТЕРАТУРА 1. Алексеев В. М., Тихомиров В. М., Фомин С.В. Оптимальное управление. М.: Наука, 1979. 432 с. 2. Аоки М. Введение в методы оптимизации. М.: Наука, 1977. 344 с. 3. Ашманов С. А. Линейное программирование. М.: Наука, 1981. 304 с. 4. Благодатских В.И. Введение в оптимальное управление. М.: Высшая школа, 2001, 239 с. 5. Воробьев Н. Н. Теория игр для экономистов - кибернетиков. М.: Наука, 1985. 271 с. 6. Васильев Ф. П. Численные методы решения экстремальных задач. М.: Наука, 1988. 549 с. 7. Дьяконов В.П. Математика 4.: Учебный курс. СПб.; М., Харьков, Минск, 2001. 654 с. 8. Кузнецов Ю.Н., Кузубов В.И., Волощенко А.Б. Математическое программирование. М.: Высшая школа, 1980. 300 с. 9. Ермаков В.И. Общий курс высшей математики для экономистов. М.: ИНФРА-М., 2000. 655 с. 10. Карманов В. Г. Математическое программирование. М.: Наука, 1986. 288 с. 11. Лутманов С. В. Конечномерные задачи оптимизации. Пермь: Изд-во ПГУ, 1992. 76 с. 12. Лутманов С.В. Курс лекций по методам оптимизации. Ижевск: РХД 2001. 363 с. 13. Поляк Б. Т. Введение в оптимизацию. М.: Наука, 1983. 384 с. 14. Пшеничный Б.Н. Выпуклый анализ и экстремальные задачи. М.: Наука, 1980. 320 с. 15. Сухарев А.Г., Тимохов А.В., Федоров В.В. Курс методов оптимизации. М.: Наука, 1986. 328 с. 127 Учебное издание Сергей Викторович Лутманов ЛИНЕЙНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ Часть 1 Линейное программирование Учебное пособие Редактор Л.Л. Савенкова Корректор Н.В. Кропотина Компьютерная верстка С.В. Лутманов ИБ № Подписано в печать 15.09.2004 Размер 987 КБ (1 010 688 байта) Редакционно-издательский отдел Пермского Университета. 614990. Пермь, ул. Букирева, 15 Электронный адрес в Интернете: info@psu.ru 128