Новосибирский государственный технический университет Лемешко Борис Юрьевич Теория игр и исследование операций Утверждено Редакционно-издательским советом университета в качестве конспекта лекций 2013 1 УДК 519.8 Л 442 Рецензенты: д-р техн. наук, проф. А.А. Попов; д-р физ.-мат. наук, проф. В.А. Селезнев Работа подготовлена на кафедре прикладной математики для студентов IV курса ФПМИ (направление 010400 – Прикладная математика и информатика, направление 010500 – Математическое обеспечение и администрирование информационных систем). Лемешко, Б.Ю. Л 442 Теория игр и исследование операций: Конспект лекций / Б.Ю. Лемешко. – Новосибирск: Изд-во НГТУ, 2013. – 129 с. ISBN Курс лекций рассчитан на один семестр и предназначен для студентов ФПМИ, но может быть полезен и студентам других специальностей. Настоящее издание должно помочь студентам овладеть элементами теории игр и методами исследования операций. УДК 519.8 ISBN © Б.Ю. Лемешко, 2013 © Новосибирский государственный технический университет, 2013 2 Содержание 1. Введение в исследование операций................................................................................. 4 1.1. Предмет исследования операций .................................................................................................................. 4 1.2. Основные этапы операционного исследования ........................................................................................... 5 1.3. Типичные классы задач.................................................................................................................................. 6 1.4. Некоторые принципы принятия решений в ИО .......................................................................................... 7 1.5. Принятие решений в условиях определенности .......................................................................................... 8 1.6. Методика определения полезности ............................................................................................................ 10 1.7. Принятие решений в условиях риска ......................................................................................................... 14 1.8. Принятие решений в условиях неопределенности .................................................................................... 14 1.9. Принятие решений в условиях конфликтных ситуаций или противодействия ...................................... 20 2. Элементы теории игр ....................................................................................................... 22 2.1. Введение ........................................................................................................................................................ 22 2.2. Стратегии. Нормальная форма игры........................................................................................................... 25 2.3. Ситуации равновесия ................................................................................................................................... 26 2.4. Антагонистические игры. Игры с нулевой суммой ................................................................................... 27 2.5. Нормальная форма ....................................................................................................................................... 29 2.6. Смешанные стратегии .................................................................................................................................. 29 2.7. Теорема о минимаксе ................................................................................................................................... 31 2.8. Вычисление оптимальных стратегий ......................................................................................................... 36 2.9. Игры с ограничениями ................................................................................................................................. 40 2.10. Бесконечные игры ...................................................................................................................................... 41 2.11. Игры на квадрате ........................................................................................................................................ 42 2.12. Игры с непрерывным ядром ...................................................................................................................... 43 2.13. Вогнуто-выпуклые игры ............................................................................................................................ 46 2.14. Игры с выбором момента времени ........................................................................................................... 48 3. Дискретное программирование ..................................................................................... 53 3.1. Введение ........................................................................................................................................................ 53 3.2. Некоторые понятия и определения, используемые в методах отсечения. .............................................. 55 3.3. Лексикографическая модификация метода последовательного уточнения оценок ............................... 57 3.4. Первый алгоритм Гомори ............................................................................................................................ 59 3.5. Доказательство конечности первого алгоритма Гомори .......................................................................... 66 3.6. Второй алгоритм Гомори ............................................................................................................................. 68 3.7. Третий алгоритм Гомори ............................................................................................................................. 77 3.7.1. Построение целочисленного правильного отсечения для 3-го алгоритма Гомори ............................. 78 3.7.2. Построение начальной l-нормальной целочисленной симплексной таблицы ..................................... 80 3.7.3. Алгоритм .................................................................................................................................................... 81 3.7.4. Выбор ...................................................................................................................................................... 82 3.8. Доказательство конечности третьего алгоритма Гомори ......................................................................... 87 4. Дополнительные главы нелинейного программирования ...................................... 90 4.1. Классические методы решения задач оптимизации с ограничениями типа равенств ........................... 90 4.2. Метод множителей Лагранжа ..................................................................................................................... 92 4.3.Теорема Куна-Таккера .................................................................................................................................. 97 4.4. Квадратичное программирование ............................................................................................................. 101 4.4.1. Условия Куна-Таккера для задачи квадратичного програмирования ................................................ 101 4.4.2. Метод Баранкина и Дорфмана ............................................................................................................... 103 4.4.3. Метод Франка и Вулфа ........................................................................................................................... 110 4.5. Метод возможных направлений ................................................................................................................ 116 4.5.1. Метод выбора возможного направления ............................................................................................... 117 4.5.2. Алгоритм метода возможных направлений .......................................................................................... 119 4.6. Метод условного градиента ....................................................................................................................... 120 4.6.1. Правило выбора длины шага .................................................................................................................. 121 4.6.2. Алгоритм метода условного градиента ................................................................................................. 122 4.6.3. Сходимость алгоритма условного градиента ........................................................................................ 122 4.6.4. Метод Ньютона ........................................................................................................................................ 123 4.7. Динамическое программирование ............................................................................................................ 124 Рекомендуемая литература .............................................................................................. 129 3 1. Введение в исследование операций 1.1. Предмет исследования операций Исследование операций (ИО) – наука, которая занимается разработкой и практическим применением методов наиболее эффективного (или оптимального) управления, в основном, организационными системами. Предметом исследования операций чаще всего являются системы организационного типа (организации), которые состоят из большого числа подразделений, взаимодействующих между собой. Причем интересы подразделений не всегда согласуются между собой и могут быть противоположными. Цель исследования операций – количественное обоснование принимаемых решений по управлению организациями (системами). Решение, наиболее выгодное всей организации называется оптимальным. Решение, выгодное одному или нескольким подразделениям – субоптимальное. Надо заметить, что решение, оптимальное для всей организации, необязательно оптимально для входящих в нее подразделений. Исследование операций характеризуется следующими основными особенностями: 1. Системный подход к анализу поставленной проблемы. Системный подход (анализ) является основным принципом исследования операций. Любая задача, какая бы ни была частная, рассматривается с точки зрения ее влияния на критерий функционирования всей системы. 2. Для исследования операций характерно, что при решении каждой новой проблемы возникают все новые задачи. Наибольший эффект достигается при непрерывном исследовании, обеспечивающий преемственность при переходе одной задачи к другой. 3. Стремление к нахождению оптимального решения поставленной задачи. Хотя определение оптимального решения не всегда возможно из-за ограничений, накладываемыми имеющимися в наличии ресурсами (или уровня развития современной науки). В этом случае довольствуются субоптимальным решением. 4. Одним из создателей исследования операций является Т. Саати, который определил ее как ‖искусство давать плохие ответы на те практические вопросы, на которые делаются еще худшие ответы другими методами‖. 5. Исследования всегда проводятся комплексно по многим направлениям. Для проведения такого исследования системы организационного типа создается группа, состоящая из специалистов различного профиля из разных областей (инженеры, экономисты, психологи и т.д.). Задача такой группы – комплексное исследование всего множества факторов, влияю4 щих на решение проблемы, и использования идей и методов различных наук. 1.2. Основные этапы операционного исследования Любое операционное исследование, при всем возможном многообразии конкретных работ по исследованию операций, проходит последовательно следующие этапы: 1. Постановка задачи 2. Построение математической модели 3. Нахождение метода решения (выбор, разработка) 4. Проверка и корректировка модели 5. Реализация найденного решения на практике 1. Постановка задачи. Чрезвычайно ответственный этап операционного исследования. Первоначально задачу формулируют с точки зрения заказчика. Такая постановка никогда не бывает окончательной. Во время анализа исследуемой системы постановка всегда уточняется. На этом этапе роль операций состоит в тщательном исследование объекта, изучении множества факторов, влияющих на результаты исследования процесса. 2. Формализация задачи. В самом общем случае математическая модель задачи имеет вид. Необходимо найти max E max f ( x, y) при g i ( x, y ) bi , i 1, m , где E f ( x, y) – целевая функция (показатель качества или эффективность системы); x – вектор управляемых переменных; y – вектор неуправляемых переменных; g i – функция потребления i-го ресурса bi – величина i-го ресурса 3. Нахождение метода решения. Для нахождения оптимального решения x opt в зависимости от структуры целевой функции и ограничений применяют те или иные методы теории оптимальных решений: Линейное программирование, если f и g – линейные функции. Нелинейное программирование, если f и g – нелинейные функции. Динамическое программирование, если f имеет специфическую структуру, т.е. является аддитивной или мультипликативной функцией от переменных x и y , например, f ( x, y ) n i 1 f i ( xi , y i ) . 5 Геометрическое f (x) i программирование, если целевая функция ci x1 i ... xmm , а g i (x ) 1 . Стохастическое программирование, когда y – случайная величина, а вместо функции f ( x, y ) рассматривается ее математическое ожидание E y [ f ( x, y)] . Дискретное программирование, если на x и y наложено требование дискретности (например, целочисленности). Эвристическое программирование применяют при решение тех задач, в которых точный оптимизм найти алгоритмическим путем невозможно из-за огромного числа вариантов. 4. Проверка и корректировка модели. В сложных системах, к которым относятся и системы организационного типа, модель лишь частично отражает реальный процесс. Поэтому необходима проверка степени соответствия или адекватности модели и реального процесса. Проверку производят сравнением предсказанного поведения с фактическим поведением при изменении значений внешних неуправляемых воздействий. 5. Реализация найденного решения на практике. Важнейший этап, завершающий операционное исследование. 1.3. Типичные классы задач По содержательной постановке наиболее часто возникают следующие типичные классы задач: – Задачи управления запасами. Такие задачи обладают следующей особенностью: с увеличением запасов увеличиваются расходы на хранение, но уменьшаются потери из-за возможной их нехватки. (Логистика) – Задачи распределения ресурсов. Такие задачи возникают, когда существует определенный набор работ, которые необходимо выполнить, а наличных ресурсов для выполнения работы должным образом не хватает. – Задачи ремонта и замены оборудования появляются в тех случаях, когда работающее оборудование изнашивается, устаревает и со временем подлежит замене. – Задачи массового обслуживания рассматривают вопросы образования и функционирования очередей, с которыми приходится сталкиваться в повседневной практике, при управлении технологическими процессами, в линиях связи и компьютерных сетях. – Задачи календарного планирования или составления расписания. – Задачи сетевого планирования и управления. Здесь рассматриваются соотношения между сроком окончания крупного комплекса операций и 6 моментами начала всех операций комплекса. Они актуальны при разработке сложных и дорогостоящих проектов. – Задачи выбора маршрута или сетевые задачи. Чаще всего встречаются при исследовании разнообразных процессов на транспорте и в системах связи (компьютерные сети). Часто задачи оказываются комбинированными. 1.4. Некоторые принципы принятия решений в ИО В процессе принятия решений всегда возникают многочисленные трудности. 1. Большое число критериев, которые не всегда согласованы между собой. Например, требования максимальной надежности и минимальной стоимости; или требование максимальной мощности изделия при минимальных габаритах. Такие критерии противоречивы. Поэтому часто возникает задача выбора некоторого компромисса между такими требованиями. 2. Высокая степень неопределенности, которая обусловлена недостаточной информацией для обоснованного принятия решения. Любой процесс принятия решения включает следующие элементы: Цель. Необходимость принятия решения определяется целью или несколькими целями, которые должны быть достигнуты. Лицо, принимающее решение, должно нести ответственность за последствия этих решений. Наличие альтернативных решений (различных вариантов достижения целей). Наличие внешней среды (совокупности внешних факторов, влияющих на исход решения). Исходы решений, т.е. результаты, к которым приходят в результате реализации принятых решений. Правила выбора решений (решающие правила). Эти правила позволяют определить наиболее предпочтительные в смысле выбранного критерия решения. Решающее правило отражает информированность лица, принимающего решение, о возможных исходах выбранных решений, а также предпочтительность тех или иных исходов. Теория принятия решений использует различные процедуры, позволяющие формализовать предпочтения, т.е. выразить их в единой количественной мере. Основой для таких процедур является теория полезности, разработанная Дж. Фон Нейманом и О. Моргенштерном. Ее математическая основа – система аксиом, в которых утверждается, что существует некоторая мера ценности, позволяющая упорядочить результаты решений. Эта мера называется функцией полезности решений или полезностью. 7 В зависимости от условий внешней среды и степени информированности лица, принимающего решение, существует следующая квалификация задач принятия решений: в условиях определенности; в условиях риска; в условиях неопределенности; в условиях конфликтных ситуаций или противодействия (активного противника). 1.5. Принятие решений в условиях определенности Характеризуется однозначной или детерминированной связью между принятым решением и его исходом. Основная трудность – наличие многих критериев, по которым следует сравнивать исходы. В таких ситуациях возникает задача принятия решения при так называемом ―компромиссном критерии‖. Пусть имеется совокупность критериев F1 ( x) , F2 ( x) , …, Fn (x) , x X . Пусть для определенности все Fi (x) max , тогда можно рас- смотреть следующие случаи: 1. Если все критерии измеряются в одной шкале, то обобщенный критерий F0 ( x) модно записать в виде взвешенной суммы критериев n n F0( x ) wi wi Fi( x ) , 1, i 1 i 1 где wi – вес соответствующего критерия. В этом случае необходимо найти max F0 ( x) x X Если же критерии измеряются в различных шкалах, то необходимо привести их к одной шкале. Для этого формируют критерий n min F0 ( x ) min x X x X wi i 1 Fi( x i ) Fi ( x ) , |Fi( x i )| где Fi( x i*) max Fi ( x) , Fi( x i*) 0 . x X Т.е. требуется свести к минимуму взвешенную величину отклонения каждого критерия от его максимального значения. 8 При таком формировании обобщенного критерия можно добиться высоких показателей по одним критериям за счет ухудшения показателей его другим. 2. Часто требуется, чтобы значения некоторых частных критериев не оказались меньше предельно допустимых значений Fi ( x) Fi доп . Допустим, что по каждому критерию определены значения Fi доп , i 1, n . В таком случае формируемый обобщенный критерий может быть дополнен системой ограничений, и задача принимает следующий вид: n max F0 ( x) max x X x X wi Fi ( x) , i 1 при Fi доп , i 1, n . Fi ( x) 3. Бывает, что критерии упорядочены по предпочтению F1 ( x) F2 ( x) … Fn (x) , тогда задача отыскания оптимального решения может быть записана следующим образом: max F1 ( x) x X при F2 ( x) F2 доп , … Fn ( x) Fn доп . 4. Бывают ситуации, когда критерии F1 ( x) , F2 ( x) , …, Fn (x) могут принимать только два значения (0 или 1): Fi (x) 1, если i-я цель достигнута, Fi (x) 0 − в противном случае. Тогда обобщенный критерий может быть образован логическим объединением отдельных критериев. a) В виде конъюнкции критериев Fi (x) , если общая цель операции состоит в выполнении всех целей одновременно, т.е. n F0 ( x) Fi ( x) . i 1 b) В виде дизъюнкции критериев, когда общая цель достигается, если достигается хотя бы одна частная цель, т.е. n F0 ( x) 1 (1 Fi ( x)) . i 1 9 1.6. Методика определения полезности Очень часто в реальных условиях критерии носят качественный характер и не могут быть выражены в количественной мере. Но решение надо принимать, каким-то образом проранжировав критерии. Это также соответствует принятию решения в условиях определенности. Для принятия решений необходимо установить предпочтения различных критериев (меру полезности) для лица, принимающего решения (Р. Акофф, М. Сасиени). Применение теории полезности основывается на следующих аксиомах: 1. Результат xi оказывается предпочтительнее x j тогда и только тогда, когда U ( xi ) U ( x j ) , где U ( xi ) и U ( x j ) − полезность результатов xi и x j соответственно. 2. Транзитивность. Если xi x j , а x j x k ,то U ( xi ) >U ( xk ) . 3. Линейность. Если некоторый результат x представлен в виде x (1 ) x1 x2 , то полезность его U ( x) (1 )U ( x1 ) U ( x2 ) . 3. Аддитивность. Если U ( x1 , x2 ) - полезность от достижения одновременно результатов x1 и x 2 , то свойство аддитивности означает, что U ( x1 , x2 ) U ( x1 ) U ( x2 ) . Аналогично, если имеется n результатов x1 , x 2 , …, x n , то полезность от одновременного достижения результатов n U ( x1 , x2 ,..., xn ) U ( xi ) i 1 Рассмотрим несколько вариантов методики определения полезности в различных случаях. Эта методика основана на допущении, что если ―чистая ‖ полезность результата x равна U , а вероятность его получения равна p , то общая полезность результата в такой ситуации равна p U . Иначе говоря, безразлично, какой получается результат: с полезностью p U или с полезностью U при вероятности p . Это – принципиальное допущение относительно поведения человека, которое при некоторых обстоятельствах может оказаться несправедливым. Случай I, когда имеется два результата x1 и x 2 . 10 1) Определяем, какой результат предпочтительней для лица, принимающего решение. Пусть x1 x 2 . 2) Затем определяем такую вероятность , при которой достижение результата x1 будет эквивалентно результату x 2 , получаемому с вероятностью 1 (иногда это может быть найдено из условий задачи; иногда может быть найдено на основании оценок экспертов). 3) Оцениваем соотношение между полезностями результатов x1 и x 2 . Для этого примем полезность U ( x2 ) 1 . Тогда U ( x1 ) U ( x2 ) , и, следовательно, U ( x1 ) 1 / . Случай II, когда имеется n возможных результатов x1 , x 2 , …, x n , между которыми установлено отношение предпочтения x1 x 2 … x n . 1) Определяем величину 1 1 2) Аналогично определяем из условия U ( x1 ) U ( x2 ) . 2 2 из условия U ( x2 ) U ( x3 ) и т.д. n 1 U ( xn 1 ) U ( xn ) . 3) Положив полезность наименее предпочтительного варианта x n равной 1, находим U ( xn ) 1 , U ( xn 1 ) 1 / n 1, … n 1 U ( x1 ) 1 / i . i 1 Случай III, когда критерии являются качественными и возможны результаты типа ―да - нет‖ с независимыми полезностями. Предположим, что имеется n возможных результатов x1 , x 2 , …, x n . Методика определения полезности состоит из следующих этапов. 1) Предложить руководителю (эксперту) упорядочить результаты по предпочтительности. Пусть x1 наиболее, а x n наименее предпочтительные результаты. 2) Приписать полезности результата x n значение 1 и предложить руководителю приписать различные числа остальным результатам, опреде11 ляющим их относительную ценность для него (не сообщать этих чисел ему на последующих шагах). 3) Далее составляют таблицу возможных вариантов выбора (комбинаций результатов), достигаемых одновременно, а затем устанавливают их предпочтительность относительно отдельных результатов x1 , x 2 , …, x n : 1 2 3 … … N x1 или x 2 + …+ x n x1 или x 2 + …+ xn 1 x1 или x 2 + …+ xn 2 …………………. …………………. x1 или x 2 + x3 x 2 или x3 + …+ x n x 2 или x3 + …+ xn 1 x 2 или x3 …+ xn 2 …………………. x 2 или x3 + x 4 … xn 2 или xn 1 + x n … … … Рассматривают приведенные варианты выбора, начиная с верхней строки левого столбца. Если левая часть первого варианта выбора предпочтительнее или эквивалентна правой части, то переходят к верхней строке правого столбца (следующего). В противном случае продолжают просмотр столбца. Проверяют числа, полученные на шаге 2, и определяют, удовлетворяют ли они неравенствам, полученным (принятым) на шаге 3. Если обнаруживается несоответствие, то следует в минимально возможной степени изменить числовые оценки так, чтобы они удовлетворяли числовым неравенствам. Пример. Пусть эксперт упорядочивает 5 результатов x1 x 2 … x n , приписав им следующие оценки U 0 ( x1 ) 7 , U 0 ( x2 ) 4 , U 0 ( x3 ) 2 , U 0 ( x4 ) 1.5 , U 0 ( x5 ) 1 . Рассмотрев возможные варианты выбора, он высказал следующее суждение относительно ценности тех или иных комбинаций результатов: 1) x1 x 2 + x3 + x 4 + x5 ; 5) x 2 x3 + x 4 + x5 ; 7) x3 x 4 + x5 2) x1 x 2 + x3 + x 4 ; 6) x 2 x3 + x 4 ; 3) x1 x 2 + x3 + x5 ; 4) x1 x 2 + x3 ; Необходимо произвести оценку полезности результатов так, чтобы удовлетворить всем неравенствам, начиная с самого последнего. Подставляем начальные оценки в неравенство 7): 12 U 0 ( x3 ) 2 U 0 ( x 4 ) U 0 ( x5 ) 2.5 т.е. 7) не выполняется. Тогда изменяем полезность результата x3 : U1 ( x3 ) 3, тогда 7) будет выполняться. После этого проверяем неравенство 6): U 0 ( x2 ) 4 U1 ( x3 ) U 0 ( x4 ) 3 1.5 4.5 . Это неравенство также не выполняется. Примем U1 ( x2 ) 5. Проверяем неравенство 5): U1 ( x2 ) 5 U1 ( x3 ) U 0 ( x4 ) U 0 ( x5 ) 3 1.5 1 5.5 , неравенство выполняется. Проверяем неравенство 4): U 0 ( x1 ) Примем U1 ( x1 ) 7 U 0 ( x2 ) U1 ( x3 ) 5 3 8 . 8.5 . Проверяем неравенство 3): U 1 ( x2 ) 8.5 U 1 ( x2 ) U 1 ( x3 ) U 0 ( x5 ) 5 3 1 9 . Проверяем неравенство 2): 8.5 U1 ( x1 ) 5 3 1.5 9.5 Проверяем неравенство 1): 8.5 5 3 1.5 1 10.5 . Окончательные оценки полезностей: U1 ( x1 ) 8.5 , U1 ( x2 ) 5 , U1 ( x3 ) 3 , U1 ( x4 ) 1.5 , U1 ( x5 ) 1. Ясно, что такая методика становится практически нереализуемой при увеличении числа результатов. Для такой ситуации еѐ авторами предложена следующая модификация методики. Множество результатов разбивают на подмножества, состоящие из 5-7 результатов и имеющие один общий результат, например x1 . Затем приписывают начальные значения полезностям всех результатов, причем полезность общего результата x1 одинакова во всех подмножествах. Далее применяют изложенный способ коррекции оценок полезности независимо в каждом из подмножеств с ограничением U ( x1 ) const . В результате получают систему полезностей с единой мерой U ( x1 ) для всех подмножеств. 13 1.7. Принятие решений в условиях риска Такая задача возникает в том случае, когда с каждой принимаемой стратегией xi связано целое множество различных результатов O1 , O2 , …, Om c известными вероятностями P (O j xi ) . Формально модель задачи может быть представлена в виде следующей матрицы: xi\0j где Lij O2 L12 L22 ….. x1 x2 O1 L11 L21 …… ….. ….. …… xn Ln1 Ln2 …… ….. …… Om L1m L2m Lnm U (O j , xi ) – полезность результата O j при использовании реше- ния xi . Пусть заданы условные вероятности P (O j xi ) , i дят ожидаемую полезность для каждой стратегии m E[U ( xi )] 1, n , j 1, m . Вво- U (O j , xi ) P(O j xi ) , i 1, n . j 1 Решающее правило для определения оптимальной стратегии задаѐтся следующим образом: следует выбрать ту стратегию, которая дает максимальную ожидаемую полезность, т.е. max E[U ( xi )] max E[U ( xi )] . xi i 1,n 1.8. Принятие решений в условиях неопределенности Одним из определяющих факторов в таких задачах является внешняя среда или природа, которая может находиться в одном из состояний S1 , S 2 , …, S k , которые неизвестны лицу (наблюдателю) принимающему решения. Тогда математическую модель задачи в условиях неопределенности можно сформулировать следующим образом. Имеется некоторая матрица L размерности m n с элементами, рассматриваемыми как полезность результата O j при использовании стратегии xi Lij U (O j , xi ) , i 1, n , j 1, m . 14 В зависимости от состояния среды результат O j достигается с вероятностью P (O j xi , S k ) . xi\0j O2 L12 L22 ….. x1 x2 O1 L11 L21 …… ….. ….. …… xn Ln1 Ln2 …… ….. …… Om L1m L2m Lnm Кроме того, наблюдателю неизвестно распределение вероятностей P( S k ) . Относительно состояния среды наблюдатель может высказать только определенные гипотезы. Его предположения о вероятном состоянии среды называются субъективными вероятностями P(S k ) , k 1, K . Если бы величины P( S k ) были известны наблюдателю, то мы бы имели задачу принятия решений в условиях риска, и в этом случае решающее правило для определения стратегии определялось бы следующим образом: m k max xi m U (0 j , xi ) P(0 j xi , S k ) P( S k ) max xi j 1 k 1 U (0 j , xi ) P(0 j xi ) (1) j 1 max E[U ( xi )]. xi На самом же деле состояния среды неизвестны и неизвестно также распределение вероятностей P( S k ) . Как поступить в данном случае? Существует несколько критериев для выбора оптимальной стратегии. Критерий Вальда. Или критерий осторожного наблюдателя. Этот критерий оптимизирует полезность в предположении, что среда находится в самом невыгодном для наблюдателя состоянии. По данному критерию решающее правило имеет следующий вид: max . min U ( xi , S k ) , xi (2) Sk где m U ( xi , S k ) U (0 j , xi ) P(0 j xi , S k ) , i 1, n , k 1, K . j 1 По критерию Вальда выбирают стратегию, которая дает гарантированный выигрыш при наихудшем варианте состояния среды. 15 Критерий Гурвица. Основан на следующих двух предположениях: среда может находиться в самом невыгодном состоянии с вероятностью 1 и в самом выгодном с вероятностью , где коэффициент доверия. Тогда решающее правило записывается следующим образом: max[ max U ( xi , sk ) (1 xi 0 sk )min U ( xi , sk )] , (3) sk 1. Если 0 , то получаем критерий Вальда. Если к решающему правилу вида 1, то приходим max max U ( xi , s k ) . xi (4) sk Это, так называемая, стратегия ―здорового оптимиста‖, который верит в свою удачу. Критерий Лапласа. Если никакой информации о вероятностях состояний среды нет, то все состояния среды считаются равновероятными: P( s1 ) P( s2 ) P( s K ) . В результате решающее правило определяется соотношением (1): m K max E[U ( xi )] max xi xi U ( 0 j , xi ) P ( 0 j xi , S k ) P ( S k ) j 1 k 1 max xi 1 K m (5) K U (0 j , xi ) P(0 j xi , S k ), j 1 k 1 при условии P( S k ) 1 / K . Критерий Сэвиджа. Или критерий минимизации ―сожалений‖. ―Сожаление ― – это величина, равная изменению полезности результата при данном состоянии среды относительно возможного наилучшего состояния. Чтобы определить ―сожаление‖ поступают следующим образом. Строят матрицу U uik , где m uik U ( xi , S k ) u ( xi , O j ) P (O j xi , S k ) , i 1, n, k 1, K . j 1 В каждом столбце этой матрицы находят максимальный элемент uk max uik , который вычитают из всех элементов этого столбца. Далее i строим матрицу сожалений 16 Uc uik uikc . uk Искомую стратегию xi , которая минимизирует ―сожаление‖, определяют из условия (6) min max uikc . xi Sk Этот критерий минимизирует возможные потери при условии, что состояние среды наихудшем образом отличается от предполагаемого. Рассмотрим частный случай задачи в условиях неопределенности, клгда каждому возможному состоянию среды соответствует один возможный исход: jk , где P(O j | S k ) 1, j k ; 0, j k . jk То есть, в данном случае математическая модель задачи принятия решения определяется множеством стратегий {xi } , множеством состояний среды {Sk } и матрицей полезностей xi \ S j x1 x2 … xn … … … … … S2 L12 L22 … Ln2 S1 L11 L21 … Ln1 Sk L1k L2k … Lnk где Lij U ( xi , S j ) . Множество {P(S j )} предполагается неизвестным. В этом случае рассмотренные выше критерии для выбора оптимальной стратегии принимают следующий вид. Критерий Вальда: max min U ( xi , Sk ) . Sk xi Критерий Гурвица: max[ max U ( xi , Sk ) (1 xi sk )min U ( xi , Sk )] . sk Критерий Лапласа: 1 max xi K K U ( xi , S k ) . k 1 Критерий Сэвиджа: min max U c ( xi , S k ) , xi Sk 17 где U c ( xi , S k ) U ( xi , S k ) max U ( xi , S k ) . i Рассмотрим пример использования данных критериев в условиях определенности. Пример. Некоторая фирма решает построить отель в одном из курортных мест. Необходимо определить наиболее целесообразное количество мест или комнат в этой гостинице. Составляют смету расходов по строительству гостиницы с различным количеством комнат, а также рассчитывают ожидаемый доход в зависимости от количества комнат, которые будут сняты. В зависимости от принятого решения – количество комнат в гостинице xi = 20, 30,40,50 и количества снятых комнат S k = 0, 10, 20, 30, 40, 50, которое зависит от множества случайных факторов и неизвестно фирме. Получают следующую таблицу ежегодных прибылей (в условных единицах): Таблица 1. xi \ S j 0 20 30 40 50 -121 -168 -216 -264 10 20 30 40 50 62 14 -33 -81 245 198 150 101 245 380 332 284 245 380 515 468 245 380 515 650 Наиболее подходящее количество комнат в гостинице определим по рассмотренным критериям. Критерий Вальда: max min U ( xi , S k ) Sk xi max min Lik i k max min Lik i 121, k xОПТ 121, 20 . Судя по результату, критерий Вальда неприменим, так как в этом случае от постройки гостиницы следует отказаться. Критерий Лапласа: 1 6 max Lik xi 6k 1 max Li xi max{153,198, 210,193} 210 , 18 где Li - среднее арифметическое по каждой строке таблицы. xОПТ 40 . Критерий Гурвица: max[ max U ( xi , S k ) (1 xi ) min U ( xi , S k )] . k k Для разных можно построить таблицу доходов по критерию Гурвица H hi , , где hi , [ max Lik k (1 ) min Lik ] . k Например, для i 1 max L1k k и при 245 , min L1k 121, k 0.1 h1,0.1 (0.1 245 0.9 ( 121)) 84.4 84 . В совокупности получим: 0.1 84 114 143 172 xi \ 20 30 40 50 0.2 47 59 70 81 0.5 63 108 150 193 0.9 206 325 442 560 Тогда оптимальное количество комнат в гостинице в зависимости от : 0.1 20 xОПТ 0.2 20 0.5 50 0.9 50 Таким образом, будет выбрано 20 комнат, если заказчик пессимист, и 50 комнат, если оптимист. Критерий Сэвиджа: Опираясь на таблицу 1, xi \ S j 20 30 40 50 0 121 168 216 264 10 62 14 33 81 20 30 40 50 245 198 150 101 245 380 332 284 245 380 515 468 245 380 515 650 строят матрицу сожалений: 19 xi \ S j 20 30 40 50 0 0 47 95 145 10 0 48 95 143 20 0 47 95 144 30 135 0 48 96 40 270 135 0 47 max min U c ( xi , S k ) max{ 405, 275, 135, 145} xi Sk таким образом, xОПТ 50 405 275 135 0 135 , 40 . Какое из решений предпочтительнее, определяется выбором критерия. Выбор критерия принятия решения является наиболее сложным и ответственным этапом в исследовании операций. При этом не существует каких-либо общих рекомендаций или советов. Выбор критерия должен производить заказчик на самом высоком уровне и в максимальной степени согласовывать этот выбор с конкретной спецификой задачи, а также со своими целями. В частности, если даже минимальный риск недопустим, то следует применять критерий Вальда. Если наоборот, определенный риск вполне приемлем и заказчик намерен вложить в некоторое предприятие столько средств, чтобы потом не сожалеть, что вложил слишком мало, то выбирают критерий Сэвиджа. При отсутствии достаточной информации для выбора того или иного критерия возможен альтернативный подход, который может быть связан с вычислением шансов на успех или неуспех на основе прошлого опыта. 1.9. Принятие решений в условиях конфликтных ситуаций или противодействия В отличие от задач принятия решений в условиях определенности, риска и неопределенности, в которых внешняя среда (природа) предполагалась пассивной, конфликтные ситуации предполагают наличие, по крайней мере, двух противодействующих сторон, интересы которых противоположны. Упрощенная математическая модель конфликтных ситуаций представляет собой игру. Игра может быть определена следующим образом: Имеются n конфликтных сторон (лиц), принимающих решения, интересы которых не совпадают. Заданы правила, определяющие выбор допустимых стратегий и известные игрокам. 20 Существует точно определенный набор конечных состояний, которыми заканчивается игра (например, выигрыш, ничья, проигрыш). Заранее определены и известны всем игрокам платежи, соответствующие каждому возможному конечному состоянию. Обычно они заданы в виде некоторой матрицы A aij . Практические задачи, в которых встречаются игровые аспекты, чрезвычайно разнообразны. 21 2. Элементы теории игр 2.1. Введение Теория игр есть теория моделей принятия решений, она не занимается этими решениями как психологическими, волевыми актами. Не занимается она и вопросами их практической реализации. В рамках теории игр принимаемые решения выступают как достаточно упрощенные и идеализированные схемы реальных явлений. Наши представления об играх связаны с карточными или ―салонными‖ играми, шахматами, шашками. Такие игры начинаются из некоторого данного положения и состоят из последовательности личных ходов, при каждом из которых один из игроков совершает выбор среди нескольких возможностей. Некоторые ходы могут, кроме того, быть случайными. В шахматах, например, характер ходов определяется, в основном, искусством, а в рулетке – случайностью. В шахматной игре каждый игрок знает любой ход, который был сделан до этого момента, а в бридже – это знание у игрока обычно весьма неполно. На практике это означает, что в момент хода игрок не знает точной позиции и должен делать ход с учетом того, что имеется несколько возможных позиций. В конце игры игроки получают какой-либо выигрыш, который зависит от протекания игры и окончательной позиции. Это примеры позиционных игр. Таким образом, наше представление об игре определяется наличием 3-х элементов: 1) Чередованием ходов, которые могут быть как личными, так и случайными. 2) Возможной недостаточностью информации. 3) Наличием функция выигрыша. С позиционной игрой связывают понятие топологического дерева или дерева игры, представляющего собой конечную совокупность узлов, называемых вершинами, соединенных ребрами, притом так, что получается связанная фигура, не содержащая простых замкнутых фигур. Определение. Под позиционной игрой n лиц понимают следующее: 1. Топологическое дерево Г с выделенной вершиной А, называемой начальной позицией игры. 2. Функция выигрыша, которая ставит в соответствие каждый окончательной позиции дерева некоторый n-мерный вектор (для n игроков). 3. Разбиение множества всех неокончательных позиций (т.е. неокончательных вершин) дерева Г на n+1 множество S 0 , S1 , …, S n , которые называют множествами очередности. Множество S 0 соответствует 22 началу (может быть связано со случайностью), S1 – множество очередности для 1-го игрока (1-ый уровень от А - см. рис. 2.1), и т.д. 4. Вероятное распределение для каждой позиции из S 0 на множестве непосредственно следующих за ней позиций (т.е. из каждой позиции S 0 следуют варианты позиций с некоторой вероятностью). 5. Подразбиение множества S i для каждого i 1, n на подмножества Si j , называемые информационными множествами; при этом позиции из одного и того же информационного множества имеют одинаковое число непосредственно следующих за ними позиций, т.е., альтернатив, и никакая позиция не может следовать за другой позицией из того же самого информационного множества. 6. Для каждого информационного множества Si j задано множество индексов I i j , взаимно однозначно отображающее множество альтернатив (возможных ходов) для каждой позиции из Si j . Рис. 2.1. Дерево игры: А – начальная вершина (позиция), В, С – промежуточные вершины (позиции), Х – окончательная В этом определении перечислены все элементы игры. Условие (1) устанавливает, что имеется начальная позиция. Условие (2) задает функцию выигрыша. Условие (3) разделяет множество неокончательных позиций на позиции с ходом случая ( S 0 ) и личные позиции, соответствующие каждому из n игроков ( S1 , …, S n ). Из позиции множества S i очередь хода принадлежит игроку i . Условие (4) задает схему рандомизации в каждой позиции случая. Условие (5) разбивает позиции каждого игрока на информационные множества (игрок знает лишь, в каком информационном множестве он находится, но не знает, в какой именно позиции этого множества). 23 Поясним понятие информационного множества. Когда игрок выбирает свой ход, он может не знать, в какой позиции игры он находится, так как не знает какой ход или ходы были сделаны раньше. Все такие неразличимые для него позиции объединяются в одно информационное множество. В некотором смысле для игрока это одна и та же позиция, хотя реально они различаются, и дальнейшая эволюция игры зависит от той конкретнной позиции, в которой он находится. Но если игрок не может различать позиции, относящиеся к одному информационному множеству, то и возможные ходы в этих позициях должны быть в определенном смысле одинаковыми. Множество индексов I i j как раз определяет возможные ходы. Такая форма задания игры называется развернутой формой. Пример 2.1. Игра в Орлянку. 1-ый игрок выбирает ―решку‖ ―р‖ или орла ―о‖. Игрок 2, не зная выбора игрока 1, также выбирает ―р‖ или ―о‖. Если оба противника совершают одинаковый выбор, то игрок 2 выигрывает у 1го игрока ―очко‖, в противном случае игрок 1 выигрывает очко у игрока 2. На рисунке 2.2 приведено дерево игры. Векторы при окончательных позициях представляют функцию выигрыша, римские I, II при остальных позициях означают игрока, которому принадлежит очередь хода в этой позиции. Затененная область охватывает позиции из одного информационного множества. Рис. 2.2. Дерево игры в Орлянку Определение. Игра называется парной, если количество сторон (игроков) равно 2. Определение. Игра называется игрой с нулевой суммой, если проигрыш одного игрока равен выигрышу другого. В противном случае она называется игрой с ненулевой суммой. Определение. Игра называется игрой с полной информацией, если результаты случайных ходов и предыдущих личных ходов полностью известны каждому игроку. 24 В соответствии с определением развернутой формы игры это может быть сформулировано следующим образом: Говорят, что i-й игрок имеет полную информацию в игре Г или, что игра Г есть игра с полной информацией для этого игрока, если каждое его информационное множество Si j состоит из одного элемента. Например, шахматы, шашки – это игры с полной информацией, а карты – с неполной. 2.2. Стратегии. Нормальная форма игры В интуитивном понимании стратегия есть некоторый план развертывания игры. Можно считать, что игрок говорит себе: ―Если случится то-то и то-то, то я буду действовать так-то и так-то‖. Определение. Стратегия i-го игрока есть некоторая функция, которая ставит в соответствие каждому информационному множеству Si j этого игрока некоторый индекс из I i j . Будем обозначать множество всех стратегий i-го игрока через i. Вообще говоря, игрок принимает решение о своем ходе в игре обычно в тот момент, когда надо делать этот ход. Однако с чисто теоретической точки зрения можно абстрагироваться от такого практического ограничения и предполагать, что уже до начала игры каждый игрок решил, что он будет делать в каждом случае. Т.е. предполагаем, что каждый игрок выбрал некоторую стратегию уже до начала игры. Поскольку это так, то остается лишь произвести случайные ходы. Более того, все случайные ходы можно объединить в один ход, результат которого вместе с выбранными стратегиями определяет исход игры. Нас, как и игроков, интересует, какие из стратегий являются наилучшими с точки зрения максимизации доли каждого игрока в выигрыше: i-й игрок стремится максимизировать i-ю компоненту функции выигрыша. Так как результаты случайных ходов известны только в вероятностном смысле, то естественно рассматривать математическое ожидание функции выигрыша, определенное в случае, когда игроки используют данный n-набор стратегий, т.е данную ситуацию. Поэтому для описания математического ожидания функции выигрыша при условии, что i-й игрок применяет стратегию xi i , можно использовать следующее обозначение: ( x1 , x2 ,..., xn ) ( 1 ( x1 ,..., xn ), 2 ( x1 ,..., xn ),..., n ( x1 ,..., xn )) Функцию ( x1 , x2 ,..., xn ) на множестве всех возможных значений x1 , …, x n можно выразить либо в форме соотношения, либо в виде n-мерной таблицы n-мерных векторов. В случае n=2 эта запись сводится к матрице, 25 элементами которой являются пары вещественных чисел. Такая n-мерная таблица называется нормальной формой игры. Пример 2.2. Для игры в ―Орлянку‖ нормальной формой игры является матрица ―Р‖ ―О‖ ―Р‖ (−1, 1) (1, −1) ―О‖ (1, −1) (−1, 1) Здесь каждая строка соответствует стратегии игрока 1, а столбец − стратегии игрока 2. Пример 2.3. Рассмотрим следующую игру. Случайно выбирается целое число z с возможными значениями 1, 2, 3, 4, каждое с вероятностью 1 / 4 . Игрок I, не зная результата этого хода, выбирает целое число x. Игрок II, не зная ни z, ни х, выбирает целое число у. Выигрыш определяется следующим образом: ( y z x z , x z y z), т.е. целью является выбор числа, по наболее близкого к z. В этой игре каждый игрок имеет 4 стратегии: 1, 2, 3, 4, так как от других чисел мало проку. Если игрок I выбирает 1, а, игрок II − 3, то выигрыш будет равен (2, -2) с вероятностью 1 / 4 , (0,0) - с вероятностью 1 / 4 и ( 2, 2) с вероятностью 1 / 2 . Ожидаемый выигрыш тогда равен: (1,3) 1 (2, 2) 4 1 (0,0) 4 1 ( 2,2) 4 Подсчитав все значения, получим таблицу: 1 2 3 4 1 (0, 0) (1/2, −1/2) (1/2, −1/2) (0, 0) 2 (−1/2, 1/2) (0, 0) (0, 0) (−1/2, 1/2) ( 1 1 , ). 2 2 3 (−1/2, 1/2) (0, 0) (0, 0) (−1/2, 1/2) 4 (0, 0) (1/2, −1/2) (1/2, −1/2) (0, 0) Определение. Игра называется конечной, если число стратегий всех игроков является конечным. Или. Игра называется конечной, если ее дерево содержит только конечное число вершин. 2.3. Ситуации равновесия Определение. Пусть дана игра Г. Говорят, что ситуация (т.е. какой-нибудь n-набор стратегий) ( x1*, ..., xi *, ..., xn *) равновесна, или, что она является 26 ситуацией равновесия, если для любого i место неравенство i 1, n и для любого xi ( x1*,..., xi 1*, xˆi , xi 1*,..., xn *) i i имеет ( x1*,..., xi *,..., xn *) . Другими словами – ситуация равновесна, если не один игрок не имеет никаких разумных оснований для изменения своей стратегии при условии, что все остальные игроки собираются придерживаться своих стратегий. В этом случае, если каждый игрок знает, как будут играть остальные, он имеет основания придерживаться той стратегии, которая соответствует этой ситуации равновесия. Тем самым игра становится весьма устойчивой. Пример 2.4. Для игры в нормальной форме 1 как ( 1 , 1 ) , так и ( 2 , 2 2 1 (2,1) (0,0) 2 (0,0) (1,2) ) являются ситуациями равновесия. К сожалению, не каждая игра обладает ситуациями равновесия. Например, игра в ―Орлянку‖ такой ситуации не имеет. ―Р‖ ―О‖ ―Р‖ (−1, 1) (1, −1) ―О‖ (1, −1) (−1, 1) Вообще говоря, если игра не имеет ситуаций равновесия, то обычно некоторые игроки пытаются отгадать стратегии остальных игроков, сохраняя собственные стратегии в тайне. Это наводит на мысль, что в играх с полной информацией ситуации равновесия существуют (в конечных играх). Действительно, справедлива следующая теорема: Теорема: Любая конечная игра n лиц с полной информацией имеет ситуацию равновесия. 2.4. Антагонистические игры. Игры с нулевой суммой Определение. Игра называется игрой с нулевой суммой, если в каждой окончательной позиции функция выигрыша ( p1 , p2 , ... , pn ) , где p i – выигрыш i-го игрока в этой позиции, удовлетворяет условию: n pi 0. (1) i 1 27 Вообще говоря, игра с нулевой суммой представляет собой замкнутую систему: все то, что кто-нибудь выиграл, должно быть кем-то проиграно. Игры двух лиц с нулевой суммой называются антагонистическими, или строго конкурентными. В случаях антагонистической игры можно просто задавать первую компоненту вектора выигрышей, тогда вторая компонента равна первой с противоположным знаком. Т.е. первая компонента называется просто выигрышем, это означает, что второй игрок отдает эту сумму первому. В антагонистических играх нет никаких оснований для переговоров между игроками, так как если один выигрывает, то другой проигрывает. Этим антагонистические игры отличаются ото всех остальных. Теорема: Пусть ( 1 , 2 ) и ( 1 , 2 ) – две ситуации равновесия антагонистической игры. Тогда 1) ( 1 , 2 ) и ( 1 , 2 ) также являются ситуациями равновесия и 2) ( 1 , 2 ) (2) ( 1, 2 ) ( 1, 2 ) ( 1, 2 ) . Доказательство. Ситуация равновесна. Следовательно ( 1, 2 ) ( 1, 2 ) ( 1 , 2 ) . Т.е. выбор любой другой стратегии первым игроком, при условии, что второй сохранит стратегию 2 , приводит к худшему результату. С другой стороны, ситуация ( 1 , 2 ) также равновесна. Поэтому ( 1, 2 ) ( 1, 2 ) . Т.е., так как ситуация равновесна, то выбранная вто- рым игроком стратегия 2 увеличивает его проигрыш (следовательно увеличивается выигрыш первого). Таким образом ( 1, 2 ) ( 1, 2 ) ( 1, 2 ) . Но, аналогично получится, если отправляться от ситуации ( 1 , 2 ) : ( 1, 2 ) ( 1, 2 ) ( 1, 2 ) . Из этих двух систем неравенств следует справедливость утверждения (2). Далее, для любого ˆ 1 ( ˆ 1, 2 ) ( 1, 2 ) ( 1, 2 ) и для любого ˆ 2 ( 1, ˆ 2 ) ( 1, 2 ) ( 1, 2 ) . Следовательно, ( 1 , 2 ) является ситуацией равновесия. Аналогично, равновесна и ситуация ( 1 , 2 ) . Эта теорема не имеет места для других игр (т.е., только для антагонистических игр с нулевой суммой). 28 2.5. Нормальная форма Нормальная форма конечной антагонистической игры сводится к некоторой матрице А с числом строк, равным числу стратегий игрока 1 и с числом столбцов, равным числу стратегий игрока 2: A {aij }m n , где аij – величина выигрыша, если 1-й игрок выбирает стратегию i, а 2-й – стратегию j, m – число стратегий первого игрока, n – второго игрока. Ситуация (пара стратегий) будет равновесной тогда и только тогда, когда соответствующий ей элемент аij является одновременно наибольшим в своем столбце и наименьшим в своей строке. Такая ситуация, если она существует, называется седловой точкой. Пример 2.5. Матрица игры с седловой точкой: Пример 2.6. Матрица игры 1 1 5 1 3 3 2 4 . 3 0 1 (*) 1 – не имеет седловой точки. 1 Величина аij представляет собой выигрыш 1-го игрока при его i-й стратегии, если 2-й игрок придерживается своей j-й стратегии. 1-й игрок стремится максимизировать аij, а 2-й – минимизировать. Ни один из игроков не знает заранее стратегии противника. А это имеет большое значение для выбора собственной стратегии. Если матрица игры имеет седловую точку, то очевидно, что 1-й игрок будет использовать эту стратегию, даже, если 2-й игрок еѐ узнает. Иллюстрацией может служить пример *. То есть, если игра с седловой точкой, то еѐ нахождение уже есть решение игры, так как 1-й если игрок выберет эту стратегию, то неважно, знает ли это 2-й игрок. 2.6. Смешанные стратегии Предположим, что мы играем в игру без седловой точки. Например, игра с матрицей 4 2 . 1 3 Предположим, что мы – 1-й игрок. А второй игрок всегда угадывает нашу стратегию. В этой ситуации мы можем гарантировать нижний выигрыш v1 ' max{min aij } . i j 29 Поставим себя на место 2-го игрока, тогда в такой же ситуации (1-й всегда угадывает нашу стратегию) верхний проигрыш определится величиной v2 ' min{max aij } . j i Таким образом, для матричных игр мы имеем понятия нижнего выигрыша и верхнего проигрыша. Легко доказывается, что v1 ' v2 ' . Если имеет место равенство, то получаем седловую точку. Если равенство не имеет места, то получаем игру без седловой точки. Для такой игры не определено, что же в действительности произойдет. Можно ли утверждать, что (при разумном поведении) первый игрок не должен выиграть меньше, чем v1 ' , а второй не должен проиграть больше, чем v2 ' ? Если в игре без седловой точки, мы раскроем противнику свою стратегию, то максимум, на что можем рассчитывать, это v1 ' – нижний выигрыш, если поставим себя на место 1-го игрока, или v2 ' – верхний проигрыш, если – на место 2-го игрока. Если же мы стремимся добиться большего, то нельзя раскрывать свои стратегии. Это трудно осуществить, т.к. если мы выбираем свою стратегию на основании каких-то рассуждений, то ничто не мешает противнику воспроизвести наши рассуждения. Отсюда напрашивается вывод, стратегия должна (может) выбираться случайно (с использованием элементов случайности), не на основании каких-то разумных соображений. Но сама схема рандомизации (ввода случайности) должна выбираться разумно. В этом и состоит идея использования смешанных стратегий. Определение. Смешанная стратегия игрока есть вероятностное распределение на множестве его чистых стратегий. В случае, когда игрок имеет только конечное число m чистых стратегий, смешанная стратегия представляет собой m-мерный вектор x ( x1 ,..., xm ) , удовлетворяющий условиям: xi 0 , (1) m xi 1. (2) i 1 Обозначим множество всех смешанных стратегий игрока 1 через X , а множество всех смешанных стратегий игрока 2 – через Y . Предполагаем, что игроки участвуют в игре с матрицей А. Если 1-й игрок выбирает смешанную стратегию x , а 2-й – y , то ожидаемый выигрыш будет равен m n A( x, y ) xi aij y j . (3) i 1 j 1 Или в матричных обозначениях 30 xAy T . A( x, y ) (4) Как и прежде, игрок 1 должен опасаться того, что игрок 2 раскроет его выбор стратегии. Если бы это случилось, то игрок 2 выбрал бы y так, чтобы минимизировать A( x, y) , т.е. нижний выигрыш игрока 1, при условии, что он выберет стратегию x v( x) min xAy T . (5) y Y Величину xAy T можно рассматривать как взвешенное среднее ожидаемых выигрышей для игрока 1, когда он использует x против чистых стратегий игрока 2. Таким образом, этот минимум будет достигаться на некоторой чистой стратегии j: v( x) min xA j (6) j j где A – j-й столбец матрицы А. Поэтому игрок 1 должен выбрать x так, чтоб максимизировать v(x) , т.е. что бы получить v1 max min xA j . (7) j x X Такая стратегия x называется максиминной стратегией игрока 1. Аналогично, если игрок 2 выбирает стратегию y , он будет иметь ожидаемый верхний проигрыш. v( y ) max Ai y T , (8) i где Ai – i-я строка матрицы А, и должен выбрать y так, что бы иметь v2 min max Ai yT y Y i (9) Такая стратегия у называется минимаксной стратегией игрока 2. Числа v1 и v2 называются значениями игры для игроков 1 и 2 соответственно. 2.7. Теорема о минимаксе Для любой функции F ( x, y) , определенной на произвольном декартовом произведении X Y , имеет место неравенство max min F ( x, y ) min max F ( x, y ) (1) x X y Y y Y x X Отсюда следует, что v1 v2 . Нижний выигрыш игрока 1 не может превышать верхнего проигрыша игрока 2. Теорема о минимаксе утверждает, что v1 v2 . 31 Эта важнейшая теорема доказана многими способами. Используем доказательство фон Неймана и Моргенштерна. Для доказательства теоремы рассмотрим сначала две леммы. Лемма1. (Теорема об опорной гиперплоскости) Пусть B – замкнутое выпуклое множество в n-мерном евклидовом пространстве, а x ( x1 ,..., xn ) – некоторая точка, не принадлежащая B . Тогда существуют такие числа p1 , ... , pn , pn 1 , что n pi xi pn (2) 1 i 1 и n pi yi y pn 1 , B. (3) i 1 Геометрически это означает, что через точку x можно провести гиперплоскость так, что B будет лежать целиком «выше» этой гиперплоскости. Доказательство. Пусть z – такая точка из B , расстояние которой от x минимально (такая точка существует, т.к. B замкнуто). Положим pi zi xi , i 1, n , n pn n xi2 . zi xi 1 i 1 i 1 Очевидно, что равенство (2) выполняется, поскольку n n ( zi n xi ) xi xi2 zi xi i 1 i 1 pn 1 . i 1 Необходимо показать, что имеет место (3). Мы имеем n n n pi zi z i 1 2 i i 1 zi xi i 1 и, следовательно, n n pi zi i 1 pn n z 1 2 i 2 i 1 n zi xi i 1 n 2 i x i 1 ( zi xi ) 2 0. i 1 Поэтому n pi zi pn 1 . i 1 Допустим, что существует y B , для которого n pi yi pn 1 . i 1 32 Так как B выпукло, то отрезок, соединяющий y с z , должен целиком содержаться в B , т.е. точки этого отрезка 0 r 1. wr ry (1 r ) z B , Квадрат расстояния от x до wr имеет вид n 2 ( x, wr ) ( xi (1 r ) zi ) 2 . ryi i 1 Поэтому 2 n 2 r ( zi yi )( xi (1 r ) zi ) i 1 n 2 n ( zi xi ) yi 2 i 1 2 n ( zi xi ) zi 2 i 1 n pi y i 2 pi z i 2r yi ) 2 . ( zi i 1 0 (то есть, при wr z ) имеем 2 n |r yi ) 2 n i 1 r r ( zi i 1 n i 1 При r ryi 2 0 n pi yi 2 i 1 pi zi . i 1 Здесь первое слагаемое по предположению не превосходит 2 pn 1 , а 2 второе больше 2 pn 1 . Поэтому r |r 0 0. Отсюда следует, что для r , достаточно близких к нулю ( x, wr ) ( x, z ) . Но это противоречит выбору z . Следовательно, для любых y условие (3) должно выполняться. B Лемма 2. (Теорема об альтернативах для матриц). Пусть A {aij } , матрица m n . Тогда справедливо либо утверждение 1, либо утверждение 2. 1. Точка 0 (в m-мерном пространстве) содержится в выпуклой оболочке m + n точек a1 (a11 ,..., am1 ) ……………… an (a1n ,..., amn ) и e1 e2 (1,0,..., 0) , (0,1,..., 0) , ……………… em (0,0,...,1) . 2. Существуют числа x1 ,..., xm , удовлетворяющие условиям 33 m xi 0, m xi 1, aij xi i 1 0 , j 1, n . i 1 Доказательство. Предположим, что 1 неверно. То есть, точка 0 не содержится в выпуклой оболочке этих m + n точек. На основании леммы 1 существуют такие числа p1 , ... , pm 1 , что m 0 pi pm 1 . i 1 m Отсюда следует, что pm 0 и 1 0 для всех y в указанном вы- pi yi i 1 пуклом множестве. В частности это выполняется, если y является любым из m+n векторов a j , ei . Поэтому m aij pi 0 j , j 1, n , i 1 pi i, i 1, m . 0 m Так как pi 0 , получаем pi 0 , и можно положить xi pi . m i 1 pi i 1 m Следовательно, m 0 , xi aij xi 0, xi i 1 1. i 1 Лемма доказана. Доказательство теоремы о минимаксе ( v1 Это соответствует тому, что max min xA j x X j v2 ) min max Ai yT , где A j – y Y i столбец, а Ai – строка матрицы A . Доказательство. Пусть A – матричная игра. По лемме 2 имеет место либо утверждение (1), либо утверждение (2). Если верно (1), то 0 является выпуклой линейной комбинацией m+n векторов. Поэтому существуют такие S1 , …, S m n , что m n S j aij Sn i 0, i 1,..., m, j 1 m n Sj 0, j 1,..., m n; Sj 1. j 1 34 Если бы все числа S1 , …, S n были равны нулю, то 0 оказывался бы выпуклой линейной комбинацией m единичных векторов e1 , e2 ,…, em , что, очевидно, невозможно, т.к. они линейно независимы. Следовательно, n по крайней мере, одно из чисел S1 , …, S n положительно и Sj 0. j 1 Sj Тогда можно положить y j n , Sj j 1 и мы получаем yj n n 0, j 1 yj Sn aij y j 1, i n j 1 0, i. Sj j 1 Значит, v( y) max Ai yT 0 и v2 0. i Предположим теперь, что верно утверждение (2): xi Тогда, v( x) min xA j j m 0, i 1 xi 1, min xAy T m i 1 aij xi 0, 0, так что v1 j 1, n . 0. y Y Следовательно, неравенство v1 0 v2 не может иметь места. Предположим теперь, что мы изменили игру А, заменив еѐ на игру B {bij } , где bij aij k . Ясно, что для любых x , y xBy T v1 ( B) xAy T v1 ( A) k , v2 ( B ) v2 ( A) k . k . Поэтому Так как неравенство v1 ( B) 0 v2 ( B) не может иметь места, то неравенство v1 ( A) k v2 ( A) также не выполняется. Но k – произвольно. Значит, неравенство v1 возможно. Так как v1 v2 , то v1 v2 , что и требовалось доказать. v2 не- 35 Таким образом, мы видим, что при использовании смешанных стратегий нижний выигрыш игрока 1 в точности равен верхнему проигрышу игрока 2. Общая величина V этих двух чисел называется значением игры. Мы видим, что стратегия x , удовлетворяющая условию m xi aij v, j 1,2,..., n, (4) i 1 является оптимальной для игрока 1 в том смысле, что не существует стратегии, которая дала бы ему больший ожидаемый выигрыш, чем v , против каждой стратегии игрока 2. Обратно, если y удовлетворяет условию n aij y j v, j 1, m, (5) j 1 то y является оптимальной для игрока 2 в том же смысле. Далее, очевидно, что xAy T v , т.к. если бы правая часть этого равенства была меньше левой, то это противоречило бы (5), а если бы она была больше левой – это противоречило бы (4). Следовательно, оптимальные стратегии x и y являются также оптимальными одна против другой, а также против любой иной оптимальной стратегии. Будем называть любую пару оптимальных стратегий ( x , y ) – решением игры. 2.8. Вычисление оптимальных стратегий Теорема о минимаксе гарантирует, что каждая антагонистическая игра имеет оптимальные стратегии. Она даѐт существование, но не определяет, как искать эти оптимальные стратегии. 1. Простейшим является тот случай, когда существует седловая точка, т.е. когда существует элемент aij , являющийся максимальным в своѐм столбце и минимальным в своей строке. Тогда чистые стратегии i и j (или, что равносильно, смешанные стратегии x и y , для которых xi =1, y j =1, а все остальные компоненты равны нулю) будут оптимальными стратегиями для игроков 1 и 2 соответственно. 2. Доминирование. Пусть дана матрица A . Будем говорить, что i-я строка j и aij ak j по крайней мере для доминирует k-ю строку, если aij akj , одного j. Аналогично, будем говорить, что j-й столбец доминирует l-й столi и aij ail по крайней мере для одного i. бец, если aij ail , 36 Короче говоря, одна чистая стратегия (представленная своей строкой или столбцом) доминирует другую чистую стратегию, если выбор первой (доминирующей) стратегии, по крайней мере, не хуже выбора второй (доминируемой) стратегии, а в некоторых случаях и лучше. Отсюда следует, что игрок всегда может обойтись без доминируемых стратегий и использовать только недоминируемые стратегии. Теорема. (Без доказательства) Пусть A – матричная игра, и пусть строки i1 , i2 ,…, ik матрицы доминируются. Тогда игрок 1 имеет такую оптимальную стратегию x , что xi1 = xi2 =…= xik =...=0. Кроме того, любая оптимальная стратегия для игры, получающейся в результате удаления доминируемых строк, будет также оптимальной стратегией для первоначальной игры. Аналогичная теорема справедлива и для доминирования столбцов. Общий результат этих теорем состоит в том, что все доминируемые строки и столбцы могут быть отброшены, а это позволяет иметь дело с игрой с меньшей матрицей. Пример 2.7. Рассмотрим игру с матрицей 2 0 1 4 1 2 5 3 . 4 1 3 2 Второй столбец доминирует 4-й. Следовательно, игрок 2 никогда не будет использовать свою 4-ю стратегию. Поэтому на неѐ можно не обращать внимания и рассматривать матрицу 2 0 1 1 2 5 . 4 1 3 В ней 3-я строка доминирует 1-ю. Удаляя 1-ю строку, получаем 1 2 5 . 4 1 3 В ней 3-й столбец доминируется 2-м. Следовательно, исходная игра сводится к игре с матрицей 1 2 . 4 1 И нужно искать оптимальные стратегии для игры 2 2. 37 3. Игры (2 2). Пусть дана матричная игра 2×2 с платежной матрицей a11 a12 . Если есть седловая точка, то всѐ определено. Если нет, то опa21 a22 тимальные стратегии x ( x1 , x2 ) и y компоненты xi 0 , yi 0 . ( y1 , y2 ) имеют положительные Если значение игры – v , это для оптимальных стратегий xAy T v, т.е. a11 x1 y1 a12 x1 y2 a21 x2 y1 a22 x2 y2 v. Преобразуем x1 (a11 y1 a12 y2 ) x2 (a21 y1 a22 y2 ) v (*) Так как y оптимальная стратегия, то должно выполняться: a11 y1 a12 y2 v , a21 y1 a22 y2 v . Допустим, что одно из выражений меньше v : a11 y1 a12 y2 v a21 y1 a22 y2 v . Так как x1 0 , x1 x2 1 , то левая часть (*) будет меньше правой. Отсюда следует, что должно быть a11 y1 a12 y2 v , a21 y1 a22 y2 v . Аналогично можно показать: a11 x1 a21 x2 v , a12 x1 a22 x2 v . Из этих уравнений, с учѐтом того, что x1 x2 1 , y1 y2 1 легко найти стратегии обоих игроков. 4. Симметричные игры. Квадратичная матрица A называется кососимметрической, если aij a ji , i, j. Матричная игра называется симметричной, если еѐ матрица кососимметрическая. Теорема. Значение симметричной игры равно нулю. Кроме того, если x есть оптимальная стратегия для игрока 1, то x есть также оптимальная стратегия для игрока 2. Доказательство: Пусть A матрица игры и x произвольная AT . стратегия. Легко видеть, что A Следовательно, Поэтому xAx T xAT xT ( xAx T )T xAx T . xAx T 0. 38 Отсюда следует, что для любого x min xAy T y игры неположительно. В то же время max yAx T y 0 , так что значение 0 , так что значение иг- ры неотрицательно. Следовательно, значение игры равно нулю. Далее, если x – оптимальная стратегия игрока 1, то xA 0 (из xA v ). Но отсюда x( AT ) 0 , так что xAT 0 . Значит, стратегия x оптимальна также и для игрока 2. 5. Решение антагонистических игр в общем случае. На основании теоремы о минимаксе мы знаем, что стратегия x , удовлетворявшая условию m xi aij v , j 1,2,..., n; где v – значение игры, является оптимальной i 1 для 1-го игрока. Т.е. не существует другой стратегии, которая дала бы ему больший ожидаемый выигрыш, чем v , против каждой стратегии игрока 2. Таким образом, игру с точки зрения 1-го игрока можно записать как задачу линейного программирования: v max ; m xi aij v , j 1, n; i 1 m xi 1; xi 0 ; i 1, m. i 1 Причѐм v рассматривается как m+1-я переменная, неограниченная по знаку (свободная). С другой стороны, 2-й игрок стремится минимизировать значение игры: v min ; n aij y j v , i 1, m; j 1 n yj 1; yj 0 ; j 1, n. j 1 Причѐм обе эти задачи представляют собой пару двойственных задач линейного программирования: 39 v v max ; m min ; n aij xi v aij y j 0 , j 1, n; i 1 m xi v 0 , i 1, m; j 1 n 1 ; xi yj 0 ; i 1, m. 1; yj 0 ; j 1, n. j 1 i 1 v – свободная переменная. v – свободная переменная. Таким образом, решив одну из двойственных задач, мы определим оптимальные стратегии 1-го и 2-го игроков и значение игры. 2.9. Игры с ограничениями Рассмотрим игру, в которой допускаются не все смешанные стратегии. Обычно для этого имеются определѐнные практические основания. Предположим, что смешанные стратегии x и y соответственно должны выбираться из некоторых выпуклых многогранников. Если матрица игры A ={aij } , то задача игрока 1 состоит в том, чтобы найти max{min xAy T } , (1) y Y x X где два множества X и Y определяются соответственно неравенствами и xB C , x 0 yE T F, y 0. Аналогично задача 2-го игрока состоит в том, чтобы найти min{max xAy T } y Y x X (2) при тех же ограничениях на стратегии игроков. В выражении (1) величина в скобках, очевидно, является функцией x . Точнее она является значением задачи линейного программирования, целевая функция которой имеет коэффициенты, зависящие от x . По теоремам двойственности, если эта задача допустима и ограничена, то две задачи min xAyT y yE T F , y 0, (3) 40 и двойственная к ней max zF T z zE z xA, (4) 0 будут иметь одно и то же значение целевой функции. Значит, задача игрока 1 сводится просто к задаче максимизации max zF T zE xA 0, xB c , (5) z , x 0. Аналогично, можно показать, что задача (2) игрока 2 сводится к задаче минимизации: min CsT sBT yAT yE T 0, . (6) F, s, y 0. Задачи (5) и (6) являются двойственными друг к другу. Если эти задачи допустимы, то выражения (1) и (2) будут равны и, таким образом, игра с ограничениями будет иметь решение в смешанных стратегиях. 2.10. Бесконечные игры Рассмотрим в первую очередь игры со счѐтным множеством стратегий. Пусть, как и в конечных играх aij – выигрыш, получаемый 1-м игроком, при условии, что он выбирает i-ю чистую стратегию, а 2-й игрок, j-ю чистую стратегию. Смешанной стратегией игрока 1 будет последовательность ( x1 , x 2 , …), для которой xi 1, (1) i 1 xi 0 . Смешанная стратегия игрока 2 – ( y1 , y 2 , …). Функция выигрыша при смешанных стратегиях ( x , y ) (2) 41 A( x, y ) xi aij y j (3) i 1 j 1 при условии, что ряд абсолютно сходится. Игры со счѐтным множеством стратегий обладают рядом нежелательных свойств, которых нет у конечных игр. Во-первых, ряд (3) не обязательно сходится и может случиться, что xi aij y j (4) xi aij y j (5) i 1 j 1 и j 1 i 1 существуют, но различны. Во-вторых, множества смешанных стратегий не компактны и, таким образом, максимумы и минимумы не будут существовать. 2.11. Игры на квадрате В таких играх каждый игрок имеет континуум чистых стратегий, обычно представляемых точками интервала [0,1]. Тогда чистая стратегия каждого игрока – число из этого интервала, а функция выигрыша A( x, y) определена на единичном квадрате. Смешанная стратегия представляет собой вероятностное распределение на множестве чистых стратегий. Оно может быть представлено функцией распределения: F (0) 0, F (1) 1, F ( x) F ( x ), если x x , F ( x) F ( x 0), если x 0 . Если игрок 1 использует чистую стратегию x , а игрок 2 – смешанную стратегию G( y ) , то ожидаемый выигрыш равен интегралу Стильтьеса: 1 E ( x, G ) A( x, y )dG( y ). (1) 0 Если же игрок 2 использует чистую стратегию y , а игрок 1 смешанную стратегию F , то ожидаемый выигрыш 1 E ( F , y) A( x, y )dF ( x). (2) 0 Наконец, если игрок 1 использует F , а игрок 2 использует G , то имеем 42 1 1 E ( F , G) A( x, y )dF ( x)dG( y ). (3) 0 0 В каждом случае считаем, что интегралы существуют. Разумеется тогда 1 E ( F , G) 1 E ( F , y )dG( y ) 0 E ( x, G )dF ( x). (4) 0 Если можно определить два числа supinf E ( F , y ) 1 F y (5) и 2 inf sup E ( x, G ) , G (6) x то возникают два вопроса: 1) Будет ли выполняться равенство v1 v2 ? 2) Можно ли sup inf и inf sup заменить на max min и min max соответственно? Если ответ на оба эти вопроса положителен, то оптимальные смешанные стратегии существуют. Если эти стратегии можно найти, то игра определена столь же хорошо, как и конечные игры. Если утвердительно можно ответить только на 1-й вопрос, то игра имеет общее значение v1 и v2 , но не имеет оптимальных стратегий. Тем не менее, она будет иметь -оптимальные стратегии: т.е. для любого 0 существуют такие смешанные стратегии F и G игроков 1 и 2 соответственно, что ; E ( F , y) v E ( x, G) v для любого x и y из [0,1]. Таким образом, хотя бесконечная игра определена не столь хорошо, как конечные игры, она обладает известной устойчивостью. 2.12. Игры с непрерывным ядром Для игр с непрерывным ядром оптимальные стратегии существуют. Теорема 1. Если ядро A( x, y) – непрерывная функция, то sup inf и inf sup могут быть заменены на max min и min max соответственно. Доказательство. Известно, что функция A( x, y) непрерывна. Поэтому для любой F функция 1 E ( F , y) A( x, y )dF ( x) 0 43 непрерывна по y . Так как интервал [0,1] компактен, E ( F , y ) в некоторой его точке будет достигать минимума. Таким образом, sup inf E ( F , y ) можF y но заменить на sup min E ( F , y ) . y F По определению v1 для любого n существует такое распределение Fn , что 1 . min E ( Fn , y ) v1 y n Заметим теперь, что из любой последовательности функций распределения ( F1 , F2 , …) на [0,1] можно извлечь некоторую поточечно сходящуюся подпоследовательность. Пусть F0 – предел этой подпоследовательности. Ясно, что F0 удовлетворяет условиям: F0 (0) 0, F0 (1) 1, F0 ( x) F0 ( x ), если x x , так как им удовлетворяет каждая из функций Fn . С другой стороны, функция F0 не обязательно удовлетворяет условию F0 ( x) F0 ( x 0), если x 0 , потому что это свойство не сохраняется при предельном переходе. Определим функцию F0 следующим образом: 0, если x F0 ( x) 0; F0 ( x 0), если 0 x 1; (1) 1, если x 1. Легко видеть, что F0 является стратегией (т. е. функцией распределения.). Функции F0 и F0 отличаются только в точках разрывов. Но так как эти функции монотонны, точки их разрывов образуют счѐтное множество и поэтому для любого y 1 1 A( x, y )d F0 ( x) A( x, y )dF0 ( x) . 0 0 Функция A( x, y) непрерывна и, следовательно, равномерно непрерывна. Ввиду того, что F0 является пределом подпоследовательности из Fn , мы имеем 1 1 A( x, y )dF0 ( x) 0 lim A( x, y )dFn ( x) . n 0 Но последний предел не меньше v1 для каждого значения y . Таким образом: min E ( F0 , y ) v1 y 44 и на F0 достигается требуемый максимум. Аналогично можно показать, что inf sup можно заменить на min max . Теорема 2. Если ядро A( x, y) непрерывно, то v1 = v2 . Доказательство. Для любого целого числа n рассмотрим матрицу An {aijn } размерности (n 1) (n 1) , где aijn A( ni , nj ) ; i, j 0, n. Игра с матрицей выигрыша An имеет значение wn и оптимальные стратегии rn (r0n ,..., rnn ) и sn ( s0n ,..., snn ) игроков 1 и 2 соответственно. Функция A( x, y) непрерывна. Так как квадрат компактен, то A( x, y) равномерно непрерывна. Таким образом, для заданного 0 можно найти такое 0 , что если ( x x )2 (y y )2 , то . A( x, y ) A( x , y ) Возьмѐм n столь большим, чтобы 1n . Определим стратегию Fn (x) равенством [ nx ] ri n , Fn ( x) i 0 где [ nx ] – целая часть числа nx . Для любого y положим j [ny] . Ясно, что n j n n aijn ri n E(F , ) wn , i 0 и так как y A( x, y ) j n , A( x, nj ) имеем 1 1 A( x, y )dFn ( x) 0 1 j n A( x, )dFn ( x) 0 dFn ( x) , 0 то есть E ( Fn , y ) E ( Fn , nj ) Следовательно, для любого y E ( Fn , y ) wn и поэтому v1 wn . Аналогично можно показать, что v 2 wn . . 45 Из 2-х последних неравенств получаем, что v1 v 2 что v1 v 2 и произвольности , следует, что v1 v 2 . 2 . Но из того, Из доказательств этой теоремы следует, что, во-первых, V lim wn . n И, во-вторых, что стратегии Fn аппроксимируют оптимальную стратегию сколь угодно точно. В этом смысле матричные игры аппроксимируют непрерывную игру A( x, y) . Если ядро очень гладкое, то может оказаться, что уже при очень небольшом n аппроксимация будет достаточно хорошей. С другой стороны, если ядро слишком нерегулярно, то для хорошей аппроксимации требуются большие значения n. 2.13. Вогнуто-выпуклые игры Определение. Говорят, что игра на квадрате вогнуто-выпукла, если еѐ ядро A( x, y) вогнуто по x при каждом значении y и выпукло по y при каждом значении x . Вогнуто-выпуклая игра должна иметь седлообразное ядро, и, повидимому, седловую точку в чистых стратегиях. Теорема. Пусть вогнуто-выпуклая игра A( x, y) непрерывна. Тогда она имеет оптимальные чистые стратегии. Доказательство. Так как игра непрерывна, она имеет непрерывные стратегии. Пусть для игроков 1 и 2 это будут соответственно F (x) и G (x) . Теперь положим 1 x0 xdF (x) , (1) ydG ( y ) . (2) 0 1 y0 0 Так как функция A( x, y) вогнута по x , то для любой заданной y существует такое , что функция By ( x) A( x, y ) x достигает своего максимального значения (при фиксированном y ) в точке x0 . Мы имеем 1 E ( F , y) ( B y ( x) x)dF ( x) , 0 1 E ( F , y) 1 B y ( x)dF ( x) 0 xdF ( x) . (3) 0 46 Функция B y достигает максимума в x 0 , следовательно, первый интеграл в (3) не превосходит B y ( x0 ) (т.к. E ( F , y) By ( x0 ) dF (x) 1 ). Поэтому x0 A( x0 , y) , (4) откуда следует, что x 0 не хуже F против любой y . Аналогично можно показать, что y0 не хуже G против любой стратегии x . Таким образом, x 0 и y0 – оптимальные чистые стратегии. Пример 2.8. Рассмотрим игру с ядром Так как Axx Видим, что A( x, y ) 2 x 2 y 2 3xy x 2 y . 4 <0, Ayy 2 >0, то игра действительно вогнуто-выпуклая. Ax 4 x 3 y 1. Полагая Ax 4 x 3 y 1=0, найдем 3y 1 . 4 x Это значение x максимизирует A . Однако оно не всегда лежит в единичном интервале, будучи отрицательным при y < 1/3. В последнем случае получаем максимум, полагая x 0 . Следовательно, 1 ; 3 0, если y ( y) 3y 1 , если 4 1 . 3 y Аналогично находим Ay 2 y 3x 2 , откуда находим, приравняв ее 0, с учетом того, что величина всегда лежит на единичном интервале ( x) 2 3x , если 2 0, если x x 2 3x не 2 2 ; 3 2 . 3 Теперь легко найти оптимальные стратегии и значение игры. x 4 , y 17 11 , 17 13 . 17 47 2.14. Игры с выбором момента времени Как показано ранее, непрерывные игры всегда имеют оптимальные стратегии. Но общих аналитических методов их вычисления нет. Если игра с разрывным ядром, то мы не можем быть уверены, что она имеет оптимальные стратегии. Но в некоторых случаях именно разрывность позволяет находить оптимальные стратегии (если они существуют) аналитическими методами. Рассмотрим один тип игр на квадрате, называемый играми с выбором момента времени. Прототипом такой игры является игра, в которой каждый игрок может сделать только одно действие в течение данного интервала времени. Порядок, в котором игроки действуют, чрезвычайно важен. Этот факт является причиной разрыва ядра вдоль диагонали x y квадрата. Рассмотрим игру с ядром A( x, y) вида A( x, y ) K ( x, y ), x y, ( x), x y, L( x, y ), x y, (1) где функция K ( x, y ) определена и непрерывна на множестве 0 x y 1 , а функция L( x, y) на множестве 0 y x 1 , а функция (x) непрерывна на [0, 1]. Нельзя быть уверенным, что оптимальные стратегии в этой игре существуют. Тем не менее, мы можем определить некоторые свойства оптимальных стратегий в предположении, что они существуют. Пусть F – смешанная стратегия игрока 1. Для y [0,1] мы имеем y E ( F , y) 1 K ( x, y)dF ( x) 0 ( y)[ F ( y) F ( y 0)] L( x, y)dF ( x) . (2) y 48 Если F – непрерывная функция, то можем опустить среднее выражение и получим y E ( F , y) 1 K ( x, y)dF ( x) 0 L( x, y )dF ( x) . (3) y Предположим, что F и G – оптимальные стратегии игроков 1 и 2 и что обе они являются непрерывными функциями распределения. Известно, что если F и G оптимальны, а y0 − точка (чистая стратегия против смешанной F ), в которой (4) G ( y0 ) 0 , то (5) E ( F , y0 ) v , где v − значение игры. Теперь, если G положительна в точке y0 , то она положительна и в некоторой окрестности y0 . Поэтому для любого y , достаточно близкого к y0 , мы будем иметь E ( F , y) v . Но это значит, что E ( F , y) y 0. (6) На основании правила Лейбница V( ) d d f ( x, )dx U( ) V( ) d U( ) f ( x, )dx f (V ( ), ) dV d f (U ( ), ) dU d уравнение (6) можно переписать в виде y [ L( y, y ) K ( y, y)]F ( y) 1 K y ( x, y) F ( x)dx 0 Ly ( x, y) F ( x)dx . (7) y Выражение (7) представляет собой интегральное уравнение относительно F , которое иногда довольно легко решать. Предположим теперь, что нам дана игра с ядром вида (1). Мы не можем гарантировать существование оптимальных стратегий. Мы даже не знаем, будут ли они непрерывными, дискретными или частично непрерывными и частично дискретными распределениями. Однако довольно естественно считать, что оптимальные стратегии F и G являются непрерывными распределениями, а их производные F и G положительны на интервалах (a, b) и (c, d) соответственно и равны нулю вне этих интервалов. Теперь имеем несколько соотношений, связывающих функции F и G и числа a, b, c, d и v : (8) E ( F , y) v для y (c, d ) ; (9) E ( F , y) v для любого с; (10) E ( x, G) v для x (a, b) ; (11) E ( x, G) v для любого x ; 49 y [ L( y, y ) K ( y, y)]F ( y) 1 K y ( x, y) F ( x)dx Ly ( x, y) F ( x)dx , (12) 0 для y y (c, d ) ; x [ K ( x, x) L( x, x)]G ( x) 1 Lx ( x, y )G ( y )dy , (13) K x ( x, y )G ( y )dy 0 x для x (a, b) . Здесь 0 a b 1, 0 c d 1 и, кроме того, F и G должны быть стратегиями. Если вся система имеет решение, то это решение даст нам оптимальные стратегии, а также значение игры. Если решения нет, то игра либо не имеет оптимальных стратегий, либо, если она их имеет, то они не такого типа, как предполагалось выше (непрерывные). Иногда ядро кососимметрично, т.е. (14) L( x, y) K ( y , x) , (15) (x) 0 . Если это так, то значение игры, если оно существует, должно равняться нулю, а оптимальные стратегии, если они существуют, должны быть одинаковы для обоих игроков. Таким образом, будем иметь: F G , a c , b d , v 0, и соотношения (8 – 13) примут вид (16) E ( F , y) 0 для y (a, b) ; (17) E ( F , y) 0 для любого y ; y [ L( y, y ) K ( y, y)]F ( y) K y ( x, y) F ( x)dx a для y b Ly ( x, y) F ( x)dx , (18) y (a, b) . Эта система вместе с обычными ограничениями даст решение игры, если такое решение существует. Пример 2.9. Рассмотрим следующую дуэль. Два дуэлянта (игрока) в момент t 0 начинают идти навстречу друг другу. Они встретятся (если ничто не помешает) в момент t 1. Каждый имеет пистолет только с одной пулей и может выстрелить в любой момент, когда пожелает. Если ему удалось поразить противника, а сам он невредим, то дуэль немедленно прекращается, и тот, кто выстрелил успешно, является победителем. Если оба дуэлянта промахнулись, то дуэль оканчивается вничью. Если оба стреляли одновременно, и каждый поразил другого, то дуэль также считается окончившейся вничью. Сделаем два предположения. 1) Меткость выстрела при сближении игроков возрастает таким образом, что если какой-либо игрок выстрелил в момент t, то вероятность поражения противника равна t. 2) Дуэль является бесшумной, т.е. игрок не знает, что его противник выстрелил (если конечно тот промахнулся). 50 Найдем ядро этой игры. Если игрок 1 выбирает момент x , а игрок 2 – момент y x , то игрок 1 с вероятностью x попадет в противника (в этом случае его выигрыш равен +1). Если он промахнулся (с вероятностью 1 x ), то он будет поражен с вероятностью y (получит выигрыш –1). Таким образом, мы имеем (19) K ( x, y) x 1 (1 x) y ( 1) x y xy . Очевидно, что эта игра симметрична, поэтому (20) L( x, y) ( y x yx) x y xy и (x) 0 . Далее, мы имеем также (21) K y ( x, y ) 1 x, Ly ( x, y) 1 x (22) и 2y2 L( y , y ) K ( y , y ) (23) Предположим теперь, что оптимальная стратегия является непрерывной функцией распределения F с положительной производной в интервале (a, b) . Тогда по формуле (18) y 2 2 y F ( y) b ( 1 x) F ( x)dx a ( 1 x) F ( x)dx . (24) y Это интегральное уравнение (относительно F ) может быть преобразовано в дифференциальное уравнение дифференцированием обоих частей, что даст: 4 yF 2 y 2 F ( y 1) F ( y 1) F 2 yF , или, упростив, (25) yF 3F . Решение этого уравнения имеет вид (26) F ( y ) ky 3 . Теперь нужно найти a, b и k. Предположим, что b < 1. Мы знаем, что для всех y (a, b) E ( F , y) 0 . Но функция E ( F , y ) непрерывна по y , откуда следует, что E ( F , b) 0 . Следовательно, b E ( F , b) b K ( x, b)dF ( x) a ( x b bx)dF ( x) 0. a Но если b <1, то 51 b ( x 1 x)dF ( x) 0 , a и поэтому E (F ,1) 0 , что противоречит условию (17). Таким образом (27) b 1. Так как b 1, то E (F ,1) 0 . Ввиду этого 1 k (2 x 1) x 3dx 0 , a 1 k (2 x 2 x 3 )dx k ( 2 x 1 a k( 3 2 2 a 1 ) 2a 2 k ( 3a 2 2 2a 1 2 1 x )a 2 4a 1) . Откуда следует 3a 2 4a 1 0 . 1 . Ясно, что значение 3 Это уравнение имеет два решения: a 1 и a a 1 невозможно, следовательно, a Так как F – стратегия, то 1 1 . 3 (28) 1 kx 3 dx 1 , F ( x)dx 1 3 1 3 поэтому k 1 . 4 Это дает нам оптимальную стратегию для каждого из двух игроков. Она является непрерывной функцией распределения, определенной следующим образом из 1 0, если x , 3 F ( x) 1 3 1 x , если x , 4 3 что даст оптимальную стратегию 2-х игроков в виде: 0, F ( x) 1 9 4 2 если x 1 , если x 2 x2 1 3 . 1 3 . 52 3. Дискретное программирование 3.1. Введение Наиболее изучены задачи целочисленного линейного программирования. Задача является задачей полностью целочисленного программирования, если требование целочисленности наложено на все переменные задачи: x j – целые для j 1, n , где n – размерность задачи. Имеем задачу частично целочисленного программирования, когда требование целочисленности наложено на часть переменных x j для j 1, n1 , причѐм n1 n. Дискретные задачи, в которых областью допустимых значений переменных является не множество целых неотрицательных чисел, а некоторое заданное конечное множество, могут быть формально сведены к целочисленным. Дискретные задачи математического программирования образуют обширный класс нерегулярных задач вида: Q(x) max q(x) 0 , x 0, x j − целые (дискретные), j 1, n . Задача называется регулярной, если она отвечает следующим условиям: 1. Для каждой точки x D можно определить некоторым образом понятие непустой окрестности Dx D . 2. Можно указать достаточно эффективно проверяемые необходимые и достаточные условия локальной оптимальности. На основе этих условий локальный оптимум целевой функции на множестве D может быть найден при помощи конечного (или бесконечно сходящегося) процесса. 3. Локальный оптимум целевой функции совпадает с глобальным. Допустимая область в дискретных задачах, задаваемая ―регулярными условиями‖ и условиями дискретности, является несвязной и невыпуклой. Это делает невозможным применение стандартных приѐмов перемещения по вершинам многогранника или по градиенту в окрестности данной точки. Прямой перебор для задач с конечным множеством решений не может быть реализован, т.к. число точек, удовлетворяющих допустимым ус53 ловиям 2 n . Отбрасывание условий целочисленности и решение линейной задачи с последующим округлением компонент оптимального плана до ближайших целых чисел очень часто не приводит к нужному результату. Пример (Корбут и Финкельштейн). Q( x ) x1 3x 2 2 x1 4 x1 x2 3 x2 3 x3 max x3 4 2 3x1 2 x2 x3 3 x 0 x j − целые, j 1,3 . Если игнорировать целочисленность, то получаем оптимальный план 1 1 x* ,0,4 2 2 и никакие варианты его округления не дадут допустимого решения! Оптимальное решение x *' (2, 2, 5) . А вообще, принцип регуляризации лежит в основе построения методов ―отсечения‖. Можно выделить следующие основные классы задач дискретного программирования. 1. Задачи с неделимостями. 2. Экстремальные комбинаторные задачи. 3. Задачи с неоднородной разрывной целевой функцией. 4. Задачи на неклассических областях. 5. Некоторые многоэкстремальные задачи. При решении задач дискретного программирования можно выделить три группы принципиально отличающихся методов. I. Отбрасывается условие дискретности, т.е. область допустимых решений погружается в объемлющую еѐ выпуклую область. Затем к полученной задаче применяются стандартные методы. Если полученное решение удовлетворяет требованиям целочисленности, то задача решена. В противном случае требуется дальнейший переход к целочисленному решению. Простым округлением, вообще говоря, этот переход достигнут быть не может. Если в результате первого шага получаем нецелочисленный план, то к ограничениям исходной задачи добавляется новое линейное ограничение, обладающее двумя свойствами: 1) полученный нецелочисленный план ему не удовлетворяет; 2) любой целочисленный план ему заведомо удовлетворяет. 54 Затем решается полученная расширенная задача, в случае необходимости добавляется ещѐ одно ограничение, и т.д. Процесс продолжается до получения решения, удовлетворяющего условиям целочисленности. Геометрически добавление каждого неравенства отвечает проведению гиперплоскости, отсекающей от многогранника решений ―регуляризованной‖ задачи старую оптимальную точку с дробными координатами, но не затрагивающей ни одной целочисленной точки (Это метод отсечений). Вопросы, которые при этом приходится выяснять: 1) Как формировать дополнительные ограничения? 2) Необходимо доказать конечность соответствующего процесса отсечения. 3) Как бороться с чрезмерным увеличением размерности задачи? II. Комбинаторные методы. Примером является метод ветвей и границ. III. Метод случайного поиска и другие приближѐнные методы. 3.2. Некоторые понятия и определения, используемые в методах отсечения. В дальнейшем будут необходимы следующие понятия. 1. Говорят, что вектор x ( x1 , x2 ,..., xn ) лексикографически положителен x 0, если x (0, 0,..., 0) 0 и xk 0, где k min{ j x j 0} . 2. Говорят, что вектор x лексикографически неотрицателен, если x 0 , или x 0 . 3. Говорят, что вектор x ( x1 , x2 ,..., xn ) лексикографически больше вектора y x y, если ( x y) 0 . Лексикографически не меньше, x y , если 55 y) 0 . Лексикографически отрицателен, x 0 , если x 0. (x Пусть имеем задачу линейного программирования n x0 cjxj max bi , i 1, m , j 1 n aij x j (1) j 1 x j 0 , j 1, n . Под расширенным планом задачи линейного программирования (ЗЛП) понимают план ~ x ( x0 , x1 , , xn ) . Определение. План x (расширенный план ~ x ) ЗЛП называется лексикографически оптимальным (или лексикографическим оптимумом), если для всех расширенных планов ~ x имеет место соотношение ~ ~ ( x0 , x1 , , xn ) x x ( x0 , x1 , , xn ) . Говорят, l –оптимальный план. Приведем 3 теоремы без доказательств. Теорема 1. Если множество оптимальных планов задачи ЛП (1) не пусто и ограничено, то существует лексикографическим оптимумом x задачи (1). Например, из двух оптимальных планов (6, 3, 4, 5) (6, 2, 5, 5) Теорема 2. Если x лексикографически оптимальный план задачи (1), то x – опорный план. Пусть A j1 , ... , A jk – вектора условий, задающие базис опорного плана x ; B { j1,..., jk } – индексы базисных переменных; N {1,..., n} \ B – индексы небазисных переменных; Qn {0,1,2,..., n} ; N 0 {0} N – множество индексов всех небазисных переменных + 0. Определение. Симплексная таблица xij , i Q n , J N0, называется лексикографически нормальной, если все еѐ столбцы, соответствующие небазисным переменным лексикографически положительны 56 x0 j x1 j Rj 0, xnj j N. Говорят, l – нормальная симплексная таблица. Теорема 3. Для того чтобы опорный план x задачи (1) был l-оптимальным, необходимо и достаточно, чтобы нашѐлся такой базис B , что симплексная таблица xij , i Q n , J N 0 является l-нормальной. Определение. Псевдоплан x (расширенный псевдоплан ~ x ) задачи (1) называется лексикографически положительным, если соответствующая симплексная таблица является l-нормальной. (l-псевдоплан, расширенный l-псевдоплан). Вспомним общее понятие псевдоплана и метод последовательного уточнения оценок. 3.3. Лексикографическая модификация метода последовательного уточнения оценок Здесь вместо исходной задачи (1) решается еѐ лексикографический вариант. Требуется найти лексикографический максимум расширенного плана ~ x n ( x0 , x1 , , x n ) c j x j , x1 , , x n j 1 при n ai j x j bi , i 1, m , j 1 xj 0, j 1, n . Система ограничений определяет допустимый многогранник L . Задачу (1) будем обозначать как ( L, C ) , где C – вектор целевой функции (не скалярное умножение). А задачу лексикографической максимизации или l-задачу – ( L, C ) . Соответствующая модификация метода последовательного уточнения оценок – l-метод. Общая итерация l-метода описывается следующим образом. Пусть r имеется l-псевдоплан x . Ему соответствуют: Br – множество индексов базисных переменных; 57 N r – множество индексов небазисных переменных; Tr – симплексная таблица. 1 x j1 … - x l xl … – x jk x0 x00 x0 j1 … x0 l … x 0 jk x1 x2 … xk x10 x20 … xk 0 … … … … … … … … … … … xk l … … … … … … … … xn … xn 0 … … … … … xnl … … { j1,..., l ,..., jk } Nr , все x0 j через R rj , j 0, j x k jk … x n jk N r . Столбцы таблицы Tr обозначим N r0 , Nr0 {0} Nr . Проверяем, является ли таблица Tr допустимой, т.е. выполнено ли условие xir0 0 , i 1, n . r Если является, то x – l-оптимальный план. Если нет, то ищем переменную x k , выводимую из базиса, по правилу k min{i | i 1, n; xi 0 0} . Затем отыскивается переменная xl , вводимая в базис, по правилу Rl | xk l | Если среди чисел xk j ( j lex min Rj | xk j | j Nr ; xk j 0 . N r ) нет отрицательных, то задача неразрешима. r 1 Если такие числа есть, то переходим к новому l-псевдоплану x , которому соответствует Br 1 ( Br {l}) \ {k} , N r 1 ( N r {k}) \ {l} . Элементы новой таблицы Tr 1 получаются по следующим формулам: x x r 1 ij r 1 ik x r ij xilr , i x kr l 0, n , (столбец делится) x kr i r xil , x kr l j ( N r \ {l}) {0} , i 0, n . Другими словами, столбец, в котором находится направляющий элемент x kr l , делится на этот элемент и умножается на (–1). Чтобы полу58 чить любой другой столбец новой таблицы, надо к соответствующему старому столбцу прибавить вновь полученный, умноженный на элемент, стоящий на пересечении направляющей строки и искомого столбца. Затем повторяется общая итерация. Способ получения l-нормальной таблицы. Ищется такое число xj M , j N вводят переменную xn 1 0; xn 1 1( x j ) и добавляют соответст- M j N вующую строку к таблице. Из базиса выводят x k , k условия Rl lex min{R j j N } , n 1, вводят xl из производят пересчѐт и получают l-нормальную таблицу. 3.4. Первый алгоритм Гомори Все алгоритмы Гомори представляют собой реализацию метода отсечений. Каждый дает свое правило построения отсечений. Пусть ( Lц , C) – некоторая задача целочисленного программирования и опорный оптимальный план x( L, C ) соответствующей задачи линейного программирования не удовлетворяет условию целочисленности x( L, C ) Lц . Определение. Неравенство или (a x (*) ) ajxj j 1 называется правильным отсечением, если оно удовлетворяет следующим условиям: I. Условие отсечения. x ( L, C ) не удовлетворяет неравенству (*), т.е. a т x ( L, C ) . II. Условие правильности. Если x – план задачи ( Lц , C) , то x удовлетворяет неравенству (*), т.е. Lц {x a т x }. Первый алгоритм Гомори предназначен для решения полностью целочисленных задач линейного программирования n x0 cjxj max (1) j 1 59 n ai j x j bi , i 1, m , (2) j 1 0 , j 1, n , xj (3) целые, j 1, n . (4) Пусть x ( L, C ) – оптимальный опорный план задачи ( L, C ) (1)-(3). Выразим целевую функцию x0 и все переменные x j (j N), соответствую- xj щие оптимальному опорному плану x ( L, C ) . xi xi 0 xij ( x j ) , i 0, n . (5) j N Пусть x – вещественное число. Целой частью x называется наибольшее целое число, не превышающее x. Целая часть x обозначается [x]. Дробной частью x называется число {x} = x – [x]. 1 Пример: x [x] 6 , {x} 23 . 53, Теорема. Пусть 1) zi zi ( x ) {xi 0 } ( {xij })( x j ) , i 0, n ; (6) j N 2) x – план задачи ( Lц , C) (1-4). Тогда zi – целое , zi 0. (7) (8) Доказательство. Из (5) получаем xi [ xi 0 ] {xi 0 } ([ xij ] {xij })( x j ) . j N Отсюда и из (6) получаем {xi 0 } ( {xij })( x j ) xi [ xi 0 ] j N [ xij ]( x j ) , j N zi xi [ xi 0 ] [ xij ]( x j ) . j N Из определения целой части следует [ xi 0 ] , [ xij ] j N – целые. Из условия 2) теоремы следует xi и x j – целые (j N). Следовательно, zi – целое число. Теперь, допустим, что zi < 0. Тогда из (6) получаем {xi 0 } {xij }x j 0. j N Но из определения дробной части следует, что 1 > {xij } 0, 60 а из условия 2) ( x – план задачи ( Lц , C) ), что x j ем (левую часть) 1 {xi 0 } {xij }x j 0 (j N), откуда получа- 0, j N или, что то же самое 1 zi 0 . То есть, zi не целое, а это противоречит уже доказанному. Следовательно, zi 0. Теорема доказана. Замечание. Если все c j целые числа, то условия теоремы распространяются на случай i 0 . Следствие. Пусть x ( L, C ) не удовлетворяет условию целочисленности (4), так что для некоторого i (1 i n ) (**) xi 0 – нецелое. Тогда соотношения (6), (8) задают правильное отсечение. zi {xi 0 } ( {xij })( x j ) 0, j N zi 0. Если гарантируется целочисленность целевой функции x0 , то 0 i n . Доказательство. 1) Непосредственно из условий (6) и (8) теоремы следует правильность отсечения, т.е. все планы задачи ( Lц , C) удовлетворяют (6) и (8). 2) Проверим условие отсечения. Подставим в (6) нецелочисленный оптимальный план задачи x ( L, C ) , и, учитывая, что (j N) x j ( Lц , C ) = 0, получаем, используя (**), zi ( x ( L, C )) {xi 0 } 0 0, что противоречит (8). Следовательно, условие отсечения выполнено. Схема метода отсечений выглядит следующим образом. Имеется задача (1-4) ( Lц , C) . На начальном этапе отыскивается оптимальный план задачи ( L0 , C ) , которая получается отбрасыванием условия целочисленности, x ( L0 , C ) . Если этот план не является решением ( Lц , C) , то строится правильное отсечение, отбрасывающее этот план, и решается задача ( L1, C ) , на втором этапе ( L2 , C ) и т.д. … ( Lr , C ) . Оптимальный план вспомогательной задачи линейного программирования ( Lr , C ) определяются неоднозначно, т.к. ( Lr , C ) может иметь много решений. Поэтому Гомори предложил вместо задачи ( Lr , C ) решать l-задачу ( L, C ) . А l-оптимальный план x ( L, C ) определяется единственным образом. 61 Вычисления в методе Гомори проводятся в соответствии с l-методом. Основной проблемой при использовании методов отсечений является рост числа ограничений. Гомори предложил приѐм, ограничивающий размеры расширенных симплексных таблиц до величины (n + 2) (k + 1), где n – количество переменных в в задаче ( L0 , C ) , а k – число небазисных переменных в ней. Этот приѐм основан на том, что дополнительные ограничения (правильные отсечения) arт x r интересует нас не сами по себе, а только как способ отсечения нецелочисленного оптимума x ( Lr , C ) и перехода от задачи ( Lr , C ) к задаче ( Lr 1, C ) . Дополнительная переменная xn r 1 (r 0), связанная с правильным отсечением, выводится из базиса сразу же после введения ограничения xn r 1 0, xn r 1 r arт x . Идея Гомори заключается в следующем: а) Сразу же после вывода xn r 1 0 из базиса (r 0) соответствующая строка вычѐркивается из расширенной симплексной таблицы. б) Если в ходе дальнейших вычислений xn r 1 снова попадает в базис, то соответствующая строка в симплексной таблице не восстанавливается и в дальнейших вычислениях xn r 1 не участвует. Таким образом, число столбцов в таблице не превышает k+1 (равно), а число строк – n+2, где n+1 строка соответствует x0 , x1 , ..., xn и одна – xn r 1 в момент еѐ включения. Необходимо отметить, что алгоритм Гомори неприменим, если задача ( L, C ) имеет решение, но не имеет решения l-задача ( L, C ) , т.е. множество оптимальных планов ( L, C ) не пусто, то и не ограничено (см. рис. 3.1). Рис. 3.1. l-задача не имеет решения 62 Блок-схема алгоритма 1. Начальная итерация. Решаем l-задачу ( L, C ) ( L0 , C) . Если она неразрешима, то неразрешима и задача ( Lц0 , C ) . Если ( L0 , C ) разрешима и l-оптимальный план x ( L0 , C ) удовлетворяет условию целочисленности, то x ( L0 , C ) является оптимальным планом задачи ( Lц0 , C ) . Если x ( L0 , C ) не удовлетворяет условию целочисленности, то переходим к общей итерации. 2. r-я общая итерация (r 0). Пусть x ( Lr , C ) не удовлетворяет условию целочисленности. Мы ищем нормальную и допустимую симплексную таблицу Tr xij , i Q n , j N r0 , из которой xi xir0 xijr ( x j ) , i 0, n . j N Выберем наименьшую (по номеру) строку, которой соответствует нецелочисленная компонента k min{i | i 1, n; xir0 не целое} (если целочисленность целевой функции гарантирована, то i строится соответствующее правильное отсечение xn r 1 {xkr0 } ( {xkjr })( x j ) , 0, n ) и (*) j Nr xn xn 0, – целое. r 1 r 1 Строка приписывается снизу к таблице Tr xij . Получается недо- пустимая (только по строке xn r 1 !) и l-нормальная таблица, к которой применим l-метод. Причѐм после вывода xn r 1 из базиса соответствующая строка вычѐркивается, а после введения в базис xl (l n+1) соответствующая строка не восстанавливается. Если в итоге получаем симплексную таблицу, которой соответствует неразрешимая задача ЛП, то и задача ( Lц0 , C ) неразрешима. Если же получим допустимую и l-нормальную таблицу Tr 1 , то проверяем соответствующий l-оптимальный опорный на целочисленность ( x ( Lr 1 , C ) ). Если x ( Lr 1 , C ) удовлетворяет условию целочисленности, то он является оптимальным решением ( Lц0 , C ) , если нет, то переходим к (r+1)-й итерации. Пример 3.1. Решить следующую задачу целочисленного линейного программирования, используя первый алгоритм Гомори: x0 x1 x2 max при 2 x1 11x2 38 , 63 x1 x2 7 , 4 x1 5 x2 5 , xi 0, i 1,2 . Решение: Правильные отсечения в этом алгоритме строятся по правилу: k min{i | i 1, n; xi 0 не целое} xn r 1 {xkr0 } ( {xkjr })( x j ) . j Nr 0. x0 = x1 = x2 = x3 = x4 = x5 = 3. 1 0 0 0 38 7 5 x1 -1 -1 0 2 1 4 x2 -1 0 -1 11 1 -5 x0 = x1 = x2 = x3 = x4 = x5 = 1 7 4 3 -3 0 4 x4 1 0 1 -11 -1 5 x6 0 1 -1 9 0 -9 4. 1. x0 = x1 = x2 = x3 = x4 = x5 = 2. 1 7 7 0 24 0 -23 x4 1 1 0 -2 -1 -4 1 x4 7 x0 = 1 x1 = 40/9 5/9 x 2 = 23/9 4/9 1 x3 = -6 0 x4 = -1 0 x5 = 0 x6 = -4/9 -5/9 Отсечение по строке x2 0 1 -1 9 0 -9 x5 0 1/9 -1/9 1 0 -1 -1/9 x1 . 1 x3 x6 74/11 x0 = 1/11 9/11 4 x1 = 0 1 x 2 = 30/11 1/11 -2/11 0 x3 = -1 0 3/11 x4 = -1/11 -9/11 29/11 x5 = 5/11 -51/11 -8/11 -1/11 x7 = -9/11 Отсечение по строке x0 . 5. x0 = x1 = x2 = x3 = x4 = x5 = 1 6 4 2 8 1 -1 x7 1 0 1 -11 -1 5 x6 0 1 -1 9 0 -9 64 6. 8. x0 = x1 = x2 = x3 = x4 = x5 = x8 = 1 6 35/9 19/9 7 1 0 -8/9 x7 1 5/9 4/9 -6 -1 0 -5/9 x5 0 1/9 -1/9 1 0 -1 -1/9 Отсечение строилось по строке x1 . x0 = x1 = x2 = x3 = x4 = x5 = x9 = x0 = x1 = x2 = x3 = x4 = x5 = x7 1 0 1 -11 -1 5 x8 0 1 -1 9 0 -9 x3 1/11 0 1/11 -1 -1/11 5/11 -1/11 x8 9/11 1 -2/11 0 -9/11 -54/11 -9/11 Отсечение по строке x0 . 9. 7. 1 6 3 3 -1 1 8 1 65/11 3 32/11 0 12/11 83/11 -10/11 x0 = x1 = x2 = x3 = x4 = x5 = 1 5 3 2 10 2 3 x9 1 0 1 -11 -1 5 x8 0 1 -1 9 0 -9 l-нормальная симплексная таблица с целочисленным планом. Ответ: Lmin 5 ; x (3, 2) т . Рис. 3.2. Построение отсечений в задаче 65 На рисунке 3.2. продемонстрировано построение отесечений, последовательно отсекающих от допустимой области полученные нецелочисленные планы. 3.5. Доказательство конечности первого алгоритма Гомори Предполагается, что множество оптимальных планов задачи ( L, C ) ограничено. Теорема. Пусть выполнены следующие условия: 1) гарантирована целочисленность целевой функции x0 c x (например все c j – целые, j = 0, 1, 2, …, n) и x 0 учитывается при выборе строки для построения правильного отсечения; 2) по крайней мере одно из следующих двух утверждений верно: а) целевая функция x 0 ограничена снизу на L0 ; (отсюда и из ограниченности множества оптимальных планов следует, что L0 — многогранник). б) задача ( Lц0 , C ) имеет хотя бы один план ~ x; Тогда первый алгоритм Гомори требует лишь конечного числа больших итераций (итераций с построением отсечений). Сначала 3 леммы. Пусть x ( Lr , C ) x r ( x0r , x1r , , xnr ) – l-оптимальный план задачи ( Lr , C ) . Обозначим xˆr – псевдоплан, соответствующий таблице Tˆr , которая получается после вывода из базиса xn r 1 и вычѐркивания соответствующей строки. Лемма 1. x r xˆ r x r 1 . Доказательство вытекает из правил l-метода (можно посмотреть по примеру). Лемма 2. Числа xir ( i 0, n ) ограничены снизу. Доказательство. При i 1, n , это следует из xi 0, i 1, n . При i = 0 это следует из условия 2 теоремы. Если выполнено а), то лемма тривиально верна. Если же выполнено б), то заведомо xr x , так что x0r x0 и лемма верна. 66 Лемма 3. Если xr не удовлетворяет условию целочисленности и x rp – не целое, то ( x0r , x1r , , x rp 1 , [ x rp ]) x rp 0 ( xˆ0r , xˆ1r , , xˆ rp ) (следующая таблица после отсечения). Доказательство. Пусть k min{i | i {0,1, , n}; xir0 не целое}. Тогда k p. Далее, пусть Rlr {xkr l } lex min R rj r kl {x } j N r ; {xkr j } 0 (по существу выбор разрешающего столбца при переходе к T̂r ) и h( Rlr ) min{i | i {0, 1, , n}; xirl 0} (номер первой не нулевой компоненты столбца; Rlr – разрешающий столбец и в нѐм элементы выше h равны 0, т.е. переходим к таблице Tˆr , отсюда следует xˆir0 xir0 ). Так как {xkr l } 0 , то и xkr l 0 , и, следовательно, h( Rlr ) k p. Возможны два случая 1) h( Rlr ) q p , 2) h( Rlr ) q p. В случае 1) x̂qr xqr в силу правил l-метода x1r xˆ0r xˆ1r ... ... xqr xˆqr ... ... [ xˆ rp ] x0r r p [x ] и лемма доказана. В случае 2) x rp l 0 , так как таблица l-нормальна и h( Rlr ) k = p. В силу правил l-метода получаем. xˆir0 xir0 при i < k (выше p в Rlr нули) {xkr p } r r r xˆk 0 xk 0 xk l . {xkr l } k , то 67 Но так как xkr l x rp l Лемма доказана. 0 , то xkr l {xkr l } и xˆ kr 0 xkr 0 {xkr 0 } [ xkr 0 ] . Доказательство теоремы: Пусть последовательность x 0 , x 1, , x r , бесконечна. Тогда (в силу лемм 1 и 2) найдѐтся такое число i0 (0 такое число r0 ( r0 0) и такая бесконечная последовательность ( r1 r0 ), r1 r2 ... r ... что 0 i i0 –1, xir 1 xir , r r0 , (перестала меняться) xir0 1 xir0 , = 1, 2, … Из леммы 1 и формулы (3) получается xir0 1 xir0 , r r0 (так как x r ! x r , а xir 1 i0 (1) n), (2) (3) (4) (5) xir , r r0, 0 i i0 –1). Из (4), (5) и леммы 2 (ограниченности чисел xir ) следует существование такого числа r r0 и таких целых чисел z0 и z0 +1, что xir0 z0 z0 1, r r . (6) Из (3), (6) и леммы 3 получаем xir0 а это противоречит (6) ( xir0 1 1 xˆir0 [ xir0 ] z0 , z0 , а по (6) должно быть xir0 1 z 0 ). Следовательно, последовательность планов не бесконечна и теорема доказана. 3.6. Второй алгоритм Гомори Он имеет дело с более широким классом задач. Рассматривается частично целочисленная задача линейного программирования. x0 cjxj max j 1 n ai j x j bi , i 1, , m, j 1 xj 0, xj целое, j 1, , n, j 1, , n1 , n1 n. 68 x r – оптимальный опорный Теорема: Пусть последовательность x ( Lr , C ) план задачи ( Lr , C ) и xir j , i Q n , Tr j Nr , (где Q n = {0, 1, …, n}, N r = {индексы небазисных переменных}) – соответствующая симплексная таблица, 1 i n1 , xir0 – не целое. Тогда неравенство (1) jxj 0, j Nr или, что то же самое, z 0 j xj , (2) j Nr z 0 (3) является правильным отсечением. Здесь {xir0 } , 0 {xir j }, {xir0 } r i0 1 {x } j (1 {xir j }), xir j , {xir0 } r i0 1 {x } ( xir j ), (4) j n1 , {xir j } {xir0 }, j n1 , {xir j } {xir0 }, j n1 1, xir j 0, j n1 1, xir j 0. (5) Доказательство: 1) Проверим условие отсечения. Действительно r 0 / 0 {xir0 } jxj j 0 j Nr j Nr (не удовлетворяется) и условие отсечения выполнено. 2) Проверяем условие правильности (если x – план задачи ( Lц0 , C ) – то он удовлетворяет неравенству). Выпишем разложение xi по небазисным переменным x j xi xir0 xijr ( x j ) . j Nr Пусть xijr xij , j Nr , j xij yij , j Nr , n1 1, j n1 , где yij – некоторые целые числа, величины которых будут выбраны позже. Тогда 69 xi [ xir0 ] {xir0} yij x j j Nr j n1 xij ( x j ), j Nr {xir0} xij ( x j ) zi ( x ) , j Nr zi (x ) — целое. Введѐм обозначения Nr { j j Nr {j j Nr ; xij 0} { j j N r ; xij 0} Nr ; xij 0} { j j N r ; xij 0} ( xij ) x j , S (x ) j Nr ( xij ) x j . S (x ) j Nr Заметим, что S (x ) 0 , S (x ) 0 . (6) (7) (Это из того, что x – план задачи). Эти неравенства можно переписать в следующем виде. {xir0 } S (x ) 0 , 1 {xir0 } S (x ) 0. (8) (9) Далее получаем {xir0 } S ( x ) S ( x ) zi ( x ) , zi (x ) – целое. Возможны два случая: 1) S ( x ) S ( x ) 0 , 2) S ( x ) S ( x ) 0 . Случай 1 . S (x ) S (x ) 0 . Тогда zi ( x ) {xir0 } и в силу нецелочисленности { xir0 } zi (x ) 0, а в силу целочисленности zi (x ) , zi (x ) 1, так что S ( x ) S ( x ) 1 {xir0 } или из (9) 70 S ( x ) 1 {xir0 } (т.к. S (x ) 0 ). Это неравенство можно записать в следующем виде (умножить и поделить) {xir0 } S ( x ) {xir0 } . (10). r 1 {xi 0 } Случай 2 . S (x ) S (x ) 0 . Имеем zi ( x ) {xir0 } , а в силу целочисленности zi (x ) , zi (x ) 0 , так что {xir0 } S ( x ) S ( x ) 0 . Отсюда и из (6) ( S ( x ) 0 ) получаем S ( x ) {xir0 } . (11) Объединив в случае 1 неравенства (10) и (9), а в случае 2 – неравенства (11) и (8) получим {xir0 } r i0 1 {x } S ( x ) S ( x ) {xir0 } или, что то же самое, {xir0 } r i0 1 {x } Неравенство (12) имеет вид j Nr ( xij ) x j (12) j xj {xir0 } , n1 ), а правая часть { xir0 } не зависит от выбора yij . Следовательно, каждое из чисел yij следует выбирать так, чтобы j ( yij ) было наименьшим – в этом случае будет ―отсечена‖ как можно большая часть многогранника. Так как xij xijr yij , j N r , j n1 , так что j 0, причѐм {xir0} . j Nr j Nr где xij x j j j ( yij ) ( i {xir0 } j ( yi j ) r i0 1 {x } xijr yij xijr , если yij yij , если xijr yij xijr 0, 0. 71 Сразу можно выделить случай, когда xijr – целое число. Можно положить yij xijr и тогда j Это минимум лое. Тогда min j ( yij ) , т.к. {xir0 } 1 {x } x min{xijr ( yij ) =0. 0. Теперь допустим, что xir j – не це- ( yij ) r ij yij r i0 j j r ij yij x 0 yij xijr yij {xir0 } r i0 1 {x } 1 {xijr } , 0} {xijr } (напомним, yij — целые). Какое из этих j надо выбрать? Естественно, минимальное. Учитывая условие минимальности, получаем {xir0 } min 1 {xijr } , {xijr } . j r 1 {xi 0 } Рассмотрим линейную функцию {xir0 } q( x) (1 x) , (0 x 1 {xir0 } q(0) {xir0 } r i0 1 {x } 1), {xir0} , q ({xir0 }) {xir0 } , q(1) = 0 < 1, т.е. min{q( x), x} x, x {xir0 }, q( x), x {xir0 }, Таким образом {xijr }, j ( yij ) {xijr } {xir0 }, {xir0 } r i0 1 {x } 1 {xijr } , {xijr } {xir0 }. Окончательно получаем: 72 {xijr }, {xir0 } r i0 1 {x } j (1 {xijr }), xijr , {xir0 } r i0 1 {x } ( xijr ), j n1 , {xijr } {xir0 }, j n1 , {xijr } {xir0 }, j n1 1, xijr 0, j n1 1, xijr 0. Правило построения правильного отсечения: Пусть x ( Lr , C ) не удовлетворяет условию целочисленности и xijr – соответствующая ему симплексная таблица. Выбираем k min{i | i {1, , n}; xir0 не целое} (i {1, …, n1}) и i {0,1, …, n1} если гарантирована целочисленность целевой функции) и строим правильное отсечение xn r 1 0; xn r 1 ( 0 j )( x j ) . j Nr 0 и j определяется по (4) и (5) при i k. Что важно, не требуется, чтобы xn r 1 было целым. С помощью второго алгоритма можно решать и полностью целочисленные задачи ( n n1 ). Но в этом случае нельзя сравнивать его по эффективности с первым. Пример. Тот же пример (при всех целых) x0 x1 x2 max при 2 x1 11x2 38 , x1 x2 7 4 x1 5 x2 5 4, xi 0, i 1,2 . xi – целые. Третья таблица: 73 x0 = x1 = x2 = x3 = x4 = x5 = x6 = 1 7 40/9 23/9 1 0 0 –20/45 x4 1 5/9 4/9 –6 –1 0 –16/45 x5 0 1/9 –1/9 1 0 –1 –5/45 Переменные x1 , x2 , x3 , x4 , x5 – целые. На x 6 и последующие переменные, связанные с построенными отсечениями, требование целочисленности не накладывается. Отсечение строится по строке для x1 : 0 {x130 } 4 9 {x130 } 4 5 1 {x130 } 20 ; 45 49 16 (1 5 9) ; 1 49 45 (1 {x134 }) 3 {x15 19 x0 = x1 = x2 = x3 = x4 = x5 = 1 7 4 3 –3 0 4 x0 = x1 = x2 = x3 = x4 = x5 = x7 = 1 307/46 184/46 63/23 0 15/46 68/23 –31/46 49 x4 1 1/5 4/5 –46/5 –1 16/5 x130} 5 1 9 5 . 45 x6 0 1 –1 9 0 –9 x3 5/46 1/46 2/23 –1 –5/46 8/23 –5/46 x6 45/46 55/46 –5/23 0 –45/46 –135/23 –45/46 74 Отсечение строится по строке x0 . Так как 5/46 < 31/46, x6 6 не наложено 45 46 x06 требование целочисленности, 3 {x03 } 5 . На 46 следовательно, . x7 x6 1 x0 = 6 1 0 x1 = 19/5 1/5 1 x 2 = 11/5 4/5 –1 x 3 = 31/5 –46/45 9 x4 = 1 –1 0 x5 = 4/5 16/5 –9 x8 = –4/5 –1/5 –1 Отсечение строится по строке x1 . На x 6 и x7 не наложено требование целочисленности. x0 = x1 = x2 = x3 = x4 = x5 = –1 6 3 3 –1 1 8 x7 1 0 1 –11 –1 5 x8 0 1 –1 9 0 –9 Таблица недопустима. x0 = x1 = x2 = x3 = x4 = x5 = x9 = 1 65/11 3 32/11 0 12/11 83/11 –10/11 x3 1/11 0 1/11 –1 –1/11 5/11 –1/11 Так как 1/11 < 10/11, численности: 9/11 > 0. x8 9/11 1 –2/11 0 –9/11 –54/11 –9/11 3 {x03 } 1 . На x8 не наложено требование цело11 75 x0 = x1 = x2 = x3 = x4 = x5 = 1 5 3 2 10 2 3 x9 1 0 1 –11 –1 5 x8 0 1 –1 9 0 –3 Найден оптимальный план. 76 3.7. Третий алгоритм Гомори Программная реализация 1-го и 2-го алгоритмов Гомори может привести к неправильному результату из-за ошибок округления или ошибок при подсчѐте дробных частей. Третий алгоритм Гомори свободен от влияния ошибок округления. Он предназначен для решения полностью целочисленной задачи линейного программирования: n x0 cjxj max ; j 1 n aij x j bi ; i 1,2,..., m ; j 1 xj 0 ; j 1,2,..., n ; x j – целые. Схема 3-го алгоритма Гомори аналогична схемам, рассмотренным ранее. Отправляясь от начальной l-нормальной таблицы T0 , с помощью итераций l-метода получают последовательность таблиц T0 , T1 ,…, Ts , последняя из которых является допустимой. Третий алгоритм называют ещѐ полностью целочисленным. Начальная таблица T0 строится полностью целочисленной, а затем отыскивается целочисленное правильное отсечение. Дробные числа в следующей таблице получаются из-за присутствия в формулах преобразования операции деления. В этом случае целочисленность новой таблицы может быть гарантирована, если только разрешающий элемент будет равен (–1). Это и делается в 3-ем алгоритме Гомори при построении отсечения. Его строят так, чтобы разрешающий элемент был равным (–1). Формулировка целочисленного правильного отсечения звучит следующим образом. xij n 0 – недопустимая целочисленная таблица, lПусть T i Q ,j N нормальная. Тогда z ( x ) r0 rj ( x j ) j N должно удовлетворять следующим условиям: 1. Условию целочисленности: r j - целое, 2. Условию отсечения: z ( x ) r0 0 . j N0. 3. Условию правильности. Для любого плана x задачи ( Lц , C ) выполняется неравенство z ( x ) 0 . 77 4. Условию сохранения целочисленности. Если среди чисел r j ( j N ) есть отрицательные и R j j N)и Rl rl lex min j N ; r j 0; Rj x0 j x1 j ... xnj - столбец матрицы Ti ( , то r j = –1. rj Это означает, что если строка z ( x ) выбирается в качестве направляющей, то направляющий элемент равен (–1). Алгоритм определения оптимального плана можно выразить следующим образом. Начинают с исходной недопустимой таблицы T0 . Затем, построив правильное целочисленное отсечение, удовлетворяющее условиям 1-4, переходят к таблице T1 , затем к T2 , и т.д. пока не получат допустимую таблицу. Как и прежде используются итерации l-метода. Ограничения, полученные из сформированного отсечения, приписываются снизу к соответствующей таблице. Вся последовательность таблиц, формируемая в процессе решения, является целочисленной и l-нормальной. 3.7.1. Построение целочисленного правильного отсечения для 3-го алгоритма Гомори Главным для 3-го алгоритма является построение отсечения, гарантирующего целочисленность следующей симплексной таблицы. Необходимо подчеркнуть, что 3-й алгоритм применяется к таблице T0 (исходной), если она l-нормальна и целочисленна, т.е. все еѐ коэффициенты целые. Следовательно, предварительно необходимо получить такую таблицу. Целочисленное правильное отсечение строится на основании следующей теоремы. Теорема: Пусть 0 , y0 0 j M j ( y j ) , где M – конечное множе- ство, z j 0 ( yj), (*) j M где [•] – означает целую часть числа; y j j M . Тогда z 0, j {0} M , y j - целое, 0 ; z – целое. 78 Доказательство. Целочисленность z получается прямо из выражения для него (*), где справа только целые величины и нет операций деления ( y j целые, а [•] означает целую часть числа). Необходимо показать неотрицательность. Допустим, что z 0 , тогда из целочисленности z следует, что z 1 . С другой стороны, y0 j 0 ( yj), j M а это можно представить в следующем виде: y0 j 0 yj z, j M где {•} – дробная часть. Из этого и из того, что z y0 j 0 yj 1 , получаем: 1 0, j M а это невозможно, так как 0, j {0} M и 0; y j j – всегда не- отрицательна. Теорема доказана. Используя теорему, можно построить целочисленное правильное отсечение, удовлетворяющее условиям (1-4). Пусть задана целочисленная, недопустимая и l-нормальная таблица. T xij и пусть для некоторого k (1 k n) xk 0 Положим M=N, j xkj ( j i Qn ; j N 0 0. N 0 ), y0 max j 0, j j N0 xk , y j xj ( j N ), , так что j 1, 0, j 0, и получим целочисленное правильное отсечение: z zk ( , x ) 1 ( 1)( x j ) , j N xkj 0 z 0 ; z – целое. 79 3.7.2. Построение начальной l-нормальной целочисленной симплексной таблицы Мы уже говорили, что исходная таблица должна быть целочисленной и l-нормальной. Допустим, что построили таблицу T0 для задачи целочисленного ЛП: n x0 cjxj max j 1 n aij x j bi , i 1, m, (1) j 1 (**) xj 0, j 1, n, xj целое, j 1, n. Если T0 l-нормальна, то можно переходить к итерациям алгоритма Гомори. Если нет, то можно воспользоваться следующим приѐмом для получения l-нормальной целочисленной симплексной таблицы. n n При условиях (**) ищут max x j и находят max j 1 xj M . j 1 Очевидно, что для всех шагов задачи (1) выполняется n xj [M ] M . j 1 Следовательно, можно ввести новую переменную n xn M 1 1 ( xj) , j 1 xn 1 0 ; xn 1 – целое. Строку xn 1 приписываем снизу к таблице T0 и берѐм в качестве направляющей. Направляющим столбцом выбираем Rl lex min R j . j {1,..., n} где Rl – столбец таблицы T0 , соответствующий небазисной переменной. Делаем одну итерацию l-метода, вычѐркиваем строку xn 1 и получаем полностью целочисленную и l-нормальную таблицу T0 . В дальнейшем, если переменная xn 1 вводится в базис, то соответствующая строка не восстанавливается. 80 3.7.3. Алгоритм Итерация 0. Строится исходная таблица T0 : T 0 xij i Qn ; j N 0 , цело- численная и l-нормальная. Если T0 является допустимой, то расширенный l-псевдоплан ~ x0 0 ( x00 , x10 ,..., xn0 ) ( x00 , x100 ,..., xn00 ) является расширенным оптимальным планом задачи ( Lц , C ) . Если T0 не является допустимой, то переходим к 1-й итерации. Итерация p (p 1). Задана целочисленная и l-нормальная, но недопустимая таблица T p 1 xijp 1 n . Столбцы T p 1 обозначаем 0 i Q ; j Np R jp 1 x0pj 1 x1pj 1 . ... xnjp 1 1 Находим первую по номеру компоненту xip0 1 , нарушающую допустимость таблицы T p 1 , k Если числа xkjp 1 0, 1,2,..., n ; xip0 1 0} . min{i i (1) N p 1 , то задача ( Lц , C ) неразрешима. Ес- j ли же среди чисел xkpj 1 есть отрицательные, то выбираем ведущий столбец Rlp 1 Rlp 1 lex min R jp 1 (2) j N p 1 ; xkj 0 и строим целочисленное правильное отсечение xn xkpj 1 xkp0 1 p j Np xn p 0, xn p ( xj); (3) 1 – целое. Строка xn p приписывается снизу к таблице, принимается за направляющую и осуществляется одна итерация l-метода. Переменная xn p – выводится из базиса, а xl – вводится. Стока xn p вычѐркивается. Если l новую таблицу: n 1 , то строку xl не восстанавливаем. Получаем Tp xijp целочисленную и l-нормальную, N p i Q n ; j N 0p [ N p 1 \ {l}] {( n p)} . 81 Если таблица окажется Tp допустимой, то вектор p x ( x00p , x10p ,..., xnp0 ) является расширенным оптимальным планом задачи ( Lц , C ) . Если T p – недопустима, то переходим к (p+1) итерации. 3.7.4. Выбор При выборе соблюдаются следующие условия. 1. Направляющий элемент должен быть равен (–1): xkpl 1 1. (4) 2. Следующая таблица T p должна быть l-нормальной: R j \{(n p j R xkpj 1 p 1 j Rlp 1 0. (5) p)} N p 1 \ {l} – все остальные столбцы. 3. Столбец R0p должен быть l-минимальным: p 0 R xkp0 1 p 1 0 R Rlp 1 lex min . (6) Замечание. Так как направляющий элемент равен (–1) и Rlp Rnp p Rlp 1 0 . Из п.1 следует положительность , т. к. xkpl 1 Как найти щим образом 1 0 , то 0. из условий (4-6)? Условие 4 можно переписать следую- xklp 1 1 0, или xklp 1. (4’) Условие (5) также можно упростить. Если xkpj 1 xkpj 1 0 , то Rlp 1 0 и условие (5) выполняется при любом (положительном) . Таким образом, достаточно рассматривать те j N p 1 \ {l} , для которых xkpj 1 0 . Теперь, пусть j Np 1 h( j ) min{ i xijp 1 0}. Из (2) (то есть, из того, что Rl – l-минимальный столбец) следует: 82 N p 1; xkjp h(l ) max{ h( j ) j Если h( j ) 1 0}. h(l ) , то, очевидно, что при любом xkpj 1 p 1 j R Rlp 1 0 . Следовательно, достаточно рассмотреть лишь те j xkpj 1 0 и h( j ) N p 1 \ l , для которых h(l ) . Обозначим множество таких j через N p 1 : Np N p 1 \ {l}; xkjp {j j 1 1 0; h( j ) h(l )}. Теперь условие (5) можно переписать следующим образом: R jp R jp Если множество N p xkpj 1 1 Rlp 1 0, j (5’) Np 1. пусто, то условие (5’) не накладывает никаких 1 ограничений на (положительное) пусто. Тогда для каждого j Np . Допустим, что множество N p 1 1 не можно найти такое натуральное число z j , что R jp Заметим, что R jp R jp 1 ( z j 1) Rlp 1 0 R jp 1 1 zRlp 1 1 z j Rlp 1 . ни при каком z . Действительно, если zRlp 1 , то det xijp 1 i N0; j Np 0. 1 Но это невозможно, поскольку направляющие элементы у нас все время равны (–1). Поэтому получим det xijp 1 i N0 ; j N p 1 det xijp 2 i N0 ; j N p 1 det xij0 i N0 ; j N0 0 det 0 Возможны четыре случая: 1) xhp(l1) j xhp(l1)l . В этом случае z j 2 0. 1 1. 2) xhp(l1) j qxhp(l1)l r , здесь q и r – натуральные числа, r В этом случае: z j q . 3) xijp 1 qxilp 1 , i h(l ), h(l ) 1, ..., h(l ) t натуральное q 2 . В этом случае z j q ; s 1, xsjp 1 xhp(l1)l . qxslp 1 . Здесь 83 4) xijp 1 qxilp 1 , i h(l ), h(l ) 1, ..., h(l ) t s 1, xsjp 1 qxslp 1 . Здесь натуральное q 2 . В этом случае z j q 1 . Вычислив z j , можно переписать (5’) следующим образом: xkpj 1 zj, j N p 1, или xkpj 1 xkpj 1 zj, xkjp 1 max zj j , zj j Np . 1 (5’’) 0 и Rlp 1 0, то условие (6) можно пе- 0, xkp0 1 И, наконец, так как реписать следующим образом: (6') min . Из (4’), (5’’), (6’) получаем: max{ xklp 1, } . (7) Таким образом, целочисленное правильное отсечение строим по соотношению xn xkpj 1 xkp0 1 p j Np xn А p 0, xn ( xj); (3) 1 p – целое. выбираем из условия: max{ xklp 1, } . (7) где max j xkpj zj 1 j Np 1 . (5’’) Пример. Применение 3-го алгоритма Гомори. x0 x1 x2 max x1 x2 x3 9 , 4 x1 7 x2 x4 4 , 5 x1 6 x2 x5 6 , xi 0 , xi – целые. 84 1 0 0 0 9 4 6 x0 = x1 = x2 = x3 = x4 = x5 = x1 –1 –1 0 1 –4 5 x2 –1 0 –1 1 7 –6 Выбрав в строке x3 направляющий элемент, получим l-нормальную целочисленную, но недопустимую таблицу: 1 9 9 0 0 40 –39 –4 x0 = x1 = x2 = x3 = x4 = x5 = x6 = x3 1 1 0 –1 4 –5 –1 x2 0 1 –1 0 11 –11 –1 Строим отсечение по строке x5 . Лексикографически минимальный столбец: min R j R2 . x5 j 0 h(3)=0, h(2)=1, l=2, h(3)<h(2), следовательно, множество N p xkl 11, x6 39 11 5 ( x3 ) 11 x0 = x1 = x2 = x3 = x4 = x5 = x7 = 11 ( x2 ) 11 1 9 5 4 0 –4 5 –1 x3 1 0 1 –1 –7 6 –1 1 Ø и 4 1( x3 ) 1( x2 ) . x6 0 1 –1 0 11 –11 1 85 Строим отсечение по строке x 4 . Лексикографически минимальный столбец: min R j R3 . x4 j 0 Остальные xkj 0 , следовательно, 4 7 x7 xk l 7 ( x3 ) 7 1 8 5 3 1 3 –1 –1 x0 = x1 = x2 = x3 = x4 = x5 = x8 = x7 1 0 1 –1 –7 6 1 7 , отсечение 11 ( x6 ) . 7 x6 1 1 0 –1 4 –5 –1 Строим отсечение по строке x5 . Лексикографически минимальный столбец: min R j R6 . x5 j 0 =5, x8 1 5 1 7 4 3 2 –1 4 –1 x0 = x1 = x2 = x3 = x4 = x5 = x9 = =3, x9 6 ( x7 ) 5 1 3 x7 2 1 1 –2 –3 1 –1 3 ( x7 ) 3 5 ( x6 ) 5 x8 1 1 0 –1 4 –5 1 4 ( x8 ) 3 86 x9 2 1 1 –2 –3 1 1 5 3 2 4 2 3 x0 = x1 = x2 = x3 = x4 = x5 = x8 3 2 1 –3 1 –4 План допустим и, следовательно, оптимален. 3.8. Доказательство конечности третьего алгоритма Гомори Пусть задана полностью целочисленная задача линейного программирования ( Lц , C) n x0 cjxj max j 1 n aij x j bi , i 1, m, j 1 xj xj 0, j 1, n, целые, j 1, n. И ее условия определяются целочисленной l-нормальной таблицей T0 . ( x1 , x2 ,..., xn ) задачи ( Lц , C) , то третий Теорема. Если существует план x алгоритм Гомори конечен. Доказательство. По-прежнему обозначаем симплексную таблицу на шаге p: Tp где N p0 ~ xp {0} xijp i Q n ; j N 0p ; N p , а N p – множество индексов небазисных переменных, ( x p1 , x 2p ,..., x np ) – расширенный l-псевдоплан, соответствующий таблице T p . Далее, пусть k p 1 min{ i i 1,2,.., n ; xip0 1 0} . Обозначим через l p номер направляющего столбца на p-й итерации: Rlpp 11 lex min Rj . p 1 j N p 1 ; xk p 1, j 0 Очевидно, что в силу правил l-метода: 87 1 x 0 x1 x 2 ... x p ... x . (1) Отсюда следует, что x0p (2) x0 , p 0,1, ... Далее, существует такое p0 , что (3) x0p 1 x0p , при p p0 . Это, действительно, так, потому что x0p – целое при любом p, а следовательно, целое и ( x0p 1 x0p ) 0. А это значит, что количество итераций p, для которых ( x0p 1 x0p ) 0 , не превышает x00 x0 , отсюда и следует (3) (т.к. на каждой итерации x 0 меняется). Допустим теперь, что количество итераций бесконечно. Тогда найдутся такие d1 1 и p1 1 , что: 1) xip 1 xip , p p1 , i 0,1, .., d1 1 (i-е компоненты перестают меняться); 2) найдется сколь угодно большое p, для которого xdp1 1 xdp1 , p p1 . (4) (5) Из (1), (4) и (5) имеем xdp1 1 xdp1 , p p1 . Следовательно, найдется такое p2 p1 , что xip 1 xip , p p2 , i 0,1, .., d1 1, xdp1 1 0, p p2 . Рассмотрим q-ю итерацию при q p2 . Из (8) следует, что: xdq1 1 0 , k q 1 d1 , (6) (7) (8) (9) (10) а отсюда в силу отрицательности xkqq 11lq 1 и лексикографической положительности Rllq 11 получаем : h(lq 1 ) min{ i i 0,1,..., n ; xilqq 11 0} d1 1 . (11) Из (11) следует, что xhq(lq 1 ) xhq(l1q 1 ) 1, где h(lq 1 ) d1 1 , q p2 (12) (в силу целочисленности отсечений соответствующий элемент в новой таблице хотя бы на 1 меньше). Сравнивая (7) и (12), получаем противоречие. Следовательно, конечность третьего алгоритма доказана. 88 Третий алгоритм Гомори может оказаться не конечным, если множество планов задачи ( Lц , C) пусто или пусто даже множество планов задачи ( L, C ) . Финкельштейном предложена небольшая и естественная модификация, гарантирующая конечность при соблюдении следующих условий: 1. Построена исходная целочисленная и l-нормальная таблица T0 . 2. Множество D планов задачи ( L, C ) ограничено. В силу ограниченности множества D можно методами линейного программирования найти min x0 M . x D Если задача минимизации x0 на D неразрешима, то неразрешима и задача ( Lц , C) . Если же эта задача разрешима, то для любого плана задачи ( Lц , C) получаем x0 x0 ]M [ 0 , где ]M [ – наименьшее целое число, не меньшее M . В исходной таблице T0 x0 заменяется на x0 (компоненты исходного оптимального плана от этого не изменятся). Теперь при проверке допустимости таблицы T p начинают с неотрицательности числа x00p . Если окажется при этом, что x00p 0, то задача ( Lц , C) неразрешима (т.к. все элементы в 0-строке не отрицательны в столбцах небазисных переменных). 89 4. Дополнительные главы нелинейного программирования 4.1. Классические методы решения задач оптимизации с ограничениями типа равенств Задача формулируется следующим образом. Необходимо найти точку x0 , в которой целевая функция достигает min или max на заданном множестве значений D R n , т.е. Q( x ) min (max) * при i ( x ) 1, m. i, i Допустимое множество, на котором определен критерий * D {x i ( x ) 1, m} . i, i (1) Структура его зависит от соотношения числа уравнений m и числа неизвестных n . Соотношение d n m называют дефектом системы. * При d 0 , если система уравнений i ( x ) является совместi ной, то D представляет собой совокупность корней данной системы уравнений. В этом случае для решения задачи (1) достаточно просмотреть эту совокупность и выбрать ту точку, в которой Q(x ) достигает оптимального значения. Если система линейна, то она имеет единственный корень. Если нелинейна, то число корней может быть сколь угодно большим. Например, см. рисунки 4.1-4.2. Рис. 4.1. Некоторое множество изолированных корней Рис. 4.2. Бесконечное множество корней * При положительном дефекте в случае линейной системы i ( x ) i и d 1 множество D представляет собой прямую, в случае d 2 – плоскость, при d 3 – многогранник типа конуса и т.д. В случае нелинейной системы при d 1 множество D представляет собой некоторую кривую, при d 2 – поверхность, при d 3 и более – конус. 90 При d 0 , исключив лишние ограничения, придем к одному из рассмотренных вариантов или определим несовместность системы. Вообще говоря, задачу (1) можно решать и приближенно, переходя к задаче с ограничениями в виде неравенств Q( x ) min (max) при i (x ) Решение находится с точностью * i i , i 1, m. (см. рис. 4.3). Рис. 4.3. Поиск приближенного решения При d 0 для решения задачи (1) обычно, если это удается, поступают следующим образом. Пусть имеется задача (1) с системой ограничений * (2) 1, m , i (x ) i, i причем d 0 , т.е. m n . Система ограничений совместна и лишних ограничений нет. Тогда часть переменных, а именно m , выразим в явном виде из (2) через другие n m , т.е. xn m 1 1 ( x1 , x2 ,..., xn m ) xn m 2 2 ( x1 , x2 ,..., xn m ) (3) xn m ( x1 , x2 ,..., xn m ) В критерий Q(x ) вместо переменных xn m 1 , xn m 2 , , xn подставляем выражения из (3) Q( x ) Q( x1 , x2 ,..., xn m , 1 ( x1 , x2 ,..., xn m ),..., m ( x1 , x2 ,..., xn m )) . В результате получаем задачу безусловной оптимизации меньшей размерности Q( x1 , x2 ,..., xn m , 1 ( x1 , x2 ,..., xn m ),..., m ( x1 , x2 ,..., xn m )) min (max) . Следовательно, можем воспользоваться необходимыми условиями экстремума и найти решение задачи (1), решив систему 91 Q( ) 0 x1 . Q( ) 0 xn m (4) 4.2. Метод множителей Лагранжа Самое сложное при рассмотренном подходе разрешить систему ограничений, представив ее в виде (3). Далеко не всегда удается получить разрешение в форме (3) в элементарных функциях. Вопрос о том, когда функции i () существуют, дает теорема о неявных функциях. Пусть все функции i ( x ) C1 . Рассмотрим первые частные производные этих функций. Эти производные можно рассматривать как элементы прямоугольной матрицы размерности m n i xj . m n Из нее можно выделить n! / m!(n m)! различных подматриц порядка m . Например, 1 x j1 1 x jm J x ( j1 , j2 ,..., jm ) m x j1 . m x jm Эта матрица называется якобианом функций i ( x ) по переменным x j1 , , x jm . Индекс x указывает на точку, в которой вычислены элементы якобиана. Пусть k1 , k 2 ,..., k n m множество индексов из числа 1, 2, , n , не принадлежащих множеству j1 , j2 ,..., jm . En обладает Теорема о неявных функциях. Пусть x 0 ( x10 , x20 ,..., xn0 ) следующими свойствами: 1) в некоторой -окрестности точки x 0 функции i ( x ) C1 , i 1, m ; 2) i ( x 0 ) 0, i 1, m ; 3) матрица J x 0 ( j1 , j2 ,..., jm ) неособенная. 92 0 -окрестность ( >0) точки xˆ Тогда существует En m такая, что для любой точки xˆ ( xk01 , xk02 ,..., xk0n m ) из ( xk1 , xk2 ,..., xkn m ) из этой - окрестности существуют однозначные и непрерывные в т очке x̂ 0 функции 1 ( xˆ ) , 2 ( xˆ ) , …, m (xˆ ) , обладающие свойствами: 0 А) x ji i ( xˆ 0 ) , i 1, m ; Б) при любом x̂ из ленные по x ji i -окрестности x 0 значения x̂ ji , i 1, m , вычис- (xˆ ) вместе с компонентами вектора x̂ образуют век- тор x , удовлетворяющий В) в i ( x ) 0, i 1, m ; -окрестности x̂ 0 функции i данных k r , r 1, (n m) , производные (xˆ ) дифференцируемы и при i x kr являются единственным ре- шением системы уравнений m i u 1 u i x ju xkr xkr , i 1, m . (5) Выведем необходимые условия, которым должна удовлетворять точка x 0 , доставляющая Q(x ) относительный максимум или минимум на множестве D x i (x ) * i , i 1, m . Для того чтобы в дальнейшем найти абсолютный максимум или минимум, необходимо вычислить все относительные оптимумы и выбрать наилучший. Рассмотрим для начала функцию двух переменных с одним ограничением. Пусть имеем Q( x1 , x2 ) , ( x1, x2 ) C1 . Найдем необходимые условия, которым должна удовлетворять точка x 0 ( x10 , x20 ) , если в ней достигается относительный максимум (или минимум) при ( x1 , x2 ) Допустим, что ( x0 ) x2 x1 или x2 * . не равна нулю в точке x 0 . Пусть 0 . Тогда по теореме о неявных функциях существует - окрестность точки x10 ( x̂ 0 ), в которой можем разрешить ( x1, x2 ) * 0 ( x1 ) , где () непрерывно дифференциотносительно x 2 так, что x2 ( x10 ) . руемая функция в окрестности точки x10 , и x20 Следовательно, мы можем исключить x 2 в Q( x1 , x2 ) . Имеем h( x1 ) Q[ x1 , ( x1 )] 93 для x1 x10 симум при 0 0 . Но если Q( x1 , x2 ) имеет в точке x 0 относительный мак- ( x1, x2 ) * , то должно существовать такое число , что для всех x1 в 0 -окрестности 0 1 1 . h( x ) 0, точки x10 справедливо h( x ) Следовательно, h имеет безусловный максимум в точке x10 . (Аналогично для минимума). Сложная функция h дифференцируема в окрестности x10 и h( x10 ) x1 0. (6) Дифференцируя h как сложную функцию, получим h Q Q Q Q x1 , x1 x1 x2 x1 x1 x2 x2 так как по теореме о неявных функциях x1 . x1 x2 Из (6) следует Q( x 0 ) Q( x 0 ) ( x 0 ) x1 0. x1 x2 ( x 0 ) x2 Обозначим Q( x 0 ) x2 . ( x 0 ) x2 Таким образом, необходимо, чтобы точка x 0 удовлетворяла уравнениям Q( x 0 ) (x 0 ) 0, x1 x1 Q( x 0 ) x2 (x 0 ) (x 0 ) x2 * 0, (7) . То есть, удовлетворяла системе 3-х уравнений с тремя неизвестными: x10 , x 20 и . Решив систему, найдем все точки, где Q(x ) достигает относитель* ного максимума или минимума при ( x ) . Необходимые условия (7) удобнее получать, составив следующую функцию (8) F ( x , ) Q( x ) [ * ( x )] и приравняв 0 ее частные производные по x1 , x 2 и . 94 F xj Q( x 0 ) xj (x 0 ) xj 0, j 1,2, F Функцию F (x , ) называют функцией Лагранжа, а гранжа. Рис. 4.4. Геометрическая иллюстрация: * (x 0 ) 0 . - множителем Ла- x1 , x3 - относительные максимумы; x 2 - относительный минимум Рассмотрим общий случай с n переменными и m n ограниче- ниями. Пусть в точке x 0 функция Q(x ) имеет относительный максимум или минимум для x рицы D . Далее предположим, что в точке x 0 ранг матi xj m n равен m . Для простоты будем считать, что матрица J x 0 (1,2,..., m) является неособенной (первые m столбцов). Тогда по теореме о неявных функциях существует -окрестность точки xˆ 0 ( xm0 1, xm0 2 ,..., xn0 ) такая, что для каждой точки x̂ из этой окрестности можно разрешить уравнения * , i 1, m , i ( x1 , x2 ,..., xn ) относительно x1 , x2 ,..., xm , ˆ xi 1, m , i (x ) , i причем функции i непрерывно дифференцируемы в окрестности точки x0 и xi0 i ( xˆ 0 ) , i 1, m . 95 Функция h( xˆ ) Q[ 1 ( xˆ ), 2 ( xˆ ),..., m ( xˆ ), xˆ ] имеет в точке x̂ 0 безусловный относительный максимум или минимум. Поэтому h( xˆ 0 ) (9) 0, i (m 1), n . xj По правилу дифференцирования сложной функции h Q m Q i , i (m 1), n . (10) xj x j i 1 xi x j По теореме о неявных функциях производные x j , i 1,2,..., m , для i каждого j представляют собой решение системы уравнений m , i 1,2,..., m . (11) xk x j xj Имеем n m таких систем. Можно, конечно, решить систему (11) и результаты подставить в (10). Но поступим следующим образом. Рассмотрим набор чисел i , i 1,2,..., m , являющийся решением системы m уравнений 0 m Q( 0 ) i (x ) , k 1,2,..., m . (12) i i 1 xk xk Решение этой системы существует и единственно, так как матрица коэффициентов J x 0 (1,2,..., m) по предположению неособенная. Умножим i -е i k i k 1 уравнение из (11) на j m 1,..., n , получаем m и просуммируем по i . Для каждого i m i i k 1 i 1 xk m k xj i i 1 i xj j, 0. (13) m 1,..., n . (14) Из (9) и (10) следует m k 1 Q( x 0 ) xk (x 0 ) xj k Q( x 0 ) xj 0, j Вычислим (13) в точке x 0 и вычтем из (14), получим 0 0 m Q( x 0 ) m Q( x 0 ) m i (x ) k (x ) i k 1 i 1 i 1 xk xk xj xj где j i i (x 0) xj 0, (15) m 1,..., n . Отсюда, используя (12), имеем 0 Q( x 0 ) m i (x ) i i 1 xj xj 0, j m 1,..., n . (16) 96 Объединив (16) с (12) и ограничениями, получим, что точка x 0 , в которой достигается относительный максимум или минимум, должна удовлетворять следующей системе из m n уравнений 0 Q( x 0 ) m i (x ) 0, j 1, n, i i 1 xj xj (17) i (x 0 ) * i , i 1, m. Каждая точка x 0 , в которой достигается относительный максимум или минимум при x D , будет являться решением системы (17). Необходимые условия можно получить, составив функцию Лагранжа m F ( x , ) Q( x ) i1 i [ * i i ( x )] и приравняв 0 ее частные производные по всем x j , j (18) 1, n , и по всем i, i 1, m , F xj Q xj F m i i i 1 * i i xj 0, j 1, n, ( x ) 0, i 1, m. i Построение таким образом необходимых условий называют методом множителей Лагранжа. 4.3.Теорема Куна-Таккера Пусть имеем задачу Q(x ) min при q j (x ) 0 , j 1, m , x (1) 0, где Q(x ) и q j (x ) – выпуклые функции. Тогда эта задача называется задачей выпуклого программирования. Эту задачу кратко можно записать в виде min{Q( x ) x 0, q j ( x ) 0, j 1, m} (1*) или min{Q( x ) x D} , где D {x x 0, q j ( x ) 0, j 1, m} . Задача максимизации вогнутой целевой функции Q(x ) max 97 при 0 , j 1, m , q j (x ) x 0, где q j (x ) – вогнутые функции, может быть представлена в виде (1), для чего достаточно умножить целевую функцию и ограничения на –1. Задача выпуклого программирования представляет собой наиболее благоприятный случай, так как если система ограничений совместна, то есть множество D не является пустым, то задача (1) имеет единственный экстремум. Теорема Куна-Таккера представляет собой обобщение классического метода множителей Лагранжа, используемого для определения экстремума при наличии ограничений типа равенств, на случай, когда появляются ограничения типа неравенств. Для задачи (1) запишем обобщенную функцию Лагранжа, которая представляет собой функцию m n переменных ( x , ) F ( x , ) Q( x ) m j 1 j q j (x) . (2) Определение. Говорят, что функция F ( x , ) имеет в точке ( x 0 , ловую точку, если F (x 0, ) F (x 0, 0 ) F(x, 0 ) 0 ) сед(3) для всех x из -окрестности x 0 всех -окрестности 0 . Если неравенство (3) выполняется для всех x и , то говорят, что F ( x , ) имеет в ( x 0 , 0 ) глобальную седловую точку. Теорему Куна-Таккера часто называют теоремой о седловой точке, т.к. задача минимизации функции Q(x ) соответствует задаче о нахождении седловой точки функции F ( x , ) . Теорема. Вектор x 0 тогда и только тогда представляет собой решение задачи (1), когда существует вектор 0 такой, что x0 0 , 0 0, (4) (5) F (x 0, ) F (x 0, 0 ) F(x, 0 ) x 0, 0, Доказательство. Достаточность (4) и (5). Пусть x 0 0 и 0 0 есть седловая точка функции F ( x , ) . Подставим в (5) выражение F ( x , ) из (2): Q( x 0 ) m j 1 0 0 j q j ( x ) Q( x ) m j 1 0 j q j ( x 0 ) Q( x ) x 0, 0. Так как левое неравенство должно выполняться m j 1 0 j q j (x ) , 0 , то 98 q j (x ) 0 , j 1, m , (т.е. x 0 лежит в допустимой области) и m j 1 0 j q j (x 0 ) 0 . Тогда правое неравенство приводится к виду Q( x 0 ) Q( x ) m j 1 0 j q j (x ) , x 0. 0 Отсюда, так как x 0 таких, что 0 , следует, что Q( x 0 ) Q( x ) j 1, m . Следовательно, x 0 является решением задачи (1). q j (x ) 0 , Достаточность доказана. Докажем необходимость. Для доказательства необходимости используется предположение о регулярности допустимой области: существует по крайней мере одна допустимая точка x такая, что (6) q j ( x ) 0 , j 1, m . Если q j ( x ) линейны, то предположение о регулярности излишне. Пусть x 0 вует вектор 0 m странстве R 1 0 является решением задачи (1). Покажем, что сущест0 такой, что ( x 0 , 0 ) удовлетворяет (5). Для этого в прос координатами y ( y1, y2 ,..., ym ) построим два множест- 1 2 ва точек K и K : y0 K1 y y1 q1 ( x ), для некоторого x , ym qm ( x ), y0 K2 y Q( x ), Q( x 0 ), y1 0, , ym 1 0, 0. 2 Множества K и K , очевидно, выпуклы и в силу оптимальности 0 x не пересекаются. Поэтому имеется разделяющая гиперплоскость ,V 0 V y такая, что (7) V y1 V y 2 y1 K 1 и y 2 K 2 . (Неравенство (7) остается справедливым и тогда, когда y 2 лежит на гра2 нице K .) 99 Так как по определению K 2 компоненты y 2 могут принимать сколь угодно большие отрицательные значения, то из этого неравенства следует, что V 0 . Выберем y 1 и y 2 y1 (Q( x ), q1 ( x ),..., qm ( x )) , y1 (Q( x 0 ), 0, ..., 0) . Тогда получим m V j q j ( x ) V0Q( x 0 ) , V0Q( x ) x 0. (8) j 1 Отсюда V0 0 , ибо в противном случае x 0 было бы m Q( x 0 ) ), 0 , (т.к. Q( x ) V j q j (x) j 1 причем V j 0 для любого j и V j 0 по крайней мере для одного j . А m неравенство V j q j (x) 0 несправедливо в силу (6) хотя бы для одного j 1 ~ x . Следовательно, V0 0 . Разделим (8) на V0 , положив 0 j V j V0 , j 1, m : m 0 j Q( x ) q j (x) Q( x 0 ) (9) j 1 или Q( x 0 ) , x 0 , 0 . Положим в (9) x x 0 , тогда F ( x, причем 0 j 0 ) m j 1 Но, так как x 0 0 j q j (x 0 ) 0 . D и, следовательно, q j ( x 0 ) 0 , m j 1 (9) 0 j j , то q j (x 0 ) 0 и F ( x 0 , 0 ) Q( x 0 ) . Очевидно следующее неравенство Q( x 0 ) Q( x 0 ) m j 1 j q j (x 0 ) F (x 0, (10) 0 ) для Отсюда и из (9) получаем x F (x 0, ) F (x 0, 0 ) F(x, 0 ) То есть получили (5). Необходимость доказана. 0, 0. (11) 0. Если функции Q ( x ) и q j ( x ) являются дифференцируемыми, то условия (4)-(5) эквивалентны следующим условиям Куна-Таккера: 100 F (x 0, xi 0 i x 0 ) F (x 0, 0, 0 ) 0, j F (x 0, xi 0 i x 0 ) 0, 0 j F (x 0, 0 ) 0, j 0 j 0, i 1, n, 0, j 1, m. Или в векторной форме: F ( x 0 , 0 ) 0, F ( x 0 , 0 ) 0, ( x 0 ) x F ( x 0 , 0 ) 0, ( 0 ) F ( x 0 , 0 ) 0, 0 x 0 0, 0. x 4.4. Квадратичное программирование 4.4.1. Условия Куна-Таккера для задачи квадратичного програмирования Задача квадратичного программирования представляет собой частный случай задачи нелинейного программирования, когда ограничения линейны, а целевая функция – сумма линейной и квадратичной форм: Q( x ) p x x Cx min при q j ( x ) a j x b j 0 , j 1, m , x 0, где C - положительно полуопределенная матрица. В отличие от линейных задач, где решение находится в угловой точке многогранника, в задаче квадратичного программирования оптимальная точка может быть на ограничении, где нормаль к гиперплоскости ограничения совпадает с направлением градиента, может быть внутри допустимой области. Задача квадратичного программирования может быть записана в следующем виде: min{ p x x Cx Ax b , x 0} . (1) Функция Лагранжа для нее имеет вид: F ( x , ) Q( x ) m j 1 j (a j x b j ) p x x Cx ( Ax b ) . (2) Обозначим x F (x, ) V , F (x, ) Y , 101 тогда V p 2Cx A x F (x , ) , Y Ax b F (x, ) . Условия Куна-Таккера для задачи (1) будут иметь вид Ax Y 2Cx V x 0, V b, A p, 0, Y x V (3) (4) 0, Y (5) 0, 0, так как (x 0 ) xF (x 0, ( 0) F(x 0, Условия Куна-Таккера для задачи min{ p x 0 ) 0, 0 ) 0. x Cx Ax b, x 0} имеют вид Ax 2Cx V x b, A p, 0, V x V 0, (6) 0. Условия Куна-Таккера для задачи min{ p x x Cx Ax b} имеют вид Ax Y 2Cx A Y 0, Y b, p, 0, (7) 0. Допустимый n -мерный вектор x 0 является решением задачи (1) в том и только в том случае, если совместно с n -мерным вектор V 0 существуют два m -мерных вектора 0 и Y 0 такие, что ( x 0 ,V 0 , 0 ,Y 0 ) является решением задачи (5). Первые три соотношения в условиях (5) образуют линейную систему. Четвертое условие показывает, что из каждой пары переменных одна должна быть равна нулю. Таким образом, решения системы первых трех условий, которые образуют множество решений четвертого уравнения, содержат самое большее m n компонент отличных от нуля. И, таким 102 образом, для решения системы (5), а также (6) или (7), можно воспользоваться видоизмененным симплексным методом. 4.4.2. Метод Баранкина и Дорфмана Рассматривается задача квадратичного программирования вида: min{ p x x Cx Ax b, x 0} , (1) в которой C - положительно полуопределенная матрица размерности n n , A - матрица размерности m n . Условия Куна-Таккера для задачи (1) будут иметь вид Ax Y b , 2Cx V A p, x 0, V 0, Y 0, 0, (2) и x V Y 0, (3) где F ( x , ) p 2Cx A , Y F (x, ) Ax b . Условие (3) может выполняться только для допустимого базисного решения системы (2), то есть для решения, в котором самое большее N n m переменных из 2 N 2(n m) переменных x 0, V 0 , Y 0, 0 системы положительны. Задача формулируется следующим образом: среди допустимых базисных решений системы (2) найти такое, которое обращает в нуль величину x V Y . Баранкин и Дорфман начинают с некоторого базисного решения системы (2), необязательно удовлетворяющему условию (3), и с помощью симплексных преобразований сводят к нулю выпуклую функцию x V Y . V x Алгоритм. Все переменные систем представим в виде 2N -мерного вектора z ( x ,Y ,V , ) ( x1,..., xn ,Y1,...,Ym ,V1,...,Vn , 1,..., m ) . Каждому такому вектору соответствует вектор z (V , , x ,Y ) , то есть zi zi N i 1, N . zi N zi 103 Очевидно, 1 z z, 2 и условия (2) и (3) можно записать в следующем виде A E 0 0 b , z 2C 0 E A p x V Y (4) z 0, z z 0 . (5) Метод Баранкина и Дорфмана состоит в том, что исходя из некоторого базисного решения системы (4), совершают ряд симплексных преобразований, в результате каждого из которых выпуклая функция T ( z ) z z уменьшается пока, наконец, не будет получено базисное решение со значением T 0 . Пусть имеется некоторое допустимое базисное решение системы (4). Переменные входящие в базис обозначим z g , независимые переменные (небазисные) z h th . Соответствующая симплексная таблица отразит функциональную зависимость z g от th : zg dg0 N h 1 d ghth . (6) Число таких равенств N . Их можно заменить векторным равенством, если дополнить симплексную таблицу строками для независимых переменных, в которых 1 будет стоять в столбце с этой переменной, а все остальные элементы строки – 0. Тогда переменные z g , g 1,2 N , будут входить в направляющий столбец (самый левый) в своей естественной последовательности. Таким образом в симплексной таблице для небазисных переменных d gh 0 , g h , dhh 1 . В векторной форме z d0 N h 1 th d h , где d h – h -й столбец таблицы. Для базисного решения, в котором независимые переменные равны нулю, z d 0 0, T d0 d0 . Если включить в базис, например, переменную t j , то есть сделать ее базисной (>0), t j , 0 , сохраняя остальные th , h j , небазисными и равными нулю, то вектор z изменится z d0 dj. Переменную t j можно увеличивать до тех пор, пока какая-нибудь базисная переменная не обратится в нуль. Это произойдет при 104 min j dg0 d gj d gj 0 . (7) Положив t j j , получим новое базисное решение. Вектор z принимает следующее значение zˆ d 0 (8) jd j , а T – новое значение (9) Tj T ( zˆ ) (d0 j d j ) (d 0 jd j ) . Так как N N (10) d d dd d d d d , j то можно записать Tj 0 d j d0 i 1 ij i N ,0 i 1 2 j d j d0 2 j i N, j d j d j i ,0 0 j T j Kj, (10) где Kj j 2 j j d j d0 , d d . j , (11) (12) (13) Поскольку значение T должно уменьшаться при решении, то в базис надо вводить только такие переменные t j , для которых K j 0 . Это правило выбора. Если несколько чисел K j отрицательны, то из них выбирают то, которому соответствует наименьшее по модулю отрицательное произведение j K j . j j j Величины j по существу представляют собой вторые производные от T j по t j и в силу выпуклости T всегда неотрицательны. Поэтому K j может быть меньше нуля, если j 0 . Поэтому j и K j необходимо искать лишь для j , где j 0. Порядок вычислений. В первую очередь получают некоторое базисное решение, затем дополняют симплексную таблицу строками для небазисных переменных, упорядочивают таблицу, строят дополнительную таблицу (см. таблицу). 105 Таблица 1 x1 z1 ... ym z N v1 z N 1 ... z2 N m z d10 ... dN0 d N 1, 0 ... d 2 N ,0 ... 1 ... ... ... ... d11 ... d N1 d N 1,1 ... d 2 N ,1 0 ... ... ... ... 1 Дополнительная 1 K1 1 * K1 N d1N ... d NN d N 1, N ... d 2 N ,N ... ... 1 таблица z N N N KN N * KN В дополнительной таблице d0 d0 T 0 N 2 di 0 di i 1 N ,0 . (14) Если 0 0 , то таблица оптимальна и вектор x есть решение. В противном случае отыскиваем N (d d d d di N , j di ,0 ) , j 1, N . j j 0 ij i N ,0 i 1 Для тех j , где j 0 , вычисляем d d j j j min N j 2 dij di i 1 dg0 d gj d gj N, j , 0 , Kj 2 j j j. В качестве заменяющего столбца выбираем столбец с минимальным по модулю отрицательным значением j K j . Эту переменную включаем в базис. Элемент d gj , по которому определили dg0 j j d gj , ста- новится опорным элементом. Примечание: Если все K j 0 , а 0 0 , то метод далее неприменим (невозможно перейти в другую вершину из-за увеличения T ). В этом случае включаем в базис какую-нибудь переменную и пытаемся выйти из «мертвой зоны», либо выбираем в качестве начального другое базисное решение. 106 Если заменяющий столбец определен, дополнительная таблица больше не нужна. Преобразования таблицы проводятся по следующим правилам. Пусть опорный элемент d gj . 1. Наверху j -го столбца записываем переменную, стоящую слева в g -й строке. 2. Делим j -й столбец на d gj и записываем на соответствующее место новой таблицы. 3. Для того, чтобы получить остальные столбцы новой таблицы необходимо из соответствующих столбцов старой таблицы вычесть новый j -й столбец, умноженный на коэффициент, стоящий на пересечении соответствующего столбца и g -й строки. g -я строка при этом превращается в строку, состоящую из всех нулей и одной 1. Пример 1. Решить задачу квадратичного программирования вида: min{ p x x Cx Ax b , x 0} , где p 1 ,C 2 0.5 0 , A 0 0.5 2 3 ,b 1 4 6 . 5 Решение. Расширенная матрица, определяющая линейную систему D A 2C E 0 0 E 0 z A 2 3 1 0 0 0 0 0 1 4 0 1 0 0 0 0 0 2 1 1 0 0 0 0 1 0 0 1 0 1 3 4 b , p 6 z 5 1 . 2 Найдем базисное решение (опорный план), с которого продолжим решение методом Баранкина и Дорфмана. Воспользуемся для этого методом последовательного улучшения плана. Исходная таблица 0= 0= 0= 0= 1 6 5 1 2 – x1 – x2 – y1 – y2 –V1 –V2 2 1 1 0 3 4 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 – 1 0 0 2 3 – 2 0 0 1 4 Исключаем 0-строки. 107 x1 = 0= 0= 0= 1 3 2 2 2 x1 = x2 = 0= 0= 1 1.8 0.8 0.8 1.2 x1 = x2 = V1 = 0= 1 1.8 0.8 0.8 1.2 x1 = x2 = V1 = 1= 1 1.8 0.8 1.6 0.4 – x2 – y1 – y2 –V1 –V2 1.5 2.5 1.5 1 0.5 0.5 0.5 0 0 1 0 0 0 0 1 0 0 0 0 1 – y1 – y2 –V1 –V2 0.8 0.2 0.8 0.2 0.6 0.4 0.6 0.4 0 0 1 0 0 0 0 1 – y1 – y2 –V2 0.8 0.2 0.8 0.2 0.6 0.4 0.6 0.4 0 0 0 1 – y1 – y2 –V2 0.8 0.2 14/15 1/15 0.6 0.4 13/15 2/15 0 0 2/3 1/3 – 1 0 0 2 3 – – 1 0 0 2 3 – – 1 0 0 2 3 – – 2 0 0 1 4 2 0 0 1 4 2 0 0 1 4 2 0 0 5/3 4/3 Найден опорный план. Составляем расширенную таблицу для метода Баранкина-Дорфмана. Исходная таблица метода Баранкина-Дорфмана 108 x1 = x2 = y1 = y2 = V1 = V2 = 1= 2= 0, j y2 0.6 0.4 y1 1 1.8 0.8 0 0 1.6 0 0.4 0 5.76 0.8 0.2 1 V2 2 1 0.93333 0.866667 0.666667 1 0.06667 0.133333 0.333333 2.52 2.56 2 1.66667 1.33333 1 -3 j 1.36 0 j 1.714286 0.3 2.78857 6 4.78041 1.8 Kj j*Kj При построении дополнительной таблицы вычисляем j d j d0 , j d j d j , j min dg0 d gj d gj 0 , Kj 2 j j j 0 d0 d0 , . Значения j , j , K j вычисляем только для столбцов, где j 0 . В качестве заменяющего столбца выбираем столбец с минимальным по модулю отрицательным значением j K j . x1 = x2 = y1 = y2 = V1 = V2 = 1= 2= 0, j 1 1.8 0.8 0 0 1.1 0 0 0.3 3.96 y1 0.8 0.2 1 0 0.85 0 0 0.05 2.41 j 1.36 j 1.294118 Kj j*Kj y2 0.6 0.4 0 1 0.7 0 0 0.1 2.22 V2 0 0 0 0 0.25 1 0 0.25 1.25 1 0 0 0 0 1.25 0 1 0.75 2.25 3.06 3.96 109 Следующая таблица должна быть оптимальной, так как T 3.96 3.96 0. 0 0 1 K1 x1 = x2 = y1 = y2 = V1 = V2 = 1= 2= 0 V1 y2 V2 1 1 0.764706 0.941176 0.05882 0.23529 1.17647 =13/17 =16/17 = 1/17 = 4/17 = 20/17 1.058824 0.23529 0.23529 0.058824 0.294118 =18/17 =1/17 =5/17 = 4/17 = 4/17 1.294118 1.17647 0.823529 0.294118 1.470588 =22/17 =14/17 =5/17 =25/17 = 20/17 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0.235294 0.058824 0.058824 0.235294 0.82353 =4/17 =1/17 =1/17 =4/17 = 14/17 0 Оптимальный V (0, 0) , план задачи: x (13 / 17, 18 / 17) , y (22 / 17, 0) , (0, 4 / 17) . 4.4.3. Метод Франка и Вулфа Метод предназначен для решения задачи вида: min{ p x x Cx Ax b, x 0} , в которой C - положительно полуопределенная матрица размерности n n , A - матрица размерности m n . Условия Куна-Таккера для этой задачи будут иметь вид Ax Y b , 2Cx V A p, x 0, V 0, Y 0, 0, и x V Y 0, где V x Y F (x, ) p 2Cx F (x, ) A , Ax b . Метод представляет собой дальнейшее развитие метода Баранкина и Дофмана. Метод действует без ограничений. Требуется минимизировать 110 T ( z ) z z (1) при Bz d, (2) z 0, 0 E 0 , A где B z A 2C ( x ,Y ,V , E 0 d b p , ) ( x1,..., xn ,Y1,...,Ym ,V1,...,Vn , 1,..., z (V , m ), , x ,Y ) . Минимум T ( z ) при ограничениях (2) достигается на некотором базисном решении (2) и равен нулю. Вектор x , составленный из компонент xi оптимального вектора z * , является решением исходной задачи квадратичного программирования. Работа алгоритма Франка и Вулфа начинается с некоторого базисного решения системы (2) z 0 с соответствующей симплексной таблицей. Функция T ( z ) z z минимизируется по следующему рекуррентному правилу. Пусть в результате k -го шага имеется некоторое допустимое базисное решение z k , удовлетворяющее системе (2), вместе с соответствующей симплексной таблицей. Пусть также имеется другое допустимое решение wk , удовлетворяющее системе (2), но не обязательно базисное, которому соответствует положительное значение функции T (на первом шаге полагаем w0 z 0 ). Исходя из базисного решения z k симплексным методом при ограничениях (2) минимизируем линейную относительно z форму z w k . (3) В результате получим последовательность базисных решений Z0 причем k (Z 0 ) w z k , Z 1, Z 2 , ... , (Z 1 ) w k (Z 2 ) w k ... Метод обрывается, как только выполняется одно из условий: 1) ( Z h ) Z h 0; (4) 1 k k 1 (w ) w T ( wk ) . (5) 2 2 В первом случае Z h представляет собой окончательное решение z * . Во втором случае полагаем 2) ( Z h ) w k 111 zk 1 Zh , wk 1 wk (6) (z k 1 wk ) , (7) где ( wk z k 1 ) w k . min 1, k 1 (z wk ) ( z k 1 w k ) (8) Франк и Вулф показали, что на каждом шаге имеет место 1) или 2) и, что через конечное число шагов будет обязательно 1), так что метод приводит к решению. wk 1 есть такая точка отрезка прямой между wk и z k 1 , в которой T ( z ) достигает минимума на этом отрезке. Если учесть, что T 2 z , z то есть в частном случае T 2 w k , z z w k то видно, что линейная функция z w k получена линеаризацией функции T в точке wk и градиенты их совпадают. Рис. 4.5. Геометрическая интерпретация Пример 2. Решить методом Фрака и Вулфа задачу квадратичного программирования вида: min{ p x x Cx Ax b , x 0} , где p 10 ,C 20 2 0 , A 0 5 3 4 ,b 5 1 6 . 8 112 1 C 1 p (2.5, 2) не 2 принадлежит допустимой области. Расширенная матрица, определяющая линейную систему Решение. Точка безусловного минимума x 0 D A 2C E 0 0 E 0 z A 3 4 1 0 0 0 0 0 5 1 0 1 0 0 0 0 4 0 0 0 0 3 5 0 10 0 0 1 0 b , p 6 8 z 10 1 4 1 . 20 Найдем базисное решение (опорный план) системы Bz d , с которого продолжим решение методом Франка и Вулфа. Воспользуемся для этого методом последовательного улучшения плана. Исходная таблица – x1 – x2 – y1 – y2 –V1 –V2 – 1 1 0= 6 3 4 1 0 0 0 0 0= 8 5 1 0 1 0 0 0 0= 10 4 0 0 0 0 3 1 0= 20 0 10 0 0 0 4 1 Исключаем 0-строки. Из первых двух строк симплексной таблицы – x1 – x2 –V1 –V2 – 1 – 2 1 y1 = y2 = 0= 0= 6 8 10 20 y1 = y2 = 2= 0= 1 6 8 2 18 y1 = y2 = 2= V1 = 1 6 8 20 90 3 5 4 0 4 1 0 10 0 0 1 0 0 0 0 1 – x1 – x2 –V1 –V2 3 5 0.8 0.8 4 1 0 10 0 0 0.2 0.2 0 0 0 1 – x1 – x2 –V2 3 5 0 4 4 1 10 50 0 0 1 5 – 0 0 3 4 – 0 0 5 1 1 0 0 0.6 3.4 1 0 0 4 17 113 – 2 0 0 5 1 Найден опорный план. Составляем симплексную таблицу для метода Франка и Вулфа: z 0 w0 (0, 0, 6, 8, 90, 0, 0, 20) , w 0 (90, 0, 0, 20, 0, 0, 6, 8) , (w0 ) w0 320 0 , 1 2 ( w0 ) w0 160 . Для заполнения последней строки симплексной таблицы выражаем линейную форму z w 0 через небазисные переменные: z w 0 90 z1 20 z4 6 z7 8z8 90 z1 20(8 5z1 z2 ) 6 z7 8(20 10 z2 z6 4 z7 ) 320 10 z1 100 z2 8z6 26 z7 Исходная таблица метода Франка и Вулфа – z1 – z2 – z6 – z7 1 z3 = z4 = z8 = z5 = ~0 z w 6 8 20 90 320 3 5 0 4 10 0 Так, как 1) (Z 0 ) w z3 = z1 = z8 = z5 = ~0 z w (Z 1 ) 1 1.2 1.6 20 96.4 304 4 1 10 50 100 0 0 4 17 26 0 , то продолжим вычисления. – z4 – z2 – z6 – z7 0.6 0.2 0 0.8 2 3.4 0.2 10 50.8 98 0 0 1 5 8 0 0 4 17 26 – z6 – z7 0 0 1 5 8 0 0 4 17 26 1) (1.6,0,1.2,0,96.4,0,0,20) , (Z 1 ) Z 1 308.48 0 , 2) ( Z 1 ) w 0 z2 = z1 = z8 = z5 = ~0 z w 0 0 1 5 8 304 160 – z4 1 6/17 3/17 23/17 4/17 280/17 30/17 1334/17 166/17 4580/17 260/17 1 0 0 (w ) w . 2 – z3 5/17 1/17 50/17 254/17 490/17 114 1) 2) ( Z 2 ) Z 2 0 (Z 2 ) w z2 = z4 = z8 = z5 = ~0 z w (Z 3 ) 1) 2) 1 1.5 26/4 5 15 170 0, 4580 / 17 160 . – z1 – z3 3/4 17/4 30/4 166/4 260/4 1/4 1/4 2.5 12.5 25 – z6 – z7 0 0 1 5 8 0 0 4 17 26 (0,1.5,0,6.5,15,0,0,5) , ( Z 3 ) Z 3 65 0 , (Z 3 ) w 0 170 160 . z2 = z4 = z8 = z7 = ~0 z w – z1 – z3 – z6 1 1.5 3/4 1/4 0 26/4 17/4 0 1/4 25/17 77/34 15/34 3/17 15/17 133/34 25/34 5/17 2500/17 26/17 100/17 6/17 – z5 0 0 -4/17 1/17 26/17 0 2500 / 17 147.0588 160 . (Z 4 ) w Следовательно, на следующем шаге метода ( z 1 ) (Z 4 ) (0,1.5,0,26 / 4,0,0,15 / 17,25 / 17) . Находим на основании (8) ( w0 z 1 ) w 0 172 min 1, 1 min 1, 1, 0 1 0 ( z w ) ( z w ) 22.5 где (w0 z 1 ) (0, 1.5,6,1.5,90,0, 15 / 17,315 / 17) , (w0 ) (90,0,0,20,0,0,6,8) , ( z 1 w0 ) (0,1.5, 6, 1.5, 90,0,15 / 17, 315 / 17) , 0 ) ( 90,0,15 / 17, 315 / 17,0,1.5, 6, 1.5) . ( z 1 w 2) На основании (7) при 1 получаем (w1 ) ( z 1 ) (0,1.5,0,26 / 4,0,0,15 / 17,25 / 17) . Теперь необходимо минимизировать линейную функцию ~ 1 15 / 17 z 25 / 17 z 1.5z 6.5z z w 3 4 6 8 115 15 / 17 z3 25 / 17(26 / 4 17 / 4 z1 1 / 4 z3 ) 1.5 z6 6.5(25 / 17 77 / 34 z1 15 / 34 z3 3 / 17 z6 4 / 17 z5 ) 975 / 34 2591/ 68z1 55 / 34 z3 26 / 17 z5 6 / 17 z6 . Строим следующую таблицу z2 = z4 = z8 = z7 = ~1 z w – z1 – z3 1 1.5 3/4 1/4 26/4 17/4 1/4 25/17 77/34 15/34 15/17 133/34 25/34 975/34 2951/68 55/34 – z6 – z5 0 0 3/17 5/17 26/17 0 0 -4/17 1/17 6/17 1) (Z 0 ) Z 0 ( z 1 ) z 1 38.2 0 , 1 z w 1 975 / 34 38.2 . 2) (Z 0 ) w В следующей таблице заполним только первый столбец, так как для нее ( Z 1 ) Z 1 0 и, следовательно, она соответствует оптимальному решению. z2 = z4 = z1 = z7 = ~1 z w – z8 1 78/77 1577/154 50/77 3.42 – z3 – z6 – z5 Оптимальный план задачи: ( z * ) (50 / 77, 78 / 77, 0, 1577 / 154, 0, 0, 3.42, 0) , ( x * ) (50 / 77, 78 / 77) . 4.5. Метод возможных направлений Исторически один из первых методов, предложенных для решения задачи выпуклого программирования. Требуется решить задачу вида min{ f 0 ( x ) fi ( x ) 0, i 1, m, Ax b 0} , (1) 116 где x E n , fi ( x ), i 0, m , – выпуклые непрерывно дифференцируемые функции, Al n – матрица. Более того, предполагается, что градиенты функций fi ( x ), i 0, m , удовлетворяют условию Липшица: fi ( x1 ) и fi ( x2 ) (2) C x1 x2 fi ( x ) K для всех встречающихся в дальнейшем точек x . Допустимая область определяется множеством D {x fi ( x ) 0, i 1, m, Ax b 0} . В дальнейшем предполагается, что множество D компактно, так что условие ограниченности градиентов выполняется. Пусть некоторое точка x0 D . Найдем направление p E n такое, что при малых x0 p D и, кроме того, f0 ( x0 p) f0 ( x0 ) . Такое направление называется возможным. Сделав вдоль этого направления некоторый шаг 1 , получим новую точку x1 x0 D . Эту точку принимаем за начальную, 1p и процесс повторяется. Для реализации такого алгоритма необходимо разработать эффективный метод нахождения возможных направлений и выбора шага так, чтобы обеспечить сходимость к точке минимума. Будем в дальнейшем предполагать, что задача (1) невырождена и существует такая точка x , что fi ( x ) 0, i 1, m, Ax b 0 . 4.5.1. Метод выбора возможного направления Положим J ( x ) {i fi ( x ) , i 1, m } для каждой точки x D . Пусть i 0, i 0, m , – произвольные числа. Рассмотрим следующую задачу в каждой точке x D : min , (3) ( fi ( x ), p) i , i J ( x ) {0} , Ap 0 , p 1 . Здесь – число, а p – произвольная норма. Чтобы задача (3) была задачей линейного программирования, в качестве нормы удобно взять p max pi . 1 i n Пусть p ( x ) , ( x ) – некоторое решение задачи (3). Так как вектор 0 удовлетворяют ограничениям (3), то ясно, что (x ) 0. p 0 и Покажем, что если ( x ) 0 , то p ( x ) – возможное направление. 0 . Для i 0 имеем на основании формуДействительно, пусть лы Тейлора 117 f0 ( x f0 ( x ) p ( x )) 0 x 0 ( f0 ( 0 ), p ( x )) ( f0 ( x ), p ( x )) f0 ( x ) где f0 ( x ) ( f0 ( 0 ) C p (x ) , 1, и мы воспользовались тем, что 0 f0 ( 0 ) f0 ( x ) Далее, в силу (3) ( f0 ( x ), p ( x )) f0 ( x 2 2 ( f0 ( x ), p ( x )) p (x ) , 0 f0 ( x ), p ( x )) C x 0 p (x ) . C ( x ) . Поэтому 0 p ( x )) f0 ( x ) p ( x )) fi ( x ) 2 2 C p (x ) . (x ) 0 (4) Аналогично для i J ( x ) fi ( x 2 2 C p (x ) . (x ) i (5) Далее, для i J ( x ) fi ( x p ( x )) fi ( x ) ( fi ( i ), p ( x )) K p ( x ) . (6) fi ( x ) 0 так, чтобы целевая функция уменьшилась и точка Выберем теперь осталась в допустимой области, т.е. чтобы выполнялись неравенства f0 ( x p ( x )) fi ( x p ( x )) 0, i 1 0 2 J ( x ), fi ( x p ( x )) 0, i J ( x ). f0 ( x ) (x ) (7) Для этого достаточно, чтобы выполнялись неравенства C p (x ) (x ) 0 1 i (x ) 2 1 , 2 C p (x ) K p (x ) 2 0, i 0, i J ( x ), (8) J ( x ), так как в силу (4), (5) справедливы неравенства f0 ( x fi ( x p ( x )) p ( x )) f0 ( x ) fi ( x ) [ 0 i (x ) (x ) 1 C p (x ) (x ) 0 2 C p ( x ) ], i 2 , J (x ) , а так как fi ( x) для i J ( x ) , то fi ( x p ( x )) K p (x ) , i J (x ) . Из неравенств (8) получаем 118 1 (x ) 0 , 2 2 C p (x ) 0 (x ) (x ) i C p (x ) K p (x ) 2 (9) , . Таким образом, если удовлетворяет неравенствам (9), то выполняются неравенства (7), откуда следует, что p ( x ) – действительно возможное направление, так как Ap ( x ) 0 и поэтому A( x p ( x )) b Ax b Ap ( x ) 0 . Если точка x не совпадает с решением задачи x * – точкой минимума f0 ( x ) в области D , то ( x ) 0 при всех достаточно малых . Это следует из следующей леммы. Лемма. Пусть x D не является решение задачи минимизации f0 ( x ) при ограничениях (3). Тогда ( x ) 0 для всех достаточно малых . (Без доказательства). 4.5.2. Алгоритм метода возможных направлений Пусть x0 D – произвольное начальное приближение и 0 0 . Опишем общий шаг алгоритма. Пусть на k -м шаге получена точка xk D и k 0. Решив задачу min , ( fi ( xk ), p) i , i J ( xk ) {0}, Ap 0 , p 1 , получим p k ( xk ) pk , k ( xk ) k . Если в качестве нормы взять max pi , 1 i n то эта задача представляет собой задачу линейного программирования, и может быть решена одним из стандартных методов. Возможны два случая. 1) k k . 1 , i 0,1,..., и 2i находим первое i0 такое, для которого выполняются неравенства В этом случае можно последовательно полагать 119 f 0 xk 1 pk 2i0 fi xk 1 pk 2i0 1 и xk 2i0 Полагаем 1 xk k 1 2 2i0 f 0 ( xk ) 2) k k k , 0, i 1, m. pk , k 1 k 1 2 fi ( xk 1 ) 0, i 1, m. f 0 ( xk 1 ) 0 f 0 ( xk ) , так что k 0 k , . Полагаем xk 1 xk , k 1 k / 2. Таким образом, в первом случае происходит сдвиг в новую точку, во втором – такого сдвига не происходит. Условие останова алгоритма формулируется следующим образом. 0 Если на некотором шаге k оказывается k ( xk ) , где 0 ( xk ) где J 0 ( x ) {i fi ( x ) 0, i 1, m } , и max fi ( xk ) , i J 0 ( xk ) k 0 , то xk – решение исходной за- дачи (1). Сходимость алгоритма обосновывается следующей теоремой. Теорема. Построенная методом возможных направлений последовательность точек xk обладает тем свойством, что f 0 ( xk ) , монотонно не возрастая, стремится к f0 ( x * ) , где x * – точка минимума f0 ( x ) в области D . 4.6. Метод условного градиента Метод условного градиента может эффективно применяться для минимизации нелинейных функций на допустимой области, в которой задача минимизации линейной функции решается без особых затруднений. Пусть для x E n f ( x ) – непрерывно дифференцируемая в компактной выпуклой области D функция. Будем предполагать, что градиент f ( x ) функции f ( x ) удовлетворяет условию Липшица (1) f ( x1 ) f ( x2 ) C x1 x2 для всех точек области D . Требуется решить задачу вида min{ f ( x ) fi ( x ) 0, i 1, m} . 120 Допустимая область определяется множеством D {x fi ( x ) 0, i 1, m} . Метод условного градиента состоит в следующем. Пусть xk приближение на k -м шаге уже построено. Вычислим f ( xk ) и найдем точку минимума линейной функции ( f ( xk ), z ) в области D . Пусть это будет точка z ( xk ) . Положим pk z ( xk ) xk и xk 1 xk 0 – велиk pk , где k чина шага в направлении pk . Точка xk 1 принимается за исходную и процедура повторяется. При определенных правилах выбора k процесс сходится. В методе условного градиента минимизируемая функция на каждой итерации аппроксимируется линейной функцией. 4.6.1. Правило выбора длины шага Пусть x D произвольная точка на этой области, а z ( x ) – какаялибо точка минимума ( f ( xk ), z ) в области D , так что ( f ( x ), z ( x )) ( f ( x ), z ) , z D . (2) Положим p ( x ) z ( x ) x , ( x ) min( f ( x ), z x ) ( f ( x ), p ( x )) . z D В силу (2) ( x ) 0 . Нас интересуют оценки для приращения функции при сдвиге из точки x в направлении p ( x ) . Воспользовавшись формулой Тейлора и соотношением (1), получаем f (x p ( x )) f ( x ) ( f ( ), p ( x )) f (x ) ( f ( x ), p ( x )) f (x ) где 0 x p( x ) , 0 ( f( ) ( f ( x ), p( x )) f ( x ), p ( x )) 2 2 C p( x ) , 1. Таким образом, f (x p( x )) f (x ) (x ) Из этой формулы сразу следует, что при 1 (x ) 2 C p( x ) 2 2 2 C p( x ) . (3) (4) справедлива оценка f (x p ( x )) f ( x ) 1 2 (x ) . (5) 121 4.6.2. Алгоритм метода условного градиента Поиск начинается с произвольной точки x0 D . Опишем общий шаг алгоритма. Пусть на k -м шаге получена точка xk D , k 0 . Решив задачу минимизации ( f ( xk ), z ) в области D , найдем z ( xk ) , p( xk ) , ( xk ) . Строим точку xk 1 xk k p( xk ) , где величина k полагаi0 ется равной 1 2 , и i0 первое из i 0,1,..., для которого выполняются неравенство f xk 1 p ( xk ) 2i0 Процесс заканчивается, если f ( xk ) 1 ( xk ) . 2i0 2 (6) ( xk ) 0 . 4.6.3. Сходимость алгоритма условного градиента В силу приведенного правила выбора шага выполняется неравенство 1 (7) k ( xk ) . 2 Для обоснования сходимости алгоритма необходимо показать, что всегда можно удовлетворить неравенства (6), (7). Действительно в силу формул (4) и (5) неравенство (6) будет удовлетворяться, как только будет выполнено неравенство 1 ( xk ) 2i , 2 C p ( xk ) 2 f ( xk 1 ) f ( xk ) а так как i0 – это первый индекс, при котором (6) выполняется, то 1 ( xk ) 2 k 2 (i0 1) , 2 C p ( xk ) 2 откуда 1 ( xk ) . (8) 4 C p ( xk ) 2 Из сказанного следует, что если ( xk ) 0 , то неравенство (6) удовлетворится после конечного числа проб, и выбранное k будет удовлетворять неравенству (8). k Лемма 1. Если xk , k 0,1,, – последовательность точек, полученных в процессе работы алгоритма метода условного градиента, то xk D , f ( xk ) монотонно убывает и ( xk ) 0 при k . Лемма 2. В любой предельной точке последовательности xk , k 0,1,, выполняются необходимые условия минимума f ( x ) на множестве D . Теорема 1. Пусть функция f ( x ) выпукла. Тогда 122 lim f ( xk ) k где f * f *, min f ( x ) . Более того, справедлива оценка x D C , k где C – некоторая положительная константа. f ( xk ) f* Оценка, определяемая теоремой, показывает, что алгоритм сходится не очень быстро. Эта оценка является точно в случае, если минимизируется выпуклая функция на многограннике. В случае сильно выпуклой допустимой области D , т.е. когда сущеx y w при0 , что для любых x, y D точки ствует такое число 2 2 надлежат D для всех w таких, что w x y , скорость сходимости метода выше. Теорема 2. Если f ( x ) – выпуклая функция, а область D сильно выпукла и f (x ) 0 для всех x D , то метод условного градиента сходится 0 со скоростью геометрической прогрессии, т.е. xk x* Cq0k , q0 1 . 4.6.4. Метод Ньютона В данном случае минимизируемая функция на каждой итерации аппроксимируется кваратичной функцией. Будем рассматривать задачуминимизации выпуклой функции f ( x ) на выпуклом компактном множестве D . Для решения этой задачи можно использовать итерационный процесс (1) xk 1 xk k pk , в котором направление движения pk x xk есть решение задачи минимизации на множестве D квадратичной функции 1 2 ( f ( xk ), x xk ) ( f ( xk )( x xk ), x xk ) , k (x ) 2 а в качестве k берется наибольшее значение параметра , полученное 1 , удовлетворяющее неравенству дроблением начиная с 1. (2) f ( xk pk ) f ( xk ) k ( xk ) , 0 Скорость сходимости метода Ньютона при определенных условиях будет либо сверхлинейной, либо квадратичной. Если задача минимизации функции k ( x ) , x D решается достаточно просто, метод Ньютона оказывается весьма эффективным. 123 Свойства метода Ньютона. Теорема 1. Если для минимизации выпуклой дважды дифференцируемой функции f ( x ) на выпуклом замкнутом ограниченном множестве D используется метод (1), в котором k и pk определяются описанным выше образом, то (независимо от выбора начального приближения x0 D ): 1. 2. f ( xk ) монотонно убывает; lim f ( xk ) f ( x* ) min f ( x ) . k x D Теорема 2. Если в дополнение к условиям теоремы 1, функция f ( x ) 2 2 сильно выпукла, т.е. m y ( 2 f (x ) y, y) M y , m 0 , x D , y En , то последовательность (1) сходится к решению со сверхлинейной скоростью. 4.7. Динамическое программирование Динамическое программирование представляет собой вычислительный метод для решения задач определенной структуры. Суть метода можно рассмотреть на следующем примере. Найти n max z max x x f ( xi ) (1) i 1 при n ai xi b , ai 0 , xi 0. (2) i 1 В данном случае целевая функция задачи представляет собой аддитивную функцию. Если все функции f i ( xi ) , i 1, n , выпуклые(вогнутые), то для решения может быть использован метод множителей Лагранжа. Однако, если имеется много локальных максимумов, то метод дает одно из таких решений. Если требуется найти глобальный максимум, то надо перебрать все локальные. И применение метода множителей Лагранжа проблематично. Рассмотрим метод обеспечивающий решение задачи (1)-(2). Считаем все {ai } , i 1, n , и b целыми числами, Предположим также, что в задаче все переменные {xi }, i 1, n , могут принимать только целочисленные значения. * Введем следующие обозначения. Через z обозначим абсолютный n максимум z при условии ai xi b . Выбираем значение x n и, зафикси- i 1 124 ровав его, максимизируем z по всем остальным переменным x1 , x2 , , xn 1 . Предположим, что такая максимизация проведена для всех возможных значений x n . Тогда z * будет наибольшим из всех возможных значений z . Формально этот процесс запишется следующим образом n n 1 max x1 , x2 ,..., xn f i ( xi ) 1 f n ( xn ) i 1 max x1 , x2 ,..., xn f i ( xi ) , 1 (3) i 1 причем n 1 ai xi b a n xn . i 1 n 1 Так как f i ( xi ) для неотрицательных целых чисел, удовлетво- max i 1 n 1 ряющих условию b an xn , зависит от b an xn , то обозначим ai xi i 1 n 1 max x1 , x2 ,..., xn f i ( xi ) 1 b an 0,1, , (b an xn ) . (4) i 1 Допустим, что мы вычислили значений xn n 1 (b an xn ) для всех допустимых целых n 1 . Очевидно, что z* max f n ( xn ) xn 0 n 1 (b an xn ) . (5) a n xn ) Для вычисления (5) определяем значения f n ( xn ) n 1 (b для всех допустимых значений x n и выбираем максимальное. Этому максимуму соответствует x n* . Таким образом, если бы была известна функция n 1 (b an xn ) , то вся задача свелась бы к задаче с одной переменной. Посмотрим, как можно вычислять n 1 (b an xn ) . Очевидно, n 1 n 1 ( ) max x1 , x2 ,..., xn n 1 f i ( xi ) , 1 ai xi i 1 . i 1 Рассуждая, как и выше, получаем max{ f n 1 ( xn 1 ) n 1( ) xn 1 n 2 ( an 1xn 1 )} , (6) где n 2 n 2 ( a n 1 xn 1 ) max x1 , x2 ,..., xn f i ( xi ) , 2 (7) i 1 125 а максимум берется по всем целым неотрицательным x1 , x2 , , xn 2 , n 2 удовлетворяющим условию ai xi an 1 xn 1 . i 1 Далее вычисляем не придем к n 2 1 ( ), ( ) n 3 ( ) и т.д., пока на последнем этапе max f1 ( x1 ) . 0 x1 (8) a1 Чтобы решить эту задачу, процесс вычислений необходимо вести в обратном порядке, начиная с 1 ( ) . Зафиксировав начало интервала и изменив верхний его конец , вычисляем 1 ( ) max f1 ( x1 ) , 0 x1 a1 для всех значений 0,1, ... , b . Оптимальное решение первого шага обозначим через xˆ1 ( ) . Строим таблицу динамического программирования следующего вида. Таблица 1 xˆ1 ( ) 1( ) 0 1 … … … b Вычислив 1 ( ) , найдем 2 ( ) , используя соотношение max { f 2 ( x2 ) a2 x2 )} . 2( ) 1( 0 x2 Вычисляем последовательно этом результаты таблицы 1. Обозначим f2 (0) 2 (0; ) f 2 (1) 2 (1; ) …. 2 a2 ; f2 a2 2 ( ) для всех 0,1,...,b , используя при ( ), 1) , 1( 1 a2 1 a2 a2 . Наибольшее из этих чисел и есть 2 ( ) . Одновременно находим и xˆ2 ( ) . Затем строим таблицу, аналогичную таблице 1, для 2 ( ) и xˆ2 ( ) ( 0,1,...,b ). Так продолжается до вычисления n 1 ( ) для 0,1,...,b . Функцию n ( ) табулировать не нужно, так как достаточно определить 126 лишь n (b) z* . Одновременно находим и оптимальное значение для переменной xˆn (b) xn* . Для определения значений xn* 1, xn* 2 , ..., x1* следует использовать уже вычисленные таблицы (n-1)-го, (n-2)-го и т.д. шагов. Из предыдущей таблицы (n-1)-го шага находим xn* 1 xˆn 1 (b an xn* ) . Для этого берем b an xn* . Аналогично определяем xn* 2 xˆn 2 (b an xn* an 1xn* 1 ) . Как видим, динамическое программирование представляет собой направленный последовательный перебор вариантов, который обязательно приводит к глобальному максимуму. Для применения метода динамического программирования необходимо табулировать функции 1 ( ) , …, . n 1 ( ) для всех допустимых значений Рассмотренную задачу можно трактовать как задачу распределения с одним ограниченным источником сырья n i 1 ai xi b, где xi – количество сырья, используемое в i -м способе производства. Тогда fi ( xi ) – доход от переработки i -м способом xi – единиц сырья. Поэтому k ( ) можно рассматривать как максимальный доход от первых k способов производства, когда общее количество сырья равно единиц. Поэтому данная задача представляет собой n-шаговый процесс принятия решения, где i -м шаге принимается решение, какое количество сырья из общего объема следует направить на переработку по i -му способу. Структура задачи не изменится от числа шагов, то есть задача инвариантна относительно n. Решение для k-шаговой задачи получается из решения (k-1)-шаговой задачи путем добавления k-го шага и использования результата, полученного для всех предыдущих шагов. Следовательно, сущность динамического подхода состоит в замене решения данной n–шаговой задачи последовательностью задач: одношаговой, двухшаговой и т.д. Какими свойствами должны обладать задачи, чтобы к ним можно было применить принцип динамического программирования? 1. Задача должна допускать интерпретацию как n–шаговый процесс принятия решений. 2. Задача должна быть определена для любого числа шагов и иметь структуру, не зависящую от их числа. 3. При рассмотрении k-шаговой задачи должно быть задано некоторое множество параметров, описывающих состояние системы, от которых зависят оптимальные значения переменных. Причем это множество не должно изменяться при увеличении числа шагов (в рассмотренной задаче таким параметром было – количество сырья). 127 4. Выбор решения (управления) на k-м шаге не должен оказывать влияния на предыдущие решения, кроме необходимого пересчета переменных. Пусть – вектор параметров, описывающих состояние процесса (вектор состояния). Тогда k ( ) – оптимальное значение целевой функции для k-шагового процесса при условии . k ( ) будем называть функцией состояния. Пусть X – вектор переменных, подлежащих выбору на k-м шаге. Тогда для задач, к которым можно применить метод динамического программирования, должно выполняться следующее рекуррентное соотношение: max{ f ( X k ; ) k( ) k 1[T ( ; X k )]} , Xk где T ( ; X k ) – вектор состояния предыдущего (k-1)–го шага, при условиях и Xk. Это рекуррентное соотношение обосновывает принцип оптимальности Р. Беллмана. Оптимальная стратегия обладает следующим свойством: каковы бы ни были начальное состояние и начальная стратегия X 1 , последующие стратегии (решения) должны быть оптимальны по отношению к состоянию T ( ; X 1 ) , получающемуся в результате предыдущего решения. 128 Рекомендуемая литература Корнеенко В. П. Методы оптимизации : учебник для вузов по специальности и направлению "Прикладная математика и информатика". – М.: Высшая школа, 2007. – 663 с. 2. Таха, Хэмди А. Введение в исследование операций. – М.: Вильямс, 2007.– 901 с. 3. Косоруков О.А. Мищенко А.В. Исследование операций: учебник. – М.: Экзамен, 2003.- 446 с. 4. Зайченко Ю.П. Исследование операций. – Киев: Вища школа, 1975. – 319 с. 5. Зайченко Ю.П. Исследование операций. – Киев: Вища школа, 1988. – 549 с. 6. Давыдов Э.Г. Исследование операций. – М.: Высшая школа, 1990. – 382 с. 7. Волков И.К., Загоруйко Е.А. Исследование операций. – М.: Изд-во МГТУ, 2000. – 435 с. 8. Вентцель Е.С. Исследование операций: задачи, принципы, методология. – М.: Дрофа, 2004. – 208 с. 9. Конюховский П.В. Математические методы исследования операций в экономике: учебное пособие. – СПб.: Питер, 2002. – 207 с. 10. Оуэн Г. Теория игр. – М.: Наука, 1971. – 230 с. 1. Дополнительная литература 11. Акоф Р., Сасиени М. Основы исследования операций. – М.: Мир, 1971. – 533 с. 12. Вагнер Г. Основы исследования операций.- М.: Мир, Т.1, 1972.; т. 2, 1973.; т. 3, 1973. 13. Кюнци Г.П., Крелле В. Нелинейное программирование. – М.: Сов. радио, 1965. – 303 с. 14. Саати Т.Л. Математические методы исследования операций. - М.: Мир, 1973. 15. Беллман Р. Динамическое программирование и современная теория управления. – М.: Наука, 1969. – 118 с. 16. Дегтярев Ю.И. Исследование операций. – М.: Высшая школа, 1986. – 319 с. 17. Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование. – М.: Наука, 1969. – 368 с. 18. Кюнци Г.П., Крелле В. Нелинейное программирование. – М.: Сов. радио, 1965. – 303 с. 19. Воробьев Н.Н. Теория игр для экономистов и кибернетиков. – М.: Наука, 1985. – 270 с. 20. Данилов В.И. Лекции по теории игр. - М.: Российская экономическая школа, 2002. - 140 с. 129 21. Дж. фон Нейман, О. Моргенштерн. Теория игр и экономическое поведение; пер. с англ. под ред. Н. Н. Воробьева. М.: Наука, 1970. – 707 с. 22. Петросян Л.А., Зенкевич Н.А., Семина Е.А.Теория игр : учебное пособие для ун-тов по специальности "Математика". – М.: Высшая школа, 1998. – 304 с. 23. Пшеничный Б.Н., Данилин Ю.М. Численные методы в экстремальных задачах. – М: Наука, 1975. – 319 с. 24. Печерский С.Л. Теория игр для экономистов. Вводный курс. – СПб.: Изд-во Европ. у-та, 2001. – 342 с. 25. Хедли Дж. Нелинейное и динамическое программирование. - М.: Мир, 1968. 130