Справочник от Автор24
Поделись лекцией за скидку на Автор24

Исследование операций и методы оптимизации в экономике

  • ⌛ 2016 год
  • 👀 459 просмотров
  • 📌 410 загрузок
  • 🏢️ ТГУ
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Исследование операций и методы оптимизации в экономике» pdf
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ И МЕТОДЫ ОПТИМИЗАЦИИ В ЭКОНОМИКЕ Часть 1. Лекционный курс Учебное пособие ТОМСК 2016 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Национальный исследовательский Томский государственный университет Факультет инновационных технологий Кафедра информационного обеспечения инновационной деятельности ИССЛЕДОВАНИЕ ОПЕРАЦИЙ И МЕТОДЫ ОПТИМИЗАЦИИ Часть 1. Лекционный курс Учебное пособие 2016 УДК 330.4(076.5) ИССЛЕДОВАНИЕ ОПЕРАЦИЙ И МЕТОДЫ ОПТИМИЗАЦИИ. ЧАСТЬ 1. Лекционный курс Составитель А.А. Мицель. ТОМСК: Изд. ТГУ, 2016. – 167 с. В пособии описаны различные модели математического программирования – линейного, нелинейного, квадратичного, целочисленного и динамического программирования, задачи многокритериальной оптимизации, а также методы безусловной оптимизации функций многих переменных. Пособие подготовлено для студентов, обучающихся по специальности 09.03.03 – прикладная информатика (бакалавриат) 4 Содержание Введение Тема 1. Линейное программирование 1.1. Постановка задачи линейного программирования 1.2 Примеры задач линейного программирования Вопросы для самопроверки Тема 2. Решение задач линейного программирования 2.1 Графический метод решения задач линейного программирования 2.2 Формы записи задач (ЗЛП) 2.3 Основы симплекс-метода 2.4. Алгоритм симплекс метода 2.5 Поиск начального базиса 2.5.1. Метод симплексного преобразования 2.5.2. Метод искусственного базиса Вопросы для самопроверки Тема 3. Двойственная задача линейного программирования 3.1 Постановка двойственной задачи 3.2 Свойства взаимно двойственных задач 3.3 Теоремы двойственности Вопросы для самопроверки Тема 4. Транспортная задача 4.1 Экономико – математическая модель транспортной задачи 4.2 Решение транспортной задачи симплексным методом 4.3 Первоначальное закрепление потребителей за поставщиками 4.4 Метод потенциалов 4.5 Улучшение оптимального плана перевозок (циклы перераспределения) 4.6 Открытая модель транспортной задачи Вопросы для самопроверки Тема 5. Целочисленное программирование 5.1 Графический метод решения ЗЦП 5.2 Метод Гомори (МГ) 5.2.1 Алгоритм МГ с использованием СМ 5.2.2. Решение частично целочисленных задач методом Гомори 5.3. Метод ветвей и границ 5.3.1 Алгоритм МВГ 5.4 Задача о назначениях 5.5 Задача о коммивояжере 5.6. Венгерский метод Вопросы для самопроверки 7 12 12 13 19 20 20 21 24 26 31 32 33 37 38 38 39 40 45 46 46 51 52 54 56 58 60 61 61 62 62 65 67 71 73 74 75 78 5 Тема 6. Задачи многокритериальной оптимизации 6.1. Метод уступок 6.2. Метод справедливого компромисса Вопросы для самопроверки Тема 7. Методы оптимизации функций 7.1. Основные понятия и определения 7.2. Классификация задач оптимизации 7.3. Необходимые и достаточные условия существования 1 7.3.1 Скалярный случай x ∈ R 7.3.2 Векторный случай 7.3.3 Минимизация при ограничениях 7.4. Критерии останова 7.5. Характеристики алгоритмов оптимизации Вопросы для самопроверки экстремума 79 80 83 84 85 85 88 89 89 89 90 90 91 92 Тема 8. Методы поиска экстремумов функции одной переменной 93 8.1 Прямые методы оптимизации 93 8.1.1 Метод равномерного поиска (МРП) 93 8.1.2 Метод деления отрезка пополам (МДОП) 93 8.1.3 Метод Фибоначчи (МФ) 94 8.1.4 Метод золотого сечения (МЗС) 95 8.2 Сравнение прямых методов оптимизации 96 8.3 Полиномиальная аппроксимация и методы точечного оценивания 97 8.3.1 Квадратичная аппроксимация 97 8.3.1 Метод Пауэлла 99 8.4 Методы с использованием производных 101 8.4.1 Метод Ньютона-Рафсона 101 8.4.2 Метод средней точки (поиск Больцано) 102 8.4.3 Другие методы поиска экстремума функций 103 8.4.4 Метод оптимизации с использованием кубичной аппроксимации 104 8.5 Сравнение методов одномерной оптимизации 106 Вопросы для самопроверки 106 Тема 9. Поиск экстремумов функции нескольких переменных 108 (безусловная оптимизация) 9.1 Классификация методов безусловной оптимизации 108 9.2. Методы прямого поиска 108 9.2.1 Симплексный метод 109 9.2.2 Метод Хука-Дживса 111 9.3 Градиентные методы 113 9.3.1 Метод сопряженных направлений 114 9.3.2 Метод наискорейшего спуска (метод Коши) 118 9.3.3 Метод Ньютона (МН) 120 Тема 6. Задачи многокритериальной оптимизации 6.1. Метод уступок 6.2. Метод справедливого компромисса Вопросы для самопроверки Тема 7. Методы оптимизации функций 7.1. Основные понятия и определения 7.2. Классификация задач оптимизации 7.3. Необходимые и достаточные условия существования 1 7.3.1 Скалярный случай x ∈ R 7.3.2 Векторный случай 7.3.3 Минимизация при ограничениях 7.4. Критерии останова 7.5. Характеристики алгоритмов оптимизации Вопросы для самопроверки экстремума 79 80 83 84 85 85 88 89 89 89 90 90 91 92 Тема 8. Методы поиска экстремумов функции одной переменной 93 8.1 Прямые методы оптимизации 93 8.1.1 Метод равномерного поиска (МРП) 93 8.1.2 Метод деления отрезка пополам (МДОП) 93 8.1.3 Метод Фибоначчи (МФ) 94 8.1.4 Метод золотого сечения (МЗС) 95 8.2 Сравнение прямых методов оптимизации 96 8.3 Полиномиальная аппроксимация и методы точечного оценивания 97 8.3.1 Квадратичная аппроксимация 97 8.3.1 Метод Пауэлла 99 8.4 Методы с использованием производных 101 8.4.1 Метод Ньютона-Рафсона 101 8.4.2 Метод средней точки (поиск Больцано) 102 8.4.3 Другие методы поиска экстремума функций 103 8.4.4 Метод оптимизации с использованием кубичной аппроксимации 104 8.5 Сравнение методов одномерной оптимизации 106 Вопросы для самопроверки 106 Тема 9. Поиск экстремумов функции нескольких переменных 108 (безусловная оптимизация) 9.1 Классификация методов безусловной оптимизации 108 9.2. Методы прямого поиска 108 9.2.1 Симплексный метод 109 9.2.2 Метод Хука-Дживса 111 9.3 Градиентные методы 113 9.3.1 Метод сопряженных направлений 114 9.3.2 Метод наискорейшего спуска (метод Коши) 118 9.3.3 Метод Ньютона (МН) 120 9.3.4 Модифицированный метод Ньютона 9.3.5 Метод Флетчера–Ривза (МФР) 9.3.6 Вариант Полака-Рибьера (МПР) 9.4 Квазиньютоновские методы (КМ) (методы с переменной метрикой) 9.4.1 Метод Дэвидона–Флетчера–Пауэлла (ДФП) Вопросы для самопроверки Тема 10. Нелинейное программирование 10.1. Задачи с ограничениями в виде равенств 10.1.1 Метод замены переменных (МЗП) 10.1.2 Метод множителей Лагранжа (ММЛ) 10.2. Необходимые и достаточные условия оптимальности задач с ограничениями общего вида Вопросы для самопроверки Тема 11. Методы штрафов 11.1. Общая схема метода штрафов 11.2. Основные типы штрафов 11.2.1 Квадратичный штраф 11.2.1 Бесконечный барьер 11.2.3 Логарифмический штраф 11.2.4 Штраф типа обратной функции 11.2.5 Штраф типа квадрата срезки 11.3. Примеры использования штрафов Вопросы для самопроверки Тема 12. Квадратичное программирование 12.1. Задача квадратичного программирования 12.2 Задача выбора портфеля ценных бумаг 12.3. Условие Куна-Таккера для ЗКП 12.4 Решение ЗКП методом симплексного преобразовании коэффициентов уравнений 12.5 Метод решения ЗКП с помощью искусственного базиса Вопросы для самопроверки Тема 13. Модели динамического программирования 13.1. Общая постановка задачи динамического программирования 13.2. Принцип оптимальности и уравнения Беллмана 13.3. Задача о распределении средств между предприятиями 13.4. Задача об оптимальном распределении ресурсов между отраслями на N лет 13.5. Задача о замене оборудования Вопросы для самопроверки Литература 120 121 122 123 124 125 126 126 126 127 129 131 132 132 132 133 133 134 134 135 137 140 141 141 141 144 145 146 147 148 148 150 154 158 161 166 167 7 Введение Исследование операций – научная дисциплина прикладного направления кибернетики, занимающаяся разработкой и практическим применением методов наиболее эффективного управления различными организационными (в том числе экономическими) системами. Предмет исследования операций очень широк. Теоретический аспект исследования операций состоит в построении и исследовании математических моделей принятия оптимальных решений. Приведем некоторые определения. Операция – любое управляемое мероприятие, направленное на достижение цели. Результат операции зависит от способа ее проведения, т.е. от выбора некоторых параметров. Всякий определенный выбор параметров называется решением. Оптимальными считают те решения, которые по тем или иным соображениям предпочтительней других. Модель операции. Для применения количественных методов исследования операций необходимо построить математическую модель операции. При построении модели операция, как правило, упрощается, схематизируется и схема операции описывается с помощью того или иного математического аппарата. Модель операции — это достаточно точное описание операции с помощью математического аппарата (различного рода функций, уравнений, систем уравнений и неравенств и т.п.). Составление модели операции требует понимания сущности описываемого явления и знания математического аппарата. Эффективность операции — степень ее приспособленности к выполнению задачи — количественно выражается в виде критерия эффективности — целевой функции. Например, в задаче об использовании ресурсов критерий эффективности — прибыль от реализации произведенной продукции, которую нужно максимизировать, в транспортной задаче — суммарные затраты на перевозку грузов от поставщиков к потребителям, которые нужно минимизировать. Выбор критерия эффективности определяет практическую ценность исследования. Общая постановка задачи исследования операции. В дальнейшем важно усвоить методологию построения моделей задач исследования операции. Все факторы, входящие в описание операции, можно разделить на две группы: • постоянные факторы (условия проведения операции), на которые мы влиять не можем. Обозначим их через α1 , α2 ,... ; зависимые факторы (элементы решения) x1 , x2 ,... , которые в известных пределах мы можем выбирать по своему усмотрению. Например, в задаче об использовании ресурсов к постоянным факторам следует отнести запасы ресурсов каждого вида, производственную матрицу, элементы которой определяют расход сырья каждого вида на единицу выпускаемой продукции каждого вида. Элементы решения — план выпуска продукции каждого вида. Критерий эффективности, выражаемый некоторой функцией, называется целевой, зависит от факторов обеих групп, поэтому целевую функцию Z можно записать в виде Z = f ( x1, x2 ,..., α1 , α2 ,...) . • Выделяют следующие классы моделей исследования операций. 1) класс оптимизационных моделей. Задачи этого класса возникают при попытке оптимизировать планирование и управление сложными экономическими 8 системами. Оптимизационную задачу можно сформулировать в общем виде: найти переменные x1 , x2 ,..., xn , удовлетворяющие системе неравенств ϕi ( x1, x2 ,..., xn ) ≤ bi , i = 1, 2,..., m (1) и обращающие в максимум (или минимум) целевую функцию Z = f ( x1, x2 ,..., xn ) → max(min) . (2) Как известно, упорядоченная совокупность значений n переменных x1 , x2 ,..., xn представляется точкой n -мерного пространства. В дальнейшем эту точку будем * * * * обозначать X = ( x1 , x2 ,..., xn ) , а само оптимальное решение X = ( x1 , x2 ,..., xn ) . Рассмотрим еще одну, характерную для исследования операций задачу — классическую задачу потребления, имеющую важное значение в экономическом анализе. Пусть имеется n видов товаров и услуг, количества которых (в натуральных единицах) x1 , x2 ,..., xn по ценам соответственно p1 , p2 ,..., pn за единицу. Суммарная n стоимость этих товаров и услуг составляет ∑ pi xi . i =1 Уровень потребления Z может быть выражен некоторой функцией Z = f ( x1, x2 ,..., xn ) , которую называют функцией полезности. Необходимо найти такой набор товаров и услуг x1 , x2 ,..., xn при данной величине доходов I , чтобы обеспечить максимальный уровень потребления, т.е. Z = f ( x1, x2 ,..., xn ) → max (3) при условии n ∑ pi xi ≤ I , (4) xi ≥ 0 (i = 1, 2,..., n ) . (5) i =1 Решения этой задачи, зависящие от цен p1 , p2 ,..., pn и величины дохода I , называются функциями спроса. Очевидно, что рассмотренная задача потребл ения (3) – (5) я вл я ет ся част н ым сл уч аем сф ор м ул и р о в ан н о й выш е задачи (1) – (2) на определение экстремума функции n переменных при некоторых ограничениях, т.е. задачей на условный экстремум. Если критерий эффективности Z = f ( x1, x2 ,..., xn ) (2) представляет линейную функцию, а функции ϕi ( x1, x2 ,..., xn ) ≤ bi в системе ограничений (1) также линейны, то такая задача является задачей линейного программирования. Если, исходя из содержательного смысла, ее решения должны быть целыми числами, то эта задача целочисленного линейного программирования. Если критерий эффективности и (или) система ограничений задаются нелинейными функциями, то имеем, задачу нелинейного программирования. В частности, если указанные функции обладают свойствами выпуклости, то полученная задача является задачей выпуклого программирования. Если в задаче математического программирования имеется переменная времени и критерий эффективности (2) выражается не в явном виде как функция 9 переменных, а косвенно — через уравнения, описывающие протекание операций во времени, то такая задача является задачей динамического программирования. Если критерий эффективности (2) и система ограничений (1) задаются функциями α α α вида cx1 1 x2 2 ... xn n , то имеем задачу геометрического программирования. Если функции f и (или) ϕi в выражениях (2) и (1) зависят от параметров, то получаем задачу параметрического программирования, если эти функции носят случайный характер — задачу стохастического программирования. Если точный оптимум найти алгоритмическим путем невозможно из-за чрезмерно большого числа вариантов решения, то прибегают к методам эвристического программирования, позволяющим существенно сократить просматриваемое число вариантов и найти если не оптимальное, то достаточно хорошее, удовлетворительное с точки зрения практики, решение. Из перечисленных методов математического программирования наиболее распространенным и разработанным является линейное программирование. В его рамки укладывается широкий круг задач исследования операций. Пример В.1. Рассмотрим пример из области оптимального проектирования. Пусть коробка изготовляется из прямоугольного листа материала размером a × b, a < b . Для этого из четырех углов прямоугольника вырезаются квадраты со стороной x и материал сгибается вдоль линий, отмеченных на рис. В.1 штриховыми линиями. В результате получается коробка с основанием в виде прямоугольника размером (a − 2 x)(b − 2 x) и высотой x . Здесь стратегия x ∈ X = (0, a / 2) может быть оценена целевой функцией V ( x) = x ( a − 2 x)(b − 2 x ) - объемом коробки. Максимум функции V ( x) на множестве X достигается в точке x* = a + b − a 2 − ab + b 2 . 6 2) Задачи сетевого планирования и управления рассматривают соотношения между сроками окончания крупного комплекса операций (работ) и моментами начала всех операций комплекса. Эти задачи состоят в нахождении минимальных продолжительностей комплекса операций, оптимального соотношения величин стоимости и сроков их выполнения. Рис. В1 3) Задачи массового обслуживания посвящены изучению и анализу систем обслуживания с очередями заявок или требований и состоят в определении 10 показателей эффективности работы систем, их оптимальных характеристик, например, в определении числа каналов обслуживания, времени обслуживания и т.п. 4) Задачи управления запасами состоят в отыскании оптимальных значений уровня запасов (точки заказа) и размера заказа. Особенность таких задач заключается в том, что с увеличением уровня, с одной стороны, увеличиваются затраты на их хранение, с другой стороны, уменьшаются потери вследствие возможного дефицита запасаемого продукта. 5)Задачи распределения ресурсов возникают при определенном наборе операций (работ), которые необходимо выполнять при ограниченных наличных ресурсах, и требуется найти оптимальные распределения ресурсов между операциями или состав операций. 6) Задачи ремонта и замены оборудования актуальны в связи с износом и старением оборудования и необходимостью его замены с течением времени. Задачи сводятся к определению оптимальных сроков, числа профилактических ремонтов и проверок, а также моментов замены оборудования модернизированным. 7) Задачи составления расписания (календарного планирования) состоят в определении оптимальной очередности выполнения операций (например, обработки деталей) на различных видах оборудования. 8) Задачи планировки и размещения состоят в определении оптимального числа и места размещения новых объектов с учетом их взаимодействия с существующими объектами и между собой. 9) Задачи выбора маршрута, или сетевые задачи, чаще всего встречаются при исследовании разнообразных задач на транспорте и в системе связи и состоят в определении наиболее экономных маршрутов. 10) Среди моделей исследования операций особо выделяются модели принятия оптимальных решений в конфликтных ситуациях, изучаемые теорией игр. К конфликтным ситуациям, в которых сталкиваются интересы двух (или более) сторон, преследующих разные цели, можно отнести ряд ситуаций в области экономики, права, военного дела и т. п. В задачах теории игр необходимо выработать рекомендации по разумному поведению участников конфликта, определить их оптимальные стратегии. На практике в большинстве случаев успех операции оценивается не по одному, а сразу по нескольким критериям, один которых следует максимизировать, другие — минимизировать. Математический аппарат может принести пользу и в случаях многокритериальных задач исследования операции, по крайней мере, помочь отбросить заведомо неудачные варианты решений. Для того чтобы из множества критериев, в том числе и противоречащих друг другу (например, прибыль и расход), выбрать целевую функцию, необходимо установить приоритет критериев. Обозначим f1 ( x ), f 2 ( x ),..., f n ( x ) (здесь x — условный аргумент). Пусть они расположены в порядке убывания приоритетов. В зависимости от определенных условий возможны в основном два варианта: • в качестве целевой функции выбирается критерий f1 ( x ) , обладающий наиболее высоким приоритетом; • рассматривается комбинация f ( x ) = ω1 f1 ( x ) + ω2 f 2 ( x ) + ... + ωn f n ( x ) , (6) где ω1 , ω2 ,..., ωn — некоторые коэффициенты (веса). Величина f ( x ) , учитывающая в определенной степени все критерии, выбирается в качестве целевой функции. 11 ωi — числа, fi ( x ) — функции. В условиях неопределенности fi ( x ) могут оказаться случайны и вместо f ( x ) в качестве целевой В условиях определенности функции следует рассматривать математическое ожидание суммы (6). Попытка сведения многокритериальной задачи к задаче с одним критерием эффективности (целевой функцией) в большинстве случаев не дает удовлетворительных результатов. Другой путь состоит в отбрасывании ("выбраковке") из множества допустимых решений заведомо неудачных решений, уступающих по другим всем критериям. В результате такой процедуры остаются так называемые эффективные (или "паретовские") решения, множество которых обычно существенно меньше исходного. А окончательный выбор "компромиссного" решения (не оптимального по всем критериям, которого, как правило, не существует, а приемлемого по этим критериям) остается за человеком — лицом, принимающим решение. В создание современного математического аппарата и развитие многих направлений исследования операций большой в к л а д в н е с л и р о с с и й с к и е у ч е н ы е Л . В . К а н т о р о в и ч , Н.П. Бусленко, Е.С. Вентцель, Н.Н. Воробьев, Н.Н. Moисеев, Д.Б. Юдин и многие другие. Особо следует отметить роль академика Л.В. Канторовича, который в 1939 г., занявшись планированием работы агрегатов фанерной фабрики, решил несколько задач: о наилучшей загрузке оборудования, о раскрое материалов с наименьшими потерями, о распределении грузов по нескольким видам транспорта и др. Л.В. Канторович сформулировал новый класс условно-экстремальных задач и предложил универсальный метод их решения, положив начало новому напрвлению прикладной математики — линейному программированию. Значительный вклад в формирование и развитие исследования операций внесли зарубежные ученые Р. Акоф, Р. Беллман, Г. Данциг, Г. Кун, Дж. Нейман, Т. Саати, Р. Черчмен, А. Кофман и др. Вопросы для самопроверки 1. 2. 3. 4. Что такое операция? Что такое эффективность операции? Что понимают под критерием эффективности операции? Перечислите классы моделей исследования операций 12 Тема 1. Линейное программирование 1.1. Постановка задачи линейного программирования Значительная часть задач принятия решения — это задачи распределения ресурсов между объектами. Пусть имеется m видов ресурсов. Наличие каждого i -ro вида ресурса составляет b i ( i = 1,..., m ) в соответствующих единицах измерения. Эти ресурсы предназначены для производства n видов продукции. Для выпуска единицы j -ro вида продукции необходимо a ij единиц i -го вида ресурса. Требуется определить, какого вида и сколько продукции следует произвести, чтобы такой выпуск был наилучшим для принятого критерия оптимальности. Обозначим через x j количество выпускаемой j -го вида продукции. Тогда для i ro вида ресурса можно записать n ∑ a ij x j ≤ b i , i = 1,..., m j=1 (1.1) где левая часть неравенства выражает потребность в ресурсе i -ro вида, правая — располагаемое количество этого ресурса. Если номенклатуру продукции ограничить предельными значениями объемов производства и продаж, то запишутся следующие граничные условия N Lj ≤ x j ≤ N U j , j = 1,..., n (1.2) L U где N j , N j — соответственно минимально- и максимально-допустимые объемы производства и продаж продукции j -го вида. В зависимость (1) можно ввести дополнительные переменные. Тогда n (1.3) ∑ a ij x j + y i = b i , i = 1,..., m j=1 В этой системе уравнений дополнительные переменные означают разность между располагаемым ресурсом и потребным и, следовательно, равны недоиспользуемым величинам ресурсов, то есть это резервы каждого вида ресурсов. В реальных задачах суммарное количество основных x j ( j = 1,..., m ) и дополнительных y i ( i = 1,..., m ) переменных всегда больше, чем число зависимостей m , поэтому система (1) имеет бесчисленное множество решений. Из этого бесчисленного множества следует выбрать одно — оптимальное, соответствующее критерию — цели решения задачи. Цель задачи распределения ресурсов устанавливается какой-либо одной из двух взаимоисключающих постановок: 1) при заданных ресурсах максимизировать получаемый результат; 2) при заданном результате минимизировать потребные ресурсы. Первая постановка аналитически запишется: 13 n f1( x ) = ∑ c j x j → max j =1 (1.4) x n ∑ a ij x j ≤ b i , i = 1,..., m j=1 N Lj ≤ x j ≤ N U j , j = 1,..., n (1.5) (1.6) где c j — величина, показывающая, какой вклад в результат дает единица продукции j -го вида. Решение задачи состоит в нахождении значений x j , обеспечивающих при заданных ресурсах получение максимального результата. Вторая постановка задачи будет иметь вид m (1.7) f 2 ( y ) = ∑ yi → max y i =1 n (1.8) ∑ c jx j ≥ C j=1 n (1.9) ∑ a ij x j + y i = b i , i = 1,..., m j=1 N Lj ≤ x j ≤ N U (1.10) j , j = 1,..., n y i ≥ 0, i = 1,..., m (1.11) где C — минимально допустимое значение потребного результата. Максимизация переменных y i означает максимизацию резервов ресурсов, а значит минимизация потребных ресурсов. Первую и вторую задачи, в которые переменные x j и y i входят в первой степени, то есть в виде линейных зависимостей, называют задачами линейного программирования. Каждая задача линейного программирования содержит целевую функцию (1.4) или (1.7), ограничения (1.5), (6) или (1.8)-(1.11). Для решения задач линейного программирования используют графический и аналитический методы. 1.2 Примеры задач линейного программирования 1. Задача об использовании ресурсов (задача планирования производства). Для изготовления двух видов продукции P1 и P2 используют четыре вида ресурсов S1, S2, S3, S4. Запасы ресурсов, число единиц ресурсов, затрачиваемых на изготовление единицы продукции, приведены в табл. 1 (цифры условные). Т а б л и ц а 1.1 Вид ресурса Запас ресурса Число единиц ресурсов, затрачиваемых на изготовление единицы продукции P1 P2 14 S1. S2 S3 S4 18 16 5 21 Стоимость ед. продукции 1 2 — 3 3 1 1 — 2 д.е. 3 д.е. Необходимо составить такой план производства продукции, при котором прибыль от ее реализации будет максимальной. Р е ш е н и е . Составим экономико-математическую модель задачи. Обозначим x1 , x 2 — число единиц продукции соответственно P1 и P2, запланированных к производству. Для их изготовления (см. табл. 2.1) потребуется ( x1 + 3x 2 ) единиц ресурса S1, ( 2 x1 + x 2 ) единиц ресурса S2, ( x 2 ) единиц ресурса S3 и ( 3x 2 ) едииц ресурса S4. Так как потребление ресурсов S1, S2, S3 и S4 не должно превышать их запасов, соответственно 18, 16, 5 и 21 единицы, то связь между потреблением ресурсов и их запасами выразится системой неравенств: x1 + 3x 2 ≤ 18, 2 x + x ≤ 16,  1 2  x 2 ≤ 5,  3x1 ≤ 21 (1.12) По смыслу задачи переменные x1 ≥ 0, x 2 ≥ 0 (1.13) Суммарная прибыль f составит 2 x1 руб. от реализации продукции Р1 и 3x 2 руб. — от реализации продукции P2, т.е. f = 2 x1 + 3x 2 . (1.14) Итак, экономико-математическая модель задачи: найти такой план выпуска продукции X = ( x1 , x 2 ) , удовлетворяющий системе (1.11) и условию (1.12), при котором функция (1.13) принимает максимальное значение. Задачу легко обобщить на случай выпуска n видов продукции с использованием m видов ресурсов. Обозначим x j ( j = 1,..., n ) — число единиц продукции Pj, запланированной к производству; b i ( i = 1,..., m ) — запас ресурсов Si, a ij — число единиц ресурса Si затрачиваемого на изготовление единицы продукции Pj (числа a ij часто называют технологическими коэффициентами); c j — прибыль от реализации единицы продукции Pj. Тогда экономико-математическая модель задачи об использовании ресурсов в обшей постановке примет вид: найти такой план X = ( x1 , x 2 , ..., x n ) выпуска продукции, удовлетворяющий системе 15 a11x1 + a12 x 2 + ... + a1n x n ≤ b1, a x + a x + ... + a x ≤ b ,  21 1 12 2 2n n 2  ............................................ a m1x1 + a m 2 x 2 + ... + a mn x n ≤ b m (1.15) и условию x1 ≥ 0, x 2 ≥ 0, ..., x n ≥ 0 , (1.16) f = c1x1 + c 21x 2 + ... + c n x n (1.17) при котором функция принимает максимальное значение 2. Задача составления рациона (задача о диете, задача о смесях). Имеется два вида корма Р1 и Р2, содержащие питательные вещества (витамины) S1, S2 и S3. Содержание числа единиц питательных веществ в 1 кг каждого вида корма и необходимый минимум питательных веществ приведены в табл. 2 (цифры условные). Та б л и ц а 1.2 Питательное Необходимый минимум Число единиц питательных вещество питательных веществ веществ в 1 кг корма S1 9 Р1 3 S2 8 1 2 S3 12 1 6 4 д.е. 6 д.е. Стоимость 1 кг корма Р2 1 Необходимо составить дневной рацион, имеющий минимальную стоимость, в котором содержание каждого вида питательных веществ было бы не менее установленного предела. Р е ш е н и е . Составим экономико-математическую модель задачи. Обозначим x1 , x 2 — количество кормов Р1 и Р2, входящих в дневной рацион. Тогда этот рацион (см. табл. 2.2) будет включать ( 3x1 + x 2 ) единиц питательного вещества S1, ( x1 + 2 x 2 ) единиц вещества S2 и ( x1 + 6 x 2 ) единиц питательного вещества S3. Так как содержание питательных веществ S1, S2 и S3 в рационе должно быть не менее соответственно 9, 8 и 12 единиц, то получим систему неравенств: 3x1 + x 2 ≥ 9,  x1 + 2 x 2 ≥ 8, x + 6 x ≥ 12, 2  1 (1.18) Кроме того, переменные x1 ≥ 0, x 2 ≥ 0 (1.19) Общая стоимость рациона составит (в д.е.) f = 4 x1 + 6 x 2 (1.20) 16 Итак, экономико-математическая модель задачи: составить дневной рацион X = ( x1 , x 2 ) , удовлетворяющий системе (1.18) и условию (1.19), при котором функция (1.20) принимает минимальное значение. Для формулировки задачи в общей постановке обозначим: x j ( j = 1,..., n ) — число единиц корма j - го вида; b i ( i = 1,..., m ) — необходимый минимум содержания в рационе питательного вещества Si; a ij — число единиц питательного вещества Si в единице корма j го вида; c j — стоимость единицы корма j -го вида. Тогда экономико-математическая модель задачи примет вид: найти такой рацион X = ( x1 , x 2 , ..., x n ) , удовлетворяющий системе a11x1 + a12 x 2 + ... + a1n x n ≥ b1, a x + a x + ... + a x ≥ b ,  21 1 12 2 2n n 2  ............................................ a m1x1 + a m 2 x 2 + ... + a mn x n ≥ b m (1.21) и условию x1 ≥ 0, x 2 ≥ 0, ..., x n ≥ 0 , (1.22) f = c1x1 + c 21x 2 + ... + c n x n (1.23) при котором функция принимает минимальное значение. 3. Задача об использовании мощностей (задача о загрузке оборудования). Предприятию задан план производства продукции по времени и номенклатуре: требуется за время T выпустить n1 , n 2 ,..., n k единиц продукции P1, P2, …, Pk. Продукция производится на станках S1, S2, …, Sm. Для каждого станка известны производительность a ij (т.е. число единиц продукции Pj, которое можно произвести на станке Si за единицу времени) и затраты b ij на изготовление продукции Pj на станке Si в единицу времени. Необходимо составить такой план работы станков (т.е. так распределить выпуск продукции между станками), чтобы затраты на производство всей продукции были минимальными. Составим экономико-математическую модель задачи. Обозначим x ij — время, в течение которого станок Si ( i = 1,..., m ) будет занят изготовлением продукции Pj ( j = 1,..., k ). Так как время работы каждого станка ограничено и не превышает T, то справедливы неравенства: x11 + x12 + ... + x1k ≤ T, x + x + ... + x ≤ T,  21 22 2k  ................................ x m1 + x m 2 + ... + x mk ≤ T. (1.24) Для выполнения плана выпуска по номенклатуре необходимо, чтобы выполнялись следующие равенства: 17 a11x11 + a 21x 21 + ... + a m1x m1 = n1, a x + a x + ... + a x  12 12 22 22 m2 m2 = n 2 ,  ................................ a1k x1k + a 2k x 2k + ... + a mk x mk = n k . (1.25) Кроме того, x ij ≥ 0 (i = 1,..., m; j = 1,..., k ) . (1.26) Затраты на производство всей продукции выразятся функцией m k f = ∑ ∑ b ijx ij (1.27) i =1 j=1 Экономико-математическая модель задачи об использовании мощностей примет вид: найти такое решение X = ( x11 , x12 , ..., x mk ) , удовлетворяющее системам (1.24) и (1.25) и условию (1.26), при котором функция (1.27) принимает минимальное значение. 4. Задача о раскрое материалов На раскрой (распил, обработку) поступает материал одного образца в количестве V единиц. Требуется изготовить из него m разных комплектующих изделий в количествах, пропорциональных числам b1 , b 2 ,..., b m (условие комплектности). Каждая единица материала может быть раскроена n различными способами, причем использование j -ro способа ( j = 1, 2, ..., n ) дает a ji единиц i -го изделия ( i = 1, 2, ..., m ). Необходимо найти план раскроя, обеспечивающий максимальное число комплектов. Составим экономико-математическую модель задачи. Обозначим x j — число единиц материала, раскраиваемых j -м способом, и x — число изготавливаемых комплектов изделий. Так как общее количество материала равно сумме его единиц, раскраиваемых различными способами, то n (1.28) ∑ xj = V. j=1 Требование комплектности выразится уравнениями n ∑ x ja ji = xb i (i = 1, 2,..., m) j=1 (1.29) x j ≥ 0 ( j = 1,..., n ) (1.30) Очевидно, что Экономико-математическая модель задачи: найти такое решение X = ( x1 , x 2 , ..., x n ) , удовлетворяющее системе уравнений (1.28) — (1.29) и условию (1.30), при котором функция f =x принимает максимальное значение. 18 Пример 1.1 Для изготовления брусьев длиной 1,2 м, 3 м и 5 м в соотношении 2:1:3 на распил поступают 195 бревен длиной 6 м. Определить план распила, обеспечивающий максимальное число комплектов. Составить экономико-математическую модель задачи. Р е ш е н и е . Прежде всего определим всевозможные способы распила бревен, указав соответствующее число получаемых при этом брусьев (табл. 1.3). Та б л и ц а 1.3. Способ распила Число получаемых брусьев длиной, м j 1,2 3,0 5,0 1 2 3 4 5 2 — — — 1 2 — — — — 1 Обозначим: x j — число бревен, распиленных j -ым способом ( j = 1, 2, 3, 4 ); x — число комплектов брусьев. Учитывая, что все бревна должны быть распилены, а число брусьев каждого размера должно удовлетворять условию комплектности, экономико-математическая модель задачи примет вид: f = x → max при ограничениях: x1 + x 2 + x 3 + x 4 = 195, 5x + 2 x = 2x,  1 2  x 2 + 2x 3 = x,   x 4 = 3x , x j ≥ 0 ( j = 1, 2, 3, 4) 5. Задача технического контроля В отделе технического контроля (ОТК) некоторой фирмы работают контролеры 1го и 2-го разрядов. Норма выработки ОТК за 8-ми часовой рабочий день составляет не менее 1800 изделий. Контролер 1-го разряда проверяет 25 изделий в час, причем не ошибается в 98 % случаев. Контролер 2-го разряда проверяет 15 изделий в час; его точность – 95 %. Зарплата контролера К1 – 4 доллара в час, контроля К2 – 3 доллара в час. При каждой ошибке контролера фирма несет убыток в размере 2 долларов. Фирма может использовать не более 8 К1 и не более 10 К2. Определить оптимальный состав ОТК, при котором общие затраты на контроль будут минимальны. Модель ОТК 1) пусть x1 , x 2 обозначают количество К1 и К2 соответственно 2) число контролеров каждого разряда ограничено, т.е. x1 ≤ 8 (разряд 1) x 2 ≤ 10 (разряд 2) Ежедневно необходимо проверять не менее 1800 изделий. Поэтому должно выполняться неравенство 8 ⋅ 25 ⋅ x1 + 8 ⋅ 15 ⋅ x 2 = 200 x1 + 120 x 2 ≥ 1800 19 или 5 x1 + 3 x2 ≥ 45 3) При построении ЦФ следует иметь в виду, что расходы фирмы, связанные с контролем, включают две составляющие - зарплату контролеров - убытки, вызванные ошибками контролеров Расходы на одного контролера К1 составляют 4долл + 2 ⋅ 25 ⋅ 0.02 = 5долл / час Расходы на одного контролера К2 составляют 3долл + 2 ⋅ 15 ⋅ 0.05 = 4.5 долл / час Следовательно, ЦФ, выражающая ежедневные расходы на контроль, имеет вид f (x1 , x 2 ) = 8(5x1 + 4.5x 2 ) = 40x1 + 36x 2 Экономико-математическая модель отдела технического контроля примет вид: min f (x ) = 40x1 + 36x 2 при ограничениях: 5x1 + 3x 2 ≥ 45 0 ≤ x1 ≤ 8; 0 ≤ x 2 ≤ 10 Вопросы для самопроверки 1. 2. 3. 4. 5. 6. Сформулируйте общую постановку задачи линейного программирования Сформулируйте задачу планирования производства Сформулируйте задачу составления рациона Сформулируйте задачу о загрузке оборудования Сформулируйте задачу о раскрое материалов Сформулируйте задачу технического контроля 20 Тема 2. Решение задач линейного программирования 2.1 Графический метод решения задач линейного программирования Графический метод применяют, когда число переменных не превосходит 2. На практике задачи такой размерности встречаются редко, однако графический метод хорошо иллюстрирует основные понятия, используемые при решении ЗЛП большой размерности. Графический метод рассмотрим на примере задачи 5 (задача технического контроля) Пример 2.1 min f = 40x1 + 36x 2 5x1 + 3x 2 ≥ 45, x1 ≤ 8, x 2 ≤ 10, x1 ≥ 0, x 2 ≥ 0. В качестве первого шага решения следует определить допустимую область или область допустимых решений (ОДР). Для изображения ОДР следует начертить графики всех ограничений. Все допустимые решения лежат в первом квадранте, т.к. x1 , x 2 ≥ 0 (см. рис. 2.1) ОДР является треугольник ABC (в общем случае многогранник M при m > 2 ), который содержит бесконечное число допустимых точек. Нужно найти точку, в которой f (x ) = min . Если зафиксировать значение ЦФ f = 40 x1 + 36 x 2 , то соответствующие ему точки будут лежать на некоторой прямой. При изменении величины f прямая подвергается параллельному переносу. Рассмотрим прямые, соответствующие различным значениям f , имеющие с ОДР хотя бы одну общую точку. Положим f 0 = 680 . Тогда прямая ЦФ пройдет через точку B(8,10 ) . При приближении прямой ЦФ к началу координат значение f уменьшается. Минимальное значение ЦФ достигается в узловой точке A(8, 5 / 3) . ∗ ∗ Следовательно, x = (8, 5 / 3); f = 380 - оптимальное решение задачи. Таким образом x ∗ = (8, 5 / 3) - оптимальный план. x2 5 x1 + 3 x2 = 45 C (3,10 ) 10 8 f ∗ = 380 B(8,10 ) f = 500 f = 680 f = 600 6 4 2 допустима я область A(8,5 / 3) ∆ABC 2 4 Рис. 2.1 6 8 10 x1 21 Итак, для оптимального режима работы ОТК необходимо использовать 8 контролеров 1-го разряда и 1,6 контролера 2-го разряда. Дробное значение x2 = 1.6 соответствует ситуации, когда один из двух К2 используется в течении неполного рабочего дня. При недопустимости неполной загрузки контролеров дробные значения обычно округляются, получая приближенное оптимальное целочисленное решение x1 = 8, x2 = 2 . Итак, мы рассмотрели линейные уравнения и неравенства с двумя переменными. Если перейти к линейным зависимостям с тремя переменными, то тогда они будут описывать плоскость в трехмерном пространстве; линейное неравенство характеризует полупространство, а система линейных неравенств — многогранник как область допустимых решений в трехмерном пространстве. С увеличением числа переменных выше трех, геометрическая интерпретация невозможна, так как система неравенств определяет область допустимых решений в k мерном пространстве. При этом мерность пространства определяют так: если ограничения заданы неравенствами, то k = n , где n — число переменных; если ограничения в виде уравнений, то k = n − m , где m — число уравнений. Из рассмотренного примера решения задачи ОТК мы видели, что оптимальное решение задачи соответствует одной из вершин многогранника. • Отсюда можно сделать исключительно важный вывод: оптимальное решение — координаты вершины области допустимых решений. Из этого вывода следует метод решения задач линейного программирования, который заключается в следующем: 1. Найти вершины области допустимых решений как точки пересечения ограничений. 2. Определить последовательно значения целевой функции в вершинах. 3. Вершина, в которой целевая функция приобретает оптимальное (max или min) значение, является оптимальной вершиной. 4. Координаты оптимальной вершины есть оптимальные значения искомых переменных. 2.2 Формы записи задач (ЗЛП) В самом общем виде ЗЛП записывается в следующем виде Найти min (max ) n f (x ) = ∑ c jx j j=1 при ограничениях ≤    aij x j =  bi , i = 1, m ∑ j =1 ≥    x j ≥ 0, j = 1, n (2.1) n ЗЛП (2.1) – (2.3) можно записать, например таким образом Здесь n - число переменных; m - число ограничений. Запишем ЗЛП в матричном виде (2.2) (2.3) 22 min f ( x ) = min c t x, ≤    Ax =  b, ≥    x ≥ 0, { } t где A = a ij - действительная матрица m ⋅ n ограничений; c = ( c1,c 2 ,…,c n ) - вектор строка; b = (b1 ,…, b m ) - вектор ограничений ( b j ≥ 0, j = 1,...m ); t n f ( x ) = c x = ∑ c jx j - целевая функция. j=1 Неотрицательность элементов вектора b легко получить, если это необходимо, умножив соответствующие неравенства в (2.2) на (-1). Стандартная форма записи ЗЛП (каноническая форма) ЗЛП имеет стандартную форму, если все ее ограничения имеют форму равенства (кроме ограничений неотрицательности x j ≥ 0 ) f ( x ) = ct x → min x Ax = b (2.4) x≥0 Замечание. Если ищется максимум ЦФ f (x ) , то заменой ЦФ на − f (x ) сводят исходную задачу к минимизации функции − f (x ) , то есть min (− f (x )) = max f ( x ) . Основные методы решения ЗЛП ориентированы на использование стандартной (канонической) формы записи. Любую ЗЛП всегда можно представить в стандартной форме, введя дополнительные переменные. Пример 2.2 min (5x1 − 3x 2 ) x1 − x 2 ≥ 2 2 x1 + 3x 2 ≤ 4 − x1 + 6 x 2 = 10 (2.5) x1 ≥ 0; x 2 ≥ 0 Введя дополнительные переменные x 3 ≥ 0, x 4 ≥ 0 в 1-ом и 2-ом ограничениях, получим задачу (2.5) в эквивалентной форме min ( 5 x1 − 3 x2 + 0 x3 + 0 x4 )   x1 − x2 − x3 = 2  2 x1 + 3 x2 + x4 = 4 − x + 6 x = 10 2  1  x1 ≥ 0; x2 ≥ 0; x3 ≥ 0; x4 ≥ 0 (2.6) – стандартная форма записи задачи (2.5). (2.6) 23 Следует подчеркнуть, что дополнительные переменные столь же необходимы, как и исходные переменные задачи. В некоторых случаях возникает необходимость рассмотрения переменных x j , на которые не наложены ограничения, т. е. x j может принимать и положительные, и отрицательные значения. Поскольку переменные задачи линейного программирования в стандартной форме предполагаются неотрицательными, неограниченные переменные заменяют выражением: xj =uj −vj, где u j ≥ 0, v j ≥ 0. Значения x j могут быть > 0 или < 0 в зависимости от соотношения величин u j и vj. Пример 2.3. Рассмотрим задачу линейного программирования в нестандартной форме или в общем виде: f ( x ) = x1 − 2 x2 + 3x3 → max ; ограничения: x1 + x 2 + x3 ≤ 7 , (2.7) x1 − x 2 + x3 ≥ 2 , 3 x1 − x 2 − 2 x3 = −5 , x1 ≥ 0, x2 ≥ 0, x3 (≥ / ≤) 0 , (2.8) (2.9) где x 3 – переменная, неограниченная по знаку. Преобразуем эту задачу к стандартной форме (СФ): 1) заменим x3 на x 4 − x5 , где x4 , x 5 ≥ 0 ; 2) умножим обе части уравнения (2.9) на (-1); 3) введем дополнительные переменные x 6 , x 7 в ограничения (2.7) и (2.8) соответственно; 4) припишем нулевой коэффициент переменным x 6 , x 7 , а целевую функцию умножим на (-1). Таким образом, рассматриваемая задача сводится к следующей задаче линейного программирования в СФ: − f ( x ) = − x1 + 2 x2 − 3x4 + 3x5 − 0 ⋅ x6 − 0 ⋅ x7 → min; при ограничениях: x1 + x 2 + x 4 − x5 + x 6 = 7, x1 − x 2 + x 4 − x5 − x 7 = 2, − 3 x1 + x 2 + 2 x 4 − 2 x5 = 5; x j ≥ 0; j = 1, … ,7. Ранее мы отмечали, что если b  вектор ресурсов, то в (2.6) дополнительная переменная x 4 означает резерв ресурса b 2 = 4 . В первом ограничении введена переменная x 3 со знаком (-). Это значит, что переменная x 3 представляет собой количество дополнительного ресурса, необходимого для выполнения плана. 24 Сформулируем основные определения ЛП. Определение 1. Вектор x , удовлетворяющий всем ограничениям ЗЛП, называется допустимым решением (планом). Определение 2. Множество всех допустимых решений образует допустимую область S : S = x Ax ≤ b, x ≥ 0 . Если S = 0/ - пустое множество, то ЗЛП называется противоречивой. Определение 3. План x * , для которого f (x ) достигает минимума, называется ∗ оптимальным решением f x ≤ f (x ) . Неединственность оптимального решения Существует более одного допустимого решения ∗ со значениями ЦФ равными оптимальному f Неограниченный оптимум min (max ) f → −∞(+ ∞ ) { } ( ) Рассмотрим несколько теорем, позволяющих провести анализ решения ЗЛП Теорема 1. Множество всех решений ЗЛП выпукло. t Теорема 2 . Линейная форма f (x ) = c x ЗЛП достигает своего минимума (максимума) в крайней точке выпуклой области решений S (в вершине многогранника). Если f (x ) достигает min (max ) более, чем в одной крайней точке, то она достигает того же значения в любой точке, являющейся выпуклой комбинацией этих точек. 2.3 Основы симплекс-метода Рассмотрим общую ЗЛП с m ограничениями и n переменными, записанную в стандартной (канонической) форме n f (x ) = c t x = ∑ c j x j → min j=1 a11x1 + a12 x 2 + … + a1n x n = b1 … … … a m1x1 + a m 2 x 2 + … + a mn x n = b m x j ≥ 0; j = 1, n (2.10) Как правило, число уравнений задачи меньше числа переменных ( т.е. m < n ), поэтому множество ее допустимых решений равно ∞ . Задача состоит в том, чтобы найти наилучшее решение в смысле принятого критерия (минимума целевой функции). Из теоремы 2 следует, что оптимальное решение представляет собой одну из вершин многогранника допустимой области. Другими словами, оптимальное решение это одно из базисных решений. Получение одного из базисных решений основано на известном классическом методе решения систем линейных уравнений – методе Гаусса – Жордана. Основная идея этого метода состоит в сведении системы m уравнений с n неизвестными к каноническому или ступенчатому виду при помощи элементарных операций над строками 1) умножение любого уравнения системы на положительное или отрицательное число 2) прибавление к любому уравнению другого уравнения системы, умноженного на положительное или отрицательное число При использовании первых m переменных такая система имеет следующий вид 25 x1 + a10, m +1x m +1 + … + a10, s x s + … + a10, n x n = b10 x k + a 0k , m +1x m +1 + … + a 0k ,s x s + … + a k , n x n = b 0k (2.11) x m + a 0m, m +1x m +1 + … + a 0m, s x s + … + a m, n x n = b 0m Подставляя эти переменные в целевую функцию, получим n f (x ) = p 00 + ∑ p 0j x j j= m +1 m m где p 00 = ∑ ci b i0 ; p 0j = − ∑ ci a ij0 + c j , j = m + 1,…, n i =1 i =1 Систему (2.11) можно переписать следующим образом n x i = b i0 − ∑ a ij0 x j , i = 1, m j = m +1 (2.12) (2.13) (2.14) Переменные x1 ,…, x m входящие с единичными коэффициентами в одно уравнение системы (2.11) (или (2.14)) и с нулевыми в остальные, называются базисными или зависимыми. В канонической системе (2.11), (2.14) каждому уравнению соответствует ровно одна базисная переменная. Остальные (n − m ) переменные (x m +1 ,…, x n ) называются небазисными или независимыми переменными. При записи системы в каноническом виде все ее решения можно получить, присваивая независимым переменным произвольные значения и решая затем получающуюся систему относительно зависимых переменных. Определение 4 Базисным решением системы (2.11) называется решение, полученное при нулевых значениях небазисных переменных. Например, в системе (2.11) одно из базисных решений задается как x1 = b10 , x 2 = b 02 ,…, x m = b 0m  (2.15)   x m +1 = 0;…; x n = 0 Определение 5 Базисное решение называется допустимым базисным решением, если значения входящих в него базисных переменных x j ≥ 0, j = 1, m , что эквивалентно условию b j ≥ 0, j = 1, m . Т.к. различные базисные решения системы (2.11) соответствуют различным вариантам выбора (m ) из общего числа (n ) переменных x j , то число допустимых базисных решений (угловых точек) не превышает cm n = n! m!(n − m )! Поэтому ЗЛП можно решать посредством перебора конечного числа угловых точек допустимого множества S , сравнивая значения ЦФ в этих точках. Это наихудший вариант решения ЗЛП, т.к. требует огромного объема вычислений. Пример 2.4. Если n = 50, m = 25 (задача небольшой размерности), то 14 (кол-во вариантов). Далее если ЭВМ будет количество переборов составит 1.26 × 10 26 выполнять 10 решения. 5 переборов вариантов в 1 сек., то ей потребуется 40 лет для поиска Обычно n = 1500 ÷ 2000; m = 1000 ÷ 1500 Идея СМ состоит в направленном переборе угловых точек допустимого множества S с последовательным уменьшением ЦФ f (x ) . СМ разработал ДЖ. Данциг (американский ученый) в 1947 г. Этот метод называют так же методом последовательного улучшения решения (плана). Гарантии результативности СМ обеспечиваются следующей теоремой. Теорема 3 (о конечности алгоритма симплекс метода). Если существует оптимальное решение ЗЛП, то существует и базисное оптимальное решение. Это решение может быть получено через конечное число шагов симплекс-методом, причем, начать можно с любого исходного базиса. 2.4. Алгоритм симплекс метода Ручные вычисления по симплекс-методу удобно оформлять в виде так называемых симплекс-таблиц. Для удобства составления симплекс-таблицы (СТ) будем считать, что ЦФ и система ограничений переписаны в форме (2.11), (2.12) n f (x ) = p 00 + ∑ j= m +1 где xi + p 0j x j m m i =1 i =1 p 00 = ∑ ci b i0 ; p 0j = − ∑ ci a ij0 + c j , n ∑ a ij x j = b i , j= m +1 j = m + 1,…, n i = 1, m По исходным данным заполняется исходная СТ. В первый столбец выписывают базисные переменные, в последний столбец свободные члены. В первую строку выписывают небазисные переменные, в последнюю строку – коэффициенты при переменных в целевой функции. В последней клетке последней строки заносим p 0 со знаком “минус”. В остальные клетки заносятся коэффициенты ограничений Таблица 2.1 Базисные переменны е x m +1 x1 a10m +1 … → xj a 0jm +1 … ↓ xk … xn Свободные члены a10k a10n b10 … a 0jk a 0jn b 0j 27 … xm … a 0mk a 0mm+1 Целевая функция f p 0m +1 … p 0k … a 0mn b 0m p 0n − p 00 Сформулируем сейчас алгоритм СМ применительно к данным, внесенным в табл. 1. Шаг 1. Выяснить, имеются ли в последней строке таблицы отрицательные числа ( p 0 не принимается во внимание). Если все числа неотрицательны, то процесс закончен; ( ) ∗ базисное решение b1 ,…, b m ,0,…,0 является оптимальным; f = p 0 . Если в последней строке имеются отрицательные числа p m +1 , p m + 2 ,…, p n , перейти к Шаг 2. Шаг 2. Просмотреть столбец, соответствующий наименьшему отрицательному числу p 0k , m + 1 ≤ k ≤ n и выяснить, имеются ли в нем положительные числа a ik , i = 1, m . Если ни в одном из таких столбцов нет положительных чисел, то оптимального решения не существует. Если найден столбец, содержащий хотя бы один положительный элемент (если таких столбцов несколько взять любой из них), отметить его вертикальной стрелкой (см. табл. 2.1) и перейти к Шаг 3. Шаг 3. Разделить свободные члены на соответствующие положительные числа из выделенного столбца и выбрать наименьшее частное. Отметить строку, соответствующую наименьшему частному горизонтальной стрелкой. Выделить разрешающий элемент a jk , стоящий на пересечении отмеченных строки и столбца. Перейти к Шаг 4. Шаг 4. 1. Поменять местами переменные x k и x j , остальные переменные оставить на прежних местах. 1 . a jk 3. На остальных местах разрешающей (опорной) строки записать соответствующие элементы исходной таблицы, делённые на опорный элемент. 4. На свободные места разрешающего столбца поставить со знаком минус соответствующие элементы исходной таблицы, делённые на опорный элемент. Шаг 5 Оставшиеся свободные места в новой СТ заполнить построчно следующим образом: из строки элементов исходной таблицы вычесть произведение ее элемента из разрешающего столбца на уже заполненную разрешающую строку новой таблицы. Например, для строки i – ой базисной переменной имеем: 1 1 1 (a1i,m +1,...,¬,...a1i,n ,b1i) = (a i,m +1,...,¬,...a i,n ,b i ) − a i,k (a k,m +1,...,¬,...a k,n ,b k ) 2. На место опорного элемента поставить число 28 Знак ¬ стоит на месте элемента разрешающего столбца, заполненного согласно определению операции 4. На этом заполнение новой таблицы заканчивается и происходит переход к Шаг 1. Замечание. Если целевую функцию необходимо максимизировать, то предварительно нужно умножить ее на (-1). Пример 2.5. Решить ЗЛП симплекс-методом x1 − x 4 + x 5 = 2 x 2 + 2 x 4 + 3x 5 = 7 x 3 + x 4 − 2x 5 = 1 f = 3 + x 4 − 2x 5 → min Из системы ограничений видно, что переменные x1 , x 2 , x 3 являются базисными. Эти переменные используем в качестве начального опорного плана (начального базиса). Поэтому 1, 2 и второй столбцы исключаем из таблицы. Результаты расчета представлены в табл.2.2 Таблица 2.2 Базисные переменные → x1 x2 x3 f x4 x5 ↓ Свободные члены -1 1 2 2 3 7 1 -2 1 1 -2 -3 x4 x1 ↓ x5 → x2 x3 f -1 1 2 5 -3 1 -1 2 5 -1 2 1 x2 x1 0.2 0.4 2,2 x5 0.2 -0.6 0.2 x4 0.2 1.4 5,2 x3 0.2 1.40 1,2 f Ответ: x* = (0, 0, 5.2, 0.2, 2.2); f * = −1.2 . Пример 2.6. Решить ЗЛП симплекс методом f (x ) = 2 x1 + 3x 2 → max при ограничениях 29 x1 + 3x 2 ≤ 18  2 x1 + x 2 ≤ 16  x2 ≤ 5  3x1 ≤ 21  Решение. Приведем задачу к стандартному виду с помощью дополнительных переменных. x1 + 3x 2 + x 3 = 18  2 x1 + x 2 + x 4 = 16  x 2 + x5 = 5  3x1 + x 6 = 21  Дальше решаем симплексным методом. Таблица 2.3 Базисные Свободные x1 x2 переменные члены ↓ x3 x4 → x5 x6 f x3 x4 x2 x6 f 1 3 18 2 1 16 1 5 3 21 -2 -3 x1 x5 ↓ 1 -3 3 2 -1 11 1 5 3 21 -2 3 15 x3 ↓ x5 x1 → x4 x2 x6 f x1 x5 1 -3 3 -2 5 5 1 5 -3 9 12 2 -3 21 x3 x4 -1/5 3/5 6 -2/5 1/5 1 30 x2 x6 f 2/5 -1/5 4 3/5 -9/5 3 4/5 3/5 24 Ответ: x* = (6, 4, 0, 0,1, 3 ); f * = 24 . Таким образом, мы можем записать 1 3  x 6 x x4, = + − 1 3  5 5  x = 4 − 2 x + 1 x , 3 4  2 5 5  x = 3 + 2 x − 1 x , 3 4  5 5 5  3 9 x 6 = 3 − x 3 + x 4 . 5 5  4 3 f = 24 − x 3 − x 4 . 5 5 Коэффициенты целевой функции, полученные в последней строке, мы взяли со знаком «минус», так как мы умножали целевую функцию на (-1). Оптимальное значение целевой функции берем со знаком «плюс» (потому что в исходной задаче мы ищем максимум f ). Пример 2.7. Решить ЗЛП симплекс методом (эта задача является двойственной к задаче 2.6) Z = 18y1 + 16 y 2 + 5 y 3 + 21y 4 → min при ограничениях  y1 + 2 y 2 + 3y 4 ≥ 2,  3y1 + y 2 + y 3 ≥ 3, y i ≥ 0, i = 1, 2, 3, 4. Решение. Вводим дополнительные переменные y 5 , y 6 со знаком «минус». Получим стандартную ЗЛП  y1 + 2 y 2 + 3y 4 − y 5 = 2,  3y1 + y 2 + y 3 − y 6 = 3, y i ≥ 0, i = 1, 2, 3, 4, 5, 6. В качестве базисных переменных возьмем y 3 , y 4 . Для этого первое уравнение разделим на 3. Выразим базисные переменные через свободные y 3 = 3 − 3y1 − y 2 + y 6 , 2 1 2 1 y 4 = − y1 − y 2 + y 5 3 3 3 3 31 и подставим в целевую функцию, получим Z = 29 − 4 y1 − 3y 2 + 7 y 5 + 5 y 6 Дальше решаем симплексным методом. Таблица 2.4 Базисные переменные y2 y5 y6 Свободные члены 3 1 -1 3 1/3 2/3 -1/3 2/3 -4 -3 7 5 -29 y3 y2 y5 y6 1/3 1/3 -1/3 1 -1/9 5/9 -1/3 1/9 1/3 4/3 -5/3 7 11/3 -25 y3 y4 y5 y6 2/5 -3/5 1/5 y1 -1/5 9/5 -3/5 y2 1 3 6 Z Ответ: y* = ( 4 / 5, 3 / 5, 0, 0, 0, 0 ); Z* = 24 . -2/5 4/5 1/5 3/5 4 -24 → y3 y4 Z y1 y4 Z y1 ↓ Таким образом, мы можем записать 1 2 4 2 3   y1 = 5 − 5 y 3 + 5 y 4 − 5 y 5 + 5 y 6 ,  y = 3 + 1 y − 9 y + 3 y − 1 y  2 5 5 3 5 4 5 5 5 6 Z = 24 + y 3 + 3y 4 + 6 y 5 + 4 y 6 2.5 Поиск начального базиса Для решения задачи ЛП симплексным методом, необходимо получить начальный опорный план (начальный базис). Рассмотрим способ получения начального базиса (начальной угловой точки многогранника допустимой области). Если в исходной задаче ЛП ограничения заданы в виде неравенств, например, n (2.16) ∑ a ij x j ≤ b i , i = 1, m j=1 то введение дополнительных переменных приведет (1) к виду y1 = x n +1 , y 2 = x n + 2 , ..., y m = x n + m 32 n y i = b i − ∑ a ijx j , i = 1, m , (2.17) j=1 Вектор X = ( y1 , y 2 , ..., y m , 0, 0, ..., 0) будет являться начальным опорным планом (начальным базисным решением). 2.5.1. Метод симплексного преобразования Если ограничения исходной задачи ЛП заданы в виде равенств (то есть имеем сразу стандартную форму ЗЛП), то для получения начального базиса можно воспользоваться методом симплексного преобразования, который является одной из модификаций метода Гаусса – Жордана. n Запишем систему ∑ a ij x j = b i , i = 1, m в виде таблицы. j=1 Таблица 2.5 … Свободные x1 x2 xn члены a11 a12 a 21 a 22 … a m1 … a m2 … … … … a1n b1 a 2n b2 … a mn ⋮ bm При этом предполагается, что все b i ≥ 0, i = 1, m . Алгоритм симплексного преобразования основан на идее исключения переменных методом, во многом схожим с методом преобразования симплекс-таблиц. Шаг 1 Среди столбцов из коэффициентов при неизвестных выбирается столбец, в котором имеется хотя бы один положительный элемент. Если в таком столбце несколько положительных элементов, то из них выбирается тот, который отвечает наименьшему частному при делении соответствующих свободных членов на положительные элементы выбранного столбца. Выделенный таким образом элемент называется разрешающим. Шаг 2. Элементы разрешающей строки делятся на разрешающий элемент и переписываются в новую таблицу. Шаг 3. Каждая новая строка новой таблицы образуется следующим образом: из строки элементов исходной таблицы вычитается разрешающая строка, полученная в Шаг 2, которая предварительно умножается на соответствующий элемент разрешающего столбца. При этом в клетках выделенного (разрешающего) столбца появятся нули. На этом заполнение новой таблицы заканчивается и происходит переход к Шаг 1. Процесс продолжается до тех пор, пока не будет получено неотрицательное базисное решение. Пример 2.8 Найти неотрицательное базисное решение системы 33 − 5 x 5 + 2 x 6 = −3 x1 − 2x 5 − x 6 = 5 x2 − 3x 5 + x 6 = −7 x3 x 4 + x 5 − 3x 6 = −4 Воспользуемся методом симплексного преобразования. Перед составлением начальной таблицы с целью получения неотрицательных свободных членов первое, третье и четвертое уравнения умножим на (-1). Дальнейшие преобразования по нахождению начального базиса приведены в табл. 2.6. Таблица 2.6. Этап преобразований Этап 1 Этап 2 Этап 3 Этап 4 x1 x2 x3 x4 x5 Свободные члены x6 -1 5 -2 3 -1/5 -2/5 3/5 -1/5 1 1 1 1 1 1 -1 -1 -1/3 -2/3 -5/3 -1/3 -3/8 -7/8 -13/8 -1/8 -1 -1 -1 -1/8 -5/8 1/8 -3/8 -2 3 -1 1 1 1 -1 -1 3 -2/5 -9/5 1/5 13/5 -1/3 -5/3 1/3 8/3 1 5 7 4 3/5 31/5 26/5 23/5 7/3 29/3 26/3 19/3 25/8 109/8 63/8 19/8 Итак, получили базисное решение (63/ 8, 109 /8, 0, 0, 25 /8, 19 /8) , что при необходимости позволяет составить первую симплекс таблицу с начальным базисом Б = ( x1, x 2 , x 5 , x 6 ) В канонической системе (2.17) каждому уравнению соответствует ровно одна базисная переменная. 2.5.2. Метод искусственного базиса Другим методом поиска начального базиса является метод искусственного базиса. В систему ограничений вводятся искусственные переменные xn +i ≥ 0 ( i = 1,..., m ) и вводится искусственная целевая функция z ( x ) = m ∑x n +i i =1 следующей задаче линейного программирования . Таким образом, приходим к 34 z ( x) → min n ∑a x ij j + xn+i = bi , i = 1, m, (2.20) j =1 xk ≥ 0, k = 1,2,..., n + m Далее ищется решение задачи (2.20) симплекс-методом. В качестве базиса используются переменные xn +i . В процессе решения переменные xn +i выводятся из базиса, а переменные x j вводятся в базис. Процесс поиска заканчивается, когда все переменные xn +i будут выведены из базиса, при этом значение искусственной целевой функции z ( x) обращается в ноль. Пример 2.9 Найти неотрицательное базисное решение системы − x1 + 5 x5 − 2 x6 = 3 − 2 x5 − x6 = 5 x2 − x3 + 3 x5 − x6 = 7 − x4 − x5 + 3 x6 = 4 Введем в систему ограничений дополнительные переменные x7 , x8 , x9 , x10 , которые будем называть искусственными. В результате получим систему − x1 + 5 x5 − 2 x6 + x7 = 3 x2 − 2 x5 − x6 + x8 = 5 − x3 + 3x5 − x6 + x9 = 7 − x4 − x5 + 3 x6 + x10 = 4 Запишем искусственную целевую функцию z ( x ) = x7 + x8 + x9 + x10 . Из системы ограничений выразим дополнительные переменные x7 , x8 , x9 , x10 через исходные, получим x7 = 3 + x1 − 5 x5 + 2 x6 x8 = 5 − x2 + 2 x5 + x6 x9 = 7 + x3 − 3x5 + x6 x10 = 4 + x4 + x5 − 3x6 Подставим в целевую функцию, получим z ( x ) = 19 + x1 − x2 + x3 + x4 − 5 x5 + x6 . Дальше решаем задачу симплекс-методом. В результате решения все искусственные переменные должны выйти из базиса. Решение приведено в табл. 2.7 Таблица 2.7 Базис x1 ные перем ен ные x2 x3 x4 x5 x6 Свобод ные члены 35 x7 x8 x9 x10 z x7 x2 x9 x10 z x5 x2 x9 x10 z x5 x2 x9 x6 z x5 x2 x1 x6 z -1 5 -2 3 1 -2 -1 5 -1 3 -1 7 -1 -1 3 4 1 -1 1 1 -5 1 -19 x1 x8 x3 x4 x5 x6 -1 5 -2 3 1 -2 -1 5 -1 3 -1 7 -1 -1 3 4 1 1 1 1 -7 -14 x1 x8 x3 x4 x7 x6 -1/5 1/5 -2/5 3/5 -2/5 1 2/5 -9/5 31/5 3/5 -1 -3/5 1/5 26/5 -1/5 -1 1/5 13/5 23/5 -2/5 1 1 1 7/5 -14/5 -49/5 x1 x8 x3 x4 x7 x10 -3/13 -2/13 3/13 2/13 17/13 -7/13 1 -9/13 7/13 9/13 122/13 8/13 -1 1/13 -8/13 -1/13 63/13 -1/13 -5/13 1/13 5/13 23/13 -8/13 1 1 -1/13 21/13 14/13 -63/13 x9 x8 x3 x4 x7 x10 3/8 -3/8 -1/8 1/8 25/8 7/8 1 -7/8 -5/8 5/8 109/8 13/8 -13/8 1/8 -1 -1/8 63/8 -1/8 -3/8 3/8 19/8 1 1 1/8 1 1 Итак, получили базисное решение (63/ 8, 109 /8, 0, 0, 25 /8, 19 /8) . Это базисное решение совпало с решением, полученным симплексным преобразованием таблицы ограничений. Значение искусственной целевой функции рано нулю. В результате получим следующую систему уравнений-ограничений 36 13 1 63 x3 + x4 = 8 8 8 7 5 109 x2 − x3 − x4 = 8 8 8 3 1 25 x5 − x3 − x4 = 8 8 8 1 3 19 x6 − x3 − x4 = 8 8 8 x1 − Рассмотрим случай, когда часть ограничений задана в виде неравенств, а часть ограничений – в виде равенств n ∑a x ij j ≤ bi , i = 1,..., k , j = bi , i = k + 1,..., m, j =1 n ∑a x ij (2.21) j =1 x j ≥ 0, j = 1,..., n i = 1,..., k , а ограничения равенства дополним искусственными переменными xn + k +i , i = 1,..., m − k . В результате Дополним неравенства дополнительными переменными xn +i , мы получим систему ограничений в стандартной форме n ∑a x ij j + xn+i = bi , i = 1,..., k , j + xn+i = bi , i = k + 1,..., m, j =1 n ∑a x ij (2.22) j =1 x j ≥ 0, j = 1,..., n + m Затем рассматривается вспомогательная задача m ∑x z ( x) = n +i → min i = k +1 n ∑a x ij j + xn+i = bi , i = 1,..., k , j + xn+i = bi , i = k + 1,..., m, j =1 n ∑a x ij (2.23) j =1 x j ≥ 0, j = 1,..., n + m В качестве начального базиса используются переменные xn +i , i = 1,..., m . В процессе решения искусственные переменные выводятся из базиса. При этом дополнительные переменные xn +i , i = 1,..., k должны остаться в базисе. На последнем шаге симплексметода значение искусственной целевой функции будет равно нулю. 37 Вопросы для самопроверки 1. 2. 3. 4. 5. 6. 7. 8. Как построить на графике область допустимых решений? В чем состоит суть графического метода решения задач линейного программирования Где расположено оптимальное решение на допустимой области? Приведите стандартную форму записи задач линейного программирования Как привести ЗЛП к стандартной форме? Приведите основные определения и теоремы линейного программирования Приведите алгоритм симплекс метода Сформулируйте алгоритм поиска начального базиса в задаче линейного программирования 9. В чем состоит суть метода симплексного преобразования таблицы ограничений? 10. В чем состоит суть метода искусственного базиса? 11. Каким образом найти начальное приближение, когда часть ограничений задана в виде равенств, а часть – в виде неравенств? 38 Тема 3. Двойственная задача линейного программирования 3.1 Постановка двойственной задачи Каждой задаче линейного программирования соответствует другая задача, называемая двойственной или сопряженной по отношению к исходной. Теория двойственности оказалась полезной для проведения качественных исследований задач линейного программирования. В теме 1 была рассмотрена задача об использовании ресурсов (экономико-математическая модель и содержательная интерпретация этой задачи представлены в левой части табл. 3.1). В приведенной модели b i ( i = 1, ..., m ) обозначает запас ресурса Si; a ij — число единиц ресурса Si, потребляемого при производстве единицы продукции Pj ( j = 1, ..., n ); c j — прибыль (выручка) от реализации единицы продукции Pj (или цена продукции Pj). Предположим, что некоторая организация решила закупить ресурсы S1, S2, …, Sm предприятия и необходимо установить оптимальные цены на эти ресурсы y1 , y 2 , ..., y m . Очевидно, что покупающая организация заинтересована в том, чтобы затраты на все ресурсы Z в количествах b1 , b 2 , ..., b m по ценам соответственно y1 , y 2 , ..., y m были минимальны, то есть m Z = ∑ b i y i → min i =1 С другой стороны, предприятие, продающее ресурсы, заинтересовано в том, чтобы полученная выручка была не менее той суммы, которую предприятие может получить при переработке ресурсов в готовую продукцию. На изготовление единицы продукции P1 расходуется a11 единиц ресурса S1, a 21 единиц ресурса S2, …, a m1 , единиц ресурса Sm по цене соответственно y1 , y 2 , ..., y m . Поэтому для удовлетворения требований продавца затраты на ресурсы, потребляемые при изготовлении единицы продукции P1, должны быть не менее ее цены c1 , т.е. a11y1 + a 21y 2 + ... + a m1y m ≥ c1 Аналогично можно составить ограничения в виде неравенств по каждому виду продукции P1, P2, ..., Pn. Экономико-математическая модель и содержательная интерпретация полученной таким образом двойственной задачи II приведены в правой части табл. 3.1. Таблица 3.1 Исходная и двойственная задачи Задача I (исходная) Задача II (двойственная) f = c1x1 + c 2 x 2 + ... + c n x n → max (3.1) Z = b1y1 + b 2 y 2 + ... + b m y m → min (3.4) при ограничениях при ограничениях a11x1 + a12 x 2 + ... + a1n x n ≤ b1, a x + a x + ... + a x ≤ b ,  21 1 22 2 2n n 2 (3.2)  .......... .......... .......... .......... ....  a m1x1 + a m 2 x 2 + ... + a mn x n ≤ b m , и условии неотрицательности x1 ≥ 0, x 2 ≥ 0, ..., x n ≥ 0 . a11y1 + a 21y 2 + ... + a m1y m ≥ c1 , a y + a y + ... + a y ≥ c ,  12 1 22 2 m2 m 2 (3.5)  .......... .......... .......... .......... ....  a1n y1 + a 2n y 2 + ... + a mn y m ≥ c n , и условии неотрицательности (3.3) y1 ≥ 0, y 2 ≥ 0, ..., y m ≥ 0 Составить такой план выпуска продукции Определить такой набор цен ресурсов (3.6) 39 x = ( x1 , x 2 , ..., x n ) , при котором прибыль y = ( y1, y 2 , ..., y m ) , при котором общие (выручка) от реализации продукции будет максимальной при условии, что потребление ресурсов по каждому виду продукции не превзойдет имеющихся запасов затраты на ресурсы будут минимальными при условии, что затраты на ресурсы при производстве каждого вида продукции будут не менее прибыли от реализации этой продукции Цены ресурсов y1 , y 2 , ..., y m в экономической литературе получили различные названия: учетные, неявные, теневые. Смысл этих названий состоит в том, что это условные, "ненастоящие" цены. В отличие от "внешних" цен c1 , c 2 , ..., c n на продукцию, известных, как правило, до начала производства, цены ресурсов y1 , y 2 , ..., y m являются внутренними, ибо они задаются не извне, а определяются непосредственно в результате решения задачи, поэтому их чаще называют оценками ресурсов. 3.2 Свойства взаимно двойственных задач Рассмотрим формально две задачи I и II линейного программирования, представленные в табл. 3.1, абстрагируясь от содержательной интерпретации параметров, входящих в их экономико-математические модели. Обе задачи обладают следующими свойствами: 1. В одной задаче ищут максимум целевой функции, в другой — минимум. 2. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами системы ограничений в другой. 3. В задаче максимизации все неравенства ограничений вида " ≤ ", а в задаче минимизации — все неравенства вида " ≥ ". 4. Матрицы коэффициентов при переменных в системах ограничений обеих задач являются транспонированными друг к другу:  a11 a12  a 22 a A =  21 ... ...   a m1 a m 2 ... a1n   ... a 2n  , ... ...   ... a mn   a11  a A T =  12 ...   a1n a 21 a 22 ... a 2n ... a m1   ... a m 2  ... ...   ... a mn  5. Число неравенств в системе ограничений одной задачи совпадает с числом переменных в другой задаче. 6. Условия неотрицательности переменных имеются в обеих задачах. Две задачи I и II линейного программирования, обладающие указанными свойствами, называются симметричными взаимно двойственными задачами. В дальнейшем для простоты будем называть их просто двойственными задачами. Примечание. Если в прямой задаче ограничения заданы в форме равенств, то в двойственной задаче ограничение (3.6) отсутствует, т.е. переменные yi могут быть и положительными и отрицательными. Пример 3.1. Составить задачу, двойственную следующей задаче: f = − x1 + 2 x 2 → max при ограничениях: 40 2 x1 − x 2 ≥ 1, − x + 4 x ≤ 24,  1 2  x1 − x 2 ≤ 3, x1 + x 2 ≥ 5, x1 ≥ 0, x 2 ≥ 0. Решение. 1. Так как исходная задача на максимизацию, то приведем все неравенства системы ограничений к виду " ≤ ", для чего обе части первого и четвертого неравенства умножим на -1. Получим − 2 x1 + x 2 ≤ −1, − x + 4 x ≤ 24,  1 2  x1 − x 2 ≤ 3, − x1 − x 2 ≤ −5, 2. Сформулируем двойственную задачу: Z = − y1 + 24 y 2 + 3y 3 − 5 y 4 → max при ограничениях − 2 y1 − y 2 + y 3 − y 4 ≥ −1,   y1 + 4 y 2 − y 3 − y 4 ≥ 2, y1 ≥ 0, y 2 ≥ 0, y 3 ≥ 0, y 4 ≥ 0. 3.3 Теоремы двойственности Связь между оптимальными решениями двойственных задач устанавливается с помощью теорем двойственности. Вначале рассмотрим вспомогательное утверждение. Основное неравенство теории двойственности. Пусть имеется пара двойственных задач I и II. Покажем, что для любых допустимых решений x = ( x1 , ..., x n ) и y = ( y1, ..., y m ) исходной и двойственной задач справедливо неравенство n m f ( x ) ≤ Z( y) или ∑ c jx j ≤ ∑ b i y i (3.7) i =1 j=1 Доказательство. Умножив неравенства системы ограничений (3.2) исходной задачи n ∑ a ij x j ≤ b i ( i = 1, ..., m ) соответственно на переменные y1 , ..., y m и сложив правые и j=1 левые части полученных неравенств, имеем m m n (3.8) ∑ y i ∑ a ij x j ≤ ∑ b i y i i =1 i =1 j=1 m Аналогично преобразуем систему ограничений (3.5) двойственной задачи ∑ a ij y i ≥ c j i =1 ( j = 1, ..., n ) путем умножения обеих частей ее неравенства на переменные x1 , ..., x n и последующего их сложения 41 n m n (3.9) ∑ c j x j ≤ ∑ x j ∑ a ij y i j=1 i =1 j=1 Из (3.8) и (3.9) следует неравенство (3.7). Существует ряд важных соотношений между решениями взаимодвойственных задач, которые следуют из следующей теоремы. Первая (основная) теорема двойственности. Для взаимодвойственных ЗЛП имеет место один из взаимоисключающих случаев: 1. В прямой и двойственных задачах имеются оптимальные решения, при этом значения целевых функций на оптимальных решениях совпадают f ( x*) = Z( y*) (3.10) 2. В прямой задаче допустимое множество не пусто, а целевая функция не ограничена сверху. При этом у двойственной задачи будет пустое допустимое множество 3. В двойственной задаче допустимое множество не пусто, а целевая функция не ограничена снизу. При этом у прямой задачи будет пустое допустимое множество 4. Обе из рассматриваемых задач имеют пустые допустимые множества. 1 Покажем (13.0). Пусть x - любое допустимое решение исходной задачи I. Тогда на основании 1 1 неравенства (3.7) получим f ( x ) ≤ Z( y*) . Однако x - произвольное решение прямой задачи, 1 отсюда в силу равенства (1) следует, что f ( x ) ≤ f ( x*) , т.е. x * - оптимальное решение задачи I. Аналогично доказывается, что решение оптимально для задачи II. Утверждение второй части легко доказывается методом от противного. Предположим, что в исходной задаче линейная функция не ограничена, т.е. f max = ∞ , а условия двойственной задачи 1 не являются противоречивыми, т.е. существует хотя бы одно допустимое решение y . Тогда в силу 1 основного неравенства теории двойственности (7) f ( x ) ≤ Z( y ) , что противоречит условию неограниченности f ( x ) . Следовательно, при f max = ∞ в исходной задаче допустимых решений в двойственной задаче быть не может. • Рассмотрим задачу об использовании ресурсов (см. тема 1). Прямая задача Двойственная задача f (x ) = 2 x1 + 3x 2 → max при ограничениях x1 + 3x 2 ≤ 18  2 x1 + x 2 ≤ 16  x2 ≤ 5  3x1 ≤ 21  Z = 18y1 + 16 y 2 + 5 y 3 + 21y 4 → min при ограничениях  y1 + 2 y 2 + 3y 4 ≥ 2,  3y1 + y 2 + y 3 ≥ 3, y i ≥ 0, i = 1, 2, 3, 4. Оптимальное решение прямой задачи Оптимальное решение двойственной x* = (6, 4, 0, 0, 1, 3); f * = 24 задачи y* = (0.8, 0.6, 0, 0, 0, 0 ); Z* = 24 Как видим, значения целевых функций обеих задач совпадают. 42 Исходя из анализа оптимальных двойственных оценок, можно сделать следующие выводы. Ресурсы первого и второго видов используются полностью (оптимальные оценки y1* , y*2 отличны от нуля). Ресурс третьего вида недоиспользуется на 1 ед., ресурс четвертого вида недоиспользуется на 3 ед. Экономический смысл первой (основной) теоремы двойственности. План * * * * * * производства x = ( x1 , ..., x n ) и набор цен (оценок) ресурсов y = ( y1 , ..., y m ) оказываются оптимальными тогда и только тогда, когда прибыль (выручка) от продукции, найденная при "внешних" (известных заранее) ценах c1 , c 2 , ..., c n равна затратам на ресурсы по "внутренним " (определяемым только из решения задачи) ценам y1 , y 2 , ..., y m . Для всех же других планов x и y обеих задач в соответствии с основным неравенством (3.7) теории двойственности прибыль (выручка) от продукции всегда меньше (или равна) затрат на ресурсы. Так, в рассмотренной задаче о ресурсах оптимумы прибыли от продукции f max и затрат на ресурсы Z min равны 24 д.е., для всех остальных планов f ( x ) ≤ 24 , Z( y) ≥ 24 . Экономический смысл первой теоремы двойственности можно интерпретировать и так: предприятию безразлично, производить ли продукцию по оптимальному плану x * = ( x1* , ..., x *n ) и получить максимальную прибыль (выручку) f max либо продавать * * * ресурсы по оптимальным ценам y = ( y1 , ..., y m ) и возместить от продажи равные ей минимальные затраты на ресурсы Z min . Вторая теорема двойственности. Компоненты оптимального решения двойственной задачи равны значениям частных производных целевой функции f max ( b1 , b 2 ,..., b m ) по соответствующим аргументам, т.е. ∂f max = y*i , i = 1,..., m ∂b i (3.11) Доказательство следует из первой теоремы двойственности. Действительно, для оптимального решения m * имеем равенство f max = f ( x*) = Z( y*) = ∑ b i y i . Отсюда следует (3.11). i =1 Из соотношения (3.11) следует, что двойственные оценки ресурсов показывают, на сколько денежных единиц изменится максимальная прибыль (выручка) от реализации продукции при изменении запаса соответствующего ресурса на одну единицу. • Двойственные оценки определяют дефицитность используемых ресурсов. Величина двойственной оценки показывает, на сколько возрастает максимальное значение целевой функции прямой задачи при увеличении количества соответствующего ресурса на единицу (при условии, что оптимальный план двойственной задачи не изменится) Так, увеличение количества ресурса первого вида на 1 ед. приведет к тому, что появится возможность найти новый оптимальный план производства изделий, при котором общий доход возрастает на 0.8 д.е. и станет равным 24+0.8=24.8 д.е. Анализ полученных оптимальных значений новой прямой задачи показывает, что это увеличение общего дохода достигается за счет увеличения производства изделий P2 на 0.4 ед, и сокращения выпуска изделий P1 на 0,2 ед. 43 Точно также увеличение на 1 ед. количества ресурсов второго вида позволит перейти к новому оптимальному плану производства, при котором доход возрастает на 0.6 д.е. и составит 24+0.6 = 24.6 д.е., что достигается за счет увеличения выпуска изделий P1 на 0,2 ед. и уменьшения выпуска P2 на 0,2 ед.. При изменении запасов ресурсов S3, S4 максимальная прибыль не изменится. Третья теорема двойственности (теорема о дополняющей нежесткости) Тесная связь между двумя взаимно двойственными задачами проявляется не только в равенстве оптимальных значений их линейных функций, о чем утверждалось в первой (основной) теореме двойственности. Пусть даны две взаимно двойственные задачи I — (3.1)—(3.3) и задачи II — (3.4)—(3.6). Если каждую из этих задач решать симплексным методом, то необходимо привести их к каноническому виду, для чего в систему ограничений (3.2) задачи I (в краткой записи n следует ввести m неотрицательных переменных ∑ a ij x j ≤ b i , i = 1, ..., m ) j=1 m x n +1 , x n + 2 , ..., x n + i , ..., x n + m , а в систему ограничений (3.5) задачи II ( ∑ a ij y i ≥ c j , i =1 j = 1, ..., n ) — n неотрицательных переменных y m +1 , y m + 2 , ..., y m + j , ..., y m + n , где i( j) — номер неравенства, в которое введена дополнительная переменная x n + i ≥ 0, y m + j ≥ 0 . Системы ограничений каждой из взаимно двойственных задач примут вид: n (3.12) ∑ a ij x j + x n + i = b i , i = 1, ..., m j=1 m (3.13) ∑ a ij y i − y m + j = c j , j = 1, ..., n i =1 Установим соответствие между первоначальными переменными одной из двойственных задач и дополнительными переменными другой задачи (табл. .3.2). Таблица 3.2. Связь переменных исходной и двойственной задачи Переменные исходной задачи I Первоначальные x1 x 2 ... x j ... վ վ վ Дополнительные xn վ y m +1 y m + 2 ... y m + j ... y m + n Дополнительные (14) x n +1 x n + 2 ... վ վ y1 y 2 ... x n + i ... x n + m վ վ y i ... y m (15) Первоначальные Переменные двойственной задачи II Теорема 3. Положительным (ненулевым) компонентам оптимального решения одной из взаимно двойственных задач соответствуют нулевые компоненты оптимального решения другой задачи, т.е. для любых i = 1, ..., m и j = 1, ..., n выполняются следующие соотношения: 44 * * * * если x j > 0 , то y m + j = 0 ; если x n + i > 0 то y i = 0 , и аналогично * * * * если y i > 0 , то x n + i = 0 ; если y m + j > 0 то x j = 0 , и аналогично Эти условия можно выразить в краткой форме: для того чтобы решения прямой и двойственной задачи были оптимальными, необходимо и достаточно, чтобы выполнялись соотношения x *n + i y*i = 0, i = 1,..., m (3.16) x *j y*m + j = 0, j = 1,..., n (3.17) Из доказанной теоремы следует важный вывод о том, что введенное ранее соответствие (3.14), (3.15) между переменными взаимно двойственных задач при достижении оптимума (т.е. на последнем шаге решения каждой задачи симплексным методом) представляет соответствие между основными (не равными нулю) переменными одной из двойственных задач и неосновными (равными нулю) переменными другой задачи, когда они образуют допустимые базисные решения. Пример. Рассмотрим опять задачу о распределении ресурсов. Решение. На основании выражений (3.14) и (3.15) установим следующее соответствие между переменными: x1 x 2 x3 x4 x5 x6 վ վ վ վ y 5 y 6 y1 y 2 վ y3 վ y4 В теме 2 обе задачи решены симплексным методам. На последнем шаге решения каждой задачи получено: В исходной задаче I 4 3 f = 24 − x 3 − x 4 5 5 В двойственной задаче II (18) Z = 24 + y 3 + 3y 4 + 6 y 5 + 4 y 6 (19) f ( x*) = f max = 24 при оптимальном базисном Z( y*) = Z min = 24 при оптимальном базисном решении решении x* = (6, 4, 0, 0,1, 3 ). y* = (4 / 5, 3 / 5, 0, 0, 0, 0 ). 45 Четвертая теорема двойственности * 4 * 3 * Компоненты оптимального решения двойственной задачи ( y1 = , y 2 = , y 3 = 0, 5 5 y*4 = 0, y*5 = 0, y*6 = 0 ) равны (по абсолютной величине) коэффициентам при соответствующих переменных целевой функции прямой задачи (записанной для оптимального плана (3.18), f = 24 − 4 3 x 3 − x 4 − 0 ⋅ x 5 − 0 ⋅ x 6 − 0 ⋅ x1 − 0 ⋅ x 2 ), а 5 5 компоненты оптимального решения прямой задачи * * * * * * ( x1 = 6, x 2 = 4, x 3 = 0, x 4 = 0, x 5 = 1, x 6 = 3 ) равны коэффициентам при соответствующих переменных целевой функции двойственной задачи (записанной также для оптимального плана (3.19), Z = 24 + 6 y 5 + 4 y 6 + 0 ⋅ y1 + 0 ⋅ y 2 + 1 ⋅ y 3 + 3y 4 ). Замечание. Если в одной из взаимно двойственных задач нарушается единственность оптимального решения, то оптимальное решение двойственной задачи вырожденное. Это связано с тем, что при нарушении единственности оптимального решения исходной задачи в выражении линейной функции ее оптимального решения через неосновные переменные отсутствует хотя бы одна из основных переменных. Вопросы для самопроверки 1. 2. 3. 4. 5. 6. 7. Сформулируйте двойственную задачу ЛП Свойства взаимно двойственных задач Основное неравенство теории двойственности Первая теорема двойственности и ее экономический смысл Вторая теорема двойственности Третья теорема двойственности Четвертая теорема двойственности 46 Тема 4. Транспортная задача Важным частным случаем задачи линейного программирования является так называемая транспортная задача, которую можно сформулировать следующим образом. 4.1 Экономико – математическая модель транспортной задачи В m пунктах отправления A1, A2, …, Am, которые в дальнейшем будем называть поставщиками, сосредоточено определенное количество единиц некоторого однородного продукта, которое обозначим a i (i = 1,..., m) . Данный продукт потребляется в n пунктах B1, B2, … , Bn, которые будем называть потребителями; объем потребления обозначим b j ( j = 1,..., n ) . Известны расходы на перевозку единицы продукта из пункта Ai в пункт Bj, которые равны c ij и приведены в матрице транспортных расходов C = (c ij ) . Исходные пункты Объем производства a1 → 1 a2 → am → c11 : x11 Пункты назначения 1 → b1 2 2 → b2 ⋮ ⋮ m n cmn : xmn Спрос → bn Рис. 4.1. Геометрическая интерпретация транспортной задачи Требуется составить такой план прикрепления потребителей к поставщикам, т.е. план перевозок, при котором весь продукт вывозится из пунктов Ai в пункты Bj в соответствии с потребностью и общая величина транспортных издержек будет минимальной. Обозначим количество продукта, перевозимого из пункта Ai в пункт Bj, через x ij . Совокупность всех переменных x ij для краткости обозначим x , тогда целевая функция задачи будет иметь вид m n f ( x ) = ∑ ∑ cij xij → min i =1 j =1 а ограничения выглядят следующим образом: n ∑ xij ≤ ai ; i = 1,..., m , j =1 m ∑ xij ≥ b j ; j = 1,..., n i =1 xij > 0. (4.1) (4.2) (4.3) (4.4) 47 Первая группа ограничений (4.2) указывает, что суммарный объем перевозок продукции из некоторого исходного пункта не может превышать произведенного количества этой продукции, вторая группа ограничений (4.3) требует, чтобы суммарные перевозки продукции в некоторый пункт потребления полностью удовлетворяли спрос на эту продукцию. Из модели видно, что суммарный объем производства в исходных m n пунктах ∑ ai не должен быть меньше суммарного спроса в пунктах назначения ∑ b j . j =1 j =1 Если m n (4.5) ∑ ai = ∑ b j , i =1 j =1 то модель называют сбалансированной (закрытой) транспортной моделью. Она отличается от модели (4.2), (4.3) тем, что n ∑ xij = ai ; i = 1,…, m (4.6) j = 1,…, n (4.7) j m ∑ xij = b j ; i Пример 4.1. Заводы автомобильной фирмы расположены в п. A, B, C . Центры распределения (пункты назначения) расположены в п. D, E . Объемы производства в п. A, B, C равны 1000, 1500, 1200 автомобилей ежеквартально. Величина спроса в п. D, E равна 2300 и 1400 автомобилей ежеквартально. Стоимость перевозки одного автомобиля из п. A, B, C в п. D, E указаны в табл. 4.1. Таблица 4.1 Здесь суммарный объем производства равен D E суммарному спросу (3700 автомобилей 80 215 A ежеквартально). B 100 108 С 102 68 Модель  f ( x ) = 80 x11 + 215 x12 + 100 x21 + 108 x22 +  + 102 x31 + 68 x32 → min   x11 + x12 = 1000   x21 + x 22 = 1500  x + x = 1200 32  31  x11 + x21 + x31 = 2300   x12 + x22 + x32 = 1400  xij ≥ 0  (4.8) Исход ные пункт Занесем модель (4.8) в таблицу 4.2 Таблица 4.2 Спрос Объем производства Пункты назначения 2300 1400 D E 48 1000 A 80 x11 x12 100 1500 B x21 108 x22 1200 C 215 102 x31 68 x32 Пример 4.2. (Несбалансированная модель) Изменим условия в примере 4.1. Предположим, что завод B производит не 1500, а 1300 автомобилей. Это приведет к дисбалансу, поскольку суммарный объем производства (3500) не равен суммарному спросу (3700). Другими словами, дисбаланс означает, что спрос в центрах распределения (в п. назначения) полностью удовлетворить не удается. В этом случае необходимо изменить транспортную модель таким образом, чтобы недостаток автомобилей (3700-3500=200) оптимально распределился между D, E . Введем фиктивный исходный пункт (фиктивный завод) с производительностью 200 автомобилей. Стоимость перевозок с фиктивного завода в п. D, E естественно положить равной нулю (т.к. никакие перевозки не осуществляются). Таким образом, сбалансированная модель имеет вид Таблица 4.3 D E 2300 1400 1000 80 215 A 100 108 1300 B С 1200 102 68 200 Здесь Ф - фиктивный завод Ф Если объем производства превышает спрос, можно ввести дополнительные фиктивные пункты назначения. Пусть, например, в п. D спрос упал с 2300 до 1900 автомобилей. В таблице представлена измененная модель Таблица 4.4 D A B С 1900 80 100 102 1000 1500 1200 E 1400 215 108 68 Ф 400 Здесь Ф - фиктивный пункт назначения Автомобили, поступающие с некоторого завода в фиктивный пункт назначения, представляют собой избыток производства на этом заводе. Соответствующая стоимость перевозки равна нулю. Однако, можно назначить штраф за хранение автомобилей на складе завода, тогда стоимость перевозки одного автомобиля (перепроизведенного) будет равна штрафу за его хранение. Аналогично в модели с недопроизведенным количеством автомобилей. Каждую недопоставленную единицу продукции в п. назначения можно обложить штрафом. Тогда транспортные расходы на единицу недопроизведенной недополученную продукцию. продукции равны штрафу за 49 Пример 4.3 (Многопродуктовая транспортная модель) Пусть автомобильная компания (заводы A, B, C ) производят автомобили четырех различных марок M 1, M 2, M 3, M 4 , причем завод A выпускает модели Таблица 4.5 Всего M1 M2 M4 M3 Завод 1000 700 300 A 1500 500 600 400 B 1200 800 400 C Покупатель 2300 700 500 500 600 D 1400 600 500 200 100 E M 3, M 4 ; завод B - M 1, M 2, M 4 ; завод C - M 1, M 2 . В таблице 5 приведены объемы выпуска и спроса автомобилей всех марок. 700 A 300 500  B 600 400  800 C 400 M1 M3 M2 M4 M3 M1 M4 700 500  D 500  600 M2 M1 M4 M2 M1 M3 M2 M4 600  500  E 200 100  Рис. 4.2 Геометрическая интерпретация многопродуктовой транспортной задачи Предположим, что стоимость перевозок автомобилей любой марки одинакова (стоимость перевозки на одну милю). Видоизменим транспортную модель. Для этого каждый завод-изготовитель разобьем на несколько заводов (несколько пунктов), и каждого покупателя разобьем также на несколько пунктов В результате получаем семь исходных пунктов и восемь пунктов назначения. В таблице 4.6 приведена полная транспортная таблица. Заметим, что некоторые маршруты недопустимы (на рис отсутствуют стрелки, а в табл. заштрихованы клетки), они соответствуют очень высокой стоимости перевозки. Запрещенные маршруты означают, что автомобили различных марок нельзя заменять друг другом. Например, нельзя осуществлять перевозки из п. M 1 в п. M 2 и т.д. Если внимательно изучить таблицу, то можно заметить, что на самом деле задачу необязательно описывать одной моделью. Таблица 4.6 D E M1 M 2 M 3 M 4 M1 M 2 M 3 M 4 50 M 3 A M 4 M 1  B M 2 M 4  M 1 C M 2 700   1000 300  500   600 1500 400 800   1200 400 700 500 500 600 600 500 200 100 2300 1400 M M 80 M M M 215 M M 100 M M M M 80 M M 108 M M M M 215 M M M M M M M M 100 M M 68 108 M M M M 102 100 M M M M 108 M M 102 M M M 68 M M В силу независимости поставок можно было представить задачу по каждой марке автомобилей в виде отдельной таблицы перевозок, но только существенно меньшего размера. В результате получим следующие таблицы Таблица 4.7 M3 D A 700 500 80 M4 E 200 215 D A B 300 400 600 80 100 M1 D B C 500 800 700 100 102 E 100 215 108 M2 E 600 108 68 D B C 600 400 500 100 102 E 500 108 68 Такое разбиение на задачи меньшей размерности оказалось возможным из-за независимости различных марок автомобилей (т.е. невозможностью замены одной марки другой). Если бы можно было заменять одну марку другой, то такое разбиение не получилось бы. Пример 4.4 (Модель производства с запасами) Некоторая фирма собирается выпускать изделия определенного вида в течение четырех месяцев. Величина спроса в течение этих четырех месяцев составляет 100, 200, 180 и 300 изделий соответственно. В каждый месяц спрос можно удовлетворить за счет 1) избытка произведенных в прошлом месяце изделий, сохраняющихся для реализации в будущем 2) производства изделий в течение месяца 3) избытка производства изделий в более поздние месяцы в счет невыполненных заказов Затраты на одно изделие в каждый месяц составляют 4 доллара. Изделие, произведенное для более поздней реализации, влечет за собой дополнительные издержки за хранение 0,5 дол/мес. С другой стороны, каждое изделие, выпускаемое в счет невыполненных заказов, облагается штрафом 2 дол/мес. 51 Объем производства изделий меняется от месяца к месяцу. В рассматриваемые четыре месяца предполагается выпуск 50, 180, 280 и 270 изделий соответственно. Требуется составить план, имеющий минимальную стоимость производства и хранения изделий. Задачу можно сформулировать как транспортную. Эквивалентность между элементами производственной и транспортной систем устанавливается следующим образом (см. табл. 4.8) Таблица 4.8 Транспортная система Производственная система 1. Исходный пункт i 1. Период производства i 2. Пункт назначения j 2. Период потребления j 3. Предложение в п. i 3. объем пр-ва за период i 4. Спрос в п. j 4. Реализация за период j 5. Стоимость пр-ва и хранения за 5. Стоимость перевозки i в j период от i до j Стоимость «перевозки» изделия из периода i в период j выражается как стоимость пр − ва в i период, i = j стоимость пр − ва в i период + стоимость хранения  cij =  ( задержки ) от i до j , i < j стоимость пр − ва в i период + штраф за   нарушение срока, i > j Из определения cij следует, что затраты в период i при реализации в тот же период i (i = j ) оцениваются только стоимостью производства. Если в период i производится продукция, которая будет потребляться позже (i < j ), то имеют место дополнительные затраты связанные с хранением. Аналогично производство в i период в счет невыполнения заказов (i > j ) влечет за собой дополнительные расходы в виде штрафа. В таблице 4.9 приведена структура модели Период 1 2 3 4 Спрос 100 200 180 300 1 4 4,5 5 5,5 50 180 2 6 4 4,5 5 Период 280 3 8 6 4 4,5 4 10 270 8 6 4 Объем пр-ва 4.2 Решение транспортной задачи симплексным методом Закрытая транспортная задача может быть решена симплексным методом (методом последовательного улучшения плана). Для этого необходимо переобозначить переменные следующим образом: x1 = x11 , x 2 = x12 ,..., x n = x1, n ; x n +1 = x 21 , xn + 2 = x22 ,..., x2n = x2 ,n ;... x( m −1 )n +1 == xm1 , x( m −1 )n + 2 = xm 2 ,..., xmn = xm ,n 52 Точно также переобозначаем коэффициенты c ij : c1 = c11 , c 2 = c12 ,..., c n = c1, n ; c n +1 = c 21 , c n + 2 = c 22 ,..., c 2n = c 2, n ;... c ( m −1) n +1 = c m1 , c ( m −1) n + 2 = c m 2 ,..., c mn = c m, n . Задача (1) с ограничениями (5), (6) примет следующий вид: mn f (X ) = ∑ c jx j → min (4.9) j=1 m ∑ x (i −1) n + j = b j , j = 1,..., n i =1 (4.10) n ∑ x (i −1) n + j = a i , i = 1,..., m, j=1 (4.11) x k ≥ 0, k = 1,..., mn Таким образом, пришли к стандартной форме ЗЛП. Для получения начального базисного решения можно использовать либо метод искусственного базиса, либо метод симплексного преобразования таблицы ограничений. Однако для транспортной задачи разработаны свои методы поиска начального базиса и методы последовательного улучшения решения. Это связано с следующими особенностями транспортной задачи. • Система ограничений закрытой транспортной задачи представляет собой систему уравнений (т.е. транспортная задача задана в канонической форме) (см. (4.6), (4.7)); • Коэффициенты при переменных системы ограничений равны единице; • Каждая переменная входит в систему ограничений два раза: один раз  в систему (4.6) и один раз  в систему (4.7). 4.3 Первоначальное закрепление потребителей за поставщиками П е р в ы м э т а п о м решения закрытой транспортной задачи является составление начального распределения (начального плана перевозок или начального базиса). При этом следует отметить, что благодаря условию (5) ранг системы линейных уравнений (6), (7) равен m + n − 1 ; таким образом из общего числа m ⋅ n неизвестных базисных неизвестных будет m + n − 1 . Вследствие этого при любом допустимом базисном распределении в матрице перевозок (таблице поставок), представленной в общем виде в табл. 4.10, будет занято ровно m + n − 1 клеток, которые будем называть базисными в отличие от остальных свободных клеток; занятые клетки будем отмечать диагональной чертой. Таблица 4.10 Мощности поставщиков a1 Мощности потребителей b1 ... ... b2 c11 c12 x11 x12 bn c1n x1n 53 a2 c 21 ... am ... c 22 ... x 21 ... c m1 x 22 ... ... cm2 x m1 c 2n ... x 2n c mn x m2 x mn Рассмотрим два метода получения начального распределения (начального опорного плана): метод северо-западного угла и метод наименьших стоимостей. При каждом из этих методов при заполнении некоторой клетки, кроме последней, вычеркивается или только строка матрицы перевозок, или только столбец; лишь при заполнении последней клетки вычеркиваются и строка, и столбец. Такой подход будет гарантировать, что базисных клеток будет ровно m + n − 1 . Если при заполнении некоторой (не последней) клетки одновременно удовлетворяются мощности и поставщика, и потребителя, то вычеркивается, например, только строка, а в соответствующем столбце заполняется незанятая клетка так называемой «нулевой поставкой», после чего вычеркивается и столбец. Для идентификации клетки обычно в скобках указываются номера ее строки и столбца. В методе северо-западного угла всегда в первую очередь заполняется клетка (из числа невычеркнутых), стоящая в верхнем левом (северо-западном) углу матрицы перевозок. Пример составления начального распределения методом северо-западного угла показан в табл. 10: заполняется клетка (1;1) и вычеркивается первый столбец, заполняется клетка (1;2) и вычеркивается первая строка; заполняется клетка (2;2) и вычеркивается второй столбец; заполняется клетка (2;3) и вычеркивается вторая строка; заполняется клетка (3;3) и вычеркивается третий столбец; наконец, заполняется клетка (3:4) и вычеркиваются последние строка и столбец. Число занятых клеток равно m + n − 1 = 3 + 4 - 1 = 6 . Суммарные затраты на реализацию данного плана перевозок составят f (X) = 4 ⋅ 30 + 5 ⋅ 30 + 3 ⋅ 70 + 6 ⋅ 30 + 7 ⋅ 10 + 4 ⋅ 110 = 1170. Таблица 4.11 Мощности поставщиков 30 60 4 100 1 Мощности потребителей 100 40 5 2 3 30 3 30 6 70 120 6 2 110 2 30 7 4 10 110 Недостатком данного метода является то, что он не учитывает значения элементов c ij матрицы транспортных расходов, в результате чего полученное этим методом 54 начальное распределение (начальный опорный план перевозок) может быть достаточно далеко от оптимального. В методе наименьших стоимостей заполнение клеток матрицы перевозок проводится с учетом значений величин c ij . Отмечают клетки с наименьшими стоимостями перевозок сначала по каждой строке, а затем по каждому столбцу. Клетки, имеющие две отметки, заполняют в первую очередь, затем заполняют клетки с одной отметкой, а данные о нераспределенном грузе записывают в неотмеченные клетки с наименьшими стоимостями. При этом из двух клеток с одинаковой стоимостью перевозок предпочтение отдается клетке, через которую осуществляется больший объем перевозок. Вычеркивание строк и столбцов при заполнении клеток проводится по описанным выше правилам. Пример начального распределения методом наименьших стоимостей для тех же исходных данных, что и ранее, представлен в табл. 4.12. Таблица 4.12 Мощности поставщиков 60 100 4 Мощности потребителей 100 40 5 2 3 30 1 3 6 40 2 30 120 6 110 20 70 2 7 100 4 20 Порядок заполнения клеток: (2;1), (3;2), (1;3), (2;4), (1;4), (3;4). Суммарные затраты на перевозки, представленные в табл. 3, составляют f (X ) = 1 ⋅ 30 + 2 ⋅ 100 + 2 ⋅ 40 + 2 ⋅ 70 + 3 ⋅ 20 + 4 ⋅ 20 = 590 . Следовательно, данный план перевозок значительно ближе к оптимальному, чем план, составленный по методу северо-западного угла. 4.4 Метод потенциалов В т о р ы м э т а п о м служат построение системы потенциалов. Введем специальные показатели u i для каждой строки, которые можно интерпретировать как цену продукта в пункте поставщика, а каждому столбцу j ( j му потребителю) устанавливается потенциал v j , который можно принять условно за цену продукта в пункте потребителя. В простейшем случае цена продукта в пункте потребителя равна его цене в пункте поставщика плюс транспортные расходы на его доставку, т.е. v j = u i + c ij (4.12) Совокупность уравнений вида (4.12), составленных для всех заполненных клеток (всех базисных неизвестных), образует систему m + n − 1 линейных уравнений с m + n неизвестными u i и v j . Эта система всегда совместна, причем 55 значение одного из неизвестных можно задавать произвольно (например, u1 = 0 ), тогда значения остальных неизвестных находятся из системы однозначно. Рассмотрим процесс нахождения потенциалов для базисного начального распределения по методу северо-западного угла, представленного в табл. 4.11. Задав u1 = 0 и используя формулу (4.12) для заполненных клеток (1;1) и (1;2), находим v1 = 4 и v 2 = 5 . Зная v 2 по заполненной клетке (2;2) находим u 2 = 2 , а зная u 2 , по заполненной клетке (2;3) находим v 3 = 8 . Зная v 3 ПО заполненной клетке (3;3) находим u 3 = 1 , а затем по заполненной клетке (3;4) находим v 4 = 5 . Результаты представлены в табл. 4.13, где потенциалы поставщиков приведены в последнем столбце, а потенциалы потребителей — в последней строке. Таблица 4.13. Мощности Мощности потребителей поставщиков 30 100 40 110 ui 3 70 60 4 5 – 2 + 3 30 100 120 1 3 6 30 + 6 – 70 30 2 7 2 2 4 1 10 4 vj 5 110 8 5 Смысл выделенных клеток в табл. 4.13, и знаков при его вершинах пояснен далее при описании этапа улучшения плана метода потенциалов. Аналогичные результаты для начального распределения по методу наименьших стоимостей, приведенного в табл. 4.12, представлены в табл. 4.14. Таблица 4.14. Мощности Мощности потребителей поставщиков 30 100 40 110 ui 3 70 0 60 4 5 2 3 40 100 1 120 6 20 3 6 2 2 7 4 1 30 vj 2 70 100 1 1 20 2 3 Чтобы оценить оптимальность распределения, для всех клеток (i; j) матрицы перевозок определяются их оценки, которые обозначим через d ij , по формуле: 56 d ij = (u i + c ij ) − v j . (4.13) Используя ранее принятую интерпретацию, выражение ( u i + c ij ) можно трактовать как сумму цены продукта у поставщика и стоимости перевозки; эта сумма путем вычитания сравнивается с ценой продукта у соответствующего потребителя v j . Очевидно, оценки заполненных клеток равны нулю (цена потребителя покрывает цену поставщика и стоимость перевозок). Таким образом, об оптимальности распределения можно судить по величинам оценок свободных клеток. Если оценка некоторой свободной клетки отрицательна, это можно интерпретировать так: цена, предлагаемая соответствующим потребителем, больше суммы цены поставщика и стоимости перевозки, т.е. если бы эта клетка была занята, то можно было бы получить дополнительный экономический эффект. Следовательно, условием оптимальности распределения служит условие неотрицательности оценок свободных клеток матрицы перевозок. Оценки клеток по формуле (4.13) удобно представить в виде матрицы оценок. Для ранее рассматриваемого распределения, полученного методом северозападного угла (см. табл. 1), матрица оценок клеток имеет вид 0 − 6 − 2 0   d = −1 0 0 −1 .  3 −2 0 0   (4.14) Наличие большого числа отрицательных оценок свободных клеток свидетельствует о том, что данный план перевозок далек от оптимального (напомним, что суммарные затраты на перевозку по этому плану равны 1170). Для распределения, полученного методом наименьших стоимостей (табл. 4.14), матрица оценок клеток имеет вид:  2 4 0 0   d =  0 3 5 0  3 0 4 0   Так как все оценки неотрицательны, то не имеется возможности улучшить данный план перевозок, т.е. он оптимален (суммарные затраты на перевозку по этому плану равны 590). Кроме того, следует отметить, что в данном случае оценки всех свободных клеток строго больше нуля, т.е. любой другой план, предусматривающий занятие хотя бы одной из этих клеток, будет менее оптимален. Это говорит о том, что найденный оптимальный план является единственным. Наличие нулевых оценок свободных клеток в оптимальном плане перевозок, наоборот, свидетельствует о неединственности оптимального плана. 4.5 Улучшение оптимального плана перевозок (циклы перераспределения) Чтобы улучшить неоптимальный план перевозок, выбирается клетка матрицы перевозок с отрицательной оценкой; если таких клеток несколько, то обычно (но необязательно) выбирается клетка с наибольшей по абсолютной величине отрицательной оценкой. Например, для распределения, представленного в табл. 4.13, такой клеткой может служить клетка (1;3) (см. матрицу оценок (4.14)). Для выбранной клетки строится замкнутая линия (контур, в табл. 4.13 эти клетки «затенены»), начальная вершина которой лежит в выбранной клетке, а все 57 остальные вершины находятся в занятых клетках; при этом направления отдельных отрезков контура могут быть только горизонтальными и вертикальными. Вершиной контура, кроме первой, является занятая клетка, где отрезки контура образуют один прямой угол (нельзя рассматривать как вершины клетки, где горизонтальные и вертикальные отрезки контура пересекаются). Очевидно, число отрезков контура, как и его вершин, будет четным. В вершинах контура расставляются поочередно знаки «+» и «», начиная со знака «+» в выбранной свободной клетке. Пример простого контура показан пунктиром в табл. 4.13, хотя вид контура может быть самым разнообразным. Величина перераспределяемой поставки определяется как наименьшая из величин поставок в вершинах контура со знаком «», и на эту величину увеличиваются поставки в вершинах со знаком «+» и уменьшаются поставки в вершинах со знаком «-». Это правило гарантирует, что в вершинах контура не появится отрицательных поставок, начальная выбранная клетка окажется занятой, в то время как одна из занятых клеток при этом обязательно освободится. Если величина перераспределяемой поставки равна поставкам не в одной, а в нескольких вершинах контура со знаком «-» (это как раз имеет место в контуре перераспределения в табл. 4.13), то освобождается только одна клетка, обычно с наибольшей стоимостью перевозки, а все другие такие клетки остаются занятыми с нулевой поставкой. Результат указанных операций для представленного в табл. 4.13 распределения поставок показан в табл. 4.15, Суммарные затраты на перевозки по этому плану составляют f (X ) = 4 ⋅ 30 + 5 ⋅ 0 + 2 ⋅ 30 + 3 ⋅ 100 + 7 ⋅ 10 + 4 ⋅ 110 = 990 , что значительно меньше предыдущей суммы затрат 1170, хотя план перевозок в табл. 4.15 еще не является оптимальным. Об этом свидетельствует наличие отрицательных значений в матрице оценок клеток этого плана (соответствующие потенциалы u i и v j ) найдены способом, изложенным при описании этапа 2): 0 0 4  0   d =  − 1 0 6 5.  − 3 − 8 0 0   Таблица 4.15. Мощности поставщиков 30 60 Мощности потребителей 100 40 110 3 5 2 3 4 30 100 1 3 120 6 2 ui 30 6 2 2 7 4 5 100 10 vj 4 5 2 110 20 -1 58 Транспортные задачи, в базисном плане перевозок которых имеют место занятые клетки с нулевой поставкой (или в первоначальном распределении, или в процессе итераций), называются вырожденными; пример такой задачи представлен в табл. 3. В случае вырожденной транспортной задачи существует опасность зацикливания, т.е. бесконечного повторения итераций (бесконечного перебора одних и тех же базисных комбинаций занятых клеток). Как правило, в практических задачах транспортного типа зацикливание не встречается; тем не менее следует знать, что существуют специальные правила, позволяющие выйти из цикла, если зацикливание все же произойдет. При отсутствии вырождения метод потенциалов конечен и приводит к оптимальному плану перевозок за конечное число шагов. 4.6 Открытая модель транспортной задачи Если суммарная мощность поставщиков не равна суммарной мощности n m потребителей, (т. е. если нарушается условие ∑ a i = ∑ b j ), то имеем открытую j=1 i =1 модель транспортной задачи. Открытая транспортная задача решается сведением ее к закрытой транспортной задаче. Пример 4.5. Найти оптимальное распределение поставок для транспортной задачи, представленной в таблице 4.16. Таблица 4.16. Мощности поставщиков 40 45 4 Мощности потребителей 35 55 1 2 65 5 60 3 2 3 7 90 4 4 5 2 Р е ш е н и е . В данном случае суммарный спрос потребителей больше, чем суммарная мощность поставщиков (45+35+55+ +65 = 200 > 40+60+90 = 190). Введем «фиктивного поставщика» и в таблицу поставок добавим дополнительную строку (табл. 4.17) так, чтобы задача стала закрытой. Для этого мощность фиктивного поставщика следует принять равной 10 = 200—190. Коэффициенты затрат этой добавленной строки определяются издержками ввиду недогрузки мощностей потребителей. Если информация об этих издержках отсутствует, то их принимают равными одному и тому же числу (например, нулю, как в табл. 4.17). Конкретное значение этого числа не влияет на оптимальное распределение поставок. Таблица 4.17. Мощности поставщиков 40 60 4 3 45 Мощности потребителей 35 55 1 2 5 2 3 7 65 59 90 4 4 5 2 10 Решение Первоначальное распределение поставок для сформулированной закрытой транспортной задачи найдем, например, по методу наименьших затрат. Для удобства укажем последовательность заполнения таблицы поставок: x 44 = 10, x12 = 35, x 34 = 55, x13 = 5, x 23 = 50, x 21 = 10, x 31 = 35 . В результате приходим к следующему базисному распределению поставок (табл. 4.18) Таблица 4.18 Мощности поставщиков 40 Мощности потребителей 35 55 65 1 2 5 45 4 35 60 3 + 2 90 4 10 _ 4 10 ui 5 - 7 3 -1 50 5 2 + -2 + 0 55 - 35 10 vj 2 1 2 Рассчитаем матрицу оценок по формуле d ij = ( u i + c ij ) − v j  2   0 d= 1 1  − 2 −1 − 2 5  6 . 0  0  Так как есть отрицательные оценки свободных клеток, то полученный план перевозок неоптимальный. Строим цикл перераспределения для клетки (4; 3). В результате получим следующий цикл (выделенные клетки в таблице 6). Далее производим перераспределение в соответствии с описанной ранее схемой. Результат представлен в таблице 4.18. Таблица 4.18 Мощности поставщиков 45 Мощности потребителей 35 55 65 ui 60 40 4 1 2 35 60 3 2 4 10 7 -1 -2 5 3 20 90 5 40 4 5 2 25 65 2 10 vj 2 1 2 Матрица оценок для этой таблицы 2  0 d=  0 0 0 5  0 0 6 1 1 0  1 0 2  не содержит отрицательных элементов свободных клеток, следовательно полученный план перевозок оптимальный. Суммарная стоимость перевозок составит f (X ) = 1 ⋅ 35 + 2 ⋅ 5 + 3 ⋅ 20 + 3 ⋅ 40 + +4 ⋅ 25 + 2 ⋅ 65 + 0 ⋅ 10 = 455 В случае, когда суммарная мощность поставщиков больше суммарной мощности потребителей, в рассмотрение вводится «фиктивный потребитель», а к таблице поставок присоединяется дополнительный столбец. Коэффициенты затрат этого добавленного столбца соответствуют затратам на хранение не отправленного груза (поставки последнего столбца – не отправленный груз для каждого из поставщиков). Если информация об этих затратах отсутствует, то их принимают равными одному и тому же числу (например, нулю). Вопросы для самопроверки Сформулируйте экономико – математическую модель транспортной задачи Приведите отрытую модель транспортной задачи Опишите многопродуктовую модель транспортной задачи Сформулируйте модель производства с запасами Укажите эквивалентность элементов производственной и транспортной системы Как решить транспортную задачу симплексным методом? В чем состоит суть метода северо-западного угла поиска начального базиса при решении транспортной задачи? 8. В чем состоит суть метода наименьших стоимостей поиска начального базиса при решении транспортной задачи? 9. Опишите суть метода потенциалов 10. Как улучшить оптимальный план перевозок в транспортной задаче (циклы перераспределения)? 11. Как решить открытую транспортную задачу? 1. 2. 3. 4. 5. 6. 7. 61 Тема 5. Целочисленное программирование Целочисленным (иногда его называют также дискретным) программированием называется раздел математического программирования, изучающий экстремальные задачи, в которых на искомые переменные накладывается условие целочисленности, а область допустимых решений конечна. Изучение этого раздела вызывается тем, что огромное количество экономических задач носит дискретный, чаще всего целочисленный характер, что связано, как правило, с физической неделимостью многих элементов расчета: например, нельзя построить два с половиной завода, купить полтора автомобиля и т.д. В ряде случаев такие задачи решаются обычными методами, например, симплексным методом, с последующим округлением до целых чисел. Однако такой, подход оправдан, когда отдельная единица составляет очень малую часть всего объема (например, товарных запасов); в противном случае он может внести значительные искажения в действительно оптимальное решение. 5.1 Графический метод решения ЗЦП Приводимый ниже пример ясно показывает недостаточность таких методов и позволяет лучше понять неуловимую трудность ЗЦП. Пример 5.1. f ( x ) = x1 − 20 x2 → min − x1 + 10 x2 ≤ 40 4 x1 + 2 x2 ≤ 29 x j ≥ 0; x j ∈ Z x2 j = 1,2 На плоскости 10 (x1 , x2 ) (см. рис. 5.1) допустимое множество S - многоугольник ABCD и отметим точки множества S с целочисленными координатами. 8 ~ Здесь множество S отмечено отдельными точками внутри многогранника ABCD . Перемещая линию уровня ЦФ f ( x ) в 6 C B 4 x ∗ = (5,4.5) ~∗ 2 x = (0,4 ) f ( x ) = −30 D A 2 4 6 8 10 x1 направлении антиградиента ∇f = (− 1,20 ) (убывания f ), находим крайнее положение этой линии, в котором она имеет непустое ~ пересечение с множеством S . В этом положении линия уровня проходит через точку Рис. 5.1 B(0,4 ) , поэтому решение задачи имеет вид xɶ ∗ = ( 0, 4 ) ; fɶ ∗ = minɶ f ( x ) = −80 . x∈S Из рисунка видно, что в случае непрерывной переменной оптимум есть точка C(5,4.5) , т.е. ∗ ∗ x = (5,4.5); f = −85 62 Простой метод округления привел бы к решению x1 = 5; x2 = 5 , которое не удовлетворяет ограничениям. отсюда следует, что точка минимума ЦФ на допустимом ~ ∗ множестве S целочисленной задачи не обязательно является ближайшей к решению x обычной задачи ЛП. ~ x (5,4 ), f = −75 , то Замечание. Если округлить в сторону уменьшения, т.е. взять ~ эта точка будет удовлетворять ограничениям задачи. Для решения целочисленных задач разработаны специальные методы, которые можно разделить на две группы: методы отсечения (отсекающих плоскостей) и комбинаторные методы. Метод отсекающих плоскостей состоит в построении дополнительных ограничений и применении модифицированного симплексного метода (метод Гомори). Представление о комбинаторных методах дает широко используемый на практике метод ветвей и границ. По методу Гомори первый этап решения целочисленных задач не отличается от обычного расчета по симплексному алгоритму. Если среди значений переменных в оптимальном плане есть дробные, то составляется дополнительное ограничение, отсекающее дробную часть решения, но оставляющее в силе все прочие условия, которым должен удовлетворять оптимальный план. Это дополнительное ограничение присоединяется к исходным ограничениям задачи, и вновь применяется процедура симплексного метода. Алгоритм Гомори позволяет прийти к оптимальному целочисленному решению за конечное число шагов. 5.2 Метод Гомори (МГ) МГ используется для решения задач ЦП с произвольным числом переменных. Суть МГ: последовательное отсечение от допустимого множества S нецелочисленной задачи частей, не содержащих точек с целыми координатами. Эти отсечения производятся включением в задачу дополнительных ограничений на переменные x j . Задача ЦП имеет вид f ( x ) → ct x → min Ax = b x ≥ 0; x ∈ Z - множество целых чисел (5.1) (5.2) (5.3) 5.2.1 Алгоритм МГ с использованием СМ ∗ Шаг 1 С помощью СМ, находится решение x ЗЛП без учета требования ∗ целочисленности (5.3). Если для x условие (5.3) выполняется, то задача решена. В ∗ противном случае среди чисел bi последнего столбца СТ, определяющей решение x , есть такие, что {bi } > 0 . Шаг 2 Среди нецелых элементов bi выбирается произвольный элемент b r (например, с максимальной дробной частью {b r }). По r -ой строке СТ составляется дополнительное ограничение вида n − ∑ a rj x j ≤ −{b r } j = m +1 { } 63 (здесь для определенности полагаем, что свободные переменные x j имеют номера m + 1, m + 2,…, n ). С помощью вспомогательной переменной представляется в виде равенства n x n +1 − ∑ a rj x j = −{b r } j= m +1 и вводится в СТ дополнительной строкой. x n +1 ≥ 0 это ограничение { } x n +1 α n +1, m +1 ,…, α n +1, n β n +1 где { } α n +1, j = − a r , j ; (5.4) j = m + 1,…, n β n +1 = −{b r } { } Так как β n +1 = − b r < 0 , то после дополнения строкой (5.4) СТ перестает соответствовать допустимому базисному решению ЗЛП, которую она описывает. Шаг 3 Для перехода к допустимому базисному решению производятся следующие операции: а) строка с отрицательным свободным членом β n +1 считается опорной б) если все коэффициенты α n +1, j > 0, j = m + 1,..., n , то задача не имеет решения, в противном случае номер ℓ разрешающего столбца находится из условия β n +1 α n +1, ℓ = min β n +1 j:α n +1, j < 0 α n +1, j (5.5) в) совершается преобразование СТ с опорным элементом α n +1, ℓ . Если в новой СТ по-прежнему есть хотя бы один отрицательный свободный член, то описанная процедура повторяется, начиная с операции (а), необходимое число раз. Если все элементы bi новой СТ ≥ 0 , то допустимое базисное решение найдено. Отметим, что выбор опорного элемента α n +1, ℓ гарантирует неотрицательность коэффициентов bi новой СТ. Поэтому найденное допустимое решение является и оптимальным. Шаг 4 Если найденное на Ш. 3 решение ЗЛП удовлетворяет условию целочисленности, то – «останов», если нет → Ш. 2. Описанный алгоритм позволяет найти решение полностью целочисленной ЗЛП или установить отсутствие решений за конечное число итераций. Пример 5.2. Пусть для приобретения оборудования, размещаемого на производственной площади 38 м2, фирма выделяет 20 млн. руб. Имеются единицы оборудования двух типов: типа А стоимостью 5 млн. руб., требующее производственную площадь 8 м2 и имеющее производительность 7 тыс. единиц продукции за смену, и типа Б — стоимостью 2 млн. руб., занимающее площадь 4 м2 и дающее за смену 3 тыс. единиц продукции. Требуется рассчитать оптимальный вариант приобретения оборудования, обеспечивающий максимум производительности участка. 64 Сформулируем экономико-математическую модель задачи. Пусть x1 , x 2 — количество приобретаемых машин типа А и типа Б соответственно. Тогда целевая функция задачи будет иметь вид: f (X ) = 7 x1 + 3x 2 → max при ограничениях: 5x1 + 2 x 2 ≤ 20, 8x1 + 4 x 2 ≤ 38, x1,2 ≥ 0; x1,2 ≡ 0. Сформулирована задача линейного целочисленного программирования . Введем дополнительные переменные x 3 , x 4 , с помощью которых исходные неравенства преобразуются в равенства: 5 x1 + 2 x2 + x3 = 20, 8 x1 + 4 x2 + x4 = 38, x1 , x2 , x3 , x4 ≥ 0; xi ∈ Z. из которых следует, что переменные x 3 , x 4 могут принимать неотрицательные целочисленные значения. Далее решаем задачу симплексным методом (без учета целочисленности): CT-1 CT-3 x3 x4 f x1 5 x2 bi 2 20 8 4 38 -7 -3 CT-2 x3 x1 x4 f x2 x3 x1 x2 f x4 только bi 1 -1/2 1 -2 5/4 15/2 1 1/4 59/2 bi 1/5 2/5 4 -8/5 4/5 6 7/5 -1/5 28 Из таблицы СТ-3 видно, что в оптимальном плане x1 = 1; x2 = 7,5 и максимум целевой функции равен f ( X ) = 7 ⋅ 1 + 3 ⋅ 7,5 = 29,5 . Полученное решение не удовлетворяет условию целочисленности, поэтому дополняем последнюю СТ строкой (4) СТ- 4 x3 x1 x2 x5 f CT - 5 x4 bi 1 -1/2 1 -2 5/4 15/2 - 1/4 -1/2 1 1/4 59/2 65 x3 x1 x2 x4 f x5 bi 1 2 2 -2 5 5 4 2 1 1 29 Повторив процесс решения симплексным методом для данной расширенной системы ограничений, получим новый оптимальный план, в котором переменные, входящие в базис, принимают целые значения: x1 = 2; x 2 = 5; x 4 = 2 . Таким образом, приобретение двух машин типа А и пяти машин типа Б обеспечивает максимум производительности участка, равный 29 тыс. единиц продукции в смену. Заметим, что если бы в качестве плана был выбран вариант, получаемый в результате округления первоначального решения задачи симплексным методом ( x1 = 1; x 2 = 7 *), то суммарная производительность была бы равна лишь 28 тыс. единиц продукции. 5.2.2. Решение частично целочисленных задач методом Гомори Если требованию целочисленности подчинены не все переменные ЗЛП, то такая задача называется частично целочисленной. Для решения частично целочисленных задач также используется метод Гомори, но его алгоритм в этом случае отличается видом коэффициентов α n+1, j в дополнительной строке xn+1 | α n+1,m+1 ,...,α n+1,n | β n+1 . Если переменная xi подчинена требованию целочисленности, то имеем a) α n+1, j Если же переменная xi б) α n+1, j −arj , если arj ≥ 0   =  {brj } 1 − b ⋅ arj , если arj < 0  { rj } (5.6) не подчинена требованию целочисленности, тогда  {arj },  =  {br } ⋅ {arj } − 1  1 b −  { r } ( ) если {a } ≤ {b } если {arj } > {br } rj r (5.7) 66 Вычисления заканчиваются, когда целыми являются не обязательно все коэффициенты bi , а только те, которым соответствуют переменные xi подчиненные требованию целочисленности. Пример 5.3. Решить частично целочисленную задачу линейного программирования. f ( x) = x1 − 10 x2 → min 3 x1 + x2 ≤ 12 −8 x1 + 3 x2 ≤ 24 x j ≥ 0; x2 ∈ Z Запишем задачу в каноническом виде: f ( x) = x1 − 10 x2 → min 3 x1 + x2 + x3 = 12 −8 x1 + 3 x2 + x4 = 24 x2 ∈ Z x3 x4 x1 3 -8 1 x1 x2 x3 3/17 8/17 77/17 x2 1 3 -10 x4 -1/17 3/17 31/17 12 24 x3 x2 x1 17/3 -8/3 -77/3 x4 -1/3 1/3 10/3 4 8 80 12/17 168/17 1668/17 * Найденное решение x = (12 /17, 168/17) по второй переменной не удовлетворяет условию целочисленности. По второй строке составим дополнительное ограничение (см. (5.6). x1 x2 x5 x3 x2 x4 x3 3/17 8/17 -8/17 77/17 x1 1 -8/3 1/3 x4 -1/17 3/17 -3/17 31/17 x5 -1/3 1 -43/9 92/9 12/17 168/17 -15/17 1668/17 1 9 7/3 268/3 x1 x2 x4 x3 1 8/3 -1/3 x5 -1/3 1 -17/3 31/3 1 9 15/3 89 67 * Таким образом, получим: xɶ = (0, f * = −268/ 3 . 9); 5.3. Метод ветвей и границ Метод ветвей и границ (МВГ) широко используется на практике для решения как полностью целочисленных задач, так и смешанных задач ЦЛП. Он применяется в большинстве коммерческих программ решения задач ЦП. По существу МВГ представляет собой эффективную процедуру перебора всех целочисленных допустимых решений. Как известно, в методе Гомори решение основано на отсечении нецелочисленных допустимых решений. В МВГ используется округление нецелочисленного оптимального решения ЗЛП. * Пример 5.4. Пусть оптимальное решение двумерной ЗЛП есть x = (3,5;4, 4) . В качестве кандидатов на роль приближенного целочисленного оптимального решения необходимо рассматривать решения (3;4), (4;4), (4;5), (3;5), полученные в результате округления. Истинное оптимальное целочисленное решение может не совпадать ни с одним из 4-х, поскольку целое значение x1 в оптимальном решении может быть >4 или <3. Таким образом, для получения истинного оптимального целочисленного решения приходится рассматривать все возможные значения x1 большие и меньшие 3,5. Другими словами, оптимальное целочисленное значение x1 должно удовлетворять неравенству x1 ≤ 3 либо неравенству x1 ≥ 4 . Аналогично по переменной x2 – либо x2 ≤ 4 , либо x2 ≥ 5 . При наличии в задаче ЦЛП большого количества переменных важно иметь процедуру, позволяющую систематически перебирать все возможные целочисленные решения, получаемые при округлении оптимального решения ЗЛП. МВГ по существу представляет собой такую процедуру эффективного перебора целочисленных решений, получаемых при округлении оптимального решения. Для иллюстрации основных принципов МВГ рассмотрим следующую задачу ЦП Пример 5.5. F = 3 x1 + 2 x2 → max x1 ≤ 2; x2 ≤ 2; x1 + x2 ≤ 3,5 (ЛП-1) x1 , x2 ≥ 0 x1 , x2 ∈ Z Начальный шаг решения этой задачи состоит в нахождении решения ЗЛП без учета целочисленности x1 и x2 . На рис. 5.2 представлено графическое решение * * ЗЛП. Оптимальное решение задачи ЛП-1 имеет вид x = (2;1,5); F = 9 . Так как x2 = 1,5 , то найденное решение не может быть оптимальным решением исходной * задачи ЦЛП. Но найденное значение F = 9 представляет собой верхнюю границу истинного оптимального решения, поскольку при выполнении требования целочисленности x2 значение F может лишь уменьшиться. 68 x2 F* = 9 3 2 B (1,5;2) A C (2;1, 5) 1 F =3 D 1 2 3 x1 Рис. 5.2. Решение задачи ЛП-1 Следующий шаг МВГ состоит в просмотре целочисленных значений x2 больших или меньших 1,5. Это делается путем добавления к задаче ЛП-1 нового ограничения: либо x2 ≤ 1 , либо x2 ≥ 2 . Таким образом, из задачи ЛП-1 получаются 2 задачи следующего вида ЛП-2 ЛП-3 F = 3 x1 + 2 x2 → max F = 3 x1 + 2 x2 → max x1 ≤ 2; x2 ≤ 2; x1 ≤ 2; x2 ≤ 2; x2 ≤ 1 новое ограничение x2 ≥ 2 новое ограничение x1 + x2 ≤ 3,5 x1 + x2 ≤ 3,5 x1 , x2 ≥ 0 x1 , x2 ≥ 0 x1 , x2 ∈ Z x1 , x2 ∈ Z x2 F* = 8 3 2 1 A C (2;1) F =3 1 D 2 Рис. 5.3. Решение задачи ЛП-2 3 x1 69 x2 F * = 8,5 3 2 1 B (1,5; 2) A F =3 1 2 3 x1 Рис. 5.4. Решение задачи ЛП-3 На рис.5.3 и рис.5.4 изображены допустимые области задач ЛП-2 и ЛП-3 соответственно ( S ЛП −3 ≡ трезокAB ). S ЛП − 2 и S ЛП −3 обладают следующими свойствами 1. Оптимальное решение задачи ЛП-1 ( x1 = 2; x2 = 1, 5 ) недопустимы для обеих задач ЛП-2 и ЛП-2. Таким образом, это решение не повторится. 2. Любое целочисленное (допустимое) решение исходной задачи допустимо и для ЛП-2 и ЛП-3. Таким образом, при введении этих задач не происходит потери допустимых целочисленных решений исходной задачи. Оптимальное решение задачи ЛП-2 (рис. 5.3) – это точка C (2;1) , т.е. x* = (2;1), F * = 8 . Таким образом, получено допустимое (целочисленное) решение исходной задачи ЦП. Даже если ЛП-2 имеет другие целочисленные решения, значение * ЦФ в них не может быть больше 8. Т.е. F = 8 – нижняя граница максимального значения F для исходной задачи ЦЛП. Другими словами, оптимальное значение F исходной задачи не может быть < 8. А так как ранее получена лишь верхняя граница, равная 9, то нельзя утверждать, что решение ЛП-2 оптимально для исходной задачи. Следовательно, необходимо также рассмотреть задачу ЛП-3. * Оптимальное решение задачи ЛП-3 (рис. 5.4) x1 = 1,5; x2 = 2; F = 8,5 . Для исходной задачи это недопустимо, так как x1 принимает дробное значение. * Оптимальное решение ЛП-3 F = 8,5 > 8 (нижней границы). Поэтому необходимо проверить существование в допустимой области S ЛП −3 целочисленного решения, дающего значение ЦФ F ≥ 8 . Для этого рассмотри задачи ЛП-4 и ЛП-5, получающиеся при добавлении к ЛП-3 ограничений x1 ≤ 1 и x1 ≥ 2 соответственно. S ЛП − 4 состоит из отрезка DE (рис. 5), а задача ЛП-5 не имеет допустимых решений, т.е. S ЛП −5 = ∅ . * Оптимальное решение ЛП-4 x = (1;2); F* = 7 . 70 x2 F* = 7 3 2 E (1; 2) D F =3 1 1 2 3 x1 Рис. 5.5. Решение задачи ЛП-4 Следовательно, для любого целочисленного решения в S ЛП − 4 значение ЦФ ≤7. Таким * образом, точка x (2;1) задачи ЛП-2 представляет собой оптимальное целочисленное решение исходной задачи; оптимальное значение ЦФ в этой точке равно 8. Удобно представить последовательность задач ЛП, возникающих при использовании процедуры МВГ в виде дерева (рис. 5.6) Вершина 1 x2 ≥ 2 x2 ≤ 1 x2 = 1 x2 = 1,5 F* = 9 ЛП-1 x1 = 2 x1 = 2 Вершина 2 x1 = 1,5 Вершина 3 x2 = 2 * F * = 8,5 F =8 ЛП-2 ЛП-3 x1 ≤ 1 x1 = 1 Вершина 4 x2 = 2 F* = 7 ЛП-4 x1 ≥ 2 Вершина 5 ЛП-5 Нет допустимых решений Рис. 5.6. Дерево последовательности ЗЛП, возникающих при использовании МВГ 71 Дерево состоит из множества вершин и соединяющих их дуг или ветвей. Вершина 1 соответствует ЛП-1 без учета требований целочисленности. Ветвление в вершине 1 определяемое целочисленной переменной x2 с помощью ограничения x2 ≤ 1 приводит к вершине 2 (ЛП-2). Так как Лп-2 имеет оптимальное целочисленное решение, то нет необходимости производить ветвление в вершине 2. Такая вершина называется прозондированной. Ветвление в вершине 1. по ограничению x2 ≥ 2 дает ЛП-3. Так как оптимальное решение ЛП-3 дробное, происходит дальнейшее ветвление в вершине 3 по переменной x1 . Это приводит к появлению вершин 4 и 5. Эти вершины прозондированы, поскольку ЛП-4 обладает оптимальным целочисленным решением, а ЛП-5 не имеет допустимых решений. Наилучшее решение в прозондированных вершинах и есть оптимальное решение исходной задачи. 5.3.1 Алгоритм МВГ Рассмотрим частично целочисленную задачу вида F = c x → max Ax = b, x ≥ 0, x j ∈ Z( j ∈ I ) где I – множество индексов целочисленных переменных. T Шаг 1. На первом шаге решается задача ЛП-1, где все ее переменные рассматриваются как непрерывные. Пусть в оптимальном решении F1 ЛП-1 некоторые целочисленные переменные принимают дробные значения, тогда оптимальное решение исходной задачи не совпадает с F1 . В этом случае F1 представляет собой верхнюю границу оптимального * значения F исходной задачи ЛП-1. Шаг 2. Производится ветвление по одной из целочисленных переменных, имеющей дробное значение в оптимальном решении ЛП-1. Для определения переменной, по которой производится ветвление, разработан ряд правил. Приведем некоторые из них. 1) Выбор целочисленной переменной, значение которой в оптимальном решении ЛП1 имеет наибольшее дробное значение. 2) Приписывание целочисленным переменным приоритетов и ветвление по переменной с наибольшим приоритетом, например: А) данная переменная представляет собой важное решение, принимаемое в рамках рассматриваемой модели; Б) ее коэффициент стоимости или прибыли в ЦФ существенно превосходит остальные; С) значение данной переменной играет ключевую роль для модели с точки зрения разработчиков и пользователей. 3) Произвольные правила выбора. Например, можно выбирать переменную с наименьшим номером. Пусть ветвление происходит по целочисленной переменной x j , дробное значение которой в оптимальном решении ЛП-1 равно β j . Далее рассматриваются две новые задачи ЛП-2 и ЛП-3, получаемые путем введения ограничений x j ≤ соответственно, где переменной x j ; β j и xj ≥ β j , β j – наименьшее целое ≤ [ x j ] ; здесь [ x j ] – целое значение β j – наибольшее целое > [ x j ] . 72 Условия ЛП-2 и ЛП-3 можно записать следующим образом (см. рис. 7) ЛП-2 ЛП-3 F = cT x → max Ax = b, xj ≤ β j F = c x → max x≥0 x≥0 T xj ≥ β j Ax = b, Допустим, что оптимальные решения задач ЛП-2 и ЛП-3 также содержат дробные значения целочисленных переменных и поэтому не являются допустимыми для исходной задачи. Шаг 3. Выбрать задачу ЛП-2 или ЛП-3 и произвести ветвление в соответствующей вершине, вводя новое ограничение. Выбор вершины (задачи ЛП) осуществляется с помощью специальных правил 1) Использование оптимального значения ЦФ. Для дальнейшего ветвления следует выбирать вершину, соответствующую наибольшему оптимальному значению ЦФ задачи ЛП. 2) Правило «последним пришел – первым обслужил». Для дальнейшего ветвления выбирается задача ЛП, решавшаяся последней. Вершина 1 Дробное решение F * = F1 ЛП-1 xj ≥ β j xj ≤ β j Дробное решение F * = F2 xi ≤ βi Вершина 2 Вершина 3 ЛП-2 ЛП-3 xi ≥ βi xk ≤ β k xk ≥ β k Вершина 6 Вершина 4 ЛП-4 Целочисленное решение F * = F4 Дробное решение F * = F3 Вершина 7 Вершина 5 ЛП-5 S ЛП −5 = ∅ ЛП-6 Дробное решение F * = F6 Рис. 5.7. Алгоритм МВГ ЛП-7 Дробное решение F * = F7 73 После выбора вершины для дальнейшего ветвления выбирается целочисленная переменная, которая имеет в оптимальном решении соответствующей ЗЛП дробное значение, и производится ветвление по этой переменной. Процесс ветвления и решения задач ЛП продолжается до получения целочисленного оптимального решения одной из задач ЛП. Значение F в полученной точке представляет собой истинную границу оптимального значения ЦФ исходной задачи ЦЛП. На этом этапе отбрасываются все вершины ЗЛП, для которых оптимальное значение F не превосходит полученной нижней границы. Про такие вершины говорят, что они являются прозондированными, поскольку в соответствующих им допустимых областях нет целочисленных решений, лучших, чем уже полученные. В качестве иллюстрации рассмотрим следующее дерево. Целочисленное оптимальное решение ЛП-4 дает нижнюю границу F4 ЦФ исходной задачи (ЛП-1). Другими словами, оптимальное решение исходной задачи (ЛП-1) не может давать значение F меньшее, чем F4 . Дальнейшее ветвление в вершине В4 излишнее, так как для любой из последующих задач оптимальное значение не может быть > F4 . Таким образом, вершина В4 является прозондированной. Вершина В5 также прозондирована, поскольку S ЛП −5 = ∅ . Следовательно, в дальнейшем ветвление можно производить только в В6 и В7. Предположим, что F6 < F4 , а F7 > F4 . Это значит, что В6 также прозондирована (неявным образом). Но так как F7 > F4 , в S ЛП −7 может найтись целочисленное решение со значением F , большим F4 . Таким образом, для дальнейшего ветвления необходимо выбрать В7. Вершина (ЗЛП) является прозондированной (явным или неявным образом) в том случае, если она удовлетворяет хотя бы одному из условий: 1) Оптимальное решение, соответствующее данной вершине, целочисленно. В этом случае полученное решение допустимо для исходной задачи ЦЛП. 2) ЗЛП, соответствующая рассматриваемой вершине, не имеет допустимых решений. 3) Оптимальное значение F соответствующей ЗЛП не превосходит нижней границы. При использовании МВГ выбор вершин для дальнейшего ветвления происходит до тех пор, пока остается хотя бы одна непрозондированная вершина. Прозондированная вершина с наилучшим значением F дает оптимальное решение исходной задачи ЦЛП. Рассмотрим далее ряд специальных оптимизационных задач, сводящихся к задачам линейного целочисленного программирования. Одной из таких задач является задача о назначениях, с помощью которой можно получить ответ на вопросы типа: как распределить рабочих по станкам, чтобы общая выработка была наибольшей или затраты на заработную плату наименьшими; как наилучшим образом распределить экипажи самолетов; как назначить людей на различные должности (отсюда и название задачи) и т.д. 5.4 Задача о назначениях Математически такие задачи относятся к тому же типу распределительных задач, что и рассмотренная в лекции 6 транспортная задача, с той особенностью, что в них объемы наличных и требующихся ресурсов для выполнения каждой работы равны единице ( a i = b j = 1 ), а все переменные x ij либо равны единице, если i -й работник 74 назначен на j -ю работу, либо равны нулю в других случаях. Исходные данные задачи о назначениях группируются в таблице, которая называется матрицей оценок, а результаты — в матрице назначений. Задача о назначениях в общем виде может быть сформулирована следующим образом. Имеется n работников, которые могут выполнять n работ, причем использование i -го работника на j -й работе, например, приносит доход c ij . Требуется поручить каждому из работников выполнение одной вполне определенной работы, чтобы максимизировать в данном случае суммарный доход. Введем переменные: 1, если i − й работник выполняет j − ю работу x ij =  0 в противном случае Задача состоит в том, чтобы найти распределение X = ( x ij ) работников по работам (т. е. найти матрицу назначений), которое максимизирует целевую функцию n n f (X ) = ∑ ∑ cij x ij → max (5.6) i =1 j=1 при ограничениях n (5.7) ∑ x ij = 1, i = 1,..., n; j=1 n (5.8) ∑ x ij = 1, j = 1,..., n . i =1 причем x ij равно либо 0, либо 1 (так называемые булевы переменные) для всех i, j = 1,..., n . Ограничения (5.7) отражают условие того, что за каждым работником может быть закреплена только одна работа, а ограничения (5.8) означают, что для выполнения каждой работы может быть выделен только один работник. Если в задаче о назначениях элементы матрицы оценок представляют собой, например, время выполнения каждым работником любой из работ, то целевая функция этой задачи будет минимизироваться. 5.5 Задача о коммивояжере Другой задачей подобного рода является задача о коммивояжере, которая может быть сформулирована следующим образом. Имеется n городов, пронумерованных числами от 1 до n . Коммивояжер, выезжая из города 1, должен побывать в каждом городе ровно один раз и вернуться в исходный пункт. Пусть известны расстояния cij между городами ( i, j = 1,..., n; i ≠ j ). Требуется найти самый короткий маршрут. Составим экономико – математическую модель. Введем переменные: 1, если в маршрут входит переезд из города i в город j x ij =  0 в противном случае (i, j = 1,..., n; i ≠ j Требование однократного въезда и выезда в города запишется в виде следующих ограничений: 75 n ∑ x ij = 1, j = 1,..., n , i =1 n ∑ x ij = 1, i = 1,..., n j=1 (5.9) (5.10) Однако ограничения (5.9) полностью не определяют допустимые маршруты, так как не исключают возможности разрыва пути, т. е. появления нескольких не связанных между собой подмаршрутов для части городов. Поэтому следует ввести дополнительно n переменных ui ≥ 0; ui ∈ Z (i = 1,..., n) , принимающих только целые неотрицательные значения, и записать для них специальные ограничения: u i − u j + n ⋅ x ij ≤ n − 1; i, j = 2,..., n; i ≠ j (5.11) Общее число таких ограничений равно ( n − 1) ⋅ ( n − 2) и они, не исключая допустимый маршрут, исключают возможность существования подмаршрутов. Таким образом, задача о коммивояжере состоит в минимизации целевой функции: f (X, U ) = ∑ ∑ cij x ij → min при условиях (5.9), (5.10), (5.11), где переменные x ij , u i принимают только неотрицательные целые значения. К задачам целочисленного программирования приводят также многие оптимальные задачи теории расписаний, в которой рассматриваются методы оптимизации оперативно-календарного планирования. В качестве примера таких задач можно привести задачу определения оптимальной очередности обработки изделий на различных станках или других рабочих местах, задачу составления программы «диспетчер» для управления работой ЭВМ в мультипрограммном режиме и др. 5.6. Венгерский метод Рассмотрим метод решения задачи о назначениях. Основная идея этого метода: оптимальность решения задачи не нарушается при уменьшении (увеличении) элементов строки (столбца) на одну и ту же величину d i (d j ) . Решение считают оптимальным, если все измененные искусственно затраты c′ij ≥ 0 (i, j = 1., , ,., n ) и можно отыскать такой набор x ij , при котором достигается экстремум целевой функции (6). Пример 5.6. Пусть для монтажа четырех объектов ( n = 4 ) требуется четыре крана ( n = 4 ). Известно время монтажа каждым i -м краном каждого j -го объекта (табл. 5.1). Необходимо так распределить краны по объектам, чтобы суммарное время монтажа всех объектов было минимально. Решение Соответственно исходным данным задача формализуется: f = 3 x11 + 7 x12 + 5 x13 + 8 x14 + 2 x21 + 4 x22 + 4 x23 + 5 x24 + + 4 x31 + 7 x32 + 2 x33 + 8 x34 + 9 x41 + 7 x42 + 3 x43 + 8 x44 → min 76 при ограничениях x11 + x12 + x13 + x14 = 1, ................................... x 41 + x 42 + x 43 + x 44 = 1, x11 + x 21 + x 31 + x 41 = 1, .................................. x14 + x 24 + x 34 + x 44 = 1 Таблица 5.1 Код крана ( i ) 1 2 3 4 bj Затраты времени на монтаж по объектам ( c ij ) 1 3 2 4 9 1 2 7 4 7 7 1 3 5 4 2 3 1 4 8 5 8 8 1 ai di 1 1 1 1 3 2 2 3 Алгоритм метода включает следующие основные этапы (шаги). Шаг 1. Получение нулей в каждой строке. 1.1. Находят наименьший элемент d i в каждой строке (табл. 1), который вычитают из всех ее элементов и получают новую матрицу (табл. 5.2). Таблица 5.2 Код крана ( i ) Затраты времени на монтаж по объектам ( c ij ) bj 1 2 6 1 2 4 2 5 4 1 3 2 2 1 4 5 3 6 5 1 di 2 3 1 2 3 4 ai 1 1 1 1 1.2. Аналогично в каждом столбце определяют его минимальный элемент d i , который вычитают из всех его элементов с получением следующей матрицы (табл. 5.3) Таблица 5.3 Код крана ( i ) Затраты времени на монтаж по объектам ( c ij ) 1 2 3* 4 ai 77 1 2 3* 4* bj 0* 2 6 1 2 0* 3 2 1 2 2 0* 1 2 3 2 1 di 2 3 1 1 1 1 Шаг 2. Поиск оптимального решения. 2.1. Рассматривается одна из строк табл. 3, имеющая меньшее число нулей (строка 1); отмечается звездочкой (*) один из нулей этой строки ( c11 = 0 ) и зачеркиваются все остальные нули этой строки и того столбца, в котором находится этот нуль ( c 21 ). 2.2. Аналогичные операции выполняют последовательно для всех строк. 2.3. Если назначения, которые получены при всех нулях, отмеченных звездочками, являются полными, то есть число нулей, отмеченных звездочками, равно n , то решение является оптимальным. В противном случае переходят к шагу 3. Шаг 3. Поиск минимального набора строк и столбцов, содержащих нули. 3.1. Отмечают звездочкой: 3.1.1) все строки, в которых нет ни одного отмеченного звездочкой нуля (строка 4, табл. 3); 3.1.2) все столбцы, содержащие перечеркнутый нуль хотя бы в одной из отмеченных звездочкой строк (столбец 3, табл. 3); 3.1.3) все строки, содержащие отмеченные звездочкой нули хотя бы в одном из отмеченных звездочкой столбцов (строка 3, табл. 3); 3.2. Шаги З.1.2) и 3.1.3) повторяют поочередно до тех пор, пока есть что отмечать. 3.3. После этого зачеркивают каждую непомеченную строку и каждый помеченный столбец (строки 1, 2 и столбец 3, табл. 3) с целью провести минимальное число горизонтальных и вертикальных прямых, пересекающих по крайней мере один раз все нули (табл. 3) Шаг 4, Перестановка некоторых нулей. 4.1. Определяют наименьшее число из тех клеток, через которые не проведены прямые (не зачеркнуты), то есть число 2 в табл. 3. Это число вычитают из каждого числа невычеркнутых столбцов и прибавляют к каждому числу вычеркнутых строк в вычеркнутых столбцах с получением табл. 5.4. Если эти операции не приводят к оптимальному решению, то цикл повторяется, начиная с шага 2 до получения оптимума. В данном случае число нулей, отмеченных точкой, оказалось равным 4, значит назначение является полным, а решение оптимальным, то есть Таблица 5.4 Код крана ( i ) 1 2 3* 4* Затраты времени на монтаж по объектам ( c ij ) 1 0* 4 2 2 0* 1 3* 4 4 0* 4 2 1 0* ai 1 1 1 1 78 bj 1 1 1 1 di 2 3 * x11 = x *22 = x *33 = x *44 = 1, f min = c11 + c 22 + c33 + c 44 = 3 + 4 + 2 + 8 = 17. Вопросы для самопроверки 1. Сформулируйте задачу целочисленного линейного программирования 2. В чем суть графического метода решения задачи ЦЛП? 3. В чем суть метода Гомори решения задачи ЦЛП? 4. Решение частично-целочисленных задач. 5. В чем суть метода ветвей и границ решения задачи ЦЛП? 6. Рассмотреть пример. Решение задачи ЛП-1. 7. Решение задачи ЛП-2 и ЛП-3. 8. Решение задачи ЛП-4 и ЛП-5. 9. Сформулировать алгоритм метода ветвей и границ. 10. Сформулируйте задачу о назначениях 11. Сформулируйте задачу о коммивояжере 12. Раскройте суть венгерского метода решения задачи о назначениях 79 Тема 6. Задачи многокритериальной оптимизации В практической деятельности часто встречаются задачи, заключающиеся в поиске лучшего (оптимального) решения при наличии различных несводимых друг к другу критериев оптимальности. Например, принятие решения о строительстве дороги в объезд города должно учитывать такие факторы, как выигрыш города в целом по соображениям экологии, проигрыш отдельных предприятий и фирм, например, из-за уменьшения проезжающих через город потенциальных покупателей и многие другие. Если такого рода задачи решаются методами математического программирования, то говорят о задачах многокритериальной оптимизации. Эти задачи могут носить как линейный, так и нелинейный характер. Далее будем рассматривать только линейные задачи. Задачи многокритериальной оптимизации возникают в тех случаях, когда имеется несколько целей, которые не могут быть отражены одним критерием (например, стоимость и надежность). Требуется найти допустимое решение, которое минимизирует или максимизирует все такие критерии. Если в подобного рода задачах речь идет не о разнородных критериях некоторой системы, а о сопоставлении однородных критериев разных ее подсистем (например, отрасли, группы населения и т.п.), то эти задачи называются задачами векторной оптимизации. Обозначим i -й частный критерий через Zi ( X ) ,где X — допустимое решение, а область допустимых решений — через S . Задачу многокритериальной оптимизации можно сформулировать следующим образом: Z(X) = {Z1 (X), Z 2 (X),..., Z m (X)} → max, X ∈S (6.1) Некоторые частные критерии могут противоречить друг другу, другие действуют в одном направлении, третьи — индифферентны, безразличны друг к другу. Поэтому процесс решения многокритериальных задач неизбежно связан с экспертными оценками как самих критериев, так и взаимоотношений между ними. Известен ряд методов решения задач многокритериальной оптимизации: • оптимизация одного признанного наиболее важным критерия, остальные критерии при этом играют роль дополнительных ограничений; • упорядочение заданного множества критериев и последовательная оптимизация по каждому из них (этот подход рассмотрен ниже на примере метода последовательных уступок); • сведение многих критериев к одному введением экспертных весовых коэффициентов для каждого из критериев таким образом, что более важный критерий получает более высокий вес; • метод справедливого компромисса, который допускает одинаковую важность всех частных критериев и не требует их нормализации и упорядоченности по степени важности. Для решения задач многокритериальной оптимизации используют критерий оптимальности Парето, суть которого состоит в улучшении одних показателей при условии, чтобы другие не ухудшались. * Определение. Вектор X ∈ S называется эффективным (оптимальным по Парето) решением задачи (9.1), если для любого вектора X ∈ S выполняется соотношение 80 Zi (X) ≤ Zi (X* ), i = 1,..., m (6.2) причем хотя бы для одного значения i имеет место строгое неравенство. Множество допустимых решений, для которых невозможно одновременно улучшить все частные показатели эффективности (т.е. улучшить хотя бы один из них, не ухудшая остальных), принято называть областью Парето, или областью компромиссов, а принадлежащие ей решения — эффективными, или оптимальными по Парето. 6.1. Метод уступок Рассмотрим один из методов решения многокритериальных задач – метод последовательных уступок. Метод последовательных уступок решения задач многокритериальной оптимизации применяется в случае, когда частные критерии могут быть упорядочены в порядке убывания их важности. Предположим, что все частные критерии максимизируются и пронумерованы в порядке убывания их * важности. Находим максимальное значение Z1 первого по важности критерия в области допустимых решений путем решения однокритериальной задачи Z1 (X) → max, X ∈ S. Затем, исходя из практических соображений и принятой точности, назначается величина допустимого отклонения ∆1 > 0 (экономически оправданной уступки) критерия Z1 , и далее находится максимальное * значение второго критерия Z 2 при условии, что значение первого критерия не должно отклоняться от своего максимального значения более, чем на величину допустимой уступки, т. е. решается задача: Z 2 (X ) → max, Z1 (X) ≥ Z1* − ∆1 , X ∈ S. Снова назначается величина уступки ∆ 2 > 0 по второму критерию, которая вместе с первой уступкой используется для нахождения условного максимума третьего частного критерия: Z3 (X) → max, Z1 (X ) ≥ Z1* − ∆1 , Z 2 (X) ≥ Z*2 − ∆ 2 , X ∈ S. Аналогичные процедуры повторяются до тех пор, пока не будет выявлено максимальное значение последнего по важности критерия Z m при условии, что значение каждого из первых m − 1 частных критериев отличается от соответствующего условного максимума не более чем на величину допустимой уступки по данному критерию. Полученное на последнем этапе решение считается оптимальным. 81 Пример 6.1. Решение задачи многокритериальной оптимизации последовательных уступок. Пусть задача трехкритериальной оптимизации имеет вид: методом Z1 = − x1 + 2 x 2 → max Z 2 = 2 x1 + x 2 → max Z3 = x 3 − 3x 2 → max x1 + x 2 ≤ 6 (6.3) 1 ≤ x1 ≤ 3 (6.6) (6.4) (6.5) 1≤ x2 ≤ 4 Заметим, что так как коэффициенты при одних и тех же переменных в данных частных критериях имеют разные знаки, то в заданной области допустимых решений невозможно одновременно улучшить все частные критерии, т. е. в рассматриваемом случае область компромиссов (область Парето) совпадает с grad Z1 областью допустимых решений (6.6). Для определенности будем считать, что допустимые уступки по первым двум критериям заданы: ∆1 = 3; ∆ 2 = 5 / 3 . Максимизируем функцию Z1 в области допустимых решений, т. е. решаем однокритериальную задачу (6.3), (6.6). Это несложно сделать рассмотренным ранее графическим методом решения задач линейного программирования (см. рис 6.1). x2 4 grad Z 1 −1 x2 A 4 10 3 3 3 B Q1 Q 2 2 1 1 1 2 Рис. 6.1 3 4 x1 grad Z 2 1 2 8 3 3 4 x1 Рис. 6.2 Максимум функции Z1 при условиях (9.6) достигается в точке A области S с координатами (1;4), так что в данном случае 82 x1* = 1; x *2 = 4; Z1* = Z1 (A ) = 7 . Переходим к максимизации функции Z 2 при условиях (6.6) и дополнительном ограничении, позволяющем учесть, что по критерию Z1 нельзя уступать более чем * на ∆1 . Так как в нашем примере Z1 − ∆1 = 4 , то дополнительное ограничение будет иметь вид: − x1 + 2 x 2 ≥ 4 (6.7) Задачу (6.4), (6.6), (6.7) также решаем графически (рис. 6.2). Получаем, что максимум функции Z 2 при условиях (6.6), (6.7) достигается в точке B части S1 области S , так что x1** = 8 / 3; x *2* = 10 / 3; Z*2 = Z 2 (B) = 26 / 3 . Теперь уступаем по критерию Z 2 на величину уступки ∆ 2 = 5 / 3 * ( Z 2 − ∆ 2 = 26 / 3 − 5 / 3 = 7 ) и получаем второе дополнительное ограничение: 2 x1 + x 2 ≥ 7 (6.8) Максимизируем функцию Z3 при условиях (6.6), (6.7) и (6.8). Решение этой задачи графическим методом представлено на рис. 6.3. x2 4 Q2 3 C 2 1 grad Z 3 1 2 3 4 x1 Рис. 6.3 Таким образом, получаем оптимальное решение рассматриваемой трехкритериальной задачи (точка С на рис. 6.3): x1*** = 2; x *2** = 3 Соответствующие значения частных критериев при этом составляют: Z1 = 4; Z 2 = 7; Z 3 = −7 . 83 6.2. Метод справедливого компромисса Справедливым компромиссом будем называть такой компромисс, при котором относительный уровень уменьшения величины одного или нескольких частных критериев не превосходит относительного уровня увеличения величины остальных частных критериев (меньше или равен) [1]. Положим, что ставится задача минимизации каждого из частных критериев оптимальности φ1 ( X ),φ2 ( X ),...,φs ( X ) в одной и той же области допустимых значений DX ∈ R n . Здесь φi ( X ) = − Z i ( X ), i = 1,..., m . Задачу многокритериальной оптимизации будем записывать в виде min Φ ( X ) = Φ ( X * ) , (6.9) X ∈DX где DX — множество допустимых значений вектора варьируемых параметров X. Для формализации понятия справедливого компромисса нам понадобится ввести отношение превосходства ► на множестве Парето (напомним, что множество Парето можно определить как множество, в котором значение любого из частных критериев оптимальности можно улучшить только за счет ухудшения других частных критериев – любое из решений, принадлежащее множеству Парето, не может быть улучшено одновременно по всем частным критериям) [1]. 1 * 2 * Пусть во множестве Парето задачи (6.9) даны две точки X ∈ DX , X ∈ DX и значения всех частных критериев оптимальности в них φk ( X ), φk ( X ), k ∈1; m . Введем меру относительного изменения (снижения – знак "минус" или повышения – знак "плюс") качества решения по каждому из этих критериев [1] 1 1 2 Zk ( X , X ) = ∆Z k ( X 1 , X 2 ) 2 , k = 1, m , (6.10) max Z k ( X ) { 1 X∈ X ,X 2 } где ∆φk ( X , X ) = φk ( X ) − φk ( X ) - абсолютные изменения значений частных критериев 1 2 1 2 оптимальности Z k ( X ), k = 1, m при переходе от решения X1 к решению X2. Вычислим максимальное снижение качества решения при переходе от решения X1 к решению X2 Zɶ min ( X 1 , X 2 ) = min Z k ( X 1 , X 2 ) . (6.11) k =1, m Аналогично вычислим максимальное повышение качества решения при переходе решения X к решению X2 1 φɶ max ( X 1 , X 2 ) = max φk ( X 1 , X 2 ) . (6.12) k =1, m Будем говорить, что решение X2 превосходит решение X1, и писать X2► X1, если φɶ max ( X 1 , X 2 ) > φɶ min ( X 1 , X 2 ) . 1 (6.13) 2 С другой стороны, будем говорить, что решение X превосходит решение X , если φɶ max ( X 1 , X 2 ) ≤ φɶ min ( X 1 , X 2 ) . (6.14) 84 * Выбор решений X ∈ DX будем производить с помощью полного перебора узлов сетки, покрывающей эффективное множество задачи (6.9). Поскольку метод справедливого компромисса использует относительные изменения частных критериев оптимальности, этот метод инвариантен к масштабу измерения частных критериев, т.е. не требуется их нормализация [1]. r Вопросы для самопроверки 1. 2. 3. 4. Что такое многокритериальная оптимизация Какое решение называют оптимальным по Парето? Какие методы используют для решения многокритериальных задач? В чем состоит суть метода последовательных уступок? 5. В чем состоит суть метода справедливого компромисса? 85 ТЕМА 7. МЕТОДЫ ОПТИМИЗАЦИИ ФУНКЦИЙ 7.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ Математическое программирование в самом общем виде можно определить как n задачу оптимизации с ограничениями в пространстве R : min f ( x ), gk ( x ) ≥ 0, k = 1,..., K (7.1) l j ( x ) = 0, j = 1,..., J x ∈ D ⊂ Rn Вектор x ∈ D имеет компоненты x1 , x2 ,...., xn , которые являются неизвестными задачи (7.1). Функции f ( x ) называется целевой функцией (ЦФ) (функцией качества, критерием оптимальности), а множество условий gk ( x ), l j ( x ), x ∈ D – ограничениями задачи. В качестве D часто выступает выпуклое множество. Выпуклым множеством D ⊂ R 1 n называют такое множество, которое вместе с 2 любыми двумя (соседними) точками x и x и произвольного числа µ ∈ [0, 1] содержит и точку x ∈ D x = µ ⋅ x1 + (1 − µ ) ⋅ x 2 - отрезок при µ ∈ [0, 1] , т.е. выпуклое множество должно содержать отрезок, соединяющий любые две точки такого множества. Примеры: куб, квадрат, круг, шар и др. Решением задачи (1.1) называют любой вектор x , удовлетворяющий ограничениям. Локальным экстремумом ЦФ f ( x ) называют вектор x , если имеет место неравенство f ( x) ≤ f ( x) , { x : x − x < ε , ε > 0 } Оптимальным решением или глобальным экстремумом задачи (7.1) называют вектор x * , минимизирующий значение f ( x ) на множестве всех решений: f ( x*) ≤ f ( x ) для всех x ∈ D . Задача максимизации функции сводится к задаче поиска минимума функции F ( x) = − f ( x) . Замечание: всякая точка глобального минимума ЦФ f ( x ) является одновременно и точкой локального минимума этой функции. Обратное утверждение, вообще говоря, не верно. Точность. Характеристикой точности полученного решения может служить величина абсолютного отклонения значения минимизируемой функции, достигнутого в n точке x ∈ D , от точного значения ее минимума на множестве D : ∆( x) = f ( x n ) − f ( x* ) , x n , x* ∈ D . (7.2) 86 Ясно, что чем меньше неотрицательная величина δ , тем точнее полученное решение. Недостатком использования абсолютной погрешности является то обстоятельство, что она меняется при умножении ЦФ на положительную константу α: f ( x ) → α ⋅ f ( x ) . Целесообразнее использовать следующую оценку точности: f ( x n ) − f ( x* ) f ( x* ) = δ, (7.3) где f ( x*) – либо точное значение минимума ЦФ, либо полученное "точным" алгоритмом. Алгоритм называется "ε–приближенным", если выполняется неравенство c ≤ ε. Унимодальные функции. Многие методы оптимизации применимы только тогда, когда целевая функция f ( x ) является унимодальной, т. е. любой локальный минимум ЦФ одновременно является и глобальным. Множество функций, унимодальных на отрезке [a , b] , обозначим Q[a , b] . Определение. Функция f ( x ) называется унимодальной на отрезке [a, b], если она непрерывна на [a , b] и существуют числа x1 и x 2 , удовлетворяющие условию a ≤ x1 ≤ x 2 ≤ b , такие, что: 1 1) на отрезке [ a, x ] функция f ( x ) монотонно убывает; 2 2) отрезке [ x , b] функция f ( x ) монотонно возрастает; 1 2 3) при x ∈ [ x , x ] имеем f ( x*) = f ∗ = min f ( x) . [ a ,b ] Отметим, что возможно вырождение в точку одного или двух из отрезков [a, x1 ] , [ x1 , x 2 ] и [ x 2 , b] . Некоторые варианты расположения и вырождения в точку отрезков монотонности и постоянства унимодальных функций представлены на нижеприведенных рисунках. x1 = x2 x1 = x 2 = b a a 1 x 2 x a b a = x1 = x 2 Рис. 7.1. Примеры унимодальных функций b b 87 Очевидно, что в некоторых вырожденных случаях ЦФ f ( x) не является дифференцируемой на отрезке [a , b] . Для проверки унимодальности функции f ( x ) на практике обычно используют следующие критерии: – если функция f(x) дифференцируема на отрезке [a , b] и производная f ′( x ) не убывает на этом отрезке, то f ( x ) ∈ Q[a , b] ; – если функция f ( x ) дважды дифференцируема на отрезке [a , b] и вторая производная f ′′( x ) ≥ 0 при x ∈ [a , b] , то f ( x ) ∈ Q[a , b] . Если эти критерии не выполняются, то функция f ( x ) является мультимодальной или многоэкстремальной. Выпуклые функции. Функция f ( x ) выпукла ("вниз") на [a , b] , если справедливо неравенство Иенссена: f [µ x1 + (1 − µ) x 2 ] ≤ µ f ( x1 ) + (1 − µ) f ( x 2 ) , 1 2 для произвольных x , x ∈ [a , b] и µ ∈ [0,1] . Геометрически это означает, что все точки функции f ( x ) для всех x ∈ [a , b] 1 2 лежат ниже прямой µ f ( x ) + (1 − µ) f ( x ) . На практике обычно используют следующие критерии: одномерный случай: 1) дважды дифференцируемая функция f ( x) выпукла на [a , b] , если вторая производная f ′′( x ) ≥ 0 при всех x ∈ [a , b] ; многомерный случай (критерий Сильвестра): 2) если функция f ( x) дважды дифференцируема на выпуклом множестве D ⊂ R n и все угловые миноры матрицы Гессе – матрицы вторых производных H f ( x ) = (∂ 2 f / ∂xi ∂x j ) – положительны при x ∈ D , то функция f ( x) выпукла на множестве D. Квадратичные функции. Во многих задачах оптимизации рассматриваются функции вида: n n n f ( x) = ∑ ∑ xi a ij x j + ∑ b j x j + c i =1 j =1 j =1 или в матричном виде: f ( x) = 1 T x Ax + b T x + c , 2 (7.4) где x и b есть векторы – столбцы размерности n ; A – симметричная матрица ( n × n ); c – константа. Градиент и матрица Гессе функции (4) равны соответственно grad f ( x ) = Ax + b, H f ( x ) = A = (aij ) . Таким образом, для того чтобы функция (1.4) была выпуклой в Rn, достаточно, чтобы матрица А была положительно определена. Критерии определенности матрицы (теорема Сильвестра). Положительная определенность: − все диагональные элементы матрицы должны быть положительны; 88 − все ведущие главные определители должны быть положительны. Положительная полуопределенность: − все диагональные элементы неотрицательны; − все главные определители неотрицательны. Главный определитель – это определитель главного минора. Для положительной определенности квадратичной формы – матрицы А – необходимо и достаточно, чтобы все угловые миноры матрицы А были положительны, т. е. ∆1 = a11 > 0, ∆ 2 = a11 a 21 a12 > 0, …, ∆ n = | A | > 0. a 22 n Стационарной точкой функции f ( x ) , где x ∈ R , называется такая точка x*, в которой градиент функции обращается в нуль: grad f ( x ) * = 0. x= x Если стационарная точка не соответствует локальному экстремуму, то она является седловой точкой. 7.2. Классификация задач оптимизации Значительный интерес представляет деление задач оптимизации по виду целевой функции и ограничений, поскольку специфические особенности тех или иных задач играют важную роль при разработке методов их решений. Задача безусловной оптимизации с одной переменной. min f ( x ), x ∈ R1 . (7.5) Задача безусловной оптимизации функции многих переменных. min f ( x ), x ∈ Rn . (7.6) Задача оптимизации с ограничениями (условная оптимизация). min f ( x ), gk ( x ) ≥ 0, k = 1,..., K (7.7) l j ( x ) = 0, j = 1,..., J xiL < xi < xiM , i = 1, n; т.е. компоненты вектора x ограничены сверху и снизу. Задача условной оптимизации с линейными ограничениями. Функции– ограничения gk ( x ), l j ( x ) в задаче (7.7) являются линейными, а целевая функция может быть либо линейной, либо нелинейной. Задача линейного программирования (ЛП). n f ( x ) = ∑ c j x j → min , j =1 n ∑ dij x j ≤ zi , (7.8) i = 1, m; x j ≥ 0, j =1 т.е. и целевая функция, и ограничения являются линейными функциями переменных x j . 89 Задача целочисленного программирования. В задаче ЛП (7.8) компоненты вектора х принимают только целые значения. Задача нелинейного программирования с линейными ограничениями. Целевая функция f(x) – нелинейная, а все ограничения – линейные функции. Оптимизационные задачи такого рода можно классифицировать на основе структурных особенностей нелинейных целевых функций. Задача квадратичного программирования. Найти минимум f(x), где целевая функция f(x) является квадратичной. f ( x) = 1 T x Ax + bT x + c, 2 n ∑ dij x j ≤ zi , (7.9) i = 1, m; x j ≤ 0, j = 1, n. j =1 Задача дробно–линейного программирования. Целевая функция есть отношение линейных функций: n ∑ c j x j + c0 j =1 f ( x) = → min . (7.10) n ∑ d j x j + d0 j =1 7.3. Необходимые и достаточные условия существования экстремума 1 7.3.1 СКАЛЯРНЫЙ СЛУЧАЙ x ∈ R * Если в точке x первые ( n − 1 ) производные функции f ( x ) обращаются в нуль, а производная порядка n отлична от нуля, т.е. f ( n ) = d ( n ) f ( x ) / dx n |x = x* ≠ 0 , то: * 1) если n – нечетное, то x – точка перегиба; * 2) если n – четное, то x – локальный экстремум; причем, если − f ( n ) ( x ) > 0 , то x* - точка локального минимума; − f ( n ) ( x ) < 0 , то x* - точка локального максимума. Примечание. При поиске глобального минимума функции f ( x ) , заданной на отрезке [a, b], необходимо найти все точки локальных минимумов, вычислить в них значения функции, а также вычислить значения функции на границах отрезка f ( a ) и f (b) и выбрать среди этих значений наименьшее. 7.3.2 ВЕКТОРНЫЙ СЛУЧАЙ * Функция f ( x ) имеет в точке x локальный минимум, если выполняется равенство gradf ( x* ) = 0 , т. е. x* - стационарная точка, и матрица Гессе 90 H f ( x* ) положительно определена. Для выпуклых функций найденный локальный минимум будет являться одновременно и глобальным. 7.3.3 МИНИМИЗАЦИЯ ПРИ ОГРАНИЧЕНИЯХ Рассматривается задача: f ( x) → min , g k ( x) ≤ 0 , k = 1,m , (7.11) x ∈ D ≡ R n. Обозначим L( x, λ ) функцию Лагранжа L( x, λ) = f ( x) + m ∑λk g k ( x) , (7.12) k =1 где λ k – неопределенные множители Лагранжа. Здесь все функции f , gk , L предполагаются непрерывно дифференцируемыми. Точка x * будет глобальным экстремумом задачи (7.12), если в точке x * * выполняются условия Куна-Таккера: существует такое λ ≥ 0 , что gradL( x, λ* ) = 0 ; λ*k g k ( x ) = 0 ; k = 1, m . * * Пара векторов ( x , λ ) образует седловую точку функции Лагранжа, если при всех x ∈ D и λ ≥ 0 выполняется неравенство: L ( x * , λ ) ≤ L ( x * , λ* ) ≤ L ( x , λ * ) . * Таким образом, точка x является точкой глобального минимума задачи (7.12), * * если пара векторов ( x , λ ) является седловой точкой функции L( x, λ ) . 7.4. Критерии останова Приведем несколько наиболее распространенных оптимизационных методов ( ε – заданная точность): k +1 − x k ≤ ε ; 2) f ( x k +1 ) − f ( x k ) ≤ ε ; 1) ∆x = x ∂f 4) max ≤ ε ; 5) gradf ( x ) 1≤i ≤ n ∂xi 2 критериев 3) останова ∆x ≤ ε ; 2 n  ∂f  = ∑  ≤ ε; ∂ x i =1  i  1/ 2 2 n    f ∂ 6) gradf ( x ) =  ∑     i =1  ∂xi     ≤ ε; 7) xk − xk /2 ≤ ε , где k – четное число (данный критерий используется в методах штрафных и барьерных функций). * При выполнении неравенств полагают: x ≈ x k и f * ≈ f ( xk ) . 91 7.5. Характеристики алгоритмов оптимизации Прежде чем приступить к решению конкретной задачи оптимизации (ЗО), следует выяснить вопрос, какому из методов оптимизации отдать предпочтение в данном случае. Для этого необходимо уметь сравнивать методы, например, на определенных классах задач. Очень важна роль априорных характеристик методов: трудоемкость вычислений, скорость сходимости, устойчивость метода к ошибкам в вычислениях, чувствительность метода к значениям параметров алгоритма и ряд других. Сходимость алгоритма является наиболее важным вопросом оптимизации. Большинство методов решения ЗО имеют итерационную природу: {xk } , т. е. исходя из некоторой начальной точки x0 , они порождают последовательность {x0 , x1 ,..., xk ,...} на основе алгоритма A, сходящуюся к точке экстремума x* . Глобальная сходимость. Алгоритм A обладает свойством глобальной сходимости, если для любой начальной точки x0 , последовательность {xk } , определяемая выражением xk +1 = A( xk ) , сходится к точке, удовлетворяющей необходимым условиям оптимальности. Данное свойство отражает надежность работы алгоритма. Асимптотическая сходимость и скорость сходимости. С практической точки зрения эффективность алгоритма зависит от числа итераций, необходимых для получения * приближенного решения x с заданной точностью ε . Для получения критерия с некоторым абсолютным значением необходимо прибегнуть к другому типу анализа, взяв за объект исследования асимптотическую сходимость – поведение последовательности точек {xk } в окрестности предельной * точки x . Это значит, что каждому алгоритму приписывается индекс эффективности – скорость сходимости. * Предположим, что последовательность {xk } сходится к точке x . Обозначим x n евклидову норму в пространстве R . Линейная сходимость. Выполняется неравенство: x k +1 − x* lim sup = α <1 , * k →∞ xk − x где α - коэффициент сходимости. Суперлинейная сходимость: x k +1 − x* lim sup k →∞ x k − x* → 0. (7.13) (7.14) Сходимость порядка p . Если существует такое число p > 1 (2,3…), что lim sup k →∞ xk +1 − x* * p xk − x < c < ∞, где c – константа, значит, имеем сходимость порядка p ; p = 2 – квадратичная сходимость; p = 3 – кубическая сходимость; (7.15) 92 p = n – сходимость порядка n. Исследование скорости сходимости алгоритма позволяет оценить его эффективность и осуществить его сравнение с другими алгоритмами. Замечание. Иногда к выражению скорости сходимости последовательности {xk } * приходят и при исследовании способа сходимости последовательности f ( xk ) к f ( x ) . Для оценки эффективности выбранных методов можно рекомендовать три характеристики: время, затраченное на получение решения; точность решения; чувствительность к изменению параметра сходимости. Для одномерных методов оптимизации первые две характеристики можно исследовать на типовых тестовых функциях, например, f ( x ) = sin k ( x ) , 0 ≤ x ≥ 2 π путем варьирования значений показателя степени k на множестве нечетных чисел от 1 до * 79. Отметим, что для всех k min f ( x ) достигается в точке x = 3π / 2 = 4,71239, при * этом f ( x ) = -1,0. Однако с увеличением k степень гладкости функции, которая обладает * узкими впадинами в окрестности x , уменьшается. Проверку методов на чувствительность можно осуществить путем варьирования значений параметра сходимости k и параметров алгоритма. Точность решения можно измерить как относительную (в процентах) ошибку оценивания координаты истинного минимума. Вопросы для самопроверки 1. Запишите задачу оптимизации (ЗО) общего вида, укажите целевую функцию (ЦФ); ограничения. 2. Что понимают под оптимальным решением ЗО? Как определить точность. 3. Локальный и глобальный экстремум функции. 4. Классификация ЗО по виду ЦФ и ограничений. 5. Унимодальные функции (УФ). Критерии для проверки унимодальности. 6. Выпуклые множества. Критерий проверки выпуклости множества. 7. Выпуклые функции. Критерии проверки выпуклости функции. 8. Квадратичные функции (КФ). Критерии определенности КФ (теорема Сильвестра). Градиент и матрица Гессе КФ. 9. Необходимые и достаточные условия (Н и ДУ) существования экстремума скалярный случай. Что такое "точка перегиба " и как ее идентифицировать? 10. Необходимые и достаточные условия существования экстремума многомерной функции. 11. Необходимые и достаточные условия существования экстремума функции при ограничениях. 12. Критерии завершения итерационных процедур поиска экстремума функций. 13. Понятие сходимости алгоритма. 14. Характеристики оценки эффективности методом поиска минимума функций. 93 Тема 8. Методы поиска экстремумов функции одной переменной Задача оптимизации функций одной переменной относится к наиболее простому классу оптимизационных задач. Тем не менее, анализ задач такого типа занимает центральное место в оптимизационных исследованиях. Такие задачи обычно решаются в инженерной практике. Вместе с тем, одномерные методы оптимизации часто используются для анализа подзадач, которые возникают при решении многомерных задач оптимизации. Существует большое число методов решения задач с одной переменной. 8.1 Прямые методы оптимизации Большую группу приближенных методов минимизации составляют прямые методы, основанные на вычислении только значений минимизируемой функции в некоторых точках и не использующие значений ее производной. К данному классу относятся такие методы, как метод равномерного поиска, метод дихотомии, метод золотого сечения, метод Фибоначчи (псевдоним Леонарда Пизанского, первым изучившего эту последовательность в 1202 году). 8.1.1 Метод равномерного поиска (МРП) * Пусть f ( x ) ∈ Q[ a, b] и требуется найти какую-либо из точек минимума x на [a, b] с абсолютной погрешностью ε > 0 . Разобьем [a, b] на n равных частей точками b−a b−a , где n = . Найдем точку xm , для которой n ε f ( xm ) = min f ( xi ) (8.1) xi = a + i ⋅ h, i = 0,1,..., n; h = 0≤i ≤ n * * и полагаем x ≈ xm , f ≈ f ( xm ) . 8.1.2 Метод деления отрезка пополам (МДОП) * * Пусть задана f ( x ) ∈ Q[ a, b] . Надо найти x и f . Пусть * точность определения точки x . Выбрав ε > 0 – требуемая δ ∈ (0, ε ) (здесь δ – параметр метода) (n) (n) построим последовательность {an }, {bn }, {x1 }, {x2 }, n = 1,... , используя рекуррентные формулы: a0 = a; b0 = b;  ( n−1)  x1 = (an−1 + bn−1 − 2δ ) / 2;  ( n−1)  x2 = (an−1 + bn−1 + 2δ ) / 2;  ( n −1) если f ( x1( n−1) ) ≤ f ( x2( n−1) ); an = an−1 , bn = x2 a = x ( n−1) , b = b если f ( x ( n−1) ) > f ( x ( n−1) ). n n −1 1 2  n 1 * * За точку x принимаем x = ( an + bn ) / 2 , погрешность равна Условие завершение процесса (8.2) εn = ε n ≤ ε . Обычно берут δ = ε / 2 . (bn − an ) . 2 94 8.1.3 Метод Фибоначчи (МФ) Этот метод основан на использовании чисел Фибоначчи Fn , задаваемых рекуррентной формулой Fn = Fn −1 + Fn −2 ( n ≥ 2), F0 = 1, F1 = 1 . Шаг 1. Задаем точность ε . По таблице проверяем условие ∆n = ∆0 ≤ ε ; ∆ 0 = (b − a ) Fn (8.3) и определяем число n . В таблице 8.1 приведены числа Фибоначчи Fn . Таблица 8.1 n 1 2 3 4 5 6 7 8 9 10 Fn 1 2 3 5 8 13 21 34 55 89 n Fn 11 144 12 233 13 377 14 610 15 987 16 1597 17 2584 18 4181 19 6765 20 10946 Шаг 2. Определяем точку d 0 из условия ∆0 F = n , n = 4,5,6,... ∆1 Fn−1 d 0 = a0 + ∆1 . (8.4) Шаг 3. Определяем точку c0 так, чтобы она была симметрична d 0 относительно середины интервала ∆ 0 , т.е. d 0 − a0 = b0 − c0 , откуда c0 = b0 + a0 − d 0 . Шаг 4. Вычисляем значение функции в точках ( a0 , b0c0 , d 0 ) . Сравниваем значения функции, возможны ситуации: 1a ) f (a0 ) ≥ f (c0 ) ≤ f (d 0 ) ≤ f (b0 ), 1b) f (a0 ) ≤ f (c0 ) ≤ f (d 0 ) ≤ f (b0 ); 2a ) f (a0 ) ≥ f (c0 ) ≥ f (d 0 ) ≤ f (b0 ), (8.5) 2b) f (a0 ) ≥ f (c0 ) ≥ f (d 0 ) ≥ f (b0 ) Шаг 5. Определяем новый (приведенный) интервал. : Ситуация 1) a1 = a0 ; b1 = d 0 ; d1 = c0 ; x1 = d1 . Точка c1 находится из условия b1 − c1 = d1 − a1 , откуда c1 = b1 + a1 − d1 . Ситуация 2) a1 = c0 ; b1 = b0 ; c1 = d 0 ; x1 = c1 Точка d1 находится из условия b1 − c1 = d1 − a1 , откуда (8.6) 95 d1 = b1 + a1 − c1 (8.7) * Итерируем до тех пор, пока не достигнем значения i = n . Полагаем x ≈ xn Скорость сходимости линейная с коэффициентом α= Fn 1 → = 0,618 γ Fn−1 8.1.4 Метод золотого сечения (МЗС) Идея метода золотого сечения такая же, как и идея метода Фибоначчи. Отличие состоит в том, что здесь не надо заранее задавать n , чтобы производить поиск точек d 0 и c0 . Длины последовательных интервалов в МЗС берутся в фиксированном отношении: ∆ 0 ∆1 ∆ = = ... = n−1 = γ , ∆ 0 = b − a , ∆1 ∆ 2 ∆n где (8.8) 5 +1 ≈ 1,618 – золотое сечение. Заметим, что в методе Фибоначчи 2 F F = n−1 ; lim n−1 = γ . n→∞ F Fn n γ= ∆ n−1 ∆n Шаг 1. ∆0 ∆ =γ и 1 =γ ∆1 ∆2 c0 = a0 + ∆ 2 , d 0 = a0 + ∆1 . Определяем c0 и d 0 из условий: (8.9) Шаг 2. Вычисляем значение функции в точках ( a0 , b0c0 , d 0 ) . Сравниваем значения функции, возможны ситуации: 1) f (a0 ) ≥ f (c0 ) ≤ f (d 0 ) ≤ f (b0 ), 2) f (a0 ) ≥ f (c0 ) ≥ f (d 0 ) ≤ f (b0 ). Шаг 3. Определяем новый (приведенный) интервал: Ситуация 1) a1 = a0 ; b1 = d 0 ; d1 = c0 ; x1 = d1 . ∆2 = γ , откуда ∆3 c1 = a0 + ∆ 3 . Точка c1 находится из условия (8.10) Ситуация 2) a1 = c0 ; b1 = b0 ; c1 = d 0 ; x1 = c1 Точка d1 находится из соотношения d1 = b0 − ∆ 3 Шаг 4. Продолжаем процесс, пока не достигнем заданной точности (8.11) 96 n 1 ∆n = ∆0   ≤ ε . γ  (8.12) n 1 1 1 На самом деле, погрешность будет равна ∆ n = ⋅ ∆ 0   ≤ ε 2 2 γ  8.2 Сравнение прямых методов оптимизации Проведем сравнение относительных эффективностей прямых методов поиска экстремума функций одной переменной. Обозначим длину исходного интервала неопределенности через ∆ 0 = b − a ; ∆ n – n -вычислений функции; FR (n) = длина полученного интервала в результате ∆n – ∆0 относительное уменьшение первоначального интервала; FR ( n ) – показатель эффективности. В табл. 8.2 приведены значения показателей эффективности методов прямого поиска. Таблица 8.2 Сравнение прямых методов оптимизации функции одной переменной Метод прямого поиска Показатель эффективности FR ( n ) Метод равномерного поиска Метод деления отрезка пополам ( n – четное, величиной δ пренебрегаем) Метод Фибоначчи Метод золотого сечения Гарантированная погрешности 2 n +1 1 2n / 2 ∆0 n +1 1 ∆0 ⋅ 2 2n / 2 2 Fn+1 ∆0 Fn+1 1 γ    n −1 ∆0 2 1 ⋅  γ  оценка n −1 Как видно из таблицы, метод равномерного поиска является самым трудоемким, метод Фибоначчи и метод золотого сечения по эффективности практически совпадают. С другой стороны, можно также сравнивать количество вычислений значений функций, требуемых для достижения заданной точности ε . Если величина интервала ∆ 0 = (b − a ) задана, то значение n вычисляется по следующим формулам: для МРП: n = ∆0 ε −1. для метода деления отрезка пополам: n = −1 для МФ: n = Fn +1 ( ∆ 0 / ε ) − 1 ; 2ln ( ∆ 0 / 2ε ) ; ln 2 97 для МЗС: n = 1 + ln ( ∆ 0 / 2ε ) ; ln γ В табл. 8.3 приведено количество вычислений функции f для достижения заданной точности ε . Таблица 8.3 . Количество вычислений функции Метод прямого поиска Число вычислений n при заданном ε , равном Метод равномерного поиска Метод деления отрезка – четное, пополам (n величиной δ пренебрегаем) Метод Фибоначчи Метод золотого сечения 10−1 10−2 10−3 10−4 10−5 9 6 99 12 999 18 9999 26 99999 32 5 5 10 10 15 15 19 20 24 24 Видно, что метод деления отрезка пополам и два последних метода (МФ и МЗС) практически совпадают по количеству вычислений функции. 8.3 Полиномиальная аппроксимация и методы точечного оценивания Применение методов исключения интервалов требует унимодальности целевой функции и основано на простом сравнении значений функции в двух пробных точках. Рассмотрим более эффективные методы, чем методы исключения интервалов. Но выигрыш в эффективности достигается ценой введения дополнительного требования – исследуемые функции должны быть гладкими. Основная идея рассматриваемых ниже методов связана с возможностью аппроксимации гладкой функции полиномом и последующего использования этого полинома для оценивания координаты точки экстремума. Необходимые условия эффективной реализации такого подхода – унимодальность и непрерывность исследуемой функции. Согласно теореме Вейерштрасса об аппроксимации, если функция непрерывна на некотором интервале, то ее с любой степенью точности можно аппроксимировать полиномом высокого порядка. Координату точки экстремума функции можно оценить путем вычисления координаты точки экстремума полинома. Точность оценки точки экстремума можно повысить двумя способами: − использование полинома более высокого порядка; − уменьшение интервала аппроксимации. Второй способ более прост и экономичен, если функция унимодальная. 8.3.1 Квадратичная аппроксимация Простейший вариант полиномиальной аппроксимации основан на факте, что функция f ( x ) имеет экстремум во внутренней точке интервала и должна быть по крайней мере квадратичной. Линейная функция достигает экстремума в двух граничных точках интервала. Если задана последовательность точек x1 , x 2 , x 3 и известны соответствующие этим последовательностям значения функции f1 , f 2 , f 3 , то можно определить константы a 0 , a1 , a 2 таким образом, что значения квадратичной функции: q ( x) = a 0 + a1 ( x − x1 ) + a 2 ( x − x1 )( x − x 2 ) 98 совпадут со значениями функции в трех указанных точках. Перейдем к вычислению q ( x) в точках x1 , x 2 , x3 . f1 = f ( x1 ) = q ( x1 ) = a 0 , имеем a 0 = f1 . Далее, поскольку f 2 = f ( x2 ) = q ( x2 ) = f1 + a1 ( x2 − x1 ) , получаем f − f1 a1 = 2 x 2 − x1 Наконец, при x = x 3 имеем: f 3 = f ( x3 ) = q ( x3 ) = f1 + [( f 2 − f1 ) ( x2 − x1 )]( x3 − x1 ) + Т.к. . + a 2 ( x3 − x1 )( x3 − x 2 ). Разрешая последнее уравнение относительно a2 , получим: a2 = 1 x3 − x 2  f 3 − f1 f 2 − f1   .  − x x x x − − 1 2 1  3 Таким образом, по трем заданным точкам и соответствующим значениям функции можно оценить параметры a0 , a1, a2 аппроксимирующего квадратичного полинома. Если точность аппроксимации исследуемой функции высока на интервале от x1 до x3 , то построенный полином можно использовать для оценивания координаты точки экстремума. В данном случае из уравнения dq = a1 + a2 ( x − x2 ) + a 2 ( x − x1 ) = 0 dx можно получить стационарную точку: x= x2 + x1 a1 − . 2 2a 2 (8.9) f ( x) и аппроксимирующий полином являются унимодальными на рассматриваемом интервале, то x является приемлемой оценкой координаты точки * истинного экстремума x . Так как Пример 8.1: Оценить координаты минимума функции f ( x) = 2 x2 + Пусть x1 = 1, x3 = 5, x2 = 16 ; x 1+ 5 = 3. 2 Вычислим соответствующие значения функции: Далее находим параметры a0 = 18; a1 = x ∈ [1;5] . f1 = 18; f 2 = 70 = 23,33; f 3 = 52,3. 3 a0 , a1 , a2 . Имеем: 23,33 − 18 8 1  53, 2 − 18 8  46 . = ; a2 = − = 3 −1 3 5 − 3  5 − 1 3  15 Подставляя эти значения в выражение (2.1), получим: 3 + 1 8  46  x= − ⋅2⋅  2 3  15  Точный минимум достигается при x* = 1, 5874 . −1 = 1,565 . 99 8.3.1 Метод Пауэлла Этот метод основан на последовательном применении процедуры оценивания с использованием квадратичной аппроксимации. Схема алгоритма Пауэлла: пусть x1 - начальная точка; ∆x - выбранная величина шага по оси x . Шаг 1: Вычислить x2 = x1 + ∆x . Шаг 2: Вычислить f ( x1) и f ( x2 ) . f ( x1) > f ( x2 ) , положить x3 = x1 + 2∆x , если f ( x1) ≤ f ( x2 ) , то x3 = x1 − ∆x . Если x3 < x1 , то перенумеровать точки в естественном порядке: x1 = x3 , x2 = x1 , x3 = x2 . Шаг 4: Вычислить f ( x3 ) и найти Fmin = min{ f1, f 2 , f3} . X min равно точке x i , которая соответствует Fmin . Шаг 3: Если Шаг 5: По трем точкам x1, x2 , x3 вычислить x , используя формулу (2.1), т.е. используя квадратичную аппроксимацию. Шаг 6: Проверка на окончание поиска: а) является ли разность Fmin − f ( x ) ≤ ε ; б) является ли разность X min − x ≤ δ , где ε > 0 и δ > 0 - заданные точности. Если условия а) и б) выполняются одновременно, то закончить поиск. Иначе переход на Шаг 7. Шаг 7: Выбрать "наилучшую" точку ( X min или x ) и две точки по обе стороны от нее. Обозначить эти точки в естественном порядке и перейти на Шаг 2. Замечание: после пятого шага необходимо провести дополнительную проверку, т.к. точка x может находиться за точкой x3 . В этом случае точка x заменяется точкой, координата которой вычисляется c учетом заранее установленной длины шага. 2 Пример 8.2: Найти min f ( x) = 2 x + 16 . x Пусть начальная точка x1 = 1 и длина шага ∆x = 1 . Критерии останова: X min − x ≤ 3 ⋅ 10−2 ; x Fmin − f ( x ) ≤ 3 ⋅ 10−3. f ( x) Замечание. Оба критерия должны выполняться одновременно. Итерация 1: Шаг 1: x2 = x1 + ∆x = 2; Шаг 2: f ( x1 ) = 18 ; f ( x2 ) = 16 ; Шаг 3: f ( x1 ) > f ( x2 ) , следовательно x3 = 1 + 2 = 3 ; Шаг 4: f ( x3 ) = 23, 33; Fmin = 16 ; X min = x2 . Шаг 5: 100 a1 = 16 − 18 1  23, 33 − 18  5,33 = −2; a2 = ⋅ − ( −2)  = + 2 = 4,665. 2 −1 3 − 2  3 −1 2  В соответствии с (2.1) вычислим x= x: 1+ 2 (−2) 1 = 1,5 + = 1,714 ; f ( x) = 15,210 . − 2 2 ⋅ 4,665 4,665 Шаг 6: Проверка на окончание поиска: а) 16 − 15,210 = 0,0519 > 0,003 . Критерий останова не выполняется, 15,210 следовательно поиск продолжается. Переход на Шаг 7. Шаг 7: Выбираем x как "наилучшую" точку, а x1 = 1, x 2 = 2 – как точки, которые ее окружают. Обозначим эти точки в естественном порядке и переходим к Шагу 2. Итерация 2: Шаг 4: x1 = 1, f1 = 18; x 2 = 1,714, f 2 = 15,210 = Fmin; X min = x 2 = 1,714; x3 = 2; f 3 = 16 . Шаг 5: a1 = 15,210 − 18 = −3,908 ; 1,714 − 1 1  1,908 16 − 18 = 6,671; ⋅ − (−3, 908) = 2 − 1,714  2 − 1  0,286 2,714 (−3,908) x= = 1,357 + 0,293 = 1,650 ; f ( x) = 15,142 . − 2 2 ⋅ 6,671 15,210 − 15,142 = 0,0045 > 0,003 . Шаг 6: Проверка на окончание поиска: а) 15,142 a2 = Второй критерий останова не выполняется. Переход на Шаг 7. Шаг 7: Выбираем x как "наилучшую" точку, а x1 = 1, x 2 = 1,714 – как точки, которые ее окружают. Обозначим эти точки в естественном порядке и переходим к Шагу 2. Итерация 3: Шаг 4: x1 = 1; f1 = 18; x2 = 1,65; f 2 = 15,142 = Fmin ; X min = x2 = 1,65; x3 = 1,714; f 3 = 15, 210. Шаг 5: a1 = 15,142 − 18 = − 4,397; 1,65 − 1 a2 = 1  15,210 − 18 ⋅ − (−4,397) = 7,647 ; 1,714 − 1,650  1,714 − 1  x= 2,65 (−4,397) = 1,6125; − 2 2 ⋅ 7,647 f ( x) = 15,123. Шаг 6: Проверка на окончание поиска: 101 а) 1,65 − 1,6125 15,142 − 15,123 = 0,023 < 0,03. = 0,0013 < 0,003; б) 1,6125 15,123 Оба критерия останова выполняются, следовательно, поиск закончен. * Ответ: x = 1,6125 ; (точное решение x = 1,5874 ). 8.4 Методы с использованием производных Рассмотренные выше методы поиска основаны на предположениях об унимодальности и, в ряде случаев, о непрерывности исследуемой целевой функции. Если в дополнение к условию непрерывности ввести требование дифференцируемости, то эффективность поисковых процедур можно существенно повысить. Напомним, что необходимым условием существования локального минимума * * функции в некоторой точке x является требование стационарности точки x , т.е. df f '(x * ) = = 0. dx x = x * Рассматриваемые ниже методы поиска экстремумов функций основаны на методах решения нелинейных уравнений с одной переменной. 8.4.1 Метод Ньютона-Рафсона Если f ( x) содержит члены, содержащие x в третьей и более высоких степенях, то непосредственное получение аналитического решения уравнения f ′( x ) = 0 может оказаться затруднительным. В таких случаях используются приближенные методы последовательного поиска стационарной точки f ( x) . Классическая поисковая схема разработана Ньютоном и позднее уточнена Рафсоном (МНР). Итерационная формула имеет вид: xn +1 = xn − f ′( xn ) . f ′′( xn ) (8.10) Она легко получается, если разложить функцию f ′( x ) в ряд Тейлора и ограничиться линейным приближением: f ′( xn ) ≈ f ′( xn ) + f ′′( xn )( xn+1 − xn ) = 0. Геометрическая интерпретация приведена на рис. 8.1. Здесь начальной точкой является * точка xn , а искомым экстремумом исследуемой функции точка x . f '(x) f '(xn+1) f '(xn+2) xn x * x xn+2 xn+1 102 Рис. 8.1. Сходимость МНР f '(x) x x* xn xn+1 xn+2 Рис. 8.2. Отсутствие сходимости МНР Начальное приближение в МНР следует выбирать вблизи глобального экстремума, в противном случае метод будет расходящимся (рис. 8.2) 8.4.2 Метод средней точки (поиск Больцано) Пусть f ( x ) ∈ Q[a, b] , т.е. функция унимодальна и дифференцируема на отрезке [a, b] . Для нахождения корня уравнения f ′( x ) = 0 можно воспользоваться эффективным алгоритмом исключения интервалов, на каждой итерации которого рассматривается лишь одна пробная точка. * Если в точке z значение функции f ′( z ) < 0 , то точка x не может быть левее точки z . В этом случае исключается интервал [a , z ] . f(x) f '(z) < 0 a z x* b Рис. 8.3а. Поиск Больцано. Исключается интервал [a , z ] . 103 f ′( z ) > 0 , то минимум x* не может быть расположен правее z . Исключается интервал [ z, b] . Если в точке z f(x) f '(z) > 0 a x* z b Рис. 8.3б. Поиск Больцано. Исключается интервал [ z, b] . Определим две точки L и R таким образом, что f ′( L ) < 0 и f ′( R ) > 0 . Стационарная точка x ∈ [ L, R ] . Вычислим координату средней точки z = ( L + R ) / 2 и найдем f ′( z ) . Если  f ' (z) > 0,  '  f (z) < 0, то исключим [ z,R]; то исключим [ L,z]. Формализованное описание алгоритма. Пусть задана функция задана точность ε . Шаг 1: Положить L = a , R = b при этом f ′( a ) < 0; f ′(b) > 0 . (8.11) f ( x) , x ∈ [ a, b] и R+L ; f ′( z ) . 2 Шаг 3: Если f ′( z ) ≤ ε , закончить поиск. Иначе: Шаг 2: Вычислить z = Если  f ' (z) > 0,  '  f (z) < 0, положить R = z → Шаг 2; положить L = z → Шаг 2. Замечание: Здесь исследуется лишь знак производной независимо от ее значения. Кроме рассмотренных выше интервальных методов на практике широкое распространение получили следующие методы поиска нулей функции одной переменной: 8.4.3 Другие методы поиска экстремума функций Упрощенный метод Ньютона (сходимость линейная): xn +1 = xn − f ′( xn ) / α , (8.12) 104 где α – константа, например, α = f ′′( x0 ) ; Метод ложного положения (сходимость линейная): xn − z . (8.13) ′ n ) − f ′(z) f (x Значение абсциссы вспомогательной точки z необходимо выбирать как можно ′ n) xn +1 = xn − f (x ближе к корню функции; Метод Стефенсена (квадратичная сходимость): xn +1 = xn − f ′( xn ) f ′( xn ) ; f ′[ xn + f ′( xn )] − f ′( xn ) (8.14) Метод Уолла (кубическая сходимость): xn +1 = xn − f ′( xn ) . f ′( xn ) ⋅ f ′′′( xn ) f ′′( xn ) − 2 f ′′( xn ) (8.15) Метод секущих xn +1 = xn − xn −1 − xn f ′( xn ) f ′( xn −1) − f ′( xn ) (8.16) Метод хорд  f ′( a ) ( xn − a ) , a − ′ f ( xn ) − f ′ ( a )  xn+1 =  f ′ ( xn ) x − b − xn )  n f ′ ( b ) − f ′ ( xn ) (  (8.17) Комбинированный метод   xn +1 = an −   a = a − n −1  n  f ′ ( an )( xn − an ) , x0 = b0 = b; a0 = a; n = 1,2,... f ′ ( xn ) − f ′ ( an ) f ′ ( an −1 ) f ′′ ( an −1 ) (8.18а) либо   xn +1 = xn −   b = b −  n n −1  f ′ ( xn )( bn − xn ) ; x0 = a0 = a; b0 = b; n = 0,1,2,... f ′ ( bn ) − f ′ ( xn ) f ′ ( bn −1 ) f ′′ ( bn −1 ) (8.18б) 8.4.4 Метод оптимизации с использованием кубичной аппроксимации В этом методе также используются производные. Функция аппроксимируется полиномом третьего порядка. Схема метода аналогична схеме методов с использованием квадратичной аппроксимации, но построение полинома проводится на основе меньшего числа точек, т.к. в каждой точке можно вычислять значения и функции, и ее производной. Схема метода. Произвольно выбирается точка x1 , находится точка x2 = x1 ± ∆1 , такая, что f ′( x1 ) f ′( x2 ) < 0 , т.е. производные имеют разные знаки. Иными словами, 105 стационарную точку x , в которой производная f ′( x ) = 0 , необходимо заключить в интервал [ x1 , x 2 ] . Аппроксимирующий кубичный полином записывается в виде: F ( x) = a 0 + a1 ( x − x1 ) + a 2 ( x − x1 )( x − x 2 ) + a3 ( x − x1 ) 2 ( x − x 2 ) (10) Параметры уравнения (10) подбираются таким образом, чтобы значения F (x) и ее производной в точках x1, x2 совпадали со значениями f ( x ), f ′( x) в этих точках. Первая производная функции F (x ) равна: dF ( x) = a1 + a2 ( x − x1 ) + a2 ( x − x2 ) + dx (8.19) + a3 ( x − x1 ) 2 + 2a3 ( x − x1 )( x − x2 ) . Коэффициенты a0 , a1 , a2 , a3 уравнения (11) определяются по известным значениям f ( x1 ), f ( x2 ), f ′( x1), f ′( x2 ) путем решения следующей системы уравнений: f1 = f ( x1) = a0 ; f 2 = f ( x2 ) = a0 + a1( x2 − x1); f1′ = f ′( x1) = a1 + a2 ( x1 − x2 ); f 2′ = f ′( x2 ) = a1 + a2 ( x2 − x1) + a3 ( x2 − x1) 2 . Данная система легко решается рекурсивным методом. После того, как коэффициенты найдены, действуя по аналогии со случаем квадратичной аппроксимации, можно оценить координату стационарной точки f (x) с помощью полинома (10). При этом приравнивание к нулю производной (11) приводит к квадратному уравнению. Используя формулу для вычисления корней квадратного уравнения, запишем решение, определяющее стационарную точку кубичного полинома, в виде: если µ < 0 ;  x2 ,  x =  x2 − µ ( x2 − x1 ), если 0 ≤ µ ≤ 1;  x, если µ > 1, 1  (8.20) где: µ=  3 ⋅ ( f1 − f 2 )  f '2 + w − z , z=  + f '1 + f '2 , − f '2 − f '1 + 2w x x  2 1   z 2 − f ' f ' , если x < x ;  1 2 1 2 w=   − z 2 − f '1 f ' 2 , если x1 > x 2 . Формула для вычисления значения w обеспечивает надлежащий выбор одного из двух корней квадратного уравнения. Для значений µ ∈ [0,1] формула (8.20) гарантирует, что получаемая точка x ∈ [ x1, x2 ] . Затем снова выбираются две точки: x и одна из двух точек x1 или x2 , причем знаки производной функции в этих точках должны быть различны, и процедура повторяется. Пример 8.3: Найти минимум функции: 106 f ( x ) = 2 x 2 + 16 ; x0 = 1; ∆1 = 1; ε1 = 0,01; ε2 = 0,03. x x = 1,5657 . Точное решение: x* = 1,5874 . Напомним, что решение, полученное с помощью метода Пауэлла: x = 1,6125 . Ответ: Это указывает на преимущество полиномиальной аппроксимации более высокого порядка. 8.5 Сравнение методов одномерной оптимизации С помощью теоретических выкладок можно показать, что такие методы точечного оценивания, как метод Пауэлла, метод поиска с использованием кубичной аппроксимации и производных существенно эффективнее методов исключения интервалов, среди которых выделяется метод золотого сечения. Данный вывод справедлив лишь в предположении, что интервалы сходимости сравнимы между собой, а исследуемая функция является достаточно гладкой и унимодальной. Выбор того или иного метода определяется из следующих соображений: 1. Если необходимо получить решение с очень высокой степенью точности, то лучшими оказываются методы на основе полиномиальной аппроксимации. 2. Если важно добиться надежной работы алгоритма, то целесообразно выбрать метод золотого сечения. 3. Поисковые методы типа метода Пауэлла следует использовать совместно с МЗС, когда возникают затруднения с реализацией соответствующих итераций на ЭВМ. Для оценки эффективности методов обычно используются три характеристики: − время, затраченное на получение решения; − точность решения; − чувствительность к изменениям параметра сходимости. Например, метод средней точки, метод Пауэлла и поиск с использованием кубичной аппроксимации могут быть исследованы при поиске минимума функции f ( x ) = sin k ( x ) , x ∈ [0, 2 π] для различных нечетных значений k: k ∈ [1,79], x* = 4,71239, f ( x* ) = −1, 0 для любого k . При возрастании значения k увеличивается время решения и уменьшается точность. Однако МЗС не чувствителен к росту k . В заключение этого параграфа отметим, что МЗС обладает высокой вычислительной эффективностью и простотой реализации. Методы точечного оценивания позволяют определить точки экстремума с помощью квадратичной и кубичной аппроксимации целевой функции. Если интервалы сходимости сравнимы между собой, а целевая функция гладкая и унимодальная, то методы точечного оценивания сходятся значительно быстрее, чем методы исключения интервалов. Однако при исследовании мультимодальных или быстроизменяющихся функций (типа f ( x ) = sin k x , которая обладает узкими впадинами вблизи точки минимума) наиболее надежным оказывается метод "золотого сечения". Вопросы для самопроверки 1. 2. 3. 4. Метод равномерного поиска минимума функции. Метод дихотомии поиска минимума функции. Метод золотого сечения поиска минимума функции. Метод Фибоначчи поиска минимума функции. 107 5. Показатели эффективности методов прямого поиска минимума функции. 6. Погрешности методов прямого поиска минимума функции. 7. Методы полиномиальной аппроксимации поиска минимума функции одной переменной. 8. Суть метода квадратичной аппроксимации. 9. Метод Пауэлла поиска минимума функции одной переменной. 10. Метод Ньютона-Рафсона. поиска минимума функции одной переменной. 11. Метод средней точки (поиск Больцано) поиска минимума функции одной переменной. 12. Какие методы поиска нулей функции используются для одномерной оптимизации функций? 13. Метод поиска минимума функции одной переменной с использованием кубичной аппроксимации. 108 Тема 9. Поиск экстремумов функции нескольких переменных (безусловная оптимизация) 9.1 Классификация методов безусловной оптимизации Здесь исследуются методы и алгоритмы, позволяющие на итерационной основе * получать оценки решения оптимизационной задачи x , которым соответствует минимальное значение целевой функции f (x) . Указанные методы применимы и к задачам максимизации, в которых ЦФ заменяется на обратную: [ − f (x ) ]. Задачи, которые здесь рассматриваются, имеют следующий вид: найти min f ( x ) , где f ( x ) = f ( x1 , x2 ,..., xn ), xi ∈ ( −∞, + ∞ ) . (9.1) При определенных условиях многие задачи с ограничениями типа: min f ( x ) , g i ( x) ≤ 0, i = 1, m , можно свести к ЗО вида (9.1), т.е. к задаче безусловной оптимизации. Напомним необходимые и достаточные условия существования локального минимума. Предполагается, что f ( x ) непрерывна и имеет непрерывные 1-е и 2-е 2 n производные ∂ f ( x) ∂ xi и ∂ f ( x) (∂ xi ⋅ ∂ j ) в любой точке x ∈ R : 1) ∇f ( x* ) = 0 , ( x * - стационарная точка); 2) ∇2 f ( x * ) – матрица Гессе должна быть положительно определена. Это условие означает, что квадратичная форма yT ∇ 2 f ( x* ) y > 0, ∀y ∈ R n , y ≠ 0. Для выпуклой непрерывно дифференцируемой функции необходимо и достаточно * лишь выполнение равенства: ∇f ( x ) = 0 . Методы, ориентированные на решение задач безусловной оптимизации, можно условно разделить на три больших класса: − Методы прямого поиска (нулевого порядка), основанные на вычислении только значений ЦФ. − Градиентные методы (методы 1-го порядка), в которых используются точные значения первых производных. − Методы 2-го порядка, в которых используются также вторые производные целевой функции f (x) . Ни один метод или класс методов не отличается высокой эффективностью при решении оптимизационных задач различных типов. В некоторых ситуациях вычисление значений ЦФ требует чрезмерных затрат времени. Иногда невозможно или очень трудно найти аналитическое выражение для производных целевой функции. Поэтому при использовании градиентных методов следует применять процедуру разностной аппроксимации производных. Таким образом, в каждом конкретном случае необходимо приспосабливать применяемый метод к конкретным характеристикам решаемой ЗО. 9.2. Методы прямого поиска Рассмотрим два метода прямого поиска: 2 1. Поиск по симплексу или s - метод. 2. Метод Хука-Дживса. 109 Достоинства данных методов: относительная простота вычислительных процедур, легкость реализации и корректировки. Недостатки: значительные затраты времени по сравнению с градиентными методами. 9.2.1 Симплексный метод Метод поиска по симплексу был предложен в 1962 г. Спендли, Хекстом и Химсвортом. Этот метод называют последовательным симплекс-методом (ПСМ). Следует отметить, что указанный метод и другие подобные методы не имеют отношения к симплекс-методу линейного программирования, а сходство названий носит чисто случайный характер. Определение: В k -мерном эвклидовом пространстве k -мерный симплекс представляет собой фигуру, образованную k + 1 точками (вершинами), не принадлежащими одновременно ни одному пространству меньшей размерности. В одномерном пространстве симплекс есть отрезок прямой; в двумерном – треугольник; в трехмерном – треугольная пирамида (тетраэдр) и т.д. Рис. 9.1. Траектория движения по симплексу Из любого симплекса, отбросив одну его вершину, можно получить новый симплекс, если к оставшимся добавить всего лишь одну точку. Симплекс называется регулярным, если расстояния между вершинами равны. В ПСМ используются регулярные симплекс-планы. Для оценки направления движения во всех вершинах симплекса V j , j = 1, 2,..., n + 1 , где n - размерность вектора x , необходимо оценить значение ЦФ f j = f (V j ) . При поиске минимума наиболее целесообразно будет движение от вершины Vs с наибольшим значением f s к противоположной грани симплекса. Шаг поиска выполняется переходом из некоторого симплекса Sm −1 в новый симплекс Sm путем исключения вершины Vs и построения ее зеркального отображения относительно общей грани Vs (см. рис.1). Многократное отражение худших вершин приводит к шаговому движению центра симплекса к цели по траектории некоторой ломанной линии. Алгоритм ПСМ 110 ШАГ 1. Задается исходная вершина симплекса. x 0 = ( x10 ,..., xn0 ) Задается коэффициент сжатия γ ∈ [0,1] и размер симплекса L . Строится симплекс  x10   x11  ( xij ) =  ...  n −1  x1  xn  1 xn0   1  ... xn  ... ...  . (9.2)  ... xnn −1  ... xnn  Здесь j-я строка – это координаты j-ой вершины V j . ( j = 1,..., n + 1 ), где n - размерность пространства (размерность вектора x ), i – номер координаты i = 1,..., n . ... j Определение координат xi , начиная со второй, производится по формуле xij = xi0 + xɶij , (n + 1) × n 0 0 ... qn qn ... pn qn ... ... ... ... qn qn ... j где xɶi - матрица размерности 0 p  n j ( xɶi ) =  qn   ... q  n ( j = 1,..., n; i = 1,..., n) , (9.3) 0 qn  qn  ,  ...  pn  (9.4) где 2 L = ( n + 1 − 1) . 2 n 2 n 2 Векторы соответствующие вершинам V1,...,Vn , определяемые формулой (9.2), составят одинаковые углы с координатными осями x1 ,..., xn . pn = L ( n + 1 + n − 1) , qn = pn − ШАГ 2. В вершинах симплекса вычисляется ЦФ f ( x ), j = 0,..., n ШАГ 3. j Проверяем условия: x − x j j −1 ≤ ε1 , f ( x j ) − f ( x j +1 ) ≤ ε 2 +1 Если f ( x j«да», ) − f (то x j конец; ) ≤ ε 2если «нет», то на ШАГ 4. ШАГ 4. Находится «наихудшая» вершина симплекса (при поиске минимума «наихудшая» вершина – та, в которой значение функции максимально). { } f ( x p ) = max f ( x j ), j = 1, n + 1 j ШАГ 5. 111 p Осуществляется расчет координат новой вершины (вершина отражения x ):  2 n xɶ p =  ∑ x j − x p  − x p n  j =0  ШАГ 6. p Если точка xɶ оказывается «хуже» всех остальных точек симплекса, то осуществляется возврат к исходному симплексу с последующим его сжатием k относительно «лучшей» из вершин x { } f ( x k ) = min f ( x j ), j = 1, n + 1 j xɶ s = γx k + (1 − γ ) x s , s = 0,1,..., n; s ≠ k , Переход на ШАГ 2. p Если xɶ не является «худшей» в новом симплексе, то перейти на ШАГ 3. 9.2.2 Метод Хука-Дживса Процедура Хука–Дживса представляет собой комбинацию двух поисков: а) "исследующий" поиск (для выявления характера локального поведения ЦФ и определения направления движения вдоль "оврагов") с циклическим изменением переменных; б) ускоряющий поиск по образцу с использованием определенных эвристических правил. Исследующий поиск. Выбирается некоторая исходная точка x . Задается величина шага ∆ i , которая может быть различной для разных координатных направлений и изменяться в процессе поиска. Если значение ЦФ в пробной точке меньше значения ЦФ в исходной точке, то шаг поиска успешный. В противном случае из исходной точки делается шаг в противоположном направлении. После перебора всех n координат исследующий поиск завершается. Полученная точка называется базовой. Поиск по образцу. Осуществляется шаг из полученной базовой точки вдоль прямой, соединяющей эту точку с предыдущей базовой. Новая точка образца определяется по формуле: x kp+1 = x k + ( x k − x k −1 ) . Как только движение по образцу не приводит к уменьшению ЦФ, точка x kp +1 фиксируется в качестве временной базовой точки и вновь проводится исследующий k поиск. Если в результате получается точка с меньшим значением ЦФ, чем в точке x , то она рассматривается как новая базовая точка x k k +1 . Но если исследующий поиск неудачен, то следует вернуться в точку x и провести исследующий поиск с целью выявления нового направления минимизации. В конечном итоге возникает ситуация, когда такой поиск не приводит к успеху. В этом случае уменьшается шаг путем введения коэффициента α и возобновляется исследующий поиск. Схема алгоритма Хука – Дживса 112 k Введем следующие обозначения: x - текущая базовая точка; x k +1 базовая точка; x p - точка, построенная при движении по образцу; x k −1 k +1 - предыдущая - следующая (новая) базовая точка. Критерий останова: ∆ x ≤ ε . Шаг 1. Определить начальную точку x ; приращения (шаги) ∆ i , i = 1, n ; коэффициент уменьшения шага α > 1 ; параметр окончания поиска . Шаг 2. Провести исследующий поиск. Шаг 3. Был ли исследующий поиск удачным (найдена ли точка с меньшим значением ЦФ)? Да: переход на Шаг 5. Нет: продолжить, т.е. переход на Шаг 4. Шаг 4. Проверка на окончание поиска. Выполняется ли неравенство ∆ x ≤ ε ? Да: ∗ окончание поиска, т.е. текущая точка аппроксимирует точку экстремума x . Нет: уменьшить приращение ∆ i / α; i = 1, 2, ... , n . Переход на Шаг 2. k +1 Шаг 5. Провести поиск по образцу: x p = x k + ( x k − x k −1 ) . k +1 Шаг 6. Провести исследующий поиск, используя точку x p базовой точки. Пусть в результате получена точка x Шаг 7. Выполняется ли неравенство: f ( x k −1 k k Да: положить x =x ; x =x Нет: переход на Шаг 4. k +1 k +1 k +1 в качестве временной . k ) < f (x ) ? . Переход на Шаг 5. Пример 9.1. Найти точку минимума ЦФ f ( x) = 8 x12 + 4 x1 x2 + 5 x22 ; T начальная точка: x = [ −4; − 4] . Решение. Зададим следующие величины: ∆ x = [1; 1]T - векторная величина приращения шага; α = 2 - коэффициент уменьшения шага ∆ x ; ε = 10 −4 - параметр окончания поиска. x 0 , которой Итерации начинаются с исследующего поиска вокруг точки соответствует значение ЦФ f ( x ) = 272 . Фиксируя переменную x2 = −4 , дадим приращение x1 : x1 = −4 + 1 → f (−3; − 4) = 200 < f ( x 0 ) → успех. Далее, фиксируем x1 = −3 и дадим приращение x 2 : x2 = −4 + 1 → f (−3; − 3) = 153 < 200 → успех. 1 T Таким образом, в результате исследующего поиска найдена точка x = [ −3; − 3] , 1 в которой значение ЦФ f ( x ) = 153 . Так как исследующий поиск был удачным, переходим к поиску по образцу: x 2p = x1 + ( x1 − x 0 ) = [−2; − 2]T ; f ( x 2p ) = 68 . 113 2 Далее проводится исследующий поиск вокруг точки x p . В результате получаем 2 2 T точку x = [ −1; − 1] , в которой значение ЦФ f ( x ) = 17 . 2 1 2 Поскольку f ( x ) < f ( x ) , поиск по образцу следует считать успешным, и x становится новой базовой точкой. Итерации продолжаются до тех пор, пока уменьшение величины шага не укажет на окончание поиска в ε -окрестности точки минимума x ∗ = [0; 0]T . Достоинства метода Хука-Дживса: несложная стратегия поиска, простота вычислений, малый объем требуемой памяти (меньше чем в симплексе - методе). Недостатки: при наличии значительных нелинейных эффектов процесс вырождается в последовательность исследующих поисков без перехода к ускоряющему поиску по образцу. Возможные варианты модификации метода Хука - Дживса: а) если движение по образцу приводит к успеху, то желательно увеличить длину шага по образцу, чтобы полностью использовать возможность поиска вдоль прямой; б) введение дополнительных правил увеличения и уменьшения приращения переменных и другое. 9.3 Градиентные методы Предполагается, что целевая функция f ( x ) непрерывна и имеет, по крайней мере, непрерывные первые производные. Необходимым условием существования экстремума является наличие стационарной точки ЦФ. Таким образом, основная идея многих методов n оптимизации без ограничений в пространстве R заключается в отыскании стационарной ∗ ∗ точки x , в которой градиент ЦФ ∇f x = 0 . Эта задача эквивалентна решению нелинейной системы уравнений вида: ( )  ∂ f (x ) = 0, i = 1, n .  ∂ x i  Можно отыскивать решение непосредственно этой системы, что приводит к методу Ньютона. При этом предполагается, что функция дважды дифференцируема. В данном случае речь идет об итерационных процессах, порождающих 0 1 k последовательность точек x , x , … , x , сходящихся к локальному экстремуму функции f в точке x ∗ . k +1 На каждом k -ом этапе значение x определяется выражением: x k +1 = x k + λ k d k , где d k - направление перемещения, которое может быть: − либо градиентом функции в точке ( ) x k , т.е. d k = −∇f x k ; ( ) k − либо вычисленным, исходя из направления градиента ∇f x ; − либо выбранным произвольно при условии, что это будет направление спуска. В этом случае должно выполняться неравенство вида: ( ) ∇f T x k d k < 0 . Здесь λ k - параметр, характеризующий длину шага. 114 Способ определения d k и λ k на каждой итерации связан с особенностями применяемого метода. Обычно выбор λ k осуществляется путем решения задачи минимизации f ( x ) в направлении d k . Поэтому при реализации изучаемых методов необходимо использовать эффективные методы одномерной оптимизации. В семействе градиентных методов следует выделить методы с заданным шагом, в которых заранее задаются значения λ k . Доказано, что построенная последовательность сходится к решению, т.е. x k → x ∗ , если выполняются два условия: 1) λ k → 0 при k → ∞ ; ∞ 2) 1 ∑ λ k → +∞ (например, λk = k ). k =0 Данная процедура ("метод расходящегося ряда") может оказаться медленной. Критерии останова (наиболее употребительные). Пусть ε > 0 - заданная точность: ∂f 1) max ≤ ε; i =1,n ∂ xi 3) f ( x 5) ∆x = x k +1 k +1 2) ∇f 2 n 2 n 2 ∂f  =∑  ≤ ε; ∂ x i i =1  k ) − ( x ) ≤ ε ; 4) ∇f = ∂f  ∑  ∂x  ≤ ε; i i =1  − xk ≤ ε . 9.3.1 Метод сопряженных направлений Данный метод и его модификации являются наиболее эффективными алгоритмами прямого поиска. Метод ориентирован на решение задач с квадратичными целевыми функциями и основывается на фундаментальных теоретических результатах. Основная идея алгоритма: если квадратичная функция f ( x ), x = ( x1 ,..., xn ) , приведена к виду суммы полных квадратов, то ее экстремум может быть найден в результате реализации n одномерных поисков по преобразованным координатным направлениям, т.е. не более чем за n шагов. Рассмотрим общие принципы. Пусть имеем квадратичную функцию ( в окрестности точки оптимума любую нелинейную функцию можно аппроксимировать квадратичной функцией) вида f ( x) = 1 T x A x + bT x + c , 2 где A – положительно определенная симметричная матрица порядка n × n; b − n T вектор (b1 ,..., bn ) ; c - константа. Суть методов сопряженных направлений состоит в том, чтобы начиная от точки x , минимизировать последовательно f ( x) по n линейно независимым направлениям d 0 , d1 ,..., d n −1 , обладающим свойством быть попарно сопряженными относительно квадратичной формы f ( x) . 115 Это условие записывается в виде ∀ i , j (i, j = 0,..., n − 1) ⇒ diT Ad j = 0 . (9.3) x k , k = 0, n − 1 определены, начиная с x k −1 , Итак, предположим, что точки формулой x k = x k −1 − λ k d k −1 , где λ k – значение величины λ, минимизируещее значение одномерной функции f ( x k −1 − λ d k −1 ) . Теорема. Точка n −1 x = x − ∑ λ j +1 d j n (9.4) j =0 полученная на n – ом этапе, является точкой минимума функции f ( x ) , т.е. будет удовлетворять соотношению: ∇f ( x n ) = A x n + b = 0 . 1 2 Таким образом, начиная с точки x (9.5) шаг за шагом строится последовательность x , x ,..., x n , определенная соотношениями: f ( x1 ) = f ( x 0 − λ1d 0 ) = min f ( x 0 − λd 0 ) ; λ 2 1 f ( x ) = f ( x − λ 2 d1 ) = min f ( x1 − λd1 ) ; λ .............................................. f ( x ) = f ( x n −1 − λ n d n −1 ) = min f ( x n −1 − λd n −1 ) . n λ * n n Точка x и является точкой минимума функции f ( x ) , т.е. x = x . Займемся теперь вопросом вычисления сопряженных направлений d 0 , d1 ,..., d n −1 . 1 Зададим начальную точку x , начальное направление d 0 и вычислим точку x формуле x1 = x 0 − λ1d 0 , по (9.10) где λ1 – скалярная величина, определяется из условия минимума функции f ( x ) вдоль T 1 направления d 0 , т.е. из условия ∇f ( x )d 0 = 0 (см. формулу (9.7) при k = 1 ). Определим направление d1 по формуле d1 = −∇f ( x1 ) + µ1d 0 так, чтобы оно было сопряжено с направлением d 0 , т.е. (9.11) d 0T Ad1 = 0 . (9.12) Здесь µ1 – скалярный параметр, который мы будем определять из уравнения (9.12). 1 Разложим градиент ∇f ( x ) в окрестности точки x и подставим x = x : 116 ∇f ( x1 ) − ∇f ( x 0 ) = A( x1 − x 0 ) . С учетом (10) получим ∇f ( x1 ) − ∇f ( x 0 ) = −λ1 Ad 0 . Отсюда получим выражение для d 0T : ∇f ( x1 ) − ∇f ( x 0 ) ) ( T d =− T A−1 λ1 . (9.13) Подставим выражения (9.11) и (9.13) в формулу (9.12), получим: ( ) ( −∇f ( x1 ) + µ1d0 ) = 0 . Отсюда выражение для µ1 : 1 0 T 1 1 0 T ∇ f ( x ) − ∇ f ( x ) ∇ f ( x ) A ( x − x ) ) ( Ax1 + b ) ( ) ( µ1 = = . (9.14) 1 0 T 1 0 T (∇f ( x ) − ∇f ( x ) ) d0 ( A( x − x ) ) d0 1 T Если потребовать выполнения дополнительного условия ( ∇f ( x ) ) ∇f ( x ) = 0 , ∇f ( x1 ) − ∇f ( x 0 ) T то вместо (14) получим ∇f ( x1 ) − ∇f ( x 0 ) ) ∇f ( x1 ) ( Ax1 + b ) ( Ax1 + b ) ( µ1 = = . 1 0 T 1 0 T (∇f ( x ) − ∇f ( x ) ) d0 ( A( x − x ) ) d0 T T 2 2 (9.15) 1 Далее, направление d 2 находим по формуле d 2 = −∇f ( x ) + µ 2 d1 , где x = x − λ 2 d1 . Проводя аналогичные рассуждения, получим для µ 2 : ( = Ax 2 + b ) ) ( µ2 . 2 1 T 2 1 T (∇f ( x ) − ∇f ( x ) ) d1 ( A( x − x ) ) d1 2 T 1 Потребовав выполнения дополнительного условия ( ∇f ( x ) ) ∇f ( x ) = 0 , ∇f ( x 2 ) − ∇f ( x1 ) ) T ∇f ( x 2 ) ( = A( x 2 − x1 ) T получим ∇f ( x 2 ) − ∇f ( x1 ) ) ∇f ( x 2 ) ( Ax 2 + b ) ( Ax 2 + b ) ( µ2 = = T 2 1 T ( ∇f ( x ) − ∇f ( x ) ) d1 ( A( x2 − x1) ) d1 T T На k -ом шаге получим: ( = Ax k + b ) ) ( µk , k k −1 T k k −1 T (∇f ( x ) − ∇f ( x ) ) dk −1 ( A( x − x ) ) dk −1 k T k −1 или с учетом условия ( ∇f ( x ) ) ∇f ( x )=0 T k T k k ∇ f ( x ) ∇ f ( x ) Ax + b Ax k + b ) ( ) ( ) ( µk = = , k k −1 T k k −1 T (∇f ( x ) − ∇f ( x ) ) dk −1 ( A( x − x ) ) dk −1 ∇f ( x k ) − ∇f ( x k −1 ) ) T ∇f ( x k ) ( = A( x k − x k −1 ) T (9.16) (9.17) 117 d k = −∇f ( x k ) + µ k d k −1 , (9.18) где x k = x k −1 − λ k d k −1 , λk = (9.19) d kT−1 ( Ax k −1 + b) , k = 1, 2,..., n . d kT−1 Ad k −1 В качестве начального направления d 0 можно взять, например, (9.20) d 0 = −∇f ( x 0 ) = −( Ax 0 + b) . Сформулируем теперь алгоритм поиска минимума функции сопряженных направлений. Шаг 0. Задаем начальную точку x формуле (19). f ( x ) методом и вычисляем начальное направление d 0 по k Шаг k . По формуле (9.20) вычисляем λ k и затем по формуле (9.19) — точку x . Затем по формулам (9.16) (либо (9.17)) и (9.18) вычисляем параметр µ k и направление d k . При k = n процесс вычислений заканчиваем. В качестве точки минимума берем n точку x . Замечание. Формула для µ k может быть получена непосредственно из (9.18) с учетом T условия (9.12) d 0 Ad1 = 0 . В результате имеем µk = ( ∇f ( x k ) ) T Ad k −1 d kT−1 Ad k −1 . (9.22) k К такому же результату мы придем, если в формуле (9.16) заменим ( x − x k −1 ) на ( −λ k d k −1 ) (см. формулу (9.19)). 2 2 2 Пример 9.2. Найти минимум функции f ( x ) = 8 x1 + 4 x1 x2 + 5 x2 + x1 x3 + 2 x2 x3 + x3 T методом сопряженных направлений. Начальная точка x = (5,5,5) . 2 Решение. Вычислим матрицу Гессе A = ∇ f ( x ) и части вектор коэффициентов линейной  16 4 1   0 A =  4 10 2  , b =  0  .      1 2 2  0     Тогда функцию f ( x ) можно представить в матричной форме f ( x ) = где c = 0 . 1 T x Ax + bT x + c , 2 T Шаг 0. Вычисляем начальное направление d 0 = −( Ax + b) = −(105,80,25) . T d ( Ax + b) Шаг 1. Вычисляем λ1 = 0 = −0.056 , d 0T Ad 0 118 1 T x = x − λ1d 0 = ( −0.884, 0.516, 3.599) , µ1 ( = ) ( Ax1 + b ) = 0.011, T ( A( x1 − x0 ) ) d0 A( x1 − x 0 ) T d1 = −∇f ( x1 ) + µ1d 0 = −( Ax1 + b) + µ1d 0 = (7.292, − 9.734, − 7.630)T . Шаг 2. Вычисляем λ 2 = d1T ( Ax1 + b) d1T Ad1 = −0.132 , x 2 = x1 − λ 2 d1 = (0.085, − 0.777, 2.584)T , µ 2 ( = ) ( Ax2 + b ) = 0.095 , T ( A( x2 − x1 ) ) d1 A( x 2 − x1 ) T d 2 = −∇f ( x 2 ) + µ 2 d1 = −( Ax 2 + b) + µ 2 d1 = ( −0.147,1.333, − 4.429)T . T 2 d ( Ax + b) Шаг 3. Вычисляем λ 3 = 2 = −0.583 , T d 2 Ad 2 x 3 = x 2 − λ 3d 2 = (0, 0,0)T . Точка минимума x* = x 3 = (0,0,0)T . 9.3.2 Метод наискорейшего спуска (метод Коши) Известный французский математик Коши Огюстен Луи (21.08.1789–23.05.1857) первым использовал аналогичный алгоритм для решения системы линейных уравнений. В этом широко используемом методе (МК) λ k минимизировать функцию по λ : выбираются так, чтобы g ( λ ) = f  x k − λ∇f ( x k )    на множестве значений λ ≥ 0 (одномерная минимизация). Алгоритм Коши Шаг 1. Выбрать начальную точку x . Шаг 2. На k -ой итерации, где ( ) ( ( ), найти такое λ k , что d k = −∇f x k ) f x k + λ k d k = min f x k + λd k . λ≥0 k +1 = xk + λk dk . Положить x Шаг 3. Проверка критерия останова. Да: окончание поиска → конец. Нет: k = k + 1 , → Ш. 2. МК обладает устойчивостью, т.е. обеспечивается выполнение неравенства: ( ) ( ). f x k +1 ≤ f x k при достаточно малом значении λ k 119 МК позволяет существенно уменьшить значение ЦФ (быстро спуститься на "дно оврага") ∗ при движении из точек, расположенных на значительных расстояниях от точки x , но в дальнейшем может произойти "зацикливание". Поэтому МК часто используются совместно с другими градиентными методами (например, методом Ньютона) в качестве начальной процедуры. Недостаток: для некоторых типов функций сходимость может оказаться медленной. В самом деле, если λ k минимизирует функцию ( ), то должно быть ) = d ∇f ( x + λ d ) = d ∇ f ( x ) = 0 , g (λ ) = f x k + λd k dg (λ k dλ k k k T k k k +1 откуда вытекает равенство: d kT d k +1 = 0 , которое доказывает, что последовательные направления ортогональны. В случае Рис. 9.2. Метод Коши-«зацикливание» траектории спуска ярко выраженной нелинейности ("овражности") ЦФ происходит "зацикливание" (см. рис. 9.2). Пример 9.3. Методом Коши найти min f ( x ) = 8 x12 + 4 x1 x 2 + 5 x 22 ; x 0 Критерии останова: = [10 ;10] T . ( ) ≤ ε или ∇f x k x k +1 − x k ≤ ε . Решение. Вычислим компоненты градиента: ∂f = 16 x1 + 4 x 2 ; ∂x1 ∂f = 10 x 2 + 4 x1 . ∂x 2 С помощью формулы ( ). ( ) построим первое приближение: x k +1 = x k − λ k ∇ f x 0 x1 = x 0 − λ 0∇f x 0 Выберем ( ) λ0 таким образом, чтобы минимизировать f x1 → min → λ 0 = 0,056 . λ Следовательно: x1 = [− 1,18; 2,14] T . Далее найдем точку ( ), x 2 = x1 − λ1∇f x1 1 вычислив градиент в точке x и проведя поиск вдоль прямой. функцию по λ: 120 Данные, полученные при проведении итерации на основе одномерного поиска по методу квадратичной интерполяции, приведены в табл. 9.1. Таблица 9.1 k x1k x 2k f (xk ) 1 -1,2403 2,13 24,23 2 0,1441 0,1447 0,354 3 -0,0181 0,0309 0,0052 4 0,0021 0,0021 0,0000 Несмотря на то, что МК не имеет большого практического значения, он реализует важнейшие шаги большинства градиентных методов. 9.3.3 Метод Ньютона (МН) Итерационная формула МН имеет вид: ( ) ( ) x k +1 = x k − ∇2 f x k  −1∇f x k .   Эта формула есть не что иное, как МН в применении к решению системы нелинейных уравнений: ∂f ( x ) = 0, i = 1, … , n . ∂xi Замечание. В МН и направление, и шаг перемещения фиксированы. Если f ( x ) строго выпуклая функция, то МН сходится за одну итерацию. Пример 9.4. Методом Ньютона найти min f ( x ) = 8 x12 + 4 x1 x 2 + 5 x 22 , где x 0 = 10 ;10 T . Решение. Найдем градиент и матрицу Гессе в начальной точке ∇f ( x ) = (16 x1 + 4 x2 ;10 x2 + 4 x1 ) , [ ]  16 4  H f ( x ) = ∇2 f ( x 0 ) =  . 4 10   Используя формулу МН, получаем: x1 = [10;10] T − 1  10 − 4   200   ⋅   = [0; 0] T , ⋅  144  − 4 16   140  что совпадает с точным решением. Если функция f ( x ) не квадратичная, то МН не отличается высоким быстродействием и надежностью. 9.3.4 Модифицированный метод Ньютона (МН) 121 В модифицированном МН последовательность итераций строится в соответствии с формулой: [ ( )] x k +1 = x k − λ k ∇ 2 f x k ( −1 ( ). ∇f x k Выбор λ k осуществляется таким образом, чтобы минимизировать ЦФ по λ : ) −1   f x k + 1 = f  x k − λ ∇2 f x k  ∇f x k  → min .   λ   ( ) ( ) Это гарантирует выполнение неравенства f x k +1 ≤ f x k . ) ( ) ( Недостаток. При использовании модифицированного метода Ньютона на каждой итерации возникает необходимость построения и решения линейного уравнения, 2 ( k ) , т.е. направление спуска dk находим содержащего элементы матрицы Гессе ∇ f x из решения системы линейных уравнений ( ) ( ) ∇2 f x k  d = ∇f x k   k и затем вычисляем следующее приближение точки экстремума x k +1 = x k − λ k d k . 9.3.5 Метод Флетчера–Ривза (МФР) Запишем формулу для µ k (9.20) ∇f ( x k ) − ∇f ( x k −1 ) ) ∇f ( x k ) ( µk = T ( ∇f ( xk ) − ∇f ( xk −1 )) dk −1 T (9.23) Потребуем выполнения следующего условия: ( ∇f ( x k ) ) T ∇f ( x k −1 ) = 0 . Кроме того, выбор длины шага λ k (см. (20) производится из условия, ( ∇f ( x k ) ) T d k −1 = 0 , где x k = x k −1 − λ k d k −1 . Тогда (9.23) примет вид ∇f ( x k ) ) ∇f ( x k ) ( µk = − k −1 T ∇ f ( x ) ) d k −1 ( T (9.24) Если в формуле (24) в знаменателе вместо d k −1 использовать антиградиент функции в точке x k −1 , т.е. d k −1 = −∇f ( x Алгоритм Флетчера-Ривза k −1 ) , то получим метод Флетчера и Ривза. 122 ( ). Шаг 1. Задаем начальную точку x ; положить Шаг 2. Выбрать значение λ k , минимизирующее значение функции ( d 0 = −∇f x 0 ) Φ ( λ ) = f x k −1 − λd k . Положить: ( ) x k = x k −1 − λ k d k −1 , d k = −∇f x k + µ k d k −1 , µ k = 2 ( ) . 2 ∇f ( x k −1 ) ∇f T x k Шаг 3. Проверка критерия останова: Да: → конец. Нет: k = k + 1 → Ш. 2. Достоинство МФР: малый объем памяти (необходимо хранить 3n -мерных вектора ( ) и ∇f ( xk −1 ) , а также текущее направление d k ); скорость сходимости ∇f x k значительно выше классических градиентных методов. Пример 9.5. Найти точку минимума целевой функции методом Флетчера-Ривза. f ( x ) = 4 x12 + 3x22 − 4 x1 x2 + x1 , x 0 = [0;0]T . Решение. ( ) ∇f ( x ) = (8 x1 − 4 x 2 + 1, 6 x 2 − 4 x1 ) , d 0 = −∇f x 0 = [− 1;0]T . Шаг 1. Шаг 2. Поиск вдоль прямой: ( ) x1 = x 0 − λ1∇f x 0 → λ1 = 1 8 ; x1 = [0; 0] − (1 8) [1; 0] = [− 1 / 8; 0] . ( ) k = 1: ∇f x1 = [0; 1/ 2] ; µ1 = 1 4 ; Шаг 3. ( ) d1 = −∇f x1 + µ1d 0 = − [0; 1/ 2] + Шаг 4. 2 Поиск вдоль прямой: 1 4 [ −1; 0] = [ −1/ 4; −1/ 2] . 1 x = x − λ 2d1 → λ 2 = −1 4 , 1 x 2 = [− 1 / 8; 0] − × [1 / 4; 1 / 2] = [− 3 / 16; − 1 / 8], 4 2 ∇f x = [0; 0] T - следовательно, имеем стационарную точку. ( ) 2 ∗ Таким образом, x = x . Решение получено в результате проведения двух одномерных поисков, а т.к. ЦФ квадратичная функция, то ошибка округления отсутствует. - 9.3.6 Вариант Полака-Рибьера (МПР) Метод основан на точной процедуре проведения поиска вдоль прямой и на более общем предположении об аппроксимации ЦФ. Метод реализуется с помощью следующих соотношений: x k = x k −1 − λ k d k −1 , d k = −∇f k + µ k d k −1 , 123 µk = ∇f kT ∆ f k , (9.25) ∇f k −1 2 где ∆f k = ∇f k − ∇f k −1 ; λ k - параметр, значение которого определяется в результате поиска вдоль прямой. Заметим, что формула (9.25) следует из (9.23). Действительно, знаменатель с ( k учетом условия ∇f ( x ) ) T d k −1 = 0 (из этого уравнения определяется длина шага λ k ) . k −1 ) , как мы это делали в равен ( −∇f k −1 ) d k −1 Если теперь положить d k −1 = −∇f ( x методе Флетчера-Ривза, то придем к формуле (9.25) Легко видеть, что единственное различие между методами Флетчера –Ривза и Полака–Рибьера заключается в способах выбора параметра µ . T 9.4 Квазиньютоновские методы (КМ) (методы с переменной метрикой) Квазиньютоновские методы также основаны на свойствах квадратичных функций. Данные методы обладают положительными чертами метода Ньютона, однако используют только первые производные. С чем это связано? Итерационный поиск по методу Ньютона осуществлялся по формуле (обобщенный случай с λ ): [ ( )] −1 x k +1 = x k − λ k ∇ 2 f x k ( ) ∇f x k . 2 ( ) = H (x ) Трудность может возникнуть, когда матрица Гессе ∇ f x k k f не является положительно определенной. В этом случае направление перемещения [ ( )] dk = − ∇2 f x k −1 ( ) ∇f x k = − (H f )−1 ∇f ( x k ) может не быть направлением спуска и глобальная сходимость метода не будет обеспечена. [ ] −1 В таких ситуациях обратную матрицу Гессе ∇ f ( x ) заменяют положительно k определенной матрицей A , дающей направление перемещения, исходя из градиента ( ) 2 ∇f x k . Отсюда получаем итерационную формулу ( ) x k +1 = x k − λ k Ak ∇f x k , где λ k выбирается так, чтобы минимизировать функцию f ( ) ( xk − λdk ) в направлении d k = − A k ∇f x k . Для аппроксимации матрицы H −f 1 =  ∇2 f ( x )    рекуррентным соотношением: A k +1 = A k + Ack , k где Ac - корректирующая матрица. k Для матрицы Ac получена следующая оценка −1 пользуются следующим 124 ∆x k − Ak ∆g k )( ∆x k − Ak ∆g k ) ( k Ac = ( ∆g k )T ( ∆x k − Ak ∆g k ) T , − x k , ∆g k = g ( x k +1 ) − g ( x k ) = ∇f k +1 − ∇f k . Доказано, что для квадратичной функции f ( x ) с положительно определенной k где ∆x = x k +1 k матрицей A последовательность матриц A сходится не более чем за n этапов к −1 обращению матрицы A гессиана функции f ( x ) . 9.4.1 Метод Дэвидона–Флетчера–Пауэлла (ДФП) Корректирующая матрица определяется по формуле: ( ) ( ) (A ) ) ( ) ∆g  k ∆x k ∆ x k T Ak ∆ g k ∆ g k −  Ac = ∆ xk T ∆ g k ∆ g k T Ak   k +1 k k  A = A + Ac . ( ) ( T k T T k , (9.26) Данная рекуррентная формула сохраняет свойства симметрии и положительной определенности матриц. Поэтому, если A - симметричная положительно определенная 1 2 матрица, то матрицы A , A , … будут так же симметричными положительно определенными матрицами. k +1 Обычно удобно выбирать A = E , где E - единичная матрица. Точка x k k k получается из x перемещением в направлении d k = − A ∇f x . k +1 ( ) = ∇f ( x ) − ∇f ( x ). k +1 В формуле (26): ∆ x = x −x ; ∆g Свойство сохранения положительной определенности матриц существенно, ибо оно гарантирует, что направления d k , последовательно порождаемые алгоритмом, k являются направлениями ( ) спуска. k k Действительно, первая k вариация f ( x ) равна ∆f ( x ) = ∇f T x k ∆x . Используя формулы (15) и (16), получаем: ∆f x k = −λ k ∇f T x k Ak ∇f x k < 0 , ( ) откуда ( f x k +1 ( ) ( ) ) < f (x ) при любых λ k > 0 , если A k положительно определена. k Достоинства метода 1. Метод ДФП – наиболее широко используемый градиентный метод. 2. Устойчивость – при решении самых различных задач, возникающих на практике. k Недостаток. Необходимость хранения матрицы A порядка n × n . Пример 9.6. Найти минимум ЦФ f(x) методом ДФП. f ( x ) = 4 x12 + 3 x22 − 4 x1 x2 + x1 → min, Решение. Шаг 1. Шаг 2. x 0 = [0; 0] . ( ) = −[1; 0] . Положить d 0 = −∇f x Поиск вдоль d 0 приводит к результату: λ1 = 1 8, x1 = [ −1/ 8; 0] . 125 A1 = A0 + Ac0 ; k = 1; Шаг 3. 1 0  = E ; A 0 =  1   T T Ac0 = ∆x 0 ∆x 0 0T − A 0 ∆g 0 ∆g 0 A 0 0T ; ∆x ∆g ∆g A ∆g ∆ x = [− 1 / 8; 0] − [0; 0] = [− 1 / 8; 0] ; ( ) ( ) ∆g 0 = ∇f x1 − ∇f x 0 = [0;1 / 2] − [1; 0] = [− 1;1 / 2] ; 1 0 T [− 1;1 / 2]  1 0  [ ]   1 ; 1 / 2 − 0 1 [ − 1 / 8; 0]T [− 1 / 8; 0]  0 1  ;  Ac = − 1 0 [− 1 / 8; 0][− 1;1 / 2]T  [− 1;…1 / 2] T [− 1;1 / 2]  0 1 1 8 0   4 5 − 2 5   − 27 40 2 5   ;  −   =  Ac0 =  − − 2 5 1 5 2 5 1 5       13 40 2 5   ; A1 = A 0 + Ac0 =  2 5 4 5   ( ) d1 = − A1∇f x1 = −[1 / 5; 2 / 5] . Шаг 4. Поиск вдоль прямой x = x − λ 2 d1 → λ 2 = 5 16 ; 2 1 x 2 = [− 1 / 8; 0] − (5 16) × [1 / 5; 2 / 5] = [− 3 / 16; − 1 / 8] , что совпадает с полученным ранее решением данного примера методом Флетчера-Ривза. Вопросы для самопроверки 1. Классификация методов многомерной оптимизации. 2. Симплекс-метод поиска минимума функции многих переменных. 3. Алгоритм симплекс-метода поиска минимума функции многих переменных 4. Метод Хука-Дживса. 5. Градиентные методы поиска минимума функции многих переменных. 6. Метод сопряженных направлений. 7. Метод Коши. 8. Метод Ньютона. 9. Модифицированный метод Ньютона. 10. Метод Флетчера-Ривза. 11. Метод Поллака-Рибьера. 12. Квазиньютоновские методы с переменной метрикой. 13. Метод Дэвидона-Флетчера-Пауэлла. 126 Тема 10. Нелинейное программирование 10.1. Задачи с ограничениями в виде равенств Рассмотрим общую задачу оптимизации с ограничениями – равенствами: f ( x) → min x ∈ Rn (10.1) hi ( x) = 0 i = 1, m (10.2) Функции f ( x ) и hi ( x ) предполагаются непрерывными и дифференцируемыми. 10.1.1 Метод замены переменных (МЗП) Задача нелинейного программирования в принципе может быть решена как задача безусловной оптимизации, путем исключения из целевой функции m независимых переменных с помощью заданных равенств (10.2). Наличие ограничений в виде равенств фактически позволяет уменьшить размерность исходной задачи с n до ( n − m) . Для решения задачи безусловной минимизации можно использовать известные методы, изложенные ранее. Пример 10.1. f ( x) = x12 + x22 → min x1 − x2 = 1 Решение: x1 = 1 + x2 подставим в f ( x) f ( x) = (1 + x2 ) 2 + x22 → min 1 1 f ' ( x) = 2(1 + x2 ) + 2 x2 = 0 ⇒ x1 = ; x2 = − 2 2 Пусть имеется m ограничений равенств, причем m < n . Если m = n , то задача оптимизации сводится к решению системы уравнений (2) и оптимизация здесь не нужна. Таким образом, экстремальная точка функции f ( x ) ищется лишь по тем значениям x , которые удовлетворяют независимой системе (2) при m < n , т. е. в n n некоторой части S пространства R ( S ⊂ R ) . Пусть первые m переменных x1 ,…, xm , относитно которых мы хотим разрешить систему (10.2), т. е. вектор x можно представить в виде:  x1   y1   xm +1   u1           y x =   ; y =  ⋮  ≡  ⋮  ; u =  ⋮  ≡  ⋮  u  x   y   x  u   m  m  n   n−m  (10.3) Решаем систему (10.2): y = Ψ (u ) u ∈ R n − m (10.4) 127 и подставляем y в целевую функцию f ( x ) = f ( y , u ) = f ( Ψ (u ), u ) . Получим функцию (n − m) переменных u1 ,…u n − m , на которую не наложено никаких ограничений, т. е. получим задачу оптимизации без ограничений. Для идентификации точки экстремума целевой функции можно использовать один из известных методов. МЗП применим лишь в случаях, когда уравнения ограничения можно разрешить относительно некоторого конкретного набора независимых переменных. При наличии большого числа ограничений МЗП становится весьма трудоемкой процедурой. Кроме того, возможны ситуации, когда уравнение не удается разрешить относительно переменной, например: h1 ( x) = x12 x3 + x2 x32 + x2−1x1 В этом случае целесообразно использовать метод множителей Лагранжа. 10.1.2 Метод множителей Лагранжа (ММЛ) С помощью ММЛ устанавливают необходимое условие, позволяющее идентифицировать точки экстремума в задаче оптимизации с ограничениями – равенствами. При этом задача с ограничениями преобразуется в эквивалентную задачу безусловной оптимизации, в которой фигурируют некоторые неизвестные параметры – множители Лагранжа. Рассмотрим задачу оптимизации: f(x1, ..., xn ) → min , h(x1 , ..., xn ) = 0 . В соответствии с ММЛ эта задача преобразуется в задачу оптимизации без ограничений. L( x, λ ) = f ( x ) + λh1 ( x ) → min . Функция L( x, λ ) – функция Лагранжа. λ − const – множитель Лагранжа, на знак которого никаких требований не накладывается. Проиллюстрируем ММЛ на конкретном примере: Пример 10.2 : min f ( x ) = x12 + x22 h ( x ) = 2 x1 + x2 − 2 = 0 Соответствующая задача оптимизации без ограничений записывается в следующем виде: L( x, λ ) = x12 + x22 + λ(2 x1 + x2 − 2) → min Решение: ∂L = 2 x1 + 2λ = 0 → x1* = −λ ∂x1 ∂L λ = 2 x2 + λ = 0 → x2* = − ∂x2 2 128 * Для того, чтобы проверить, соответствует ли стационарная точка x минимуму, вычислим матрицу Гессе функции L( x, λ ) , рассматриваемой как функция x 2 0 H L (x,λ ) =  , 2   которая оказывается положительно определенной. Это означает, что L( x, λ ) - выпуклая функция x . λ ) определяют точку глобального 2 * * минимума. Оптимальное значение λ находится путем подстановки значений x1 и x2 в уравнение ограничений 2 x1 + x2 − 2 = 0 , откуда: λ 4 2λ + = −2 → λ* = − 2 5 * 4 * 2 Таким образом, минимум достигается при x1 = и x2 = и 5 5 4 f * = min f ( x) = . 5 * * * Точка ( x1 , x2 , λ ) – является седловой точкой функции Лагранжа L( x, λ ) , если функцию Лагранжа рассматривать как функцию трех переменных x1 , x2 и λ . * Следовательно, координаты x = ( −λ,− ММЛ можно распространить на случай, когда задача оптимизации имеет несколько ограничений – равенств. Рассмотрим общую задачу: f(x1, ..., xn ) → min , hi (x1 , ..., xn ) = 0, i = 1,m . Функция Лагранжа принимает следующий вид: m L(x,λ ) = f(x) + ∑ λi hi (x) , i =1 где λ1 , … , λm – множители Лагранжа, т. е. неизвестные параметры, значения которых необходимо определить. Далее находят частные производные ∂L ∂L , , j = 1,n ; i = 1,m ∂x j ∂λi и рассматривают систему ( n + m) уравнений с ( n + m) неизвестными x j , λ i :  ∂L ∂f(x) m ∂hi (x) = + ∑ λi = 0 j = 1,n → ∇ x L = 0  ∂x j  ∂x j ∂x j i =1   ∂L = h (x ,...,x ) = 0 i = 1,m → ∇λ L = 0 i 1 n  ∂λ  i Это и есть необходимое условие экстремума функции Лагранжа. 129 Решение расширенной системы определяет стационарную точку функции L . Затем реализуется процедура проверки на минимум или максимум, которая проводится на основе вычисления элементов матрицы Гессе функции L , рассматриваемой как функция x. Для некоторых задач расширенная система ( n + m) уравнений с ( n + m) неизвестными может не иметь решений, и ММЛ окажется неприемлемым. Однако на практике такие задачи встречаются редко. 10.2. Необходимые и достаточные условия оптимальности задач с ограничениями общего вида Необходимые и достаточные условия оптимальности первого порядка. Выше было установлено, что множители Лагранжа можно использовать при построении критериев оптимальности для задач оптимизации с ограничениями в виде равенств. Кун и Таккер обобщили этот подход на случай общей задачи нелинейного программирования с ограничениями как в виде равенств, так и в виде нера венств. Рассмотрим общую задачу нелинейного программирования f(x) → min ≥ g i(x) 0, ≤ i = 1,m; hl (x) = 0, l = 1,p. (10.1) f ( x), g i ( x), hl ( x) – непрерывные и дифференцируемые функции. Необходимые и достаточные условия первого порядка выражаются следующей теоремой: * Теорема 10.1: Для того, чтобы точка x была локальным оптимумом задачи (1), необходимо и достаточно, чтобы выполнялись следующие условия: а) f ( x ) была выпукла; б) g i ( x ) – вогнута, если g i ( x) ≥ 0 , – выпукла, если g i ( x) ≤ 0 ; в) hl – линейные; * * г) существовали такие числа µi ≥ 0 и λ l (произвольного знака), что m ∇f(x ) ∓ ∑ * µ*i ∇gi (x* ) + i =1 p ∑ λ*l ∇hl (x* ) = 0 ; l =1 µ*i gi (x* ) = 0 ; i = 1,m hl (x* ) = 0 ; l = 1,p. В случаях задачи с ограничениями только типа равенств: f(x) → min hl (x) = 0 (10.2) l = 1,p (10.3) (10.4) 130 Функцию Лагранжа имеет вид: p L(x,λ ) = f(x) + ∑ λ l hl (x) l =1 Для этой функции условия оптимальности первого порядка выражаются следующими уравнениями: p ∇ x L(x,µ) = ∇f(x) + ∑ λ l ∇hl (x) l =1 ∇λ L(x,µ) = hl (x) = 0 l = 1, p Т. е. условия Куна – Таккера (2) и (4) совпадают с условиями оптимальности для задачи Лагранжа. Пример 10.3. f(x) = x12 − x2 → min g1(x) = x1 − 1 ≥ 0, g2 (x) = 26 − x12 − x22 ≥ 0, h1(x) = x1 + x2 − 6 = 0. Проверим выполнение условий Куна-Таккера. Вычислим матрицы вторых производных целевой функции и функций ограничений. 2 0 ∇f(x) = ( 2 x1, − 1 ), H f (x) =   0 0  H f положительно полуопределена при всех x , следовательно f ( x) – выпуклая функция. g 1 ( x) – линейная функция, которая одновременно является выпуклой и вогнутой. Матрица Гессе для Функции g 2 ( x ) имеет вид: − 2 0  ∇g 2(x) = ( − 2 x1, − 2 x2 ) ; H g 2 =  ; 2 −   ∆1 = −2 ; ∆2 = 4 . Так как матрица H g отрицательно определена, то g 2 ( x ) является вогнутой. 2 Функция h1 ( x) входит в линейное ограничение в виде равенства. Следовательно, условия * (а), (б) и (в) теоремы (1) выполнены. Найдем теперь точку оптимума x . Имеем: f ( x) = x12 − x 2 ∇f ( x) = (2 x1 ,−1) g 1 ( x) = x1 − 1 ∇g1 ( x) = (1,0) g 2 ( x) = 26 − x12 − x 22 ∇g 2 ( x) = (−2 x1 ,−2 x 2 ) h1 ( x) = x1 + x 2 − 6 ∇h1 ( x) = (1,1) Уравнение (2) принимает следующий вид: 131 ∂h ∂f ∂g ∂g − µ1 1 − µ2 2 + λ1 l = 0 ∂x j ∂x j ∂x j ∂x j откуда: j = 1,2 j = 1 , 2 x1 − µ1 + 2 x1µ 2 + λ1 = 0 j = 2 , − 1 + 2 x2µ2 + λ1 = 0 Таким образом, условия Куна – Таккера (10.2) – (10.4) для нашего примера имеют следующий вид: 2x1 − µ1 + 2x1µ 2 + λ1 = 0, −1 + 2x 2µ 2 + λ1 = 0, x1 + x 2 − 6 = 0, µ1 (x1 − 1) = 0, µ 2 (26 − x12 − x 22 ) = 0, µ1,2 ≥ 0 Из третьего уравнения находим: x1 = 6 − x 2 . Подставим x1 в остальные уравнения, получим: 2(6 − x2 ) − µ1 + 2µ2 (6 − x2 ) + λ1 = 0 −1 + 2µ 2 x2 + λ1 = 0 µ1 (6 − x2 − 1) = 0 ⇒ x2 = 5 ; ⇒ x1 = 1 µ 2 (26 − (6 − x2 )2 − x22 ) = 0 Подставим x 2 = 5 в первое и второе уравнения: 2 − µ1 + 2µ 2 + λ1 = 0   −1 + 10µ2 + λ1 = 0 Из второго уравнения выразим λ1 и подставим в первое уравнение: 3 − µ1 − 8µ 2 = 0 * Пусть µ1 = 0.1 > 0 , тогда µ 2 = 0.3625 > 0 . Таким образом, точка x = (1,5) является точкой минимума. Вопросы для самопроверки 1. Записать задачу нелинейного программирования с ограничениями в виде равенств. 2. Метод замены переменных решения задачи нелинейного программирования с ограничениями в виде равенств. 3. Метод множителей Лагранжа решения задачи нелинейного программирования с ограничениями в виде равенств. 4. Решение задачи нелинейного программирования с ограничениями общего вида. 132 Тема 11. Методы штрафов 11.1. Общая схема метода штрафов Здесь мы продолжим изучение задач оптимизации с ограничениями. Нас будут интересовать методы, существенно отличающиеся от рассмотренных выше. Их общий принцип заключается в замене исходной задачи на решение последовательности экстремальных задач без ограничений. Рассмотрим задачу: f ( x) → min x ∈ R n (11.1) g i ( x) ≥ 0, i = 1, m; hl ( x) = 0, l = 1, p. * Предполагается, что точка x является решением этой задачи, известно некоторое начальное приближение x , возможно недопустимое, т. е. не удовлетворяющее ограничениям задачи (11.1). С помощью рассматриваемых далее алгоритмов в t n пространстве R строится конечная последовательность точек x , t = 0,1,… , k , которая начинается с заданной точки x k и заканчивается точкой x , дающей наилучшее * t приближение к x среди всех точек построенной последовательности. В качестве x берутся стационарные точки штрафной функции – ЦФ вспомогательной задачи безусловной минимизации. Конкретные методы, основанные на указанной общей схеме, определяются видом штрафной функции (ШФ), а также правилами, по которым производится пересчет штрафных параметров по окончании очередного цикла безусловной минимизации. Идея преобразования задачи с ограничениями в надлежащим образом построенную последовательность задач без ограничений представляется заманчивой главным образом в связи с наличием эффективных и надежных методов безусловной минимизации. При этом будем надеяться искать условный минимум с приемлемой точностью путем решения относительно небольшого числа не слишком сложных задач. x2 x2 x x* x t xt x x0 x x1 Рис. 11.1. Метод внутренних штрафов x1 Рис. 11.2 Метод внешних штрафов 133 t В зависимости от того, являются ли элементы последовательности x допустимыми или недопустимыми точками, говорят о методах внутренней или внешней точки соответственно. Иногда их называют методы внутреннего или внешнего штрафа. Методы внутренних штрафных функций называют также методами барьерных функций. Штрафная ф определяется выражением: P( x, R ) = f ( x) + H ( R, g ( x), h( x)), (11.2) где R - набор штрафных параметров, H - штраф – функция R и ограничений: H ( R, g ( x), h( x)) = Rϕ ( g ( x), h( x)) . Выражение для штрафа H определяется так, чтобы допустимые точки задачи имели преимущество перед недопустимыми в отношении безусловной минимизации ШФ. Методы внутренней точки связаны с такими H , при которых стационарные точки функции P( x, R ) оказываются заведомо допустимыми. Эти методы называют также методами барьеров, поскольку здесь штраф как бы создает вдоль границы допустимой области S барьер из бесконечно больших значений функции P . Методы ШФ представляют большой интерес лишь при выполнении следующих требований: 1. решения подзадач должны стремиться к решению исходной задачи нелинейного программирования: lim x t → x* , t → k < ∞ 2. сложность минимизации P( x, R ) должна быть того же порядка, что и для функции f ( x) 3. правило пересчета R t +1 = F ( R t ) должно быть простым. 11.2. Основные типы штрафов Рассмотрим широко используемые типы штрафов и различные процедуры учета ограничений при переходе к задачам безусловной минимизации. 11.2.1 Квадратичный штраф. Этот штраф используется для учета ограничений – равенств. H = R ⋅ (h( x)) 2 (11.3) При минимизации этот штраф препятствует отклонению величины h( x ) от нуля (как вправо, так и влево). Ниже будет видно, что при увеличении R стационарная точка * k соответствующей ШФ P( x, R ) приближается к точке x . т. к. в пределе h( x ) = 0 . Поскольку допустимая область S определяется ограничением h( x ) = 0 , то в допустимой области H = 0 , а вне допустимой области H > 0 и тем больше, чем дальше точка x выйдет за пределы допустимой области и чем больше R . t 134 H h(x) Рис. 11.3. Квадратичный штраф Рассмотрим несколько типов штрафов для ограничений – неравенств. 11.2.1 Бесконечный барьер. Задается в следующем виде H = ∞, если x ∉ S ( gi ( x) < 0), (11.4) H = 0, если x ∈ S ( gi ( x) ≥ 0). H +∞ g(x) Рис. 11.4. Бесконечный барьер Для этого штрафа функция P( x, R ) разрывна и недифференцируема на границе допустимой области. Так как машинная реализация бесконечных штрафов невозможна, то используется большое положительное число, например, H = 10 20 ∑ g i ( x) , где I - множество i∈ I индексов нарушенных ограничений, т. е. g i ( x ) < 0 при i ∈ I . 11.2.3 Логарифмический штраф Логарифмический штраф задается в форме H = − R ln( g ( x)) (11.5) 135 Штраф положителен при всех x таких, что 0 < g ( x ) < 1 и отрицателен при g ( x ) > 1. В данном случае вводится как бы искусственная дискриминация точек допустимой области: внутренним точкам отдается предпочтение перед граничными точками. Отрицательных значений штрафа можно было бы избежать, положив H = 0 для таких x , что g ( x ) > 1. Однако при этом у градиента ∇P появились бы разрывы. Логарифмический штраф – это барьерная функция, не определенная в недопустимых точках (т. е. для таких x , для которых g ( x ) < 0 ). H положительный штраф g(x) отрицательный штраф 1.0 Рис. 11.5. Логарифмический штраф Поэтому в тех случаях, когда приходится иметь дело с недопустимыми точками x ∉ S ) требуется процедура (например, когда точка обеспечивающая попадание в допустимую область S . специального типа, Итерационный процесс необходимо начинать из точки x допустимой области при положительном начальном значении R (например, R = 10 или R = 100 ). После решения каждой подзадачи безусловной минимизации, параметр R уменьшается и в пределе стремится к нулю. 11.2.4 Штраф типа обратной функции Задается в формулой H =R 1 . g ( x) (11.6). Этот штраф внутренний, Итерационный процесс необходимо начинать из точки x допустимой области. H здесь в отличие от логарифмического штрафа не имеет отрицательных значений в допустимой области. Данный штраф называют также барьерной функцией. Очевидна необходимость предотвращения появления недопустимых точек, в которых H < 0 . В точках x ∈ S вблизи границы значения штрафа положительны и быстро убывают при удалении от границы внутрь допустимой области. На самой границе P( x, R ) и ∇P не определены. Итерации начинаются с точки x процессе вычисления R → 0 . – начальной допустимой точки при R > 0 , причем в 136 H g(x) Рис. 11.6. Штраф типа обратной функции 11.2.5 Штраф типа квадрата срезки Штраф типа квадрата срезки является внешним штрафом. Этот штраф задается формулой H = R < g ( x) >2 ,  g ( x), если g ( x) ≤ 0, < g ( x) >=  если g ( x) > 0.  0, (11.7) H g(x) Рис. 11.7. Штраф типа квадрата срезки Отметим, что этот штраф – внешний штраф, и стационарные точки функции P( x, R ) могут оказаться недопустимыми. С другой стороны, недопустимые точки не создают в данном случае дополнительных сложностей по сравнению с допустимыми. Различие между ними состоит лишь в том, что в допустимых и граничных точках H = 0 . Достоинства: функция P( x, R ) определена и непрерывна всюду. Вычисления проводятся с положительными малыми R ; после решения очередной задачи безусловной минимизации R увеличивается. 137 11.3. Примеры использования штрафов Пример 11.1. С использованием квадратичного штрафа найти условный экстремум ЗО f ( x) = ( x1 − 4) 2 + ( x2 − 4) 2 → min h( x) = x1 + x2 − 5 = 0 Решение. Используем квадратичный штраф. Введем ШФ вида P( x, R) = ( x1 − 4) 2 + ( x2 − 4) 2 + R ⋅ ( x1 + x2 − 5) 2 В табл. 11.1 приведены координаты стационарных точек ШФ P( x, R ) : Таблица 11.1 R x1 = x2 P ( x, R ) 0.1 1 10 100 4.0 3.75 3.0 2.57 2.51 2.5 0.75 3.0 4.29 4.447 4.5 ∞ f ( x) 0.2 2 4 4.44 4.5 На рис. 11.8 изображены линии равных значений (линии уровня) ЦФ и вычисленный условный экстремум, находящийся на прямой, соответствующей ограничению-равенству h ( x ) . Линии уровня соответствуют следующим значениям целевой функции: A = 0.01; B = 3.0; C = 6.0; D = 9.0; J = 27. 5 4 A 3 B x* 2 C D 1 E J 1 2 Рис. 11.8 3 4 5 Обсудим данный пример подробнее. Рассмотрим стационарную точку функции P( x,1) . Эта точка уже довольно близка к x* , а именно x = (3,3) и f ( x) = 2, h( x) = 1 . Во многих прикладных задачах такое приближенное решение может считаться вполне удовлетворительным, однако в общем случае величина невязки h( x ) , как правило, неудовлетворительна. Возникает вопрос, как изменить ШФ, чтобы ее стационарная точка * приблизилась к x . 138 Заметим, что в точно вычисленной стационарной точке функции P( x,1) значение t t ЦФ f ( x ) < P ( x ,1) (оптимального) из – за нарушения условия h( x ) = 0 . При этом соотношение между значениями f ( x ) и P( x, R ) связано с величиной R , в данном случае R = 1 . По существу, R играет роль весового коэффициента, определяющего относительную значимость ограничения и ЦФ. Ясно, что при увеличении R стационарная точка функции P( x, R ) будет смещаться в сторону более точного выполнения * ограничения h( x ) = 0 и тем самым приближаться к x . Если бы можно было положить R = ∞ , то точное решение соответствующей подзадачи на безусловный минимум совпало бы с решением исходной задачи. Но выбрать R = ∞ (или очень большим) нельзя, т. к. при этом линии уровня ШФ становятся слишком вытянутыми – имеем овражную функцию. При этом сложность безусловной минимизации резко возрастает. Предпочтительнее стратегия многоэтапного последовательного приближения к решению: 1. процесс начинают с относительно малого R , например, R = 0.01 и находят точку минимума функции P( x,0.01) ; 2. увеличивают R ( R = 0.1) и находят минимум P ( x,0.1) , используя ранее полученную точку в качестве начальной; 3. R увеличивают до тех пор, пока не окажется, что элементы итерационных t t t последовательностей x , f ( x ), P( x , R) изменяются от шага к шагу достаточно мало. Однако, при этом увеличивается число итераций и время решения задачи. В этом основная трудность МШФ. Пример 11.2: f ( x) = ( x1 − 4) 2 + ( x2 − 4) 2 → min g ( x) = 5 − x1 − x2 ≥ 0 т. е. ограничение – равенство в примере 11.1 заменяется на неравенство. При этом * решение x задачи останется прежним. Используем штраф типа квадрата срезки. P( x, R ) = f ( x ) + R < g ( x ) > 2 , α , α ≤ 0 где < α >=   0, α > 0 Для нашего случая: P( x, R ) = ( x1 − 4) 2 + ( x2 − 4) 2 + R < 5 − x1 − x2 > 2 В табл. 11.2 приведены координаты стационарных точек ШФ P( x, R ) . Таблица 11.2 R x1 = x2 0.1 1 4 3.75 3.0 f ( x) 0.125 2 g ( x) H ( x) P ( x, R ) -3 -2.5 -1 0.625 1.0 0.75 3.0 139 10 100 1000 2.571 2.507 2.501 4.081 4.445 4.495 -0.142 -0.014 -0.001 0.201 0.0196 0.002 4.283 4.474 4.498 Таким образом, стационарная точка функции P( x,1) есть точка ~ x = (3,3) , причем f (~ x ) = 2, g ( ~ x ) = −1, P ( ~ x ,1) = 3 . При изменении R от 0 до ∞ стационарная точка функции P( x, R ) перемещается вдоль прямой, соединяющей точку ( 4,4) - безусловный минимум f ( x ) с точкой ( 2.5,2.5) ее условного минимума. При любом (конечном) R соответствующая стационарная точка недопустима, т. е. мы имеем дело с методом внешней точки. Пример11. 3. Рассмотрим применительно к этой же задаче логарифмический штраф (барьерная функция). P( x, R ) = f ( x) − R ln( g ( x)) В данном случае: P( x, R) = ( x1 − 4) 2 + ( x2 − 4) 2 − R ln(5 − x1 − x2 ) . Метод оказывается сходящимся в предположении, что безусловная минимизация проводится точно. Таблица 11.3. Стационарные точки логарифмического штрафа R x1 = x2 f ( x) g ( x) H P ( x, R ) 100 10 1 0.1 0.01 0.001 -1.8059 1.5 2.3486 2.4835 2.4983 2.5 67.417 12.5 5.4542 4.5995 4.51 4.5 8.6118 2.0 0.3028 0.0034 0.0034 0.00 -215.31 -6.93 1.1947 0.3411 0.0568 0.00 -147.896 5.5686 6.6489 4.9406 4.5668 4.5 Пример 11.4. Штраф – обратная функция (барьерная функция) Имеем P( x, R ) = f ( x) + R 1 . g ( x) Таблица 11.4. Стационарные точки штрафной функции для штрафа типа обратной функции R x1 = x2 100 10 1 0.1 0.01 0.001 0.5864 1.7540 2.234 2.4113 2.4714 2.4909 2.5 f ( x) g ( x) R g ( x) P ( x, R ) 3.3053 10.089 6.2375 5.0479 4.6732 4.5548 4.5 3.8272 1.492 0.532 0.1774 0.0572 0.0182 0.0000 26.1288 6.7024 1.8797 0.5637 0.1748 0.0549 0.0000 49.4341 16.7914 8.1172 5.6116 4.848 4.6097 4.5 Рассмотренные примеры демонстрируют с одной стороны, принципиальную возможность использования методов ШФ, а с другой стороны – их общие недостатки, а 140 именно: сходимость метода связана с овражностью ШФ и здесь традиционные методы безусловной минимизации могут оказаться неэффективными. Вопросы для самопроверки 1. 2. 3. 4. 5. 6. 7. 8. Общая схема штрафов. Методы внутреннего и внешнего штрафов. Квадратичный штраф. Штраф бесконечный барьер. Логарифмический штраф. Штраф типа обратной функции. Штраф типа квадрата срезки. Как строится последовательность штрафных квадратичного штрафа? 9. Как строится последовательность штрафных штрафа типа квадрата срезки? 10. Как строится последовательность штрафных логарифмического штрафа? 11. Как строится последовательность штрафных штрафа типа обратной функции? параметров при использовании параметров при использовании параметров при использовании параметров при использовании 141 Тема 12. Квадратичное программирование 12.1. Задача квадратичного программирования Задача квадратичного программирования (ЗКП) представляет собой задачу с линейными ограничениями и квадратичной ЦФ. Общая ЗКП имеет вид: f ( x) = n ∑c jx j j =1 + n n ∑ ∑ q ij x i x j → min i =1 j =1 при ограничениях n ∑ a ij x j = bi , i = 1, m , j =1 x j ≥ 0 , j = 1, n , или в матричном виде f ( x ) = c T x + x T Qx   Ax = b ,  x≥0  (12.1) где A − матрица ограничений (m × n); b − вектор ограничений (m × 1); c − вектор (1 × n); Q − квадратная матрица (n × n); x − вектор переменных (1 × n). Проиллюстрируем на примерах некоторые применение этой модели на конкретном примере. 12.2 Задача выбора портфеля ценных бумаг Определение оптимального портфеля ценных бумаг представляет собой одну из важнейших задач, с которыми сталкиваются инвестиционные фирмы − банки, фонды, страховые компании и частные лица. Под портфелем понимаются размеры вложений в различные виды ценных бумаг: обычные облигации, облигации краткосрочных государственных займов, банковские депозитные сертификаты, акции и др. Рассмотрим финансовую операцию, заключающуюся в покупке рискованных ценных бумаг по известной цене и в продаже их в будущем по цене, заранее не известной. Предполагается, что инвестор в настоящий момент времени инвестирует некоторую сумму денег в ценные бумаги. Эти деньги будут инвестированы на определённый промежуток времени, который называют периодом владения. В конце этого периода инвестор продает ценные бумаги, которые были куплены в начале периода. Таким образом, в момент t = 0 инвестор должен принять решение о покупке ценных бумаг, которые будут находиться в его портфеле до момента t = 1 . Такую задачу называют задачей выбора инвестиционного портфеля. Эффективность рискованной ценной бумаги зависит от трех факторов: цены покупки, которая точно известна; промежуточных выплат за период владения 142 (дивидендов), которые точно не известны; цены продажи, которая неизвестна. Таким образом, финансовая операция, заключающаяся в покупке ценной бумаги с целью получения определенного дохода в будущем, является рискованной. Основная гипотеза, которая позволяет анализировать такую операцию, состоит в следующем: предполагаем, что каждое конкретное значение эффективности такой финансовой операции является реализацией случайной величины C1 − C0 + D , C0 где C0 – цена покупки, C1 – цена продажи, D – дивиденды, выплаченные за период R= владения. Формируя портфель ценных бумаг, инвестор хотел бы максимизировать ожидаемую доходность портфеля при минимальном риске. Как правило, эти две цели противоречат друг другу. Принимая решение, инвестор стремится сделать так, чтобы эти две цели были сбалансированы. Доходность портфеля также является случайной величиной: Rp = W1 − W0 , W0 где W0 – совокупная цена покупки ценных бумаг, входящих в портфель в момент t = 0 , W1 – совокупная рыночная цена ценных бумаг в момент t = 1 и совокупный денежный доход от этих ценных бумаг (дивиденды), который владелец получит за период владения от момента t = 0 до t = 1 . Любая случайная величина может характеризоваться двумя параметрами: ожидаемое или среднее значение (математическое ожидание) и стандартное отклонение (среднеквадратичное отклонение). Согласно рассматриваемой модели, предполагается, что инвестор основывает свое решение по выбору портфеля только на этих двух параметрах. Следовательно, инвестор должен оценить ожидаемую доходность и стандартное отклонение каждого возможного портфеля. Затем он должен выбрать лучший из портфелей, основываясь на соотношении этих двух параметров. При этом ожидаемая доходность рассматривается как мера потенциального вознаграждения, связанная с конкретным портфелем, а стандартное отклонение - как мера риска, связанная с данным портфелем. Итак, рассмотрим финансовую операцию, которая заключается в покупке ценных бумаг в момент t = 0 по известной цене и в продаже их в момент t = 1 по цене, заранее не известной. При этом инвестор может рассчитывать на получение промежуточных выплат. Обозначим m = M ( R ) – ожидаемое значение эффективности ценной бумаги - математическое ожидание случайной величины R (это среднее по всем реализациям (значениям) случайной величины, вычисленное с учетом частоты их возможного 2 появления), V = M {( R − m) )} – дисперсия или вариация случайной величины – мера отклонения в среднем случайной величины R от ее ожидаемого значения. Часто вместо дисперсии используют среднеквадратичное или стандартное отклонение σ = V . Ковариация V12 = M {( R1 − m1 )( R2 − m2 )} характеризует статистическую взаимосвязь двух случайных величин R1 и R2 . Риск вложений в конкретные ценные бумаги связан с неопределённостью будущих доходов и, следовательно, с неопределенностью эффективности данной операции. Чем больше стандартное отклонение, тем больше в среднем случайная величина может отклониться от своего ожидаемого значения, тем больше неопределенность и выше риск. С другой стороны, если σ = 0 , то эффективность не отклоняется от своего ожидаемого 143 значения, она принимает определённые не случайные значения, и риск отсутствует. Таким образом, стандартное отклонение характеризует уровень риска, связанный с конкретной ценной бумагой, и принимается в качестве меры риска. Предположим, что инвестор вкладывает деньги не в один вид ценных бумаг, а несколько. В этом случае говорят, что инвестор диверсифицирует свой портфель. Рассмотрим эффект такой диверсификации. Пусть x j ( j = 1, 2,..., n) – доля общего вложения, приходящаяся на j -й вид ценных бумаг; n – количество видов ценных бумаг, которые инвестор включает в портфель. Очевидно, должно выполняться равенство n ∑ x j = 1. j =1 Пусть R p – эффективность портфеля, R j – эффективность j -й ценной бумаги. Тогда n Rp = ∑ R j x j . j =1 Ожидаемая эффективность портфеля: n n j =1 j =1 m p = M {R p } = ∑ x j M {R j } = ∑ x j m j , где m j = M {R j } – ожидаемая эффективность ожидаемой эффективности j -й ценной бумаги. Отклонение от n Rp − m p = ∑ x j (R j − m j ) . j =1 Дисперсия эффективности портфеля: n n n n V p = M {( R p − m p ) } = ∑∑ xi x j M {( Ri − mi )( R j − m j )} = ∑∑ Vij xi x j , 2 i =1 j =1 i =1 j =1 где Vij = M {( Ri − mi )( R j − m j )} – ковариация случайных эффективностей Ri и R j i ro и j -ro видов ценных бумаг. Нетрудно заметить, что V jj = M {( R j − m j ) 2} = σ 2j . Величина V p (или σ p ) характеризует неопределенность портфеля в целом и называется риском портфеля. При этих предположениях можно сформулировать следующую оптимизационную задачу: определить доли вложений x j , j = 1, 2,..., n минимизирующие вариацию (риск) портфеля n n V p = ∑∑Vij xi x j , i =1 j =1 при условии, что обеспечивается заданное значение m p ожидаемой эффективности портфеля n mp = ∑ m j x j . j =1 144 Кроме того, должны быть выполнены дополнительные ограничения вида n ∑ x j = 1, x j ≥ 0 j =1 при всех j = 1, 2,..., n . В этой модели целевая функция − квадратичная, ограничения − линейные. 12.2. Условие Куна-Таккера для ЗКП Задача КП имеет вид  f ( x ) = cx + x T Qx → min,  g ( x ) = x ≥ 0,  h ( x ) = Ax − b = 0 .  (12.2) Условия Куна-Таккера для ЗКП записываются следующим образом: где λ  c + x T ( Q + Q T ) − µ − λT A = 0,  Ax = b , x ≥ 0 ,   µx = 0 , µ ≥ 0 ,   (12.3) − неограниченная по знаку переменная. Пример 1. f ( x ) = − 6 x1 + 2 x12 − 2 x1 x 2 + 2 x 22 → min x1 + x 2 = 2 ; x1 , x 2 ≥ 0 . , Для этой задачи: − 1  ; A = (1;1) ; b = ( 2 ) ; 2  1 1 Q = H f ⋅ = ∇2 f ; 2 2  2 c = (− 6;0 ) ; Q =  −1 условия Куна-Таккера задаются следующим образом: − 2  4  − ( µ1 , µ 2 ) − λ1 ⋅ (1; 1) = 0 ( − 6; 0 ) + ( x1 ; x 2 ) ⋅  2 4 −   − 6 + 4 x1 − 2 x 2 − µ 1 − λ 1 = 0 ; или − 2 x1 + 4 x 2 − µ 2 − λ 1 = 0 ; x1 + x 2 = 2 x1 , x 2 ≥ 0 ; µ 1 x1 = 0 ; µ 2 x 2 = 0 , µ 1 , µ 2 ≥ 0 ; величина λ 1 неограничена по знаку. 145 Поскольку ограничение h ( x ) − линейное, то применима теорема Куна-Таккера. Таким образом, условие Куна-Таккера является необходимым условием оптимальности решения ЗКП. В случае положительной определенности или полуопределенности матрицы Q целевая функция является выпуклой и условия Куна-Таккера являются также и достаточными условиями оптимальности решения ЗКП. достаточно найти точку Т.о., в случае Hf ≥0 x , удовлетворяющую условиям Куна-Таккера. 12.3 Решение ЗКП методом симплексного преобразовании коэффициентов уравнений Эту задачу можно решить гораздо проще, с помощью симплексного преобразования таблицы коэффициентов уравнений; так мы ищем начальное базисное решение. Отличием здесь является только то, что µ i и x i не могут быть одновременно базисными, поэтому мы делаем базисными только x i и λ j . При этом необходимо учесть, что λ j могут быть любого знака, в то время как x j ≥ Для нашего примера имеем следующие таблицы. 0. Таблица 12.1 x2 x1 4 -2 -2 4 1 1 µ1 -1 µ2 -1 λ -1 -1 6 2 Таблица 12.2 x1 x2 3 -1/2 1 3/2 µ1 -1 µ2 -1/2 -1/4 1/4 λ -3/2 -1/4 1/4 6 2 Таблица 12.3 x2 x1 1 1 µ1 -1 µ2 -1 -1/6 1/6 λ -2 -1/6 1/6 2 2/3 4/3 Здесь мы получили базисные переменные переменную λ , не обращая внимания на ее знак. Таблица 12.4 x1 x2 1 1 µ1 1/2 1/12 -1/12 µ2 1/2 -1/12 1/12 λ 1 x1 , x 2 . Теперь введем в базис -1 ½ 3/2 146 x1 = Итак, получили базисные переменные: 3 / 2 ; x 2 = 1 / 2 ; λ = −1 ; µ 1 = 0 ; µ2 = 0. Заметим, в уравнении (12.3) мы взяли минус в слагаемом с λ . Если бы мы взяли плюс, то в таблице вместо (-1) был бы (+1) в первой и второй строке. В конечном решении мы бы получили λ = + 1 . 12.4 Метод решения ЗКП с помощью искусственного базиса Одним из методов решения ЗКП может быть метод решения системы (3) как задачи ЛП с использованием искусственного базиса и первой операции симплекс-метода. При этом условие (4) неявно учитывается в процедуре симплекс-метода при помощи правила ограниченного ввода в базис. Это правило запрещает вводить в базис небазисную µ j , если значение соответствующей базисной переменной переменную x j положительное. Введем искусственные следующую целевую функцию: переменные x3 , x 4 , x5 . В результате z = x 3 + x 4 + x 5 = 8 − 3 x1 − 3 x 2 + µ 1 + µ 2 + 2 λ В табл. 12.5 – 12.8 жирным курсивом выделены опорные элементы. Таблица 12.5 x1 4 -2 1 -3 x2 -2 4 1 -3 µ1 -1 1 µ2 -1 1 λ -1 -1 2 6 2 -8 x1 3 -1/2 3/2 -9/2 x4 1/2 1/4 -1/4 3/4 µ1 -1 1 µ2 -1/2 -1/4 1/4 1/4 λ -3/2 -1/4 ¼ 5/4 6 2 -8 Таблица 12.7 x5 x3 -2 x2 1/3 x1 2/3 3 x4 1 1/6 -1/6 µ1 -1 1 µ2 -1 -1/6 1/6 1 λ -2 -1/6 1/6 2 2 2/3 4/3 -2 x5 1 x4 -1/2 1 1 µ1 1/2 1/12 -1/12 µ2 1/2 -1/12 1/12 x3 -1/2 -1/12 1/12 1 -1 ½ 3/2 x3 x4 x5 Таблица 12.6 x3 x2 x5 Таблица 12.8 λ x2 x1 . получим 147 К сожалению, в случае положительно полуопределенной матрицы матрица Гессе H f ( x) ≥ 0 ) Q (т. е. этот метод может расходиться. Вопросы для самопроверки 1. Запишите модель задачи квадратичного программирования. 2. Запишите условие Куна-Таккера для задачи квадратичного программирования. 3. Поясните суть метода искусственного базиса решения задачи квадратичного программирования. 4. Поясните суть метода симплексного преобразования таблицы коэффициентов уравнений решения задачи квадратичного программирования. 148 Тема 13. Модели динамического программирования 13.1. Общая постановка задачи динамического программирования Динамическое программирование (ДП) — метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Такие операции называются многошаговыми. Начало развития ДП относится к 50-м годам XX в. Оно связано с именем американского математика Р.Беллмана1. Если модели линейного программирования можно использовать в экономике для принятия крупномасштабных плановых решений в сложных ситуациях, то модели ДП применяются при решении задач значительно меньшего масштаба, например, при разработке правил управления запасами, устанавливающими момент пополнения запасов и размер пополняющего заказа; при разработке принципов календарного планирования производства и выравнивания занятости в условиях колеблющегося спроса на продукцию; при распределении дефицитных капитальных вложений между возможными новыми направлениями их использования; при составлении календарных планов текущего и капитального ремонта сложного оборудования и его замены; при разработке долгосрочных правил замены выбывающих из эксплуатации основных фондов и т. п. В реально функционирующих больших экономических системах еженедельно требуется принимать микроэкономические решения. Модели ДЛ ценны тем, что позволяют на основе стандартного подхода при минимальном вмешательстве человека принимать такие решения. И если каждое взятое в отдельности такое решение малосущественно, то в совокупности эти решения могут оказать большое влияние на прибыль. Приведем общую постановку задами ДП. Рассматривается управляемый процесс, например, экономический процесс распределения средств между предприятиями. Процесс описывается n -м вектором x = ( x1 , x2 ,..., xn ) , т.е. точкой в R n , которое называют фазовым пространством. В результате (0) управления система (объект управления) S переводится из начального состояния x (N ) в состояние x . Предположим, что управление можно разбить на N шагов, т.е. пространстве решение принимается последовательно на каждом шаге, а управление, переводящее систему S из начального состояния в конечное, представляет собой совокупность N пошаговых управлений. (k ) (k ) Обозначим через u управление на k -м шаге ( k = 1,..., N ). Переменные u удовлетворяют некоторым ограничениям и в этом смысле называются допустимыми (k ) (u может быть числом, точкой в m -мерном пространстве, качественным признаком). В общем случае u представляет собой m -мерный вектор управления, m т.е. u ∈ R . В результате действия управления на каждом шаге получаем последовательность состояний x (0) , x (1) ,..., x ( N ) , которую изобразим кружками (рис. 13.1). 149 u(N-1) u(1) x(0) x(1) u(N) x(N-1) x(N) Рис. 13.1. Показатель эффективности рассматриваемого управляемого процесса характеризуется целевой функцией, которая зависит от начального состояния и управления: J = J ( x (0) , u ) . (13.1) Сделаем несколько предположений. 1. Состояние x (k ) системы в конце k -го шага зависит только от предшествующего ( k −1) (k ) состояния x и управления k -м шаге u (и не зависит от предшествующих состояний и управлений). Это требование называется "отсутствием последействия". Сформулированное положение записывается в виде уравнений x ( k ) = f ( k ) ( x ( k −1) , u ( k ) ) , k = 1, 2,..., N , (13.2) которые называются уравнениями состояний. 2. Целевая функция (1) является аддитивной от показателя эффективности каждого шага. Обозначим показатель эффективности k -ro шага через J k = J k ( x ( k −1) , u ( k ) ) , k = 1, 2,..., N , (13.3) тогда J ( x, u ) = N N ∑ J k = ∑ J k ( x(k −1) , u(k ) ) . (13.4) k =1 k =1 Задача пошаговой оптимизации (задача ДП) формулируется так: определить такое (0) (N ) допустимое управление u , переводящее систему S из состояния x в состояние x , при котором целевая функция (4) принимает наибольшее (наименьшее) значение. Предположим далее, что на фазовую траекторию и выбор управлений наложены ограничения x ( k ) ∈ X k , k = 1,..., N − 1 , (13.5) u ( k ) ∈U k ( x ( k −1) ), k = 1,..., N , (13.6) ( k −1) где X k и U k ( x ) - заданные множества в пространствах R n и R m соответственно, ( k −1) ) зависит, вообще говоря, от предыдущего состояния x (k −1) причем множество U k ( x k -го шага. 150 Ограничения на начальное и конечное состояния процесса x (0) ∈ X 0 , x (N) ∈ X N называются начальными и конечными условиями. (1) (2) (N ) - управление процессом, Пусть u = u , u ,..., u { } удовлетворяющее (0) ограничениям (13.6) и переводящее его из некоторого начального состояния x ∈ X0 в (N ) некоторое конечное состояние x ∈ X N в соответствии с уравнением (2) с учетом ограничений (13.5). Обозначим множество всех таких управлений буквой U . Многошаговая задача оптимизации формулируется следующим образом: среди всех (1) (N ) , для которого целевая функция (13.3) управлений u ∈U выбрать такое u = u ,..., u { } принимает минимальное или максимальное (в зависимости от смысла задачи) значение. Управление u и соответствующая ему фазовая траектория x называются оптимальными. Условие многошаговой задачи оптимизации будем записывать следующим образом: N J ( x, u ) = J k = J k ( x ( k −1) , u ( k ) ) → extr , (13.7) U k =1 x ( k ) = f ( k ) ( x ( k −1) , u ( k ) ), k = 1,..., N , (13.8) u ( k ) ∈U k ( x ( k −1) ), k = 1,..., N , (13.9) x (0) ∈ X 0 , x ( N ) ∈ X N . Выделим особенности модели ДП: 1. Задача оптимизации интерпретируется как N -шаговый процесс управления, 2. Целевая функция равна сумме целевых функций каждого шага. 3. Выбор управления на k -м шаге зависит только от состояния системы к этому шагу, не влияет на предшествующие шаги (нет обратной связи). ∑ 4. Состояние x ( k ) после предшествующего состояния x k -го ( k −1) 5. На каждом шаге управление u шага управления и управления u (k ) (k ) зависит только от (отсутствие последействия). зависит от конечного числа управляющих (k ) переменных, а состояние x — от конечного числа параметров (смысл замечания 5 станет ясным из рассмотренных ниже примеров). Существуют различные способы решения подобных задач, применяемые в зависимости от вида функций, ограничений, размерности и т. п. Рассмотрим вычислительную схему ДП, которая окажется безразличной к способам задания функций и ограничений. Вычислительная схема связана с принципом оптимальности и использует рекуррентные соотношения. 13.2. Принцип оптимальности и уравнения Беллмана Принцип оптимальности впервые был сформулирован Р. Беллманом в 1953 г. Каково бы ни было состояние x системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, 151 включая данный. Беллманом четко были сформулированы и условия, при которых принцип верен. Основное требование — процесс управления должен быть без обратной связи, т.е. управление на данном шаге не должно оказывать влияния на предшествующие шаги. Принцип оптимальности утверждает, что для любого процесса без обратной связи оптимальное управление таково, что оно является оптимальным для любого подпроцесса по отношению к исходному состоянию этого подпроцесса. Поэтому решение на каждом шаге оказывается наилучшим с точки зрения управления в целом. Если изобразить геометрически оптимальную траекторию в виде ломаной линии, то любая часть этой ломаной будет являться оптимальной траекторией относительно начала и конца, Уравнения Беллмана. Вместо исходной задачи ДП (см. разд. 6.1) с фиксированным (0) числом шагов N и начальным состоянием x рассмотрим последовательность задач, полагая последовательно N =1, 2,... при различных x — одношаговую, двухшаговую и т.д., — используя принцип оптимальности. Введем ряд новых обозначений. Обозначения в ДП несут большую информационную нагрузку, поэтому очень важно их четко усвоить. На каждом шаге любого состояния системы x ( k −1) решение u (k ) нужно выбирать "с оглядкой", так как этот выбор влияет на последующее состояние x процесс управления, зависящий от x (k ) (k ) и дальнейший . Это следует из принципа оптимальности. Но есть один шаг, последний, который можно для любого состояния планировать локально-оптимально, исходя только из соображений этого шага. Рассмотрим N -й шаг: x ( N −1) x ( N −1) (N ) — состояние системы к началу N -го шага, x — (N ) ( N −1) ( N ) конечное состояние, u — управление на N -м шаге, а J k ( x ,u ) — целевая функция (выигрыш) N -го шага. Согласно принципу оптимальности, u состояний x ( N −1) Обозначим (N ) нужно выбирать так, чтобы для любых получить максимум (минимум) целевой функции на этом шаге. через BN ( x ( N −1) ) максимум целевой функции — показателя эффективности N -го шага при условии, что к началу последнего шага система S x ( N −1) , а на последнем шаге управление было была в произвольном состоянии оптимальным. BN ( x ( N −1) ) называется условным максимумом целевой функции на N -м шаге. Очевидно, что BN ( x ( N −1) ) = ) ( max ( N −1) J N ( x ( N −1) , u ( N ) ) . u ∈U N ( x (N) ) (13.10) Максимизация ведется по всем допустимым управлениям U N . Решение u (N ) ( N −1) ( N −1) , при котором достигается BN ( x ) , также зависит от x и называется условным оптимальным управлением на N -м шаге. Оно обозначается через u (N ) ( x ( N −1) ) . 152 условно оптимальный выигрыш на N –м шаге BN (x(N−1) ) u ( N −1) u (N ) ( x ( N −1) ) x ( N −1) x ( N −2) x( N ) Значение целевой функции (N -1)-го шага при произвольном управлении J N −1 ( x ( N −2) , u ( N −1) ) u ( N −1) и состоянии x ( N −2) Рис. 13.2 Решив задачу локальной оптимизации (13.10), найдем для всех возможных состояний x ( N −1) две функции: BN ( x ( N −1) ) и u (N ) ( x ( N −1) ) . Рассмотрим теперь двухшаговую задачу: присоединим к N -му шагу ( N − 1) -й шаг (рис. 13.2). ( N − 2) ( N −1) Для любых состояний x , произвольных управлений u и оптимальном управлении на N -м шаге значение целевой функции на двух последних шагах равно: J N −1 ( x ( N − 2) , u ( N −1) ) + BN ( x ( N −1) ) . (13.11) ( N − 2) Согласно принципу оптимальности для любых x решение нужно выбирать так, чтобы оно вместе с оптимальным управлением на последнем ( N -м) шаге приводило бы к максимуму целевой функции на двух последних шагах. Следовательно, нужно найти максимум выражения (13.11) по всем допустимым управлениям u ( N − 2) ( N −1) . Максимум ( N − 2) этой суммы зависит от x и обозначается через BN −1 ( x ) и называется условным максимумом целевой функции при оптимальном управлении на двух последних шагах. Соответствующее управление u u ( N −1) ( N −1) на ( N − 1) -м шаге обозначается через ( x ( N −2) ) и называется условным оптимальным управлением на ( N − 1) -м шаге. { } BN −1 ( x ( N − 2) ) = max J N −1 ( x ( N − 2) , u ( N −1) ) + BN ( x ( N −1) ) . U N −1 (13.12) Следует обратить внимание на то, что выражение, стоящее в фигурных скобках ( N − 2) (13.12), зависит только от x состояний (13.2) при k = N − 1 иu ( N −1) , так как x ( N −1) можно найти из уравнения x ( N −1) = f ( N −1) ( x ( N − 2) , u ( N −1) ) и подставить вместо x ( N −1) в функцию BN ( x ( N −1) ). 153 В результате максимизации только по одной переменной u (13.12) вновь получаются две функции: BN −1 ( x ( N −2) ) и u ( N −1) ( N −1) согласно уравнению ( x ( N −2) ) . Далее рассматривается трехшаговая задача: к двум последним шагам присоединяется ( N − 2) -й шаг и т.д. Обозначим через Bk ( x ( k −1) ) условный максимум целевой функции, полученный при оптимальном управлении на N − ( k − 1) шагах, начиная с k -го до конца, при условии, что к началу k -го шага система находилась в состоянии x Bk ( x ( k −1) ) = ( k −1) . Фактически эта функция равна N max J i ( x (i −1) , u (i ) ) . ∑ } {U k ,...,U N i = k Тогда Bk +1 ( x (k ) )= N ∑ max {U k ,...,U N } i = k +1 J i ( x (i −1) , u (i ) ) . Целевая функция на ( N − k ) последних шагах (рис. 3) при произвольном управлении u ( k ) на k -м шаге и оптимальном управлении на последующих ( N − k ) шагах равна J k ( x ( k −1) , u ( k ) ) + Bk +1 ( x ( k ) ) . Согласно принципу оптимальности, u суммы, т.е. (k ) выбирается из условия максимума этой { } Bk ( x ( k −1) ) = max J k ( x ( k −1) , u ( k ) ) + Bk +1 ( x ( k ) ) , k = N − 1, N − 2,..., 2,1 . (13.13) Uk Управление u через u (k ) (k ) на k -м шаге, при котором достигается максимум в (13.13), обозначается ( x ( k −1) ) и называется условным оптимальным управлением на k -м шаге (также как и в (13.12) в правую часть уравнения (13.13) вместо x x (k ) = f (k ) (x ( k −1) ,u (k ) (k ) следует подставить выражение ) , найденное из уравнения состояния). J k ( x ( k −1) , u ( k ) ) + Bk +1 ( x ( k ) ) Bk +1 ( x ( k ) ) x ( k −1) u(k ) x(k ) u ( k +1) ( x(k ) ) J k ( x ( k −1) , u ( k ) ) Рис. 13.3. u (N ) ( x ( N −1) ) x( N ) 154 ( k −1) ) называется функцией Беллмана последних N − ( k − 1) шагов. Функция Bk ( x Уравнения (13.13) называют уравнениями Беллмана. Это рекуррентные соотношения, позволяющие найти предыдущее значение функции, зная последующие. Если из (10) найти BN ( x ( N −1) ) , то при k = N − 1 из (13) можно определить, решив задачу максимизации для всех возможных значений x ( N −1) ( N − 2) , выражение для BN −1 ( x ( N − 2) ( N − 2) ) и соответствующее ( N − 2) ( N −3) управление u (x ) . Далее, зная BN −1 ( x ) , находим BN − 2 ( x используя (13.13) и уравнение состояния (13.2). Процесс решения уравнений (13.10) и (13.13) называется условной оптимизацией. В результате условной оптимизации получаются две последовательности: 1) условные максимумы целевой функции на последнем, двух последних, на … N шагах ), BN ( x ( N −1) ), BN −1 ( x ( N − 2) ),..., B2 ( x (1) ), B1 ( x (0) ) ; 2)условные оптимальные управления на N -м, ( N − 1) -м,…,1-м шагах u x (0) (N ) ( x ( N −1) ), u ( N −1) ( x ( N − 2) ),..., u (2) ( x (1) ), u (1) ( x (0) ) . Используя эти последовательности, можно найти решение задачи ДП при данных N и . По определению B1 ( x (0) ) — условный максимум целевой функции за N шагов при (0) условии, что к началу 1-го шага система была в состоянии x , т.е. Bmax = B1 ( x (0) ) . (13.14) Далее, используя последовательность условных оптимальных управлений и уравнения (1) (1) (2) (2) (N ) (N ) состояний (8), последовательно находим u , x , u , x , …, u ,x из следующих соотношений: (1) (1) (0) (1) (1) (0) (1) =u u (2) (x (2) ), = f x (1) (x (2) = u ( x ), x = f (2) ( x .........................................................., u u (N ) =u (N ) (x ( N −1) ), x (N ) ,u (1) ,u ), (2) ), (13.15) ( N −1) ( N ) , u ). = f (N ) (x Этот этап называется безусловной оптимизацией. 13.3. Задача о распределении средств между предприятиями Планируется деятельность четырех промышленных предприятий (системы) на очередной (0) год. Начальные средства: x = 5 усл.ед. Размеры вложения в каждое предприятие кратны 1 усл.е. Средства u , выделенные k -му предприятию ( k = 1, 2,3, 4 ), приносят в конце года прибыль J k (u ) . Функции J k (u ) заданы таблично (табл.1). Принято считать, что: а) прибыль J k (u ) не зависит от вложения средств в другие предприятия; б) прибыль от каждого предприятия выражается в одних условных единицах; в) суммарная прибыль равна сумме прибылей, полученных от каждого предприятия. Определить, какое количество средств нужно выделить каждому предприятию, чтобы суммарная прибыль была наибольшей. 155 Таблица 13.1. u J1 ( u ) J 2 (u ) J 3 (u ) J 4 (u ) 1 8 2 10 3 11 4 12 5 18 6 9 11 13 15 3 4 7 11 18 4 6 8 13 16 Решение. Обозначим через u Суммарная прибыль равна (k ) количество средств, выделенных k -му предприятию. 4 J = ∑ J k (u ( k ) ) . (13.16) k =1 Переменные u удовлетворяют ограничениям: 4 ∑ u(k ) = 5, u(k ) ≥ 0, k = 1, 2,3, 4 . (13.17) k =1 (1) (2) (3) (4) Требуется найти переменные u , u , u , u , удовлетворяющие системен ограничений (13.17) и обращающие в максимум функцию (13.16). Схема решения задачи методом ДП имеет следующий вид: процесс решения (0) = 5 можно рассматривать как 4-шаговый, номер шага совпадает (1) (2) (3) (4) с номером предприятия; выбор переменных u , u , u , u — управление распределения средств x (4) = 0, соответственно на I, II, III, IV шагах. Конечное состояние процесса распределения x так как все средства должны быть вложены в производство. Схема распределения показана на рис. 4. Уравнения состояний (2) в данной задаче имеют вид: x ( k ) = x ( k −1) − u ( k ) , k = 1, 2,3, 4 , (13.18) (k ) где x — параметр состояния — количество средств, оставшихся после k -го шага, т.е. средства, которые остается распределить между оставшимися 4 − k предприятиями. B1 ( x (0) = 5) x (0) = 5 u(1) B2 ( x (1) ) B3 ( x (2) ) B4 ( x (3) ) x (1) = x (2) = x (3) = x (4) = = 5 − u (1) = x (1) − u (2) = x (2) − u(3) = x (3) − u (4) = 0 u(2) u(3) u(4) Рис. 13.4. ( k −1) ) , ( k = 4,3, 2,1 ) — условную оптимальную прибыль, полученную от 4-го предприятия ( k = 4 ), 4-го и 3-го предприятий ( k = 3 ), 4-го, 3-го и 2-го предприятий ( k = 2 ) и всех четырех предприятий ( k = 1 ). При этом Введем в рассмотрение функцию Bk ( x 156 (0 ≤ x ( k −1) ≤ 5) распределяются между ними оптимальным образом. Допустимые управления на k -м шаге удовлетворяют условию: 0 ≤ u ( k ) ≤ x ( k −1) (либо k -му предприятию ничего не выделяем, u ( k ) = 0 , либо не больше (k ) того, что имеем к k -му шагу, u ≤ x ( k −1) ). предполагается, что средства x ( k −1) Уравнения (13.11) и (13.14) имеют вид: k = 4, x (4) = 0 ⇒ B4 ( x (3) ) = max J 4 (u (4) ) , (4) ( 3) (а) 0≤u ≤ x ( ) B2 ( x (1) ) = max ( J 2 (u (2) ) + B3 ( x (2) ) ) , 0≤ u ≤ x (0) B1 ( x = 5) = max ( J1 (u (1) ) + B2 ( x (1) ) ) . 0≤ u ≤ x B3 ( x (2) ) = max J 3 (u (3) ) + B4 ( x (3) ) , ( 3) (2) (б) 0≤u ≤ x ( 3) (в) ( 2) ( 3) (г) (2) Последовательно решаем записанные уравнения, проводя условную оптимизацию (см. рис. 13.4) каждого шага. IV шаг. В табл. 1 прибыли J 4 ( u ) монотонно возрастают, поэтому все средства, оставшиеся к IV шагу следует вложить в 4-е предприятие. При этом для возможных значений x (3) = 0,1,...,5 получим: B4 ( x (3) ) = J 4 ( x (3) ) и u (4) ( x (3) ) = x (3) . III шаг. Делаем все предположения относительно остатка средств x после выбора u x (1) и u (2) ). Величина x (2) (2) к III шагу (т.е. может принимать значения 0,1,2,3,4,5 (например, (2) (2) =0, если все средства отданы 1-му и 2-му предприятиям, x =5, если 1-е и 2-е предприятия ничего не получили, и т.д.). В зависимости от этого выбираем управление 0 ≤ u (3) ≤ x (2) , находим x (3) = x (2) − u (3) и сравниваем для разных u (3) при (2) (3) (3) (2) значения суммы J 3 (u ) + B4 ( x ) . Для каждого x наибольшее фиксированном x из этих значений есть B3 ( x (2) ) — условная оптимальная прибыль, полученная при оптимальном распределении средств x (2) между 3-м и 4-м предприятиями. Результаты расчетов даны в табл. 2 для. Для каждого значения x u (3) (2) при k =3 величины B3 ( x (2) ) и ( x (2) ) помещены в столбцы 5 и 6 соответственно. II шаг. Условная оптимизация в соответствии с выражением (в) представлена в табл.2 при k = 2 u (2) в столбцах 7 – 9. Для всевозможных значений x (1) величины B2 ( x (1) )и ( x (1) ) даны в столбцах 8 и 9 соответственно; первые слагаемые в столбце 7 — значения J 2 (u (2) ) , взяты из табл.1, а вторые слагаемые взяты из столбца 5 табл. 2 при x (2) = x (1) − u (2) . Таблица 2. k =3 x ( k −1) (k ) u(k ) x J 3 (u (3) )+ B4 ( x (3) ) B3 ( x (2) k =2 ) u (3) ( x (2) ) J 2 (u (2) )+ B3 ( x (2) ) B2 ( x (1) k =1 ) u (2) ( x (1) ) J1 ( u (1) B2 ( x )+ (1) ) B1 ( x (0) ) u (1) ( x (0) ) 157 1 2 3 4 5 6 7 8 9 1 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 0+4=4 3+0=3 0+6=6 3+4=7 4+0=4 0+8=8 3+6=9 4+4=8 7+0=7 0+13=13 3+8=11 4+6=10 7+4=11 11+0=11 0+16=16 3+13=16 4+8=12 7+6=13 11+4=15 18+0=18 4 0+4=4 6+0=6 0+7=7 6+4=10 9+0=9 0+9=9 6+7=13 9+4=13 11+0=11 0+13=13 6+9=15 9+7=16 11+4=15 13+0=13 0+18=18 6+13=19 9+9=18 11+7=18 13+4=17 15+0=15 6 1 10 1 13 1 2 16 2 19 1 2 3 4 5 7 1 9 1 13 18 5 10 0+6=6 8+0=8 0+10=10 8+6=14 10+0=10 0+13=13 8+10=18 10+6=16 11+0=11 0+16=16 8+13=21 10+10=20 11+6=17 12+0=12 0+19=19 8+16=24 10+13=23 11+10=21 12+6=18 18+0=18 11 12 8 1 14 1 18 1 21 1 24 1 I шаг. Условная оптимизация в соответствии с выражением (г) приведена в табл. 2 при k = 1 (здесь достаточно провести расчеты только для x состояние задано и равно 5). Дадим пояснение этим расчетам. Если u (1) (0) = 5 , так как начальное = 0 , то x (1) = 5 , прибыль, полученная от (1) четырех предприятий при условии, что x = 5 у.е. средств между оставшимися тремя предприятиями будут распределены оптимально, равна J1 (0) + B2 (5) =0+19=19 (величина B2 (5) взята из столбца 8 табл. 2 при x (1) =5). Если u (1) = 1 , то x (1) = 4 . Суммарная (1) прибыль от четырех предприятий при условии, что x =4 у.е. средств между оставшимися тремя предприятиями будут распределены оптимально, равна J1 (1) + B2 (4) =8+16=24 ( J1 (1) взято из табл. 1, а B2 (4) — из столбца 8 табл. 2). Аналогично при u (1) = 2 , x (1) = 3 , и J1 (2) + B2 (3) =10+13=23. Продолжая этот процесс, мы получим: при u (1) = 3 , x (1) = 2 и J1 (3) + B2 (2) =11+10=21; при u (1) = 4 , x (1) = 1 и J1 (4) + B2 (1) =12+6 =18; при u (1) = 5 , x (1) = 0 и J1 (5) + B2 (0) =18+0=18. (1) (1) Сравнивая подчеркнутые числа, получим Bmax = B1 (5) =24 при u = u (5) =1. Рассмотрим этап безусловной оптимизации. Используя уравнения (18), получим x (1) =x (0) −u (1) (2) =x =5 - 1 = 4. В табл. 2 в столбце 9 находим u этот процесс, имеем: x (1) −u (2) = 4 – 2 = 2, u (3) =u (3) (2) =u (2) =1 (см. столбец 6); (2) (4) =2 Продолжая 158 x (3) =x (2) −u (3) = 2 – 1 = 1, u (4) =u (4) 5 (1) =1, так как ∑u (k ) = 5 (см. условие k =1 (17)). Таким образом имеем: максимум суммарной прибыли равен 24 у.е. средств при условии, что 1-му предприятию выделено 1 у.е., 2-му предприятию — 2 у.е., 3-му предприятию — 1 у.е., 4-му предприятию — 1.у.е. Замечание 1. Метод ДП безразличен к виду и способу задания функции прибыли J k (u ) . Здесь они были заданы таблично, поэтому оптимальные Bk ( x ) и u дискретные значения, представленные в табл. 13.2. Если бы (k ) ( x ) принимали J k (u ) были заданы (k ) аналитически, то Bk ( x ) и u ( x ) также были бы получены в аналитическом виде. Замечание 2. В рассмотренных задачах состояния системы x и управления u были скалярными величинами, поэтому на каждом шаге у нас рассматривались одномерные задачи оптимизации. В общем случае, как мы отмечали ранее состояния системы x ∈ R n m описываются n -мерным вектором, а управления — m -мерным вектором ( u ∈ R ). Поэтому с увеличением размерности векторов состояний и управлений объем вычислений резко возрастает, так как на каждом шаге возникает n ⋅ m -мерная задача оптимизации. 13.4. Задача об оптимальном распределении ресурсов между отраслями на N лет Планируется деятельность двух отраслей производства на N лет. Начальные ресурсы x (0) . Средства u , вложенные в I отрасль в начале года, дают в конце года прибыль J1 (u ) и возвращаются в размере q1 ( u ) < u ; аналогично для II отрасли функция прибыли равна J 2 (u ) , а возврата — q2 (u ) ( q2 (u ) < u ). В конце года все возвращенные средства заново перераспределяются между I и II отраслями, новые средства не поступают, прибыль в производство не вкладываются. (Последние условия определяют вид уравнений состояний; если поступают новые средства или часть прибыли вкладывается в производство, то это можно легко учесть, так как алгоритм метода ДП не изменится). (0) Требуется распределить имеющиеся средства x между двумя отраслями производства на N лет так, чтобы суммарная прибыль от обеих отраслей за N лет оказалась максимальной. Необходимо: а) построить модель ДП для задачи и вычислительную схему; б) решить задачу при условии, что x (0) = 10000 у.е., N = 4 , J1 (u ) = 0.6u , q1 (u ) = 0.7u , J 2 (u ) = 0.5u , q2 (u ) = 0.8u . Решение. а) Процесс распределения средств между двумя отраслями производства разворачивается во времени, решения принимаются в начале каждого года, следовательно, осуществляется деление на шаги: номер шага — номер года. Управляемая система — две отрасли производства, а управление состоит в выделении средств каждой ( k −1) отрасли в очередном году. Параметры состояния к началу k -го года — x ( k = 1, 2,..., N ) — количество средств, подлежащих распределению. Переменных 159 (k ) управления на каждом шаге две: u1 (k ) — количество средств, выделенных I отрасли, и u2 — II отрасли. Но так как все средства x поэтому управление ( k −1) (k ) распределяются, то u2 = x ( k −1) − u1( k ) , k -м шаге зависит от одной переменной на u1( k ) , т.е. U ( k ) (u ( k ) , x ( k −1) − u ( k ) ) . Уравнения состояний x ( k ) = q1 (u ( k ) ) + q2 ( x ( k −1) − u ( k ) ) (13.19) выражают остаток средств, возвращенных в конце k -го года. Показатель эффективности k -го шага — прибыль, полученная в конце k -го года от обеих отраслей: J k = J1 (u ( k ) ) + J 2 ( x ( k −1) − u ( k ) ) (13.20) Суммарный показатель эффективности — целевая функция — прибыль за N лет: N ( k =1 ) J = ∑ J1 (u ( k ) ) + J 2 ( x ( k −1) − u ( k ) ) . Пусть Bk ( x ( k −1) (21) ) – условная оптимальная прибыль за N − k + 1 лет, начиная с k -го года до N -го включительно, при условии что имеющиеся на начало k -го года средства x дальнейшем распределялись оптимально. Тогда оптимальная прибыль за N лет ( k −1) в J max = B1 ( x (0) ) . Уравнения Беллмана приобретают вид: BN ( x ( N −1) ) = 0≤ u Bk ( x ( k −1) ) = k = N − 1, N − 2,...,1 max {J1 (u ( N ) ) + J 2 ( x ( N −1) − u ( N ) )} , (N ) ( N −1) (13.22) max {J1 (u ( k ) ) + J 2 ( x ( k −1) − u ( k ) )} , (k ) ( k −1) (13.23) ≤x 0≤ u ≤ x б) Выполним вычисления для конкретных данных. Уравнение состояний (19) примет вид: x ( k ) = 0.7u ( k ) + 0.8( x ( k −1) − u ( k ) ) = 0.8 x ( k −1) − 0.1u ( k ) . Целевая функция k го шага (20) J k = 0.6u ( k ) + 0.5( x ( k −1) − u ( k ) ) = 0.5 x ( k −1) + 0.1u ( k ) . (13.24) Целевая функция задачи 4 ( k =1 ) J = ∑ 0.5 x ( k −1) + 0.1u ( k ) . (13.25) Уравнения Беллмана B4 ( x (3) ) = Bk ( x ( k −1) ) = max {0.5 x (3) + 0.1u (4) } , ( 4) ( 3) 0≤ u ≤ x ( k −1) (k ) (k ) max {0.5 x + 0.1 u + B ( x )} . k + 1 (k ) ( k −1) 0≤ u ≤ x (13.26) (13.27) 160 Проводим условную оптимизацию. J4 0.5x (3) u(4) x (3) Рис. 13.5 IV шаг. Используем уравнение (13.26). Обозначим через J 4 функцию, стоящую в скобках, J 4 = 0.5 x ( k −1) + 0.1u ( k ) ; функция J 4 — линейная, возрастающая. Поэтому максимум достигается на конце интервала [0, x u (4) (3) ] (см. рис. 13.5) Поэтому, B4 ( x (3) ) = 0.6 x (3) при ( x (3) ) = x (3) . III шаг. Запишем уравнение (13.27) для k =3 B3 ( x (2) ) = (2) (3) (3) max {0.5 x + 0.1 u + 0.6 x }. ( 3) (2) 0≤u ≤ x (3) из уравнения состояния (24) x Найдем x правую часть, получим B3 ( x (2) ) = B3 ( x (2) ) = (3) = 0.8 x (2) − 0.1u (3) и подставим его в max {0.5 x (2) + 0.1u (3) + 0.6(0.8 x (2) − 0.1u (3) )} , или ( 3) (2) 0≤ u ≤ x max {0.98 x (2) + 0.04u (3) } . ( 3) (2) 0≤ u ≤ x Как и в предыдущем случае, максимум достигается при u B3 ( x (2) ) = 1.02 x (2) при u (3) = 0≤ u ≤ x (1) (2) : x (2) = 0.8 x (1) − 0.1u (2) . Уравнение (13.27) + 0.1u (2) + 1.02(0.8 x (1) − 0.1u (2) )} . После преобразования получим: max {1.316 x (1) − 0.002u (2) } . (2) (1) 0≤ u ≤ x Имеем убывающую по u при u (2) max {0.5 x (1) + 0.1u (2) + 1.02 x (2) } = (2) (1) max {0.5 x (2) (1) 0≤u ≤ x B2 ( x (1) ) = = x (2) , т.е. ( x (2) ) = x (2) . II шаг. Из уравнения состояния находим x при k =2 примет вид: B2 ( x (1) ) = (3) (2) функцию на отрезке [0, x (1) ] , поэтому максимум достигается = 0 (см. рис. 13.6) B2 ( x (1) ) = 1.316 x (1) при u (2) ( x (1) ) = 0 . 161 J2 1.316x (1) u(2) x (1) Рис. 13.6 = 0.8 x (0) − 0.1u (1) . Уравнение (27) при k =1 имеет вид: B1 ( x (0) ) = max {0.5 x (0) + 0.1u (1) + 1.316(0.8 x (0) − 0.1x (1) } , или (1) (0) I шаг. x (1) 0≤ u ≤ x B1 ( x (0) ) = max {1.5528 x (0) − 0.0316u (1) } . (1) (0) 0≤ u ≤ x Максимум достигается в начале отрезка, т.е. (1) ( x (0) ) = 0 . Переходим к безусловной оптимизации. J max = B1 (10000) = 15528 . B1 ( x (0) ) = 1.5528 x (0) при u (1) (1) (1) u1 = 0, u 2 = x (0) − u1 = 10000 (все средства выделяются II отрасли); → x (1) (2) = 0.8 x (0) (2) u1 = 0 , u 2 = x (1) − 0.1u (3) (2) (2) − 0.1u (4) = 4480 , u 2 (3) (3) = 0.8 x → x (3) = 0.8 x = 0.8 ⋅ 10000 − 0.1 ⋅ 0 = 8000 ⇒ = 8000 (все средства выделяются II отрасли); u1 = 6400 , u 2 = x (4) u1 (0) (1) → x (2) − 0.1u =x (2) = 0.8 ⋅ 8000 − 0.1 ⋅ 0 = 6400 ⇒ (3) − u1 = 0 (все средства выделяются I отрасли); (3) = 0.8 ⋅ 6400 − 0.1 ⋅ 6400 = 4480 ⇒ (4) − u1 = 0 (все средства выделяются I отрасли). Оптимальная прибыль за 4 года, полученная от двух отраслей производства при начальных средствах 10000 у.е., равна 15528 у.е. при условии, что I отрасль получает по годам (0, 0, 6400, 4480), а II отрасль — соответственно (10000, 8000, 0, 0). 13.5. Задача о замене оборудования Замена оборудования — важная экономическая проблема. Задача состоит в определении оптимальных сроков замены старого оборудования (станков, производственных зданий и т. п.). Старение оборудования включает его физический и моральный износ, в результате чего растут производственные затраты, затраты на ремонт и обслуживание, снижаются производительность труда, ликвидная стоимость. Критерием оптимальности являются, как правило, либо прибыль от эксплуатации оборудования (задача максимизации), либо суммарные затраты на эксплуатацию в течение планируемого периода (задача минимизации). 162 При построении модели задачи принято считать, что решение о замене выносится в начале каждого промежутка эксплуатации (например, в начале года) и что в принципе оборудование можно использовать неограниченно долго. Основная характеристика оборудования — параметр состояния — его возраст t . При составлении динамической модели замены процесс замены рассматривают как N -шаговый, разбивая весь период эксплуатации на N шагов. Возможное управление на каждом шаге характеризуется качественными признаками, например, U з с (сохранить р оборудование), U (заменить) и U (сделать ремонт). Рассмотрим конкретный пример. • Пример. Оборудование эксплуатируется в течение 5 лет, после этого продается. В начале каждого года можно принять решение сохранить оборудование или заменить его новым. Стоимость нового оборудования p0 = 4 000 ден. ед. После t лет эксплуатации ( 1 ≤ t ≤ 5 ) оборудование можно продать за g (t ) = p0 2 −t ден. ед. (ликвидная стоимость). Затраты на содержание в течение года зависят от возраста t оборудования и равны r ( t ) = 600( t + 1) . Определить оптимальную стратегию эксплуатации оборудования, чтобы суммарные затраты с учетом начальной покупки и заключительной продажи были минимальны. Решение. Способ деления управления на шаги естественный, по годам, N = ( k −1) (0) 5. Параметр состояния — возраст машины — x = t , x = 0 — машина новая в начале первого года эксплуатации. Управление на каждом шаге зависит от двух с з переменных U и U . Уравнения состояний зависят от управления: x ( k −1) t + 1, если u ( k ) = U c , = если u ( k ) = U з , k = 1, 2,3, 4. 1, (13.28) ( k −1) = t , то при сохранении машины ( u ( k ) = U c ) (k ) через год возраст машины увеличится на 1. Если машина заменяется новой ( u = U з ), то это означает, что к началу k -го шага ее возраст t = 0 , а после года эксплуатации t = 1, (k ) т.е. x = 1. Показатель эффективности k -го шага: 600(t + 1), если u ( k ) = U c , (k ) J k (u , t ) =  (13.29) з −t (k ) 4600 4000 2 , , 1,..., 4. − ⋅ = = если u U k  В самом деле, если к k -му шагу x (При U с затраты только на эксплуатацию машины возраста t , при U продается ( − 4000 ⋅ 2 −t з машина ), покупается новая (4000) и эксплуатируется в течение первого года (600), общие затраты равны ( − 4000 ⋅ 2 −t − 4000+600 ). Пусть Bk (t ) — условные оптимальные затраты на эксплуатацию машины, начиная с k-то шага до конца, при условии, что к началу k-го шага машина имеет возраст t лет. Запишем для функций Bk (t ) уравнения Беллмана (10) и (13), заменив задачу максимизации на задачу минимизации: 163 600(t + 1) − 4000 ⋅ 2 −( t +1) , если u (5) = U с , B5 = min  −t − ( t +1) , если u (5) = U з .  4600 − 4000 ⋅ 2 − 4000 ⋅ 2 (13.30) − ( t +1) Величина 4000 ⋅ 2 — стоимость машины возраста t лет (по условию машина после 5 лет эксплуатации продается). 600(t + 1) + Bk +1 (t + 1), если u ( k ) = U с , Bk = min  (k ) −t з  4600 − 4000 ⋅ 2 + Bk +1 (1), если u = U . k = 4,3, 2,1. Из определения функций Bk (t ) следует J min = B1 (0) . (13.31) Дадим геометрическое решение этой задачи. На оси абсцисс будем откладывать номер шага k , на оси ординат — возраст t машины. Точка ( k − 1, t ) на плоскости соответствует началу k -гo года эксплуатации машины возраста t лет. Перемещение на графике в зависимости от принятого управления на k -м шаге показано на рис. 7. Состояние начала эксплуатации машины соответствует точке x (0) (0,0) , конец — (0) точкам xɵ (6, t ) . Любая траектория, переводящая точку x ( k − 1, t ) из x в xɵ , состоит из отрезков — шагов, соответствующих годам эксплуатации. Надо выбрать такую траекторию, при которой затраты на эксплуатацию машины окажутся минимальными. Над каждым отрезком, соединяющим точки ( k − 1, t ) и ( k , t + 1 ), запишем соответствующие управлению U с затраты, найденные из (13.29): 600(t + 1) , а k, t + 1 U с 600(t + 1) k − 1, t 4600 − 4000 ⋅ 2 −t k, 1 Uз Рис. 13.7. над отрезком, соединяющим ( k − 1, t ) и ( k , 1 ), запишем затраты, соответствующие з −t управлению U , т.е. 4600 − 4000 ⋅ 2 . Таким образом, мы разметим все отрезки, соединяющие точки на графике, соответствующие переходам из любого состояния x ( k −1) в состояние x ( k ) (см. рис. 13.8). Например, над отрезками, соединяющими точки ( k , 2 ) и ( k + 1, 3 ), стоит число 1800, что соответствует затратам на эксплуатацию в течение каждого года машины возраста t = 2 лет, а над отрезками, 164 соединяющими ( k , 2 ) и ( k + 1, 1 ), стоит число 3600 — сумма затрат на покупку машины и эксплуатацию новой машины в течение года без "затрат" (выручки) за проданную машину возраста t лет. Следует учесть, что 0 ≤ t ≤ k . Проведем на размеченном графе состояний (см. рис. 13.8) условную оптимизацию. V шаг. Начальные состояния — точки (4; t ), конечные (5; t ). В состояниях (5; t ) машина −t продается, условный оптимальный доход от продажи равен 4000 ⋅ 2 , но поскольку целевая функция связана с затратами, то в кружках точек (5; t ) поставим величину дохода со знаком минус. Анализируем, как можно попасть из каждого начального состояния в конечное на V шаге. Состояние (4; 1). Из него можно попасть в состояние (5; 2), затратив на эксплуатацию машины 1200 и выручив затем от продажи 1000, т.е. суммарные затраты равны 200, и в состояние (5; 1) с затратами 2600—2000=600. Значит, если к последнему шагу система находилась в точке (4; 1), то следует идти в точку (5; 2) (укажем это направление жирной стрелкой), а неизбежные минимальные затраты, соответствующие этому переходу, равны 200 (поместим эту величину B5 (1) = 200 в кружке точки (4; 1). Состояние (4; 2). Из него можно попасть в точку (5; 3) с затратами 1800-500-1300 и в точку (5; 1) с затратами 3600-2000=1600. Выбираем первое управление, отмечаем его жирной стрелкой, а B5 (2) = 1300 проставляем в кружке точки (4; 2). Рассуждая таким же образом для каждой точки предпоследнего шага, мы найдем для любого исхода IV шага оптимальное управление на V шаге, отметим его на рис. 13.8 жирной стрелкой. Далее планируем IV шаг, анализируя каждое состояние, в котором может оказаться система в конце III шага с учетом оптимального продолжения до конца процесса, т.е. решаем для всех 0 ≤ t ≤ 4 при k =4 уравнения (13.28). Например, если начало IV шага соответствует с состоянию (3; 1), то при управлении U система переходит в точку (4; 2), затраты на этом шаге 1200, а суммарные затраты за два последних шага равны 1200+1300=2500. При з управлении U затраты за два шага равны 2600+200=2800. Выбираем минимальные затраты 2500, ставим их в кружок точки (3; 1), а соответствующее управление на этом шаге помечаем жирной стрелкой, ведущей из состояния (3; 1) в состояние (4; 2). Так поступаем для каждого состояния (3; t ) (см. рис. 13.8 ). Продолжая условную оптимизацию III, II и I шагов, мы получим на рис. 8 следующую ситуацию: из каждой точки (состояния) выходит стрелка, указывающая, куда следует перемешаться в данном шаге, если система оказалась в этой точке, а в кружках записаны минимальные затраты на переход из этой точки в конечное состояние. На каждом шаге графически решались уравнения (13. 28). После проведения условной оптимизации получим в точке (0; 0) минимальные затраты на эксплуатацию машины в течение 5 лет с последующей продажей: J min = 11900 . Далее строим оптимальную траекторию, перемещаясь из точки x (0) (0;0) по жирным стрелкам в xɵ . Получаем набор точек: {(0; 0), (1; 1), (2; 2), (3; 1), (4; 2), (5; 3)}, с с з с с который соответствует оптимальному управлению u = (U ,U ,U ,U ,U ) . Оптимальный режим эксплуатации состоит в том, чтобы заменить машину новой в начале 3-го года. 148 t 5 −125 2350 −250 2100 −500 4 4300 3 3800 6100 2 7300 1 11900 = B1 (0) 1 2600 5000 2 2600 2500 3 −1000 1300 2600 2600 200 4 −2000 5 k 148 Таким образом, размеченный график (сеть) позволяет наглядно интерпретировать расчетную схему и решить задачу методом ДП. Вопросы для самопроверки 1. 2. 3. 4. 5. 6. 7. 8. Что понимают под динамическим программированием? Запишите условие многошаговой задачи оптимизации Перечислите особенности модели динамического программирования В чем состоит принцип оптимальности управления при решении задачи динамического программирования? Запишите уравнения Беллмана Запишите модель задачи о распределении средств между предприятиями в виде модели динамического программирования Запишите модель задачи об оптимальном распределении ресурсов между отраслями на N лет в виде модели динамического программирования Запишите модель задачи о замене оборудования в виде модели динамического программирования 149 Литература 1. Кремер Н.Ш. и др. Исследование операций в экономике. Учебное пособие для вузов/ ред. : Н. Ш. Кремер. - М. : ЮНИТИ, 2006. - 407 с 2. Есипов Б.А. Методы исследования операций: Учебное пособие. – СПб.: Изд-во «Лань», 2010. – 256 с. (электр. ресурс). – Режим доступа: http://e.lanbook.com/view/book/10250/ 3. Лесин В.В., Лисовец Ю.П. Основы методов оптимизации: Учебное пособие. – СПб.: Издво «Лань», 2011. – 352с. (электр. ресурс). – Режим доступа: http://e.lanbook.com/view/book/1552 4. Гладких Б. А. Методы оптимизации и исследование операций для бакалавров информатики Ч. 1.: учебное пособие. Томск: Изд-во НТЛ, 2009. – 198 с. /http://sun.tsu.ru/mminfo/books/2010/000374996/000374996.djvu (электронное издание djvu 1,0 Mb) 5. Гладких Б. А. Методы оптимизации и исследование операций для бакалавров информатики Ч. 2.: учебное пособие. Томск: Изд-во НТЛ, 2011. – 263 с./ http://sun.tsu.ru/mminfo/books/2012/000416882/000416882.pdf (электронное издание Adobe PDF 7,6 M)
«Исследование операций и методы оптимизации в экономике» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 938 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot