Text
                    Учебно-
методическое
объединение
рекомендует
Учебное пособие
МЕТОДЫ
ОПТИМИЗАЦИИ
В. А. ГОНЧАРОВ

Материал соответствует требованиям
основных образовательных программ
для подготовки бакалавров
для подготовки специалистов
ВЫСШЕЕ
ОБРАЗОВАНИЕ

В. А. Гончаров Методы оптимизации УЧЕБНОЕ ПОСОБИЕ Допущено Учебно-методическим объединением в качестве учебного пособия для студентов высших учебных заведении, обучающихся по специальностям 010501(010200) «Прикладная математика и информатика» (специалист), 230105(220400) «Программное обеспечение вычислительной техники и автоматизированных систем» (специалист), 010500(510200) «Прикладная математика и информатика» (бакалавр), 010200(511200) «Математика. Прикладная математика» (бакалавр), 011000(511300) «Механика. Прикладная математика» (бакалавр), 010300(511800) «Математика. Компьютерные науки» (бакалавр). МОСКВА • «ВЫСШЕЕ ОБРАЗОВАНИЕ» • 2009
УДК 51 ББК 22.193-018.2*32.973я73 Г 57 Настоящая методическая разработка выполнена в рамках инновационной образовательной нро- (•^“1 граммы МИЭТ «Современное профсссиональ- ное образование для российской инновационной «обрзювзние. систсмы в области электроники» Г 57 Гончаров В. А. Методы оптимизации : учебное пособие / В. А. Гонча- ров. — М.: Высшее образование, 2009. — 191 с. — (Основы наук). ISBN 978-5-9692-0337-2 Пособие посвящено систематическому изложению основ методов оптимизации и имеет прикладную инженерно-техни- ческую направленность. Основное внимание уделено приклад- ным и вычислительным аспектам оптимизации, связанным с разработкой численных методов решения задач и построением алгоритмов их реализации. Для студентов, обучающихся по специальностям 010501(010200) «Прикладная математика и информати- ка» (специалист), 230105(220400) «Программное обеспечение вычислительной техники и автоматизированных систем» (специалист), 010500(510200) «Прикладная математика и информатика» (бакалавр), 010200(511200) «Математика. Прикладная математика» (бакалавр), 011000(511300) «Ме- ханика. Прикладная математика» (бакалавр), 010300(511800) «Математика. Компьютерные науки» (бакалавр), однако в силу актуальности рассматриваемых вопросов будет полезным и для студентов, специализирующихся в смежных областях. УДК 51 ББК 22.193-018.2*32.973я73 Покупайте наши книги: Оптом в офисе книготорга "Юрайт": 1400004, Московская обл , г Люберцы, 1-й Панковский проезд, д.1, тел. (495) 744-00-12, e-mail: sales@urait.ru, www ura it г и В розницу: в интернет - магазине wwwurait-book ru, e-mail ordcr@urait-book ru, гол • (495) 742-72-12 в филиале: г. Москва, Олимпийский проспект, д 16, подъезд №1, с/к "Олимпийский", торговое место 48, тел (495) 726-27-04, 688-30-11 Для закупок у Единого поставщика в соответствии с Федеральным законом от 21 07.2005 № 94-ФЗ обращайтесь но тел (495) 744-00-12, e-mail: salcs@urait ru, kca@urait ru © Гончаров В. A., 2009 ISBN 978-5-9692-0337-2 © ООО «Высшее образование», 2009
Оглавление Предисловие ........................................ 5 Глава 1. Задачи оптимизации. Основные определения.... 6 1.1. Задачи оптимизации........................... 6 1.2. Минимум функции одной переменной............. 9 1.3. Унимодальные функции........................ 10 1.4. Выпуклые функции............................ 12 1.5. Условие Липшица............................. 15 1.6. Классическая минимизация функции одной переменной 17 Глава 2. Одномерная минимизация функций. Прямые методы 20 2.1. О прямых методах.............................20 2.2. Метод перебора...............................21 2.3. Метод поразрядного поиска....................22 2.4. Метод дихотомии..............................24 2.5. Метод золотого сечения.......................27 2.6. Сравнение методов перебора, дихотомии и золотого сечения............................................30 2.7. Метод парабол................................31 Глава 3. Одномерная минимизация. Методы, использующие информацию о производных целевой функции ..........37 3.1. Метод средней точки..........................37 3.2. Метод хорд...................................39 3.3. Метод Ньютона................................42 3.4. Возможные модификации метода Ньютона.........47 3.5. Методы минимизации многомодальных функций.....48 Глава 4. Задача минимизации функции многих переменных. Необходимые и достаточные условия безусловного экстремума ........................................ 57 4.1. Постановка задачи и определения............. 57 4.2. Свойства выпуклых множеств и выпуклых функций. 62
4 Оглавление 4.3. Необходимые и достаточные условия безусловного экстремума........................................ 64 Глава 5. Общие принципы многомерной минимизации. Методы градиентного спуска. Метод сопряженных направлений и метод Ньютона......................... 74 5.1. Выпуклые квадратичные функции................ 74 5.2. Общие принципы многомерной минимизации....... 76 5.3. Метод градиентного спуска.................... 80 5.4. Метод наискорейшего спуска................... 84 5.5. Метод сопряженных направлений................ 86 5.6. Метод сопряженных градиентов................. 90 5.7. Метод Ньютона................................ 93 5.8. Квазиньютоновские методы..................... 95 Глава 6. Прямые методы безусловной минимизации многомерных задач...................................101 6.1. Проблема минимизации многомерных задач.......101 6.2. Минимизация функций по правильному (регулярному) симплексу...........................104 6.3. Минимизация функций при помощи нерегулярного симплекса.........................................111 6.4. Метод циклического покоординатного спуска....ИЗ 6.5. Метод Хука - Дживса..........................117 6.6. Методы случайного поиска.....................119 Глава 7. Условный экстремум функции многих переменных. Необходимые и достаточные условия условного экстремума 124 7.1. Условный экстремум при ограничениях типа равенств 124 7.2. Условный экстремум при ограничениях типа неравенств.....................................140 Глава 8. Линейное программирование................. 153 8.1. Определения. Примеры задач линейного программирования................................. 153 8.2. Общая и каноническая задачи линейного программирования................................. 156 8.3. Геометрическое истолкование задач линейного программирования..................................158 8.4. Аналитическое решение задач линейного программирования................................. 163 Литература......................................... 191
Предисловие Предлагаемое учебное пособие построено на материалах, используемых при чтении одноименного курса лекций, прак- тических занятий и лабораторно-вычислительного практи- кума, которые проводятся автором в Московском институте электронной техники, и учитывает специфику математичес- кой подготовки студентов различных вузов. Автор попытался создать учебное пособие, которое охваты- вало бы основную часть предлагаемого курса и не требовало бы частого дополнительного обращения к порой труднодо- ступной специальной литературе, за исключением случаев, когда необходимо разобраться в доказательствах сходимости отдельных методов. Автор исходил из того, что для будущего инженера важнее понять суть методов и алгоритмов их реали- зации, условий их применения и получить навыки решения типовых задач оптимизации. Охарактеризуем кратко особенности содержания книги. В главе 1 вводятся и обсуждаются основные термины и опре- деления. Ядро книги составляют главы 2,3 и 5, 6, в которых рассматриваются соответственно одномерная и многомерная минимизации с использованием принципиально важных пря- мых методов, а также методов, использующих информацию о производной (или градиенте) целевой функции. В главах 4,7 формулируются необходимые и достаточные условия сущес- твования безусловного и условного экстремумов, приводятся примеры аналитического решения экстремальных задач. Заключительная глава посвящена разбору задач линейного программирования на конкретных примерах. В конце глав приводятся вопросы и задания для самопро- верки. Кроме того, в каждой заключительной части четырех из восьми глав приведены тексты заданий для численной реализации, которые предполагается выполнить в совре- менной среде программирования MATLAB. Эти задания могут служить основой для лабораторно-вычислительных работ, выполняемых при изучении дисциплины «Методы оптимизации».
Глава 1 ЗАДАЧИ ОПТИМИЗАЦИИ. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ 1.1. Задачи оптимизации В любой сфере человеческой деятельности как на сугубо личном, так и на общегосударственном уровне, явно или неявно мы встречаемся с оптимизацией. Экономическое пла- нирование, управление, проектирование сложных объектов всегда направлено на поиск наилучшего варианта с точки зрения намеченной цели. При всем многообразии задач оптимизации дать общие методы их решения может только математика, резкое рас- ширение приложений которой связано с появлением ЭВМ, что привело к математизации не только физики, но и химии, биологии, экономики, психологии, медицины — практически всех наук. Суть математизации состоит в построении мате- матических моделей процессов и явлений и в разработке методов их исследования. Использование математического аппарата при решении задач оптимизации предполагает формулировку интересу- ющей проблемы на языке математики, придание количест- венных оценок возможным вариантам вместо слов «лучше», «хуже». Многие задачи оптимизации сводятся к отысканию на- именьшего или наибольшего значения некоторой функции, которую принято называть целевой функцией. Такая поста- новка задачи будет обычной при дальнейшем изложении. В этом случае методы исследования существенно зависят от свойств целевой функции и той информации о ней, которая может считаться доступной до решения задачи и в процессе решения.
1.1. Задачи оптимизации 7 Наиболее просты с математической точки зрения случаи, когда целевая функция является дифференцируемой функ- цией. В этом случае для исследования ее свойств (участки возрастания и убывания, точки локального экстремума) может быть использована производная. В последние десятилетия в условиях научно-техни- ческого прогресса круг задач оптимизации, поставленных практикой, существенно расширился. Во многих из них значения целевой функции могут получаться в резуль- тате численных расчетов или браться из эксперимента. Такие задачи являются более сложными, при их решении нельзя исследовать целевую функцию с помощью произ- водной. Это привело к разработке специальных методов, рассчитанных на широкое применение ЭВМ. Следует также иметь в виду, что сложность решения задачи существенно зависит от размерности целевой функции, т.е. от числа ее аргументов. Пример 1.1, Указать наилучший вариант консервной банки фик- сированного объема V, имеющей обычную форму прямого кругового цилиндра. Рассмотрим два варианта этой задачи. 1. Наилучшая банка должна иметь наименьшую поверхность 5 (на изготовление пойдет наименьшее количество жести). 2. Наилучшая банка должна иметь наименьшую длину швов / (швы нужно сваривать, и эта работа должна быть минимальной). Запишем формулы объема банки, площади поверхности и длины швов: У = тсг2А, 5 = 2nr2+2nrh, l = 4nr + h. Объем банки задан, это устанавливает связь между радиусом г и высотой h. Выразив высоту через радиус h = V/itr2 и подставив полученное выражение в формулы для поверхности и длины швов, получим: о 2V 5(г) = 2лг2+—, 0<г<«>, (1.1) V 1(г) = 4пг+—j-, 0<г<°°. (12) Таким образом, с математической точки зрения задача о наилучшей консервной банке сводится к определению значения г, при котором достигает своего наименьшего значения в одном случае функция 5(г), в другом — /(г). Поскольку 5(г) и /(г) дифференцируемы, то задача решается просто.
8 Глава 1. Задачи оптимизации. Основные определения 1. Первый вариант постановки задачи: из формулы (1.1) следует 2V 2 5'(г) = 4лг-^- = 4(2 яг3- V). Г г При 0<r<7' = ^V/2it т.е. функция убывает, при i\ < г < оо S'(r) > 0, т.е. функция возрастает. Следовательно, 5 = 5mjn при г = г{, где r,=^’ h'=2r" (1-3) а 5(70 = 3^2лГ2 <S(r). График функции 5(г) показан на рис. 1.1. 2. Второй вариант постановки задачи: из формулы (1.2) следует от/ 9 Z '(г) = 4 л - = -Аг(2 л2 г3 - V). пг пг При 0 < г < r2 - /2л2 Г(г) < О, т.е. функция убывает, при г2 < ?* < °° Г(г)> 0, функция возрастает. Следовательно, Z = Zmin при г = г2, где ?2 = Zr?' = ^ЯГ2’ ( 1 при этом Z(r2) = 3^/4лУ < Z(r). График функции Z(r) показан на рис. 1.2. Рис.1.1. График функции 5(г) Рис. 1.2. График функции Z(r) Очевидно, что при разных критериях оптимизации получаются различные ответы. В первом варианте (1.3) высота наилучшей банки равна ее диаметру, а во втором — (1.4) она в л раз больше него.и
12. Минимум функции одной переменной 9 Перейдем от конкретного примера к общей постановке задач и определениям. 1.2. Минимум функции одной переменной Рассмотрим математическую модель оптимизации, в ко- торой целевая функция зависит от одной переменной, опре- деленной на множестве U вещественной оси, /(*)-> min, xeU. Максимизация целевой функции ( f (х) —> max) эквивален- тна минимизации противоположной величины ( -/(х) -> min ), поэтому, не умаляя общности, будем рассматривать только задачи минимизации. Определение. Число х*eU называется точкой глобаль- ного (абсолютного) минимума или просто точкой минимума функции f (х) на множестве U , если /(х*) < f (х) для всех xeU. Множество всех точек минимума /(х) на U будем в дальнейшем обозначать через U*. Определение. Число xeU называется точкой локального минимума функции /(х), если /(х)</(х) для всех хе С/, достаточно близких к х, т.е. если существует е > 0 такое, что это неравенство выполняется для любого xejxet/, |х-х|<е}. Определение. Пусть функция f (х) определена и огра- ничена снизу на множестве U, т.е. f (х) > А > - <» для всех х g U, Число X называется точной нижней гранью функции /(х) на множестве U (f* = inf /(х)), если /(х)> при всех хе U и для любого е>0 найдется точка xeeU такая, что /(х£)< /+£ (т.е. среди значений /(х) на множестве U найдутся сколь угодно близкие к/#). Для неограниченных функций /(х) полагают / — — оо. Необходимо отметить следующее.
10 Глава 1. Задачи оптимизации. Основные определения 1. Глобальный минимум f(x) является и локальным ми- нимумом, а обратное, вообще говоря, неверно. 2. Множество точек минимума U* функции /(х) на мно- жестве U может быть пустым, состоять из конечного или бесконечного числа точек. Например: а)если f(x) = \nx, J7=[0,1], то С7*=0; б) если f (х) = х2, U= [-1,1], то tT= {0} — конечное мно- жество; в) если /(х) = sin2 тех, U = R, то t7* = Z — бесконечное множество. 3. Если {7*Ф 0, то inf f (х) = min f (х). Таким образом, точ- ная нижняя грань обобщает понятие минимума функции на случай 1Г= 0. Широкий класс функций, для которых [7V 0, определяет известная из математического анализа теорема Вейерштрасса, утверждающая, что непрерывная на замкнутом ограниченном множестве функция достигает на нем своих минимального и максимального значений. Таким образом, задача отыскания минимума (1.5) для непрерывных функций всегда имеет решение. 1.3. Унимодальные функции Если функция /(х), определенная на множестве U, имеет, кроме глобального, еще и локальные минимумы, отличные от него, то минимизация f (х), как правило, силь- но затрудняется. Большинство методов поиска минимума /(х) приспособлено только для тех функций, у которых каждый локальный минимум является одновременно и глобальным. Этим свойством обладают унимодальные функции. Определение. Функция f (х) называется унимодальной на отрезке [а, Ь], если она непрерывна на [а, Ь] и существуют числа а и Р, а < а < Р < i, такие,что: 1) если ж а, то на отрезке [а, а] функция /(х) моно- тонно убывает; 2) если Р<6, то на отрезке [Р,6] функция /(х) монотонно возрастает;
г 1.3. Унимодальные функции 11 3)при хе[а, Р] выполняется /(х) = /=min/(x). [а.6] Отметим, что возможно вырождение в точку одного или двух отрезков из [а, а], [а,Р] и [р, Ь]. Некоторые варианты расположения и вырождения в точку отрезков монотонности и постоянства унимодальной функции показаны на рис. 1.3. Рис. 13. Графики унимодальных функций Из определения вытекают следующие свойства унимо- дальных функций. 1. Любая из точек локального минимума унимодальной функции является и точкой ее глобального минимума на отрезке [а, Ь]. 2. Функция, унимодальная на отрезке [а,Ь], унимодальна и на любом меньшем отрезке [с, d\ а [а, Ь]. 3. Пусть f (х) унимодальна на [а, Ь] и а < хх < х2 < Ь. Тогда: если f(xx)</(х2), то х*е[а, х2], если f{xx)>f{x2), то х*€[хр&], где х* — одна из точек минимума /(х) на отрезке [а, Ь].
12 Глава 1. Задачи оптимизации. Основные определения Пример 12. На какие три части следует разбить отрезок [-1,2], чтобы на каждой из них функция /(х) = ||х(х-1)|-1[ была унимодальной? □ Строя поэтапно график функции /(х) , получим три отрезка: [-1,0], [0,1] и [1,2], на каждом из которых функция унимодальна. Пример 1.3. Найти максимальное значение Ь, при котором функция /(х) = -х2 +5х-6 унимодальна на отрезке [-5,6]. □ Корни квадратного трехчлена х, = 2, х2 = 3; вершина параболы хв = 2,5. Поэтому b = 2,5. 1.4. Выпуклые функции Функция f (х), заданная на отрезке [а, Ь], называется вы- пуклой на этом отрезке, если для всех х', х"е [а, 6] и произ- вольного числа ае[0,1] выполняется неравенство /(а х' + (1 - а) х") < а /(х') + (1 - а) /(х")« (1.6) Свойство 1. Если функция f (х) выпукла на [а, &], то на любом [х', х"] с: [а, Ь] ее график расположен не выше хор- ды, проведенной через точки графика с абсциссами х и х" (см. рис. 1.4). Рис. 1.4. Взаимное расположение графика выпуклой функции и хорды Свойство 2. Можно показать, что всякая выпуклая непре- рывная функция на [а,Ь\ является и унимодальной на этом отрезке. Обратное, вообще говоря, неверно. Из курса математического анализа известны следующие условия выпуклости функции:
14. Выпуклые функции 13 а) для того чтобы дифференцируемая на отрезке [а, 6] функция f (х) была выпуклой на этом отрезке, необходимо и достаточно, чтобы ее производная f'(x) не убывала на [а, 6] 2 т» г ТС ЗТС х (например: у = х, хек; z/ = cosx, хе[—, "2"^’ б) для того чтобы дважды дифференцируемая на отрезке [я, 6] функция /(х) была выпуклой на этом отрезке, необ- ходимо и достаточно, чтобы при всех х е [а, 6] выполнялось неравенство /"(х)>0 (i/ = x2, xeR; z/ = cosx, При исследовании выпуклости функций на практике нера- венство (1.6) удается использовать только в редких случаях. ПоэтОхМу для дифференцируемых достаточное количество раз функций обычно применяют вышеприведенные дифферен- циальные критерии выпуклости. Непосредственная проверка унимодальности с помо- щью определения этого понятия также в большинстве случаев вызывает затруднения. Поэтому для обоснования унимодальности достаточно гладких функций используют те же критерии выпуклости. Если функция оказывается выпуклой, то можно утверждать, что она унимодальна. Однако при отрицательном результате проверки фун- кции на выпуклость нельзя сделать вывод, что она не унимодальна. Пример 1.4, Показать, что функция f(x) = х4-10х3 + 36х2 + 5х унимодальна на отрезке [3, 5]. □ Вторая производная функции f (х) равна /"(х) = 12х2-60х + 72. Корни полученного квадратного трехчлена xt = 2 и х2 = 3. Следова- тельно, /"(х)>0, если х>3, в частности при хе[3, 5]. По диффе- ренциальному критерию «б» получаем, что /(х) выпукла, а значит, и унимодальна на этом отрезке. Пример 1,5. В следующих задачах убедиться в унимодальности функций /(х) на указанных отрезках [а, Ь]. 1) /(х) = x2-3x+xlnx, хе[1,2]. 1 □ /"(х) = 2+—> 0 при х е [1,2]. По дифференциальному критерию х «б» /(х) выпуклая, а значит, и унимодальная при х е [1,2]. 2) /(x) = ln(l + x2)-sinx, хе[0,
14 Глава 1. Задачи оптимизации. Основные определения □/"(х) = |^—yy+sinr>0 при хе[0, —]. По дифференциально- (1 + х ) 4 му критерию «б» /(х) выпуклая, а значит, и унимодальная при хе [О, 4- 4 3) /(x) = ^-x2-sinx, хе[0,1]. □ /"(х) = l + sinx>0 при хе [0,1]. По дифференциальному крите- рию «б» /(х) выпуклая, а значит, и унимодальная при хе [0,1]. Пример 1.6. Привести примеры функций /(х), унимодальных на отрезке [а, &], но невыпуклых на нем. □ /(х) =--хе R или хе [а, 6], 1+х где [а, Ь] — такой отрезок, что Ое (а, Ь). 2х Очевидно, что функция унимодальна на [а,Ь], но /'(х) =-4т» (1 + х ) f„, ч 2(1-Зх2) п . . 1 вторая производная f (х) = —---у— < 0, например при | х | > -ч=-. (1 + х ) V3 Функция f (х) не является выпуклой по дифференциальному крите- рию выпуклости «б». □ /(х) = 11пх|, хе(0, +°о). Очевидно, что функция унимодальна при х е (0, + °°), но не является выпуклой при х е (1, +°о), так как на этом интервале /"(х) = —< 0. х Пример 1.7. Будет ли функция /(х) = ах3 - Зх2-10 унимодальной на отрезке [1,2] при а > 3? □ Первая производная функции /'(х) = 3ох2-6х, вторая — /"(х) = 6а(х-—). Если хе[1,2], а величина а>3, т.е. 0< — <~, то а а 3 /"(х)>0 и функция /(х) унимодальна по дифференциальному кри- терию «б» выпуклости функций. Пример 1.8. Доказать, что из выпуклости функции /(х) на отрезке [а, Ь] следует ее унимодальность на [а, Ь], если ограничиваться только дифференцируемыми на [а,Ь\ функциями. □ Пусть /(х) выпукла на [а, 6], тогда /'(х) не убывает на этом отрезке. Допустим противное, т.е. что /(х) неунимодальна на [а, 6]. Тогда существуют хр х2, х3е[а,6] такие, что /(х1)</(х2) и f(x3)< /(х2). А это противоречит дифференциальному критерию «а» выпуклости /(х) на [а, Ь].
1.5. Условие Липшица 15 1.5. Условие Липшица Применение некоторых методов одномерной минимиза- ции возможно только в том случае, если скорость изменения целевой функции f(x) на любых участках отрезка [а,Ь} ограничена некоторым числом, одним и тем же для всех участков. В этом случае говорят, что f (х) удовлетворяет на отрезке [а, Ь] условию Липшица. Целевые функции боль- шинства практических задач оптимизации таким свойством обладают. Определение. Функция f (х) удовлетворяет на отрезке [а, 6] условию Липшица, если существует такое число L > О (константа Липшица), что (1.7) для всех х и х", принадлежащих [а, Ь]. Необходимо обратить внимание на следующее. 1. Если неравенство (1.7) выполняется с константой £, то оно справедливо и для всех L' > L. Поэтому для функции, удовлетворяющей условию Липшица, существует бесконечное множество констант L из (1.7). При использовании алгорит- мов минимизации, включающих L как параметр, наилучшие результаты достигаются, как правило, если в качестве L бе- рется минимальная из констант Липшица. 2. Из условия (1.7) сразу следует непрерывность f(x) на отрезке [а, 6]. Поэтому согласно теореме Вейерштрасса функция /(х), удовлетворяющая на отрезке \а,Ь\ условию Липшица, имеет на нем хотя бы одну точку минимума, хотя не является, вообще говоря, унимодальной. 3. Условие (1.7) означает, что модуль углового коэффици- ента любой хорды графика /(х) не превосходит L. Переходя в (1.7) к пределу при |х'-х"|—>0, убеждаемся, что если в некоторой точке существует касательная к графику /(х), то модуль ее углового коэффициента также не может превы- шать L. Так, функция /(x) = vx на отрезке [0, 1] условию Липшица не удовлетворяет, потому что при х —»+0 угловой коэффициент касательной к ее графику k неограниченно возрастает (рис. 1.5). 4. Если функция /(х) имеет на отрезке [а, 6] непрерывную производную, то она удовлетворяет на этом отрезке условию Липшица с константой L = max|/'(x)|.
16 Глава 1. Задачи оптимизации. Основные определения Рис. 1.5. График функции f (х) = Vx, х е [0,1], не удовлетворяющей условию Липшица Пример 1.9. Найти наименьшую из констант Липшица функции /(х)= ^х3 + 2х2 -5х + 6 на отрезках: а) х е [О, 1], б) хе [0, 10]. □ Производная функции /'(х) = х2 +4х-5 = (х + 5)(х-1), поэтому в случае «а» L = шах|/'(х)| = |/'(0)| = 5, а в случае «б» L = = | = 135. Пример 1.10. Показать, что для дифференцируемой на отрезке [а,Ь\ функции /(х) величина L = шах|/'(х)| представляет собой [O.6J минимальную из констант Липшица /(х) на [а,Ь]. □ Пусть существует Lt< L = max|/'(x)| такая, что |/(х')-/(х")|^ Д |х'-х"| для всех х', х" е[я,6]. Тогда, фиксируя х' и переходя к пределу при х" -» х' получим | | < Lv а вследствие произвольности точки х'е [а, 6] получим тах|/'(х)| < Ц < L. Полученное противоречие доказывает утверждение. Пример 1.11. Найти наименьшую из констант Липшица функции /(х)= 4х3-30х2+72х + 12 на отрезках: а) х е [0, 2], б) хе [2, 3]. □ Производная функции /'(х) = 12х2-60х + 72 = 12(х-2)(х-3), поэтому в случае «а» £ = шах|/'(х)| = |/'(0)| = 72, а в случае «б» Л = шах|Лх)| = |/'(2,5)| = 3.-2' Пример 1.12. Найти наименьшую из констант Липшица функции /(х)= х3+6х2-15х на отрезках: а) х е [0, 1], б)хе[0, 10]. □ Производная функции /'(х) = Зх2+12х-15 = 3(х+5)(х-1), поэтому в случае «а» £ = шах|/'(х)| = |/'(0)| = 15, а в случае «б» L = rnax|/'(x)| = |/'(10)| = 405..
1.6. Классическая минимизация функции одной переменной 17 1.6. Классическая минимизация функции одной переменной Из математического анализа известны следующие условия локального экстремума функции f (х), дифференцируемой достаточное количество раз. 1. Если функция /(х) дифференцируема в точке х и достигает в ней локального экстремума, то /'(х) = 0 (необ- ходимое условие экстремума). 2. Пусть функция /(х) п раз дифференцируема в точке х и в этой точке все производные /(х) до (/2-1)-го порядка включительно равны нулю, а /<л)(х)^0. Тогда, если п не- четно, то точка х не является точкой локального экстремума функции f (х). Если же п — четное число, то: а) при /(я)(х)>0 х — точка локального минимума /(х); б) при /<")(х)<0 х — точка локального максимума /(х) (достаточные условия экстремума). Перечисленные условия позволяют предложить следую- щий путь решения задачи минимизации (1.5). Шаг 1. С помощью условия 1 находим все точки возмож- ного экстремума функции f (х) на интервале (а, 6), т.е. корни уравнения /'(*) = О, (1.8) (стационарные точки функции /(х), принадлежащие ин- тервалу (а, ЬУ). Шаг 2. Найденные стационарные точки исследуем в соот- ветствии с условием 2, выделяя из них только точки локаль- ных минимумов /(х). Шаг 3. Значения f (х) в точках локальных минимумов и на концах отрезка [а, 6] сравниваем между собой. Наименьшему из этих значений соответствует точка глобального минимума /(х) на [а, 6]. Применение условия 2 требует вычисления высших про- изводных функции /(х), поэтому в большинстве случаев бывает проще сравнить значения /(х) во всех стационарных точках, не интересуясь их характером. С учетом этого можно предложить следующий алгоритм минимизации /(х) на отрезке [а, Ь] (классический метод, который разберем на примере).
18 Глава 1. Задачи оптимизации. Основные определения Пример 1.13. Решить задачу /(х) = х3-Зх + 1 -» min, хе[-2, 2]. □ Шаг 1. Находим корни уравнения /'(х) = Зх2 - 3 = 0 из интервала (-2,2): Xj = -1, х2 = 1. Полагаем х0 = -2, х3 = 2. Шаг 2. Вычисляем значения /(х) в точках х(, г = 0,...,3: /(х0) = -17, /(х,) = 3, /(х2) = -1, /(х3) = 1. Шаг 3. Находим /*=min(-17, 3, -1,1) = -17 = /(х0). Поэтому х =-2, /*=-17.. Пример 1.14. Найти /(х) = х3-27х + 5-»min, хе[-4,4]. □ Найдем корни уравнения /'(х) = Зх2- 27 = 0 из интервалах е (-4,4): х, =-3,х2 =3. Положим х0 =-4,х3 =4. Так как //'(х1) = /"(-3) = -18<0, то х, — точка локального максимума. Так как /"(х2) = /"(3) = 18 > 0, то х2 — точка локального минимума. /(3) = -49, /(-4) = 49, /(4) = -39. Производя перебор, получим х* =3, /* = -49. Пример 1.15. Решить задачу 1 3 /(x) = sin2nx-27c exp(x-l)-»min, хе[-, -]• □ Найдем корни уравнения /'(х) = 2лсо52лх-2лехр(х-1) = 0 1 3 из промежутка хе[—, —]. Точка xt=l является корнем (показать, . 2 2 . п 13 что других корней на промежутке нет). Далее, полагая х0 = —, х2 = —, вычислим /(х0) = -2лехр(--|), /(х,) = -2л, /(х2) = -2лехр(^). 3 а 1 Производя перебор, получим х* = х2 = —, /* = /(х2) = -2л ехр(—). Пример 1.16. Найти /(х) =-sinу-cosmin, хе[|, у]. □ Найдем корни уравнения ч 1 х 1 . х Л гл 2л. / (х) = —cos—+—sin—= 0, хе —, —1. J V 2 2 2 2 l3 3 J Точка xt =— является корнем (показать, что других корней на х i-r л 2л „ . промежутке нет). Положим х0=—, Производя перебор, /(-го) = “ - -у. /U) = - V2, /(х2) = —Y Поскольку 1 + 7з < 2^2, получим X* = Xj =тр /* = /(Xj) =-у[2.
Вопросы и задания для самоконтроля 19 Вопросы и задания для самоконтроля 1. Какая функция называется целевой? 2. Дать определение локального и глобального минимумов функции. 3. Что такое точная нижняя грань функции на множестве? 4. Как соотносятся точная нижняя грань и минимум функции на множестве? 5. Какая функция называется унимодальной на отрезке [a, i]? 6. Сформулировать свойства унимодальных функций. 7. Какая функция называется выпуклой на отрезке [а, Ь]? 8. Каков геометрический смысл выпуклости функции? 9. Сформулировать два необходимых и достаточных диффе- ренциальных условий выпуклости функций. 10. Сформулировать условие Липшица для функции f(x) на отрезке [а,Ь]. И. Всякая ли унимодальная на отрезке [я,&] функция f(x) довлетворяет на нем условию Липшица? 12. Всякая ли функция /(т), удовлетворяющая условию Лип- шица на отрезке [а, 6], унимодальна на нем? 13. Сформулировать свойства функций, удовлетворяющих на отрезке [а, Ь] условию Липшица. 14. В чем заключается классический метод минимизации фун- кций? 15. Для каких целей разработан классический метод миними- зации функций? 16. Какова практическая ограниченность применимости этого метода?
Глава 2 ОДНОМЕРНАЯ МИНИМИЗАЦИЯ ФУНКЦИЙ. ПРЯМЫЕ МЕТОДЫ Подробный разбор одномерных задач минимизации фун- кций важен по двум причинам. Во-первых, эти задачи наиболее просты, и на них легче по- нять постановку проблемы, методы решения и возникающие трудности. Иногда одномерные задачи имеют самостоятель- ный практический интерес. Во-вторых, и это главное, алгоритмы решения многомер- ных задач оптимизации часто сводятся к последовательному многократному решению одномерных задач и не могут быть поняты без умения их решать. Пусть необходимо минимизировать функцию /(х) на отрезке [а, Ь]. Обычно для этого применяются приближенные, т.е. числен- ные методы. Решение задачи находится с необходимой точностью в результате определения конечного числа значений функции /(х) и ее производных в некоторых точках отрезка [а, 6]. 2.1.0 прямых методах Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации. Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости. Более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны ал- горитмы прямых методов минимизации, это возможность определения значений /(х) в заданных точках. Пример 2.1. Химический завод производит некоторое вещес- тво. Выход интересующего продукта определяется температурой
22. Метод перебора 21 у = f(T), которую можно варьировать в пределах: Т{ <Т <Т2. Вид функции f (Г) заранее не известен, он зависит от используемого сы- рья. Получив очередную партию сырья, нужно найти температуру Т, при которой наиболее выгодно вести производство, т.е. наибольшее значение J(T). Пример 2.2. Значения функции f(x) получаются в результате сложных численных расчетов. Рассмотрим наиболее распространенные прямые методы поиска точки минимума. Самым слабым требованием на функцию J(х), позволяющим использовать эти методы, является ее унимодальность. Поэтому далее будем считать функцию /(х) унимодальной на отрезке [а, 6]. Будут подробно рассмотрены следующие четыре прямых метода: перебора и поразрядного поиска; деления отрезка пополам (метод дихотомии и метод золотого сечения). Кроме того, будет дано представление о методах полиномиальной аппроксимации (метод парабол). 2.2. Метод перебора Данный метод является простейшим из прямых методов и состоит в следующем. Разобьем отрезок [а, 6] на п равных частей точками деления х,- = а + i(b-а)/п, 0,... п. Вычис- лив значения /(х) в точках хр путем сравнения найдем точку xm, 0<т<п, для которой /U«)=min/(x,.). (2.1) Далее положим x*~xm, f*~ f(xm). Необходимо отметить, что погрешность определения точки минимума х' функции /(х) методом перебора не превосхо- дит величины е„ = (6 - а) / п. Предположим, что хт из (2.1) является внутренней точкой разбиения отрезка [a, 6], т.е. 1 < т < п -1 (случаи т = 0 и т = п рассматриваются аналогично). Тогда из соотношения (2.1) и по определению унимодальности функции следует: a) /(xJ>/(U т-е- xelx^b]; б) /(х,„)</(хи+1), т.е. х'е[а,хт+1]. Отсюда получаем, что х* е [x„_p 6]n[a, xm+i] = [хи_„ хи+1]. Длина последнего отрезка равна 2(6-а)/п, а точка хт яв- ляется его серединой, поэтому \хт~х'\-(.Ь-а)/п = Е„.
22 Глава 2. Одномерная минимизация функций. Прямые методы Таким образом, чтобы обеспечить требуемую точность £ оп- ределения точки х*, число отрезков разбиения п необходимо выбрать из условия £п = (Ь - а) / п < £, т.е. п > (Ь - а) / £. Замечание. Пусть реализация метода перебора потребо- вала N вычислений функции /(х). Это означает, что отре- зок [а,Ь] был разбит на n = N-l частей и достигнутая * ь~а ГТ точность определения х составила = 6^ = ——Поэто- му точность решения е (N), которую обеспечивает метод перебора в результате вычислений f (х), будет Е(ЛГ,=^тг <2-2> Пример 2.3. Методом перебора решить задачу /(х) = х4 + e-v —> min, х е [0,1] с точностью до е = 0,1. □ Функция /(х) унимодальна на отрезке [0,1]. Найдем число п отрезков разбиения: п > 10, т.е. можно взять п = 10. Вычислим значения f (х,.), где х, =0,1 i, i = 0,... 10 и запишем их в табл. 2.1. Таблица 2.1 Значения функции в узловых точках при методе перебора X, 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 /(*,) 1,00 0,90 0,82 0,75 0,70 0,67 0,68 0,74 0,86 1,06 1,37 В этой таблице минимальное вычисленное значение f (х) равно 0,67. Таким образом, х* ~ 0,5, /* ~ 0,67. 2.3. Метод поразрядного поиска Рассмотрим усовершенствованный метод перебора с целью уменьшения количества значений f (х), которые необходимо находить в процессе минимизации. Во-первых, если f (xt )<f (х,+1), то отпадает необходимость вычислять /(х) в точках х,+2,х,+3 и т.д., так как из унимо- дальности функции /(х) следует, что х’<х,+1.
_________________2.3. Метод поразрядного поиска_______23__ Во-вторых, разумно было бы сначала определить отре- зок, содержащий точку х* с небольшой точностью, а затем искать ее на этом отрезке с меньшим шагом дискретизации, повышая точность. Такая возможность улучшения метода перебора реализо- вана в методе поразрядного поиска, в котором перебор точек отрезка происходит сначала с шагом Д = х/+1 - х;> е до тех пор, пока не выполнится условие f (х{) < /(х/+1) или пока очеред- ная из этих точек не совпадет с концом отрезка. После этого шаг уменьшается (обычно в четыре раза), и перебор точек с новым шагом производится в противоположном направлении до тех пор, пока значения f (х) не перестанут уменьшать- ся или очередная точка не совпадет с концом отрезка и т.Д. Процесс завершается, когда перебор в данном направлении закончен, а использованный при этом шаг дискретизации не превосходит е. Пример 2А. Методом поразрядного поиска найти /(х) = х4+е"л -» min, хе [0,1] с точностью до е = 0,1. □ Начальный шаг Д = 0,25. Вычисляя последовательно значения f (х) в точках дискретизации с шагом 0,25, получим X 0-» 0,25->0,50-» 0,75 1,000 >0,783 >0,669 <0,789 Так как /(0,50) < /(0,75), причем | Д | > е, то поиск х* продолжаем из начальной точки х0 = 0,75, изменив его направление и уменьшив шаг в четыре раза: X 0,4375 <- 0,5000 <- 0,5625 <- 0,6250 <- 0,6875 <- 0,750 f(x) 0,682 > 0,669 < 0,670 < 0,688 < 0,726 < 0,789 Так как |д| = 0,0625 <£, то поиск завершен и х*«0,5, /*=0,67 (срав- нить с результатом решения примера методом перебора; здесь потребо- валось только 8, а не 11 вычисленных значений функции /(х)). Необходимо отметить, что метод поразрядного поиска, несмотря на простоту и меньшую эффективность, чем рас- сматриваемые ниже методы деления отрезка пополам, имеет значительную область применимости в методах многомерной минимизации. Это связано с тем, что при реализации этого мето- да не обязательно задавать границы отрезка [а, Ь], роль которого может играть вся бесконечная прямая или любая ее часть. В методе перебора точки хр в которых определяются зна- чения /(х), выбираются заранее (прямые методы пассивного поиска). Если же для выбора очередной точки вычисления
24 Глава 2. Одномерная минимизация функций. Прямые методы /(х) использовать информацию, содержащуюся в уже най- денных ее значениях, то поиск точки минимума можно сделать более эффективным, т.е. сократить число определяемых для этого значений /(х) {прямые методы последовательного поиска). Метод поразрядного поиска является одним из та- ких методов. Один из путей более эффективного поиска точки х* сле- дует из определения унимодальных функций. Действительно, пусть а < Xj < х2 < Ь. Сравнив значения f (х) в пробных точках Xj и х2, можно сократить отрезок поиска точки х*, перейдя к отрезку [а, х2], если f(xt)< f(x2)r или к отрезку [xt,6], если f{xx)> /(х2). Описанную процедуру можно повторить необходимое число раз, последовательно уменьшая отрезок, содержащий точку минимума. Чтобы относительное уменьшение отрезка на каждой ите- рации не зависело от того, какая из его частей исключается из дальнейшего рассмотрения, пробные точки имеет смысл располагать симметрично относительно середины исходного отрезка. В зависимости от способа выбора пробных точек в этом случае получаются различные методы исключения отрезков. Рассмотрим только методы дихотомии и золотого сечения. 2.4. Метод дихотомии (2.3) В этом методе пробные точки хг и х2 располагаются близ- ко к середине очередного отрезка [а, 6], т.е. 6+я-З 6 + 0 + 8 Х' ” 2 ’ ~ 2 где 8 — малое число. При этом отношение длин нового и 6-х. х9 — а х 1 исходного отрезков т =---------- близко к —, этим и 6-0 6-0 2 объясняется название метода. 1 Отметим, что для любых точек xt и х2 величина т>—, поэтому указанный выбор пробных точек объясняется стрем- лением обеспечить максимально возможное относительное уменьшение отрезка на каждой итерации поиска х*.
2.4. Метод дихотомии 25 В конце вычислений методом дихотомии в качестве приближенного значения х* берут середину последнего из найденных отрезков [а, 6], убедившись предварительно, что достигнуто неравенство Ь-а <£. Алгоритм метода деления отрезка пополам следующий. Шаг 1. Определить х{ и х2 по формуле (2.3) и вычислить f(xx) и /(х2). Перейти к шагу 2. Шаг 2. Сравнить /(xt) и /(х2). Если f(x{)<f(x2), то перейти к отрезку [a, х2], положив Ь = х2, иначе — к отрезку [хр 6], положив а = хг Перейти к шагу 3. Шаг 3. Найти достигнутую точность еп = (здесь п — номер итерации). Если £и > £, то перейти к следующей итерации, вернувшись к шагу 1. Если £w <£, то завершить поиск х*, перейдя к шагу 4. Шаг 4. Положить х* ~ х = - + 2 Необходимо обратить внимание на следующее. 1. Число 8 из (2.3) выбирается на интервале (0,2е) с уче- том следующих соображений: а) чем меньше 8, тем больше относительное уменьшение длины отрезка на каждой итерации; б) при чрезмерно малОхМ 8 сравнение значений функции /(х) в точках xt и х2, отличающихся на величину 8, затруд- нительно, поэтому необходимо учитывать количество верных разрядов функции /(х) при задании аргумента х. 2. Число п итераций метода дихотомии, необходимое для определения точки х* с точностью £, определяется не- равенством . Ь — а — Ь H>l°g2 2£_8 • (2.4) □ Обозначим длину [я, 6] = До. Тогда длина отрезка, полу- А 8 ченного после первой итерации, равна А1 = -у-+—, после _ . А, 5 b-а 5.1 1 второй итерации Д2 =—+ — = ——+ о(—+после третьей
26 Глава 2. Одномерная минимизация функций. Прямые методы А Д2 5 b-а 5/1 1 1ч Д3 = —+—=------+ о (— + — + —) и т.д. После п итерации дл и- 2 2 8 8 4 2 на отрезка поиска точки х* станет равна . Ь-а <,.11 1. Ь-а .. 1 А —-----ь8( 1----—) —----------------)5. п 2" ^2” 2м- 27 2” v 2"' При этом будет достигнута точность определения точки ми- Д„ Т1 Ь-а 1,8. нимумае„ = у- Находя п из условия е„=^г+(1-—^е- получим неравенство (2.4). 3. Величина 8 не может быть выбрана слишком боль- о _ Ь-а-Ъ 8 8 . . ШОИ. Так как £„ =-----:-+ — >— ,НО £„ <£, необходимо ВЫ- zz 2n+1 2 2 бирать 8<2е. , ~ Ь-а-Ъ 8 Ь-а 4. При малом значении о величина £„ =———~ . На каждой итерации метода дихотомии вычисляются два значения /(х). Поэтому после N вычислений /(х) произ- водится п = N / 2 итераций и достигается точность опреде- ления х*: Е(ЛГ) = е„«-^у 2 22 + (2.5) Пример 2.5. Методом деления отрезка пополам решить задачу /(х) = х4 +e"v -»min, xg[0,1] с точностью е = 0,1. о Выберем 8 = 0,02, (8 < 2е). Рассмотрим детально действия при итерации 1. Шаг 1. х, =0,49, х2=0,51, /(х1) = 0,688, /(х2)=0,670. Шаг 2. /(х,)> /(х?), поэтому полагаем а-хх =0,49. Ъ — а, Шаг 3. ---= 0,255 >0,1, поэтому переходим к следующей ите- рации. Исходные данные и результаты вычислений итераций приведены в табл. 2.2.
2.5. Метод золотого сечения Таблица 2.2 Результаты вычислений на итерациях 1—4 Номер итерации а b (Z>-a)/2 X, х2 /(х,) /(х2) Сравнение 1 0 1 0,5 0,49 0,51 0,688 0,670 /(х1)>/(х2) 2 3 0,49 1 0,26 0,735 0,755 0,771 0,792 /(х,)</(х2) 0,49 0,755 0,13 0,613 0,633 0,683 0,691 /(х1)</(.Г2) 4 0,49 0,633 0,07 0,07 < 0,1 — точность достигнута Откуда х* ~ ~ 0,56, /*== /(0,56) « 0,67 (сравнить с рас- четом примера методами перебора и поразрядного поиска; вычислено семь значений /(х)). 2.5. Метод золотого сечения Рассмотрим такое симметричное расположение точек и х2 на отрезке [а, 6], при котором одна из них становится пробной точкой на новом отрезке, полученном после исклю- чения части исходного отрезка. Использование таких точек позволяет на каждой итерации метода золотого сечения, кроме первой, ограничиться определением только одного значения /(х), так как другое значение уже найдено на одной из пре- дыдущих итераций. Найдем точки х1 и х2, обладающие указанным свой- ством. Рассмотрим сначала отрезок [0,1] и для определенности предположим, что при его уменьшении исключается правая часть этого отрезка. Пусть х2 = т, тогда симметрично распо- ложенная точка xt =1-т (рис. 2.1). О х, х, 1 X 1-т т |------------е-Ь«-----------•----------------------к О х,' х Рис. 2.1. Иллюстрация выбора пробных точек в методе золотого сечения
28 Глава 2. Одномерная минимизация функций. Прямые методы Пробная точка хх отрезка [0,1] перейдет в пробную точку х2 = 1—т нового отрезка [0, т]. Чтобы точки х2 =т и х2 =1-т делили отрезки [0,1] и [0, т] в одном и том же отношении, 1т 2 4 должно выполняться равенство — =-, или т =1-т, отку- да находим положительное значение т =---~ 0,61803... 2 л 3-45 45-1 Таким образом, х{ = 1 - т = —-—, х2 = т = —-—. Для произвольного отрезка [а, Ь] выражения для пробных точек примут вид З-х/5 x/S-1 хх=а +—-—(b-а), х2=а+-—^—(Ь-а), (2.6) На каждой итерации отрезок поиска точки минимума >/5-1 уменьшается в одном и том же отношении т = —-—, поэтому в результате п итераций его длина становится = тп(Ь - а). Таким образом, точность определения точки х* после п итераций находится из равенства (г \п е.=у4( 2 <27> а условием окончания поиска точки х* с точностью £ служит неравенство < е. Необходимо обратить внимание на следующее. 1. Точки х{ и х2 из (2.6) обладают следующим свойством: каждая из них делит отрезок [а, 6] на две неравные части так, что отношение длины всего отрезка к длине его большей части равно отношению длин большей и меньшей части отрезка. Точки с таким свойством называются точками золотого сечения отрезка [а, Ь]. Это и объясняет название рассматриваемого метода. 2. На каждой итерации исключения отрезков с пробными точками (2.6) одна из них переходит на следующий отрезок, и значение f(x) в ней уже известно. 3. Легко проверить, что хх=а + Ь-х2 н х2 = а + Ь-хг По- этому на каждой итерации метода золотого сечения недо-
2.5. Метод золотого сечения 29 стающую пробную точку нового отрезка можно найти по перешедшей на него пробной точке с помощью сложения и вычитания, не используя (2.6). 4. В конце вычислений по методу золотого сечения в ка- честве приближенного значения х* можно взять середину _ а+6 последнего из полученных отрезков х =——. 5. Число итераций, необходимое для достижения задан- ной точности е, можно найти из условия е„ <е с учетом соотношения (2.7): п > 1п(-^-1/1пт = 2,11пГ— Так как W вычислений f (х) позволяют выполнить АГ -1 итераций метода золотого сечения, то достигнутая в резуль- тате этого точность определения х* составляет Е(^) = ел..! (6-а). (2-8) Алгоритм метода золотого сечения следующий. Шаг 1. Определить х, и х2 по формуле (2.6). Вычислить /(xt) и /(х2). Положить т= 1, е„ = Перейти к шагу 2. Шаг 2. Проверка окончания поиска: если е„ > е, то перейти к шагу 3, иначе — к шагу 4. Шаг 3. Переход к новому отрезку и новым пробным точкам. Если /(Х])</(х2), то положить Ь = х2, х2=хр f(x2) = f(x}), xt=b-x(b-a) и вычислить /(Xj), иначе положить a = xt, х\=х2, /(х() = /(х2), x2=b-x(b-a) и вычислить /(х2). Положив е„ = те,,, перейти к шагу 2. Шаг 4. Окончание поиска: положить = /*=/(х).
30 Глава 2. Одномерная минимизация функций. Прямые методы 2.6. Сравнение методов перебора, дихотомии и золотого сечения При сравнении прямых методов минимизации обыч- но учитывают N — количество вычисленных значений /(х), гарантирующее заданную точность определения х\ Чем меньше N, тем более эффективным считается ме- тод. Вспомогательные операции, такие как выбор пробных точек, сравнение значений функции f(x) и прочее, не учитываются. Во многих практических случаях опреде- ление значений целевой функции требует больших затрат (например, времени ЭВМ или средств для проведения экспериментов). Эффективность методов минимизации можно также срав- нивать по гарантированной точности e(N) нахождения точки х*, которую они обеспечивают в результате определения значений /(х). Из анализа формул для е(ЛГ) рассмотренных методов следует, что наиболее эффективным является метод золо- того сечения (происходит исключение отрезков, и необхо- димо выбирать только одну пробную точку на итерации). Далее идет метод дихотомии (происходит деление отрезка почти пополам, но необходим выбор двух пробных точек на итерации). Наименее эффективным является метод перебора — прямой метод пассивного поиска, при котором исключения отрезков не применяются вовсе. Эти выводы иллюстрирует табл. 2.3. Таблица 23 Значения точности е(ДГ) в зависимости от количества 2V найденных значений /(х) на отрезке длиной 1 для трех из рассмотренных методов Методы минимизации Количество найденных значений /(л ) М = 5 W = ll М = 21 N = 51 Метод золотого сечения 0,073 4.1-10-3 3,3 10"5 1,810-" Метод дихотомии 0,125 1,6 Ю'2 4,9 10'4 1,5-10^ Метод перебора 0,250 0,100 0,050 0,020
2.7. Метод парабол 31 Наряду с методами, рассмотренными в таблице, еще раз отметим метод поразрядного поиска — эффективный и не требующий задания фиксированных границ отрезка [а, Ь]. Его часто применяют в задачах многомерной минимизации на ин- тервалах неопределенной (например, бесконечной) длины. Пример 2.6. Сравнить необходимые количества вычисленных зна- чений N2 и Nn функции f(x) при поиске ее точки минимума на отрезке длиной 1 с точностью 10‘5 методом деления отрезка пополам и методом перебора. □ В методе перебора п > (Ь - а) / г, подставляя числа, получим ЛП405. „ . b-a-Ъ . b-а „ В методе дихотомии п > log?--— = log2---. Подставляя числа, 2е - о 2е получим N.= 21og2(105/2) « 32, откуда ЛГП/УД=3125. 2.7. Метод парабол Поиск точки минимума методами исключения отрезков основан на сравнении значений функции /(х) в двух точ- ках, при котором учитывается только знак разности этих значений. Учесть информацию, содержащуюся в относительных из- менениях значений /(х) в пробных точках, позволяет метод полиномиальной интерполяции, идея которого состоит в том, что для f (х) строится аппроксимирующий многочлен и его точка минимума служит приближением к х*. Этот метод можно использовать при условии, что f(x) является не только унимодальной, но и достаточно гладкой. Метод опирается на доказанную в курсе математического анализа теорему Вейерштрасса об аппроксимации, согласно которой достаточно гладкую на отрезке функцию можно с любой точностью заменить на нем некоторым полиномом. Для повышения точности можно, во-первых, увеличивать порядок аппроксимирующего полинома и, во-вторых, умень- шать длину отрезка аппроксимации. Второй путь в нашем случае предпочтительней. Простейший вариант полиномиальной аппроксимации — метод парабол, использующий полиномы второго порядка. На каждой итерации этого метода строится квадратный трехчлен, график которого (парабола) проходит через три выбранные точки графика функции/(х) (рис. 2.2).
32 Глава 2. Одномерная минимизация функций. Прямые методы Рис. 2.2. Иллюстрация применения метода парабол Рассмотрим унимодальную на отрезке [а, Ь] функцию f (х), достигающую минимума во внутренней точке этого отрезка. Выберем три точки xv х2 и х3 отрезка [а, &], для которых выполняются неравенства X, < х2 < х3, f(x,) > f(x2) < f(x3). (2.9) Для определения таких точек, как правило, бывает доста- точно нескольких проб. Можно также совершать итерации методом золотого сечения, до тех пор пока для пробных точек очередного отрезка и одного из его концов не станут выпол- няться неравенства (2.9). Из унимодальности функции f(x) следует, что х* €[хрх3]. Составим квадратный трехчлен д(х) = я0 + а1(х-х1) + а2(х-х1)(х-х2) (полином в форме Ньютона), график которого проходит через точки (хр/(х,)), (х2,/(х2)), (х3,/(х3)) графика фун- кции f (х). Будем считать, что хотя бы одно из неравенств для /(х) в (2.9) является строгим. Тогда ветви искомой параболы будут направлены вверх, а точка минимума х трехчлена д(х) будет принадлежать отрезку [хр х3]. Определяя коэффициенты aQfa{ и а2 из системы урав- нений ^(xi) = f(xl) = fv Q{x2) = f(x2) = f2, ,q{x3)=/(x3)=f3, находим:
2.7. Метод парабол 33 Точку минимума х вычислим, приравняв производную квадратного трехчлена к нулю. В результате получим _ 1, , а1ч Х=-(Х1+Х2—!-), <2.11) где ах и а2 определяются из (2.10). Число х из (2.11) слу- жит очередным приближением метода парабол к х*. Далее описанная процедура повторяется для новых точек хр х2, х3, удовлетворяющих неравенствам (2.9). Заметим, что на каждой итерации метода парабол, кроме первой, определяется только одно новое значение f (х). Условием окончания поиска минимума является близость к нулю разности Д чисел х, найденных на данной и преды- дущей итерациях, т.е. неравенство [ Д | < е. Пример 2.7. Методом парабол решить задачу /(x)=x4+e'v-»min, хе[0,1] стоимостью |д|<е = 0,0025. □ Рассмотрим детально действия при выполнении всех итераций. Итерация 1. Шаг 1. Выберем точки Xj =0,25, х2 =0,5, х3 =0,75, Функция при- нимает в этих точках соответственно значения / = 0,7827, /2 = 0,6690, /3 = 0,7888, удовлетворяющие неравенствам (2.9). Переходим к шагу 2. Шаг 2. По формулам (2.10) и (2.11) находим х = 0,4968. Поскольку на первой итерации вычисление величины Д невозможно, переходим сразу к шагу 4. Шаг 4. Вычисляем /(х)=0,6694. Переходим к шагу 5. Шаг 5. На данной итерации имеем: х, < х < х2 < х3, /(х) > /(х2), следовательно, х*е[х,х3]. Поэтому полагаем: xt = х = 0,4968, /(xj = f(x) = 0,6694, а точки х2,х3 и значения /(х) в них не изменяются. Переходим к следующей итерации. Итерация 2. Поскольку точки хрх2 и х3 уже найдены, то начинаем с шага 2. Шаг 2. Находим х = 0,5224. Переходим к шагу 3. Шаг 3. Д = [0,4968-0,5224|=0,026>0,025, поэтому переходим к шагу' 4. Шаг 4. Вычисляем /(х) = 0,6676. Переходим к шагу 5. * Методы оптимизации
34 Глава 2. Одномерная минимизация функций. Прямые методы Шаг 5. Поскольку г, <х2 <х<х3, f(x2)>f(x), следовательно, х* е [х2, х3 ], поэтому полагаем х, = х2 =0,5, /(х,) = /(х2) = 0,6690, х2=х = 0,5224, /(х2) = /(х) = 0,6676, а точка х3 и значение /(х3) остаются прежними. Переходим к следующей итерации. Итерация 3. Поскольку точки хрх2 и х3 уже найдены, то начинаем с шага 2. Шаг 2. Находим х = 0,5248 и переходим к шагу 3. Шаг3. Определяем Д = |0,5224-0,5248| = 0,024 <0,025, т.е. требуе- мая точность достигнута, поэтому полагаем х* » х « 0,525. Отметим, что в результате пяти вычислений функции /(х) (три — на итерации 1 и по одному — на итерациях 2 и 3) точка х* была найдена с весьма высокой точностью (точное до четвертого знака значение х* =0,5283). Вопросы и задания для самоконтроля 1. Пусть /(х) — дифференцируемая унимодальная на отрезке [а,Ь\ функция, причем |/'(х)|<М. Оценить точность Д(ЛГ) при определении минимального значения /* методом перебора в ре- зультате N вычислений /(х). Ь~ Q 2. Может ли оценка е (N) =-для точности определения х* N-1 методом перебора нарушаться для функций, не являющихся унимо- дальными? Ответ пояснить рисунком. 3. Повысится ли эффективность метода поразрядного поиска, если шаг поиска Д последовательно уменьшать не в четыре, а в какое-либо другое число раз? 4. Может ли применение методов исключения отрезков привести к неверному определению х*, если функция /(х) не унимодальна? Ответ пояснить рисунком. 5. Зависит ли точность определения х*, которую гарантируют методы дихотомии и золотого сечения в результате N вычислений f (х), от конкретной функции f (х)? 6. Требуется найти точку минимума унимодальной функции на отрезке длиной 1 с точностью е = 0,02. Имеется возможность измерить не более 10 значений /(х). Какой из прямых методов минимизации можно использовать для этого? 7. Доказать, что погрешность определения точки минимума л;* функции /(х) методом перебора не превосходит величины е„ = (Ь-а)/п.
Задание для численной реализации в среде программирования MATLAB 35 8. Доказать, что в методе дихотомии число итераций, необходи- мое для определения точки минимума с точностью е , определяется . . Ь-а-Ь формулой п > log2-. 9. Доказать, что число итераций, необходимое для достижения заданной точности е на отрезке [а, Ь], в методе золотого сечения определяется формулой п > Inf• |/1пт ~ 2,11п| -—— \о — а) v 2е 10. Сравнить необходимые количества вычисленных значений и Nn функции f(x) при поиске ее точки минимума на отрез- ке длиной 1 с точностью 10'5 методохм деления отрезка пополам и методом перебора. И. Зависит ли точность определения х*, которая получается методом парабол в результате N вычислений функции /(х), от конкретной функции /(х)? 12. Указать класс функций, для точного определения точек ми- нимума которых достаточно одной итерации метода парабол. 13. В окрестности точки минимума х* график /(х) близок к симметричному относительно вертикальной оси, проходящей через точку х*, а график /2(х) заметно асимметричен. Для какой из этих функций следует ожидать более высокой скорости сходимости, применяя метод парабол? Задание для численной реализации в среде программирования MATLAB 1. Написать в среде MATLAB функции, реализующие следующие пять методов: перебора, поразрядного поиска, дихотомии, золотого сечения и парабол. 2. Выбрать для выполнения работы тестовую функцию, номер которой соответствует номеру Вашего компьютера. Например, для компьютера №3 это будет функция 3), для компьютера №13 — Функция 4): 13-9 = 4; для компьютера №23 это будет функция 5): 23-9x2 = 5. 1) /(x) = x3-3sinx—>min, xe[0, 1]. 2) /(х) = х4 + x1 2 + x + l->min, хе[-1, 0]. 3) /(х) = ег+—-»min, хе [0,5, 1,5]. х 4) /(х) = х2-2х + е'Л->min, хе[-1,1,5]. 5) /(x) = xsinx + 2cosx-»min, хе[-6,-4].
36 Глава 2. Одномерная минимизация функций. Прямые методы 6) /(x) = x+-^-->min, хе [1,2]. х х2 7) /(x) = 10xlnx—— ->min, хе[0,1, 1]. 8) /(x) = e'--|x3+2x-»min, хе[-2,5,-1]. 9) /(x) = x2-2x-2cosx~»min, хе[-0,5, 1]. 3. Для выбранной функции и для каждого реализованного метода изучить зависимость скорости работы (числа вычислений функции У) от заданного значения точности е. Провести сравнение методов. Объяснить полученные результаты, 4. Вычислить аналитическое значение координаты минимума выбранной функции с точностью до 4 значащих цифр. 5. Определить, сколько вычислений функции потребуется каж- дому методу, для того чтобы разность между численным и анали- тическим решениями была меньше е = 10"4. t х2 х3 6. Найти минимум функции f(x) = еЛ -1 - х — -— с точностью 2 о е = 10"4 на отрезке [-5, 5] методами золотого сечения и парабол. Объяснить полученные результаты. 7. Результаты работы сохранить для использования в задании для численной реализации в гл. 3.
Глава 3 ОДНОМЕРНАЯ МИНИМИЗАЦИЯ. МЕТОДЫ, ИСПОЛЬЗУЮЩИЕ ИНФОРМАЦИЮ О ПРОИЗВОДНЫХ ЦЕЛЕВОЙ ФУНКЦИИ Рассмотренные в предыдущей главе прямые методы ис- пользуются при минимальных требованиях к целевой фун- кции /(х), которая считается унимодальной, и вычислению подлежат значения только самой функции, но не ее произ- водных. Пусть теперь f (х) является дифференцируемой или дважды дифференцируемой выпуклой функцией и возможно, вычисление производных f (х) в произвольно выбранных точках. В этом случае эффективность поиска точки минимума можно существенно повысить. Рассмотрим три метода минимизации, в которых исполь- зуются значения производных целевой функции: — метод средней точки; — метод хорд; — метод Ньютона. Напомним, что для выпуклой дифференцируемой функ- ции равенство /'(х) = 0 является не только необходимым, но и достаточным условием глобального минимума. Поэтому если известно, что х‘ является внутренней точкой отрезка [а, />], то приближенное равенство /'(х)==0 или |/'(х)|<е может служить условием остановки вычислений в рассматриваемых трех методах. 3.1. Метод средней точки Если определение производной f'(x) не представляет затруднений, то в процедуре исключения отрезков методом дихотомии вычисление двух значений f (х) вблизи середи-
38 Глава 3. Одномерная минимизация. Методы, использующие • • • ны очередного отрезка можно заменить вычислением одного ч о а + Ь значения j (х) в его средней точке х = ——. В самом деле, если f\x) > 0, то точка х лежит на участке монотонного возрастания /(х), поэтому х* <х и точку ми- нимума следует искать на отрезке \а, х]. При /'(х)<0 имеем противоположную ситуацию и переходим к отрезку [х, &]. Равенство /'(х) = 0 означает, что точка минимума найдена точно: х*=х (рис. 3.1). Рис. 3.1. Иллюстрация исключения отрезков методом средней точки Такое исключение отрезков требует на каждой итерации только одного вычисления f'(x) и уменьшает отрезок поиска точки х* ровно вдвое. Алгоритм метода средней точки следующий. Шаг 1. Положить х = Вычислить /'(х). Перейти к шагу 2. Шаг 2. Проверка на окончание поиска: если | /'(х) | < е, то положить х*= х, /* = /(х) и завершить поиск, иначе перейти к шагу 3. Шаг 3. Сравнить /'(х) с нулем: если f'(x)>0, то про- должить поиск на отрезке [а, х], положив b = х, иначе — на отрезке [х, Ь], положив а-х. Перейти к шагу 1. Пример 3.1. Методом средней точки решить задачу /(х) = х4 + е"' -»min, хе [0,1] с точностью до |/'(х)| < 0,02.
32 Метод хорд 39 □ Рассмотрим детально действия при выполнении итерации 1. Шаг 1. Находим х = 0,5, /'(х) = -0,107, переходим к шагу 2. Шаг 2. | /'(х) | > 0,02, поэтому переходим к шагу 3. ШагЗ. /'(х)<0, значит, полагаем л = х = 0,5 и переходим к следу- ющей итерации начиная с шага 1 и т.д., пока не достигнем необходимой точности. Исходные данные и результаты вычислений при выполнении ите- раций приведены в табл. 3.1. Таблица 3.1 Результаты вычислении примера методом средней точки Номер итерации а b X /'(*) Знак /'(х) 1 0 1 0,5 -0,107 - 2 0,5 1 0,75 1,215 + 3 0,5 0,750 0,625 0,441 + 4 0,5 0,625 0,563 0,142 + 5 0,5 0,563 0,531 0,012 точность достигнута Таким образом, х* ~ 0,531, /* == 0,668. Метод средней точки напоминает метод дихотомии, но сходится к искомому значению х* быстрее, поскольку, в от- личие от него, после вычисления п значений производной, для длины интервала неопределенности минимизируемой на [я, 6] функции /(х) получаем Д„ = . Таким образом, для одинакового уменьшения значения Дп при использовании метода средней точки нужно вычислить вдвое меньше значений производной функции по сравнению с числом значений самой функции при методе дихотомии. 3.2. Метод хорд Как уже отмечалось, равенство /'(х) = 0 является необ- ходимым и достаточным условием глобального минимума выпуклой дифференцируемой функции f (х). Если на кон- цах отрезка [а, Ь] производная /'(х) имеет разные знаки,
40 Глава 3. Одномерная жмимизацияМетодь i, использующие... т.е. f'(a) f\b) < 0, и она непрерывна, то на интервале (а, Ь) найдется точка, в которой /'(х) обращается в нуль. В этом случае поиск точки минимума /(х) на отрезке [a, экви- валентен решению уравнения /'(х) = 0, хе (а, 6). (31) Таким образом, при f'(a) • f'(b) < 0 любой приближенный метод решения уравнения (3.1) можно рассматривать как ме- тод минимизации выпуклой, непрерывно дифференцируемой функции /(х) на отрезке [а, 6]. Сущность приближенного решения уравнения F(x)=0 на отрезке [а, при F(a) F(b~) < 0 методом хорд состоит в исключении отрезков путем определения х — точки пере- сечения с осью Ох хорды графика функции Г(х) на [а, 6], представленного на рис. 3.2. Рис. 3.2. Иллюстрация исключения отрезков методом хорд Полагая F(x) = /'(х), запишем координату точки х: (3-2> Отрезок дальнейшего поиска точки х* ([а,х] или [х, 6]) выбирается в зависимости от знака /'(х) так же, как в методе средней точки. На каждой итерации, кроме первой, необхо- димо вычислять только одно новое значение /'(х). Алгоритм метода хорд следующий. Шаг 1. Найти х по формуле (3.2). Вычислить /'(х) и перейти к шагу 2. Шаг 2. Проверка на окончание поиска: если | /'(х) | < е, то положить х* = х, /*= /(х) и завершить поиск, иначе перейти к шагу 3.
32. Метод хорд 41 • Шаг 3. Переход к новому отрезку. Если f'(x) > 0, то поло- жить b = х, f'(b) = /'(х), иначе положить а = х, f\a) = /'(•*)• Перейти к шагу 1. Пример 3.2* Методом хорд решить задачу /(х) = х4 + е~х -» min, хе [0,1] с точностью до |/'(х)| < 0,05. □ Условие /'(0)/'(1)<0 выполняется. Рассмотрим детально действия при выполнении итерации 1. Шаг 1. Находим: х = 0,216, f'(x) - -0,766. Переходим к шагу 2. Шаг 2. |/'(х)| >0,05, поэтому переходим к шагу 3. Шаг 3. /'(х) < 0,05 поэтому полагаем а = 0,216, f\a) = -0,766. Переходим к итерации 2 начиная с шага 1 и т.д., пока не достигнем требуехмой точности. Результаты вычислений при выполнении итераций записаны в табл. 3.2. Таблица 3.2 Результаты вычислений примера методом хорд Номер итерации а b X /V) Знак /'(х) 1 0 1 0,216 -0,766 - 2 0,216 1 0,352 -0,528 - 3 0,352 1 0,435 -0,319 - 4 0,435 1 0,480 -0,175 - 5 0,480 1 0,504 -0,091 - 6 0,504 1 0,516 -0,046 точность достигнута Отсюда х* « 0,516, /* « 0,668. До сих пор предполагалось, что f'(a) • f'(b) < 0, т.е. про- изводная /'(х) на концах отрезка имеет разные знаки. При нарушении атого условия точку х* можно указать сразу. Так, если /(х) возрастает на [a,i], следовательно, х*= а, а при /'(а) • f\b) < 0 она убывает и х=6. В случае f'(a) • f\b) = 0 х*=я или х*=Л в зависимос- ти от того, на каком из концов отрезка [а, Ь] производная /'(х) = 0.
42 Глава 3. Одномерная минимизация Методы, использующие... 3.3. Метод Ньютона Если выпуклая на отрезке [а, 6] функция f (х) дважды не- прерывно дифференцируема на этом отрезке, то точку х'е [а, &] минимума этой функции можно найти, решая уравнение f'(x) = 0 методом Ньютона (другое название — метод каса- тельных). Пусть х0 е[а, 6] — нулевое (начальное) приближе- ние к искомой точке х\ Линеаризуем функцию F(x) = f'(x) в окрестности начальной точки, приближенно заменив дугу графика этой функции касательной в точке (х0, /'(х0)) F(x) = F(x0) + F'(x0)(x-x0). (3.3) Выберем в качестве следующего приближения к х* точку х( пересечения касательной с осью абсцисс. При- равнивая к нулю правую часть в (3.3), получим первый F(x0) элемент xt = х0---итерационной последовательности F (х0) {rj, k = l,2,... В очередной точке xk построим линейную аппроксимиру- ющую функцию для F(x) и определим точку, в которой эта функция обращается в нуль, используя в качестве следующего приближения xk*x (рис. 3.3). Рис. 33. Иллюстрация метода касательных Уравнение касательной к графику F(x) в точке х = xk имеет вид у = F(xk) + F'(xk )(x-xk), поэтому точка х = xk+i, найденная из условия z/ = 0, определяется формулой Fix ) —Поскольку F(x) = /'(х), получим, что F'(xt)
3.3. Метод Ньютона 43 для решения уравнения /'(х) = 0 необходимо построить последовательность Л7+1 = xk ~ у ’ = 1» 2, — (3.4) где xQ — точка, выбранная в качестве начального прибли- жения. Вычисления по формуле (3.4} производятся до тех пор, пока не выполнится неравенство | /'(хЛ)| < е, после чего полагают х* ~xk, f* ~ f(xk). Формулу (3.4) можно получить также из иных соображе- ний. Запишем квадратичную аппроксимацию qk(x) функции f (х) в точке xk с помощью формулы Тейлора: U) = f(xk)+f'(xk )(х-хк) + А.^Р.(Х _ Хк )2. Функция qk(x) — квадратный трехчлен, аппроксимирую- щий /(х) в окрестности точки xk. Находя точку минимума q(x) из условия q'(x) = 0 и считая ее следующим приближе- нием xk+i к х*, получаем искомую формулу, (рис. 3.4). Для квадратичной функции f (х) функция /'(х) линейна, поэтому в (3.4) равенство будет точным, а метод Ньютона будет сходиться за один шаг при любом выборе точки х0 из области определения этой функции. Для выяснения достаточных условий сходимости рассмот- рим метод Ньютона в случае, если /(х) — трижды непре- рывно дифференцируемая выпуклая функция. Напишем формулу Тейлора для /'(х*), где х* — искомый корень, в окрестности &-го приближения
44 Глава 3. Одномерная минимизация. Методы, использующие . а точка £е[х’, xj. Разделив последнее соотношение на /"(xj и перенеся первые два слагаемых из правой части в левую, получим -X (х4-х*)2, что, учитывая (3.4), переписываем в виде (х*-х*)2, хм-х откуда м -**| = (3.5) Из (3.5) следует оценка I .Ь1Л/з -о™ 1 1 2 т2 (3.6) где М3 = шах|/"'(х)| = min 2 [а.*] I/"(*)!• Ошибка убывает на каждом шаге в том случае, если 1^|х0-х’|<1. (3.7) 2 т2 1 1 Полученное условие означает, что сходимость зависит от начального приближения. Таким образом, метод Ньютона имеет локальную сходимость. Если начальное приближение взято далеко, на сходимость рассчитывать не приходит- ся. С другой стороны, всегда можно добиться выполнения условия (3.7) за счет более точного выбора начального при- ближения х0, например, с помощью нескольких итераций методами золотого сечения или поразрядного поиска. Оценка (3.6) характеризует скорость убывания погреш- ности для метода Ньютона: на каждом шаге погрешность пропорциональна квадрату предыдущей (квадратичная ско- рость сходимости). Это очень высокий темп, например, если в некотором приближении получена одна точная цифра после запятой, то в следующем можно ожидать две точные цифры, затем — четыре и т.д.
33. Метод Ньютона 45 Сформулируем теперь достаточное условие монотон- ной сходимости метода Ньютона. Пусть х* е[а,Ь] и /(х) трижды непрерывно дифференцируемая и выпуклая на отрезке [а, 6] функция. Ясно, что итерационная последова- тельность {хЛ} будет сходиться к пределу х* монотонно, если Л х*-хм . 0<--;-— <1. X -xk В соответствии с формулой Тейлора с остаточным членом в форме Лагранжа f\x* ) = О = f'(xk) + f"(xk )(х *- xt) + (х - хк )2, где точка хе[/, xj. Поэтому с учетом основной формулы (3.4) имеем . f\xk) , X -Х. + ' х ~хк+1 _______f (хк) _ ।________2_________ х'-хк х'-хк 2 + /"'(*)(** -хк)2 /\Хк) Отсюда следует, что последовательность {хА} монотонная, если -- --- > 0, т.е. достаточным условием монотонной схо- f <Хк) димости метода Ньютона является постоянство в диапазоне хе[х*х0] знака производной /'"(х) и совпадение его со знаком /'(х0). При этом квадратичная скорость сходимос- ти не гарантируется. Если кроме того выполняется условие (3.6), то скорость сходимости метода Ньютона становится квадратичной. Высокую скорость сходимости метода Ньютона можно объяснить и так: квадратный трехчлен qk(x), построенный с учетом информации как о первой, так и о второй производ- ной /(х) в точке хр с высокой точностью аппроксимирует выпуклую дважды дифференцируемую функцию /(х) в достаточно малой окрестности этой точки. Поэтому если очередное приближение xk оказывается достаточно близким к х* то точки минимума xk+i и х* функций qk(x) и /(х) практически совпадают.
46 Глава 3. Одномерная минимизация. Методы, использующие... Пример 3.3. Методом Ньютона найти точку минимума функции /(х) = xarctgx--|ln(l + x2) с точностью |/*'(лг)| < 10-/. □ Производные функции равны /'(х) = arctgx, /"(х) = >0, ГМ = ~ 2х (1 + х2)2 ’ Видно, что при всех значениях переменной f'(x) ' f"\x) < 0, т.е. достаточные условия монотонной сходимости не выполняются. Выберем начальное приближение х0 = 1 и пост- роим приближения xk по формуле (3.4), результаты записаны в табл. 3.3. Таблица 3.3 Результаты минимизации функции методом Ньютона k xk 0 1 0,785 1 -0,570 -0,519 2 0,117 0,116 3 -1,061-103 -1,061- to-3 4 9-10‘8 9-108 Откуда х* ® 910-8 =0. Решение примера демонстрирует высокую скорость схо- димости последовательности {**}. Можно провести неслож- ные расчеты и убедиться, что оценка (3.6) и условие (3.7) выполняются, ошибка на каждом шаге убывает и имеет место квадратичная скорость сходимости. Достаточные условия монотонной сходимости не выпол- няются, и последовательные приближения лежат в данном случае по разные стороны от корня. Если начальное приближение выбрать недостаточно близ- ким к точке х*, то последовательность (3.4) метода Ньюто- на будет расходиться. Так, положив при решении примера х0=3, получим последовательность xt=-9,5, х2=124, х3=-23 905, х4 =8,97-108, х5 =-1,271018,... которая очевидно расходится. В подобных случаях необходимо найти лучшее начальное приближение х0, например, с помощью нескольких итераций методами золотого сечения или поразрядного поиска.
3.4. Возможные модификации метода Ньютона 47 16 Пример3.4. Найти /(х) = х2 +--> min, х е [1, 4]. □ Вычислим /'(х) = 2х-16/х2, /"(х) = 2 + 32/х3, /"'(х) = -96/х4. Всюду при хе[1, 4] имеем: /"(х)>0, /"'(х)<0. Поэтому если на- чальную точку х0 выбрать исходя из условия /'(*о) < то построенная итерационная последовательность будет монотонной. Выберем х0 = 1 и вычислим /'(х0) = -14, /"(х0) = 34, а затем по формуле (3.4) получим х, = х0 - { = 1—— = 1,4118. 1 ° Г(х0) 34 Далее при помощи формулы (3.4) находим х, = 1,8010, х, = 1,9790, х, = 1,9998. 2 1 1 о ’ 1 4 1 Величина | х4 - х* | < | х3 - х41 = 0,0208. Действительно, точное зна- чение минимума х‘=2. 3.4. Возможные модификации метода Ньютона Метод Ньютона — Рафсона При переходе к очередной итерации новая точка хЛ+1 рас- считывается по формуле xk+\ f\xk) 0<т,<1. = xk~4 В простейшем варианте метода Tk = т = const ( т = 1 соот- ветствует исходному методу Ньютона). Оптимальный на- бор параметров т* может быть найден из решения задачи минимизации г Ф(Т) = / х,-т min. Г(хк)) На практике для параметров zk обычно используется при- ближенное решение последней задачи (№Л)2
48 Глава 3. Одномерная минимизация. Методы, использующие... Метод Марквардта При переходе к очередной итерации новая точка хм рас- считывается по формуле Значение параметра ц0 выбирается как минимум на по- рядок больше значения f"(x0). При переходе к очередной итерации новое значение полагают равным ц4+1 = pt /2, если f(xk+i)< f(xk), либо pi+1 =2pt в противном случае. 3.5. Методы минимизации многомодальных функций При использовании описанных до сих пор методов численной минимизации существенную роль играла унимодальность целевой функции /(х). Если /(х) этим свойством не обладает, т.е. является многомодальной, то поиск минимума может оказаться безрезультатным или привести к ошибке (будет найдена точка локального экстре- мума, отличного от глобального минимума /(х)\ Поэтому представляют интерес методы минимизации многомодаль- ных функций. Метод перебора Применение этого метода строго обосновано лишь для унимодальной на [а, 6} функции f (х). Однако если вместо унимодальности потребовать, чтобы /(х) удовлетворяла на [а,Ь] условию Липшица г м <38> для всех хр х2е [а, Ь], то можно гарантировать определение минимального зна- чения /* методом перебора с любой заданной точностью. Сформулируем утверждение более строго. Пусть функция /(х) удовлетворяет на отрезке [а,Ь\ условию Липшица (3.8) с константой L и приближенные значения х*~хш, /*« найдены методом перебора с
ЗА Методы минимизации многомодальных функций 49 разбиением отрезка [а, 6] на п частей. Тогда для погрешнос- ти 5„ определения минимального значения справедлива опенка 8,=/(x_)-/-SL^. (3.9) Пусть х* — точка минимума f(x) на \а,Ь\ (сущест- вование точки минимума вытекает из теоремы Вейерш- трасса для непрерывной функции). Среди пробных точек Ь-а . Л х х. = а+---г, г = 0,... п метода перебора найдется такая п I точка х,, что \Xf-x <----- 1 1 1 2п шица (3.8) можно записать Поэтому с учетом условия Лип- 1 1 2п Если функция /(х) многомодальна, то погрешность оп- ределения ее точки минимума может быть значительной, несмотря на то что сам минимум найден достаточно точно (рис. 3.5). Рис. 3.5. Определение минимума многомодальной функции Однако во многих случаях практический интерес представ- ляют те значения аргумента х (возможно, далекие от х*), при которых целевая функция принимает значения, достаточно близкие к минимальному. Это позволяет использовать метод перебора для многомодальных функций.
50 Глава 3. Одномерная минимизация. Методы, использующие... Метод ломаных Этот метод также рассчитан на минимизацию многомо- дальных функций, удовлетворяющих условию Липшица. В нем используются кусочно-линейные аппроксимации функции /(х), графиками которых являются ломаные, что и объясняет название метода. Пример 3.5. Пусть функция f(x) удовлетворяет на отрезке [л, 6] ус- ловию Липшица с константой L. Зафиксируем точку х е [а, Ь] и введем вспомогательную функцию одной переменной g(x, х) = /(х)-£|х-.г|, график которой показан на рис. 3.6. Эта функция максимальна в точке х и минимальна на концах отрезка [а, 6]. Аппроксимирующие кусочно-линейные функции pk(x), k = 0,1,... строятся следующим образом. Рассмот- рим прямые y = f(a)-L(x-a) и y = f(b) + L(x-b). Они пересекаются в точке (х0, yQ) с координатами x0=^z-[f(a)-f(b) + L(a + b)], • ZL (3.10) y0=^[f(a) + f(b) + L(a-b)]. Положим \f(a)-L(x-a), Po{X)~[f(b) + L(x-b), xe[x0, &]. График функции р0(х) показаннарис. 3.7a, ее точка ми- нимума Xq = х0, а минимальное значение р^ = у0.
35. Методы минимизации многомодальных функций 51 Рис. 3.7. Построение ломаных р0(х), р/х), р2(х) Используя вспомогательную функцию g(xj, х), определим аппроксимирующую функцию PiW = max[p0(x), g(xj, х)], у которой по сравнению с р0(х) исчезла точка минимума х^, но появились две новые точки локального минимума х\ и х" (рис. 3.76): х^х^-Др х,"=х;+Др где Д( =^-[/(x;)-pj], (3.11) причем р1«) = р1(х;,) = р1 =|[/(х;)+р;>]. Формулы (3.11) получаются исходя из простых геомет- рических соображений и с учетом того, что тангенсы углов наклона каждого из звеньев ломаной (х) к горизонтальной оси по модулю равны L. Выберем точку глобального минимума р\ функции pt(x), обозначим ее через х, (в данном случае это х\ или х", пусть, например, х* =х[) и положим р2(х) = maxfp/x), g(x,’, х)]. У функции р2(х) по сравнению с pt(x) вместо х(‘ по- явились две новые точки локального минимума х2 и х" (рис. 3.7в), которые находятся аналогично (3.11): х' = х;-Д2, х" = х(' +Д2, где Д2 =^[/«)-а], (3.12) причем р2(х2') = р2(х") = р2 =|[/(^)+Х)]-
52 Глава 3. Одномерная минимизация. Методы, использующие... Пусть теперь функция pk_x(x) построена. Выбрав точку глобального минимума p*k_x функции рЛЧ(х) и обозначив ее через x*k_v определим функцию рк(х) = max[pt_,(x), g(x;_p х>]. Новые точки локального минимума x'k и x'k' функции pk(x), появившиеся взамен x*k_v а также значения pk(x) в этих точках находятся по формулам, аналогичным (3.11) и (3.12): x'k =<i-д*> +др где A* A’_J Pktx'k) = Pk(xk) = Pk= ) + Pt-l )]• Свойства функций pk(x), вытекающие из их построения. 1. рк (х) — непрерывная кусочно-линейная функция, ее гра- фиком является ломаная, состоящая из отрезков с угловыми коэффициентами +L. У функции рк(х) существует ровно £+1 локальных минимумов, точками которых являются абсциссы вершин ломаной, а сами минимумы равны их ординатам. 2. Для всех хе[а,Ь] и k = 1,2,... справедливы неравенства pt.i(x)<pt(x)</(x). Из этих свойств и метода построения функций рк(х) следует, что с ростом k ломаные рк(х) приближаются снизу к графику функции f (х) вблизи точки ее глобального ми- нимума. Идея метода ломаных состоит в том, чтобы искать глобальный минимум не функции /(х), а ломаных рк(х), что, вообще говоря, значительно проще, так как точками минимума рДх) могут быть только абсциссы вершин этой ломаной, определяемые в ходе построения последователь- ности {р*(х)}. Утверждение. Пусть функция /(х) удовлетворяет на отрезке [а,Ь] условию Липшица с константой L. Тогда последовательность {xj} точек минимума функций рк(х), построенных по методу ломаных, обладает следующими свойствами. 1. Iim/(x;) = /’. к— 2. Если точка глобального минимума функции /(х) на единственна, то Iimx*=x*.
35. Методы минимизации многомодальных функций 53 3. Справедлива оценка точности 5* приближения к минимуму /* 0<5t =/«,)-/• =2£ДР (3.13) которая используется в качестве условия окончания поиска минимума. Алгоритм метода ломаных при условии, что минимум /’ должен быть найден с точностью 5, следующий. Шаг 1. Вычислить (х0, у0) по формулам (3.10) и опреде- лить пару (х, р), полагая х = х0, р = г/0. Перейти к шагу 2. Шаг 2. Сравнивая значения р введенных в рассмотрение пар (х, р), определить пару (х„, р.), у которой это значение минимально. Вычислить /(х.). Перейти к шагу 3. Шаг 3. Проверка на окончание поиска с помощью условия (3.13). Вычислить Д = ^-[/(х,)-рф] и положить 84=2£Д. Если 8* <8, то поиск завершить, полагая х*~х„ f*~ f{x,), иначе перейти к шагу 4. Шаг 4. Определить новые пары (х', р) и (х", р), полагая х' = х.-Д, х" = х.+Д, р = ^[/(х.)+ р.], и ввести их в рас- смотрение вместо пары (х., р.). Перейти к шагу 2. Необходимо обратить внимание на следующее. 1. На каждой итерации метода ломаных, кроме первой, вычисляется только одно значение f (х). 2. На практике часто для оценки минимальной константы Липшица £ вычисляют угловые коэффициенты некоторого числа хорд на графике f (х). Максимальный из модулей этих коэффициентов является приближением к £ снизу, причем тем лучшим, чем меньше эти хорды. 3. Использование слишком завышенной оценки для мини- мальной константы Липшица снижает скорость сходимости метода ломаных, а применение заниженной оценки приводит, вообще говоря, к неверному результату. ♦ * * Теоретическое исследование методов одномерной мини- мизации и численные эксперименты показывают, что для достаточно гладких выпуклых функций методы полиномиаль- ной интерполяции и метод Ньютона являются существенно
54 Глава 3. Одномерная минимизация. Методы, использующие... более эффективными, чем методы исключения отрезков, особенно когда необходима высокая точность определения точки минимума. Однако при ухудшении свойств функции f (х) (например, если f(x) невыпукла, быстро изменяется, имеет разрывные производные) эти алгоритмы минимизации по эффективности и надежности могут уступать методу золотого сечения, кото- рый практически не чувствителен к свойствам функции, если она унимодальна, или методу поразрядного поиска. Поэтому если особенно важно добиться надежной и ус- тойчивой работы алгоритма, то целесообразно использовать метод золотого сечения или поразрядного поиска как одни из лучших прямых методов. Можно также применять эти методы совместно с одним из более точных методов, например квадратичной аппроксимации, переходя к алгоритму золотого сечения, если заданное число итераций более точного метода не приводит к результату. Вопросы и задания для самоконтроля 1. Пусть f(x) — выпуклая дифференцируемая функция и | f'(x) | < е. Можно ли указать погрешности определения точки минимума х* и минимального значения /* по формулам х' = х, f = /(х)? Ответ пояснить рисунком. 2. Является ли условие /'(х) = 0 достаточным, для того чтобы число х было точкой минимума унимодальной, но невыпуклой функции /(г)? Ответ сопроводить примером. 3. Указать класс функций, для которых точное определение точки минимума гарантировано в результате всего одной итерации метода Ньютона. 4. Сформулировать достаточные условия сходимости метода Ньютона. 5. Сформулировать достаточные условия монотонной сходимос- ти метода Ньютона. Всегда ли в этом случае скорость сходимости будет квадратичной? 6. Для каких выпуклых дважды дифференцируемых функций метод золотого сечения приводит к цели за меньшее количество итераций, чем метод Ньютона? 7. Минимизировать функцию /(х) = (л-I)8min,xe [0, 2] с помощью методов Ньютона и золотого сечения. Сравнить скорость сходимости методов. 8. Сформулировать оценку погрешности определения минимума многомодальной функции методом перебора.
Задание для численной реализации в среде программирования MATLAB 55 9. Увеличение используемого значения константы Липшица L при реализации метода ломаных приводит к замедлению сходимости мето- да. Объяснить этот факт с помощью геометрической иллюстрации. 10. Показать с помощью рисунка, что если в методе ломаных используется ошибочно заниженное значение константы Липшица L, то задача минимизации может быть решена неверно. Задание для численной реализации в среде программирования MATLAB 1. Написать в среде MATLAB функции, реализующие метод средней точки, метод хорд и метод Ньютона. 2. Выбрать для выполнения работы тестовую функцию, номер которой соответствует номеру Вашего компьютера. Например, для компьютера №3 это будет функция 3), для компьютера №13 - функция 4): 13-9 = 4; для компьютера №23 это будет функция 5): 23-9x2 = 5. О /(x) = x3-3sinx—>min, хе[0, 1]. 2) /(х) = х4+х2+х + 1 —>min, хе [-1,0]. 3) f(x) = e'+— -»min, хе[0,5, 1,5]. х 4) f(x) = x2-2х + е~х min, xg[-1, 1,5]. 5) /(x) = xsinx + 2cosx-»min, хе [-6,-4]. 6) /(x) = x+-^->min, xe[l, 2]. x2 7) /(x) = lOxlnx- — -» min, xe[0,l, 1]. 8) /(x) = e*-^x3+2x-» min, xe[-2,5,-1]. 9) /(x) = x2-2x-2cosx->min, xe[-0,5, 1]. 3. Для выбранной функции и для каждого рассмотренного выше метода изучить зависимость скорости работы (числа вычислений функции N) от заданного значения точности е. Провести сравнение методов. Объяснить полученные результаты. 4. Определить, сколько вычислений функции потребуется каж- дому методу, для того чтобы разность между численным решением и аналитическим решением, найденным в задании для численной реализации в гл. 2, была меньше е = 10"4.
56 Глава 3. Одномерная минимизация Методы, использующие... 5. Сравнить полученные результаты с результатами выполнения задания для численной реализации в гл. 2. Сформулировать досто- инства и недостатки прямых методов и методов, использующих производную целевой функции. 6. С помощью метода Ньютона решить задачу минимизации функции /(г) = xarctgX“ln(l+x2). Определить диапазон начальных приближений, для которых при- меним метод Ньютона. Объяснить полученный результат. 7. Решить задачу предыдущего пункта с помощью одной из опи- санных выше модификаций метода Ньютона (метода Марквардта или метода Ньютона — Рафсона). Определить диапазон начальных приближений, для которых применима выбранная модификация метода Ньютона. Сравнить полученные результаты с результатами выполнения предыдущего пункта. 8. Составить программу нахождения глобального минимума многомодальных функций методом перебора и методом ломаных. С ее помощью решить один из следующих наборов задач: a) f(x) = С<^^Х -> min, хе[1, 12]; х б) /(x) = ^x + 2sm4x-»min, хе[0, 4]; в) /(х)= C0S^.^—-» min, хе[1, 5]; е г) /(x) = 0,3cos2x+2sin(4x)~»min, хе(0, 4]. Сравнить найденные значения точек минимума с точными значени- ями, найденными аналитически. Сделать выводы о сравнительных достоинствах и недостатках метода перебора и метода ломаных.
Глава 4 ЗАДАЧА МИНИМИЗАЦИИ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ БЕЗУСЛОВНОГО ЭКСТРЕМУМА 4.1. Постановка задачи и определения Постановка задачи поиска минимума функций. Найти такой вектор х*= (хр... х„)г, принадлежащий облас- ти допустимых значений U а. Еп (£л—евклидово пространс- тво), целевая функция от которого /(х‘) = min f (х). (4.1) .ret/ Необходимо обратить внимание на следующее. 1. Поиск максимума функции /(х) сводится к задаче определения минимума путем замены знака перед функцией на противоположный /(х*) = max/(x) = -min (- /(х)). xeU леи 2. Задача определения минимума и максимума целевой функции /(х) называется задачей поиска экстремума /(x*) = extr/(x). хе U 3. Если множество допустимых решений U задается ог- раничениями (условиями), накладываемыми на вектор х, то решается задача поиска условного экстремума. Если U = Еп, то ограничения (условия) на вектор х отсутствуют и решается задача поиска безусловного экстремума.
58 Глава 4. Задача минимизации функции многих.. 4. Решением задачи поиска экстремума является пара (х*,/(х*)), которая включает точку х* и значение целевой функции в ней. Напомним, что точка х* е U называется точкой глобаль- ного минимума, или просто минимума, функции f (х) на множестве U, если функция достигает в этой точке своего наименьшего значения, т.е. /(х*)< /(х) для всех xet7; точка х* g U называется точкой локального минимума функ- ции /(х) на множестве (7, если существует такое £ > 0, что если x*gC7и||х-х*| <е,то/(х*)</(х).Здесь||х|| = +... + х* — евклидова норма вектора х. Определение, Поверхностью уровня функции /(х) назы- вается множество точек, в которых функция принимает пос- тоянное значение, т.е. /(х) = const. Если п = 2, то поверхность уровня изображается линией уровня на плоскости Е2, Пример 4,1, Построить линии уровня функций: а)/(х) = х2+х2; б)/(х) = ^+х2; в) f(x) = х2 -х2; г) /(х) = х2. □ a) f (х) = х2 + х* = const = г2 — уравнение окружности с центром в точке (0, 0)г и радиусом, равным г; х2 б) /(х) = -^- + х2 = const — уравнение эллипса. Если const = 1, то а = 2, b = 1 — большая и малая полуоси эллипса; в) /(х) = х2 -х2 = const — уравнение гиперболы; г) /(х) = Х2 = const — уравнение двух параллельных оси Ох{ прямых. Определение. Градиентом V/(х) непрерывно дифферен- цируемой функции f (х) в точке х называется вектор-стол- бец, элементами которого являются частные производные первого порядка, вычисленные в данной точке ?/(*) = dxt df(x) Эх2 Э/(х) Эх„
4.1. Постановка задачи и определения 59 Градиент функции направлен по нормали к поверхнос- ти уровня, т.е. перпендикулярно к касательной плоскости, проведенной в точке х, в сторону наибольшего возрастания функции в данной точке. Определение. Матрицей Гессе Н(х) дважды непрерывно дифференцируемой в точке х функции f (х) называется матрица частных производных второго порядка, вычисленных в данной точке Н(х) = ^2f(x) дх2 d2f(x) dx2dxt Э2/(х) Э2/(х) дх2 d2f(x)' дх1дха д2/(х) дх2дхп 41 ^21 Л12 . ^22 ’ ^2п .. h. •• h„„ д7(х) д2/(х) d2f(x) \ П2 п2 пп у дхпдх2 дх2 , , Э2/(х) . . где hn = "4“Ч—’ J = 1, - J dXjdXj Необходимо обратить внимание на следующее. 1. Матрица Гессе является симметрической размера пхп, 2. Вместе с градиентом можно определить вектор анти- градиента, равный по модулю вектору градиента, но про- тивоположный по направлению. Он указывает в сторону наибольшего убывания функции в данной точке. 3. С помощью градиента и матрицы Гессе, используя раз- ложение в ряд Тейлора, приращение функции f (х) может быть записано в форме А/(х) = f(x + Дх) - /(х) = V/(х)гДх +1 Дхг Н(х)Дх + о( || Дх ||2), (4.2) где о(|| Дх ||2) — сумма всех членов разложения, имеющих по- рядок выше второго, ДхгН(х)Дх — квадратичная форма. Пример 4.2. Для функции f (х) = х2 + х2 вычислить градиент в точ- ках ,г<0) =(0, 1/, .г(|) =(-Ц -J=)r, х(2) =(1, 0/, х<3) = (0, -1)г и найти х/2 v2 матрицу Гессе.
60 Глава 4 Задача минимизации функции многих... □ По определению градиента и матрицы Гессе имеем V/(x) = (2x„ 2х2)т, V/(xw) = (0, 2)r, V/(x">) = (V2,V2)r> V/(x<2>) = (2, 0)г, V/(x<3)) = (0,-2)т, Я(х) = 1 I. Заметим, что матрица Гессе квадратичной функции не зависит от х. Пример 4.3. Для функции /(x) = xt2 +х^ вычислить градиент и найти матрицу Гессе в точках х(0) = (0, О)7, х(,) = (1, 1)г. □ Согласно определениям имеем V/(x) = (2x„ 4х3)7, Я(х)=Р ° А I U lzx2 ) fl Vf(xw) = (0,0)r, Я(х<0>) = ( о ; (2 О А V/'(x<1,)=(2,4)7', Я(х<1))=| . Определение. Квадратичная форма Дхг Н(х)Дх (и соот- ветствующая ей матрица Гессе Я(х)) называется: — положительно определенной (Я(х) > 0), если для любого ненулевого Дх выполняется неравенство ДхгЯ(х)Дх>0; — отрицательно определенной (Н(х) < 0), если для любого ненулевого Ах выполняется неравенство ДхгЯ(х)Дх<0; — положительно полуопределенной (Н(х) > 0), если для лю- бого Ах выполняется неравенство Дхг Н(х)Дх>0 и имеется отличный от нуля вектор Ах, для которого Дхг Я(х)Дх = 0; — отрицательно полуопределенной (Н(х) < 0), если для лю- бого Ах выполняется неравенство Дх7 Н(х)Ах<0 и имеется отличный от нуля вектор Ах, для которого ДхтЯ(х)Дх = 0; — неопределенной, если существуют такие векторы Ах, Дх, что выполняются неравенства Ах 7 Я(х) Дх > 0, Дх7 Я(х) Дх < 0; —тождественноравной нулю (Я(х) н0), если для любого Ах выполняется Дхг Я(х)Дх = 0. Пример 4.4. Классифицировать квадратичную форму и матрицу (2 0 Гессе Я(х)=1
41. Постановка задачи и определения 61 □ Выпишем квадратичную форму АхгН(х)Ах = (Ахр Ах р 0V Ах, 2\о 2дДх2 = 2Аг2 + 2Дх2. Очевидно, ДхгЯ(х)Дх>0 для любого ненулевого Дх. Согласно определению, квадратичная форма (матрица Гессе) положительно определенная. р О I О О J' Пример 4.5. Классифицировать квадратичную форму и матрицу Гессе Я(х)= □ Выпишем квадратичную форму ЛхтН(х)Ьх = (Дх,, Дх2)^ ° j = 2Дх’• Очевидно, Дхг Я(х) Ах > 0 для любого вектора Ах и Ахг Н(х) Ах = О для Ах, =0 и любых Дх2 *0. Согласно определению, квадратичная форма (матрица Гессе) положительно полуопределенная. Пример 4.6. Найти матрицу Гессе функции /(х) = х,2 -х2 и клас- сифицировать ее. □ Следуя определению матрицы Гессе, получаем Я(х) = Выпишем соответствующую ей квадратичную форму ЛхтЯ(х) Дх = (Дх,, Дх2) 2 0 V Дх, 0 -2ДАг2 = 2Дх,2 -2Дх2. 0 " -2J 2 0 При Дх,=0 и любых Дх2#0 квадратичная форма отрицательна, а при Дх,*0 н Дх2=0 положительна. Квадратичная форма (матрица Гессе) неопределенная. Решение задач минимизации в Еа, как правило, сопряжено со значительными трудностями, особенно для многоэкстре- мальных функций. Некоторые из этих трудностей устраня- ются, если ограничиться рассмотрением только выпуклых Целевых функций.
62 Глава 4 Задача минимизации функции многих... 4.2. Свойства выпуклых множеств и выпуклых функций Определение. Пусть х, уеЕп. Множество точек вида {z}<zE„, z = ax + (l-a)z/, ae[0,l] называется отрезком, соединяющим точки х и у. В пространстве Еп, п<3 это соотношение определяет обычный отрезок, соединяющий точки х и у. Определение. Множество U cEti называется выпуклым, если вместе с любыми точками х и yeU оно содержит и весь отрезок z = ax + (l-a)z/, ae[0,1]. Необходимо отметить, что проверка условия выпуклости в большинстве случаев требует громоздких выкладок, поэто- му на практике при исследовании выпуклости множества в пространствах Е2 и Е3 часто прибегают к решениям в гра- фическом виде. Образно говоря, выпуклыми являются множества, которые не содержат «вмятин», «дырок» и состоят из одного «куска». Примерами выпуклых множеств являются само пространст- во Еп, отрезок, прямая, шар. Множество х2 + у2 =1 в Е2 не является выпуклым. Определение. Функция f (х), заданная на выпуклом мно- жестве U сЕп, называется: — выпуклой, если для любых точек x,yeU и любого ае [0,1] выполняется неравенство /(ax+(1 - а)у) < а/(х)+(1 - а)/(у). (4.3) — строго выпуклой, если для всех ае (0,1) неравенство (4.3) выполняется как строгое /(ах + (1 -а) у} < а/(х) + (1 -a) f(y). (4.4) — сильно выпуклой с константой I > 0, если для любых точек x,y&U и любого ае[0,1] выполняется неравенство /(а х+(1 - а) у) < а /(х)+(1 - a) f(y) - |а (1 - а)|| х - у ||2. (4.5) Необходимо обратить внимание на следующее. 1. Функцию /(х) называют выпуклой, если ее график целиком лежит не выше отрезка, соединяющего две ее про- извольные точки. Функцию называют строго выпуклой, если ее график целиком лежит ниже отрезка, соединяющего две ее произвольные, но не совпадающие точки.
42. Свойства выпуклых множеств и выпуклых функций 63 2. Если функция сильно выпуклая, то она одновременно строго выпуклая и выпуклая. Если функция строго выпуклая, то она одновременно выпуклая. 3. Выпуклость функции можно определить по матрице Гессе: — если Н(х) > 0 для любого хе Еп, то функция выпуклая; — если Н(х)>0 для любого хе Еп, то функция строго выпуклая; — если Н(х)>1Е для любого хе Еп, где Е — единичная матрица, то функция сильно выпуклая. Пример 4.7. Исследовать на выпуклость функцию f (х) = г2, опре- деленную на множестве U = {хе [-1,1]}. □ Функция является строго выпуклой, так как ее график целиком лежит ниже отрезка, соединяющего две ее произвольные, но не совпа- дающие точки. Более того, функция является сильно выпуклой, так как выполняется условие Н(х) = /"(х) = 2 > I при 0 < I < 2. Пример 4.8. Исследовать на выпуклость функцию f (х) = х, опре- деленную на множестве 17 = {хе [0,1]}. □ Функция является выпуклой, так как ее график целиком лежит не выше отрезка, соединяющего две ее произвольные точки, но не является строго выпуклой и тем более сильно выпуклой. Пример 4.9. Исследовать на выпуклость функцию f (х) = х2 + х2, определенную на множестве Е2. □ Матрица Гессе функции удовлетворяет условию Н(х) = | | >/I 0|при0</<2. V 7 10 2 10 1J Р Следовательно, эта функция сильно выпукла. Одновременно она яв- ляется строго выпуклой и выпуклой. В дальнейшем часто используются следующие свойства выпуклых функций. 1. Если f (х) выпуклая функция на выпуклом множестве U, то всякая точка локального минимума является точкой ее глобального минимума на U. 2. Если выпуклая функция достигает своего минимума в Двух различных точках, то она достигает минимума во всех точках отрезка, соединяющего эти точки. 3. Если /(х) строго выпуклая функция на выпуклом множестве U, то она может достигать своего глобального минимума на U не более чем в одной точке.
64 Глава 4. Задача минимизации функции многих... 4.3. Необходимые и достаточные условия безусловного экстремума Необходимые условия экстремума первого порядка. Пусть х*е Е„ есть точка локального минимума (максимума) функции f(x) на множестве Еа и f (х) дифференцируема в точке х‘. Тогда градиент функции f (х) в точке х* равен нулю V/(x)=0, (4.6) или ^ = 0, i = (4.7) Эх( Точки х* удовлетворяющие условию (4.6) или (4.7), на- зываются стационарными. Необходимые условия экстремума второго порядка. Пусть х*еЕп есть точка локального минимума (максимума) функции /(х), определенной на множестве Еп, и функция /(х) дважды дифференцируема в этой точке. Тогда матрица Гессе Я(х‘) функции /(х), вычисленная в точке х*, является положительно полуопределенной (отрицательно полуопре- деленной), т.е. Н(х*) > 0, (Я(х*) < 0). Достаточные условия экстремума. Пусть функция /(х) в точке х'еЕп дважды дифференцируема, ее градиент равен нулю, а матрица Гессе является положительно опреде- ленной (отрицательно определенной), т.е. V/(x’)=0 и Н(х’) > 0, (Н(х*) < 0). (4.8) Тогда х* — точка локального минимума (максимума) фун- кции /(х) на Е„. Проверка выполнения условий экстремума. Рассмотрим матрицу Гессе, составленную для стационарной точки х* Угловыми минорами k-ro порядка матрицы размера пхп, где k<n, называются определители, составленные из эле- ментов исходной матрицы, стоящих в ней на пересечении, k верхних строк и k левых столбцов.
43. Необходимые и достаточные условия безусловного экстремума 65 Главными минорами т-го порядка матрицы размера п х п, где т п, называются определители, составленные из элементов исходной матрицы, оставшихся после вычеркивания в ней любых (п-т) строки (п-т) столбцов с одинаковыми номерами. Существуют два основных способа проверки выполнения условий экстремума. Первый способ связан с исследованием положительной или отрицательной определенности угловых и главных миноров матрицы Гессе. Второй способ основан на анализе собственных значений этой матрицы. В первом случае при анализе знаков угловых и главных миноров матрицы Гессе доказаны и обычно используются на практике два критерия — проверки достаточных и необходимых условий второго порядка. Приведем их без доказательства. Критерий Сильвестра проверки достаточных условий экстремума 1. Для того чтобы матрица Гессе Н(х’) была положительно определенной (Я(х*) > 0) и стационарная точка х* являлась точкой локального минимума, необходимо и достаточно, что- бы знаки угловых миноров были строго положительны (Л^О, Д2>0,... Дя>0). 2. Для того чтобы матрица Гессе Н(х') была отрицательно оп- ределенной (Я(хФ) < 0) и стационарная точка х" являлась точкой локального максимума, необходимо и достаточно, чтобы знаки угловых миноров чередовались, начиная с отрицательного (ДJ <0, Д2 > О, Д3 < 0,... (-1)п Д„ > 0). Критерий проверки необходимых условий экстремума второго порядка 1. Для того чтобы матрица Гессе Я(хФ) была положитель- но полуопредеденной (Я(хФ)>0) и стационарная точка х* являлась бы точкой локального минимума, необходимо и достаточно, чтобы все главные миноры определителя матрицы Гессе были неотрицательны (Д,>0, Д2>0, ... Д„>0). 2. Для того чтобы матрица Гессе Я(хф) была отрицатель- но полуопределенной (Я(хФ) < 0) и стационарная точка х’ являлась бы точкой локального максимума, необходимо и J Me годы оптимизации
66 Глава 4. Задача минимизации функции многих... достаточно, чтобы все главные миноры четного порядка были неотрицательны, а все главные миноры нечетного порядка — неположительны (At<0, Д2>0, А3<0, ... (-1)"Д„>0). Второй способ проверки условий экстремума связан с анализом собственных значений матрицы Гессе и применим только в случае, если эти значения удается вычислить. Определение. Собственные значения X, , i = 1,... п матрицы Н(х*) размера пхп находятся как корни характеристичес- кого уравнения (алгебраического уравнения п-й степени) |Н(х’)-Х£| = 0. Необходимо отметить, что собственные значения вещест- венной симметрической матрицы Н(х*) вещественны. Если собственные значения матрицы Гессе вычислены, то дальнейшая проверка условий экстремума не составляет затруднений. Приведем в виде таблицы порядок примене- ния двух способов, позволяющих установить достаточные условия экстремума и необходимые условия второго поряд- ка при соблюдении необходимых условий первого порядка V/(x ) = 0 (табл. 4.1). Алгоритм решения задачи следующий. Шаг 1. Записать необходимые условия экстремума первого порядка и найти стационарные точки х* в результате решения системы п в общем случае нелинейных алгебраических уравне- ний с п неизвестными. Для численного решения системы могут использоваться методы простой итерации, Зейделя, Ньютона. Шаг 2. В найденных стационарных точках х* проверить выполнение достаточных условий, а если они не выполняются, то необходимых условий второго порядка с помощью одного из двух способов (табл. 4.1). Шаг 3. Вычислить значения /(х*) в точках экстремума. Необходимо обратить внимание на следующее. 1. Если требуется определить глобальные экстремумы, то они находятся в результате сравнения значений функции в точках локальных экстремумов с учетом ограниченности функции на Еп. 2. Для функции одной переменной /(х) можно восполь- зоваться следующим правилом, заменяющим операции на шаге 2. Если /(х) и ее производные непрерывны, то точка х* явля- ется точкой экстремума тогда и только тогда, когда т — четное,
Критерии проверки достаточных и необходимых условий второго порядка при поиске безусловного экстремума Таблица 4.1 № Н(х) Условия Первый способ Второй способ Тип стационарной точки х‘ 1 >0 Достаточные условия экстремума Д, >0, Д2 >0,... Д„>0 Х,>0,...Х„>0 Локальный минимум 2 <0 Достаточные условия экстремума Д, <0, Д2 >0,Д:) <0,... (-1)"Д„>0 <0,..А„ <0 Локальный максимум 3 >0 Необходимые условия экстремума второго порядка Все главные миноры определителя матрицы Я(х*) неотрицательны X, >0,...Х„ >0 Может быть локальный минимум, требуется до!юл 11ит. исслсдова!।ие 4 <0 Необходимые условия экстремума второго порядка Все главные миноры четного порядка >0, нечетного порядка <0. Xt<0,...X„<0 Может быть локальный максимум, требуется до! юл 11 ит. и сел сдова) i ис 5 = 0 Необходимые условия экстремума второго порядка Матрица Гессе состоит из пулевых элементов X, = 0,...Х„=0 Требуется дополнит, исследование 6 >0, <0 Необходимые условия экстремума второго порядка Нс выполняются условия 1—5. X, имеют разные знаки Нет экстремума
68 Глава 4. Задача >й«|цжзацмифунюрц|№0П1х... где т — порядок первой не обращающейся в нуль в точке х* производной. Если /*(,и)(х*)>0, то в точке х* — локальный минимум, а если /'т)(х*)<0, то в точке х* — локальный максимум. Если число т нечетное, то в точке х* нет экс- тремума. 3. Часто на практике при применении численных методов поиска экстремума требуется проверить, выполняются ли необходимые и достаточные условия экстремума в некоторой точке. Такая проверка необходима, так как многие численные методы позволяют найти лишь стационарную точку, тип ко- торой требует уточнения. Пример 4.10. Найти экстремум функции f (х)=х*+х2, определен- ной на множестве £2. □ 1. Запишем необходимые условия экстремума первого порядка ^£>.2л-,.0; ^-2хг-0. дх1 Эх2 В результате решения системы получаем стационарную точку х'=(0, О/. 2. Проверим выполнение достаточных условий экстремума. Первый способ. Матрица Гессе имеет вид Я(х*) = • Так как 2 О О 2 Д1=А11=2>0, Д2 = = 4 > 0, то в точке х* локальный минимум (строка 1 табл. 4.1). Второй способ. Найдем собственные значения матрицы Гессе 2-Х О О 2-Х = 0. Отсюда (2-Х)2=0, Х1=Х2=2>0. Так как все собственные значения положительны, то в точке х* ло- кальный минимум (строка 1 табл. 4.1). Так как Я(х*)>0, то функция строго выпукла на множестве Е2. Поэтому точка локального минимума является и точкой глобального минимума. 3. Вычислим значение функции в точке глобального минимума /(х)=0.« Пример 4.11. Найти экстремум функции /(х) = х12-х2 на мно- жестве Е2. □ 1. Запишем необходимые условия экстремума первого порядка ^^ = 2х,=0; ^^ = -2х,=0. Эх, 1 Эх2
4ЛНеобходимь1еидостатот^^ 69 В результате решения системы получаем стационарную точку г =(0, 0/. 2. Проверим выполнение достаточных условий экстремума и необ- ходимых условий второго порядка. (2 О А Первый способ. Матрица Гессе имеет вид Я(х*) = I. Так как д1=Л11=2>0, Д2 = 2 О О -2 = -4 < 0, то достаточные условия экстремума не выполняются (строки 1 и 2 табл. 4.1). Проверим выполнение необ- ходимых условий второго порядка. Главные миноры первого порядка (т = 1) получаются из Д2 в результате вычеркивания п-т = 2-1 = 1 строк и столбцов с одинаковыми номерами, а их значения равны соот- ветственно -2 и 2. Главный минор второго порядка получается из Д2 в результате вычеркивания п-т = 0 строк и столбцов и совпадает с Д2 = -4. Отсюда следует, что необходимые условия экстремума второго порядка не выполняются (строки 3 и 4 в табл. 4.1). Так как матрица Гессе не является нулевой, то делаем вывод, что в точке х* экстремума нет (строка 6 в табл. 4.1). Второй способ. Найдем собственные значения матрицы Гессе: 2-Х 0 0 -Z-X = 0. Отсюда (2-Х)(-2-Х) = 0, Xj=-2<0, Х2=2>0, т.е. собственные значения имеют разные знаки. Поэтому точка х* не является точкой минимума или максимума (строка 6 в табл. 4.1). 3. Так как экстремума нет ни в одной точке, значение /(х*) не вычисляется. Пример 4.12. Найти экстремум функции f (х) = х* + х2, определен- ной на множестве Е2. □ 1. Запишем необходимые условия экстремума первого порядка ^ = 2х,=0; ^ = 4х’=0. dXj Эх2 В результате решения системы получаем стационарную точку х* =(0,0/. 2. Проверим выполнение достаточных условий второго порядка. (2 0 (2 0^ Матрица Гессе имеет вид Н(х*)= #2 = . Так как 2 0 0 0 Д1=Л11=2>0, Д2 = = 0, то достаточные условия экстремума не выполняются. Проверим выполнение необходимых условий экс- тремума второго порядка. Аналогично решению предыдущего примера
70 Глава 4.Задача минимизации функции многих... получаем значения главных миноров первого порядка соответственно 2 и 0 и главный минор второго порядка 0. Так как все главные миноры неотрицательные, то в точке х* может быть минимум и требуется дополнительное исследование. 3. Вычислим значение целевой функции в стационарной точке /(х*) = 0 и рассмотрим е-окрестность точки х* а также поведение функ- ции /(х) на множестве Е2. При любых хе Е2 имеем /(х)> /(х*) = 0. Поэтому точка х* является точкой глобального минимума. Пример 4.13. Найти экстремум функции /(х) = -х2-х2 -х3 -х{+х{х2 + 2х3 на Е3. □ 1. Запишем необходимые условия экстремума первого порядка Э/(х) п 4 Л V(x) Q Л УМ П о Л = -2х. -1+х2 = 0, = -2х7 + х. = 0, = -2х, +2 = 0. dxt Эх2 Эх3 В результате решения системы получаем стационарную точку v 3 3 2. Проверим выполнение достаточных условий экстремума. Первый способ. Матрица Гессе имеет вид Я(х*) = 1 0 1 -2 0 0 0 -2 = 4-1 = 3>0, Д3 = (-2)-3 = -6<0, Так как А, = -2 < 0, Д2 = -2 1 1 -2 т.е. знаки угловых миноров чередуются, начиная с отрицательного, то х* — точка локального максимума. Второй способ. Найдем собственные значения матрицы Гессе -2-Х 1 0 det(H-X£) = -2-Х 0 =0. 0 -2-Х Отсюда (-2-Х)[(-2-Х)2-1]=О и X, =-2<0, Х2=-1<0, Х3 = -3<0. Так как все собственные значения матрицы Гессе отрицательны, то в точке х* локальный максимум. 3. Вычислим значение функции в точке локального максимума /(** )=|" Пример 4.14. Найти экстремум функции /(х) = х3 + х2 - 3xtx2 на Е2.
4.3. Необходимые и достаточные условия безусловного экстремума 71 □ 1. Запишем необходимые условия экстремума первого порядка ^^ = Зх,2-Зх2=0; ^^ = Зх2-Зх,=0. Эх, 12 Эх2 2 * Решая систему, найдем стационарные точки = (0,0)г; х2 = (1,1)г. 2. Проверим выполнение достаточных условий второго порядка. Первый способ. Матрица Гессе имеет вид , (6х. Я(Х1) = 1-3 -3W0 -3) Л ~ Л при х = х<. 6х2) V-3 0} 1 Так как А, =/ги =0, Д2 = = -9, то достаточные условия экс- тремума не выполняются. Проверим выполнение необходимых условий экстремума второго порядка. Главные миноры первого порядка равны 0, главный минор второго порядка равен -9. Необхо- димое условие второго порядка не выполняется, следовательно, в точке х* = (0,0/ экстремума быть не может. В точке х\ = (1,1)г матрица Гессе имеет вид Н(Х2)=[6-з -3 А ( 6 -ЗА 6х2 J ^-3 6 J Так как А, = = 6 > 0, Д2 = = 27 > 0, то выполняются достаточ- ные условия, следовательно, х2 = (1, 1/ — точка локального минимума. Второй способ. Найдем собственные значения матрицы Гессе в точке (0,0/: det(#-XF) = = 0, откуда Xt = -3, Х2 = 3. Так как собственные значения имеют разные знаки, экстремума нет. Найдем собственные значения матрицы Гессе в точке х2 =(1,1/: det(H-XE)=6 1 -3 6-Х = 0, откуда X, = 3, Х2 = 9. Так как все собс- твенные значения положительны, следовательно, х2 =(1,1/ — точка локального минимума. 3.Вычислим значение функции в точке локального максимума: /(xj) = -l. Пример 4.15, Найти экстремум функции /(х) = 5х6-36х5+^х4-60х3+36 на Е,.
72 Глава43адача|>1и»«моацмифуню<иимноп<х... □ 1. Выпишем необходимое условие экстремума первого порядка = ЗОх5 - 180х4 + ЗЗОх3 - 180х2 = 30х2(х - 1)(х - 2)(х - 3) = 0. ах Отсюда получаем стационарные точки х* =0, х*2 = 1, х3 =2, х* = 3. 2. Проверим выполнение достаточных условий экстремума = 150х4 - 720х3 + 990х2 - ЗбОх, dx f"(x;) = 0, /"(*;) = 60>0, /"(Хз) = -120<0, /"(xj) = 540 > 0, поэтому в точках х2, х* — локальный минимум, а в точке х*3 — ло- кальный максимум. В точке х* достаточные условия не выполняются, поэтому вычислим третью производную /'"(х) = 600х3 - 2160х2 + 1980х - 360, /"’{х}) = -360. Так как эта производная отлична от нуля и имеет нечетный порядок, то в точке xj экстремума нет. 3. Вычислим значения экстремумов функции /(1)=у; /(2) = -108; /(3)=^. Вопросы и задания для самоконтроля 1. Что такое градиент и антиградиент функции многих перемен- ных и каков их геометрический смысл? 2. Что такое матрица Гессе функции многих переменных? 3. Записать приращение функции /(х)еС2(Е„) в точке х через градиент и матрицу Гессе. 4. Вычислить и нарисовать градиенты, а также вычислить матри- цу Гессе функции /(х) = х2-х2 в точках Xj=(l, 1)г; х2=(1,-1)г. 5. Классифицировать квадратичные формы и соответствующие им матрицы Гессе (? -С (\ -й (2 й (1 Й Я(х) = [-1 2 J; ВД = [-1 1 } Я(Х) = Ь 2]:Я(Х) = [1 1} 6. Почему в этой главе и далее в книге рассматриваются в ос- новном выпуклые функции? 7. Дать определение выпуклого множества. Сформулировать его геометрический смысл. 8. Дать определение выпуклой функции. Сформулировать гео- метрическую интерпретацию этого свойства, свойство матрицы Гессе выпуклой функции.
Вопросы и задания для самоконтроля 73 9. Дать определение строго выпуклой функции. Сформулировать геометрическую интерпретацию этого свойства, свойство матрицы Гессе строго выпуклой функции. 10. Дать определение сильно выпуклой функции. Сформулиро- вать свойство матрицы Гессе сильно выпуклой функции. 11. Исследовать на выпуклость /(х) = х2, xg[-1, 1]; /(х) = х, хе[0, 1]; /(х) = х2+х2, хе£2. 12. Какие свойства выпуклых функций вы знаете? 13. Сформулировать необходимое условие первого порядка для безусловного экстремума функции многих переменных. 14. Сформулировать необходимое условие второго порядка для безусловного экстремума функции многих переменных. 15. Сформулировать достаточное условие безусловного экстре- мума функции многих переменных. 16. Что такое угловые миноры и главные миноры квадратной матрицы? 17. Сформулировать критерий Сильвестра проверки достаточных условий безусловного экстремума функции многих переменных. 18. Сформулировать критерий проверки необходимых условий экстремума второго порядка функции многих переменных. 19. Сформулировать второй способ проверки условий экстре- мума функции многих переменных (через собственные значения матрицы Гессе). 20. Сформулировать необходимые и достаточные условия без- условного экстремума функции /(х) одной переменной.
Глава 5 ОБЩИЕ ПРИНЦИПЫ МНОГОМЕРНОЙ МИНИМИЗАЦИИ. МЕТОДЫ ГРАДИЕНТНОГО СПУСКА. МЕТОД СОПРЯЖЕННЫХ НАПРАВЛЕНИЙ И МЕТОД НЬЮТОНА Решение задач минимизации в многомерных пространс- твах сопряжено, как правило, со значительными труд- ностями, особенно для многоэкстремальных функций. Многие из этих трудностей устраняются, если ограни- читься рассмотрением только выпуклых квадратичных функций. 5.1. Выпуклые квадратичные функции Во многих задачах оптимизации рассматриваются квад- ратичные функции, которые в n-мерном случае являют- ся обобщением квадратного трехчлена одной переменной 1 2 > =—ах +ОХ + С. 2 Определение. Функция вида /(^) = LXa!/xix;+X6;x>+c (5Л) /=1 ;=1 ;=1 называется квадратичной функцией п переменных. Положив а^ = а. + а;/, получим симметрическую матрицу А = (а^), с помощью которой выражение (5.1) можно записать в другой форме
5.1. Выпуклые квадратичные функции 75 /(х)=^(Лх, х) + (Ь, х) + с, (5.2) где b = (Ь{,... Ьп )т еЕп — вектор коэффициентов, x = (xv... хп )г; (х, у) — скалярное произведение векторов х, уеЕп. Пример 5.1. Функция f (х) = 2х* - 2xtx2 + Зх,х3 + х2 - 2х2х3 + 4х3 + х, -х2+ Зх3 + 5 является квадратичной. Запишем ее матрицу А, вектор b и коэффи- циент с из (5.2) ( 4 -2 3' А= -2 2 -2 <3-2 8, 6 = -1 , с = 5. . 3. Перечислим наиболее важные свойства квадратичных функций. 1. Для градиента квадратичной функции (5.2) справедлива формула V/(x) = Ах + 6. □ Запишем £-ю координату вектора Vf (х) ]=й(а*+a‘,)x'+й‘=+bt " 2. Гессиан квадратичной функции (5.2) совпадает с матрицей А Н(х) = А. □ Вычислим элемент матрицы Гессе э2/ Эх7ЭхЛ 3. Квадратичная функция (5.2) с положительно определенной мат- рицей А сильно выпукла. □ Так как матрица Н(х) = А симметрична и положительно оп- ределена, то все ее собственные значения 'ki положительны и су- ществует ортонормированный базис из собственных векторов этой матрицы. % 0 ... О Л О Х2 ... О <0 О ... ч, %-/ о ... 0 Л о х2-/ ... о < о О ... Х„-1,
76 Глава 5.Общие принципы многомерной минимизации-.. В этом базисе все угловые миноры матрицы А и матрицы А — 1Е положительны при достаточно малом 0 < I < Xmin, а это означает, что функция /(х) сильно выпукла. Пример 5.2. Показать, что квадратичная функция из предыдущего примера f (х) = 2х* - 2х,х2 + Зх,х3 +х2 - 2х2х3 + 4х3 + х{ - х2 + Зх3+5 сильно выпукла. □ Матрица Я(х) = Л положительно определена, так как 4-2 3 4 -2 = 4>0; Д3 = Д,=4>0; Д2 = -2 2 -2 2 -2 = 22>0. 3-2 8 Следовательно, f (х) сильно выпукла по свойству 3 квадратичных функций. Выпуклые квадратичные функции играют важную роль в теории многомерной оптимизации. Некоторые алго- ритмы, разработанные с учетом свойств таких функций, позволяют найти их точку минимума за конечное число итераций. Во многих случаях эти алгоритмы оказыва- ются эффективными и для неквадратичных выпуклых функций, так как в достаточно малой окрестности точки минимума х* дважды дифференцируемая функция /(х) с положительно определенной матрицей Гессе Н(х) хо- рошо аппроксимируется сильно выпуклой квадратичной функцией. 5.2. Общие принципы многомерной минимизации Для численного решения задач безусловной минимизации f (х) -> min, хеЕп разработано много алгоритмов, использу- ющих итерационные процедуры вида Xм =ф(х*, х^,...х°), x°gEw. (5.3) Эти алгоритмы позволяют при определенных условиях построить последовательность ^xk} такую, что lim f(xk) = /*=min /(х) , если U* ^0, (5.4а) Л->оо Е„ lim f(xk) = f* =inf /(x), если U* =0, (5.46) E„
5-2. Общие принципы многомерной минимизации 77 где U’ — множество точек глобального минимума функции f(x). Последовательность {х*}, удовлетворяющая требова- нию (5.4), называется минимизирующей для функции /(х). Если, кроме того, для случая U** 0 дополнительно выпол- няется условие lim р (х*, U*) = 0, (5.5) то говорят, что минимизирующая последовательность сходится к множеству U*. Если множество U* состоит из единственной точки х‘, то для сходящейся к U’ минимизирующей после- довательности limx* =х*. Необходимо отметить следующее. 1. р (х, U) = inf р(х, у) есть расстояние от точки х до мно- yet/ жества U. 2. Минимизирующая последовательность может и не сходиться к точке минимума. Например, для функции X2 k , ----г, хеЕ,, последовательность х = л является 1+х минимизирующей, но не сходится к единственной точке мини- мума х’=0. Напротив, минимизирующая последовательность х* = 1 / k сходится к точке минимума х’= 0. Вопрос о существовании точки минимума обычно реша- ется с помощью теоремы Вейерштрасса: если функция f (х) непрерывна в Еп и множество 17°={х: /(х)<а} для некото- рого а непусто и ограничено, то f (х) достигает глобального минимума в Еп. Важной характеристикой сходящихся минимизирующих последовательностей является скорость сходимости. Последо- вательность {х*} сходится к точке х* линейно (со скоростью геометрической прогрессии), если существует такое число е (0,1), что выполняется неравенство р(х*, x’}<qp(xk~\ х’), т.е. р(х\ х*)<#*р(х°, х‘). Сходимость называется сверхлинейной, если р(х\ х‘)^У*р(хм, х‘), и qk —>+0 при Наконец, термин квадратичная сходимость используется, если р (х*. х‘) £ [ср(х‘‘1, х‘ )]2, с > 0. Установление сходимости последовательности } из (5.5) и оценка скорости сходимости дают существенную информацию об итерационном процессе. Конкретный вы- числительный алгоритм на основе (5.3), в котором может
78 Глава 5. Общие принципы многомерной минимизации.- получаться, вообще говоря, бесконечная последовательность {х‘}, необходимо дополнять критерием окончания итера- ционного процесса. На практике используются следующие условия прекращения итераций р(х*+1, х*)<е1, |/(x*+1)-/(x*)|<e2, (56) |W‘)||<e3. где е, — заранее заданные параметры точности. Далее будут рассмотрены несколько двухслойных вы- числительных алгоритмов, основанных на рекуррентных формулах вида хм = хк +ак рк, £ = 0,1,... (5.7) к к где вектор р — направление поиска из точки х в точку хм, а число ак — величина шага, которая выбирается так, чтобы выполнялось условие /(х*+,)</(х*). Эти алгорит- мы будут различаться способом построения вектора рк и выбора шага ак. Определение. В итерационном процессе (5.7) производит- ся исчерпывающий спуск, если величина шага ак находится из решения одномерной задачи минимизации ФДа)—>ппп, ФДа) = /(х* + ар4). (5.8) Таким образом, при исчерпывающем спуске на каждом шаге полностью реализуется возможность уменьшить значе- ние целевой функции /(х) при перемещении из точки х* в направлении, коллинеарном вектору рк. Величина шага ак может быть найдена с помощью рассмотренных ранее методов одномерной минимизации. В дальнейшем будет использовать- ся следующее важное свойство исчерпывающего спуска. Теорема. Если функция /(х) дифференцируема в Еп, то в итерационном процессе (5.7) с выбором шага с исчерпыва- ющим спуском для любого k > 1 выполняется условие (V/(x‘+1),p‘) = 0. (5.9) □ Запишем необходимое условие минимума функции одной переменной ФДа) из (5.8), используя правило диф- ференцирования сложной функции: d<^k(a) ^f(xM)dxk;'_Q da dxj da
52, Общие принципы многомерной минимизации 79 Учитывая, что х*+1 = х* + а р* , поэтому dxk*' da = ркг Отсюда получаем условие (5.9). Геометрическая иллюстрация соотношения (5.9) в Е2 выглядит так. При перемещении из точки xk вдрлъ прямой, задаваемой вектором рк в направлении убывания функции, происходит пересечение линий уровня функции /(х). Это происходит, до тех пор пока либо не будет достигнута стаци- онарная точка (V/(x*+1) = 0), либо прямая не коснется в точке хк+' некоторой линии уровня функции f (х). Равенство (5.9) и есть условие касания (рис.5.1). Рис. 5.1. Ортогональность направления pk градиенту V/(x*+l) при исчерпывающем спуске Свойство (Vf (хк+*), рк) = 0 позволяет в явном виде найти величину ak для квадратичной функции. Теорема. Для квадратичной функции /(х) = -^(Лх, х)+(Ь,х) + с величина ak исчерпывающего спуска в итерационном про- цессе х*+1 = хк +ak рк, ^ = 0,1,... равна (V/(x*),p*)_ (Ахк+Ь,рк) к (Арк, рк) (Арк, рк) (5.10) □ Действительно, умножив равенство хк+1 = хк + ак рк слева на матрицу А квадратичной функции f(x) и прибавив к обеим частям вектор Ь, получим Ar*+1+b = Ахк + b+akАрк. Учитывая,
80 Глава 5. Общие принципы многомерной минимизации... что градиент квадратичной функции равен V/(x) = Ах+b, имеем V/(x*+l) = V/(x*) +ак Арк. Подставляя выражение для V/ (х*+*) в равенство (V/(x*+l), рк) = 0, получаем формулу (5.10). м Определение. Направление вектора рк называется на- правлением убывания функции /(х) в точке хк, если при всех достаточно малых положительных а выполняется не- равенство /(х*+а рк) < f(xk). В итерационном процессе используются, как правило, направления убывания. Сформулируем признак направле- ния убывания. Теорема (достаточное условие направления убывания). Пусть функция f (х) дифференцируема в точке х*. Если вектор рк удовлетворяет условию (V/(x*),p*)<0, то на- правление вектора рк является направлением убывания. □ Из свойства дифференцируемости функции и условия те оремыследует,что/(х* + а р*) - /(х*) = (V/(x*), ар*) +о(а) = = a((V/(x*), р*)+о(а)/а) < 0 при всех достаточно малых a > 0, т.е. вектор рк задает направление убывания функции f (х) в точке х*. м Геометрически условие теоремы (V/(x*), р*)<0 означает, что вектор рк составляет тупой угол с градиентом V/(x*). Итак, пусть функция f(x) дифференцируема в Еп. Рас- смотрим итерационную процедуру минимизации x*+1 =x*+atp*, £ = 0,1,... (5.11) где направление убывания рк определяется с учетом инфор- мации о частных производных функции f (х) , а величина шага ак >0 такова, что /(х*+')</(х*), £ = 0,1,... (5.12) Так как функция предполагается дифференцируемой, то в качестве прекращения итераций можно выбрать условие ||W*)||<E. 5.3. Метод градиентного спуска Положим в (5.11) на каждом шаге рк =-Vf(xk). Если V/(x*) * 0, тоусловие (V/(x*),/?*)<0,очевидно,выполнено. Следовательно, направление вектора рк является направле- нием убывания функции /(х), причем в малой окрестности
5Л Метод градиентного спуска 81 точки хк направление рк обеспечивает наискорейшее убы- вание этой функции. Поэтому можно найти такое ак > 0, что будет выполняться условие (5.12). Алгоритм метода градиентного спуска следующий. Шаг 1. Задать параметр точности е>0, начальный шаг а>0, выбрать хе Еп и вычислить /(х). Перейти к шагу 2. Шаг 2. Вычислить V/(x) и проверить условие достиже- ния точности ЦV/(x)|[<e. Если оно выполнено, то вычис- ления завершить, полагая х‘=х, /’ = /(х). Иначе перейти к шагу 3. ШагЗ. Найти y = x-aV/(x) и f(y). Если f(y)< f(x),yo положить х = у ,f(x)=f(y) и перейти к шагу 2, иначе — к шагу 4. Шаг 4. Положить a = a/2 и перейти к шагу 3. Необходимо отметить, что вблизи стационарной точки функции /(х) величина || V/(x) || становится малой. Это часто приводит к замедлению сходимости последовательности •{х*}. Поэтому в основной формуле (5.11) иногда полагают рк =-V/(x*)/|V/(x*)j, используя вместо антиградиента вектор единичной длины в этом же направлении. Сформулируем теоретическое обоснование сходи- мости градиентного метода с постоянным шагом ak = a, т.е. хм =хк -oNf(xk') и оценку скорости сходимости при минимизации выпуклой квадратичной функции /(х)=j(Ax, x)+(b, х) + с. Теорема. Пусть симметрическая матрица А квадратичной функции /(х) положительно определена, I и L — ее наимень- шее и наибольшее собственные значения (0 < / < Е). Тогда при любых ae(0, 2/L) и х°е£„ итерационная последователь- ность xk+i = хк -aVf(xk) сходится к единственной точке глобального минимума х* функции f (х) линейно (т.е. со скоростью геометрической прогрессии), а именно р(х* х’)<<7*р(х°, х‘). где ^ = max-[(l-a/|, |1-а£|}. □ Так как матрица А положительно определена, то функция f (х) сильно выпукла. Следовательно, точка х* существует и единственна. Градиент V/(x*) в этой точке обращается в нуль, поэтому V/(х*) = Ахк +Ь — Ахк +Ь- Ах" -Ь = А(хк -х‘). Оценим норму разности
82 Глава 5. Общие принципы многомерной минимизации,.. ||х*-х*|| = ||х* !-а 7/(х*"1)-х*| = ||х*"1-х*-аЛ(х* ‘-х*)|| = = ||(Е-аЛ)(х*-1 — х*)||. Последняя величина может быть оценена сверху I хк - х* || < || Е - а А || • || х*"1 - х* || < q || xk~' - х* || < qk || х° - х* ||. Здесь величина q — оценка нормы матрицы через величину ее собственных значений: || Е - а А | < q = max 1 - а/1, 11 - а£ |}. Зависимость б?(а) представлена на рис. 5.2, из которого видно, что при ае(0; 2/L) величина q<l. Рис. 5.2. Зависимость оценки знаменателя геометрической прогрессии от величины шага а градиентного метода Из формулы для величины q следует, что она принимает минимальное значение q = ——- при а = а =——- (так как / < £, то 1-а/ = -(1-а£)). Поэтому от соотношения между L и I существенно зависит число итераций градиентного метода при минимизации выпуклой квадратичной функции. Рассмотрим это на примере квадратичной функции двух переменных. При L-l>Q точка минимума /(х) находится за один шаг. Пример 53. Решить задачу f (х) = х* + х% -> min градиентным методом из начальной точки х°=(1, 1)г, положив а = а. <2 (П □ В данном случае матрица квадратичной функции А= I, отсюда l = L = 2. Поэтому a и х1 =х°--|v/(x°) = (0, 0)г. Следовательно, х1 = х*.
53. Метод градиентного спуска 83 При l = L линии уровня целевой функции /(х) —это концентрические окружности, поэтому направление анти- градиента указывает на их центр, т.е. на точку глобального минимума /(х). Если L »1 >0, то линиями уровня являются эллипсы, полуоси которых сильно различаются. Поэтому направление антиградиента в некоторой точке может сильно отличаться от направления к точке глобального минимума. Пример 5.4. Из начальной точки х°=(1, 1)г выполнить несколько итераций поиска точки минимума функции /(х) = х2 + 100х2 гради- ентным методом, полагая а = а*. □ Собственные значения матрицы А этой квадратичной функ- ции: I = 2, L = 200. Линиями уровня f (х) являются эллипсы, сильно вытянутые вдоль оси Oxv Поэтому в точке х° направление векто- ра -V/(x°) = (-2, -200)г сильно отличается от направления к точ- ке глобального минимума х*-х° = (-1, -1)г. Положив в формуле xk+[ = xk-aNf(xk) величину а=а* - - у = ~z~> получим с учетом I I 1 Vz X выражения для градиента V/(x) = (2x1,200x2)r закон изменения ко- ы 99 k ординат точек минимизирующеи последовательности: х, =-----xt, м 99 * _ г п 101 х2 Отсюда видно, что последовательность -{х ^сходится к точке глобального экстремума медленно и траектория сходимости имеет ярко выраженный зигзагообразный характер. В курсах линейной алгебры и численных методов для сим- метрической положительно определенной матрицы вводится число обусловленности, которое равно ц = L /1 — отношению наибольшего и наименьшего собственных значений матрицы. В задаче минимизации сильно выпуклой функции f (х) эта величина для матрицы ее вторых производных (гессиана) характеризует степень вытянутости линий уровня f (х) = С. Если ц велико, то линии уровня сильно вытянуты, и говорят, что функция имеет овражный характер, т.е. резко меняется по одним направлениям и слабо — по другим. В этих случаях зада- чу минимизации называют плохо обусловленной. Если же число Ц близко к единице, то линии уровня близки к окружностям, и задача минимизации является хорошо обусловленной. Вычисление градиента на каждом шаге, позволяющее каж- дый раз двигаться в направлении все более быстрого убывания целевой функции, может в то же время замедлить вычисли-
84 Глава 5. Общие принципымногомерной минимизации... тельный процесс. Дело в том, что подсчет градиента — обычно гораздо более сложная операция, чем подсчет самой функции. Поэтому часто пользуются модификацией градиентного мето- да, получившей название метода наискорейшего спуска. Согласно этому методу после вычисления в начальной точке градиента функции делают в направлении антигра- диента не маленький шаг, а передвигаются, до тех пор пока функция убывает. Достигнув точки минимума на выбранном направлении, снова вычисляют градиент функции и повто- ряют описанную процедуру. При этом градиент вычисляется гораздо реже, поскольку это происходит только при смене направлений движения. 5.4. Метод наискорейшего спуска Данный метод является вариантом градиентного спуска. Здесь также полагают pk = -Vf(xk), но величина шага аЛ из (5.11) находится в результате решения задачи одномерной оптимизации Ф/а)->пип, Ф*(а)=/(**-а V/(x*)), а>0, (5.13) т.е. на каждой итерации в направлении антиградиента -У/(х4) совершается исчерпывающий спуск. Алгоритм метода следующий. Шаг 1. Задать параметр точности е>0, выбрать хе Еп. Вычислить /(х). Перейти к шагу 2. Шаг 2. Вычислить V/(x) и проверить условие достижения точности: || V/(x)||<e. Если оно выполнено, вычисления за- вершить, полагая х* = х, /’=/(х). Иначе перейти к шагу 3. Шаг 3. Решить задачу одномерной оптимизации (5.13) для хк = х, т.е. найти а*. Положить х = х - а* V/(x) и перейти к шагу 2. Следует отметить, что решение задачи (5.13) можно полу- чить одним из рассмотренных для одномерной минимизации способов. Если, кроме того, функция /(х) квадратична, то для величины шага исчерпывающего спуска можно применить (V/(x*),p*) (Ахк+Ь,рк) формулу k \ л k L , полученную (Арк,рк) (Ар,р) выше, положив рк =-’Ч/(хк).
54. Метод наискорейшего спуска 85 Пример 5-5. Рассмотрим функцию f (х)=х?+100x2 и используем метод наискорейшего спуска для решения задачи ее минимизации из начальной точки х° = (1, 1). Э /* д f □ Найдем компоненты градиента —= 2х,, —— = 200х2 и гессиан Эх, Эх2 (2 о 0 200 . Величину шага исчерпывающего спуска ak найдем по формуле для квадратичной функции. Результаты вычислений при- ведены в табл. 5.1. Таблица 5.1 Результаты вычислении задачи методом наискорейшего спуска Номер итерации х2‘ /(Л*) ||W)| 0 1 1 . 101 200 1 9,9-Ю-1 -9,910"5 9,8-10*‘ 1,98 2 . • 9,7 Ю'3 9,7 10'3 9,5-10’3 1,94 3 9.610-3 -9,610'’ 9,2* 10-5 1,9210'’ ... Полученные результаты можно сравнить с решением этой же задачи методом градиентного спуска. Отметим главный недостаток градиентных методов, кото- рый заключается в неприемлемо низкой скорости сходимости в случаях, когда поверхности уровня целевой функции сильно «вытянуты», т.е. имеют овражный характер. Геометрически про- исходит следующее: генерируемые методом приближения быстро спускаются почти на «дно оврага», а затем начинают «прыгать» с одного его «склона» на другой,' причем длина осуществляемых шагов все время уменьшается. Особенно сильный замедляющий эффект проявляется в том случае, когда «дно оврага» изогнуто. В следующих разделах главы будут рассмотрены методы, обладающие высокой скоростью сходимости и значительно менее чувствительные к овражному характеру целевой фун- кции задачи. Рассмотрим один важный класс методов, который не тре- бует информации о вторых производных целевой функции, как метод Ньютона, однако обладает более высокой скоростью сходимости, чем градиентные методы. Повышение скорости схо- димости здесь не связано с существенным ростом трудоемкости итерации, а обусловлено идеей, лежащей в основе метода.
86 Глава 5. Общие принципы многомерной минимизации,.. 5.5. Метод сопряженных направлений Этот итерационный метод, предназначенный для отыска- ния минимума выпуклой квадратичной функции, приводит к результату за конечное число шагов. От такого метода ра- зумно ожидать высокой эффективности и в случае выпуклой неквадратичной функции. Разберем идею метода на примере поиска минимума в случае функции двух переменных. Линиями уровня сильно выпуклой квадратичной функции являются эллипсы. Пусть р\р2 — направления главных осей этих эллипсов (они могут быть найдены как ортонормированный базис из собственных векторов матрицы А квадратичной функции). Если выбрать произвольную точку х° е Е2 и выполнить итерационную про- цедуру хм = хк +akpk, & = 0,1,... где величина ak находится из условия исчерпывающего спуска, то, очевидно, потребуется не более двух шагов для отыскания точки х*. Такого же результата можно достичь и другим способом. Выберем некоторое направление р1 и две точки х° и р° такие, чтобы векторы х° -у° и р1 были неколлинеарны. Выполнив исчерпывающий спуск из точек xQ и у° в направлении р1, получим точки х1 и р1. По свойству исчерпывающего спус- ка в точках х1 и р1 имеет место касание соответствующих прямых (направлений убывания) и эллипсов (линий уровня целевой функции). По свойству эллипсов точки х’, xf и р1 расположены на одной прямой. Поэтому, полагая р2 =х* -р1 и решая задачу /(х1 +ар2)—>min , мы находим точку х*. Таким образом, и в этом случае решение задачи минимизации сильно выпуклой квадратичной функции будет получено за конечное число шагов. Рис. 53. Определение направления р2 и положение точки х* в Е2
5.5. Метод сопряженных направлений 87 Рассмотренному на примере квадратичной функции двух переменных методу может соответствовать такой алгоритм. Шаг 1. Выбрать начальную точку х° е Е2. Перейти к шагу 2. Шаг 2. Положить р* = е1 и найти точку х1 с помощью ис- черпывающего спуска из точки х° по направлению р1 f(xl) = min /(х° + ар1). Перейти к шагу 3. аеЕ Шаг 3: а) положить у° =х' +е2; б) найти точку у' из условия исчерпывающего спуска из точки у* по направлению р1 /(p,) = min/(p° + ap'); аеЕ в) положить р2-х' -у', найти точку х2 из условия /(x2) = min/(х'+ар2), вычисления закончить, положив аеЕ х* = х2. Графическая иллюстрация работы алгоритма представ- лена на рис. 5.4. Поиск точки минимума проводится по так называемым сопряженным направлениям. Рис. 5.4. Минимизация функции с помощью сопряженных направлений в Е2 Определение. Ненулевые векторы р\... рк, называются сопряженными относительно матрицы А размера (пхп) или Л-ортогональными, если (Ар\ pj) = 0, i^j, i,j = l,...k. (5.14)
88 Глава 5.Общие<ф!М|ты1йюгомерной минимизации... Пример 5.6. Направления р', р2, использованные в описанном выше алгоритме минимизации квадратичной функции двух переменных, являются Л-ортогональными. □ Рассмотрим скалярное произведение (Лр2, P')=(W). p‘)=(W),p')-(W). ?')• Так как точки х' и у' получены в результате исчерпывающего спуска по направлению р', то оба скалярных произведения (V/(x’), р1) 11 Р*) равны нулю, поэтому и {Ар2, р‘)=0. Утверждение. Система из п векторов р1,...р", сопряжен- ных относительно положительно определенной матрицы А, линейно независима. о Предположим противное, т.е. что существует линейная комбинация, равная нулю Ly,p'=o. где невсе у( =0,. например ук * 0. ^Умножим обе части равенс- тва (5.15) скалярно на вектор Арк. Тогда с учетом свойства Л-ортогональности (5.14) получим Чк{Ар, р*) = 0. В силу положительной определенности матрицы А для ненулевого вектора рк последняя квадратичная форма положительна, следовательно, у4=0. Полученное противоречие доказывает утверждение. Таким образом, п ненулевых Л-ортогональных векто- ров образуют базис в Ея. Рассмотрим минимизацию в Е„ квадратичной функции f{x)=^{Ax, х)+(й, х) + с с положи- тельно определенной матрицей Л, используя итерационный процесс хк=хк-'+а.крк, k = l,2,... (5.16) где векторы рк Л-ортогональны. Утверждение. Если в итерационном процессе (5.16) на каждом шаге используется исчерпывающий спуск, то вели- чина шага ак будет _ (7/(х°)У) . (Лр‘,р‘) (517) □ Раскрывая рекуррентную формулу (5.16), получаем
89 к . . хк =х° + £а, р‘. (5.18) /=1 Из формулы (5.18), учитывая выражение для градиента квадратичной функции V/(x) = Ах+Ь, находим V/(x*)=V/(x°)+£a,Ap'. i=l Умножая обе части этого равенства скалярно на р* и учи- тывая условие исчерпывающего спуска по направлению р*: (V/(x*),p*) = 0 и А-ортогональность векторов, получаем (V/(x°),p*)+a4(Ap*,p*) = 0. Так как матрица А положительно определена, квадратич- ная форма (Ар* р*)>0 и для величины шага at получаем выражение (5.17). Теорема. Последовательный исчерпывающий спуск по А-ортогональным направлениям (5.16) приводит к точке минимума квадратичной формы не более чем за п шагов. □ Доказать самостоятельно. Предположить, что сущест- вуют uk * а*, и показать, что они совпадают. Вопрос о нахождении базиса из А-ортогональных векто- ров в пространстве Еп решается неоднозначно. В качестве такого базиса можно, например, взять ортогональный базис из собственных векторов матрицы А. Однако их поиск при п > 2 представляет собой самостоятельную и довольно слож- ную задачу. Итерационный процесс х* = хк~* + ak рк, k = 1,2,... после- довательной одномерной минимизации по сопряженным на- правлениям рк можно организовать и без предварительного построения векторов р1,... р", последовательно находя их в процессе минимизации, как это было сделано выше в примере с минимизацией функции двух переменных. И в этом случае для квадратичной функции с положительно определенной матри- цей А для нахождения минимума достаточно конечное число шагов. Если /(х) не является квадратичной функцией или вспомогательные задачи одномерной минимизации решаются приближенно, потребуются дополнительные вычисления. Метод сопряженных направлений, рассмотренный выше, относится к числу наиболее эффективных методов миними- зации выпуклых квадратичных функций. Его недостатком является необходимость решать довольно большое количество задач одномерной минимизации.
90 Глава 5. Общие принципы многомерной минимизации... 5.6. Метод сопряженных градиентов При использовании методов градиентного и наискорей- шего спуска в итерационной процедуре xk+i =хк +akpk, £ = 0,1,... в качестве направления убывания функции f (х) использо- валось направление антиградиента: рк =-Vf(xk). Однако такой выбор направления убывания не всегда бывает удачным. В частности, для плохо обусловленных задач минимизации направление антиградиента в точке хк может значительно отличаться от направления к точке минимума х* В результате траектория приближения к точке минимума имеет зигзаго- образный характер. Воспользуемся другим подходом, идея которого была изложена при построении метода сопряжен- ных направлений. Будем определять направления спуска рк не только через вектор антиградиента -V/(x*) , но и через направление спуска р ”1 на предыдущем шаге. Это позволит более полно учесть особенности функции f (х) при нахож- дении ее минимума. Используется итерационный процесс хк+' =хк +akpk, £ = 0,1,... х°е£'л, p° = -V/(x°), (5.19) в котором величина шага ak находится из условия ис- черпывающего спуска по направлению рк. Далее после вычисления очередной точки х*+1, £ = 0,1,... новое направ- ление поиска pk+i находится по формуле, отличной от антиградиента: рк+' = -V/(x*+1)+P*p\ £ = 0,1,... (5.20) где коэффициенты РЛ выбираются так, чтобы при мини- мизации квадратичной функции /(х) с положительно определенной матрицей А получалась последовательность Л-ортогональных векторов р°, р,... Из условия (Арк*\ рк) = 0 имеем: * (V, р‘) ( ' Ранее при обсуждении метода сопряженных направлений было показано, что для квадратичной функции шаг исчерпы- вающего спуска по направлению рк равен
5.6. Метод сопряженных градиентов 91 * <Арк, рк) (5.22) Утверждение. Итерационный процесс (5.19)—(5.22) минимизации квадратичной функции с положительно определенной симметрической матрицей А дает точки х°,...хк и векторы рй,...рк такие, что если V/(x')*0 при 0<i<k<n-l,ro векторы р°,...рк Л-ортогональны, а гради- енты V/(x0),... V/(x') взаимно ортогональны. Так как направления рк в (5.20) являются Л-ортогональны- ми, то метод гарантирует нахождение точки минимума сильно выпуклой квадратичной функции не более чем за п шагов. С учетом взаимной ортогональности градиентов W’(x') и условий исчерпывающего спуска по направлениям ps можно упростить выражения (5.21) и (5.22) для ак и В результате получим, что итерационный процесс метода сопряженных градиентов описывается соотношениями хк+'=хк+akpk, k = 0,l,... х°еЕп, р° = -V/(x°), (5.23) f(xk +а, p*) = minf(xk + арк'), 6 = 0,1,... а>0 рк+' = -V/(x*+1)+рк, k = 0,1,... (5.24) (5.25) (5.26) Следует отметить, что выражение для коэффициента не содержит в явном виде матрицу А квадратичной формы. Поэтому метод сопряженных градиентов может применяться для минимизации неквадратичных функций. Итерационный процесс (5.23)—(5.26) может не приводить к точке минимума неквадратичной функции f (х) за конеч- ное число итераций. Более того, точное определение ak из условия (5.22) возможно лишь в редких случаях, а векторы pk не образуют, вообще говоря, Л-ортогональную систему относительно какой-либо матрицы/!. Поэтому реализация каждой итерации метода будет сопровождаться неизбежны- ми погрешностями. Эти погрешности, накапливаясь, могут привести к тому, что векторы pk перестанут указывать на- правление убывания функции, и сходимость метода может нарушаться. Поэтому в методе сопряженных градиентов
92 Глава5.Общиепринципь1мнопм*ерной минимизации,.. применяется практический прием — через каждые N шагов производят обновление метода, полагая N = 0, т = 1,2,.... Номера т N называют моментами обновления метода, или рестарта. Часто полагают N = п-размерности пространства Еп. Если N = 1, то получается частный случай метода сопря- женных градиентов — метод наискорейшего спуска. Вблизи точки минимума дважды дифференцируемая функ- ция с положительно определенной матрицей Гессе Н(х*), как правило, достаточно хорошо аппроксимируется квадра- тичной функцией. Поэтому можно надеяться на хороший результат применения метода сопряженных градиентов для функций такого вида. Пример 5.7. Методом сопряженных градиентов найти точку ми- нимума функции /(r)=4Xj2+3A*2-4г1х2 + х1 из начальной точки х°=(0,0)г. □ Итерация 1. . Шаг 1. Положим е =0,01, х°=(0,0)г и найдем V/(x°) = (l,0)r. Перейдем к шагу 2. Шаг 2. Положим k = 0, р° = -V/(x° ) = (-!, 0)г. Перейдем к шагу 3. Шаг 3. Решим задачу одномерной минимизации /(х° + ар° ) -» min. Получим а0 = 1/8. Здесь применили формулу „ (W°),P% (АхЧЬ,р°) (Ар*,р*) (Ар9, р9) Перейдем к шагу 4. Шаг 4. Найдем х' = х® + а0 р° = (-1/8, 0)г и V/(x') = (0,1/2)г Точ- ность не достигнута, прейдем к шагу 5. Шаг 5. Условие k +1 = п не выполняется (нет рестарта), перейдем к шагу 6. Шаг 6. НайдехМ коэффициент Ро = 1/4 и новое направление спуска р1 = -V/’(x,) + Pop° =(-1/4, -1/2)г. Перейдем к следующей итерации. Поскольку x^V/Xx1) и р1 =-V/(x’)+Pop0 уже вычислены на итерации 1, то итерацию 2 начинаем с шага 3. Итерация 2. Шаг 3. Решим задачу одномерной минимизации f (х1 + ар1) —> min. Получим а = 1/4. Перейдем к шагу 4. . Шаг 4. Найдем х2 = х1 н-о^р1 =(-3/16, -1/8)г и V/(x2) = (0, 0)г — задача решена точно. Таким образом, х* = х2 =(-3/16, -1/8). Решение получено в ре- зультате двух итераций метода сопряженных градиентов, поскольку
5.7. Метод Ньютона 93 целевая функция квадратична в £2 и одномерные задачи минимизации на шаге 2 алгоритма решены точно. Проверка решения примера. Решим задачу аналитическим методом. □ /(х) = 4х2+3х2 -4xtx2+Xp -~- = 8х(-4х2+1 = 0, -^- = 6х2-4х1 =0. Решая систему этих двух уравнений для нахождения стационарной точки, получим Xj = -3/16, х2 = -1/8. 5.7. Метод Ньютона Пусть функция /(х) дважды дифференцируема в Еп. Тогда с помощью градиента и матрицы Гессе для нее можно записать разложение в ряд по формуле Тейлора в окрестности точки х* f(x) = /(х*)+V/(x* )г Дх+1 Дхг Я(х*)Дх+о(Ц Дх ||2), (5.27 ) где о(|| Дх||2) — сумма всех членов разложения, имеющих по- рядок выше второго; ДхгЯ(х*)Дх — квадратичная форма. Отсюда следует, что поведение функции /(х) с точностью до величины порядка о(|| Дх| ) может быть описано квадра- тичной функцией Ф4(х) = /(х*)+У/(х*)гДх+-1дхгЯ(х*)Дх. (5.28) Минимизируем функцию Ф*(х) вместо /(х). Найдем ее точку минимума xk+t из условия стационарности точки УФ*(х)=0 ¥Ф*(х) = Я(х*) (х - х*)+V/(x*)=0. (5.29) Пусть матрица Гессе Я(х) положительно определена при всех хе £„, следовательно, она невырождена (йе1Я(х)>0). Тогда существует обратная матрица Я"'(х). Отметим, что квадратичная функция (5.28) с положительно определенной матрицей Я(х*) сильно выпукла и уравнение (5.29) опреде- ляет единственную точку глобального минимума функции Ф*(х). Умножим слева обе части равенства (5.29) на мат- рицу Н~'(хк) и найдем точку минимума х*+1 квадратичной функции ФДх), аппроксимирующей /(х) в окрестности точки х = х*:
94 Глава 5. Общие принципы многомерной минимизации,.. xk+i=xk-H l(x*)V/(x*), & = О,1,... (5.30) Итерационный процесс минимизации функции многих переменных (5.30), начатый из произвольной точки х° е Еп, называется методом Ньютона и является обобщением метода Ньютона в одномерном случае. Очевидно, для квадратичной функции с положительно определенной матрицей А применение метода Ньютона обес- печивает получение точки глобального минимума ровно за один шаг из любой точки х° е Еп. Для выпуклой функции, отличной от квадратичной, приме- нение этого метода обеспечивает, как правило, быструю сходи- мость. Дело в том, что на каждом шаге итерационного процесса используется информация о поведении функции f(x) в окрест- ности точки хк, содержащаяся в значениях не только первых, но и вторых ее частных производных. Поэтому при прочих равных условиях следует ожидать более быструю сходимость метода Ньютона по сравнению с градиентными методами. При выборе достаточно хорошего начального прибли- жения х° е Еп минимизирующая последовательность -[х*} для сильно выпуклой дважды дифференцируемой функции f(x) сходится к точке минимума с квадратичной скоростью р (хк, х*) < [ср(х°, х )J. Если точка х° выбрана недостаточ- но близко к точке х*, то последовательность (5.30) может расходиться. Отметим, что даже сходящаяся последовательность «{х*} метода Ньютона не всегда обеспечивает монотонное убывание f (х),т.е. неравенство f (xk+i )<f(xk) для некоторых k = 0,1,... может нарушаться. Этот недостаток устранен в обобщенном методе Ньютона xk+i=xk-ak H~\xk)Vf(xk), где величина ak > 0 находится на каждом шаге из условия ис- черпывающего спуска по направлению рк= -Н~'(хк)Vf(xk). Можно показать, что если целевая функция является сильно выпуклой и ее матрица Гессе Н(х) для любых точек х,уеЕп удовлетворяет неравенству || Н(х) - Н(у) || < £|| х - у ||, то при произвольном выборе начальной точки обобщенный метод Ньютона обладает квадратичной скоростью сходимости. Основным недостатком метода Ньютона можно считать необходимость вычисления и обращения матрицы Гессе на каждой итерации. Итерация этим методом существенно более
5.8. Квазиньютоновские методы 95 трудоемка, чем, например, итерации методов градиентного или наискорейшего спусков. Обсуждение модификаций метода Ньютона, позволяющих в определенном смысле избавиться от этого недостатка и при этом сохранить высокую скорость сходимости, приводится в п. 5.8. Пример 5Я. Найти точку минимума функции f (х) = 4г,2 + Зх2 - 4XjX2 + xt методом Ньютона из начальной точки х° = (0, 0)г. ( 8 □ Градиент V/(x°) = (l, 0)г, матрица Гессе Л= . Найдем ^—4 6 J 1 Г8 4^ обратную матрицу А 1(х°)=— 3214 8 1 Далее*1 = x0-^-,(x°)V/'(xe)=(-3/16, -1/8)г.Таккак7/(х,) = (0,0)’’, то задача решена, х’ = х1. Целевая функция квадратична, поэтому решение получено за одну итерацию. Пример 5.9. Рассмотрим задачу поиска минимума функции /(х) = (х2-х2)2+(х1-1)2 Зададим параметр точности поиска |V/(x)|<e, е = 10-3; начальную точку х°=(-1,-2)г, /(х°) = 13. В результате решения задачи методом Ньютона понадобилось N = 5 итераций, методом наискорейшего спуска — ЛГ = 96 итераций, мето- дом сопряженных градиентов — N = 8-ИЗ итераций в зависимости от формулы, по которой вычислялся коэффициент для сопряженных направлений. Обобщенный метод Ньютона справляется с решением задачи за N = 5 итераций, как и классический метод Ньютона. 5.8. Квазиньютоновские методы Среди алгоритмов многомерной минимизации можно вы- делить группу алгоритмов, которые объединяют достоинства метода наискорейшего спуска и метода Ньютона. Такие алго- ритмы называют квазиньютоновскими методами. Особенность этих алгоритмов состоит в том, что при их применении нет не- обходимости обращать матрицу Гессе целевой функции /(х) и в то же время удается сохранить высокую скорость сходимости, присущую методу Ньютона и его модификациям. Элементы релаксационной последовательности в алгоритмах квазиньютоновских методов минимизации непрерывно дифференцируемой в Еп целевой функции
96 Глава 6. Общие принципы многомерной минимизации... /(х) строят в соответствии с рекуррентным соотношением хк+' = хк +акрк, k = 0,1,... но направление спуска на каждой k-й итерации задают в виде р‘=-Л4?/(х4) = Л^*, (5.31) где w*=-V/(x*) — антиградиент целевой функции, a Ак — положительно определенная матрица порядка п, обновляемая на каждой итерации. Отметим, что направление, задаваемое на каждой k-й итерации вектором р*, является направлением спуска, так как с учетом (5.31) (V/(x*), р*) = - (и»*, Akwb) < 0. Нетрудно заметить, что при Ак = Я'1 (х*) метод переходит в классический метод Ньютона, а при Ак = ак — в один из гра- диентных методов. Матрицы Ак определяют таким образом, чтобы последовательность {ЛЛ} при Л—имела предел, равный Я-1(х‘), где Я(х’) — матрица Гессе целевой функ- ции, вычисленная в точке минимума х*. Известно, что если целевая функция является сильно выпуклой, то алгоритмы метода Ньютона обладают квад- ратичной скоростью сходимости. Поэтому можно ожидать, что алгоритмы квазиньютоновских методов будут иметь до- статочно высокую скорость сходимости, если на каждой k-й итерации матрица Ак выбрана близкой к матрице Я'*(х‘). Используя при конструировании Ак аппроксимацию мат- рицы Я'^х*) с учетом информации о градиенте целевой функции в точке хк, можно существенно упростить процедуру нахождения направления спуска на k-й итерации. Именно эти соображения лежат в основе построения алгоритмов квази- ньютоновских методов. Квазиньютоновские методы чрезвычайно популярны среди пользователей методов оптимизации, в связи с тем что они сочетают высокую скорость сходимости с невысокой трудо- емкостью итерации. Практическое значение этих методов трудно переоценить, хотя с теоретической точки зрения любой квазиньютоновский метод есть не более чем умная реализация фундаментальной идеи метода Ньютона. Пример 5.Ю. Рассмотрим задачу поиска минимума функ- ции /(.г) = (xf-х2)2 +(х, -1)2. Зададим параметр точности поиска |V/(x)| <е, е = 10’3, начальную точку х° = (-1,-2)г, /(.г°) = 13. В результате решения задачи методом Ньютона понадобилось ^ = 5
5.8. Квазиньютоновские методы 97 итераций, методом наискорейшего спуска — N = 96 итераций. Квази- ньютоновский метод Давидона — Флетчера — Пауэлла, или ДФП метод, справляется с решением этой задачи за ЛГ = 7 итераций. * * * Необходимо обратить внимание на то, что алгоритмы безусловной минимизации функций многих переменных можно сравнивать и исследовать как теоретически, так и экспериментально. Первый подход может быть реализован полностью только для ограниченного класса задач, например для сильно выпук- лых квадратичных функций в Etl. Мощным инструментом теоретического исследования алгоритмов являются теоремы о сходимости методов. Однако формулировки таких теорем, использующих при доказательстве аппарат современного функционального анализа, обычно абстрактны. Поэтому этот материал интересен в первую очередь профессионалам- математикам. Кроме того, бывает непросто установить связь полученных результатов с практикой вычислений. Поэтому на практике сравнение алгоритмов часто проводят с помощью вычислительных экспериментов при решении так называе- мых специальных тестовых задач. Эти задачи могут быть как с малым, так и с большим числом переменных, могут иметь различный вид нелинейности. Они могут быть составлены специально или возникать из практических приложений. Приведем несколько общепринятых тестов, на которых испытано большинство известных методов минимизации. 1. Тест Розенброка /(х1,х2) = 100(х12-х2)2 +(Xj-I)2 -»min, х°=(1, 1)г, £ = 10"3. Здесь некоторые алгоритмы не позволяют получить точку минимума (1,1)г вследствие преждевременного окончания процесса поиска. 2. Многомодальная функция Химмельблау /(х1,х2) = 100(х12 + х2 -И)2 + (х, + х2 -7)2. Тест состоит в поиске минимума при точности е = 10"3 из различных начальных точек: а) (5, 5)г, б) (5, - 5)г, в) (0, 0)г, г) (-5, -5)г, д) (5, 0)г. 3. Функция Пауэлла /(х,, х2, х3, х4) = (х, +10х2 )2 + 5(х3 - х4 )2 + (х2 - 2х3 )4 +10(х, - х4 )4. Функция минимизируется из начальной точки х° = (3, -1, О, 1)г при параметре точности е = 10"3. Тест состоит в получении точ- ки минимума х*=(0, 0, 0, 0)г. 4 Методы оптимизации
98 Глава 5. Общие принципы многомерной минимизации,.. Вопросы и задания для самоконтроля 1. Функции какого вида называются квадратичными функциями п переменных? 2. Чему равны градиент и гессиан квадратичной функции? 3. Каким свойством обладает квадратичная функция с положи- тельно определенной матрицей А ? 4. При каких а, Ь, с функция f(x) = ах? + bx\x2 + сх2 будет вы- пукла? 5. Выписать матрицу А квадратичной функции f(x) = X2 + Зх2 4- 2xtX2 - х2х3 4- 2х2 4- Х3. 6. Какая последовательность jx*} k = 0,1,2,... называется мини- мизирующей? 7. Привести пример минимизирующей последовательности, не сходящейся к точке минимума. 8. Что такое скорость сходимости минимизирующей последо- вательности? Какие скорости сходимости вы знаете? 9. Когда говорят, что в итерационном процессе хк^ = хк +akpk, k = 0,1,... производится исчерпывающий спуск? 10. Какие направления дифференцируемой в точке хк функции /(х) называются направлениями убывания? Каков геометрический смысл направления убывания? И. Какова скорость сходимости метода градиентного спуска для квадратичной функции /(х) с положительно определенной симметрической матрицей Л, где 0 < Z < Z. — ее наименьшее и на- ибольшее собственные значения? 12. Когда говорят, что сильно выпуклая функция /(х) имеет овражный характер? Какие задачи минимизации называются хорошо обусловленными, а какие — плохо обусловленными? 13. В чем состоят преимущества и недостатки метода наискорей- шего спуска по сравнению с методом градиентного спуска? 14. Каков главный недостаток градиентных методов? 15. В чем состоит идея метода сопряженных градиентов? Чем этот метод отличается от методов градиентного и наискорейшего спуска? 16. Какова скорость сходимости метода Ньютона для дважды дифференцируемой выпуклой функции /(х) многих переменных? Какова трудоемкость этого метода? 17. Чем различаются классический и обобщенный методы Нью- тона для сильно выпуклой дважды дифференцируемой функции многих переменных? 18. Сформулировать общий принцип построения квазиньюто- новских методов. Какую скорость сходимости следует ожидать от квазиньютоновских методов? Оценить их трудоемкость.
Задание для численной реализации в среде программирования MATLAB 99 Задание для численной реализации в среде программирования MATLAB 1. Реализовать в среде MATLAB метод градиентного спуска, метод наискорейшего спуска и метод сопряженных градиентов. В методе наискорейшего спуска и в методе сопряженных градиен- тов наряду с аналитическим выражением для величины шага исчер- пывающего спуска для квадратичной функции реализовать решение задач одномерной минимизации методом поразрядного поиска. 2. Протестировать работу реализованных методов на примере овражной функции /(х) = х2 + ях2 при а = 1,100, 500,1000. При е = 10'3 и е = 10"5 сравнить скорость работы методов при различных значениях параметра а по числу итераций и по числу вызовов совокупности значений функций и производных. 3. Выбрать для выполнения работы тестовую функцию, номер которой соответствует номеру вашего компьютера. Например, для компьютера №3 это будет функция 3), для компьютера №13 — функция 4): 13-9 = 4; для компьютера №23 это будет функция 5): 23-9x2 = 5. 1) /(х) = 64х2 + 126х,х2 +64х2 -lOXj +30х2 + 13. 2) /(х) = 129х? -256х.х2 + 129х2 -51х. -149х2 -27. 3) /(х) = 254х2 + 506xjX2 + 254х2+50х, +130х2 -111. 4) /(х)=151х2 -300xtx2 + 151х2 + 33х, +99х2 +48. 5) f (х) = 85х2 +1 68xjX2 + 85х2 + 29Х| - 51х2 + 83. 6) /(х) = 211х2 - 420х1х2 + 211х2 -192^ + 50х2 - 25. 7) /(х) = 194х2 +376х.х2 + 194х2 +31х. -229х2 + 4. 8) /(х) = 45х2 - 88хгг2 + 45х2 + + 268х2 -21. 9) /(*) = 99х2 + 196XjX2 + 99х2 -95xt -9х2 +91. 4. Графически отобразить линии уровня выбранной функции. Сравнить эффективность методов градиентного, наискорейшего спуска, а также метода сопряженных градиентов для задачи п. 2 при а=250 и тестовой функции п. 3 по числу итераций. Объяснить полученные результаты. 5. Минимизировать функцию Розенброка f (х) = 100(х2 - х2 )2 + (х, -1)2 с точностью е = 10-3 и е = 10"э, выбрав начальную точку х°=(-1,1)г.
100 Глава 5. Общие принципы многомерной минимизации... Для решения задачи использовать метод Ньютона, один из ква- зиньютоновских методов (воспользоваться одним из следующих квазиныотоновских алгоритмов из дополнительной литературы: метод Давидона - Флетчера - Пауэлла (ДФП); метод Бройдена - Флетчера - Шенно (БФШ); метод Мак-Кормика) и метод сопря- женных градиентов. Определить, сколько итераций потребуется каждому методу, для того чтобы разность между численным и точ- ным решением х*=(1, 1)г была меньше е. Сравнить эффективность методов. 6. Исследовать работу метода сопряженных градиентов в зависи- мости от частоты обновлений N на примере функции Розенброка. Какое значение можно назвать оптимальным? 7. На примере функции Химмельблау /(х) = (х2 + х2 -11)2+(Xj + х\ - 7)2 рассмотреть особенности применения градиентных методов для минимизации многомодальных функций. В качестве начального приближения взять точки (0,0) и (-5,0). Как зависит работа рас- сматриваемых алгоритмов от выбора начального приближения? 8. Результаты работы сохранить для использования в задании для численной реализации в гл. 6.
Глава 6 ПРЯМЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ МНОГОМЕРНЫХ ЗАДАЧ 6.1. Проблема минимизации многомерных задач Подавляющее число реальных задач оптимизации, пред- ставляющих практический интерес, являются многомерными, причем число аргументов целевой функции иногда может быть весьма большим. Например, в задаче о химическом производстве (см. гл. 2), где целевая функция зависит от температуры, при определен- ном ее выборе производительность (выход интересующего нас продукта) оказывается максимальной. Однако наряду с температурой производительность зависит также от давле- ния, соотношения между концентрациями вводимого сырья, катализаторов и ряда других факторов. Таким образом, задача выбора наилучших условий химического производства — это типичная многомерная задача оптимизации. Как и в одномерном случае, характер задачи и возможные методы решения существенно зависят от информации о целе- вой функции, которая доступна в процессе ее исследования. В одних случаях, рассмотренных выше в градиентных методах минимизации, функция задается аналитически, являясь при этом дифференцируемой функцией. Тогда можно вычис- лить ее* частные производные, получить явное выражение для градиента, определяющего в каждой точке направления возрастания и убывания функции, и использовать эту ин- формацию для решения задачи. В других случаях никакого аналитического выражения для целевой функции нет, а име- ется лишь возможность определить ее значение в любой точке рассматриваемой области (с помощью расчетов, в результате эксперимента и т.д.). В таких задачах в процессе решения можно найти значение целевой функции лишь в конечном
102 Глава 6. Прямые методы безусловной минимизации... числе точек, и по этой информации необходимо приближенно установить ее наименьшее значение для всей области. В многомерном случае задачи становятся более сложными и трудоемкими, причем трудности при их решении обычно возрастают при увеличении размерности. Для того чтобы лучше почувствовать это, возьмем самый простой по своей идее приближенный метод поиска наименьшего значения функции, который уже обсуждался для одномерных задач. Покроем рассматриваемую область сеткой с шагом h и опре- делим значения функции в ее узлах. Сравнивая полученные числа между собой, найдем среди них наименьшее и примем его приближенно за наименьшее значение функции для всей области. Для одномерных задач этот метод носит название метода перебора. Иногда он применяется также для решения дву- мерных, реже трехмерных задач. Однако для задач большей размерности он практически непригоден ввиду резкого уве- личения временных затрат, необходимых для проведения расчетов и вычисления значений целевой функции в большом числе узлов. Действительно, предположим, что целевая функция за- висит от семи переменных, а область определения является семимерным кубом, каждая сторона которого при построении сетки делится на 40 частей. Тогда общее число узлов сетки будет равно 417 -1011. Пусть вычисление значений функции в одной точке требует 1000 арифметических операций (это немного для функции семи переменных). В этом случае общее число операций составит 10. Если в распоряжении имеется компьютер с быстродействием 3,2 ГГц, то для решения задачи с помощью данного метода потребуется 3 • 104 с, что составляет сутки непрерывной работы. Добавление еще одной незави- симой переменной увеличит это время в 40 раз. Проведенная оценка показывает, что для больших задач оптимизации метод перебора непригоден. Иногда его заме- няют случайным поиском, при котором точки сетки просмат- риваются не подряд, а в случайном порядке. В результате поиск наименьшего значения целевой функции существенно ускоряется, но теряет свою надежность. Рассмотрим прямые методы минимизации, позволяющие вести поиск наименьшего значения функции многих перемен- ных целенаправленно. Необходимо отметить, что алгоритмы прямых методов решения задачи безусловной минимизации опираются только на вычисление значений функции /(х).
6.1. Проблема минимизации многомерных задач 103 Сначала рассмотрим один из наиболее простых алгоритмов минимизации функции /(х), определенной в Еп. Выберем точку х° е Еп, называемую обычно базовой. Вычислим в ней значение /(х°), а затем построим n-мерный куб с центром в этой точке и ребрами длиной I. Множество вершин этого куба вместе с точкой х° составляют так называемый шаблон. Вычислив значения функции в вершинах куба, выберем в качестве новой базовой точки ту из вершин, в которой зна- чение функции меньше f (х°), и повторим процедуру выбора следующей базовой точки и построения шаблона. Если такой вершины не оказалось, то оставим прежнюю базовую точку х® и построим шаблон с уменьшенной (например, вдвое) длиной ребер куба. Процесс поиска закончим тогда, когда длина ребра куба станет меньше заданного числа е > 0. Геомет- рическая иллюстрация такого алгоритма, называемая обычно поиском при помощи шаблона, для случая двух переменных представлена на рис. 6.1. Рис. 6.1. Иллюстрация поиска точки минимума при помощи шаблона Основной недостаток поиска при помощи шаблона со- стоит в резком росте количества вычислений значений целе- вой функции при увеличении размерности пространства п (порядка 2” ), а главное преимущество — простота алго- ритма. Эффективность этого алгоритма можно повысить. Геометрически это соответствует процедуре построения вокруг базовой точки в качестве шаблона не «-мерного куба, а конфигурации с меньшим количеством вершин.
104 Глава 6. Прямые методы безусловной минимизации... Реализация такой идеи привела к разработке методов сим- плексного поиска, получивших к началу 1970-х годов широкое распространение. Симплекс (от лат. simplex — простой) — это простейший выпуклый многогранник в Еп с и + 1 вершина- ми (в Е2 симплекс — совокупность вершин треугольника, в Е3 — тетраэдра). Каждую вершину многогранника называют вершиной симплекса, отрезок, соединяющий две вершины, — ребром симплекса. В первых разработанных вариантах симплексного поиска был использован правильный симплекс, у которого все вершины равноудалены друг от друга (в Е2 правильный симплекс — со- вокупность вершин равностороннего треугольника, в Е3 — пра- вильного тетраэдра). Позднее был рассмотрен произвольный (деформируемый) симплекс и предложен способ расширения или сжатия симплекса в зависимости от того, удачно ли выбран шаг поиска в направлении убывания функции. Изменение формы симплекса позволяет улучшить процесс адаптации используемой конфигурации к рельефу графика минимизируемой функции. 6.2. Минимизация функций по правильному (регулярному) симплексу Рассмотрим простейший алгоритм симплексного поиска минимума унимодальной целевой функции f(x), хеЕпс использованием регулярного симплекса постоянных раз- меров. На первом шаге поиска строим регулярный симп- лекс с вершинами х1*', i = 1,... п +1, который обозначим 5,. Построение симплекса можно провести двумя простыми способами. Первый способ. Если х1,1 е 5, — заданная базовая точка, то координаты х]’’, i = 2, ...и + 1, j = 1,...п остальных п вершин х1' g регулярного симплекса , имеющего ребра длиной /, можно вычислить по формулам (6.1)
62. Минимизация функций по правильному (регулярному) симплексу 105 где х/ j = 1,... п — координаты вершины х'л е Sv Например, если в Е2 выбрана базовая точка х|;1 = (0, 0/, то при дли- не ребра 1 = 2 остальные две вершины х1:2 и х1:3 имеют ко- ординаты х}'2 = 0,518, л'22 = 1,932, х|13 = 1,932, Х23 = 0,518. На рис. 6.2 приведен построенный симплекс. Рис. 6.2. Построение регулярного симплекса двумя способами Второй способ. Если х° е Еп — заданная базовая точка, определяемая как центр регулярного симплекса 5,, имеющего ребра длиной I, то координаты х'1', i = 1,... п, j = 1,... п всех вершин х|;' е 5, находятся по формулам Xj, j < i -1; х® +——I, j = i-l; ’ W+l) х”---.-- /, j>i-\ 1 ЖМ) (6.2) где х®, j = 1,... п — координаты точки х®. Например, если в Е2 задана точка х°=(0, 0/ и 1 = 2, то вершинами пра- вильного симплекса будут точки х,:1 =(-1,000, -0,578)г, х12 =(1,000, -0,578/, х13 =(0,000, 1,156/. На рис. 6.2 при- веден построенный симплекс.
106 Глава 6. Прямые методы безусловной минимизации.. После построения симплекса на первом шаге поиска в вершинах х1'1 g 5t, i = 1,... п +1 вычисляют значения миними- зируемой функции и выбирают вершину, в которой значение функции является наибольшим. Пусть для определенности это будет вершина х1л+1, если таких вершин несколько, то может быть взята любая из них. Далее по формуле 9 п x2n+l = 2х'с -х'"+1 =^£хи -х'П+1 (6.3) находят точку х2л+|, симметричную вершине относи- тельно гиперплоскости, в которой лежат остальные вершины симплекса 5Г Точка х'с равноудалена от вершин, т.е. является центром регулярного симплекса с п вершинами, или, иначе говоря, центром масс системы материальных точек, распо- ложенных в вершинах симплекса и имеющих одинаковую массу. Нахождение точки х2,п+' называется отражением вер- шины, В результате получают новый регулярный симплекс 52, образованный новой вершиной х2л+1 и п вершинами i = 1,... и, принадлежавшими симплексу На рис. 6.3 представлена процедура построения нового регулярного сим- плекса в случае Е2. Рис. 6.3. Построение нового симплекса отражением вершины в пространстве Е2 На втором шаге поиска в новой вершине xZn+i е S2 симплек- са 52 вычисляют значение f (x2,n+i), и если /(x2,n+1) < f (x1:"+1), то процедуру поиска повторяют далее. При реализации ал- горитма удобно на каждом &-м шаге поиска отражаемой вер- шине симплекса Sk присваивать номер и+ 1, т.е. обозначать
62. Минимизация функций по правильному (регулярному) симплексу 107 ее хк'"+1 е Sk. Нумерацию вершин симплекса Sk назовем пра- вильной, если выполнены неравенства f(xki )<....< f(xki )<....< /(xM+1). (6.4) Если на k-м шаге после отражения вершины хк"+1 е Sk в точку г*+1л+1 и вычисления значения /(xi+l n+1) окажет- ся, что /(x*+ln+l)> f(xk"+i), то следует вернуться к сим- плексу Sk, считая отражение вершины x*'"+i неудачным. После этого, предполагая нумерацию вершин симплекса Sk правильной, проводят отражение вершины хк,п eSk, получают точку xk+i,n и сравнивают значения и f(xk,n). Если /(х*+1")> f(xkn), то отражение и этой вер- шины считают неудачным и проводят отражение вершины xk,n~' G Sk и Т.д. При фиксированной длине ребра симплекса поиск прек- ращают на шаге с номером К, если отражения всех вершин симплекса SK оказались неудачными. Тогда в качестве оцен- ки искомого наименьшего значения /* минимизирующей функции f(x) можно взять наименьшее из вычисленных значений f (xKj), xK,t eSK, i = 1,... n +1. В процессе поиска построена последовательность симплексов Sk1 k = l,...K. Ей соответствует невозрастающая последовательность миними- зируемой функции (хкл . Исследовать свойства последовательности {/(х*1)} сложно. Поэтому на практике вместо нее изучают свойства последовательности {fk} значений минимизируемой функ- ции fk = f(xk), каждое из которых вычислено в центре хк симплекса Sk, k = l,...K. Процедуру поиска точки в котором функция f(x) достигает наименьшего значения, в этом случае проводят в соответствии с рекуррентным со- отношением хк+х = хк +akpk, k = l,...K, где рк — единичный n-мерный вектор, определяющий на- правление смещения центра симплекса на k-м шаге; ak > 0 — смещение центра симплекса в направлении вектора рк. Гео- метрическая иллюстрация процедуры такого поиска в случае Е2 представлена на рис.6.4. Рассмотрим путь построения эффективных алгоритмов, связанный с идеей изменения размера регулярного симп- лекса в процессе поиска (алгоритмы управляемого прямого
108 Глава 6. Прямые методы безусловной минимизации... Рис. 6.4. Поиск минимума в Е2 при помощи правильного симплекса поиска). Это важно, когда наименьшее значение функции f(x) необходимо найти с высокой точностью. Действи- тельно, чем меньше размер симплекса, тем точнее можно локализовать точку х*, в которой эта функция достигает наименьшего значения. При этом малый размер симплекса приводит к его уменьшенному смещению в направлении точки х*, т.е. к росту числа шагов поиска, связанному с увеличением вычислительных затрат. Большой размер симплекса, наоборот, позволяет за каждый шаг поиска осуществить большее смещение центра симплекса, но обеспечивает лишь грубую локализацию точки х*. По- этому изменение размера симплекса наделяет алгоритм поиска адаптивными свойствами. Рассмотрим подход, при котором размер симплекса изменяется при выполнении определенного условия, проверяемого на каждом шаге поиска. Пусть Ske Еп — регулярный симплекс на &-м шаге поиска, имеющий правильную нумерацию вершин. Процедура отыс- кания вершины x*+1;w+1 е нового симплекса 5Л+1 включа- ет в себя два этапа — отражение вершины xk'n+i g Sk и, если необходимо, уменьшение размера Sk, называемое редукцией симплекса.
62. Минимизация функций по правильному (регулярному) симплексу 109 Первый этап. Отражение вершины xM+l6 Sk осуществля- ют в соответствии с формулой, аналогичной (6.3): x‘+1;n+1 = 2х* -х*;л+1 =|ZX*;'-хк,п+\ (6.5) где хк равноудалена от вершин хк\ i = Затем вычис- ляют /(х*+1я+1). Второй этап. Редукцию симплекса Sk проводят только при выполнении неравенства /(х*+1и+1) > f(xkn"). При этом длину всех ребер симплекса уменьшают в 1/8 раз, где 8е (0,1) — заданный коэффициент редукции, и находят вершины нового симплекса Sk+i по формуле xM,i = хкл + 8 (хк,г - хкл), i = 2,... п +1, сжимая симплекс в 1/8 раз к вершине хк\ в которой значение целевой функции меньше, чем в других вершинах симплек- са. Затем осуществляют переход к первому этапу, полагая k = +1. Условие прекращения поиска зависит от конкретной задачи минимизации. Например, поиск можно вести, до тех пор пока длина ребер симплекса не станет меньше заранее выбранного значения. Или пока не выполнится неравенство 1 / 4 л+1 \2 —7Х(/(х‘;)-Ж))2 <е, где £ > 0 — заданное достаточно малое число. Пример 6.1, Используя метод регулярного симплекса, найти реше- ние задачи минимизации функции f (х,,х2) = 6хj* - 4х,х2 + Зх2 + 4V5(х, + 2х2) + 22 . Функция квадратичная, имеет минимум /” =-28 при х = (-\/5, -2>/5)г. Выберем базовую точку х° = (-2, 1)г и положим е = 0,01. На рис. 6.5. дана графическая иллюстрация процесса поиска при коэффициенте редукции 8 = 1/2 и трех значениях начальной длины ребра симплекса, указанных в табл. 6.1.
110 Глава 6. Прямые методы безусловной минимизации.. Рис. 6.5. Иллюстрация к примеру 6.1 Поиск минимума функции при помощи регулярного симплекса Таблица 6.1 1 X* /(*') N 0,5 (-2,233; -4,470) -28,0 32 1,0 (-2,233; -4,470) -28,0 19 2,0 (-2,233; -4,470) -28,0 18
6.3. Минимизация функций при помощи нерегулярного симплекса 111 6.3. Минимизация функций при помощи нерегулярного симплекса Симплексные процедуры безусловной минимизации, в которых используются регулярные симплексы, эффективны лишь в тех случаях, когда топография поверхностей уровня целевой функции достаточно проста. В противном случае эффективность применения таких процедур значительно снижается. В частности, это характерно для функций, скорость убывания которых по одному или нескольким направлениям значительно больше, чем по остальным. В таком случае гово- рят, что график функции имеет овражную структуру. Примером функции, график которой обладает овражной структурой, является функция Розенброка f(xv х2) = 100(х2-х2)2 +(Xi -I)2 с минимумом в точке х* = (1, 1)г. Препятствием для успешного поиска минимума f(x) является в этом случае форма симплекса: регулярный симплекс нельзя изменить так, чтобы он «вытянулся» вдоль «оврага», а это не позволяет продолжить поиск минимума. В этих случаях естественной выглядит идея деформирования сим- плекса в процессе поиска, т.е. изменения его формы и размера. Рассмотрим простейшую схему алгоритма прямого поиска по деформируемому симплексу — алгоритм Нелдера — Мида. Этот алгоритм допускает возможность отражения только одной вер- шины симплекса на каждом шаге поиска. К процедуре отражения при построении нового симплекса добавляются процедуры сжатия и растяжения. А именно положение новой вершины xk+iW+1 вместо вершины хк,а+\ соответствующей наибольшему значению функции, находится сравнением и выбором наимень- шего среди значений целевой функции в точках z1 =xkc -a(xkc -xkn+i) = —xk'1 + 0 < ос < 1; z=l z2 = хк + а(хк -х*"+1) = ^-^У х*-ахм, 0<а<1; п Z? 1 + В " (6 6) z3 = хк + ₽ ( хк - хм) = —£ £ xk-'; - Р хк"+1, р »1; И /=1 Z4 =хк+у(хк -Хк"+') = ^Х-У'хк'1 -УХкп+', у>1. П
112 Глава 6. Прямые методы безусловной минимизации... Геометрическая иллюстрация этих процедур для пространс- тва Е2 приведена на рис. 6.6 и 6.7. Так как величина осе (0,1), то выбор точек z1 и z2 соответствует сжатию симплекса; Р~1, поэтому выбор точки z3 соответствует отражению, а у>1 и выбор точки z4 приводит к растяжению симплекса. Численные эксперименты показывают, что этот алгоритм хорошо работает в пространстве Еп для п<6. Необходимо отметить, что при деформациях утра- чивается свойство правильности исходного симплекса. Поэтому, не стремясь к правильности начального симп- лекса, его строят из произвольной базовой точки х° е Еп по формулам х'=х°+ае' (6.7) где е\ i = 1,... п — базисные векторы, а — параметр симп- лекса. На практике хорошо зарекомендовал себя следующий набор параметров а, р и у для выбора пробных точек z' в формулах (6.6): а = 1/2, Р = 1, у = 2. Для того чтобы избежать сильной деформации симплекса, алгоритм дополняют процедурой обновления. Например, после шагов алгоритма из точки х° снова строят симплекс по формулам (6.1), (6.2) или (6.7), полагая а = ||х° -хп ||. С теоретической точки зрения симплексные методы ми- нимизации слабо исследованы, но практика показывает их работоспособность. Рис. 6.6. Расположение пробных точек z1, z2, z3, z4 для перехода к новому симплексу
6.4. Метод циклического покоординатного спуска 113 Рис. 6.7. Новые симплексы, полученные в результате процедур сжатия (а, б); отражения (в); растяжения (г) Вернемся теперь к описанию некоторых вычислительных процедур вида хк+' = хк +akpk. В зависимости от способа вы- бора направления спуска рк и шага ak получаются различные алгоритмы минимизации. 6.4. Метод циклического покоординатного спуска Этот метод заключается в последовательной миними- зации целевой функции f(x) с исчерпывающим спуском сначала по направлению первого базисного вектора е\ затем второго — е2 и так далее. После окончания минимизации по направлению последнего базисного вектора еп цикл повто- ряется. Алгоритм метода следующий.
114 Глава 6. Прямые методы безусловной минимизации... Шаг 1. Выбрать хе Еп, критерий достижения точности р(х, xw)<£1 или |/(х)- /(х")| <£2, величины £р £2. Найти /(х), положить j = 1. Перейти к шагу 2. Шаг 2. Решить задачу одномерной минимизации + >min, аеЕ, т.е. найти а*. Положить х = х + а* е\ вычислить f (х). Перейти к шагу 3. Шаг 3. Если j < п, то положить х = х, j = j +1 и перейти к шагу 2, иначе перейти к шагу 4. Шаг 4. Проверить условие достижения точности р(х, x)<£j или |/(х)-/(х)|<£2. Если оно выполняется, то положить х* = х, /(х*) = /(х) и закончить поиск. Иначе положить х = х, /(х) = /(х), 7 = 1 и перейти к шагу 2. Для приближенного решения вспомогательной задачи одномерной минимизации на шаге 2 на практике удобно использовать метод поразрядного поиска. Алгоритм этого одномерного метода не требует обязательного задания границ интервала минимизации. Алгоритм метода циклического покоординатного спуска прост, но его эффективность заметно зависит от свойств це- левой функции. Метод эффективен в случае, если миними- зируемая функция является сепарабельной, т.е. представляет собой сумму функций, каждая из которых зависит лишь от одной координаты /(х) = £/?,(*,), хеЕп. ;=1 В этом случае решение задачи минимизации можно полу- чить за один шаг поиска. Действительно, так как f(x") = min f(x) = £ min hj (x )=^h}(x'), то достаточно на первОхМ шаге поиска последовательно решить п задач одномерной минимизации функций Лу(х;), 7 = 1,... п, что позволит найти все п координат х* искомой точки х*. Для функций общего вида эффективность поиска минимума методом циклического покоординатного спуска может быть значительно ниже. Пример 6.2. Решить задачу f (х) = х* + х2 -+ min, хе Е2 методом циклического покоординатного спуска.
6А Метод циклического покоординатного спуска 115 □ Эта функция сепарабельна, ее линии уровня — окружности с цен- тром в начале координат (рис 6.8). Выберем произвольную начальную точку х, например х = (3, 3)г. Очевидно, два шага исчерпывающего спуска сначала по направлению е\ затем — е2 приведут в точку мини- мума х* = (0, 0)г. Рис. 6.8. Иллюстрация к примеру 6.2 В примере 6.2 точку минимума функции удалось найти точно за конечное число шагов. Это скорее исключение, чем правило. Пример 63. Найти f (х) = 5г2 + 5х2 + -» min, хе Е2 методом циклического покоординатного спуска. □ Заметим, что поворот системы координат на угол -45° (замена переменных х, = (у{ + у2)/\/2 и х2 = (-ух +У2)/у/2) приводит функцию к виду /[(у) = у2 +9у}. Линии уровня этой целевой функции — эллипсы У2\ / 9+У} = с2» главные оси которых направлены вдоль осей (у{, у2) (рис. 6.9). Результаты решения представлены в табл. 6.2. (точность решения одномерной задачи минимизации выбрана 10"2).
116 Глава 6. Прямые методы безусловной минимизации... Рис. 6.9. Иллюстрация к примеру 6.3 Таблица 6.2 Результаты расчетов в примере 6.3 Номер итерации xi х2 /(Л) 0 5 5 450 1 -4 5 45 2 -4 3,2 28,8 3 -2,56 3,2 18,43 4 -2,56 2,05 11,8 5 -1,64 2,05 7,55 6 -1,64 1,31 4,83 7 -1,05 1,31 3,09 8 -1,05 0,84 1,98 9 -0,67 0,84 1,27 10 -0,67 0,54 0,81 Из табл. 6.2 и рис. 6.9 видно, что минимизирующая последователь- ность jx*} сходится к точке минимума х* = (0,О)7 Однако, в отличие от решения задачи из примера 6.2, достижение точки минимума за конечное число шагов не гарантируется. Траектория поиска точки минимума в данной задаче имеет ярко выраженный зигзагообразный характер.
6.5. Метод Хука-Дживса 117 Обратим внимание, что в примере 6.3 эффективность ре- шения задачи методом циклического покоординатного спуска можно повысить. Для этого следует дополнить его алгоритм периодически повторяющимся поиском точки минимума в направлении р' = х' -х'“2 из точек х'. Так, например, если из точки х4 провести исчерпывающий спуск в направлении р4 = х4 - х2 (координаты точек приведены в табл. 6.2), то полу- чим точку (-2,2 • 10"э, 5,6 • 10-3 )т, расположенную значительно ближе к точке минимума х* = (0, 0)г, чем точки х°, х6,... х10. Такой подход, состоящий в последовательном нахождении направлений убывания целевой функции и минимизации ее по этим направлениям, лежит в основе ряда алгоритмов. Рассмотрим один из них. 6.5. Метод Хука - Дживса Эффективность прямого поиска точки минимума огра- ниченной снизу целевой функции можно повысить, если на каждом &-м шаге поиска последовательно выбирать направ- ление спуска. Для этого на каждом &-м шаге выделяют пред- варительный этап исследующего поиска. Целью этого этапа является выбор направления спуска путем исследования поведения целевой функции /(х) в окрестности точки xk~\ найденной на предыдущем шаге. В результате исследующего поиска находится точка х\ для которой f(xk) < f (хГч). На- правление спуска, завершающего k-н шаг поиска, определяет- ся вектором xk -xk~\ Такая стратегия поиска, предложенная в 1961г., получила название метода Хука - Дживса. Это один из наиболее эффективных прямых методов. Алгоритм метода Хука - Дживса на каждом шаге содержит две основные процедуры: а) исследующий поиск в окрестности данной точки х для определения направления убывания функции /(х). В результате получим точку х; б) перемещение в направлении убывания (х-х). Поиск завершается, если в результате выполнения шага «а» получено, что х = х. Опишем один из возможных алгоритмов исследующего поиска — покоординатный поиск. Пусть задана точка х с приращениями по каждой координате Д., j = 1,... п.
118 Глава 6. Прямые методы безусловной минимизации... Шаг 1. Положить х = х, j = 1. Перейти к шагу 2. Шаг 2. Сделать пробный шаг у = х - Д;е7, где ej -j-й базис- ный вектор. Если f (х) < то перейти к шагу 3, иначе — к шагу 4. Шаг 3. Сделать пробный шаг у = х + Д;е< Если f (х) < f(y), то прейти к шагу 5, иначе — к шагу 4. Шаг 4. Положить х = у. Перейти к шагу 5. Шаг 5. Положить j = j +1. Если j < п, то перейти к шагу 2, иначе исследующий поиск окончен, т.е. получена точка х, для которой /(х) < f (х), если х Ф х. В результате исследующего поиска может оказаться, что х = х. Тогда исследующий поиск считается неудачным. Если при этом норма приращения Д = (Д,,... Дп) мала, т.е. || Д || < е, где £ — заданная точность, то полагают х* = х, /(х*) = /(х). Если заданная точность не достигнута, то полагают Д = Д / у (где коэффициент дробления шага у > 1) и повторяют иссле- дующий поиск. Полный алгоритм метода Хука - Дживса следующий. Шаг 1. Выбрать начальную точку х°, вектор приращений Д = (Др... Д„), коэффициент дробления шага у> 1, параметр окончания поиска £ >0. Перейти к шагу 2. Шаг 2. Провести исследующий покоординатный поиск из точки х°, т.е. найти точку х . Если х° Ф х°, то перейти к шагу 4, иначе — к шагу 3. Шаг 3. Проверка окончания поиска. Если || Д || < £, то пре- кратить поиск и положить х* = х°. Иначе — положить Д = Д / у и перейти к шагу 2. Шаг 4. Осуществить перемещение из точки х° в направ- лении убывания ( х° -х°) в точку х1 х1 =х° +ak (х°-х°) и подобрать так называемый ускоряющий множитель ak > 0, чтобы /(х1)</(х°). Часто akE (0,1]. С увеличением ak увеличивается длина ajx° -х° | шага спуска в направлении вектора х°-х°. Зна- чение ak можно подбирать из условия минимума функции /(х) при смещении точки х° в направлении этого вектора. В простейшем варианте метода Хука - Дживса значение ak выбирают постоянным, обычно ak = 2. В этОхМ случае формула, по которой осуществляется спуск, имеет вид х' = х° + 2(х°- х°) = 2х°- х°.
6К Методы случайного поиска 119 6.6. Методы случайного поиска Основой для этих методов служит итерационный процесс x‘+1=x* + atj|j, k = 0,l,... (6.8) где ak >0 — величина шага, £ = (£р...£и) — некоторая реа- лизация ^-мерного случайного вектора Будем считать, что координаты вектора £ — это незави- симые случайные величины, равномерно распределенные на отрезке [-1, 1]. На текущей итерации при помощи генериро- вания случайных векторов Е, получаются точки, лежащие на гиперсфере радиуса ak с центром в точке х\ Если зна- чение функции в полученной точке не меньше, чем в центре сферы, шаг считается неудачным. Если число неудачных шагов из данной точки достигает заданного числа М, поиск повторяется из той же точки с уменьшенным шагом, до тех пор пока шаг не станет меньше заданной точности. Если же значение функции в полученной точке меньше, чем в центре, шаг считается удачным, и полученное значение выбирается за новый центр поиска. Приведем два возможных алгоритма метода случайно- го поиска. Они могут использоваться как самостоятельные минимизирующие процедуры или входить в состав других алгоритмов, например использоваться для исследующего поиска в методе Хука — Дживса. Алгоритм поиска с возвратом при неудачном шаге сле- дующий. Шаг 1. Выбрать параметр точности е>0, начальный шаг а >0, коэффициент уменьшения шага у> 1, предельное число попыток Af, точку х. Вычислить f (х). Перейти к шагу 2. Шаг 2. Положить счетчик числа неудачных попыток j = 1. Перейти к шагу 3. Шаг 3. Получить реализацию случайного вектора Пе- рейти к шагу 4. Шаг 4. Найти пробную точку jy = jr н- ос-р-щу, вычислить f(y). Перейти к шагу 5. Шаг 5. Если f (у) < f (х), то положить х = у, f (х) = f (у) и перейти к шагу 4. Иначе — перейти к шагу 6.
120 Глава 6. Прямые методы безусловной минимизации... Шаг 6. Положить j = j +1. Если j < Л/, то перейти к шагу 3, иначе — к шагу 7. Шаг 7. Если а<£, то поиск завершить, полагая х*=х, /*=/(х). Иначе - положить а = а/у и перейти к шагу 2. Иллюстрация построения последовательности (6.8) с по- мощью описанного алгоритма для функции двух переменных приведена на рис. 6.10, где пунктиром показаны неудачные попытки определения точки xk+i из (6.8), не приводящие к уменьшению f(x). Рис. 6.10. Иллюстрация работы алгоритма с возвратом при неудачном шаге в Е2 На практике предельное число неудачных попыток М обычно полагают равным Зи, где п — число переменных це- левой функции. Алгоритм метода случайного поиска наилучшей пробы следующий. Этот алгоритм отличается от предыдущего только шагами 3 и 4. Шаг 3. Получить т реализаций случайного вектора Х-Г F' Шаг 4. Найти пробные точки = х + ац—j, : = 1,... т, вычислить f (у1). Найти ук из условия /(z/) = min f{yl) и положить у = ук.
Вопросы и задания для самоконтроля 121 Вопросы и задания для самоконтроля 1. Сформулировать стратегию построения алгоритма симплек- сного поиска. 2. Какая нумерация вершин симплекса называется правильной? 3. Описать алгоритм отражения вершины в методе правильного симплекса. 4. Зачем необходима и в чем заключается редукция правильного симплекса? 5. Сформулировать теоретическое обоснование минимизации целевой функции методом правильного симплекса. 6. В задачах минимизации с какими целевыми функциями метод правильного симплекса не может обеспечить высокой точности? 7. Сформулировать особенности минимизации целевой функции методом Нелдера — Мида по сравнению с ее минимизацией методом правильного симплекса. 8. Назвать класс целевых функций, при минимизации которых метод Нелдера — Мида имеет преимущество перед минимизацией по регулярному симплексу. 9. Сформулировать теоретическое обоснование минимизации целевой функции методом Нелдера — Мида. 10. Назвать класс унимодальных целевых функций, для которых эффективна минимизация методом циклического покоординатного спуска. 11. Как можно дополнительно повысить эффективность поиска точки минимума целевой функции, которая ищется методом цик- лического покоординатного спуска? 12. В чем состоит стратегия метода Хука — Дживса? 13. Какие подходы для реализации исследующего поиска в ме- тоде Хука — Дживса вы знаете? В чем состоит метод исследующего покоординатного поиска? 14. Перечислите способы выбора ускоряющего множите- ля в методе Хука — Дживса при перемещении в направлении убывания. 15. Какие алгоритмы случайного поиска вы знаете? 16. От какого параметра в наибольшей степени зависит эффек- тивность алгоритмов случайного поиска? 17. На основе собственного опыта дать сравнительный анализ прямых методов.
122 Глава 6. Прямые методы безусловной минимизации... Задание для численной реализации в среде программирования MATLAB 1. Реализовать в среде MATLAB методы правильного симплекса, Нелдера — Мида, циклического покоординатного спуска, метод Хука — Дживса и метод случайного поиска. 2. Протестировать работу реализованных методов на примере «овражной» функции f(x) = x2+ax22 при а = 1, 100, 500, 1000. Графически отобразить линии уровня функции. Сравнить скорость работы методов при различных значе- ниях параметра а по числу итераций и по числу вызовов функций. Параметр точности выбрать е = 10"3 и е = 10"э. 3. Выбрать для выполнения работы тестовую функцию, но- мер которой соответствует номеру вашего компьютера. Например, для компьютера №3 это будет функция 3), для компьютера №13 - функция 4): 13-9 = 4; для компьютера №23 это будет функция 5): 23-9x2 = 5. 1) f (х) = 64A7j2 +126xjX2 + 64х22 -10г, + 30х2 + 13. 2) /(г) = 129г? - 256хЛ +1 29х22 -51^-149х2 - 27. 3) f (х) = 254х? + 506xjX2 + 254х? + 50xj + 130х2 -111. 4) f (х) = 151х? -300х,х2 + 151х? + 33х, +99х2 +48. 5) f (х) = 85х? +1 68х,х2 + 85х22 + 29х, -51х2 + 83. 6) /(х) = 211х? - 420х,х2 + 211х22 -192х1 + 50х2 - 25. 7) /(х) = 194х12 +376x^2 +194х22 +31х, -229х2+4. 8) /(х) = 45х? -88х,х2 + 45х? +102Xj + 268х2 - 21. 9) /(х) = 99х? + 196xjX2 +99х? -95х, -9х2 +91. 4. Графически отобразить линии уровня выбранной функции. Сравнить эффективность метода покоординатного циклического спуска и метода Хука — Дживса для задачи п. 2 при а= 250 и тесто- вой функции п. 3 по числу итераций. Для метода Хука — Дживса величину шага исчерпывающего спуска выбирать по приближенной формуле и вычислять методом поразрядного поиска. Объяснить полученные результаты. 5. Используя методы прямого поиска, минимизировать функцию Розенброка
Задание для численной реализации в среде программирования MATLAB 123 /(х) = 1ОО(х2 - х2 )2 + (х, -1)2 с точностью е = 10"3 и е = 10"5, контролируя точность алгоритмов исчерпывающего спуска. Начальное приближение х° = (-1, 1)г. Установить, какие из примененных алгоритмов не позволяют при заданной точности поиска получить точку минимума х* =(1, 1)г вследствие преждевременного окончания процесса поиска. 6. На примере функции Розенброка провести сравнение прямых и градиентных методов минимизации. Определить, сколько итера- ций потребуется каждому методу, для того чтобы разность между численным и точным решениехМ была меньше е. 7. На примере функции Химмельблау /(х) = (х2 + х2 -11)2 + (xt + х2 - 7)2 рассмотреть особенности применения прямых методов для миними- зации многомодальных функций. В качестве начального приближе- ния взять точки (0,0) и (-5,0). Как зависит работа рассматриваемых алгоритмов от выбора начального приближения? 8. Встроенная функция Matlab fminsearch реализует метод Нел- дера — Мида. Сравнить результаты ее работы с результатами, полу- ченными вашим алгоритмом. В каких случаях построенный вами алгоритм работает эффективнее функции fminsearch?
Глава 7 УСЛОВНЫЙ ЭКСТРЕМУМ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ УСЛОВНОГО ЭКСТРЕМУМА Пусть даны дважды непрерывно дифференцируемая це- левая функция /(х) = /(хр...хи) и функции ограничений Sj(х) - gj(*i > - хп) = 0’ 7 = 1» ••• определяющие множество допустимых решений U. Требуется исследовать функцию f(x) на экстремум, т.е. опре- делить точки х* g U ее локальных минимумов и максимумов /(x*) = min/(x), /(x’) = max/(x), (7.1) где U = : gj (х) = 0, j = 1,... т\ т < п В первой части главы будем рассматривать условные экстремумы с ограничениями только типа равенств. 7.1. Условный экстремум при ограничениях типа равенств Определение. Функция L{x, Хо А) = Хо f(x)+У (х) (7.2) ;=1 называется обобщенной функцией Лагранжа, числа Хо, Хр... — множителями Лагранжа. Классической функцией Лагранжа называется функция
7.1. Условный экстремум при ограничениях типа равенств 125 I(x,X)=/(x) + £x7g7(x) (7.3) 7=1 Определение. Градиентами обобщенной и классической функций Лагранжа по х называются вектор-столбцы, состав- ленные из соответствующих частных производных первого порядка по х,, i = 1,... п: 'ЭЦхАрД) дх. vxL(x, хо,х)= dL(x, Хо, X) < дХп fdL(x,K)' дх. VvZ(x, X) = (7.4а) (7.46) д£(х,Х) < К > Определение. Вторым дифференциалом обобщенной (классической) функции Лагранжа £(х, Хо А) ( L(x, X) ) на- зывается функция 12т/ л V* v19“L(xAoA) j j d L(x, Хо, X) = ££ - dx,dx,, (7.5а) □2 г/ л \ х"1 v1 д2Х(х, X) j j d2£(x,X) = XE дл.д* ^xi- (7.56) Определение. Первым дифференциалом ограничения g (х) называется функция d^(x) = L“^“dx-' j = (7.6)
126 Глава 7. Условный экстремум функции многих... Пример 7.1. Выписать функции (7.2)—(7.6) для задачи поис- ка условного экстремума функции f(x) = x2{+xl на множестве U = {х : х2 - х, + 3 = 0}, заданном ограничением g,(х) = х} -xt + 3 = 0. □ Обобщенная функция Лагранжа Z,(x,Ху,Xj) = Х,0(Л| 4~х*2)"ЬХ,|(Хг — Х| +3). Классическая функция Лагранжа £(х, Xj) = х2 4- х£ 4- Х/х^ - х, 4-3). Градиент функций Лагранжа Vl£(x,Xo,X1) = (2Xox1 -Хр 2Хох2 4-2XjX2)r; Vv£(x, X,) = (2х, - Xp 2x2 4-2XjX2)r. Второй дифференциал функций Лагранжа d2£(x, Хо, Xj) = 2Х0 Jx2 4- ( 2Х0 4- 2Х t )dx22; d2£(x, X|) = 2 Jx2 + ( 2 + 2X, )dx22. Первый дифференциал ограничения dgt(x) = -dxt 4-2x2dx2. Стратегия поиска локальных экстремумов Находятся точки х* локальных экстремумов с помощью необходимых и достаточных условий минимума и максимума первого и второго порядка при ограничениях типа равенств (порядок условий определяется порядком используемых производных). Вычисляются значения /(х*) в найденных точках локального экстремума. Необходимые условия экстремума первого порядка. Пусть х* — точка локального экстремума в задаче (7.1). Тогда найдутся числа Х^, X*,... Х^, не равные одновременно нулю и такие, что выполняются следующие условия: — стационарности обобщенной функции Лагранжа по х Э£(х#,х;,г> п . . — -..--о----- = 0, z = l,...n; (7.7а) дх, — допустимости решения g/x ) = 0, j = l,.../и. (7.76) Если при этом градиенты Vg/x*),... Vg„,(x*) в точке х* линейно независимы (выполняется условие регулярности), то Xq ф 0.
7.1. Условный экстремум при ограничениях типа равенств 127 Важно отметить следующие моменты. 1. Условие (7.7а) может быть записано в векторной форме vvi(x*, х;,х*)=о. 2. Система (7.7) содержит (n + m) уравнений с (п + т + 1) неизвестными XJ, Х*,...Х*И, xt*,...x*. Точки х*, удовлетворя- ющие системе при некоторых XJ, X*, называются условно- стационарными. 3. При решении задач проверка регулярности затруднена, так как точка х* заранее неизвестна. Поэтому, как правило, рассматриваются два случая: X* = 0 и XJ 0. Если XJ 0, в системе (7.7а) полагают Х^ =1. Это эквивалентно делению X* системы уравнений (7.7а) на X* и замене —на X*. При этом ^0 обобщенная функция Лагранжа становится классической, а сама система (7.7) принимает вид Э£(х*, X*) А . j —V—- = 0, z = l,...n, (7.8а) ох, g;(x* ) = о, 7 = 1,...7И, (7.86) где число уравнений равно числу неизвестных. Определение. Точка экстремума, удовлетворяющая сис- теме (7.7) при X* ^0, называется регулярной, а при X* = 0 — нерегулярной. Случай Xq=O отражает вырожденность ограничений. При этом в обобщенной функции Лагранжа исчезает член, содержащий целевую функцию, а в необходимых условиях экстремума не используется информация, представляемая градиентом целевой функции. Необходимые условия экстремума второго порядка. Пусть х* — регулярная точка минимума (максимума) в за- даче (7.1) и имеется решение (х* X*) системы (7.8). Тогда второй дифференциал классической функции Лагранжа, вычисленный в точке (х’, X*), неотрицателен (неположи- телен): d2£(x', Г)>0, (d2L(x, Г) < 0 ) (7.9) Для всех dx таких, что
128 Глава 7. Условный экстремум функции многих... п dgj(x’) = X—1—-dx,. = 0, j = l,...m. (7.10) 1=1 °Х1 Достаточные условия экстремума. Пусть имеется точка (х*,Л*), удовлетворяющая системе (7.8). Если в этой точке d2Z(x’, Х*)>0 (соответственно d2Z(x*, Х*)<0) для всех не- нулевых dx таких, что dg, (х*) = X ^dx, =0, j = 1,... т, /=1 OXj то точка х* является точкой локального минимума (макси- мума) задачи экстремума. Достаточные и необходимые условия экстремума вто- рого порядка проверяются в условно-стационарных точ- ках, которые удовлетворяют системе (7.7) при ^0 или системе (7.8), так как для практики представляет интерес случай, когда в функции Лагранжа присутствует целевая функция, экстремум которой ищется. Алгоритм решения задачи следующий. Шаг 1. Составить обобщенную функцию Лагранжа L(x, Хо А) = Kf(x) + i^jgj<x)- j-i Шаг 2. Записать необходимые условия экстремума пер- вого порядка . ЭА(х‘, АЛД’) _ . . . .. А . . а) —v 2—- = 0, 1 = 1,... п; 6) gt(x ) = 0, ] = 1,... т. Эх, ' Шаг 3. Решить систему для двух случаев: 2) KJ * 0 (при этом поделить условие а) на и заменить — на Х‘). х; В результате найти условно стационарные точки х‘, вы- делив из них полученные при Xq * 0 (они могут быть регу- лярными точками экстремума).
7.1. Условный экстремум при ограничениях типа равенств 129 Шаг 4. Для выделенных на шаге 3 точек проверить доста- точные условия экстремума: а) записать выражение для второго дифференциала клас- сической функции Лагранжа в точке (х* X*) d2I(x’, Х’) = ££ /=1 j=l д2Цх', Х‘) dxpXj dx;dxy; б) записать систему дополнительных условий в точке х* dgj(x*) = £^p^dx,. =0, j = 1,... т; м дХ; в) из последних условий выразить любые из т диф- ференциалов dx, через остальные (п-т) и подставить в d2£(x‘, Х‘); г) если d2Z(x‘, Х’)>0при ненулевых dx, то в точке х* условный локальный минимум. Если d2£(x’, X’) < 0 при не- нулевых dx, то в точке х’ условный локальный максимум. Если достаточные условия экстремума не выполняются, следует проверить выполнение необходимых условий второго порядка, следуя аналогичной процедуре. Если они выполняются, то требуется дополнительное иссле- дование, в противном случае в точке х’ нет условного экстремума. Шаг 5. Вычислить значения функции в точках условного экстремума. Приведем в виде таблицы результаты исследования на наличие в точке х‘ локальных экстремумов при соблюдении необходимых условий первого порядка Э£(х-, х;,Г) _ . . dxi g7(x’) = 0, j = причем XJ^O (табл. 7.1). 5 Методы оптимизации
130 Глава 7. Условный экстремум функции многих., Таблица 7.1 Результаты исследования локальных экстремумов в точке х* при соблюдении необходимых условий первого порядка № d2L(x‘ Г) Тип условностационарной точки х‘ 1 >0 0, dx*0 Условный локальный минимум 2 <0 0, dx*0 Условный локальный максимум 3 >0 0 Может быть условный локаль- ный минимум, требуется допол- нительное исследование 4 <0 0 Может быть условный локаль- ный максимум, требуется допол- нительное исследование 5 = 0 0 Требуется дополнительное ис- следование 6 >0, <0 0 Нет экстремума Пример 7.2. Найти /(х) = х* + х% extr при условии g1(A;) = xi +х2 -2 =0. □ Проверим условие регулярности. Так как Vg,(x) = (l, 1)г ^0, то условие выполняется. Поэтому будем пользоваться классической функ-цией Лагранжа. 1. Составим функцию Лагранжа L(x, X,) = х* + *2 + Xj (хх + х2 - 2). 2. Выпишем необходимые условия экстремума первого порядка ч Э£(х,Х.) п п Э£(х,Х.) о л А а) — ---— = 2х, + X, = 0, —--— = 2х2 + X, = 0, откуда дх^ дх2 X, X,. л-1 2 ’ л2 2 ’ б) gx(x) = xx+x2-2 = 0. 3. Решение системы: хх =х2 =1, X* =-2 — условно стационарная точка. 4. Проверим достаточные условия экстремума: a) d2£(x‘, X;) = 2dx2 + 2dx22, так как = 2, Э17 дх2 d2Mx,Xt)_0 Э^(хЛ)=0; ЭХ[Эх2 ’ Эх2дХ|
7.1. Условный экстремум при ограничениях типа равенств 131 б) dg,(х*) = dx, + dx9 = О, так как d&W = dgi(x) _ |. Эх, Эх2 в) выразим дифференциал dx, через dx2: dx, = -dx2 и подставим в d2Z г) так как d2Z(x* X*) = 4dx2 > 0 при dx2 * 0 , то в точке х* = (1,1/ регулярный локальный условный минимум. 5. Вычислим значение функции в точке условного экстремума: /(х) = 2.И Графическое решение задачи приведено на рис.7.1. Рис. 7.1. Иллюстрация к решению задачи из примера 7.2 Пример 7.3. Найти условный экстремум f (х) = х, + х2 -» extr, g1(x) = x12+x2-2 = 0.
132 Глава 7. Условный экстремум функции многих... □ Проверим условие регулярности. Так как Vg1(x) = (2x1, 2х2)т *0 для всех xg U, то условие регулярности выполняется. Поэтому будем пользоваться классической функцией Лагранжа. 1. Составим функцию Лагранжа L(x, X,) = + х2 + Х/х2 + х2 - 2). 2. Выпишем необходимые условия экстремума первого порядка: ч Э£(хД.) , л Э£(лД.) . л а) — ---— = 1 + 2Х1х1 = 0, — -— = 1 + 2Х1х2 = 0, откуда Эх, Эх2 1 1 1 2Х, 2 2Х, б) (х) = х^ + Х1 -2 = о. 3. Решением системы являются две условно стационарные точки А: л.*=х2=1, Х*=-- В: x'=x2=-i, Х*=—. I z т I 2 I 2 I 2 4. Проверим достаточные условия экстремума: a) d2L(x*, ) = 2X*dx2 + 2X*dx22, так как _ Э В(х,\) _ (Л% । (Л12 Э2Л(хД1) _ Э2В(хД1) _Q дх,Эх2 d~v2dx, /а-*) = 2A*!*dxt + 2x2dx2 = 0,таккак = 2хр ~~^ = 2х2; иХ । (ZX 2 в) Исследуем точку А. Получаем dgj(4) = 2dx, + 2dx2 =0, откуда dx, = -cLv2. С учетом полученного соотношения d2Z(X) = -dx2 -dA*2 = -2dx2 < 0 при dx., ^0. Поэтому в точке х* =(1,1)7 имеем регулярный условный локальный максимум. Исследуем точку В. Получаем dg,(B) = -2dx,-2dx2 =0, откуда dx, = -dx2. С учетом полученного соотношения d2Z(B) =dx,12 +dx2 = 2dx2 > 0 при dx2 0. Поэтому в точке х’ =(-1,-1)г имеем регулярный условный ло- кальный минимум. 5. Подсчитаем значения функции в точках экстремума: f(A) = 2, /(В) = -2.В Графическое решение задачи представлено на рис. 7.2.
7.1. Условный экстремум при ограничениях типа равенств 133 /« = -2 Рис. 7.2. Иллюстрация к решению задачи из примера 7.3 Пример 7,4, Найти условный экстремум в задаче /(х) = х, ->extr, g,(x) = x22-x3=0. □ Проверим условие регулярности. Так как Vg1(x)=(-3x2, 2х2)г =0 в точке х* = (0, 0)г, то условие регулярности не выполняется. Будем ч пользоваться алгоритмам с использованием обобщенной функции Лагранжа. 1. Составим обобщенную функцию Лагранжа L(x, Хо, Xj) — X0Xj ч- Xt(x2 — xt). 2. Ёыпишем необходимые условия экстремума первого порядка: а) Э£<*ЛЛ) = _ зх г = 0 = 2Х,х2 = 0; aXj Эх2 б) gt(x) = x2-х3 =0. 3. Решим систему для двух случаев. В первом случае Хо=О. Тогда так как все множите- ли Лагранжа не могут быть одновременно равными нулю. Отсюда х* - х2 =0, X* = 0. Во втором случае Хо * 0. Поделим уравнения системы, полученной на втором шаге, на Хо с заменой на Xj
134 Глава 7. Условный экстремум функции многих... 1 - З^х2 = О, 2Х(х2 = О; Х2 ~Х1 ~0- Рассмотрим второе уравнение. Если Xj =0, то система несовместна. Если х2 = 0, то х} = 0 и система тоже несовместна. Таким образом, при- менение классической функции Лагранжа не дает результата. 4. Так как =0, достаточные условия экстремума не проверяются. Точка х* со значением целевой функции /(х*) = 0 является точкой нерегулярного локального и глобального минимума (рис.7.3). Рис. 73. Иллюстрация к решению задачи из примера 7.4 Пример 7.5. Найти условный экстремум f (х) = х* + х2 -» extr, g1(x) = (x1-l)2+x2-4 = 0. □ Будем следовать алгоритму, не проверяя условия регулярности. 1. Составим обобщенную функцию Лагранжа L(x, Хо А,) = Хо (х2 + х2)+X, [(х, -1)2 + х2 - 4]. 2. Выпишем необходимые условия экстремума первого порядка: а) Э£(^ХУ’-^=2Х0х, +2Х,(х, -1)=0, =2Хох2+2Х,хг =0; dXj дх2 б) g, (X)=(Х| -1)2 + х2 - 4 = 0.
7.1. Условный экстремум при ограничениях типа равенств 135 3. Решим систему для двух случаев. В первом случае Хо =0. Тогда из п. 2 следует 2Xt (Xj -1) = 0, 2\х2 = О, (xt-l)2+x2-4=0. Так как Хо=О, то Х,^0; поэтому из первых двух уравне- ний г, = 1, х2 = 0. Однако при этом ограничение не выполняется: gt (х) = -4 * 0, следовательно, система несовместна. X Во втором случае Хо * 0. Поделим уравнения на Хо и заменим — на X,: ч Э£(х,Х.) Э1(х,Х.) о Л а) — ---~ = 2Xj + 2Xj (Xj -1) = 0, —----— = 2х2 + 2Х,х2 = 0; dxt дх2 б) g1(x) = (xl-l)2 + x2-4 = 0. Рассмотрим второе уравнение. Если х2 = 0, то из третьего уравнения следует х, = 3, х, = -1, а из первого Xj = —, X, = — соответственно. 1 2 Если же Xt = -1, то первое уравнение имеет вид 2 = 0, т.е. система несов- местна. Таким образом, найдены две условно стационарные точки 3 1 А: х* = 3, х2 = 0, X* = - —; В: х* = -1, х2 = 0, X* = —. 1'4'1 Q Л '4'1 Л 4. Проверим достаточные условия экстремума: a) d2L(x*, X;) = 2(l + X;)dx2+2(1 + X;)dx2; б) dgj (х*) = 2(х* - l)dXj + 2x2dx2 = 0; в, г) исследуем точку A. dgl(A) = 4dx1+0 = 0, откуда dx, = 0 и d2L(A) = -dx2 -dx2 = -dx2 < 0, если dx2 * 0. Поэтому в точке А регу- лярный условный максимум. Исследуем точку В. dg1(B) = 4dxl+0 = 0, откуда dx,=0 и d2I(B) = dx2 +dx2 > 0 при dx2 * 0. Поэтому в точке В регулярный условный минимум. 5. Подсчитаем значения функции в точках экстремума: /(А) = 9, /(В) = 1. . Графическое решение задачи представлено на рис.7.4.
136 Глава 7. Условный экстремум функции многих... Рис. 7.4. Графическое решение задачи из примера 7.5 Пример 7.6. Найти условный экстремум в задаче f (х) = х? - х2 —» extr, g1(x) = x12+x2-l = 0. □ 1. Составим обобщенную функцию Лагранжа Хо, A,,) = X>o(.i| — х^ + Х^х, + х2 — 1). 2. Запишем необходимые условия экстремума первого порядка: а) .Э1<л'Л’М = 2Х л• + 2Х,х, = 0, Э£(-г~-Хо^1) = _2Х + 2X(x2 = 0; Эх, ох2 б) g,(x) = x2 + x2-l=O. 3. Решим систему для двух случаев. В первом случае Хо =0. Тогда X, ^0, поэтому из первых двух урав- нений следует х{ = х2 = 0. Однако условие «б» при этом не выполняется. Следовательно, система несовместна. Во втором случае Хо ^0. Поделим уравнения на Хо и заменим — на Xt: а) Э£(х’Х|) = 2х,(1 + Х,) = 0, —-^',Х,|-) = 2х2(-1+А.|)=0; Эх, Эх2 б) g,(x) = x2+x2-l = 0.
7.1. Условный экстремум при ограничениях типа равенств 137 Пусть Xj = -1, тогда х2 = 0, .г, = ±1. Пусть X, = 1, тогда х, =0, х2 = ±1. Других решений система не имеет. Таким образом, имеем четыре ус- ловно стационарные точки А : = 1, х2 =0, X, = -1; В : л* - -1, х2 =0, XJ = -1; С : х’ = 0, х2 = t -1; D : х* = 0, х2 = -1, XJ = 1. 4. Проверим достаточные условия экстремума a) d2Z(x, XJ) = 2(1 + X;)dx2 +2(XJ -l)dv2; 6) dg/x*) = 2x*dx, + 2x2dv, = 0; в, г) исследуем точку A. dg, (Л) = 2di'! = 0, откуда получаем dr, = 0 и d2Z(d) = -4dx2 < 0, если dx2 Ф 0. Поэтому в точке А регулярный ло- кальный условный максимум. Исследуем точку В. dg,(B) = -2dxj = 0, откуда dX]=0 и d2Z(B) = -4dx2 <0 при dx, ^0. Поэтому в точке В регулярный ло- кальный условный максимум. Исследуем точку С. dg/C) = 2dx, = 0, откуда dx,=0 и d2L(C) = 4dx2 >0 при dr, ^0. Поэтому в точке С регулярный ло- кальный условный минимум. Исследуем точку D. dg{(D) = -2dv2 =0, откуда dv2=0 и d2L(D) = 4dx2 >0 при dr, ^0. Поэтому в точке D регулярный ло- кальный условный минимум. 5. Вычислим значения функции в точках условного экстремума /(Л) =/(В) = 1;/(С) = /(£)) = -!. . Графическое решение задачи представлено на рис. 7.5. Рис. 75. Графическое решение задачи из примера 7.6
138 Глава 7.Условный экстремум функции многих... Пример 7.7, Найти условный экстремум в задаче /(*) = |[<Л -1)2 + *2] -> extr, g,(x) = -x,+ax2=0 при различных a > 0. □ Проверим условие регулярности. Так как Vg,(x) = (-1, 2ах2)г *0 ни в одной точке множества (7, то условие выполняется. Поэтому вос- пользуемся классической функцией Лагранжа. 1. Составим функцию Лагранжа Ц*Л)=|[(*1 -l)2+*2]+3ti(-xi +a*2)- 2. Запишем необходимые условия экстремума первого порядка: ч Э£(хД.) . . л Э£(хД.) о п а) — ---— = х,-1-Х, =0, — ----— = х2 + 2аХ,х2 =0; Эх, Эх2 б) g1(x) = -x,+ax2 =0. 3. Из второго уравнения следует x2(l + 2ak,) = 0. Если х2 =0, то л . 1 < л 4 1 2а-1 х, =0, а л. =-1. Если л. =-, то х. =1 + л. =1- — = —— и при 11 1 2а 1 1 2а 2а 2а-1 ЭТОМ Xn =±J---т- . 2 у 2а2 1 При 0<а<— решения не существует. Таким образом, имеются три условно стационарные точки (рис.7.6) А: х* =0, х2 =0, X, =-1; D * 2a-l 2а-1 В: х. =----, х7 =-----5-, л, 1 2a 2 V 2a2 1 г . _2a-l _ /2а—1 .. С; х,- 2а , хг- 2a? , л, 1 . 2а’ 1 2а 4. Проверим достаточные условия экстремума: а) d2£(x*, XJ) = dx,2+(l + 2ak,)dx2; б) dg,(x*) = -dx, +2ax2dr2 =0; в) выразим из последнего пункта dx,: dx, = 2ax2dx2; г) d2L(x*, X*) = ((4ar2)2+(l + 2aX*))dx2. Исследуем точку A. d2L(x*, XJ) = (l-2a)dx2.
7.1. Условный экстремум при ограничениях типа равенств 139 При 0<a<-i получаем, что d2Z(x* Xj)>0 при dx2^0 и в точке А условный локальный минимум. При а>-^ находим, что d2Z(x*, Х*)<0 при dr2 ^0 ив точке А условный локальный максимум. При а=-^ получаем, что J2L(.r* XJ ) = 0 при любых dx2 и требуется дополнительное исследование. Для этого воспользуемся методом исключения переменных, 1 2 Выразим из уравнения ограничения одну из координат =—х2. Подставим полученное выражение в целевую функцию 1 4 1 , 1 —Ху +-х;+~. 8 2 2 2 2 Исследуем полученную функцию на безусловный экстремум. -Т^- = ^х2 +х2 = 0, отсюда х2 = 0 — стационарная точка. В этой точке dx2 2 /(*)=| (|г2-1)2+х2 Рис. 7.6. Иллюстрация к решению задачи из примера 7.7
140 Глава 7. Условный экстремум функции многих.. первая отличная от нуля производная /(4)(х*) = 3 > 0 является четной и положительной. Следовательно, в точке х\ локальный минимум. |(*;)2=о С учетом связи х* получаем, что в точке х* = (0, 0)г условный локальный минимум. ^2“dx22 = 8(2а - l)dx2. Рассмотрим точки В и С. d2L(x* ) = 16а2 1 а=— имеем х. 2 1 При х2=0 и d2£(x*, XJ) = O при всех dx2. Значит, требуется дополнительное исследование, которое уже было выполнено. При а> — имеем d2L(x\ XJ)>0 при dx2^0 и в точках В и С условный локальный минимум. 5. Значение функции в точках экстремума ЛЛ)=1 /(В)=/(С)=^Ц1.. 2 8а2 Иллюстрация к решению задачи представлена на рис. 7.6. 7.2. Условный экстремум при ограничениях типа неравенств Пусть требуется исследовать функцию /(х) на экстре- мум, т.е. определить точки х*ё U ее локальных минимумов и максимумов /(x’) = min/(x), /(x’) = max/(x), (7.11) re U xeU v ' где U = {г: (х) <0, j -1,... тп^. Рассмотрим условный экс- тремум с ограничениями типа неравенств. Стратегия решения задачи Находятся точки х* локального экстремума с помощью необходимых и достаточных условий минимума и максимума первого и второго порядка при ограничениях типа неравенств. Вычисляются значения /(х*) в найденных точках локального экстремума. Необходимые условия минимума (максимума) первого порядка. Пусть х* — точка локального минимума (максиму- ма) в задаче (7.11). Тогда найдется такое число > 0 и вектор
72. Условный экстремум при ограничениях типа неравенств 141 X* = (X*,... х;„)7, не равные одновременно нулю и такие, что выполняются следующие условия: — стационарности обобщенной функции Лагранжа по х ; = (7.12а) dxt — допустимости решения g,(x')<0, j = (7.126) — неотрицательности для условного минимума Х*>0, j = l,...m (7.12в) (условие неположительности для условного максимума Х*<0, ; = ту, 4 — дополняющей нежесткости х;«7(х’) = о, j = (7.12г) Если при этом градиенты активных (т.е. gj (х*) = 0) в точке х* ограничений линейно независимы (выполняется условие регулярности), то XJ 0. Точки х*, удовлетворяющие системе (7.12), называются условно стационарными. Необходимо обратить внимание на следующее. 1. В отличие от ограничений типа равенств необходимые условия экстремума первого порядка формулируются отде- льно для максимума и минимума. Эти условия впервые были доказаны Куном и Таккером. 2. Если в задаче ограничения записаны в форме gy(x*) > 0, то их необходимо переписать как -g.(x*)<0 (7.12). Обозначим через Ja множество индексов ограничений, активных в точке х*. 3. При Xq^O необходимые условия минимума (мак- симума) первого порядка для выпуклых функций /(x),g;(x), J = l,... т, 7 = 1.- т) будут од- повременно и достаточными условиями глобального мини- мума (глобального максимума). 4. Из условия дополняющей нежесткости следует, что если ограничение в точке х* пассивное, т.е. g;(x*)<0, то X* = 0, а если активное, т.е. g7(xx) = 0, то X* >0 (для минимума) и Х* <0 (для максимума).
142 Глава 7. Условный экстремум функции многих... Достаточные условия минимума (максимума) первого порядка. Пусть имеется точка (х‘, Л’), удовлетворяющая системе (7.12) при Х„ *0, число активных ограничений в точке х* совпадает с числом п переменных (при этом условие регулярности выполняется). Если X* >0 для всех je Ja, то х* — точка условного локального минимума. Если X* < 0 для всех j е Ja, то х* — точка условного локального максимума в задаче (7.11). Необходимые условия минимума (максимума) второго порядка. Пусть х* — точка локального минимума (максимума) в задаче (7.11) и имеется решение (х*, Х‘) системы (7.12). Тогда второй дифференциал классической функции Лагранжа, вычис- ленный в точке (х* X’), неотрицателен (неположителен) d2Z(x‘, Х‘)>0 (d2£(x’, Х’)<0) (7.13) для всех dx таких, что dgy(*‘) = £дё^Х dx, = 0. 7 е Л, Х‘>0 (Х’<0); ,=1 oXj dgy(x‘)^0, jeja, Х’=0. Достаточные условия минимума (максимума) второго порядка. Пусть имеется точка (х*, X’), удовлетворяющая системе (7.12) при XJ #0. Если в этой точке d2£(x‘, Х’)>0 (d2£(x‘, X*) < 0) для всех ненулевых dx таких, что dg>(x,) = X-^-^dx,.=0, jeja, Х’>0 (Х*<0); uXj dgy(x’)^0, jeja, X’=0, то x’ — точка локального минимума (максимума) в задаче (7.П). Алгоритм решения задачи. Шаг 1. Составить обобщенную функцию Лагранжа Z(x, Хо, X) = Хо /(х) + ХМ; (х>- ;=1 Шаг 2. Записать необходимые условия минимума (мак- симума) первого порядка:
12. Условный экстремум при ограничениях типа неравенств 143 п\ а) i-l,...и; 6)g (x')<0, dxj J в) X*>0, j = l,...m (для минимума), X*<0, j = l,...m (для максимума); r)\gy(x*) = 0, j = m. Шаг 3. Решить систему для двух случаев 1>х;=0; 2) Xq ф 0 (при этом поделить условия, записанные на шаге 2, X* на X* и заменить на )• В результате найти условно стационарные точки х*, вы- делив из них полученные при А,* 0 (они могут быть регу- лярными точками экстремума). В каждом из двух случаев следует начинать с рассмотрения 2т вариантов удовлетворения условия «г» — дополняющей нежесткости. Шаг 4. Для выделенных на шаге 3 точек проверить достаточные условия экстремума первого или второго порядка. Для проверки достаточных условий первого порядка следует: а) определить число I активных в точке х* ограничений; б) если I = п и А,* > 0 для всех j g Ja, то в точке х* локаль- ный минимум; если I = п и А,* < 0 для всех j е Ja, то в точке х* локальный максимум. Если I < п или соответствующие множители Лагранжа не удовлетворяют достаточным усло- виям первого порядка, то проверить достаточные условия второго порядка. Для проверки достаточных условий второго порядка следует: а) записать выражение для второго дифференциала клас- сической функции Лагранжа в точке (х* X*) j2 г/ * 1 *\ V V Э2Х(х, X ) . j
144 Глава IУсловный экстремум функции многих... б) записать условия, накладываемые на первые диффе- ренциалы активных ограничений dg/x‘) = =°> j G Л; К > 0 СК < °); (7.14) /=j uXj П dg;(x’) = X—4—-dx,£0, jeja; Х’=0; ,sl ox. в) исследовать знак второго дифференциала функции Лагранжа для ненулевых dx, удовлетворяющих системе (7.14). Если d2Z(x*, Х*)>0, то в точке х* условный локаль- ный минимум. Если d2£(x* Х*)<0, то в точке х* условный локальный максимум. Если достаточные условия первого и второго порядка не выполняются, следует проверить выполнение необходимых условий второго порядка, следуя аналогичной процеду- ре. Если они выполняются, то требуется дополнительное исследование, а если нет, то в точке х* нет условного экс- тремума. Шаг 5. Вычислить значения функции в точках условного экстремума. Условия экстремума в исходной задаче (7.11) приведены в табл. 7.2. и 7.3. Таблица 7.2 Необходимые и достаточные условия первого порядка в задаче поиска условного экстремума при ограничениях типа неравенств Необходимые условия первого порядка Достаточные условия первого порядка (Х‘ * 0) № v.Kx-, j -1,... т j' = 1, т х;>о, Х‘,у = 1, т Число 1 х;, je J. Тип условно- стационарной точки л* 1 0 <0 >0 п >0 условный локальный минимум 2 0 <0 SO п <0 условный локальный максимум
72. Условный экстремум при ограничениях типа неравенств 145 Таблица 73. Необходимые и достаточные условия второго порядка в задаче поиска условного экстремума при ограничениях типа неравенств № d2£(x’, X’) dgy(x’), л л. х;>о dg/x’), х;.<о dgy(x’). X’=0 Тип условно стационар- ной точки х‘ 1 >0 0, dx*0 — <0 условный локальный минимум 2 <0 — 0, dx*0 <0 условный локальный максимум 3 >0 ’ 0 <0 может быть локальный минимум, требуется дополни- тельное исследование 4 <0 — 0 <0 может быть локаль- ный максимум, требуется дополни- тельное исследование 5 = 0 0 — <0 требуется дополни- тельное исследование 6 = 0 — 0 <0 требуется дополни- тельное исследование 7 >0,<0 0 — <0 нет экстремума 8 >0,<0 — 0 <0 нет экстремума Пример 7.8. Найти условный экстремум f (х) = xf +х2 -> extr, g,(x) = x,+x2-2<0. □ 1. Составим обобщенную функцию Лагранжа £(г, Хо , X,) = Х0(х,2 + х2)+Xt(x, + х2 - 2). 2. Выпишем необходимые условия экстремума первого порядка а) = 2ХЛ + X, = О, д£(х,Х0,Х,) = 2Хох2 + X, = 0; ах, дх2
146 Глава 7. Условный экстремум функции многих... б) Х]+х2-2<0; в) Xt > О (для минимума), Xt<0 (для максимума); г) Х/х, + х2 -2) = 0. 3. Решим систему для двух случаев. В первом случае Хо =0. Тогда из условия «а» следует, что Xj =0. Это противоречит требованию существования ненулевого вектора Во втором случае Хо * 0. Поделим систему на Хо и заменим —L на Хг Ч Обобщенная функция Лагранжа при этом заменяется классической а) Э£^А1)=2Х1+х =0 Э£(х,Х,)=2^+х =0; Эх, ах2 б) х{ + х2-2<0; в) Xj > 0 (для минимума), Xt < 0 (для максимума); г) Х1(х1+х2-2) = 0. Из условия «г» дополняющей нежесткости следует: 1) X! = 0 (фактически решается задача поиска безусловного экст- ремума). Тогда х* = х2 = 0, X* = 0 и условие «б» выполняется. Выпол- няются необходимые условия и для минимума, и для максимума; 2) Xj *0. Тогда из системы х,+х2-2 = 0, 2х1+Х1=0, 2х2+Х!=0 получаехМ х* = х2 =1, XJ = -2. Так как X* < 0, то необходимое условие минимума не выполняется (в точке (1, 1)г нет минимума), но выпол- няется необходимое условие максимума. Таким образом, имеем две условно стационарные точки. 4. Проверим выполнение достаточных условий экстремума. В точке х* =(0, 0/ ограничение не является активным, так как gj(x) = -2<0, поэтому достаточные условия первого порядка не удовлетворяются. Проверим условия второго порядка. Так как d2£(x*, X*) = 2dx2 + 2dx2 >0 при dx^O, то в точке х*=(0, 0)г регу- лярный локальный условный минимум, совпадающий в данной задаче с безусловным. В точке х* = (1, 1)г ограничение является активным, но I = 1 < п = 2, поэтому достаточное условие первого порядка не выполняется. Про- верим достаточное условие второго порядка. d2£(x* X‘) = 2dx2 +2dx2, dgj (x*) = dxt + dx2 = 0, откуда dXj = -dx2.
72. Условный экстремум при ограничениях типа неравенств 147 Следовательно, d2Z(x*, X*) = 4dx2 > 0 при dx2 * 0. Так как в этой точке X* =-2<0, то достаточное условие максимума не выполня- ется. Проверим достаточное условие максимума второго поряд- ка. Так как d2Z(x* X*) = 4dr2 >0 при любых dx2, то необходимое условие максимума не выполняется, поэтому в точке х*=(1, 1)г максимума нет. 5. Вычислим значение функции в точке условного минимума /(х ) = 0 (рис.7.7).. Рис. 7.7. Иллюстрация к решению задачи из примера 7.8 Пример 7.9. Найти условный экстремум в задаче f(х) = Х| + х2 -» extr, g,(x) = x,2+r2-l<0. □ 1. Составим обобщенную функцию Лагранжа Z(x, Хо, Xj) = X0(Xj +х2) + Х1(х1 + х2 —1). 2. Выпишем необходимые условия первого порядка: а) = хо + 2ХЛ = 0, = Хо + 2Х,л-2 = 0; dXj дх2 б) х2+х2-1<0;
148 Глава 7. Условный экстремум функции многих.. . в) Xt>0 (для минимума), Х,<0 (для максимума); г) Х1(х2+х2-1) = 0. 3. Решим задачу для двух случаев. В первом случае Хо =0. Тогда согласно необходимым условиям экс- тремума первого порядка требуется, чтобы X, Ф 0. При этом Xj = х2 =0 и не удовлетворяется условие «г» дополняющей нежесткости. Во втором случае Хо ^0. Поделим уравнения на Хо и заменим ч на X,: а) Э£(л'-х.) = 1 + 21|Л-1=о о х । б) х2 +х2-1<0; в) Х,>0 (для минимума), г) Х/х2+х2-1) = 0. Э/.(?Л>=1+2Х,д-г=0; X, < 0 (для максимума); Из условия «г» дополняющей нежесткости следует два варианта: 1) Xj =0. Тогда условие «а» не выполняется. 2) Xj Ф 0. Тогда х2 + х2 -1 = 0 и система имеет два решения (рис. 7.8) 72 Ф 72 точка А: xj = х2 =—XJ = — (в точке А может быть минимум); 72 «. 72 точка В : Xj = х2 =—, X* =—— (в точке В может быть максимум). 4. Проверим достаточные условия экстремума. В точках А и В огра- ничения являются активными, но I = 1 < п = 2. Поэтому условия первого порядка не выполняются. Проверим условия второго порядка: d2L(x*, X;) = 2X;±r2+2X;dx2. dgj (х’) = 2x1*dxl + 2x2dx2 = 0. В точках Л и В выполняется dx{=-dx2. Так как d2L(/4) = 4XJdx22 = 272dx2 > 0 при dx2 Ф 0, то в точке А регулярный локальный условный минимум. Так как d2Z(B) = 4XJdx2 = -272dx2 < 0 при dx2 ф 0 , то в точке В регулярный локальный условный максимум. С другой стороны, функции f (х) и -/(х) = -х, -х2 — выпуклые и ог- раничение выпуклое, поэтому в точках А и В достигается глобальный экстремум. Достаточные условия первого и второго порядка проверялись для демонстрации методики. 5. Вычислим значение целевой функции в точках условного экстре- шума: f(A) = -V2, = (рис. 7.8).
72. Условный экстремум при ограничениях типа неравенств 149 Рис. 7.8. Иллюстрация к решению задачи из примера 7.9 Пример 7.10. Найти условный экстремум f (х) = (xi ” 2)2 + (х2 - З)2 -> extr, . g,(x) = x2f+x2-52^0. □ 1. Составим обобщенную функцию Лагранжа L(x, Хо, Х,)=Х0((х, -2)2 + (х2 -3)2)+Х,(х? + х2 -52).. 2. Выпишем необходимые условия первого порядка: а) =2Х0(х, -2)+2Х,х, =0, дх, = 2Х0(х2 - 3)+2\х2 = 0; дх2 6) х2+х2-52<0; в) X, >0 (для минимума), X, <0 (для максимума); г) Х,(х2 + х2-52) = 0. 3. Решим задачу для двух случаев. В первом случае Хо = 0. Тогда согласно необходимым условиям экс- тремума первого порядка требуется, чтобы X, *0. При этом х, = х2 = 0 11 не выполняется условие «г» дополняющей нежесткости.
150 Глава 7. Условный экстремум функции многих.. Во втором случае Хо ^0. Поделим уравнения на Хо и заменим —L на А. Ч 1 а) Э Ц.гAt) = _ 2) 2Х = 0 Э1(хД) = _3)4_2Х Х2 =0. о л । о л п б) х2+х2-52<0; в) Х,>0 (для минимума), Х,<0 (для максимума); г) Xt(x2+ х22-52) = 0. Из условия «г» следуют два варианта: 1) Xj = 0. Тогда xt = 2, х2 = 3 и выполняются необходимые условия и для минимума, и для максимума. Имеем условно стационарную точку А: х*=2,х2=3, XJ=O; 2) X, Ф 0. Тогда х2 + х2 -52 = 0 и система имеет решение: точка В: х* 4, х2 = 6, X* 1 г * —; точка С : х. 2 1 -4, х2 = -6, X* 3 2’ Так как X* < 0 в обеих точках, то в них минимума нет, но может быть максимум. 4. Проверим достаточные условия экстремума. В обеих условно ста- ционарных точках ограничение превращается в равенство, т.е. активно. Так как число активных ограничений I = 1 < 2 = п, то условия первого порядка не выполняются. Так как функция - f (х) = -(Xj - 2)2 - (х2 - З)2 не является выпуклой, то необходимые условия не являются достаточ- ными. Поэтому проверим условия второго порядка d2Z(x* Д;) = (2+2XJ )dx2 + (2 + 2XJ )dx2. В точке А ограничение не является активным. Так как X* = 0, то d2Z(x*, Xj) = 2dx2 +2dx2 > 0 при dx Ф 0. Поэтому в точке А условный локальный минимум. Так как целевая функция выпуклая и множество допустимых значений выпукло, то можно заключить, что в данном случае необходимое условие минимума является достаточным. В точке А глобальный минимум. В точках В и С ограничение активно. Поэтому dg/x*) = 2x*dx, +2x2dx2 = 0. В точках В и С выполняется dx. dx2- 2 Так как d2Z(B) = + dx2>0 при dx2*0, a —5-<0, ТО 2 достаточные условия максимума не выполняются. Так как d2£(B) £ 0 при всех dx2, то и необходимое условие максимума второго порядка в точке В не выполняется. Поэтому в ней нет экстремума. Так как
Вопросы и задания для самоконтроля 151 3 Т d2£(C) = - (-|)dx2 -dxj <0 при dx2 *0, то достаточные условия максимума выполняются. В точке С условный локальный максимум. 5. Вычислим значения функций в точках экстремума /(Л) = 0,/(0 = 117. Графическое решение задачи приведено на рис.7.9. Рис. 7.9. Графическое решение задачи из примера 7.10 Вопросы и задания для самоконтроля 1. Что называется обобщенной (классической) функцией Лаг- ранжа задачи условного экстремума? 2. Что называется градиентом обобщенной (классической) фун- кции Лагранжа? 3. Что называется вторым дифференциалом обобщенной (клас- сической) функции Лагранжа? 4. Что называется первым дифференциалом ограничения 5. Когда ограничение g;(x)<0 называется активным в точ- ке х*?
152 Глава 7. Условный экстремум функции многих... 6. Когда ограничение g (х)<0 называется пассивным в точке ♦ о J X ? 7. При каких условиях градиенты ограничений g/x),... gm(x) называются линейно зависимыми в точке х*, линейно независи- мыми в точке х*? 8. Сформулировать необходимые условия экстремума первого порядка с ограничениями типа равенств. 9. Какие точки х* называются условно стационарными в задаче экстремума с ограничениями типа равенств? 10. Какие точки экстремума х* называются регулярными, а какие — нерегулярными при ограничениях типа равенств? 11. В каком случае антиградиент целевой функции является линейной комбинацией градиентов ограничений? 12. Сформулировать необходимые условия экстремума второго порядка; достаточные условия экстремума в случае ограничений типа равенств. 13. В каких точках х* проверяются необходимые условия вто- рого порядка и достаточные условия в случае ограничений типа равенств? 14. Сформулировать алгоритм решения задачи нахождения экстремума в случае ограничений типа равенств. 15. Сформулировать необходимые условия минимума (макси- мума) первого порядка с ограничениями типа неравенств. 16. В каком случае необходимые условия минимума (мак- симума) первого порядка с ограничениями типа неравенств яв- ляются одновременно и достаточными условиями минимума (максимума)? 17. Сформулировать достаточные условия минимума (макси- мума) первого порядка в случае ограничений типа неравенств. 18. Сформулировать необходимое условие минимума (макси- мума) второго порядка в случае ограничений типа неравенств. 19. Сформулировать достаточные условия экстремума второго порядка в случае ограничений типа неравенств. 20. Сформулировать алгоритм решения задачи нахождения экстремума в случае ограничений типа неравенств.
Глава 8 ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ 8.1. Определения. Примеры задач линейного программирования Линейное программирование — математическая дисциплина, посвященная теории и методам решения задач об экстремумах линейных функций на множествах, задаваемых системами линейных неравенств и равенств. Линейное программирование стало развиваться в первую очередь в связи с решением задач экономики, с поиском способов оптимального распределения и использования ресурсов. Оно послужило основой широкого использования математических методов в этой сфере. Следует подчеркнуть, что в реальных экономических за- дачах число независимых переменных обычно бывает очень большим (тысячи, десятки тысяч). Поэтому практическая реализация алгоритмов их решения принципиально невоз- можна без современной вычислительной техники. Пример 8.1. Для изготовления трех видов сплавов А, В и С исполь- зуется медь, олово п цинк. Данные о сплавах приведены в табл. 8.1. В ней же указано общее количество металла каждого типа, а также стоимость реализации одного кг сплава каждого типа. Таблица 8.1 Процентное содержание и общая масса компонентов Компоненты сплава Содержание компонентов в % Общая масса данной компоненты сплава, т. А В С Медь 20 10 30 120 Олово 10 80 60 280 Цинк 70 10 10 240 Стоимость 1кг. 10 14 12 —
154 Глава 8» Линейное программирование Требуется определить, какое количество сплавов каждого вида следует изготовить предприятию, чтобы стоимость продукции была максимальной. □ Предположим, что будет изготовлено хх кг сплава Л, х2 кг сплава В и х3 кг сплава С. Тогда для производства такого количества сплавов потребуется затратить 2 Ох, + 10х2 + ЗОх3 кг меди. Так как общая масса меди не может превышать 120 т, то должно выполняться неравенство 20х, + 10х2 + ЗОх3 < 120 000. Аналогичные рассуждения относительно возможности использо- вания олова и цинка приведут к неравенствам 10х, +80х2 +60х3 < 280 000, 70х, + 10х2 + 10х3 < 240 000. При этом так как масса сплавов не может быть отрицательной, то х, >0, х2 > 0, х3 > 0. (8.1) Если будет изготовлено х, кг сплава А, х2 кг сплава В и х3 кг сплава С, то стоимость продукции составит F = 10х, +14х2 +12х3. Таким образом, приходим к следующей математической задаче. Дана система 20xt +40х2 +50х3 <120 000 - Юх, +80х2 +60х3 < 280 000 (8.2) 70xt +10х2 + 10х3 < 240 000 из четырех линейных неравенств (8.1)—(8.2) с тремя неизвестными и линейная функция относительно этих же переменных F = 10х, +14х2 +12х3. (8.3) Требуется среди всех неотрицательных решений системы неравенств (8.2) найти такое, при котором функция (8.3) принимает максимальное значение. Так как функция (8.3) линейная, а система (8.2) содержит только линейные неравенства, то задача (8.1)—(8.3) является задачей линей- ного программирования. Пример 8.2. Продукцией молочного завода являются молоко, кефир и сметана. На производство 1 т молока, кефира и сметаны требуется соответственно 1010, 1010 и 9450 кг молока. При этом затраты рабочего времени при разливе 1 т молока и кефира состав- ляют 0,18 и 0,19 машино-часов. На расфасовке 1 т сметаны заняты специальные автоматы, работающие в течение 3,25 ч. Всего для произ- водства цельномолочной продукции завод может использовать 136 т молока. Основное оборудование может быть занято в течение 21,4
81 Определения Примеры задач линейного программирования 155 машино-часа, а автоматы по расфасовке сметаны — в течение 16,25 ч. Прибыль от реализации 1 т молока, кефира и сметаны соответс- твенно равна 30 000, 26 000 и 150 000 руб. Завод должен ежедневно производить не менее 100 т молока, расфасованного в пакеты. Тре- буется определить, какую продукцию и в каком количестве следует ежедневно изготовлять заводу, чтобы прибыль от ее реализации была максимальной. □ Предположим, что молочный завод будет ежедневно произво- дить х, тонн молока, х2 тонн кефира и х3 тонн сметаны. Тогда для производства этой продукции необходимо 1010Xj + 1010х2 +9450х3 кг молока. Так как завод может использовать ежедневно не более 136 000 кг молока, то должно выполняться неравенство 1010^+1010x2+9450x3 <136 000. Аналогичные рассуждения, проведенные относительно возможного использования линий разлива цельномолочной продукции и автоматов по расфасовке сметаны, позволяют записать неравенства 0,18х,+0,19х2 <21,4 З,25х3< 16,25. Так как ежедневно должно вырабатываться не менее 100т молока, то х, > 100. По своему экономическому смыслу переменные х2 и х3 могут при- нимать лишь неотрицательные значения х2 > 0, х3 > 0. Общая прибыль от реализации х, тонн молока, х2 тонн кефира и х3 тонн сметаны равна 30 000xt +22 000х, +150 000х3 руб. Таким образом, приходим к следующей задаче. Дана система IOIOxj +1010х2 +9450х3 <136 000 0,18х, + 0,19х2 <21,4 З,25х3 <16,25 xt>100, х2>0, х3>0 (8-4) из четырех линейных неравенств и линейная функция относительно переменных хр х2 и х3 F = 30 000Xj +22 000х2 +150 000х3. (8.5) Так как система (8.4) представляет собой систему линейных не- равенств и функция (8.5) линейная, то эта задача является задачей линейного программирования.
156 Глава 8. Линейное программирование 8.2. Общая и каноническая задачи линейного программирования Выше были рассмотрены примеры постановки задач линейного программирования. Во всех из них требова- лось найти максимум линейной функции при условии, что ее переменные принимали неотрицательные значения и удовлетворяли некоторой системе линейных уравнений или неравенств либо системе, содержащей как линейные уравнения, так и неравенства. Каждая из этих задач явля- ется частным случаем общей задачи линейного програм- мирования. Определение. Общей (основной) задачей линейного программирования называется задача, которая состоит в определении максимального (минимального) значения функции Г = £СЛ (8.6) 7=1 при выполнении условий (i = l,...A) (8.7) У.OyXj = b; (i = k+l,...m) (8.8) 7=1 ху>0 (j = l,.../;/< и) (8.9) где а,у, bj и су — заданные постоянные величины и k < т. Определение. Функция (8.6) называется целевой функцией задачи (8.6)—(8.9), а условия (8.7)—(8.9) — ограничениями данной задачи. Определение. Канонической задачей линейного програм- мирования называется задача, которая состоит в определении максимального значения функции (8.6) при выполнении условий (8.8) и (8.9), где k = Q и 1 = п. Определение. Вектор X = (х,, х2,... х„)Т, удовлетворяющий ограничениям задачи (8.7)—(8.9), называется допустимым решением, или планом.
82. Общая и каноническая задачи линейного программирования 157 Определение. План X* = (х*, х*2,... х* )г, при котором целе- вая функция принимает свое максимальное (минимальное) значение, называется оптимальным. Чтобы перейти от одной формы записи задачи линейного программирования к другой, нужно в обще^м случае уметь, во- первых, сводить задачу минимизации функции к задаче мак- симизации; во-вторых, переходить от ограничений-неравенств к ограничениям-равенствам; в-третьих, заменять переменные, которые не подчинены условиях! неотрицательности. В том случае, когда требуется найти минимум функции F = схх{ + с2х2 +... + спхп, можно перейти к нахождению мак- симума функции F{=-F = -CjXj -с2х2 спхп, поскольку min F = max(-F). Нестрогое ограничение-неравенство общей задачи линей- ного программирования можно преобразовать в ограничение- равенство добавлением к его левой части дополнительной неотрицательной переменной. Таким образом, ограничение- неравенство + ai2x2 + ...+ ainxn <bi преобразуется в ограничение-равенство апх, + ai2x2 + ...+ ainx„ + х„+1 = Z>,, х„+1 >О, а ограничение-неравенство а^+а12х2+... + аь,х„>^ преобразуется в ограничение-равенство + ai2x2 +... + ainxn — xz/+1 = fe., xn+1 > 0. Вводимые дополнительные переменные имеют вполне определенный смысл в рамках решения экономических задач. Так, если в ограничениях исходной задачи линейного програм- мирования отражается расход и наличие производственных ресурсов, то числовое значение дополнительной переменной в плане задачи, как это будет показано в дальнейших примерах, равно объему неиспользуемого соответствующего ресурса. Наконец, если переменная xk по условию задачи отри- цательна, то ее следует заменить двумя неотрицательными переменными щ и vk, приняв xk = uk-vk. Пример 83. Записать в форме канонической задачи линей- ного программирования задачу нахождения максимума функции F = 3Xj ~2х2 -5х4 +х5 при условиях
158 Глава 8. Линейное программирование 2х{ +х3-х4 + х5 <2, Xj - х3 + 2х4 + х5 < 3, 2х, + х3 - х4 + 2х5 < 6, х4 + ...+х4 +5х5 > 8, х|,х2,х3,х4,х5 >0 Для записи в форме канонической задачи нужно перейти от ограничений- неравенств к ограничениям-равенствам. Этот переход может быть осущест- влен введением четырех дополнительных неотрицательных переменных. При этом к левым частям каждого неравенства вида « < » соответствующая переменная прибавляется, а из левых частей каждого из неравенства вида « > » вычитается. В результате получается следующая каноническая задач а: максимизировать функцию F = Зх, - 2х2 + 5х3 + х5 при условиях 2х{ + х3 - х4 +х5 +х6 = 2, Xj -х3 +2х4 +х5 +х7 = 3, 2Xj +х3 -х4 +2х5 +х8 = 6, Xj + ...+х4 +5х5-х9 =8, Хр...х9 >0. 8.3. Геометрическое истолкование задач линейного программирования Определение. Непустое множество планов общей (ос- новной) задачи линейного программирования называется многогранником решений. Свойство. Если основная задача линейного программи- рования имеет оптимальный план, то максимальное значение целевая функция принимает в одной из вершин многогран- ника решений. Вершину многогранника решений, в которой целевая фун- кция принимает максимальное значение, найти не сложно, если задача содержит не более двух переменных (в общем случае задача, записанная в основной форме, содержит не более двух свободных переменных, то есть п-г < 2, где п — число переменных, г — ранг матрицы, составленной из ко- эффициентов в системе ограничений задачи). Найдем решение задачи, состоящей в определении мак- симального значения функции F = с1х1 + с2х2 (8. Ю) при условиях
8.3. Геометрическое истолкование задач линейного программирования 159 аиХ\ +^»2Х2 i = l,...£ (8.11) хрх2>0. (8.12) Каждое из неравенств (8.11), (8.12) геометрически опреде- ляет полуплоскость соответственно с граничными прямыми aixxx + ai2x2 = bp i = 1,... k, xl = 0, x2 = 0. Областью решений системы является множество точек, принадлежащих всем полуплоскостям, называемое в двумерном случае много- угольником решений. Исходная задача линейного программирования состоит в нахождении вершины многоугольника решений, в которой целевая функция (8.10) принимает максимальное значение. Такая вершина существует тогда, когда многоугольник ре- шений не пуст и на нем целевая функция ограничена сверху. Для определения этой вершины построим линию уровня qx, +с2х2 = Л, проходящую через многоугольник решений, и будем перемещать ее в направлении вектора С = (ср с2), орто- гонального ей, до тех пор пока она не пройдет через послед- нюю общую точку с многоугольником решений. Координаты этой точки и определяют оптимальный план задачи. Отметим, что нахождение минимального значения линейной функции при данной системе ограничений отличается от нахож- дения ее максимального значения при тех же ограничениях лишь тем, что линия уровня с{хх + с2х2 = h перемещается не в направ- лении вектора С = (ср с2), а в противоположном направлении. Пример 8.4. Для изготовления двух видов изделий А и В предпри- ятие использует три вида сырья. Нормы расхода каждого вида сырья на изготовление единицы продукции данного вида приведены в табл. 8.2. Таблица 8.2 Нормы затрат и общее количество сырья в задаче 1 Вид сырья Нормы затрат сырья на одно изделие Общее количество сырья А В I 12 4 300 II 4 4 120 III 3 12 252 Прибыль от реа- лизации изделия 30 40 — Требуется определить такой план выпуска, при котором прибыль пред- приятия от реализации совокупности изделий будет максимальной.
160 Глава 8. Линейное программирование □ Предположим, что предприятие изготовит xt единиц изделий вида Л, х2 единиц изделий вида В. Так как производство продукции ограничено сырьем каждого вида и количество изделий не может быть отрицательным, должны выполняться неравенства 12х, + 4х2 <300, ’ 4х1+4х2<120, Зх,+12х2 <252, хрх2 >0. Общая прибыль от реализации всей продукции составит F = 30х1 +40х2. Найдем решение данной задачи, используя ее геометрическую ин- терпретацию. Сначала определим многоугольник решений. Для этого в неравенствах системы ограничений и условиях неотрицательности переменных следует заменить знаки неравенств знаками точных ра- венств и найти соответствующие прямые. Эти прямые изображены на рис.8.1. Каждая из прямых делит плоскость (хр х2) на две полуплоскости. Координаты точек одной полуплоскости удовлетворяют исходному неравенству, а координаты другой — нет. Пересечение полученных полуплоскостей определяет многоугольник решений данной задачи.
8.3. Геометрическое истолкование задач линейного программирования 161 Из рис. 8.1 следует, что многоугольником решений является пяти- угольник OABCD. Задача будет решена, если найдется точка, прина- длежащая пятиугольнику OABCD, в которой функция F = 30х, + 40х2 принимает максимальное значение. Для определения этой точки пост- роим вектор С = (30; 40) и прямую ЗОх, + 40х2 = h , где h — некоторое число, при котором прямая имеет общие точки с многоугольником реше- ний. Положим, например, h - 480 и построим прямую 30rt +40х2 = 480 (см. рис. 8.1). Координаты любой точки, принадлежащей построенной прямой и многоугольнику решений, определяют допустимое решение (план производства изделий), при котором значение целевой функции равно 480. При увеличении значения h будут получаться парал- лельные прямые, соответствующие прибыли от реализации более 480 единиц. Последней общей точкой прямой с многоугольником решений является точка В. Ее координаты определяют план выпуска изделий, при котором прибыль от его реализации является максимальной, и удовлетворяют уравнениям прямых (4Xi+4x2 =120, [ 3xt+ 12х2 =252. Решив эту систему, получим х, = 12, х2 = 18. Следовательно, если предприятие изготовит 12 изделий вида Л и 18 вида В, то оно получит мака 1мальную прибыль F = 30 12 + 40 18 = 1080. Пример 8.5» Найти минимум и максимум функции F = х{ +х2 при условиях 2Xj+4x2 <16, < -4х{ +2х2 <8, Xi + Зх2 > 9, хрх2 >0. □ Построим многоугольник решений. Для этого в неравенствах системы ограничений и в условиях неотрицательности переменных следует заменить знаки неравенств знаками точных равенств. Постро- ив полученные прямые, найдем соответствующие полуплоскости и их пересечение (рис. 8.2). Из рис. 8.2 следует, что многоугольником решений является треу- гольник АВС. Задача будет решена, если среди точек треугольника АВС найти такие, в которых функция F = х, + х2 примет свои максимальное и минимальное значения. Для определения этих точек построим вектор С = (1,1) и, например, прямую х, + х2 = 4. Перемещая прямую х, +х, =4 параллельно самой себе в направ- лении вектора С, найдем, что ее последней общей точкой с треу- гольником АВС является точка С, в которой функция B = Xj+x2 6 Методы оптимизации
162 Глава 8. Линейное программирование Рис. 8.2 Графическое решение примера 8.5 принимает свое максимальное значение. Координаты точки С на- ходим из системы 2xt + 4х2 =16, г, + Зх2 = 9, отсюда х, = 6, х2 = 1, максимальное значение функции равно F = 7. Для определения минимального значения целевой функции задачи перемещаем прямую х{ +х2 = 4 в противоположном направлении. Пос- ледней общей точкой прямой и треугольника АВС является точка А. В ней целевая функция принимает минимальное значение. Координаты точки А определяются из системы х{ + Зх2 = 9, х, = О, откуда Xj = 0, х2 = 3 и значение целевой функции равно F = 3.
8.4. Аналитическое решение задач линейного программирования 163 8.4. Аналитическое решение задач линейного программирования Рассмотрим каноническую задачу линейного программи- п рования: найти максимальное значение функции F = . п при условиях = bt, i = 1,... т, Xj > 0, j = 1,... n. Пере- )=! пишем условия в форме XjPj + х2Р2 + + = PQ (8.13) х;>0 = (8.14) где Ро, ...Рп — тп-мерные векторы-столбцы, составленные из коэффициентов а{. при неизвестных ху>0, у = 1,...72 исво- Определение. Если система векторов {Ру}, входящих в левую часть уравнения (8.13), (8.14) с положительными коэффициентами {х; > 0} линейно независима, то план X = (xt ,х2.. .хп)т называется опорным планом канонической задачи линейного программирования. Числа хр j = l,...n, входящие в план X = (х„х2,...хп)т, называются его компонентами. Так как векторы Р} являют- ся ттг-мерными, то из определения опорного плана следует, что число его ненулевых компонент не может быть больше, чем тп. Отсюда следует, что вектор Ро может быть представлен в виде линейной комбинации из т векторов Р;, соответству- ющих положительным компонентам опорного плана. Таким образом, существует по крайней мере одно решение уравнения (8.13), содержащее ровно т компонент. Определение. Опорный план X = (xt, х2,... хп)Т называ- ется невырожденным, если он содержит ровно т ненулевых компонент {х; > 0}, а если их меньше т, то вырожденным.
164 Глава 8. Линейное программирование Необходимо обратить внимание на следующее. 1. Если задача линейного программирования разрешима, то максимум целевой функции достигается хотя бы при одном опорном плане. 2. Опорный план является угловой точкой множества планов, и в соответствии с геометрической интерпретацией п. 8.3 целевая функция принимает максимальное значение именно на множестве опорных планов задачи (в одной из вершин многогранника решений). Число допустимых опорных планов, как и вершин мно- гогранника решений, не может превышать величины С™, Поэтому задачу линейного програАммирования можно ре- шить методом полного перебора всех возможных вариантов, сравнивая значения целевой функции в этих точках. Однако при большой размерности задачи этот подход затруднителен. Идея рассматриваемого далее симплекс-метода состоит в направленном переборе опорных планов с последовательным увеличением значения целевой функции. Симплекс-метод Симплекс-метод основан на направленном переходе от одного опорного плана к другому, при которо^м значение це- левой функции возрастает. Такой переход возможен, если уже известен какой-нибудь исходный опорный план. Нахождение решения симплекс-методом гаранти- руется только в том случае, когда на каждом шаге рас- сматриваемый опорный план является невырожденным. В противном случае задача линейного программирова- ния называется вырожденной, возможны холостые шаги симплекс-метода, т.е. шаги, в результате которых значение целевой функции не изменяется. При этом теоретически возможно и зацикливание, т.е. бесконечное повторение хо- лостых шагов. Симплекс-метод решения задачи линейного программиро- вания не следует путать с симплекс-методом решения задачи безусловной минимизации. Рассмотрим применение симплекс-метода на примере задачи, для которой исходный опорный план легко опреде- ляется из формы записи ограничений. Постановка задачи и определение исходного опорного плана. Пусть требуется найти максимальное значение функции
8.4. Аналитическое решение задач линейного программирования 165 F = CjX, + с2х2 +...+спхп при условиях xt atm+tXm+l +•••"* ainXn = ’ х2 +«2т+Л+1 + -"+а2яхл=^> ч . *», + лии+1*т+1 +-+“„Л = Ьт, Xj >0 i = т; j = l,...n; т<п, где йу, bj и Cj — заданные постоянные числа, причем все Ь, >0. В векторной форме задача формируется следующим об- разом: найти максимум функции ? = 1СЯ (8.15) J=1 при условиях х1Р1 + х2Р2+...+х„Р„=Р0, (8.16) ху >0, (; = 1,... п), (8.17) где Исходным опорным планом для данной задачи явля- ется совокупность чисел X = (6Р 62,... 6ОТ, 0,... 0)г, которая удовлетворяет определению опорного плана, поскольку ЬХР{ + Ь2Р2 +... + ЬтРт + 0 • Pm+i +... + 0 • Рп = Ро. Этот план основан на системе единичных векторов Р{, Р2,... Рт, которые образуют базис m-мерного пространства. Проверка оптимальности опорного плана. Выясним, яв- ляется ли выбранный опорный план оптимальным для данной задачи или необходим переход к новому опорному плану.
166 Глава 8. Линейное программирование Представим функцию F = в виде п т п т п п 77=Хсл=£сл+ X cjxj=^ci(b>- £ °л)+ £ сл = У=1 1=1 j=m+l /=1 j=m+l j=in+l т п т т п =Yc.bi+ £ (с;-£слч=ХсД- £ 1=1 ;=/И+1 1=1 1=1 j=in+i т п п =ЪсЬ~ £ да=А>- £ дл- (=1 j=m+l j=m+l где zj = ХСА/- Aj=zj~cj =^ciaij -с,- Здесь Fo = £CA ~ 1=1 1=1 1=1 значение целевой функции при выбранном опорном плане т X = (ip 62,... 0,... 0)г. Величина Ду= XcAj~cj показы- /=1 вает, на сколько изменится Fo при увеличении компоненты xj (j = m +1, ••• Ю- Следует говорить только об увеличении х , так как однИхМ из условий задачи является Xj > О (j = 1,... п), а при данном опорном плане все х} =0 (j = т +1,... п). Если Д;. >0 для любого у (у =/и+ 1,... и), то очевидно, что увеличение компоненты х. (у = га + 1,... п) приведет к уменьшению значения функции F = FQ- Д;х; < Fo. Сле- j=m+\ довательно, если Д; > 0 для любого j (j = 1,... и), то данный опорный план задачи (8.15)—(8.17) является оптимальным, а максимальное значение функции найдено и равно F = ХСА- 1=1 Переход к новому опорному плану. Если среди Д; (j = т +1,... п) найдутся Др < 0, то имеет смысл ввести в опор- ный план ту переменную xkt которой соответствует значение Дл = -тах|др|, что приведет к максимальному увеличению целевойРфункции на данном шаге. При этом можно не рас- считывать значения Д; при j = 1,... т, так как Р; — базисные векторы, следовательно, для таких j ^j=^cja,j-cJ=clxQ+...cjxl + ...cmxO-cj=O.
8.4. Аналитическое решение задач линейного программирования 167 Рассмотрим, как изменится значение целевой функции при включении в опорный план компоненты xk F = F0- &kxk = F0-&c,aik ~ck)xk = ~^сАлхк +ckxk = i=l Z=1 i=l i=l Если при этом все ajk < 0, i = 1,... т, то F = ici(bi “aitxk) + скхк >оо, /=1 т. е. функция не ограничена на множестве планов. Если среди величин aik, i = 1,... т есть такие, что aik > О, то необходимо, чтобы выполнялось условие (Z>,-ajkxk) >0 для всех aik > 0 . Это условие будет выполняться при хк = min(-^-) = В результате получим, что -айх,) = 0 и ^>о a)k аи компоненту xz следует исключить из опорного плана, а вместо включить компоненту хк. Базисный вектор Р, исключается, вместо него в базис включается вектор Рк. Значение функции при этом увеличится F = Fo - Дкхк = Ео - Д t — > Fo. aik D • / Ь1w Возможна ситуация, когда хк = min(—) достигается при aik нескольких i. В таком случае получим, что несколько компонент нового опорного плана будут равны нулю, и невырожденный опорный план превратится в вырож- денный. Переход к новому базису. Рассмотрим как изменятся ус- ловия (8.16) исходной задачи при переходе к новому базису, в который вместо вектора Р, включается вектор Рк
168 Глава 8. Линейное программирование Поменяем местами вектор Pk, который соответствует Ak = -max| Д/? | для Др < 0, и вектор базиса Рг, который соот- ветствует компоненте, исключаемой из опорного плана. Далее необходимо привести вектор-столбец Pk к виду вектора-столбца Р,, т. е. сделать так, чтобы на Z-й позиции у него стояла единица, а все остальные элементы были заменены нулями. Для этого поделим Z-ю строку на alk и вычтем данную строку из остальных, умножая ее на aik для г-й строки
8.4. Аналитическое решение задач линейного программирования 169 л &Ьп+1 a\k „ alk ь, alk Новый опорный план X' можно найти, приравняв нулю все компоненты х. (у = ти + 1,.. п). В результате получим Z х т X' = (гр... хк,... ха, 0,... 0)г = bx-а1к \ .Л,... b„ - атк\ 0,... О . V alk aik alk ) Таким образом, задаче в форме (8.15)—(8.17) соответствует новый опорный план X', причем F(X') > F(X), Далее следует проверить новый опорный план X' на оптимальность и т.д. * * * Проведенный анализ задачи (8.15)—(8.17) позволяет сформулировать следующие выводы, три следующих ут- верждения. Утверждение 1. (Признак оптимальности опорного плана). Опорный план X = (Z?1,62,...Z?w,0,...0)г задачи (8.15)—(8.17) является оптимальным, если Д. > 0 для любого j = 1,... п. Утверждение 2. Если для некоторого Д* < О среди чисел aik (i = 1,... т) нет положительных, то целевая функция (8.15) не ограничена на множестве ее планов.
170 Глава 8. Линейное программирование Утверждение 3. Если опорный план X задачи (8.15)—(8.17) не вырожден и < 0 и есть aik > 0, то существует опорный план X' такой, что F(X') > F(X). Утверждения 1—3 позволяют проверить найденный опор- ный план на оптимальность и оценить целесообразность перехода к новому опорному плану. Для решения конкретных задач в дальнейшем будет приме- няться симплекс-таблица. Прием, использующий симплекс- таблицу, включает в себя запись начальных данных в виде таблицы и набор правил перехода к новому базису, которые соответствуют преобразованиям, проведенным выше. Правила преобразования симплекс-таблицы можно применять формально, не обращаясь к проведенным выше выкладкам. Описание симплекс-таблицы. Исследование опорного плана на оптимальность, а также переход к новому опорно- му плану удобнее вести, если условия задачи (8.15)—(8.17) записать в виде симплекс-таблицы (табл. 8.3). Таблица 83 Общий вид симплекс-таблицы i Базис Сб Ро с| ст Сщ+\ ск Сп р, р. ?т+1 А рп 1 р, С1 Ь\ 1 0 а1т+1 «1* «и 2 Р2 с2 Ь2 0 0 а2т+1 a2k а2п 1 Р, С1 ь. 0 0 ^1т+\ “lk «1п т Рт Ьп 0 1 атт+\ ^mk @тп Fo 0 0 ^т+\ д» В столбце Сб симплекс-таблицы записывают коэффи- циенты при неизвестных целевой функции, имеющие те же индексы, что и векторы данного базиса. В столбце Ро записывают положительные компоненты исходного опорного плана, в нем же в результате вычислений получают компоненты оптимального плана. Столбцы векто- ров Р} представляют собой коэффициенты разложения этих векторов по векторам данного базиса. В табл. 8.3 первые т строк определяются исходными данными, а показатели (т + 1)-й строки вычисляются. На
8.4. Аналитическое решение задач линейного программирования 171 пересечении этой строки со столбцом Ро записывают зна- чение целевой функции, которое она принимает на данном опорном плане, а в столбце вектора — значение величины Величина г. находится как скалярное произведение вектора Р; (у = 1, ... п) на вектор Ро. Значение целевой фун- кции Fo равно скалярному произведению вектора Ро на вектор Сб. Проверка оптимальности опорного плана по симплекс- таблице. После заполнения табл. 8.3 исходный опорный план проверяют на оптимальность. Для этого просматривают эле- менты (т + 1)-й строки симплекс-таблицы. В результате может иметь место один из трех случаев: 1) д. > О для любого j (j = 1,... n); 2) Д;<0 для некоторого j и при этом величины а~ <0 (г = 1,... т)\ 3) Д. < 0 для некоторых индексов j, и для каждого такого j по крайней мере одно из чисел а~ положительно. В первом случае на основании признака оптимальности исходный опорный план является оптимальным, во втором — целевая функция не ограничена сверху на множестве планов, а в третьем — можно перейти от исходного плана к новому опорному плану, при котором значение целевой функции увеличивается. Этот переход осуществляется исключением из исходного базиса какого-нибудь из векторов и введени- ем в базис нового вектора. В качестве вектора, вводимого в базис, можно взять любой из векторов Ру, для которого Д;. <0. Пусть, например, Д*<0 и решено ввести в базис вектор Pk. Для определения вектора, подлежащего исключению из базиса, находят min(fy /aik) для всех aik >0. Пусть этот мини- мум достигается при i = Z. Тогда из базиса исключают вектор Р{, а число alk называют разрешающим элементом. Столбец и строку, на пересечении которых находится разрешающий элемент, называют направляющими. Поиск нового опорного плана в методе симплекс-таб- лицы. После выделения направляющих строки и столбца находят новый опорный план и коэффициенты разложения вектора Р. по векторам нового базиса. Это можно реализовать, если воспользоваться методом Жордана — Гаусса. При этом можно показать, что положительные компоненты нового опорного плана вычисляются по формулам
172 Глава 8. Линейное программирование b, - (bi / alk )aik при i *I, b, / а1к при i = I, (8.18) а коэффициенты разложения векторов Р; — по векторам но- вого базиса по формулам aij-(aij/aik)aik npui^l, ai,/aik npui = L (8.19) Элементы (тп + 1)-й строки новой таблицы могут быть вычислены либо по формулам = "(V aik)^k > (8.20) Д> = Д;-(^/^)Д*> (8.21) либо на основании их определения. Из формулы (8.20) следует, что при переходе от одного опор- ного плана к другому наиболее целесообразно ввести в базис вектор Ру., при котором максимальным по абсолютной величине является число (b{ / alk)&k. Однако с целью упрощения вычис- лительного процесса вектор, вносимый в базис, будем определять исходя из максимальной абсолютной величины чисел Если таких чисел будет несколько, то в базис будем вводить вектор, имеющий тот же индекс, что и максимальное из чисел ср Правила перехода к новой симплекс-таблице. Итак, пере- ход от одного опорного плана к другому сводится к переходу от одной симплекс-таблицы к другой. Элементы новой сим- плекс-таблицы можно вычислить с помощью рекуррентных формул (8.18)—(8.21). Также этот переход можно осущест- влять по правилам, непосредственно вытекающим из формул. Эти правила состоят в следующем. В столбцах векторов, входящих в базис, на пересечении строк и столбцов одноименных векторов проставляются еди- ницы, а все остальные элементы полагают равными нулю. Элементы векторов Ро и Р; в строке новой симплекс-таб- лицы, в которой записан вектор, вводимый в базис, получают из элементов этой же строки исходной таблицы делением их на величину разрешающего элемента. В столбце Сб в строке вводимого вектора проставляют величину ck, где k — индекс вводимого вектора. Остальные элементы столбцов вектора Ро и Р. новой симп- лекс-таблицы вычисляют по правилу треугольника. Для вычис- ления какого-нибудь из этих элементов находят три числа:
8.4. Аналитическое решение задач линейного программирования 173 1) число, расположенное в исходной таблице на месте искомого элемента новой симплекс-таблицы; 2) число, расположенное в исходной симплекс-таблице на пересечении строки, в которой находится искомый элемент новой симплекс-таблицы, и столбца, соответствующего век- тору, вводимому в базис; 3) число, расположенное в новой симплекс-таблице на пересечении столбца, в котором стоит искомый элемент, и строки вновь вводимого в базис вектора. Как отмечено выше, эта строка получается из строки исходной таблицы делением ее элементов на разрешающий элемент. Для определения искомого элемента новой симплекс-таб- лицы из первого вычитают произведение второго и третьего. После заполнения новой симплекс-таблицы просматри- вают элементы (т + 1)-й строки. Если все Д' = г- - с - > 0, то новый опорный план является оптимальным. Если же среди указанных чисел имеются отрицательные, то находят новый опорный план. Этот процесс продолжают, до тех пор пока либо не получат оптимальный план задачи, либо не устанавливают ее неразрешимость. Напомним, что при решении задач линейного програм- мирования предполагается, что они имеют опорные планы и каждый такой план является невырожденным. В противном случае возможна ситуация, когда функция сохраняет свое значение в течение нескольких итераций и также возможен возврат к первоначальному базису. В последнем случае гово- рят, что произошло зацикливание. Пример8.6. Для изготовления различных изделий Л, В и С пред- приятие использует три различных вида сырья. Нормы расхода сырья на производство одного изделия каждого вида, цена одного изделия, а также общее количество сырья каждого вида приведены в табл. 8.4. Таблица 8.4 Нормы затрат и общее количество сырья Вид сырья Нормы затрат сырья на одно изделие Общее количество сырья А В С 1 18 15 12 360 II 6 4 8 192 111 5 3 3 180 Цена одного изделия 9 10 16 ->
174 Глава 8. Линейное программирование Составить план производства изделий, при котором общая стоимость произведенной продукции будет максимальной. □ Искомый выпуск изделий А обозначим через хр изделий В — через х2, изделий С — через х3. Поскольку имеются ограничения на выделенный предприятию фонд сырья каждого вида, переменные х х2 и х3 должны удовлетворять системе неравенств 18Xj + 15х2 + 12х3 < 360, < 6х,+ 4х2 + 8х3<192, 5Xj+ Зх2 + Зх3<180. (8.22) Общая стоимость произведенной предприятием продукции со- ставляет F = 9х, +10х2 +16х3. (8.23) По своему экономическому смыслу переменные х{, х2 и х3 могут принимать лишь неотрицательные значения Xj>0, х2>0, х3>0. (8.24) Запишем задачу в форме канонической. Для этого перейдем от ограничений-неравенств к ограничениям-равенствам. Введем три до- полнительные переменные, в результате ограничения запишутся в виде системы уравнений 18Xi +1 5х2 +12х3 + х4 = 360, « 6х, + 4х2 + 8х3 + х5 = 192, 5х, + Зх, + Зх3 +х6 = 180, (п = 6, т = 3). Эти дополнительные переменные по экономическому смыслу оз- начают не используемое при данном плане производства количество сырья того или иного типа, например х4 — это неиспользуемое сырье I вида. Преобразованную систему уравнений запишем в векторной форме Поскольку среди векторов РХ,...РЬ имеются три единичных вектора, то можно непосредственно записать опорный план X = (0,0,0,360,192,180),
8.4. Аналитическое решение задач линейного программирования 175 определяемый системой трехмерных единичных векторов Р4, Р5, Рб , которые образуют базис векторного пространства. Составим симплекс-таблицу для итерации 1 (табл. 8.5) и проверим исходный план на оптимальность: Fq=(C6,Pq) = 0; z1=(Q,P1) = 0; z2=(Q,P2) = 0; z3 =(Q,P3) = 0; ?!-q = 0-9 =-9; z2— c2 =0—10 = —10; z3-c3 =0-16 =-16. Для векторов базиса Д; = z, - cf = 0. Таблица 85 Симплекс-таблица итерации 1 i Базис С6 д 9 10 16 0 0 0 Л д д Л Р- п 1 0 360 18 15 12 1 0 0 2 р5 0 192 6 4 8 0 1 0 3 р6 0 180 5 3 3 0 0 1 4 0 -9 -10 -16 0 0 0 Опорный план X не является оптимальным, поскольку в четвертой строке симплекс-таблицы имеются три отрицательных числа. Это свиде- тельствует о возможности увеличения общей стоимости производимой продукции и показывает, на сколько она увеличится при введении в план единицы того или иного вида. Так, число (-9) означает, что при включении в план производства одного изделия А обеспечивается увеличение выпуска продукции на 9 единиц. Поэтому с экономической точки зрения наиболее целесо- образным является включение в план производства изделий С (соот- ветствующие вектору Р3). Это же необходимо сделать и на основании формального признака симплекс-метода, поскольку максимальное по абсолютной величине отрицательное число Ду- стоит в четвертой строке таблицы и соответствует вектору Р3, который следует ввести в базис. Для определения вектора, подлежащего исключению, находим min(V«,3) ПРИ «,3>0,те. min (360/12; 192/8; 180/3) = 192/8 = 24. Таким образом, из базиса следует исключить вектор Р-. Ограничива- ющим фактором для производства изделий С является имеющийся объем сырья II вида. С учетом этого предприятие может выпустить 24 изделия С. Итак, столбец Р3 и строка Р- являются в симплекс-таблице направ- ляющими. Составим таблицу для итерации 2 (табл. 8.6).
176 Глава 8. Линейное программирование Таблица 8,6 Симплекс-таблица итерации 2 i Базис с6 Р» 9 10 16 0 0 0 р. Рз Рз р. р5 Ро 1 л 0 72 9 9 0 1 -3/2 0 2 р3 16 24 3/4 1/2 1 0 1/8 0 3 Р' 0 108 11/4 3/2 0 0 -3/8 1 4 384 3 -2 0 0 2 0 Сначала заполним строку для вновь введенного в базис вектора Р3 (вторую строку в табл. 8.6). Элементы этой строки получаются из элементов второй строки табл. 8.5 делением их на разрешающий эле- мент (на 8). При этом в столбце Сб записываем коэффициент с3 = 16, соответствующий вводимому в базис вектору Р3. Для определения остальных элементов табл. 8.6 применяем правило треугольника. Эти элементы могут быть вычислены непосредственно по формулам (8.18)—(8.21). □ Вычислим, например, число, являющееся первым элементом вектора Ро в табл. 8.6. Для его вычисления находим три числа, распо- ложенные: 1) в табл. 8.5 на пересечении столбца вектора Ро и первой строки (360); 2) в табл. 8.5 на пересечении столбца вектора Р3 и первой строки (12); 3) в табл. 8.6 на пересечении столбца вектора Ро и второй строки (24). Вычитая из первого числа произведение двух других, находим иско- мый элемент: 360 -12 • 24 = 72. Аналогично находим элементы столбцов По окончании расчета всех элементов табл. 8.6 получаем новый опорный план X = (0,24,0,72,0,108/ и значения Д' и Го'. При данном плане производства изготовляется 24 изделия С и остаются неисполь- зованными 72 единицы сырья вида I и 108 — сырья вида III. Стоимость всей производимой при этом плане продукции равна 384. Найденный на итерации 2 план также не является оптимальным, поскольку в четвертой строке табл.8.6 на пересечении со столбцом Р2 стоит отрицательное число (-2). Далее в базис следует ввести вектор Р2. Найдем вектор, подлежащий исключению из базиса. Для этого находим min (72/9, 48/1, 360/3) = 72/9 = 8. Следовательно, исключе- нию из базиса подлежит вектор Pv Число 9 является разрешающим элементом, а столбец Р2 и строка Р4 являются направляющими. Со- ставим таблицу 8.7 для итерации 3.
8.4. Аналитическое решение задач линейного программирования 177 Таблица 8.7 Симплекс-таблица итерации 3 i Базис с6 р. 9 10 16 0 0 0 Р' А Рз Л Р5 Рз 1 Рг 10 8 1 1 0 1/9 -1/6 0 2 Рз 16 20 1/4 0 1 -1/18 5/24 0 3 Р6 0 96 5/4 0 0 -1/6 -1/8 1 4 400 5 0 0 2/9 5/3 0 В табл. 8.7 сначала заполняем элементы первой строки (вектор Р2). Элементы этой строки получаем из элементов первой строки табл. 8.6 делением на разрешающий элемент (на 9). При этом в столбце Сб за- писываем коэффициент с2 = 10, соответствующий вводимому в базис вектору Р2. Затем по правилу треугольника вычисляем элементы остальных столб- цов. В результате получаем новый опорный план X = (0,8,20,0,0,96)г и коэффициенты разложения векторов Pt (i = 1,... 6) через базисные векторы Р2, Р3, Рб, а также значения Д" и F'o'. Проверяем, является ли данный опорный план оптимальным. Для этого рассмотрим четвертую строку табл. 8.7. В этой строке среди чи- сел Д'' нет отрицательных. Следовательно, найденный план является оптимальным и Fmax = 400. С экономической точки зрения план выпуска продукции, включаю- щий изготовление 8 изделий В и 20 изделий С, является оптимальным. При данном плане выпуска полностью используется сырье вида I и II, остаются неиспользованными 96 единиц сырья вида III, а стоимость произведенной продукции равна 400. Оптимальным планом не предус- матривается изготовление изделий А. Пример 8.7. Найти максимум функции F = 2х, -6х2 + 5х5 при условиях - 2х1 + х2 + х3 + х5 = 20 - xt - 2х2 + х4 + Зх5 = 24 Зх( - х2 - 12х5 + х6 = 18 ху. > 0 (у = 1,... 6). □ Систему уравнений задачи перепишем в векторной форме X’lPj + Х2Р2 + Х3Р3 + х4/^ + Х5Р5 + Х6Рб = Pq у где
178 Глава 8. Линейное программирование ( П (-2^ р,= -1 -2 ,Р3 = (Г О ,Р< = 1 ,р5 = .0 1 1 f0> 3 ,Р6= о ,Р0 = -12 Г2(Г 24 I 3J Так как среди этих векторов имеются три единичных вектора, для данной задачи можно непосредственно записать опорный план X = (0,0,20,24,0,18)г. Составляем таблицу 8.8 и проверяем, является ли данный план оптимальным. Таблица 8.8 Симплекс-таблица итерации 1 i Базис cf Ро 2 —6 0 0 5 0 р. Рз Рз л Р5 Ро 1 Рз 0 20 -2 1 1 0 1 0 2 р< 0 24 -1 -2 0 1 3 0 3 Ро 0 18 3 -1 0 0 -12 1 4 0 -2 6 0 0 -5 0 Как видно из табл. 8.8, исходный опорный план не является оп- тимальным. Заметим, что в столбцах Р, и Р5 четвертая строка со- держит отрицательные числа. Кроме того, в этих столбцах имеются и положительные элементы. Поэтому мы можем перейти к новому опорному плану. Исключению из базиса подлежит вектор Р4. Для перехода к новому опорному плану введем в базис вектор Р5. Со- ставим таблицу 8.9 для итерации 2. Таблица 8.9 Симплекс-таблица итерации 2 i Базис С6 Ро 2 —6 0 0 5 0 р Рг Рз р Р- Ро 1 Рз 0 12 -5/3 5/3 1 -1/3 0 0 2 р5 5 8 -1/3 -2/3 0 1/3 1 0 3 Ро 0 114 -1 -9 0 4 0 1 4 40 -11/3 8/3 0 5/3 0 0 Из табл. 8.9 следует, что новый опорный план задачи не является оптимальным, так как в четвертой строке таблицы стоит отрицательное число: -11/3 (вектор Pj). Поскольку среди элементов этого вектора нет положительных чисел, данная задача'не имеет оптимального плана, а целевая функция бесконечно возрастает при увеличении
8.4. Аналитическое решение задач линейного программирования 179 Пример 8.8. Найти максимум функции F = 2х{ + х2 -х3 + х4 -х5 при условиях х{ +х2 + х3 =5, - 2х, +х2 +х4 =9, Xj + 2х2 +х5 = 7, х;>0 0 = 1, ...5). □ Систему уравнений задачи запишем в векторной форме XjP, + х2Р2 + х3Р3 + хД + Х5Р5 — Pq , где Так как среди этих векторов имеются три единичных вектора Р3, Р4 и Р5, то для данной задачи можно непосредственно написать опорный план и найти оптимальное решение симплекс-методом. Заметим, что решение задачи симплекс-методом можно про- водить, используя лишь одну сводную таблицу. В ней (табл. 8.10) последовательно записываются итерации вычисления оптималь- ного плана. Таблица 8.10 Сводная симплекс-таблица i Базис с6 Ро 2 1 -1 1 -1 Pl р, Рз Л А 1 Рз -1 5 1 1 1 0 0 2 Л 1 9 2 1 0 1 0 3 д -1 7 1 2 0 0 1 4 -3 -2 -3 0 0 0 1 р3 -1 3/2 1/2 0 1 0 -1/2 2 1 11/2 3/2 0 0 1 -1/2 3 д 1 7/2 1/2 1 0 0 1/2 4 15/2 -1/2 0 0 0 3/2 1 pt 2 3 1 0 2 0 -1 2 р< 1 1 0 0 -3 1 1 3 Pl 1 2 0 1 -1 0 1 4 9 0 0 1 0 1
180 Глава 8. Линейное программирование Из решения с помощью табл. 8.10 следует, что X = (3,2,0,1,0)г яв- ляется оптимальным планом исходной задачи. При этом плане значение целевой функции равно 7;пах = 9. Пример 8.9. Решить задачу линейного программирования F = xt + 9а*? + 5х3 + Зх4 + 4х5 + 14х6 -+ min, л*! + х4 = 20, Х2 +Х5 = 50, л3 +л6 = 30, +х5 + хб =60, X. >0(7 = 1,...6). □ Равносильными преобразованиями приведем задачу к виду F = -х{ - 9х2 - 5х3 - Зх4 - 4х5 - 14хб max, xt + х, +х3 =40, х, +х4 =20, Л3 + А 6 = 30, А*3 — A'j — Х3 — 10, ху>0 и = 1,...6). Полученную систему уравнений можно записать в векторной форме х,Р, + х2Р2 +х3Р3 + х4Р4 +х5Р5 +х6Рб = Ро, где 20 10 <30 J Так как среди этих векторов имеются четыре единичных вектора Р2, Рр Р5 и Р6, то можно записать опорный план и найти решение сим- плекс-методом. Составим симплекс-таблицу (табл. 8.11).
8.4. Аналитическое решение задач линейного программирования 181 Таблица 8.11 Сводная симплекс-таблица i Базис Се Ро -1 -9 -5 -3 —4 -14 Р, Р1 Ро Л Ро Ро 1 рг -9 40 1 1 1 0 0 0 2 р, -3 20 1 0 0 1 0 0 3 Ро -4 10 -1 0 -1 0 1 0 4 р6 -14 30 0 0 1 0 0 1 5 -880 -7 0 -14 0 0 0 1 р, -9 10 1 1 0 0 0 -1 2 Ро -3 20 1 0 0 1 0 0 3 Рз -4 40 -1 0 0 0 1 1 4 Л -5 30 0 0 1 0 0 1 5 -460 -7 0 0 0 0 14 1 р, -1 10 1 1 0 0 0 -1 2 р< -3 10 0 -1 0 1 0 1 3 р5 -4 50 0 1 0 0 1 0 4 р3 -5 30 0 0 1 0 0 1 5 -390 0 7 0 0 0 7 Так как в четвертой строке нет отрицательных элементов, то полу- ченный план X = (10,0,30,10,50,0)г является оптимальным и значение целевой функции F = 390. Метод искусственного базиса При описании симплекс-метода было показано, что для задачи линейного программирования, записанной в форме канонической, можно непосредственно указать ее опорный план только в том случае, если среди векторов имеется т единичных. Когда это не выполняется, то следует применять метод искусственного базиса. Пусть требуется найти максимум функции F = cixl + с2х2 +... + спхп (8.25) при условиях
182 Глава 8. Линейное программирование а21-*"1 + ••• + а2пХп = ^2> атХх^...+атпхп = Ьт, (8.26) нет т единичных. Определение. По отношению к задаче (8.25)—(8.27) на- хождение максимума функции F = -Mxt -...-Мхт+ ст+1хт+1 + ст+2хт+2 + ... + ст+„х^п (8.28) при условиях •^1 а1т+\Хт+\ + • • • + aim+nXm+n ’ Х2 + fl2m+A+l + • • • + &2т+пХт+п ~ ^2» Хт ^wn+l^/n+l + • • • + &тт+пХт+п ~ 1 xj >0 (j = l,... п + т\ (8.29) (8.30) где М — некоторое достаточно большое положительное число (конкретное значение которого обычно не задается), называ- ется расширенной задачей. Расширенная задача (8.28)—(8.30) может быть решена симплекс-методом, поскольку записана в форме канонической задачи и имеет т единичных векторов Pv... Рт, которые оп- ределяют исходный опорный план X = (^,... Ьт, 0,0,... 0)г. Определение. Векторы Pv...Pm, переменные xv...xmw базис, образованный этими векторами, называют искусст- венными. Справедливо следующее утверждение. Если в оптимальном плане X* = (х*,... х*, х*+1,... х* +п) расширенной задачи (8.28)—(8.30) значения искусственных
8.4. Аналитическое решение задач линейного программирования 183 переменных (х*,... х*) равны нулю, то план X = (х^+1,... х^+п )г является оптимальным для задачи (8.25)—(8.27). Рассмотрим подробно решение расширенной задачи. Построим итерационный процесс, на каждом шаге кото- рого будем по очереди исключать из базиса искусственные векторы, обнуляя при этом соответствующие искусственные переменные. Исходное значение целевой функции F = -М^х( + У с,хг z=l i=m+l На итерации 1 вместо исключенной искусственной пере- менной х, в опорный план записывается одна из неискусст- венных переменных х-, где (j = т +1,... т+п). Искусственная переменная х1 обнуляется и поэтому в записи функции опус- т п+т-1 кается. В результате получим F' = clxl-M^/xi + У, суху, z=2 у=/и+1 где общее число переменных стало на единицу меньше. Про- должая этот процесс далее, на итерации k целевую функцию можно представить в виде k т n+m-k = ^CiXi ~М^Х-+^ С!Х) = i=l i=k+l j=m+l k n+m-k m n+m-k n+m-k Ф&- £ ^ху)-Л/£(6,- £ а9х})+ £ cyxy = z=l j=m+l i=k+i y=/n+l j=m+i k k n+m-k m m n+m-k n+m-k = £ СД - £ c, Z aijxJ-М^^+^М^ a^Xj + £ CjxJ = z=l i=\ j=m+l i=k+l i-k+\ j=m+\ j=m+\ k m k n+m-k m n+m-k n+m-k = ^Ь-М £ fe,)-(£c,. £ avXj- £ M £ a^Xj- £ CjXj) = /=1 i=k+l z=l j=m+l i=k+l j=m+l j=m+l k m n+m-k f k m \ n+m-k = Yc&~M1l V £ 1 £c,4;-W£ av ,-Cj k =f0*- £ Духу, z=l i-k+i j=m+t \ /=1 i=k+l J j=m+\ k m k m где Fok = ^cibi-MYb>> a д; = 2;-с;=Ёс/а(,-м£ау-су z=l i=k+\ i=l i=k+l Таким образом, Fq и Д. состоят каждая из двух незави- симых частей, одна из которых зависит от параметра М, а другая нет. На каждой итерации заполняется расширенная симплекс- таблица, содержащая на одну строку больше, чем обычная.
184 Глава 8. Линейное программирование Первые т строк заполняются обычным образом. В (т + 1)-ю строку записываются независящие от параметра М части Fk и Ду. В последнюю, (тл + 2)-ю, строку записывается множитель при параметре М из Fq и Д.. При переходе от одного опорного плана к другому в базис вводят вектор, соответствующий наибольшему по абсолют- ной величине отрицательному числу из (тт2 + 2)-й строки. Искусственный вектор, исключенный из базиса в резуль- тате некоторой итерации, в дальнейшем нецелесообразно вводить в последующие базисы, поэтому преобразование его излишне. Пересчет таблиц при переходе от одного опорного пла- на к другому производят по общим правилам симплекс- метода. Итерационный процесс по (т + 2)-й строке ведут, до тех пор пока: 1) либо все искусственные векторы не будут исключены из базиса, т.е. значение линейной формы станет Ро = /=1 т а значения Д. = -с;. Следовательно, базис отвечает /=1 некоторому опорному плану, и определение оптимального плана продолжают по (т + 1)-й строке; 2) либо не все искусственные векторы исключены, (т+2)-я строка не содержит больше отрицательных элементов в столбцах Pv... Pn+m_k. В этом случае если элемент, стоящий в (ги + 2)-й строке столбца Ро, отрицателен, то исходная за- дача не имеет решения; если он равен нулю, то найденный опорный план исходной задачи является вырожденным и базис содержит по крайней мере один из векторов искус- ственного базиса. Пример 8.10. Найти минимум функции F = -2х{ +3х2 -6х3 -xi при условиях 2а'| + — 2х * + = 24, < л*! +2л*2 +4л3 < 22, л-J -х2 4-2л'3 > Ю, Х7> 0 (; = !,... 4). □ Запишем задачу в форме канонической: найти максимум функции F = 2г, - Зх2 + 6х3 + xi при условиях
8.4. Аналитическое решение задач линейного программирования 185 2х, + х2 - 2х3 + = 24, « Х| + 2х2 + 4 хз + Л'- =22, Xj - х, + 2х3 - х6 =10, х; > О (J = 1,... 6). В системе уравнений последней задачи рассмотрим векторы из коэффициентов при неизвестных 1 ,Р6= о w 1-1J Среди этих векторов только два единичных Р5,Р6. Поэтому в левую часть третьего уравнения системы ограничений задачи доба- вим дополнительную неотрицательную переменную х7 и рассмот- рим расширенную задачу, состоящую в максимизации функции F = -2х, + Зх2 - 6х3 - х4 - Мх7 при условиях 2Х| + х2 — 2х3 + х'4 = 24, " х’| + 2х2 + 4х3 + х5 =22, л; - х2 + 2 х3 - х6 + х7 = 10, ху >о (J = 1,...7). Расширенная задача имеет опорный план X = (0,0,0,24,22,0,10)г, определяемый системой трех единичных векторов Р5, Р6, Р7. Составим таблицу итерации 1 (табл. 8.12), содержащую пять строк. Для заполнения четвертой и пятой строк найдем Fo и значения разно- стей Ау = z- -Cj (j = 1,... 7): Fo = 24 -ЮМ, Zj - С[ = 0 - М, z2 - с2 = 4 + М, z3 - с3 = -8 - 2М, z^-c^ = 0, z- - с- = 0, z6 - cG = 0 + М, z7—c7 — 0. Таблица 8.12 Симплекс-таблица итерации 1 i Базис С.-. р. 2 -3 6 1 0 0 -М F Р2 Р3 Л Р- ре р7 1 Л 1 24 2 1 -2 1 0 0 0 2 р5 0 22 1 2 4 0 1 0 0 3 р7 -м 10 1 -1 2 0 0 -1 1 4 24 0 4 -8 0 0 0 0 5 -10 -1 1 -2 0 0 1 0
186 Глава 8. Линейное программирование Значения Fo и Ду = zy - су состоят из двух слагаемых, одно из ко- торых содержит М, а другое нет. Для удобства итерационного процесса число, стоящее при М, записываем в пятой строке, а слагаемое, не со- держащее М, — в четвертой строке. В пятой строке таблицы имеются два отрицательных числа наличие которых говорит о том, что данный опорный план рас- ширенной задачи не является оптимальным. Переходим к ново- му опорному плану расширенной задачи. В базис вводим вектор Р3. Чтобы определить вектор, исключаемый из базиса, находим min (22/4; 10/2) = 10/2, следовательно, таким вектором оказывается Р7. Этот вектор не имеет смысла вводить ни в один из последующих базисов, поэтому в дальнейшем столбец, соответствующий данному вектору, не заполняется. Составим таблицу итерации 2 (табл. 8.13), содержащую только четыре строки, так как искусственный вектор из базиса исключен. Таблица 8.13. Симплекс-таблица итерации 2 i Базис С6 Ро 2 -3 6 1 0 0 р, А Рз А Рз Ро 1 Рз 1 34 3 0 0 1 0 -1 2 р} 0 2 -1 4 0 0 1 2 3 р3 6 5 1/2 -1/2 1 0 0 -1/2 4 64 4 0 0 0 0 -4 Из табл. 8.13 следует, что для исходной задачи опорным является план X = (0,0,5,34,2,0)г. Для проверки его на оптимальность рассмот- рим элементы четвертой строки. В столбце Рб имеется отрицательное число, следовательно, опорный план может быть улучшен благодаря введению в базис вектора Рб, а из базиса исключается вектор Р5. Со- ставим таблицу итерации 3. Таблица 8.14 Симплекс-таблица итерации 3 / Базис с.-, Ро 2 -3 6 1 0 0 р, Рз Рз Рз р5 Ро 1 Рз 1 35 5/2 2 0 1 1/2 0 2 Ро 0 1 -1/2 2 0 0 1/2 1 3 р3 6 11/2 1/4 1/2 1 0 1/4 0 4 68 2 8 0 0 2 0
8.4. Аналитическое решение задач линейного программирования 187 В четвертой строке табл. 8.14 среди чисел нет отрицатель- ных, что означает оптимальность опорного плана исходной задачи X = (0,0,11/2,35,0,1)г и целевая функция F = 68. Пример 8.11. Найти минимум функции F = 2x,-x2-x4 при условиях х,-2х2+х3 = 10, < -2х, - х, - 2х4 > 18, Зх, + 2х2 + х4 > 36, х; > 0 (у = 1,... 4). □ Запишем задачу в форме канонической задачи линейного прог- раммирования: найти максимум функции F = -2х, +х2 +х4 при ус- ловиях х, -2х2 + х3 =10, - -2х, -х2 -2х4 -х5 = 18, Зх, + 2х2 + х4 - х6 = 36, х? > 0 (j = 1,... 6). Так как среди векторов имеется только один единичный вектор Р3, то ищем решение расши- ренной задачи, состоящей в определении максимального значения функции F = -2х, + х2 + х4 - Л/х7 - Мх8 при условиях х, -2х2 + х3 =10, < -2х, - х2 - 2х, - х5 + х- =18, Зх, + 2х2 + - х6 + х8 = 36, х, >0 (J = l,... 8). Расширенная задача имеет опорный план Х = (0,0,10,0,0,0,18,36/. Составим таблицу для итерации 1.
188 Глава 8. Линейное программирование Таблица 8.15 Симплекс-таблица итерации 1 i Базис С6 Ро -2 1 0 1 0 0 -м -м' р, р А р. Р5 Ро р Ро 1 д 0 10 1 -2 1 0 0 0 0 0 2 р -м 18 -2 -1 0 -2 -1 0 1 0 3 р» -м 36 3 2 0 1 0 -1 0 1" 4 0 2 -1 0 -1 0 0 0 0 5 -54 -1 -1 0 1 1 1 0 0 В пятой строке табл. 8.15 имеются отрицательные числа, поэтому следует перейти к новому опорному плану расширенной задачи. В базис введем вектор Р2, а из базиса исключим вектор Р8. Этот вектор не имеет смысла вводить ни в один из последующих базисов, поэтому столбец, соответствующий ему, не заполняется и в таблице отсутствует. Таблица 8.16 Составим таблицу итерации 2 i Базис Со Ро -2 1 0 1 0 0 -м р Рг р Ро р Ро р 1 р 0 46 4 0 1 1 0 -1 0 2 р -м 36 -1/2 0 0 -3/2 -1 -1/2 1 3 р 1 18 3/2 1 0 1/2 0 -1/2 0 4 18 7/2 0 0 -1/2 0 -1/2 0 5 -36 1/2 0 0 3/2 1 1/2 0 В пятой строке табл. 8.16 в столбцах Р{,... Р7 не содержится отри- цательных элементов. На пересечении столбца PQ с этой строкой стоит отрицательное число (-36), следовательно, исходная задача не имеет опорного плана. Вопросы и задания для самоконтроля 1. Какая задача оптимизации называется задачей линейного программирования? 2. Дать определение общей задачи линейного программиро- вания.
Вопросы и задания для самоконтроля 189 3. Дать определение канонической задачи линейного програм- мирования. 4. Описать алгоритм сведения общей задачи к задаче в канони- ческой форме линейного программирования. Привести пример. 5. Какие задачи линейного программирования можно решить графически? 6. Описать алгоритм графического решения задачи линейного программирования. 7. Дать определение плана и оптимального плана задачи линей- ного программирования. 8. Какую задачу линейного программирования можно решить с помощью симплекс-метода? 9. Дать определение опорного плана задачи линейного програм- мирования. 10. Сформулировать признак оптимальности опорного плана для задачи линейного программирования симплексным методом. И. Показать, что если для некоторого <0 среди чисел aik (j = 1,... /л) нет положительных, то целевая функция задачи ли- нейного программирования в канонической форме (8.15)—(8.17) не ограничена на множестве ее планов. 12. Сформулировать правила пересчета ограничений задачи линейного программирования при переходе к новому базису. При- вести пример. 13. Всегда ли решение задачи линейного программирования, записанной в канонической форме (8.15)—(8.17), может быть най- дено за конечное число шагов? 14. Каким образом можно улучшить приведенный алгоритм реше- ния задачи линейного программирования симплексным методом? 15. В каких случаях для решения задачи линейного програм- мирования необходимо добавлять искусственные переменные? Привести пример. 16. Показать, что для метода искусственного базиса величины Fok и Д; зависят от параметра М. 17. В каких случаях метод искусственного базиса не даст решения задачи линейного программирования? 18. Описать алгоритм расчета задачи линейного программиро- вания для метода искусственного базиса. 19. Решить задачи линейного программирования графическим методом. Задача 1: /(a-j,x2) = -л-, — 4х, -+ min. л, <2, х,+2х:>2, х, <2. х, 4- х, < 3, х,, х, > 0. Ответ: хж=(1,2)г; /’=-9.
190 Глава 8. Линейное программирование Задача 2: f (х,,х2) = -х, - х2 —> min, х, < 3, х2 < 2, х, + х2 < 1, х,, х, > 0. Ответ: бесконечное множество решений: х* = (а, 1 — о.)г, а6[0,1]; /*=1. Задача 3: /(х|,х2) = -2х1-х2 —►min, 2Xj + х2 > 1, Зх, - х2 > -1, xt — 4х2 <2, Xj, х2 > 0. Ответ: нет решений. Задача 4: /(x1,x2) = xl-2х2 —>min, —Х| + х2 < 0, 2хх + х, < 3, Х!-Г2<1, Xi, х2 > 0. Ответ: х’ = (2/3,2/3)г; = -8/3. Задача 5: /(х1,х2) = х1 -2х2 —> min, х, х2 0, 2Х) х2 3, х,-х2<1, Х|,х2>0. Ответ: х’ =(1, 1)г; /' =-1.
Литература 1. Аттеков, А. В. Методы оптимизации / А. В. Аттеков, С. В. Галкин, В. С. Зарубин. — М.: изд-во МГТУ им Н. Э. Баумана, 2003. — 440 с. 2. Васильев, Ф. П. Численные методы решения экстремальных задач / Ф. П. Васильев. — М.: Наука, 1988. — 552 с. 3. Измаилов, А. Ф. Численные методы оптимизации / А. Ф. Из- маилов, М. В. Солодов. - М.: ФИЗМАТЛИТ, 2005. - 304 с. 4. Лесин, В. В. Математическое программирование / В. В. Лесин, Ю. П. Лисовец. - М.: изд. МИЭТ, 1988. - 116 с. 5. Лесин, В. В. Основы методов оптимизации / В. В. Лесин, Ю. П. Лисовец. — М.: изд. МАИ, 1995. — 344 с. 6. Методы оптимизации / под общ. ред. А. В. Ефимова и А. С. Пос- пелова // Сборник задач по математике для втузов. — В 4-х ч. — М.: ФИЗМАТЛИТ, 2002. - Ч. 3. - 576 с. 7. Пантелеев, А. В. Методы оптимизации в примерах и задачах / А. В. Пантелеев, Т. А. Летова — М.: Высшая школа, 2005. — 544 с. 8. Сухарев, А. Г. Курс методов оптимизации / А. Г. Сухарев, А. В. Тимохов, В. В. Федоров. — М.: ФИЗМАТЛИТ, 2005. — 368 с.
Учебное издание В. А. Гончаров Методы оптимизации УЧЕБНОЕ ПОСОБИЕ Редактор Русев В. А. Корректор Горбатова Е. Б. Компьютерная верстка Дроздова В. В. Формат 84x108 ‘/32. Гарнитура «PetersburgC». Печать офсетная. Усл. печ. л. 10. Тираж 1000 экз. Заказ № 3830 ООО «Высшее образование» 140004, Московская обл., г. Люберцы, 1-й Панковский проезд, д. 1. Тел.: (495) 744-00-12. E-mail: publish@urait.ru. www.urait.ru Отпечатано в полном соответствии с качеством предоставленных диапозитивов в ОАО «ИПП «Правда Севера». 163002, г. Архангельск, пр. Новгородский, 32. Тел./факс (8182) 64-14-54, тел.: (8182) 65-37-65,65-38-78, 29-20-81 www.ippps.ru, e-mail: zakaz@ippps.ru
Гончаров Виктор Анатольевич — доктор физико-матема- тических наук, профессор кафедры «Высшая математика —1» Московского института электронной техники. Область научных интересов: математическое моделирование в космическом материаловедении, вычислительная матема- тика. Автор более 60 научных и учебно-методических работ. МЕТОДЫ ОПТИМИЗАЦИИ В серию «Основы наук» входят учебники самых известных авторов, рекомендуемые Министерством образования и науки РФ и преподавателя- ми российских вузов. Содержание учебников соответствует требованиям государственных образовательных стандартов. Для специалистов по специальностям Код специальности • Прикладная математика и информатика • Программное обеспечение вычислитель- ной техники и автоматизированных систем 010501(010200) 230105(220400) Для бакалавров по специальностям Код специальности Прикладная математика и информатика • Математика. Прикладная математика • Механика. Прикладная математика • Математика. Компьютерные науки 010500(510200) 010200(511200) 011000(511300) 010300(511800) Текст хорошо структурирован, изложен простым и доступным языком, легко и надолго запоминается. Учебники серии — крепкий фундамент Вашей будущей карьеры. ISBN 978-5-9692-0337-2 ВЫСШЕЕ ОБРАЗОВАНИЕ 9 785969 203372