Text
                    А.В.Аттетков
В.С.Зарубин
А. Н. Канатников
ВВЕДЕНИЕ
В МЕТОДЫ
ОПТИМИЗАЦИИ

А.В.Аттетков В.С.Зарубин А.Н.Канатников ВВЕДЕНИЕ В МЕТОДЫ ОПТИМИЗАЦИИ МОСКВА “ФИНАНСЫ И СТАТИСТИКА” ИЗДАТЕЛЬСКИЙ ДОМ “ИНФРА-М” 2008
УДК 519.863 ББК 22.18 А92 РЕЦЕНЗЕНТЫ'. А.В. Манжиров, доктор физико-математических наук, профессор; В.Ф. Формалев, Заслуженный деятель науки РФ, доктор физико-математических наук, профессор Аттетков А.В. А92 Введение в методы оптимизации: учеб, пособие / А.В. Аттет- ков, В.С. Зарубин, А.Н. Канатников. - М.: Финансы и статистика; ИНФРА-М, 2008. - 272 с.: ил. ISBN 978-5-279-03251-8 (Финансы и статистика) ISBN 978-5-16-003416-4 (ИНФРА-М) Освещается одно из важнейших направлений математики — теория опти- мизации. Рассмотрены теоретические, вычислительные и прикладные аспекты методов конечномерной оптимизации. Описаны алгоритмы численного реше- ния задач безусловной минимизации функций одного и нескольких перемен- ных, изложены методы условной оптимизации. Приведены примеры решения конкретных задач, дана наглядная интерпретация полученных результатов. Для студентов, аспирантов и преподавателей технических, экономических и других вузов. а 1602090000 -004 39 _ 2007 010(01) -2008 УДК 519.863 ББК 22.18 ISBN 978-5-279-03251-8 ISBN 978-5-16-003416-4 © Аттетков А.В., Зарубин В.С., Канатников А.Н., 2008 © Издательство «Финансы и статистика», 2008
ОГЛАВЛЕНИЕ Предисловие.............................................. 5 Список принятых обозначений.............................. 7 Введение................................................. 9 Глава 1. Задачи оптимизации...................................... 11 1.1. Основные понятия............................. 11 1.2. Примеры задач оптимизации.................... 12 1.3. Классы задач оптимизации..................... 19 Вопросы для самопроверки...................... 23 Глава 2. Методы одномерной минимизации .......................... 25 2.1. Предварительные замечания ................... 25 2.2. Методы прямого поиска........................ 27 2.3. Сравнение методов прямого поиска ............ 34 2.4. Методы полиномиальной аппроксимации.......... 37 Вопросы для самопроверки...................... 43 Глава 3. Многомерная безусловная минимизация..................... 44 3.1. Методы спуска................................ 47 3.2. Метод градиентного спуска.................... 50 3.3. Минимизация квадратичной функции............. 59 3.4. Метод сопряженных направлений ............... 68 3.5. Метод Ньютона и его модификации ............. 80 3.6. Квазиньютоновские методы..................... 89 3.7. Методы прямого поиска........................ 98 3.8. Методы случайного поиска.................... 119 Вопросы для самопроверки..................... 126
4 Оглавление Глава 4. Аналитические методы нелинейного программирования ... 128 4.1. Минимизация целевой функции на заданном множестве 128 4.2. Минимизация при ограничениях типа равенства ... 133 4.3. Общая задача нелинейного программирования .... 136 4.4. Седловая точка функции Лагранжа............... 143 4.5. Двойственная функция.......................... 145 Вопросы для самопроверки....................... 149 Глава 5. Численные методы нелинейного программирования.......... 151 5.1. Метод условного градиента..................... 151 5.2. Использование приведенного градиента.......... 158 5.3. Проектирование точки на множество............. 168 5.4. Метод проекции точки на множество............. 172 5.5. Метод проекции антиградиента.................. 178 5.6. Метод возможных направлений................... 199 5.7. Методы последовательной безусловной минимизации 212 Вопросы для самопроверки....................... 221 Глава 6. Методы линейного программирования........................ 222 6.1. Виды задач линейного программирования......... 223 6.2. Графический метод решения задач линейного програм- мирования ........................................ 227 6.3. Основы теории линейного программирования.... 230 6.4. Симплекс-метод.............................; 233 6.5. Построение начального допустимого базисного реше- ния .............................................. 244 6.6. Двойственная задача линейного программирования 250 Вопросы для самопроверки....................... 258 Список рекомендуемой литературы.......................... 260 Предметный указатель..................................... 266
ПРЕДИСЛОВИЕ Предлагаемое пособие посвящено конечномерным задачам опти- мизации. В излагаемом материале основное внимание уделено при- кладным и вычислительным аспектам, в первую очередь анализу численных методов оптимизации и построению алгоритмов их ре- ализации. В книге опущены доказательства многих теоретических положений, в частности теорем о сходимости методов. По этим вопросам есть обширная литература, и „математические тонкости44, связанные с оценками сходимости методов, можно изучить самосто- ятельно. В практической деятельности более важно понимание сути методов и алгоритмов их реализации, знание условий их примене- ния. Большое количество примеров и разобранных задач, поясняемых графическими иллюстрациями и интерпретацией полученных резуль- татов, позволяет использовать данное издание не только как учебное пособие, но и как методическое, предназначенное для проведения се- минарских занятий и организации лабораторных работ. В основу книги лег методический опыт авторов, которые в те- чение ряда лет в стенах МГТУ имени Н.Э. Баумана читают лекции по методам оптимизации, ведут семинарские и лабораторные заня- тия. Этот опыт нашел свое отражение в учебнике авторов, изданном ранее . В предлагаемом издании методические наработки авторов по- лучили дальнейшее развитие. Некоторые разделы переработаны. Так, пересмотрена глава по одномерной оптимизации, три главы по мето- дам многомерной оптимизации сокращены и собраны в одну. Глава по оптимизации выпуклых функций не включена в пособие, поскольку этот материал имеет в основном теоретическое значение. Авторы огра- ничились изложением минимальных сведений по выпуклым функциям в первой главе. В то же время в книгу включен новый материал: методы случайного поиска в третьей главе, новая глава по методам линейного программирования. Аттетков А.В. Методы оптимизации: учебник для вузов / А.В. Аттетков, С.В. Галкин, В.С. Зарубин; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. - 440 с.
6 Предисловие Содержание пособия относится к специальным разделам высшей математики, для работы с ним требуется хорошее знание базового курса. В частности, предполагается, что читатель умеет оперировать основными понятиями линейной алгебры, аналитической геометрии, теории матриц и математического анализа. Мы признательны нашим рецензентам доктору физико-математи- ческих наук, профессору А.В. Манжирову и доктору физико-мате- матических наук, профессору В.Ф. Формалеву за ряд замечаний, учтенных нами при подготовке пособия.
СПИСОК ПРИНЯТЫХ ОБОЗНАЧЕНИИ <4 и ► — начало и окончание доказательства # — окончание примера, замечания {aj, а2, • • •> ап} — конечное множество, состоящее из элементов а\, G-2, • • • , 0>п {я: Р(х)} — множество, состоящее из тех и только тех элементов х, которые обладают характеристическим свойством Р(х) k = 1, N — число к принимает последовательно все значения из множества натуральных чисел от 1 до N включительно N — множество натуральных чисел Z — множество целых чисел R — множество действительных чисел R+ — множество всех положительных действительных чисел R* — множество всех неотрицательных действительных чисел — n-я декартова степень множества R действительных чи- сел (также n-мерное евклидово арифметическое про- странство) HVJ. — положительный ортант, т.е. n-я декартова степень множе- ства положительных действительных чисел R* — неотрицательный ортант, т.е. п-я декартова степень мно- жества R* неотрицательных действительных чисел АВ и | АВ\ — отрезок, соединяющий точки А и В, и его длина х = (ж, ... Хп)т — n-мерный арифметический вектор, т.е. элемент n-мерного евклидова арифметического пространства ]Rn И — длина (модуль, евклидова норма) вектора х п Z2 ak — сумма п слагаемых а], , ап k.=\ п П ат — произведение п сомножителей aj, аэ,..., ап 772 — 1 и R(J) — область определения и область значений функции /(х)
8 Список принятых обозначений sgn х — функция знака числа действительного числа х, т.е. sgn х = = 1 при х > 0, sgn х = 0 при х = 0 и sgn х — — 1 при х < О ехр(я) — экспоненциальная функция ех chain X — диаметр ограниченного множества X дХ — граница множества X sup /(х) и inf /(х) — точная верхняя грань и точная нижняя грань хех функции f(x) на множестве X max/(ж) и min/(я) — максимальное и минимальное значения хС-Х х£Х функции f(x) на множестве X f(x + 0) = lim f(x) и f(x — 0) = lim f(x) — правосторонний x—*a+0 x—+a-|-0 и левосторонний пределы функции /(х) одного действи- тельного переменного в точке а grad/(ж) — градиент скалярной функции f(x) многих переменных (а, Ь) — скалярное произведение векторов а и Ь Ат — матрица, транспонированная к матрице А Rg А — ранг матрицы А det А — определитель матрицы А с(А) — число обусловленности матрицы А || А|| — евклидова норма матрицы А I — единичная матрица f(x) —> min, х G Q, — задача минимизации функции f(x) на множе- стве Q J(x) inf, х G Q, — задача нахождения точной нижней грани функ- ции f(x) на множестве Q а Ь, Ь а — каждая координата вектора а G не меньше соот- ветствующей координаты вектора Ь G wk — антиградиент целевой функции в текущей точке xk~} итерационной последовательности {ж^} uk и /Зд. — направление спуска и шаг спуска на fc-й итерации метода спуска Н(х) — матрица Гессе скалярной функции многих переменных
ВВЕДЕНИЕ Бурное развитие информационных технологий сместило многие акценты в развитии науки. В математике повысилась роль численных методов решения прикладных задач. Эти методы в сочетании с мо- щью современной вычислительной техники позволяют решать такие задачи, которые еще 50 лет назад не поддавались исследователям. Ши- рокий класс задач, связанных с применением численных методов, — класс оптимизационных задач. На практике часто возникает ситуация, когда из нескольких воз- можных вариантов поведения необходимо выбрать один вариант, в том или ином смысле наилучший. Такой выбор (принятие наилучше- го решения) может быть осуществлен по-разному. Один из подходов заключается в количественной оценке каждого возможного вариан- та поведения (решения) и выборе среди них того, у которого оценка наилучшая (максимальная или минимальная). Так мы приходим к задаче оптимизации, которую можно сформулировать следующим образом. Есть некоторое множество возможных решений, называемых альтернативами. Каждой альтернативе можно дать некоторую коли- чественную оценку на основе некоторого критерия оптимальности. Решение задачи оптимизации состоит в определении той альтерна- тивы, для которой критерий оптимальности дает наибольшую (или наименьшую) количественную оценку. Задачи оптимизации как задачи выбора наилучшей альтернати- вы на основе критерия оптимальности возникают в самых различных ситуациях. В этом ряду особенно важна задача проектирования техни- ческих устройств и технологических процессов, в которой какие-либо параметры устройства или процесса могут в определенной степени варьироваться, причем за счет изменения этих параметров можно повысить эксплуатационные характеристики устройства или эконо- мичность проведения технологического процесса. Упомянем задачу распределения материальных и финансовых ресурсов, встречающую- ся во многих областях экономики и управления. В ряде случаев закон развития процесса или явления можно формулировать как достижение минимума некоторого показателя (например, принцип минимума по-
10 Введение тенциальной энергии в теоретической механике или принцип Ферма в оптике, согласно которому луч света следует по пути с наименьшим временем движения). Разнообразны задачи оптимизации и по своему внутреннему со- держанию. Множество альтернатив может описываться одним чи- словым параметром (одномерная оптимизация) или несколькими параметрами (многомерная оптимизация). Есть класс задач оптими- зации, в которых каждая альтернатива характеризуется бесконечным числом параметров (например, задача распределения заряда в твердом теле или задача распределения температуры в некоторой области про- странства), хотя в этом случае корректнее говорить не о бесконечном числе параметров, а о функции. Выделяя этот класс задач, говорят о бесконечномерной оптимизации, противопоставляя ей конечномер- ную оптимизацию. В задаче оптимизации может быть несколько критериев оптималь- ности. Так, в экономике развитие связано с получением наибольшей прибыли, но при принятии решений могут учитываться и другие фак- торы, например, отражающие экологическую чистоту производства, экономические риски, возникающие из-за противодействия конку- рентов, и т.п. В этом случае возникает задача многокритериальной оптимизации. В этом учебном курсе мы остановимся на задачах конечномерной оптимизации с одним критерием оптимальности.
Глава 1 ЗАДАЧИ ОПТИМИЗАЦИИ 1.1. Основные понятия Если каждая альтернатива в задаче оптимизации характеризуется совокупностью из п числовых параметров, то естественно альтерна- тивы ассоциировать с элементами n-мерного арифметического про- странства В этом случае множество всех альтернатив будет пред- ставлять собой некоторое подмножество Q С а критерий оптималь- ности, который каждой альтернативе ставит в соответствие некоторую числовую оценку, — функцию многих переменных f(x\,х*2,... ,х‘п), определенную на множестве Q. Таким образом, с математической точки зрения задача конечно- мерной оптимизации заключается в определении наибольшего или наименьшего значения функции многих переменных f(x\ ,^2» • • • на заданном множестве Q и точки х* Е Q, в которой это значение до- стигается. Так сформулированную задачу называют задачей матема- тического программирования, а функцию /(ж) = f(x\,х’2,... ,хп) — целевой функцией. Переменные х\, 2'2, ..., хп — это параметры оптимизации, каждая точка х = (xj, х^. ..., хп) efl — допусти- мое решение, а множество Q С Rn — множество допустимых реше- ний, или допустимое множество. Точку е Q, в которой целевая функция принимает наименьшее значение, называют оптимальным решением. Задачу математического программирования будем записы- вать следующим образом: /(ж) —> min, х е Q. С математической точки зрения нет различий между поиском наи- большего значения функции и поиском наименьшего значения функ- ции. Чтобы преобразовать одну задачу в другую, достаточно сменить знак целевой функции. Учитывая это, в дальнейшем ограничимся рассмотрением только одной из этих двух задач, а именно задачей минимизации функции, состоящей в поиске наименьшего значения Целевой функции на допустимом множестве и точки, в которой это значение достигается.
12 Глава 1. Задачи оптимизации Из курса математического анализа известно, что функция на задан- ном множестве может не достигать наименьшего значения. Причина в том, что она либо не ограничена снизу, либо ограничена снизу, но тем не менее не достигает точной нижней грани множества сво- их значений. И в том, и в другом случае задача минимизации не имеет решения, что говорит о некорректной ее постановке и о необ- ходимости вносить изменения в математическую модель изучаемого объекта или явления. В некоторых случаях может решаться задача поиска точной нижней грани mj функции f(x) на допустимом мно- жестве Q и построения такой последовательности точек {яЛ} С Q, для которой f(xk) при к —> ос. Подобную задачу записывают в виде /(ж) —> inf, х е Q. Задачу поиска точной нижней грани можно рассматривать как обобщение задачи минимизации. Методы решения такой задачи в целом те же, что и методы решения задачи минимизации. Поэтому мы на ней останавливаться не будем, считая, что исследуемая целевая функция на допустимом множестве достигает наименьшего значения. 1.2. Примеры задач оптимизации Рассмотрим некоторые задачи оптимизации, возникающие в гео- метрии, алгебре и других разделах математики. Многие из подобных задач можно решить геометрическим или алгебраическим путем, а также с помощью методов исследования функции на экстремум, изу- чаемых в курсе математического анализа. Рассматриваемые задачи тесно связаны с историей развития методов оптимизации и позволяют наглядно продемонстрировать многообразие объектов оптимизации — тех устройств, процессов или явлений, при исследовании которых воз- никают задачи оптимизации. Кроме того, они наглядно показывают, как возникает проблема поиска оптимального решения и как такая про- блема превращается в конкретную математическую задачу. Наконец, подходы к решению простейших задач оптимизации являются источ- никами важнейших идей, лежащих в основе современных методов решения задач оптимизации. Пример 1.1. Рассмотрим задачу определения сторон прямо- угольника, вписанного в окружность радиуса R и имеющего наиболь- шую площадь S (рис. 1.1).
1.2. Примеры задач оптимизации 13 Эта задача известна с глубокой _____ древности, и ее нетрудно решить гео- метрическим путем. Диагонали впи- /\ санного в окружность прямоугольни- /1 С ка являются диаметрами окружности ----/I и имеют фиксированную длину. Пл о- // щадь S прямоугольника равна поло- \ // вине произведения его диагоналей на X. Jxd синус угла tp между ними, т.е. S = ----- = 27?2sin(/?. Ясно, что эта площадь Рис. 1.1 будет наибольшей при sin<£ = 1, или при (>р = 7г/2. В этом случае диагонали прямоугольника перпенди- кулярны, а сам прямоугольник представляет собой квадрат. Таким образом, среди всех прямоугольников, вписанных в окружность, наи- большую площадь имеет квадрат. Сторона вписанного квадрата равна 7?\/2, а площадь — 2R2. Однако возможны и другие подходы к решению рассматриваемой задачи. В качестве параметров оптимизации выберем длины сторон прямоугольника а и Ь. Тогда площадь S через параметры оптимизации а и b будет выражаться формулой S = ab, а сами параметры а и b должны удовлетворять условиям \/а2 + Ь2 = 2R, а > О, b > 0. Мы приходим к следующей задаче минимизации, в которой допустимое множество задано с помощью одного уравнения и двух неравенств: S = ab —> шах; ' a2 + b2 = 4R2, а>0, b > 0. Отметим, что рассматриваемая задача имеет естественное обоб- щение: среди всех четырехугольников, вписанных в заданную окруж- ность, найти четырехугольник максимальной площади. Здесь расши- рено множество допустимых решений (рассматриваются произволь- ные четырехугольники, вписанные в окружность, а не только прямо- угольники). Интуитивно можно понять, что оптимальное решение остается тем же — наибольшую площадь среди всех четырехуголь- ников имеет квадрат. Однако формулировка этой задачи как задачи оптимизации и ее решение заметно сложнее. Пример 1.2 (задача Евклида). Среди всех параллелограммов, вписанных в заданный треугольник АВС с высотой Н и основанием Ь (рис. 1.2), найдем тот, который имеет наибольшую площадь.
14 Глава 1. Задачи оптимизации Рис. 1.2 В качестве параметров оптимизации в данном случае можно выбрать длину х стороны параллелограмма, лежа- щей на стороне АС треугольника, и высоту h параллелограмма, опущен- ную на эту сторону. Тогда площадь S параллелограмма будет определяться формулой S = xh. Чтобы паралле- лограмм был вписан в треугольник, параметры х и h должны быть связа- ны равенством (Н — h)/Н = х/b, где Н — высота треугольника АВС, опущенная на сторону AC, b — длина стороны АС этого треуголь- ника. Добавляя естественные ограничения х > 0, h > 0 на параметры оптимизации, приходим к следующей задаче минимизации: ' S = hx —* max; H — h < H x 0. Пример 1.3. Проведено п измерений d\, ^2,..., dn расстояния d до некоторого объекта разными наблюдателями. В качестве прибли- женного значения d этого расстояния выберем то, для которого среднее квадратичное отклонение является наименьшим. Эта задача имеет единственный параметр оптимизации —неиз- вестное значение d, подчиняющееся естественному условию d 0. Задачу несложно решить методами дифференциального исчисления функций одного переменного. Приравнивая нулю производную Jf(d), получаем линейное уравнение, из которого находим Таким образом, искомым приближенным значением оказалось среднее арифметическое результатов измерений. #
1.2. Примеры задач оптимизации 15 При разработке того или иного технического устройства обыч- но часть его параметров можно изменять в определенных пределах. Образуется некоторое множество вариантов создаваемого устройства. Среди этих вариантов желательно выбрать тот, который имеет наи- лучшие эксплуатационные характеристики. В результате возникает задача оптимизации, которую часто называют задачей оптимального проектирования. Рассмотрим одну из простых задач оптимального проектирования, состоящую в выборе емкости такой формы, которая при заданной площади поверхности имеет наибольший объем или при заданном объеме — наименьшую площадь поверхности. Пример 1.4. Пусть требуется спроектировать бак горючего в виде прямого кругового цилиндра заданного объема V, на изготовле- ние которого будет затрачено наименьшее количество листовой стали. В качестве параметров оптимизации выберем радиус R и высоту Н цилиндра. Тогда затраты материала на изготовление бака будет опре- делять суммарная площадь S его боковой поверхности и двух плоских днищ, вычисляемая по формуле S = 2тгR(H + R). Заданный объем V бака можно вычислить через параметры оптимизации по формуле ttR2H = V. Таким образом, мы приходим к задаче минимизации 2тг7?(Я + 7?) —» min; 7гЛ2Н = V, R>0, Н > 0. Чтобы решить поставленную задачу, можно с помощью уравнения, связывающего параметры оптимизацииRhH, выразить один из них через другой, например, Н через R: Исключив из целевой функции параметр Я, придем к задаче минимизации функции одного переменного: S(R) = 2^ + 2тгД2. Вычислим производную Sf(R) и приравняем нулю: 5'(Л) = -2-^ + 2тгЯ = 0.
16 Глава 1. Задачи оптимизации В результате получаем Нетрудно убедиться в том, что 7?* — точка локального минимума функции S(R) и что функция S(R) достигает наименьшего значения на интервале (0, +оо), так как она является непрерывной на этом интервале и бесконечно большой при R —> +0 и при R —> +оо. Значит, точка 7?* является точкой наименьшего значения функции Зная 7?*, находим Итак, цилиндрический бак горючего объема V будет иметь наи- меньшую площадь поверхности в том случае, когда его высота совпа- дает с диаметром его основания. # При постановке задачи оптимального проектирования важно точно формулировать цель оптимизации. Например, задача, рассмотренная в примере 1.4, могла появиться как задача уменьшения количества ли- стовой стали, расходуемой на изготовление партии баков горючего. Минимизация площади поверхности отвечает требованию сократить расход материала, но не учитывает всех обстоятельств раскроя ма- териала. Задачу можно поставить по-иному и получить лучшее техническое решение. Для заготовки одного круглого днища площа- дью 7гТ?2 необходимо использовать квадратный лист площадью 47?2, причем после раскроя оставшаяся часть листа, скорее всего, окажет- ся в отходах. Поэтому в качестве целевой следует взять функцию S = ItcRH + 87?2. Изменение целевой функции приведет к другому ответу: = Я* = -Л,. 2 7Г Впрочем, уточнять цель оптимизации можно разными способами. При изготовлении партии баков на одном листе стали стандартно- го размера может разместиться несколько элементов одного изделия (боковых поверхностей и торцов). Возникает непростая задача опти- мального раскроя листового материала. При постановке задач оптимального проектирования также важно, чтобы математическая модель объекта оптимизации достаточно полно отражала именно те свойства объекта, улучшение которых является
1.2. Примеры задач оптимизации 17 целью оптимизации. Разработка такой модели обычно требует ис- пользования сведений из соответствующих инженерных дисциплин или областей техники. Задачи оптимизации широко распространены в экономике и упра- влении. Многие из них основаны на сопоставлении расходуемых ресурсов и получаемого экономического результата. Этот подход часто называют методом „затраты — эффективность". Его использование приводит к задачам оптимизации двух разновидностей: обеспечение максимальной эффективности при заданных затратах; определение минимальных затрат, позволяющих обеспечить эффективность не ни- же заданной. Рассмотрим несколько примеров подобных задач. Пр и м е р 1.5. Предположим, что предприятие может выпускать продукцию п наименований, для производства которой требуется т видов ресурсов (сырья, энергии, оборудования и т.п.), причем на из- готовление одной единицы продукции j-ro наименования, j = 1,п, предприятие затрачивает объем г-го вида ресурсов, i = 1, т. Ре- ализация одной единицы продукции j-ro наименования обеспечивает предприятию доход, равный dj. Требуется так спланировать производ- ство, чтобы, во-первых, объем выпуска продукции j-ro наименования был не менее mj, во-вторых, общий объем расходуемого ресурса г-го вида не превышал fy, в-третьих, доход от деятельности предприятия был максимальным. Нами сформулирована простейшая задача оптимального распре- деления ресурсов. Обозначим через Xj, j = 1, п, планируемый объем выпуска продукции j-ro наименования. Тогда суммарный доход S будет равен п S{x\1X2,. • . ,£n) = YjjXj, а расходуемые объемы ресурсов составляют ^2 aijxj- С учетом этого получаем следующую задачу: J=l п S(vLj,*Г2 ? * *,djXj max, j=i n &ij xj j, j — 1? Xj aj, j = 1, n- 2- 9252
18 Глава 1. Задачи оптимизации Пример 1.6 (транспортная задача). Предположим, что фирма имеет п магазинов, в которые поступает товар, хранимый на т складах. Известна стоимость перевозки товара с г-го склада в j-й магазин, количество ai единиц товара на г-м складе и заказанный объем bj товара для доставки в j-й магазин. Требуется составить план перевозок товара со складов в магазины так, чтобы суммарная стоимость перевозок была минимальной. Обозначим через Xij количество товара, которое планируется перевезти с г-го склада в j-й магазин. Тогда стоимость перевозки этого товара составит с^ху, а общая стоимость S всех перевозок будет равна т п s = г=1 j=\ Магазины должны быть обеспечены товаром в точном соответ- ствии с заказом. Поэтому планируемые объемы перевозок х^ должны удовлетворять условиям 777 г=1 Однако с любого склада нельзя вывезти товара больше, чем там его находится. Следовательно, должны быть выполнены условия п г = 1, т. В результате приходим к задаче 77? 77 Z^cijXij -> min; г=1 j=l 777 i=\ 77 ^>^Xij ^г, г = 1, m; j=l ^ij О, г = 1, m, j = 1, n.
1.3. Классы задач оптимизации 19 Отметим, что сформулированная задача оптимизации может иметь решение только в том случае, когда сумма заказов всех магазинов не превышает суммарного запаса товара на всех складах, т.е. п тп У?ai' j=\ 2=1 Пример 1.7 (задача о диете). Рассмотрим задачу построения оптимального рациона питания. Обозначим: п — число видов пищевых продуктов; тп — число видов питательных веществ; — число единиц г-го питательного вещества в единице j-ro продукта; bi — ежегодная потребность в г-м питательном веществе; Cj — стоимость единицы j-ro продукта. Выясним, сколько единиц каждого пищевого продукта нужно употребить за рассматриваемый период (в данном случае за год), чтобы обеспечить потребности в каждом питательном веществе и затратить на это минимальную сумму денег. Пусть Xj — ежегодное потребление j-ro пищевого продукта. Тогда построение рациона минимальной стоимости приводит к задаче оптимизации п S = ^cjXj —> min; j п (Tij Xj bi 2 — 1, ТП, 3 Xj О, j = 1,п. 1.3. Классы задач оптимизации Предлагаемая классификации задач оптимизации, как и любая дру- гая, в значительной степени условна. В ее основу положены тип целевой функции и характер допустимого множества. Эти особен- ности задачи оптимизации оказывают решающее влияние на выбор методов ее решения. Как отмечено выше, с математической точки зрения задача опти- мизации представляет собой задачу минимизации целевой функции
20 Глава 1. Задачи оптимизации /о(ж), х е Rn, на допустимом множестве QcRn и записывается сле- дующим образом: /о(ж) —> min, ж е Q. Эта запись предполагает, что функция /о(^) определена всюду на допустимом множестве Q, т.е. область определения целевой функции включает в себя допустимое множество, хотя может и не совпадать с ним. Если допустимое множество Q совпадает с IRn, то на измене- ние параметров оптимизации (координат точки в Кп) нет никаких ограничений. В этом случае задачу минимизации называют задачей безусловной минимизации. В противном случае, когда Q ф Rn, имеем задачу условной минимизации. Допустимое множество может описываться разными способами. В наиболее типичной ситуации (см. разд. 1.2) допустимое множество описывается системой уравнений и неравенств, связывающих возмож- ные значения параметров оптимизации. При этом уравнения называют ограничениями типа равенства, а неравенства — ограничениями типа неравенства. Если целевая функция линейная, то ее область определения со- впадает с и она в не достигает экстремума. Поэтому в задаче оптимизации с линейной целевой функцией должны быть огра- ничения. В примерах 1.5-1.7 ограничения линейные, т.е. заданы уравнениями и неравенствами с помощью линейных функций. Задачу оптимизации, в которой и целевая функция, и ограничения являются линейными, называют задачей линейного программирования. Для решения подобной задачи не годятся стандартные методы исследова- ния функций на экстремум, поскольку линейная целевая функция не имеет локальных экстремумов, а линейный характер ограничений не позволяет привлекать и технику исследования функций на условный экстремум. Если в задаче минимизации либо целевая функция нелинейная, либо есть нелинейное ограничение (т.е. функция в левой части этого ограничения нелинейная), то эту задачу называют задачей нелиней- ного программирования. Задача нелинейного программирования может быть сложной вслед- ствие того, что допустимое множество, описываемое системой огра- ничений типа равенства и неравенства, может иметь очень сложную
1.3. Классы задач оптимизации 21 структуру. На это указывает и отсутствие универсального метода ре- шения, пригодного для любой задачи нелинейного программирования. В связи с этим в классе задач нелинейного программирования выде- ляют более узкие классы задач, допускающих специальные методы решения. Если в задаче нелинейного программирования все ограничения (и типа равенства, и типа неравенства) линейные, а целевая функция квадратичная, т.е. представляет собой многочлен второй степени, то такую задачу называют задачей квадратичного программирова- ния. Частный случай подобной задачи — безусловная минимизация квадратичной функции — часто используется для проверки качества используемых методов оптимизации. Выделим частный случай задачи нелинейного программирования, близкий к задаче квадратичного программирования. Речь идет о задаче, в которой все ограничения линейные, а целевая функция является дробно-линейной, т.е. представляет собой отношение двух линейных функций. В этой задаче область определения целевой функции не покрывает Rn, и, следовательно, задача должна включать ограничения. В задачах оптимизации интерес представляют не только линейные функции, но и функции вида п = Х = (Х[, х2, хп), .7 = 1 равные сумме функций одного переменного, — сепарабельные функ- ции. Задачу нелинейного программирования, в которой целевая функция и левые части ограничений являются сепарабельными функ- циями, называют задачей сепарабельного программирования. В инженерных расчетах нередко встречаются функции вида т г=1 где > 0, i = 1, т, а функции Pi(x) — мономы п м®) = П4° j=i
22 Глава 1. Задачи оптимизации с действительными степенями Такие функции рассматриваются на положительном ортанте R" = {(.-CJ, .Т2) • • •, Хп): Xj > 0, j = 1, п} . и называются поз ин омами. Позиномы близки к многочленам (полиномам), но отличаются от последних тем, что показатели степени могут быть любы- ми действительными числами (у многочленов они являются целыми неотрицательными), а коэффициенты q всегда положительны (у мно- гочленов коэффициенты — любые действительные числа). Задачу нелинейного программирования, в которой целевая функ- ция и левые части ограничений являются позиномами, относят к задачам геометрического программирования. Среди задач нелинейного программирования выделяется доста- точно широкий класс задач выпуклого программирования. В таких задачах допустимое множество Q является выпуклым множеством, а целевая функция /о (ж) — выпуклой функцией. Дадим определение того и другого. Множество X С Rn называется выпуклым, если для любых точек х и у из X и любого действительного числа а е (0, 1) выполняется условие ах + (1 — а)у е X. Выпуклые множества обладают важным свойством: пересечение любого семейства таких множеств есть вы- пуклое множество. Функция /(ж), определенная на выпуклом множестве X, называ- ется выпуклой функцией*, если для любых точек х и у из множества X и действительного числа a е (0, 1) выполняется неравенство /(ax + (l -а)у) <а/(х) + (1 Если это неравенство для любых х,у е X строгое, то и функ- цию /(ж) называют строго выпуклой функцией. Пример такой функции — квадратичная функция с положительно определенной ква- дратичной формой. Отметим, что для выпуклой функции /(ж), определенной на множестве X, множество {ж 6 X: /(ж) < с} выпуклое (может быть, пустое). Отсюда, в частности, следует, что если функции /Дж), *В математическом анализе в этом случае говорят о функции, выпуклой вниз.
Вопросы для самопроверки 23 /2(х), • • • ’ А(ж) определены на одном выпуклом множестве X С Rn и являются выпуклыми, то и функция /(®) = min{/|(®), выпуклая. Для выпуклой функции любая точка локального минимума есть точка наименьшего значения. Для выпуклой и дифференцируемой функции любая стационарная точка (точка с нулевым значением градиента) есть точка наименьшего значения. Строго выпуклая функция может иметь только одну точку наименьшего значения. Сильно выпуклая функция, т.е. функция, которая для любых точек х, у е X удовлетворяет условию /(а® + (1 - а)у) а/(х) + (1 - а)/(1/) - а(1 - а)7|® - у|2, с некоторой постоянной 7 > 0, всегда достигает наименьшего значе- ния. Особняком стоят задачи, в которых параметры оптимизации могут принимать дискретное, в частности конечное, множество значений. Такие задачи относят к задачам дискретного программирования. Среди них — задачи целочисленного программирования, в которых параметры оптимизации могут принимать лишь целочисленные зна- чения. Вопросы для самопроверки 1. Сформулируйте задачу математического программирования. Что в задаче математического программирования называют допусти- мым решением, а что — оптимальным решением? 2. Может ли в задаче нелинейного программирования целевая функция быть линейной? 3. Чем задача безусловной оптимизации отличается от задачи условной оптимизации? 4. Может ли задача линейного программирования быть в то же время задачей целочисленного программирования? 5. Что такое целевая функция? Какой вид целевая функция имеет в задаче выпуклого программирования?
24 Глава 1. Задачи оптимизации 6. Дайте пример задачи математического программирования, не имеющей решения. Можно ли утверждать, что задача математиче- ского программирования имеет решение, если допустимое множество замкнуто и ограничено? 7. Приведите пример задачи квадратичного программирования, не имеющей решения. Можно ли утверждать, что задача квадратичного программирования имеет решение, если допустимое множество за- мкнуто и ограничено? 8. Приведите пример задачи математического программирования, в которой стационарная точка не является решением задачи. Всегда ли решение задачи математического программирования является ста- ционарной точкой целевой функции?
Глава 2 МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ 2.1. Предварительные замечания Остановимся на задаче одномерной оптимизации. В этом случае целевая функция есть функция одного действительного переменного, а допустимое множество представляет собой некоторое подмножество числовой оси. Наиболее важным с практической точки зрения явля- ется случай, когда допустимое множество есть числовой промежуток, т.е. интервал, полуинтервал или отрезок. Напомним, что функция, непрерывная на отрезке, достигает на этом отрезке наибольшего и наименьшего значения. Поэтому задача минимизации в случае, когда допустимое множество есть отрезок, а целевая функция непрерывна на этом отрезке, всегда имеет решение. Задача минимизации функции одного переменного может не иметь решения, если: • допустимое множество есть отрезок, но на этом отрезке целевая функция имеет точки разрыва; • допустимое множество есть интервал или полуинтервал. Например, функция /(я), (строго) убывающая на полуинтервале [а, 6), не достигает наименьшего значения на этом полуинтервале, хотя при этом она может быть непрерывной и ограниченной снизу. Та же функция, доопределенная в точке b значением /(а), не достигает наименьшего значения и на отрезке [а, Ь]. Функция может достигать наименьшего значения как в единствен- ной точке, так и на некотором множестве точек, конечном, счетном или несчетном. Например, функция f(x) = х\ рассматриваемая на отрез- ке 1], достигает наименьшего значения 0 в единственной точке х* = 0, в то время как функция д(х) = 1 — т4 на том же отрезке дости- гает своего наименьшего значения 0 в двух точках: —1 и 1. Функция ^С7;) = х2 sin2 1, доопределенная в точке х = 0 значением 0, достигает
26 Глава 2. Методы одномерной минимизации наименьшего значения 0 в счетном числе точек, а именно в точках х^ = -J-, k = ±1, ±2 ..., и в точке х$ = 0. К7Г В теории одномерной оптимизации выделен важный класс функ- ций, которые на отрезке достигают наименьшего значения и притом в единственной точке. Функцию/(т) называют унимодальной функци- ей на отрезке [а, Ь], если существует такая точка х* е [а, Ь], что функция f(x) на отрезке [а,ж*] убывает, а на отрезке [ж*, Ь] возрастает. Точка а?* может быть внутренней точкой отрезка [а, Ь] (т.е. а < х* < Ь) или совпадать с одним из его концов. Унимодальная функция может иметь точки разрыва, но таких точек не более чем счетное множество и все они будут точками разрыва I рода. Ясно, что унимодальная функция f(x) достигает наименьшего значения в рубежной точке х*. Примеры графиков унимодальных функций приведены на рис. 2.1. Рис. 2.1 Существуют разные методы решения задач одномерной оптимиза- ции. Если функция дифференцируема на отрезке, то можно, используя необходимые и достаточные условия локального экстремума, опреде- лить все точки локального минимума, добавить к ним концы отрезка и простым перебором среди этих точек найти ту, в которой функция до- стигает наименьшего значения. Однако на практике нередки ситуации, когда либо функция не является дифференцируемой, либо неизвестно, является ли она дифференцируемой, либо функция дифференцируема, но трудно вычислить ее производные. В таких ситуациях применя- ют методы прямого поиска, характеризующиеся тем, что в них не/
2.2. Методы прямого поиска 27 используются производные функции, а вычисляются лишь значения самой функции. Другие методы можно классифицировать по порядку используе- мых производных: в методах первого порядка вычисляются произ- водные первого порядка, но не второго и более высоких порядков, в методах второго порядка вычисляются производные не выше второго порядка и т.д. 2.2. Методы прямого поиска Можно выделить две группы методов прямого поиска, обусловлен- ные двумя принципиально различными подходами к решению задачи: 1) методы пассивного поиска — точки, в которых вычисляются значения функции для определения ее наименьшего значения, выби- рают заранее, т.е. до вычисления значений функции в этих точках; 2) методы последовательного поиска — точки, в которых вычи- сляются значения функции, выбирают последовательно исходя из уже выбранных точек и значений функции в них. Последовательный поиск в общем случае эффективнее пассивно- го. В этом можно убедиться, вспомнив детскую игру, в которой надо найти спрятанную вещь, задавая вопросы и получая на них ответы „да“ или „нет“. Задавая вопросы последовательно с учетом предыдущих ответов, можно найти спрятанную вещь быстрее, чем задав опреде- ленное количество заранее подготовленных вопросов. Однако методы пассивного поиска проще в реализации. Эффективность метода прямого поиска в задаче одномерной опти- мизации определяется количеством значений функции, которые нужно вычислить для достижения требуемой точности. Количество выпол- ненных итераций характеризует не объем вычислительной работы, а лишь ее организацию (что и в каком порядке вычисляется). Эффективность метода — один из критериев, учитываемых при выборе метода для решения конкретной задачи. Другой критерий — простота реализации метода. В простейших задачах оптимизации эффективность может быть менее важным критерием, чем простота реализации. Например, для поиска наименьшего значения элемен- тарной функции вполне допустимо использовать какой-либо вариант пассивного поиска, проигрывая при этом в эффективности, но вы- игрывая в простоте метода. Ситуация меняется, если вычисление
28 Глава 2. Методы одномерной минимизации значения функции является трудоемкой операцией, связанной, напри- мер, с решением системы дифференциальных уравнений. Тогда на первый план выходит эффективность метода, а простота реализации становится вторичным фактором. В методах последовательного поиска обычно используют один из следующих двух подходов. Первый подход состоит в построении последовательности точек, сходящейся к искомой точке минимума целевой функции (это общий подход, характерный для задач много- мерной оптимизации). Второй подход состоит в построении последо- вательности вложенных отрезков, каждый из которых содержит точку минимума целевой функции. Если последовательность длин отрезков стремится к нулю, то эти отрезки будут стягиваться к точке миниму- ма. Этот подход возможен только в задачах одномерной оптимизации и имеет дополнительные преимущества: в качестве приближенного зна- чения точки минимума можно взять произвольную точку очередного отрезка из последовательности вложенных отрезков, при этом длина отрезка будет определять точность приближения. В теории одномер- ной оптимизации каждый отрезок из последовательности вложенных отрезков, стягивающихся к точке минимума, называют интервалом неопределенности. Второй подход к последовательному поиску реализуется в наибо- лее распространенных методах одномерной оптимизации. Основой построения последовательности вложенных отрезков, стягивающих- ся к точке минимума функции, является так называемая процедура исключения отрезка, вытекающая из следующего утверждения. Теорема 2.1. Пусть функция /(ж), унимодальная на отрезке [а, 6], достигает минимума в точке х* Е [а, Ь], а точки с и d принадлежат отрезку [а, Ь], причем с < d. Если /(с) < то х* Е [а, d], а если /(с) > /(d), то х* € [с,Ь]. ◄ Если /(с) С f(d), то точки с и d не могут обе располагаться левее рубежной точки х* унимодальной функции f(x), так как в противном случае они попадают на отрезок [а, х*], на котором функция /(х) убывает, а следовательно, будет выполняться неравенство /(с) > f(d). Значит, по крайней мере точка d расположена правее точки х*, т.е. d > х*, а точка х* оказывается на отрезке [a, d]. Если /(с) > f(d), теорема доказывается аналогичным образом. ► Пусть функция f(x) унимодальна на отрезке [а, Ь] и выделен интер- вал неопределенности [а^ Ь^], содержащий точку минимума х*. Вы-
2 2. Методы прямого поиска 29 берем на интервале (а^, Ьк) произвольные точки ск и dk, ск < dk. Если f(ck) /№)> то в соответствии с доказанной теоремой х* е [ад:, dk], и в качестве нового интервала неопределенности [а/,+ 1, Ьд.+ 1] можно выбрать отрезок [ак, dk\. Если же f(ck) f(dk), то т* е [ск, Ьд.], и в качестве нового интервала неопределенности можно выбрать отрезок [сд,Ьд]. В результате исходный отрезок [ак, bk], содержащий точку минимума, будет заменен меньшим отрезком [ак+\, ^+i]. Это и есть процедура исключения отрезка. Отметим случай f(ck) = f(dk). Нетрудно показать, что тогда х* 6 [ск, dk], т.е. в качестве нового интервала неопределенности мож- но выбрать отрезок [ск, dk\, меньший, чем дает процедура исключения отрезка. Однако в распространенных методах прямого поиска такое уточнение процедуры исключения отрезка не дает заметных преиму- ществ. Равенство значений функции трактуют либо как частный случай неравенства „меньше или равно“, либо как частный случай противоположного неравенства. Процедура исключения отрезка позволяет строить последователь- ность вложенных отрезков, каждый из которых содержит искомую точку минимума функции. Конкретные методы последовательного поиска, связанные с построением последовательности вложенных от- резков, различаются способом выбора точек ск и dk. Какой из отрезков [ак, dk] и [ск, Ьк] будет выбран на очередном шаге построения последовательности интервалов неопределенности, зара- нее неизвестно: это зависит от поведения минимизируемой функции. Поэтому целесообразно выбирать точки ск и dk на интервале (ак, Ьк) симметричным образом, т.е. так, чтобы отрезки [ак, dk] и [сд, Ьк\ имели одинаковую длину. В этом случае dk — ак = Ьк — ск, что равносиль- но равенству ак + bk = ск + dk. Методы прямого поиска, основанные на принципе симметрии точек ск и dkf называют симметричными методами прямого поиска. Рассмотрим два таких метода. Метод дихотомии. В последовательности вложенных отрезков, построенной с помощью процедуры исключения отрезка с симметрич- ным выбором внутренних точек, длина очередного отрезка превышает половину длины предыдущего. Напрашивается такой способ выбо- ра точек, при котором точки ск и dk на очередном отрезке [а^, расположены максимально близко к середине этого отрезка. Этот способ положен в основу одного из распространенных методов после- довательного поиска, называемого методом дихотомии (или методом Деления пополам).
30 Глава 2. Методы одномерной минимизации В методе дихотомии в качестве параметра используют достаточно малое число А > 0 (это число должно быть меньше точности вычи- сления точки минимума). На к-м шаге вычислений на отрезке [ад., Ьд.] выбирают точки сд. = (ад. + Ь^)/2 - Д и с/д. = (ад,. + Ъ^)/2 + Д, отстоя- щие от середины (ад. 4- ЬдЭ/2 отрезка [ад., Ь^] на расстояние Д (рис. 2.2). Полагая /д. = Ьд. — а^, к е Z, из очевидных геометрических сообра- жений получаем формулу 21 д.+] — 2Д = 1^, к е Z, связывающую длины двух последовательных интервалов неопределенности. Из этой фор- мулы находим 1^+1 — 2 А = (/д. — 2 А)/2, откуда Zi — 2Д = (2.1) Из равенства (2.1) выводим следующую формулу длины интервала неопределенности, получаемого на /с-м шаге метода дихотомии: к- = ^У^ + 2Д. (2-2) Из равенства (2.2) следует, что 1^ > 2Д, причем /д. —> 2Д при к —> оо. Рассматривая величину /д. как удвоенную точность прибли- женного решения задачи минимизации, полученную на fc-м шаге (при выборе в качестве приближения середины интервала неопределенно- сти), делаем вывод, что параметр А дает оценку снизу погрешности приближения в методе дихотомии. В этой ситуации естественно же- лание выбирать как можно меньшим параметр А. Однако на самом деле его нельзя уменьшать неограниченно. Дело в том, что значения функции, как правило, вычисляются приближенно. При очень ма- лом параметре А точки сд. и на отрезке [ад., Ь^] будут расположены настолько близко друг к другу, что не удастся достоверно выяснить,
2 2. Методы прямого поиска 31 какое из значений функции является большим: различие в значениях функции будет покрываться погрешностью вычислений. Метод золотого сечения. Метод дихотомии, как видно из его описания, обеспечивает наименьшее количество итераций, необхо- димых для достижения заданной точности. При этом на каждой итерации метода вычисляются два значения функции (в точках q. и dk)- Однако эффективность метода прямого поиска характеризу- ется не количеством итераций, а количеством вычисленных значений функции. Существуют методы, в которых на каждой итерации вычи- сляется только одно значение функции. Количество итераций в них больше, чем в методе дихотомии, но общее количество вычисленных значений функции может быть меньше. Можно заметить, что процедура исключения отрезка, примененная к отрезку [ад., Ь/J, дает новый отрезок [a^i, fyt+1], который содержит внутри себя одну из точек q, (вторая является одним из концов нового отрезка). В связи с этим возникает идея использовать эту точку повторно, с тем чтобы сократить количество вычисляемых значений целевой функции. В результате возникает следующая схема вычис- лений. На начальном отрезке [aj, bj] выбираем точку х\ и симметрич- ную ей точку у\ = а\ + Ь\ — х\. Полагаем q = min{rq, у\ } и d\ = = max{z|, у\}. Проводим процедуру исключения отрезка в соответ- ствии с выбранными точками q и d\ и определяем новый отрезок [«2^2]- Если будет выбран отрезок [aj, d|], то внутри него будет рас- полагаться точка q, которую используем в качестве точки rq- Если же будет выбран отрезок [q, b\], то в качестве Х2 используем точку d\. После выбора точки Х2 переходим ко второму шагу вычислений и проводим процедуру исключения отрезка [<2,2, ^]. В описанной схеме на каждом шаге необходимо вычислить всего лишь одно значение функции. Но при этом последовательность длин вложенных отрезков устроена сложнее, чем в методе дихотомии. В общем случае трудно оценить, как быстро эта последовательность стремится к нулю. Кроме того, возможна ситуация, когда на очередном ^-м шаге точка, сохраненная с предыдущего шага, окажется в середине отрезка [а^, Ь^]. В такой ситуации не удастся выбрать вторую точку для проведения процедуры исключения отрезка и необходимо выбирать новые точки. Описанных выше проблем можно избежать, если определенным образом выбрать начальную точку х\. Более того, начальную точку Т]
32 Глава 2. Методы одномерной минимизации можно выбрать так, что в последовательности {1^} длин вложенных отрезков отношение lk+\/lk будет оставаться постоянным. Оказы- вается, что при таком выборе точка xi будет осуществлять золотое сечение отрезка [aj, bj], т.е. такое его деление на две неравные ча- сти, при котором отношение длины всего отрезка к длине его большей части равно отношению длины большей части к длине меньшей. В самом деле, имеем 1\ =Ь\ — а\. Пусть для определенности точка х\ расположена правее середины отрезка [aj, Ь|], т.е. d\ = xj. В результате выполнения первого шага будет выбран новый отрезок [аг, Ьг]> по длине равный I2 = хj — aj (рис. 2.3). Пусть, например, выбран отрезок [<2,2, 62] = [ah £|]. Тогда Х2 = с\ = у\. Выполнение второго шага будет зависеть от того, как точка Х2 = у\ расположена по отношению к середине отрезка [aj, xj]. Здесь возможны два случая. В первом случае точка у\ находится правее середины отрезка [а|, х। ], т.е. т/j — aj > х\ - у\, и на втором шаге будет выбран отрезок длины Z3 = у\ — aj. Во втором случае точка у\ находится левее середины отрезка [aj, х]], т.е. у\ — а\ < х\ — у\, и на втором шаге будет выбран отрезок длины 1$ = х\ — у\. Рассмотрим каждый из случаев подробнее. Qi V1 *1 Ь1 Х Рис. 2.3 В первом случае равенство Z3/Z2 = h/l\ принимает вид У\ - - а] Xj — Q] Ь\ — fl) Исключив из этого равенства у\ с помощью уравнения xj + yi = = aj 4-6], получим b ] — х ] х ] — о ] х\ — А] Ь\ — &] откуда, вводя обозначение т = ——, приходим к уравнению 6| — fl| (2.3)
2 2 Методы прямого поиска 33 соответствующему золотому сечению отрезка длины 1 (величина г составляет большую часть этого сечения, а величина 1 - т — меньшую часть). Уравнение (2.3) сводится к квадратному уравнению г2 т - 1 = 0, имеющему единственное положительное решение т = —1 «0,618034. 2 Это решение мы будем называть коэффициентом золотого сече- ния*. Отметим, что если х\ осуществляет золотое сечение отрезка [а,, 6,],т.е. X) -ai =т(Ь1 -а]),то 2 1 J'l - ai < -(bi -«|), з/| — а.] = Ь) — ai — rrj — а.] > -(6] - а]) И 1 *1 -У\ =2(xi - а,) - (6| -а() < -(Ь( -а0 <у| -аь т.е. золотое сечение соответствует первому случаю при выполнении второго шага. Во втором случае равенство /3//2 — h/l\ принимает вид % I УI __1 1 х ] — а) b\ — о\ что после исключения у\ приводит к равенству 2(х] — а|) — (bi — а]) х\ — а\ Xj — а ] Ь ] — а 1 или 2т- 1 _ т Последнее уравнение имеет единственное решение т = 1, которое не может быть использовано для выбора точки Ж|: необходимо значение т из интервала (0, 1). Итак, если точка х\ осуществляет золотое сечение начального отрезка [cq, Ь।], то одна из точек х\ и у\ окажется внутри следующего отрезка причем эта точка (точка х^) будет осуществлять золотое сечение отрезка [q2, £>2]- Повторяя рассуждения, заключаем, что на каждом /с-м шаге точка будет осуществлять золотое сечение отрезка [ak, Ък]. В литературе наряду с т используют и обратную величину \/т = % ~ 1,618034, называемую отношением золотого сечения. 3 — 9252
34 Глава 2. Методы одномерной минимизации Метод последовательного поиска, в котором на /с-м шаге каждая из точек сд., dk осуществляет золотое сечение отрезка [ад., Ьд.], называют методом золотого сечения. В этом методе отношение очередного л/5 — 1 „ интервала неопределенности к предыдущему равно т = —-—. Для длин /д. интервалов неопределенности выполняются соотношения lk = rkll- (2.4) На каждом шаге метода, кроме первого, вычисляется одно значение функции (на первом шаге требуется вычислить два значения функции в точках х\ и у\). 2.3. Сравнение методов прямого поиска Напомним, что эффективность методов прямого поиска оценивают по количеству значений целевой функции, которые нужно вычислить для достижения заданной точности. Сравним простейший метод пас- сивного поиска, метод дихотомии и метод золотого сечения по данному показателю. Для этого будем определять точность найденного прибли- жения в зависимости от количества вычисленных значений функции, предполагая, что отрезок [а, Ь] минимизации имеет единичную длину, т.е. l\ = b — а = 1. Ни один из методов прямого поиска не дает гарантированного ре- зультата для любой функции, определенной на отрезке минимизации. Действительно, в каждом методе прямого поиска результат получа- ют, сравнивая значения функции в некотором конечном числе точек. Несложно придумать функцию, даже дифференцируемую, имеющую на заданном конечном множестве точек заданные значения и достига- ющую наименьшего значения в заданной точке. Для такой функции рассматриваемый метод прямого поиска даст неверный результат. О точности и эффективности того или иного метода можно гово- рить в рамках какого-либо класса функций. Для метода дихотомии и метода золотого сечения можно ограничиться классом унимодальных функций, поскольку именно для таких функций можно утверждать, что каждый отрезок в последовательности вложенных отрезков, постро- енных любым из этих методов, содержит точку минимума функции. Процедура исключения отрезка позволяет для унимодальных функ- ций оценить и точность простейшего пассивного поиска, при котором
2 3 Сравнение методов прямого поиска 35 начальный отрезок минимизации [а, Ь] делится на N равных частей точками л-к = (I + к = 0, ЛГ, где 5дг = ^2, и среди этих то- чек ищется точка х^ с наименьшим значением. Действительно, из неравенства /(д-д-*) < f(xk* + в соответствии с процедурой ис- ключения отрезка заключаем, что точка минимума х* находится на отрезке [а, л;к* + а из неравенства f(xk* - 6N) делаем вывод, что .т* е [xk* -6N,b\. Таким образом, Xk* - <$N X* % к* + и точка Хк* является приближением искомой точки минимума х* с точностью 5дг. Итак, в простейшем методе пассивного поиска N 4-1 вычисленное значение функции обеспечивает точность р _ b-а_ 1 N N N' В методе дихотомии за к шагов вычисляют 2к значений функции и получают приближение с точностью 1^, определяемой формулой (2.1). Следовательно, точность 6^ метода дихотомии в зависимости от количества вычисляемых значений функции определяется формулой ui 1—2Д 1 N ~ 2N/2 + 2А ~ 2N/2 (2.5) В методе золотого сечения за к шагов вычисляют к + 1 значение функции и получают приближение с точностью /д., определяемой фор- мулой (2.4). Из этой формулы вытекает, что точность 8В 9N этого метода зависит от количества вычисляемых значений функции следующим образом: = (2.6) Из приведенных формул видно, что метод золотого сечения эф- фективнее метода дихотомии, так как 69N = при N —> сю, а метод дихотомии эффективнее простейшего метода пассивного поиска, по- скольку ~ при N —> сю. В методах дихотомии и золотого сечения погрешность приближения при возрастании N убывает в геометрической прогрессии, причем знаменатель геометрической про- фессии в методе золотого сечения т = 0,618034 меньше знаменателя геометрической прогрессии в методе дихотомии 1/\/2 » 0,707107. В
36 Глава 2. Методы одномерной минимизации простейшем методе пассивного поиска погрешность при росте ко- личества значений функции N убывает заметно медленнее, обратно пропорционально N. Пример 2.1. Для функции /(х) = 1 ОО(гг — 0,24)2 на отрезке [О, 1] найдем точку минимума х* с точностью е* =0,1» используя методы дихотомии и золотого сечения. Функция /(ж) на отрезке [0, 1] уни- модальна. График этой функции по- казан на рис. 2.4. Для метода дихотомии выберем пара- метр Д = 10-3. Результаты вычисле- ний по этому методу представлены в табл. 2.1, а по методу золотого сече- ния — в табл. 2.2. Для достижения требуемой точности в методе дихото- мии потребовалось вычислить восемь значений минимизируемой функции, в то время как в методе золотого се- чения оказалось достаточно шести значений функции. Отметим, что в простейшем методе пассивного поиска для достижения нужной точ- ности требуется 10 значений функции. Таблица 2.1 к Интервал неопределенности Ск dk Ж) 1 (0,000, 1,000) 0,499 6,7081 0,501 6,8121 2 (0,000, 0,501) 0,250 0,0090 0,252 0,0132 3 (0,000, 0,252) 0,125 1,3283 0,127 1,2826 4 (0,125, 0,252) 0,187 0,2796 0,189 0,2588 5 (0,187, 0,252) Таблица 2.2 к Интервал неопределенности Ск /(а) dk f(dk) 1 (0,000, 1,000) 0,382 2,0154 0,618 14,2910 2 (0,000, 0,618) 0,236 0,0015 0,382 2,0154 3 (0,000, 0,382) 0,146 0,8855 0,236 0,0015 4 (0,146, 0,382) 0,236 0,0015 0,292 0,2683 5 6 (0,146, 0,292) (0,202, 0,292) 0,202 0,1473 0,236 0,0015
2 4 Методы полиномиальной аппроксимации 37 2.4. Методы полиномиальной аппроксимации Наименьшее значение функции одного переменного можно ис- кать заменяя функцию приближенно (аппроксимируя) некоторым многочленом. В этом заключается суть совокупности методов, называ- емых методами полиномиальной аппроксимации. Различаются эти методы степенью аппроксимирующего многочлена и способами вы- числения его коэффициентов. При построении аппроксимирующего многочлена могут использоваться не только значения самой функции, но и ее производных. Метод квадратичной аппроксимации. В этом методе аппрокси- мирующий многочлен второй степени определяется по трем извест- ным значениям /], /2, /з минимизируемой функции в трех точках х\, Хъ Ху Чтобы определить коэффициенты а, 6, с многочлена второй степе- ни ах2 4- Ьх 4- с, который в трех различных точках х\, х2, х'з принимает заданные значения f\, /2, /з, нужно найти решение системы линейных уравнений ах2 4- bxi + с = fi, i = 1,2, 3. Определитель этой системы 1 = (д?! - - х3)(д;2 - т3) представляет собой определитель Вандермонда и отличен от нуля, когда Х|, д;2, д;з попарно различны. В этом случае система линейных уравнений имеет решение, и притом единственное. Его можно записать в виде а = h + h + ___________________________________________Ь_________; (а,’] - Х2)(1-] - (Х2~Х\)(Х2-Хз) (2:3 - Х’1)(х-3 - Х’2) /| (Д-2 + -гз)____/2(^3 + ^1)_________. (х-|-х2)(а,-3-!•]) (Х2-Х]>)(Х2-Х2) Оз - Х))(а:2 - х3) ’ с = /| J'2-Гз /2X3X1 + /за-ча-'г 01 - ;1-’2)О1 - j;3) (х2 - Х|)(х2 - х3) (хз - Х\)(Х2 - х2) Вандермонд Л.Т. (1735-1796) — французский математик.
38 Глава 2. Методы одномерной минимизации Подставив найденные выражения для коэффициентов а и b в необходимое условие yf = lax + b = 0 экстремума функции, получим единственную стационарную точку аппроксимирующего многочлена b 1 /1Г23 +/2П1 +/з’’12 — х* =----=----------------------, (2.7) 2а 2 /i«23 + /2^31 + hs\2 где rjj = х? — и Sij = Xi~ Xj,i, j = 1,2, 3. Так как у" = а = const, то в точке при а > 0 имеем минимум аппроксимирующего многочлена у(х), а при а < 0 — максимум. Существуют различные модификации метода квадратичной ап- проксимации, различающиеся способом выбора на каждом k-м шаге (/с) (к) (к) „ . D трех точек , х\ , х^ для аппроксимации целевой функции. В (к) простейшем варианте, найдя точку минимума х* аппроксимирующе- го многочлена на fc-м шаге, на следующем шаге используют эту точку и две точки предыдущего шага (например, ближайшие к точке я* ). Можно также к точке х^ добавлять ближайшую точку предыдущего шага и новую точку, симметричную добавленной точке относительно точки x*k\ К недостаткам таких модификаций метода квадратичной аппроксимации следует отнести трудности с определением точности полученного приближения, поскольку они не приводят к построению последовательности вложенных интервалов неопределенности. Про- цесс вычислений останавливают, если значения f(x^) и полученные на двух шагах, окажутся близки. Для функции, унимодальной на отрезке минимизации, метод ква- дратичной аппроксимации можно сочетать с процедурой исключения отрезка. На начальном отрезке [а], полагаем = а, х^ = Ь, а точку в интервале [а, Ь] выберем произвольно. По формуле (2.7) находим точку минимума аппроксимирующего многочле- на. Определив сj = min2:*^}, c/i = max{2;^\ проводим процедуру исключения отрезка, получая новый интервал неопреде- ленности [а2, 62]- В этот интервал попадает одна из точек х^ и Ее обозначаем через х^ и переходим к следующему шагу. В описанном методе предполагается, что на fc-м шаге найденная точка минимума х^ аппроксимирующего многочлена попадает в интервал неопределенности [а/., Ь^]. Однако в общем случае это не так.
2.4. Методы полиномиальной аппроксимации 39 Например, функция/(х) = х3 является унимодальной на отрезке [1,3]. Выбрав л = 1,1'2 = 2, х3 = 3, по формуле (2.7) получим х» = Л < 1, т е. точка х* оказалась вне интервала [1,3]. При реализации приведенного метода необходимо на каждом шаге проверять условие х^ е [а^, Ь^]. Если это условие оказалось невыполненным, то вместо точки х^ можно взять произвольную точку отрезка bk] (как на первом шаге). Пример 2.2. Найдем методом квадратичной аппроксимации с процедурой исключения отрезка минимум функции f(x) = х2 + 16/х на отрезке [1,4]. На указанном отрезке функция f(x) унимодальна. График этой функции приведен на рис. 2.5, расчеты — в табл. 2.3. Таблица 2.3 к A(fc) /(^’) Т" 1,000 3,000 4,000 17,000 14,333 20,000 2,286 12,224 2 1,000 2,286 3,000 17,000 12,224 14,333 2,200 12,113 3 А 1,000 2,200 2,286 17,000 12,113 12,224 2,087 12,022 4 с 1,000 2,087 2,200 17,000 12,022 12,113 2,054 12,009 э f. 1,000 2,054 2,087 17,000 12,009 12,022 2,027 12,002 о 7 1,000 2,027 2,054 17,000 12,002 12,009 2,016 12,001 о 1,000 2,016 2,027 17,000 12,001 12,002 2,009 12,000 о 1,000 2,009 2,016 17,000 12,000 12,001 2,005 12,000
40 Глава 2. Методы одномерной минимизации Проведенные расчеты показывают, что в методе квадратичной интерполяции, даже если мы получим последовательность вложен- ных интервалов неопределенности, последовательность длин этих интервалов может не стремиться к нулю. В рассматриваемом случае последовательность длин интервалов неопределенности стремится к единице, и мы не можем адекватно оценить точность полученного решения. Отметим, что точное значение точки минимума функции не- трудно найти, используя необходимое условие локального экстремума. В результате получим х* — 2 и f(x*) = 12. # Метод квадратичной аппроксимации хорошо „работает44, если точ- ки, в которых вычисляют значения функции, расположены близко к точке минимума функции, а сама функция хорошо аппроксими- руется многочленом. Поэтому метод квадратичной интерполяции целесообразно применять для уточнения приближенного решения, найденного другим методом, например, методом золотого сечения. Эффективность метода квадратичной аппроксимации зависит от поведения функции в окрестности точки минимума. Если целевая функция дифференцируема, то ее производная в окрестности точки минимума мала, а поведение функции в соответствии с формулой Тейлора определяется квадратичным слагаемым. Это обстоятельство и положено в основу метода квадратичной аппроксимации. Метод кубической аппроксимации. В этом методе целевая функция аппроксимируется многочленом третьей степени, причем для построения аппроксимирующего многочлена используются значения не только самой целевой функции, но и ее производной. Рассмотрим вариант этого метода, основанный на кубическом интерполяционном многочлене Эрмита . Запишем произвольный многочлен третьей степени в следующем виде: Я(х) = ао + (а: — .Т]) 4- “ х\)(х ~ х2) + аз(х ~ х\)2(;г ~ х2>- Полагая, что Н(х\) = , Н(х2) = Л, находим а0 — /1, ао + а1 (х2 " -а?|) = /|. Отсюда ai = (/2 - /) )/(^2 - *1)- Продифференцируем Н(х): Н'(х) = а] + а2^х - Х|) 4- а,2(х — Х2) 4- 4- аз(т — .Т|)2 4- 2аз(а; — xi )(х — Х2). *Эрмит Ш. (1822-1901) — французский математик.
2 4 Методы полиномиальной аппроксимации 41 Полагая, что Я'(.г| ) = /{, Н'(х2) = f2, получаем два уравнения: П| +«2(^1 -j;2) = /(; а1 +02(^2-21)+ а3(я--2 -х-|)2 = f2. Решая эти уравнения, приходим к следующим формулам для коэффи- циентов «о, «|> «2, «з интерполяционного многочлена: ' ао = /]; /2 - /1 . . Я| = ------ = А", 2:2 — х'1 < f2~f\ /[ _ (2.8) аг = т-----75-----------—--------; \х2 — х । )z х2 — х । х2 — х I = Л + /2 2 Л-/| = Л + ,аз (х2-х\)'1 (х2-Х|)3 (a.'2-xi)2 где/с = (/2 —/| )/(^2 — а'|). В качестве приближения к точке минимума целевой функции выбираем точку минимума многочлена Н(х). Эта точка может быть найдена как решение уравнения Hf(x) — 0. Учитывая значения коэффициентов интерполяционного многочлена Эрмита, получаем H\x) = f\(x~Xi)2 + f2(x-X2)2 + + 2(Л + £ - 3k) (z -х^х- х2). (2.9) Из двух корней квадратного уравнения необходимо выбрать меньший, если коэффициент f{ + f2~ 2к при х2 положителен, и больший, если этот коэффициент отрицателен. Пусть на отрезке [xj, Х2] целевая функция унимодальна, при- чем у । < о, /' > 0. Тогда многочлен Эрмита Н(х) на интервале х2) имеет единственную точку локального минимума ху Если (^з) = 0, то Х3 будет стационарной точкой целевой функции /(х), К0Т0Рая в силу условия унимодальности будет точкой ее локального минимума. Если /'(х3) < О, то выбираем отрезок [x'j, х'2] = [хз, Х2], На котоРом /'(x'i) < 0, ff(xf2) > 0. Если /'(хз) > О» то выбираем 5Т^ЗОК ’ ^2] ~ [х‘1, *з], на котором f'(x\) < 0, /'(х^) > 0. На вы- н°м отрезке снова можно аппроксимировать целевую функцию тате °ЧЛеном Эрмита, уточняя положение точки минимума. В резуль- иолучаем итерационную процедуру, приводящую к построению
42 Глава 2. Методы одномерной минимизации последовательности интервалов неопределенности, стягивающихся к точке локального минимума целевой функции. Рассмотрим порядок вычисления точки х^ локального многочлена на очередном интервале неопределенности. В уравнении Н'(х) = О, записанном в виде (2.9), вводим новое переменное /1 = -—Полу- Х1 — X чаем уравнение ^/z2-2(/; + ^-3/c)M + ^=O, имеющее корни разных знаков, причем положительный корень со- ответствует корню уравнения Н'(х) = 0, попадающему в интервал (xj, Х2). Этот корень выражается формулой 7+Ут2-ЛЛ к где 7 — Д + /2 — 3k. Используя значение р., вычисляем ху — Пр и мер 2.3. Для функции /(х) = х2 4- 16/гг из примера 2.2 рассмотрим процесс поиска точки минимума х* на отрезке [1,4] с помощью метода кубической аппроксимации. Имеем /) =/(!) = 17; /2 — fW = 20. По формуле f'(x) = 2х - — 16/х2 получаем /' = /'( 1 ) = —14; /£ = /'(4) = 7. Отсюда видно, что с помощью метода кубической интерполяции можно построить последовательность интервалов неопределенности, стягивающихся к точке минимума целевой функции. Для отрезка [xj, Х2] = [1,4] находим к = 1; 7 = —10; ц « 0,5816; % 2,1032. Так как /'(^з) « 0,5893 >0, то в качестве нового г (!) (01 (0 1 интервала неопределенности выбираем [х, , х2 ], где ж] — xi = 1 и 4° =£3 «2,1032. Для выбранного отрезка получаем /1 = 17; /2 12,0309; = —14; /2 0,5893. Выполнив вычисления, находим ~ 1,9209. Посколь- ку ~ —0,4946 < 0, в качестве нового интервала неопределенно- сти выбираем [гГ|2\ х^], где « 1,9209; х^ = ~ 2,1032. На третьем шаге имеем f\ & 12,0193; /2 12,0309; « —0,4946; f2 ~ 0,5893. Выполнив вычисления, получаем х^ « 2,00003, что от- личается от точного значения х* = 2 лишь в пятом знаке после запятой.
рпппосы длясамопроверки 43 Однако отметим при этом, что очередной интервал неопределенности [^з) где х’| = « 1,9209; х^ = х^ « 2,00003, имеет дли- 1 ^.(3) __ х.(3) ~ 0,079, которая гарантирует точность лишь в пределах 0,079/2 -0,04. Вопросы для самопроверки 1. Имеет ли функция /(ж) = хе~х экстремум в интервале (0, 3)? Если имеет, то в какой точке? Имеет ли она минимум в том же интервале, минимум на отрезке [0, 3], и если да, то в какой точке? 2. Являются ли унимодальными: а) функция f(x) = х2 - 2х - 1 на отрезках [0, 2] и [1,5, 2]; б) функция /(т) = ||х-11 - 11 на отрезках [-3,3] и [0,2]? 3. Объясните, в чем различие между пассивным и последователь- ным поиском. 4. Что называют интервалом неопределенности в задачах одномер- ной оптимизации? 5. Какое отношение имеет метод золотого сечения к золотому сечению? 6. В чем состоит метод дихотомии? 7. Опишите метод квадратичной аппроксимации. Какие трудности возникают при его реализации? 8. Каким образом сравнивают эффективность методов прямого поиска? 9. Ищется минимум функции f(x) = 1 — хе~х2 на отрезке [0, 1]. Определите количество значений функции, требуемых для достижения точности 0,01, если используется: а) метод дихотомии; б) метод золотого сечения. Как изменится количество вычисленных значений Функции, если: а) целевую функцию /(т) заменить функцией д(х) = — 1 - х е г; б) отрезок [0,1] заменить отрезком [—1,2]?
Глава 3 МНОГОМЕРНАЯ БЕЗУСЛОВНАЯ МИНИМИЗАЦИЯ Задачи многомерной оптимизации, как правило, значительно сложнее, чем задачи одномерной оптимизации. С ростом числа пе- ременных возрастают объемы вычислений. Но дело не только и не столько в объеме вычислений: поведение функции многих пере- менных более сложное, чем поведение функции одного переменного. Кроме того, допустимое множество в многомерном случае может иметь сложную структуру. Эти два фактора затрудняют предвари- тельный анализ задачи оптимизации. В задачах безусловной оптимизации допустимое множество совпа- дает со всем линейным арифметическим пространством соответству- ющей размерности, а основным фактором, определяющим сложность решаемой задачи, становится поведение целевой функции. Большие различия в поведении функций многих переменных порождают и боль- шое количество методов безусловной оптимизации. Общего метода поиска наименьшего значения функции многих переменных, кото- рый можно было бы использовать во всех случаях, нет. Приступая к решению задачи безусловной оптимизации, нужно провести предва- рительный анализ целевой функции и на его основании выбрать один из численных методов, который в заданных условиях может обеспе- чить решение задачи. Задачу безусловной минимизации можно записать в виде /(ж) —> min, жейп, (3.1) где /(ж) — целевая функция, в данном случае некоторая функция многих переменных, определенная в IRn. Эта задача имеет решение, если функция /(ж) имеет хотя бы одну точку минимума, т.е. точку, в которой она достигает наименьшего значения. Точка минимума может быть не единственной. Методы безусловной оптимизации можно разделить на три боль- ших класса в зависимости от используемой информации о целевой функции.
45 1 Методы нулевого порядка, или прямого поиска, в которых спользуются значения целевой функции, но не значения ее частных производных. 2 Методы первого порядка, в которых наряду со значениями целевой функции используются и значения ее частных производных первого порядка. 3 Методы второго порядка, в которых используются значения самой целевой функции и ее частных производных до второго порядка включительно. Методы первого и второго порядков хорошо разработаны. Боль- шинство из них теоретически обоснованы, получены условия сходимо- сти и оценки скорости сходимости для определенных классов целевых функций. Возможности методов прямого поиска менее изучены, как правило, они носят эвристический характер и не имеют теоретиче- ского обоснования. В то же время они просты в реализации, что предопределяет их широкое применение. Общей чертой многих численных методов решения задач оптими- зации является построение такой последовательности {xk } точек в , что значения Д = f(xk), k е N, целевой функции в точках последо- вательности удовлетворяют неравенствам Д Д_], k Е N. Подобная последовательность может строиться по-разному, но, как правило, ее строят, вычисляя очередную точку хк путем выполнения некоторой последовательности операций, в которой используются ранее вычи- сленные точки хг, i < k. Первая точка последовательности (начальная точка), а иногда и несколько первых точек (в зависимости от алгорит- ма) могут выбираться произвольно. Упомянутая последовательность операций составляет одну ите- рацию в численном методе, а сам численный метод называют итера- ционным. Последовательность {ж^} часто называют итерационной последовательностью, отражая в названии итерационный характер ее построения. Однако в задачах оптимизации более существенным является убывание значений функции в точках последовательности }, т.е. выполнение условия Д Д-j, k Е N. Если это условие выполнено, то последовательность {аЛ} будем называть релакса- Ционной последовательностью. Численные методы оптимизации, анные на построении такой последовательности, относят к клас- При ^ИО()ов сцуска. Это название можно связать с тем, что, например, минимизации функции f(x\ ,22) ДВУХ переменных уменьшение ее Чения при переходе отточки (о^-1 к точке (х^х^) означает
46 Глава 3. Многомерная безусловная минимизация спуск С ЛИНИИ уровня f(x\,X2) = fk-l на ЛИНИЮ уровня f(x\,X2) = = fk < Д—i- Строя релаксационную последовательность с помощью того или иного метода оптимизации, мы рассчитываем на то, что получится последовательность, сходящаяся к точке минимума целевой функ- ции. Если это так, то в качестве приближенного решения задачи оптимизации можно выбрать один из членов релаксационной после- довательности с достаточно большим номером (отдельный вопрос — как определить такой номер; ответить на него можно, исследовав ско- рость сходимости последовательности). Однако ни один из численных методов, используемых на практике, не гарантирует того, что релакса- ционная последовательность, построенная с помощью этого метода, будет сходиться, причем к точке минимума целевой функции. В реаль- ности может получиться релаксационная последовательность, которая либо вообще не сходится, либо сходится к точке, не являющейся точкой минимума минимизируемой функции. Многие методы построения релаксационной последовательности рассчитаны на то, что эта последовательность сходится к стационар- ной точке функции, т.е. точке, в которой градиент функции обращается в нуль. Контролировать сходимость последовательности к стационар- ной точке проще, чем к точке минимума, так как для этого можно проверять лишь абсолютную величину градиента функции в точках последовательности. В самом деле, если последовательность {хк} сходится, а последовательность {grad/(xA:)} градиентов непрерывно дифференцируемой функции стремится к нулю, то пределом после- довательности {аЛ} является стационарная точка функции. Отметим, что для выпуклой функции любая стационарная точка является точкой минимума, но в общем случае это, конечно, неверно. Последовательность {Д} значений функции в точках релаксаци- онной последовательности убывающая, а потому сходится к конечно- му или бесконечному пределу. Конечность предела последователь- ности {Д} можно гарантировать, если, например, целевая функция f(x) ограничена снизу. Но даже если последовательность {Д} име- ет конечный предел, нельзя утверждать, что этот предел совпадает с наименьшим значением функции. Пусть для заданной целевой функции f(x) рассматриваемый чи- сленный метод приводит к релаксационной последовательности {ж^}, для которой последовательность значений Д = f(xk), к е N, сходится к наименьшему значению функции Д. Тогда говорят о слабой сходи- мости применяемого метода. При слабой сходимости релаксационная
47 3.1. Методы спуска 'чедовательность может и не сходиться. Если рассматриваемый численный метод дает релаксационную последовательность, сходя- я к какой-либо точке минимума целевой функции, то говорят о сильной сходимости этого метода (или алгоритма). Описанные обстоятельства указывают на трудности, возникающие в решении задачи безусловной оптимизации. Выбрав тот или иной чи- сленный метод, необходимо убедиться в сходимости релаксационной последовательности, построенной с помощью этого метода, и проана- лизировать скорость сходимости этой последовательности (или хотя бы определиться с тем, как выбирать член релаксационной последова- тельности, обеспечивающий заданную точность решения задачи). В свою очередь теоретическое обоснование конкретного численного ме- тода включает в себя выделение класса целевых функций, для которых метод дает релаксационную последовательность, сходящуюся к точке минимума, и оценки скорости сходимости релаксационной последо- вательности. Построение релаксационной последовательности в методах спуска обычно прекращают, если на очередной /с-й итерации выполнено одно или оба неравенства |аЛ-яЛ”'| <е,, (3.2) где е j и — заданные достаточно малые положительные числа, назы- ваемые параметрами точности поиска. В методах первого и второго порядка в качестве условия прекращения вычислений используют так- же неравенство |grad/(xfc-l)| < €3. (3.3) Все три условия называют условиями останова. После пре- кращения вычислений в качестве приближенного решения задачи минимизации выбирают последний найденный член релаксационной последовательности. 3.1. Методы спуска Процесс построения релаксационной последовательности {ж^} в ах спуска обычно описывают рекуррентным соотношением xk = xk~l + 0кик, к е N, (3.4)
48 Глава 3. Многомерная безусловная минимизация где ик Е IRn — единичный вектор, определяющий направление спуска на fc-й итерации; /3^0 — таг спуска, т.е. расстояние от точки xk"l до новой точки хк. Построение последовательности {ж^} начинается с выбора начальной точки ж0, входящей в правую часть равенства (3.4) при k = 1. Методы спуска различаются способами выбора направления и шага спуска. Будем говорить, что вектор и задает направление спуска в точке ж для функции /(ж), если существует такое число 6 > 0, что /(ж + /Зи) < /(ж) при 0 < /3 < 6, т.е. достаточно малое перемещение из точки ж в заданном направлении приводит к уменьшению значения функции. Для функции /(ж), дифференцируемой в точке ж, вектор и задает направление спуска тогда и только тогда, когда производная по направлению этого вектора отрицательна, т.е. когда он удовлетворяет условию (grad/(ж), и) < 0. (3.5) Геометрически условие (3.5) означает, что вектор и в точке ж образует тупой угол с градиентом функции /(ж). Шаг спуска fa при заданном направлении спуска ик удобно выбирать так, чтобы выполнялось неравенство /(ж1'-1 +/3kUk) (1 -Xk)f(xk~]) + Xk min f(xk~] + (3ик), (3.6) /5eR. где Ад. e [0, 1]. Для этого используют различные эвристические приемы. Выбор значения fa, при котором выполняется условие (3.6), обеспечивает выполнение неравенства f(xk~l + (3^ик) /(ж^’-"1), так что последовательность {ж^}, построенная в соответствии с соотношением (3.4), будет релаксационной. При Ад. = 0 неравенство (3.6) переходит в неравенство f(xk~l +0kUk) f(xk~l), (3.7) т.е. в условие релаксационности последовательности {ж^}. При Ад. = 1 неравенство (3.6) переходит в равенство, а значение /3^ обеспечивающее выполнение этого равенства, соответствует выбору точки минимума функции /(ж) при изменении ж вдоль луча, исходя- щего из точки ж^-1 в направлении вектора ик, т.е. на множестве {жеКп: ж = ж/с-1 + /3ик, Де К*}.
49 3.1. Методы спуска я определения необходимо решить задачу одномерной мини- мизации. Значение может определяться неоднозначно, и в этом случае можно выбрать любое из возможных значений, желательно наименьшее. Рассмотрим промежуточный случай Ад. 6 (0, 1). Из неравенства Л^-') - /(^) > +$>*)). (3.8) равносильного неравенству (3.6), заключаем, что параметр Ад. харак- теризует наименьшую долю из максимально возможного уменьшения функции в направлении и^, которую должна обеспечивать релак- сационная последовательность. Введение параметра Ад. позволяет избежать полного решения задачи одномерной оптимизации (как в случае Х^ = 1), ограничиваясь некоторой упрощенной процедурой. Направление спуска в точке х для функции /(ж) можно определить с помощью антиградиента этой функции, т.е. вектора w(x) = — grad/(ж). В то время как градиент определяет направление наибольшего возра- стания функции, антиградиент, наоборот, задает направление наиболь- шего убывания этой функции. Далее при построении релаксационных последовательностей на /с-й итерации используем обозначения wk = ~ ~ gi ad f (xk~1) для антиградиента в точке хк~1 и _ (wk, ик) _ (grad/(xA:~l), ик) k |wfc| | grad f (xk~1) | Для косинуса угла между направлениями спуска и антиградиента. От- метим, что этот угол должен быть острым, если вектор ик задает направление спуска. При ад. = 1 единичный вектор ик сонаправлен антиградиенту wk и может быть получен нормировкой последнего, т.е. ик' — wk -г - ь ~~ 1акои выбор вектора и на каждой итерации характе- Рен для метода градиентного спуска (хотя его точнее надо было бы вать методом антиградиентного спуска). Если при этом на каждой Ции аЦИИ = 1 (те- СПУСК осУществляется в Т0ЧКУ минимума функ- в заданном направлении спуска), то метод называют методом 4 а1*^оре11Шего спуска.
50 Глава 3. Многомерная безусловная минимизация 3.2. Метод градиентного спуска Для метода градиентного спуска основное рекуррентное соотно- шение (3.4) можно записать в виде хк = хк~' +(3k^~, A.-GN, (3.10) \wK\ где xk, fc = 0, 1, ..., — элементы релаксационной последовательности; /с /3^ > 0 — шаг спуска на к-й итерации; ик = -—— единичный вектор, который задает направление спуска, определяемое антиградиентом wk = — grad/(xk-1) в точке хк~1. Существуют разные способы выбора шага спуска в методе гради- ентного спуска. Рассмотрим один из вариантов метода, в котором шаг спуска пропорционален длине вектора антиградиента, т.е. /Зд. = | |, к 6 N9 >с = const > 0. В этом варианте рекуррентное соотношение (3.10) упрощается*: Хк = хк~' +xwk, fceN. (3.11) Один из недостатков метода градиентного спуска с рекуррентным соотношением (3.11) состоит в том, что в окрестности стационарной точки х дифференцируемой функции /(ж) очередной шаг спуска мо- жет оказаться чрезмерно большим, превышая расстояние от текущей точки до стационарной, т.е. метод может „проскакивать44 точку ми- нимума. Более того, этот шаг может быть настолько большим, что приведет к неравенству f(xk) > f(xk~l) и последовательность {хА:} перестает быть релаксационной. С этим можно бороться, уменьшая значение параметра х, но при этом возникает вторая проблема: по мере приближения к стационарной точке шаг спуска xlgrad/X®^’-1 )| уменьшается, а это сильно замедляет сходимость релаксационной по- следовательности. Описанные проблемы приводят к задаче оценки возможной вели- чины х, которая, с одной стороны, позволяет избегать ^проскакива- ния44 стационарной точки, а с другой — обеспечивает приемлемую ’Параметр х во многих случаях более удобен, чем шаг спуска, и его часто также называют шагом спуска.
3.2. Метод градиентного спуска 51 скорость сходимости последовательности приближений к стационар- ной точке. Такие оценки можно получить в рамках некоторых клас- сов целевых функций, удовлетворяющих некоторым дополнительным условиям. Теорема 3.1. Пусть функция /(ж) ограничена снизу и дифферен- цируема в Rn, а ее градиент удовлетворяет условию Липшица, т.е. для любых ж, у е Rn | grad/(ж) - grad/(у)| L\x-y\, (3.12) где L > 0 — некоторая константа. Тогда последовательность {ж^}, определяемая рекуррентным соотношением (3.11) с xe(0,2/L), является релаксационной. При этом справедлива оценка f(xk) < /(я^-1) -х(1 - |grad/(£CAr~l)|2 (3.13) и | grad f(xk) | —> 0 при k —> оо. # Если целевая функция удовлетворяет условиям теоремы 3.1, то при х = 1/L не только получается релаксационная последовательность, но и не происходит „проскакивания" стационарной точки. Действитель- но, из неравенства (3.12) вытекает, что |wfc| = Igrad/(a:fc_1)| С 1 -®|, (3.14) где ж — стационарная точка. Следовательно, при х < 1 /L \хк - хк~} I = x|wfc| с |ж/с-1 - ж|, т.е. очередной шаг спуска не превышает расстояния от текущей точки до стационарной точки. Пусть функция /(ж) ограничена снизу, а последовательность {хк} выбрана так, что для некоторого числа с^о > 0 выполняются неравенства f(xk-])-f(xk)^o\wk\2, keN. (3.15) Тогда, суммируя неравенства (3.15) для к = 1, т, получаем: т /(®°) - /(ж’п) > шо 521 grad f(xk~‘) I2- д. k=l
52 Глава 3. Многомерная безусловная минимизация оо Таким образом, знакоположительный ряд I grad f(xk~1) |2 сходит- А:=1 ся, а в силу необходимого признака сходимости его общий член стремится к нулю, т.е. | grad | —> 0 при к —» ос. Итак, если при построении последовательности {яЛ’} за счет под- ходящего выбора шага спуска на каждой итерации удастся обеспечить выполнение условия (3.15), то соответствующая последовательность градиентов будет стремиться к нулю. Это дает некоторые гарантии, что итерационная последовательность сходится к стационарной точке. Отметим, что условия (3.15) выполняются в том случае, когда целевая функция /(я?) удовлетворяет условиям теоремы 3.1, а последователь- ность {я^} построена в соответствии с рекуррентным соотношением (3.11), в котором х G (О, 2/L). В самом деле, неравенство (3.13) можно записать в виде > х(1 - |wfcI2, что равносильно неравенству (3.15) сljq = х^1 — -у-)- Замечание 3.1. Из теоремы 3.1 не следует сходимость метода гра- диентного спуска, основанного на рекуррентном соотношении (3.11). Например, функция f(x) = 1/(1 + |ж|2) удовлетворяет условиям тео- ремы, но при любом выборе начальной точки я?0 6 имеем |яЛ’ | —> оо при к —> оо. Приведенный пример показывает, что функция вообще может не достигать наименьшего значения. Однако если к условиям те- оремы 3.1 добавить требование ограниченности множества Xq = = {ж G /(ж) < /(я?0)}, то функция f(x) будет достигать наимень- шего значения. Можно показать, что при этом последовательность {яЛ'} будет сходиться к какой-либо стационарной точке функции. # Условие (3.12) вполне естественно и выполняется для большин- ства элементарных функций: например, оно выполняется для всех дважды непрерывно дифференцируемых функций на заданном за- мкнутом ограниченном множестве. Однако в прикладных задачах найти конкретное значение константы L не всегда удается. Если это так, то реализовать метод градиентного спуска с рекуррентным соотно- шением (3.11) уже нельзя. Необходимо модифицировать рекуррентное
3.2. Метод градиентного спуска 53 соотношение, заменяя его соотношением хк = хк~'+ xkwk, fceN. (3.16) в котором значения хд. > 0 меняются от итерации к итерации. Существуют разные способы выбора на каждой итерации параме- тра хд., определяющего шаг спуска. Ограничимся рассмотрением двух из них. Если функция /(х) непрерывно дифференцируема в Rn, то функ- ция ^(х) = f(xk~} + xwfc) непрерывно дифференцируема на число- вой оси и при достаточно малых значениях х имеет отрицательную производную, поскольку при х = 0 имеем ^•(0) = (grad/(®), wfc) = -1 wk I2 < 0. Следовательно, функция ^(x) убывает в окрестности х = 0. Она убывает при х > 0 по крайней мере до значения хд., при котором ее производная обращается в нуль. Выбор в соотношении (3.16) значения приводит к варианту градиентного спуска, называемому исчерпывающим спуском (движение в направлении антиградиента wk происходит до тех пор, пока не будут исчерпаны „подряд идущие41 отрицательные значения производной функции f(x) по направлению этого вектора). Если целевая функция f(x) удовлетворяет условиям теоремы 3.1, то итерационная последовательность, полученная по методу исчер- пывающего спуска, удовлетворяет условиям (3.15). Действительно, поскольку ^(х) = (grad/(a?A:“I 4-xwfc),w1’), то в точке хк = аЛ’-1 + хд.гсЛ, найденной по методу наискорейшего спуска, имеем: (wfc+l, wk) = — (grad/(xfc), wk) = -^(хд.) = 0. (3.17) В соответствии с неравенством Коши — Буняковского и неравен- ством (3.12) заключаем, что I |2 (w\ |w^| \wk — 1 = = |wA:||grad/(®fc+l)-grad/(xfc)| £|иЛ'| - xk\ — Lxk\wk\2,
54 Глава 3. Многомерная безусловная минимизация откуда хд. 1 /L. Следовательно, j\xk f(xk)^ f(xk f(xk)^ ^\wk\2, где хк = xk~] 4- j-wk — точка, соответствующая значению x = 1/L. Замечание 3.2. Очередная точка, найденная по методу исчерпы- вающего спуска, может не совпадать с точкой, найденной по методу наискорейшего спуска: для первого метода значение хд. — это стаци- онарная точка функции </?д,.(х), в то время как для второго метода она есть точка минимума. Эти точки будут совпадать в том случае, когда на каждой итерации у функции ^(х) каждая стационарная точка бу- дет точкой минимума. Так верно, например, для выпуклой целевой функции. # Согласно соотношению (3.17) в методе исчерпывающего спуска (и, как следствие, в методе наискорейшего спуска) любые два после- довательных направления спуска ик и ортогональны. Но век- тор, ортогональный антиградиенту (и градиенту), является касатель- ным к поверхности (линии) уровня функции. Поэтому в точке хк пре- дыдущий вектор спуска ик касается поверхности (линии) уровня целе- вой функции, проходящей через эту точку. Это показано на рис. 3.1 в двумерном случае; точка хк соот- ветствует методу исчерпывающего спуска, а точка xk — методу наи- скорейшего спуска. Выполнение условия (3.15) можно также обеспечить следующим образом. Задаем некоторое стартовое значение хо (например, хо = 1). На каждой к-и итерации выбираем параметр хд. = хд._| и осуще- ствляем спуск, определяя точку хк в соответствии с рекуррентным соотношением (3.16). Для найденной точки проверяем выполнение условия f(xk) f(xk ‘)-wxfc|wfc|2> (3.18) где cu G (0, 1). Если спуск оказался неудовлетворительным вследствие нарушения этого условия, то уменьшаем хд., умножая его на некоторое фиксированное число // G (О, 1) (например и = 0,5), и повторяем спуск.
3.2. Метод градиентного спуска 55 Такой способ подбора значения хд. получил название метода дробления шага. На рис. 3.2 показаны итерации с использованием этого метода в плоском случае. Отметим, что условие (3.18) будет выполняться при достаточно малом значении хд., поскольку ,.т = x^|wfc|2 (grad/(a:fc-1), xkwk) +o(xfc) = lim , ---------= -1 < -u>. xk w*- 2 В то же время, если целевая функция f(x) удовлетворяет условиям теоремы 3.1, последовательность {хд^} не будет стремиться к нулю и, следовательно, коэффициенты хд. будут удовлетворять неравенствам > q для некоторого фиксированного числа q > 0. В самом деле, либо параметр хд. все время будет превышать границу у (1 — и), либо
56 Глава 3. Многомерная безусловная минимизация 2 на какой-то итерации окажется, что хд. С — (1 — cj). Но тогда, согласно теореме 3.1, будет выполняться неравенство f{xk) |wfc|2. (3.19) 2 При хд. — (1 — и) выполняется неравенство L Следовательно, неравенство (3.18) будет вытекать из неравенства (3.19). Начиная с этого момента значение хд. уже не будет умень- шаться. Пр и м е р 3.1. Решим задачу минимизации функции = (1-| -хг)2 + (X] - I)2 градиентным методом с дроблением шага, выбрав начальную точку х° = (— 1, —2), параметр точности поиска £3 = 10—3, а также параме- тры метода хц = 1, cj = 0,5. Рассмотрим несколько вариантов метода, определяемых коэффициентом у дробления шага. Результаты поиска точки минимума х* = (1, 1) рассматриваемой функции при различных значениях коэффициента дробления шага у Е (0, 1) (приближенное значение точки минимума, значение функ- ции в этой точке, а также количество итераций поиска 7V) приведены в табл. 3.1. Траектории поиска точки минимума для каждого варианта изображены на рис. 3.3 и 3.4 (в табл. 3.1 даны ссылки на соответству- ющий каждой траектории рисунок). Таблица 3.1 У X* /(**) N Рисунок 0,2 (0,999, 0,997) 0,132- 10-5 102 3.3, а 0,4 (0,999, 0,998) 0,119-10-5 76 3.3,6 0,5 (0,999, 0,998) 0,100 -10-5 72 3.3,в 0,6 (0,999, 0,997) 0,157- 10-5 54 3.3,г 0,8 (0,999, 0,997) 0,159-10-5 66 ЗА,а 0,5 (0,999, 0,998) 0,066- 10-5 85 ЗА, 6
3.2. Метод градиентного спуска 57 Рис. 3.3
58 Глава 3. Многомерная безусловная минимизация Рис. 3.4 Из результатов поиска видно, что коэффициент и существенно влияет на количество итераций, обеспечивающее поиск точки мини- мума целевой функции с заданной точностью. Наилучшие результаты соответствуют значениям и е [0,5, 0,8]. На практике значение на /с-й итерации часто выбирают, исходя не из условия (3.18), а из более слабого условия f(xk~l) — f(xk) > 0, которое равносильно (3.18) при и = 0. На рис. 3.4,6 показан именно этот вариант алгоритма градиентного спуска при хо — 1 и I/ = 0,5. # В методе наискорейшего спуска шаг спуска определяется путем минимизации целевой функции в выбранном направлении спуска. Поэтому естественно предполагать, что метод наискорейшего спуска может быть более эффективным. Однако отметим, что минимизация функции — более трудоемкая задача, чем спуск с фиксированным шагом. Выигрыш в количестве итераций еще не означает снижения общего объема вычислительной работы. Пример 3.2. Решим задачу минимизации функции из при- мера 3.1 методом наискорейшего спуска, приняв х° = (-1, —2) и s3 = Ю“3.
3.3. Минимизация квадратичной функции 59 Процесс поиска точки минимума показан на рис. 3.5 (обратим внимание на ортогональность двух последовательных направлений спуска). При том же значении £3 = 10-3 параметра точности, что и в примере 3.1, точка минимума определена за N = 96 итераций. Как видно, метод наискорейшего спуска не дает выигрыша по количеству итераций. Характерной особенностью процесса поиска в данном случае является то, что на первых итерациях происходит быстрое убывание значений целевой функции, которое затем замед- ляется. Это свидетельствует о том, что эффективность метода наис- корейшего спуска на завершающей стадии итерационного процесса снижается. 3.3. Минимизация квадратичной функции В разработке численных методов многомерной оптимизации боль- шое внимание уделяется вопросам минимизации квадратичных функ- ций. Интерес к этим вопросам вызван несколькими причинами. Во-первых, для задачи минимизации квадратичной функции ре- шение можно записать в аналитическом виде и использовать его в
60 Глава 3. Многомерная безусловная минимизация качестве эталона при оценке погрешности численного метода, а также при сравнении различных методов между собой. Во-вторых, квадра- тичная функция служит своеобразным испытательным полигоном, на котором можно проверить работоспособность численного метода (ес- ли метод малопригоден для минимизации квадратичной функции, то, скорее всего, он будет неработоспособен и для более сложных целевых функций). Наконец, в-третьих, дважды непрерывно дифференци- руемая функция (а значит, практически все элементарные функции) хорошо аппроксимируется в окрестности данной точки квадратичной функцией (такую аппроксимацию можно получить с помощью фор- мулы Тейлора второго порядка). Указанная аппроксимация позволяет свести задачу минимизации сложной функции к последовательности задач минимизации аппроксимирующих квадратичных функций. Это особенно эффективно, если минимизируемая функция в окрестности точки минимума имеет положительно определенную матрицу Гессе, так как аппроксимирующие ее квадратичные функции являются строго выпуклыми функциями. Особое место в многомерной оптимизации занимают задачи без- условной минимизации выпуклых квадратичных функций двух пе- ременных (задачи двумерной безусловной минимизации). Изучение идей, положенных в основу вычислительных алгоритмов, на при- мере решения задач двумерной минимизации позволяет наглядно, с помощью геометрических построений на плоскости, представить отличительные черты каждого метода, выявить их вычислительные свойства, обсудить достоинства и недостатки. Квадратичную функцию /(ж) можно представить в виде /(ж) = = А(ж) + + с> где Л (ж) — квадратичная форма, Ь(ж) — линейная функция, с — свободный член. Квадратичную форму Л (ж) мож- но записать через скалярное произведение, используя ее матрицу Q: Л(ж) = (Qx, х). Линейную функцию также можно записать с помо- щью скалярного произведения в виде Ь(ж) = (Ь, ж), где b — некоторый фиксированный вектор. Наличие свободного члена с в задачах опти- мизации несущественно, т.е. можно считать, что с = 0. Таким образом, целевая квадратичная функция /(ж) может быть записана в виде f(x) = | (Qx, х) + (b, х), (3.20) где Q — симметрическая матрица порядка п, a b е — заданный вектор. Нетрудно убедиться в том, что матрица Q — это матрица Гессе (матрица частных производных второго порядка) функции /(ж).
3.3. Минимизация квадратичной функции 61 Непосредственной проверкой можно убедиться в том, что для квадратичной функции grad/(ж) = Qx + Ь. Если матрица Q невы- рождена, то в силу необходимого условия экстремума квадратичная функция имеет единственную стационарную точку ж* = —Q~xb. Эта точка будет точкой наименьшего значения функции (точкой строгого локального минимума) тогда и только тогда, когда квадратичная форма А (ж) = (Qx, х) положительно определена (при этом говорят о поло- жительной определенности самой квадратичной функции). Условие положительной определенности целевой функции часто подразумева- ется в задачах квадратичного программирования. При анализе тех или иных вычислительных методов всегда мож- но считать, что точка минимума квадратичной функции расположена в начале координат, т.е. ж* = 0. Это равносильно тому, что в представле- нии (3.20) вектор b равен нулю. Таким образом, вместо квадратичной функции общего вида (3.20) можно рассматривать частный случай f(x} = ^(Qx,x), xeRn. (3.21) При этом будем считать, что матрица Q положительно определена. То- гда квадратичная функция | (Qx, х) неотрицательна в Rn и достигает наименьшего значения 0 в единственной точке х* = 0. В качестве метода минимизации квадратичной функции рассмо- трим метод градиентного спуска. Для функции (3.21) градиент в произвольной точке х равен Qx. Выбрав начальную точку ж0 / 0, находим в этой точке антиградиент w1 = -grad/(ж0) = — Qx®. В соответствии с рекуррентным соотношением (3.16) для следующей точки получим: ж1 = ж0 + X| w1 = ж0 - xiQrr0 = (Z - X]Q)x°, (3.22) где I — единичная матрица. Из равенства ж1 = (Z — Х1<2)ж° можно сделать важный вывод, в значительной степени определяющий способы построения численных методов безусловной минимизации: точки минимума квадратичной функции можно достичь за одну итерацию, если в качестве началь- ной точки ж0 выбран один из собственных векторов матрицы Q. Действительно, если ж0 совпадает с собственным вектором матри- цы Q, отвечающим собственному значению Л7, то Qx® = XjX® и
62 Глава 3. Многомерная безусловная минимизация (Q — Xjl)x° = 0. Поэтому при X] = 1/Л; х' = (l - ^~0)х° = -1(Q - Xjl)x° = 0, \ /\ -1 / /Л <j т.е. следующая точка х1 итерационной последовательности совпадает с точкой минимума х* = 0 квадратичной функции (3.21). В двумерном случае график квадратичной функции f(x) = = ± (Qx, х) представляет собой эллиптический параболоид с центром в начале координат, а ее линии уровня — подобные эллипсы (рис. 3.6). Метод градиентного спуска приведет в точку (0, 0) наименьшего значения за одну итерацию, если начальная точка выбрана на одной из осей эллипсов: в этом случае радиус-вектор точки является собственным вектором матрицы Q второго порядка. Рис. 3.6 Выделим важный частный случай Q = XI, в котором все соб- ственные значения матрицы Q совпадают, а каждый ненулевой вектор ж Е Rn является собственным. В этом случае точка минимума ква- дратичной функции (3.21) достигается за одну итерацию при любом
3.3. Минимизация квадратичной функции 63 выборе начальной точки. Здесь возникает простой с теоретической точки зрения путь повышения эффективности метода градиентного спуска для квадратичных функций. Квадратичную форму (3.21) с положительно определенной матрицей Q невырожденной заменой пе- ременных можно привести к каноническому виду, причем с единичной матрицей. Например, можно ортогональным преобразованием приве- сти квадратичную форму к виду 7=1 где £ = (£i, - £n), a Xj, j = l,n, — положительные собственные значения матрицы Q. Затем, изменяя масштабы переменных заменой Q = j' = 1, п, получаем 7=1 = (Ci, <„). В новых переменных Сь • • •» Сп минимум квадратичной функции методом градиентного спуска достигается за одну итерацию при любом выборе начальной точки. Однако этот теоретически простой подход может оказаться очень трудоемким с вычислительной точки зрения, так как трудоемкой является задача на собственные значения матрицы Q (особенно для матриц высокого порядка). Описанный метод оказывается полезным, когда минимизируемая функция имеет график так называемой овражной структуры, т.е. ско- рость изменения функции по одному или нескольким направлениям существенно больше, чем по остальным. Для квадратичных функций это происходит, если собственные значения матрицы сильно различа- ются. В двумерном случае график функции с овражной структурой в окрестности точки минимума напоминает овраг с крутыми склона- ми и пологим дном, а линии уровня оказываются сильно вытянутыми (рис. 3.7). Сильное расхождение в скорости убывания функции по раз- личным направлениям снижает эффективность практически любого метода спуска, а одним из способов борьбы с этим „недугом44 является масштабирование, при котором изменяются масштабы переменных. Масштабирование в случае квадратичной функции удобно выполнять после приведения ее квадратичной формы к каноническому виду.
64 Глава 3. Многомерная безусловная минимизация Вернемся к задаче минимизации квадратичной функции f(x) = — |(фж,ж) и рассмотрим вариант метода градиентного спуска с постоянным значением хд. = х на всех итерациях. На к-и итерации получим хк = хк~{ + xwfc — хк~} — xQxk~x = (/ — xQ)xk~}. (3.23) Таким образом, метод градиентного спуска свелся к методу про- стой итерации для линейного оператора, определяемого матрицей I — xQ. Заключение о сходимости последовательности {ж^’} мож- но сделать на основании теоремы о неподвижной точке. Согласно этой теореме последовательность {ж^}, определяемая рекуррентным соотношением хк = f(xk~}), к е N, сходится к неподвижной точке ж* отображения /(ж), если это отображение является сжимающим, т.е. подчиняется условию Липшица |/(®)-/(у)1 (3.24) с постоянной Липшица q < 1. В данном случае отображение пред- ставляет собой линейный оператор, который является сжимающим отображением, если имеет норму, меньшую единицы. Под нормой оператора (нормой матрицы) здесь понимается спектральная норма. Для симметрической матрицы спектральная норма совпадает с макси- мальным из модулей ее собственных чисел. Итак, если итерационная последовательность {хк } построена с по- мощью рекуррентного соотношения хк = хк~[ 4- хгок, х > 0, к е N,
3.3. Минимизация квадратичной функции 65 то для ее сходимости согласно равенствам (3.23) и теореме о неподвиж- ной точке достаточно, чтобы выполнялось условие q(x) = \\I — xQ|| < < 1. Для квадратичной функции с положительно определенной мат- рицей Q, имеющей собственные значения 0 < Л] < ... < Ап, матрица I — xQ имеет собственные значения 1 — хА;, j = 1, п, удовлетворяю- щие неравенствам 1 — xAn < 1 — хАп_ । < ... < 1 — хА| < 1. Из этих соотношений вытекает, что условие q(x) < 1 равносильно неравенству 1 — хАп > — 1 или, что то же самое, соотношению х е (О, 2/Ап). Из теоремы о неподвижной точке вытекает, что для итерационной последовательности {ж^}, построенной по рекуррентному соотноше- нию хк = /(жА:_1), верна оценка \хк — ж*| д^ж0 — ж*|, где q — постоянная Липшица в условии (3.24). Для ускорения сходимости по- следовательности {ж^} необходимо обеспечивать как можно меньшее значение q. В рассматриваемом случае д(х) принимает наименьшее значение, когда собственные значения 1 — хАп. и 1 — хА] матрицы I - >cQ совпадают по абсолютной величине и противоположны по знаку, т.е. — (1 — xAJ = 1 — хАп. Из этого равенства вытекает, что 2 2 оптимальное значение параметра х равно х* = ----- С —. При А| + Лп выборе х = х* получаем / х ~ A] c(Q) — 1 -'• = ’(*-) = л~П7 = г(ё)Тг <125) где c(Q) = Хп/А] — число обусловленности матрицы Q. Большое число обусловленности матрицы указывает на то, что график квадра- тичной функции имеет овражную структуру. В этом случае значение q* близко к единице и последовательность {хк} сходится медленно. Для единичной матрицы I все собственные значения одинаковы и равны единице. Поэтому c(J) = 1 и q* = 0, а точка минимума соответствую- щей квадратичной функции достигается за одну итерацию при любом выборе начальной точки. На рис. 3.8 показан процесс сходимости метода градиентного спус- ка для квадратичной функции /(ж) = х? 4- lOx? с двумя вариантами постоянного значения параметра х: на рис. 3.8, я х = 0,01, на рис. 3.8,6 * = 0,09. 5 - 9J
66 Глава 3. Многомерная безусловная минимизация Матрица квадратичной формы xj 4- №х\ имеет собственные зна- чения А] = 2 и А 2 = 20. Полученное выше условие сходимости метода градиентного спуска с постоянным значением х означает, что пара- метр хнужно выбирать из интервала (0, 2/Аг) = (0, 0,1). Еслих^ 0,1, то последовательность {хк} перестает быть релаксационной, а метод расходится или „зацикливается". На рис. 3.9 показаны эти ситуации: а — „зацикливание" при х = 0,10; б — расходимость при х = 0,11. Минимизация квадратичной функции /(х) = - (Qx, х) градиент- ным методом с использованием исчерпывающего спуска проходит с нарушением условия хд. е (0, 2/Ап). Действительно, исчерпывающий спуск на fc-й итерации означает поиск стационарной точки функции ^(х) = f(xk~l 4- xwfc). В данном случае функция ^/с(х) = ^(Q(xA'_| 4- хш1’), хк~} 4- хи/) = х2 = f(xk~') 4- x(QxA;-1, wk) 4- — (Qwk, wk) является многочленом второй степени с положительным коэффициен- том при старшей степени. Поэтому она имеет единственную стацио-
3.3. Минимизация квадратичной функции 67 парную точку (Qarfc ',wfc) ]wfc|2 k (Qw^w1^ С помощью формулы (3.26) нетрудно убедиться в том, что в методе ис- черпывающего спуска параметр хд. может принимать любые значения от 1 /Хп (если — собственный вектор матрицы Q с собственным значением Ап) до 1/Aj (если xk~* — собственный вектор матрицы Q с собственным значением А]). Ясно, что если число обусловлен- ности c(Q) превышает 2, то условие щ G (0, 2/Ап) при = 1/А| нарушается. Различие между двумя вариантами градиентного спуска состоит в том, при постоянном параметре х шаг спуска определяется без учета скорости убывания функции в направлении точки минимума, а потому из расчета максимально возможной скорости (т.е. пешеход спускает- ся в овраг со скоростью, рассчитанной на самый крутой склон). В случае же наискорейшего спуска шаг спуска оказывается тем боль- ше, чем медленнее квадратичная функция убывает в направлении точки минимума. Нетрудно убедиться в том, что для квадратич- ной функции с положительно определенной матрицей выполняются условия теоремы 3.1. Поэтому применение исчерпывающего спуска дает релаксационную последовательность {яЛ}, для которой после- довательность градиентов {grad/(a?/c)} сходится к нулю. Поскольку матрица квадратичной функции положительно определенная, релак- сационная последовательность сходится к точке минимума. Результаты применения градиентного метода с исчерпывающим спуском для минимизации функции /(^1,^2) = х? + Юх’2 показаны на рис. 3.10. Траектория спуска близка к траектории спуска с фиксированным значением х = 0,01 (см. рис. 3.8,я), но проходится за существенное меньшее количество итераций (5 против 120). Рис. 3.10
68 Глава 3. Многомерная безусловная минимизация Из приведенных рассуждений следует, что для квадратичной функ- ции метод наискорейшего спуска эквивалентен градиентному методу с исчерпывающим спуском (т.е. оба метода дают одну и ту же итераци- онную последовательность). Впрочем, такой вывод можно сделать и без выкладок, имея в виду, что квадратичная функция с положительно определенной матрицей является строго выпуклой. 3.4. Метод сопряженных направлений Продолжим рассмотрение методов спуска, заменив рекуррентное соотношение (3.4) более общим соотношением хк = xk-i + „kpk, к е (3.27) где хд. — параметр, регулирующий шаг спуска; pk е Rn — вектор, определяющий направление спуска. В этом соотношении вектор рк может быть неединичным, а шаг спуска задается величиной Рассмотрим задачу минимизации квадратичной функции, ограни- чившись ее частным случаем/(х) = i (Qx, х),гдеф— положительно определенная матрица. Как было отмечено выше (см. разд. 3.3), такую квадратичную функцию невырожденной заменой переменных можно привести к каноническому виду п Ш = (3.28) 7=1 где С = (Ci, С2, • • •, Сп)- В переменных Сь С2, • • •, Сп метод градиент- ного спуска приводит в точку минимума за одну итерацию. Однако при таком подходе градиент функции необходимо вычислять в новых переменных. Стандартная процедура приведения квадратичной фор- мы к каноническому виду трудоемкая, а метод, базирующийся на этой процедуре, оказывается малоперспективным. Поставим задачу иначе. Линейная невырожденная замена пере- менных в квадратичной форме может интерпретироваться как переход в от одного базиса к другому. Тогда приведение квадратичной фор- мы к каноническому виду означает выбор соответствующего базиса в R71. Можно заметить, что если матрица Q является (симметрической)
3.4. Метод сопряженных направлений 69 положительно определенной, то функция (ж, y)Q = (Qx, у) определя- ет в Rn скалярное произведение, а квадратичная форма (Qx, х) есть квадрат евклидовой нормы вектора х в евклидовом пространстве с указанным скалярным произведением. Приведение этой квадратич- ной формы к каноническому виду (сумме квадратов) означает выбор ортонормированного базиса в евклидовом пространстве со скалярным произведением (ж, y^Q. Описанная интерпретация чрезвычайно удобная: она позволяет упростить вид квадратичной функции, но при этом вместо решения задачи на собственные значения можно использовать обычную проце- дуру построения ортогонального базиса, хорошо известную из курса линейной алгебры и называемую процессом ортогонализации. Условие ортогональности ненулевых векторов р1 и р2 отно- сительно скалярного произведения (ж,р)^ можно записать в виде (Qp1, р2) = 0. Векторы, удовлетворяющие этому условию, называют сопряженными векторами относительно положительно определен- ной матрицы Q, или Q-ортогональными, а направления, определяемые такими векторами, — сопряженными направлениями. Рассмотрим Q-ортогональный базис р7, j — 1, п. В этом бази- се квадратичная функция /(ж) = (Qx, х) имеет канонический вид /| (О = A|£f+ A2£j + • • + Ап£„, где £ = (£), ..., £„), а коэффициенты Xj > 0, j = 1,п, определяются нормами ||p7||q векторов pJ относи- тельно скалярного произведения (ж, p)q в соответствии с формулами Aj = 11|Pj||q- Действительно, функция /1(£) представляет собой по- ловину квадрата нормы вектора с координатами С1, • • •, • Используя координаты 0,0,..., 0, 1,0,... 0 (единица—j-я по порядку) базисного вектора р;, заключаем, что Xj = ± ||pj||q- Функция /1 (£) является сепарабельной. Исчерпывающий спуск в одном из направлений р; означает минимизацию одного из слагаемых такой функции, а последовательность из п исчерпывающих спусков в направлениях р1, р2,... ,рп минимизирует все слагаемые функции и приводит в точку ее минимума. Выберем некоторую начальную точку х°. Исчерпывающий спуск Для квадратичной функции /(ж) в направлении вектора р1 равносилен исчерпывающему спуску для квадратичной функции /1(£) в напра- влении первого базисного вектора и приводит к обнулению первой координаты точки ж0 в базисе р*,р2,... ,рп. Таким образом, получаем
70 Глава 3. Многомерная безусловная минимизация х1 = х° — £, где первая координата £^ точки ж0 в ортогональном (от- носительно скалярного произведения (ж, ) базисе pi может быть найдена по формуле 0 (фЕ°,р') 1 (Qp'.p1)’ Сравнивая равенство ж1 = ж0 — с рекуррентным соотношением (3.27), заключаем, что значение £^ отличается лишь знаком от значения xj в соотношении (3.27). Повторение этих рассуждений для каждого вектора pi приводит к следующему утверждению. Теорема 3.2. Точка минимума квадратичной функции /(ж) = — ^(Qx>x) с положительно определенной матрицей Q достигается не более чем за п итераций спуска, если направления спуска задаются векторами рк е сопряженными относительно матрицы Q, а пара- метры хд., определяющие шаг спуска в рекуррентном соотношении (3.27), вычисляются по формуле исчерпывающего спуска (Qxk ',рк) _— х/. =---т-------гт—, А: = 1, п, (Qpk,pk) (3-29) Замечание 3.3. Может оказаться, что в базисе из сопряженных векторов pi не все векторы определяют направления спуска. В этом случае часть базисных векторов можно заменить противоположными к ним, что, конечно, не нарушит условия их сопряженности. Если и вектор pi, и противоположный ему вектор — pi в точке ж7-1 не опре- деляют направление спуска, то выполняется условие (Qxi~], pi) = 0. Значит, xj; = 0 и спуск в направлении вектора pi проводить не нужно. В этом случае количество итераций будет меньше п. Замечание 3.4. Координаты произвольного вектора ж0 в Q-орто- гональном базисе можно выразить через скалярное произведение. Это приводит к следующей формуле:
3.4. Метод сопряженных направлений 71 Если х* — точка минимума квадратичной функции (3.20) с поло- жительно определенной матрицей Q, то х° - х р (Q(x°-х*},р*) i (grad/(x°),pi) { (QpSpO р (<Эр*>р*) P Следовательно, Используя матричную запись скалярного произведения, находим рг^ р1 = рг (р\ Qx°^ = pl(p1)TQx°. Учитывая это равенство, соотношение (3.30) можно переписать в виде х о р*(р*)т (<Эр\р’) Qx°, причем это равенство верно для любой начальной точки х°. Значит, линейный оператор в Rn с матрицей Л р*(р*)т о Z^(Qpiypi)4 является тождественным и 4 ^(QpSp1)’ (3.32) т.е. система векторов рг, i = 1,п, сопряженных относительно поло- жительно определенной матрицы Q, позволяет достаточно просто построить матрицу Q~\ обратную к Q. Равенство (3.31) можно записать в виде (grad/(ж°), р1) i rt (Qp^p^ Р = х°- 22 7^f^7Tgrad/(a:0) = х° - Q 1 grad/(a:0). fTt (QP ,P )
72 Глава 3. Многомерная безусловная минимизация В силу полученного соотношения можно считать, что для квадра- тичной функции f(x) выполнение п итераций исчерпывающего спуска в направлении сопряженных векторовр*,..., рп эквивалентно одному спуску вида х* — xQ — Q-1 grad/(ж0) с одновременным обращением матрицы Q. Указанный спуск представляет собой первую итерацию метода Ньютона. # Использование векторов, сопряженных относительно некоторой положительно определенной матрицы, составляет основу метода пер- вого порядка, известного как метод сопряженных направлений. Этот метод по сравнению с методом наискорейшего спуска требует, как пра- вило, заметно меньшего количества итераций для достижения той же точности поиска при сопоставимом объеме вычислений на каждой итерации. Различие в способах построения системы сопряженных векторов, определяющих сопряженные направления спуска, порожда- ет несколько вариантов метода сопряженных направлений. Сначала рассмотрим процесс минимизации квадратичной функ- ции общего вида (3.20). Для построения системы сопряженных направлений можно использовать любой начальный базис, прово- дя процесс ортогонализации относительно скалярного произведения (ж, y^Q- Однако более эффективно исходить не из произвольного бази- са, а из системы антиградиентов, вычисляемых в точках итерационной последовательности, тем самым вплетая процесс ортогонализации в процесс спуска. Рассмотрим этот подход подробнее. Выберем начальную точку ж0 е Rn, найдем в этой точке анти- градиент w1 = — grad/(ж0) = —Qx° — Ь и положим р1 = w1. Если Ip11 / 0, то вектор р1 определяет направление спуска (в противном случае точка ж0 является стационарной, которая для квадратичной функции с положительно определенной матрицей является точкой ми- нимума). Считаем, что Ip1| 0, и, проводя исчерпывающий спуск в направлении вектора р1 = w1, по формуле (3.26) находим значение = |w'|2 = |р'|2 Х| (Qw'.w1) (Qp',P}) и точку ж1 = ж° + xip1. Первая итерация рассматриваемого метода полностью совпадает с итерацией метода наискорейшего спуска. На второй итерации вычисляем антиградиент w2 = — Qxl — b в точке ж1. Пусть \w2\ ф 0, так как в противном случае ж1 — точка минимума целевой функции. Проведем ортогонализацию системы
3.4. Метод сопряженных направлений 73 1 2 векторовр, иг этого вычислим относительно скалярного произведения (х, р)^. Для 2 2 р = W (Qp‘,w2) । (<2р',р') (3.33) Отметим, что (ш2,р!) = 0, поскольку w2 и р1 — антиградиенты на двух последовательных итерациях исчерпывающего спуска. Следова- тельно, векторы w и р* линейно независимы, а вектор pz отличен от нуля. Кроме того, вектор р2 задает направление спуска из точки х1, 2 1 так как с учетом ортогональности векторов w и р' получаем (grad/(x1), р2) = — ( w2, 71Р1 + w2 ] = - ( w2, w2) = — |w2|2 < О, где 7i — коэффициент при р1 в формуле (3.33). Продолжая процесс исчерпывающего спуска вдоль очередного на- правления, полученного корректировкой антиградиента в текущей точке, в результате получим п сопряженных направлений спуска и достигнем точки минимума квадратичной функции через п итераций или даже раньше. Однако есть два важных уточнения. Во-первых, каждый очередной градиент wk ортогонален не только предпоследне- му направлению спуска р^'"1, но и всем остальным предшествующим направлениям рг, i = 1, к—2. В самом деле, так как = — Qx^~] — b, j — 1, к, заключаем, что wk - шк~] = -Q(xk~] - xk~2) = -><k-\Qpk~X • Поэтому при к — 1 > i (wk,pz) = (wk~' ,рг) - xk_}(Qpk~' ,pl) = (wk~',pl). Следовательно, (wk,pl) = (и/'-1,рг) = ... = (шг+1,рг) = 0. Из этих равенств, в частности, вытекает, что антиградиенты wk и w\ к > г, ортогональны, так как по построению антиградиент wl является линейной комбинацией векторов р1, ..., рг, ортогональных градиенту wk. Во-вторых, антиградиент wk сопряжен с любым направлением спуска рг, г < к — 1. Действительно, *i(Qp\ wk) = (w1 — u?+1, wk) = (w\ wk) — (шг+1, wA:) = 0.
74 Глава 3. Многомерная безусловная минимизация Это означает, что стандартная формула процесса ортогонализации JU (OpW) , £< (<Эр\р‘) v сокращается до двух слагаемых: k k (Qpk '’wk) I p =W ~ (QPk-',Pk-<)P Это и есть главный выигрыш при использовании в процессе ортогонализации последовательности антиградиентов. Итак, подведем итоги. На первой итерации, выбрав начальную точку ж0, находим w1 = -Qx® — Ь, полагаем р1 = w1, >с\ — . ' — (Qp ) и определяем ж1 = ж0 + xjp1. Затем последовательно вычисляем wk = -Qxk 1 - b, k k (Qpk~l,wk) t P = ™ ~ '(QpL-r^P Xk — xk~' + XfePfc, Л-1 Л-1 (3.34) к — 2, п, причем коэффициент хд. находим из условия исчерпывающего спуска, например по формуле (wk,pk) *к (Qpk,pk) (3.35) При этом на каждой итерации выполняются соотношения (иД — о, к г\ (wk,pz) =0, к > г; (Qpfc,pi)=°I k^i. Пр и м e p 3.3. Рассмотрим описанный метод спуска на примере функции /(xj ,Ж2) = — 4xjT2 + 3^2 + 4\/5(ж 1 4- 2^2) + 22, выбрав в качестве начальной точку ж0 = (—2, 1). На рис. 3.11, а показаны
3.4. Метод сопряженных направлений 75 Рис. 3.11 две итерации поиска. результаты поиска методом наискорейшего спуска. Обратим внимание на то, что результаты первой итерации для обоих методов одни и те же. Метод сопряженных направлений приводит в точку минимума функции уже на второй итерации, в то время как для достижения точки минимума методом наискорейшего спуска необходимо значительно больше итераций. # Для сравнения на рис. 3.11,6 приведены Описанный метод сопряженных направлений можно использовать для неквадратичных функций. Например, учитывая, что для квадра- тичной функции (3.20) матрица Q является матрицей Гессе, в формулах (3.34) можно матрицу Q заменить матрицей Гессе минимизируемой функции. В результате получим метод второго порядка, состоящий в следующем. На первой итерации выбираем начальную точку х° и на- ходим w1 = — grad/(a,0),p1 =wl. Затем последовательно вычисляем wk = -grad/(xA: 1 Pk = Wk Л-^укрк-\ xk — xk~' + XkPk, А: = 2, 3, , (3.36)
76 Глава 3. Многомерная безусловная минимизация где коэффициент 7д. с помощью матрицы Гессе = Н(хк !) вычи- сляется по формуле (Н^рк~], wk) ^•=-77гт-1 k-v (3-37) {Нкрк ',рк ') а параметр хд. определяется из условия исчерпывающего спуска (например, по формуле (3.35)). Процесс вычислений продолжается до тех пор, пока не будет выполнено условие останова. Метод сопряженных направлений для квадратичных функций можно модифицировать так, что в нем не будет использоваться матри- ца Q. Например, учитывая, что для квадратичной функции выполня- ется равенство — wk = yc^_\Qpk, fc > 1, получаем / Ь 1 Ь\ — wk, wk) Iw^l2 (Qpk~\wk) = ±--------------(3.38) x/c-i ^-1 / 1 1 I lx (wk~] — WkVk~l) (wk~[ ,pk~^) (Qpk~\pk~') = (3.39) хд.-! ^-1 Выполнив соответствующие замены в формулах (3.34), приходим к соотношениям (3.36), в которых параметр 7д. можно определить по формуле Iw^l2 l=2'3’- (3-40> Такой способ построения сопряженных направлений спуска получил название метода сопряженных градиентов. Формула (3.40) — не единственное соотношение, по которо- му можно определять коэффициенты 7^. Учитывая, что рк~} = wk~x +7/c-iPA:“2, а векторы рк~х и рк~2 ортогональны, получаем (pk~l, wk~') = [иЛ-112 + 7/c-i (рк~2, wk~') = |ц/’-112, откуда \wk I2 lk = гт4т’ fc-2,3,... (3.41) Ittr112 Использование равенства (3.41) для определения параметра 7^ дает вариант метода сопряженных градиентов, обычно называемый методом Флетчера — Ривса.
3.4. Метод сопряженных направлений 77 В силу ортогональности векторов wk и wk~} выполняется ра- венство |иЛ’|2 = (wk — из которого получаем еще один вариант формулы для определения 7^: (wk — wk ^ = ------пга--------^ = 2,3,... \wK 1|2 (3.42) Использование этой формулы дает вариант метода сопряженных гра- диентов, который часто называют методом Полака — Ривьера. Подчеркнем, что формулы (3.40)-(3.42) эквивалентны только в том случае, когда минимизируемая функция квадратичная. Для неква- дратичной функции они приводят к разным итерационным процессам. При этом точку минимума не удастся найти за конечное число шагов, как это происходит в случае квадратичной функции, а сам процесс может оказаться расходящимся или „зацикливающимся44. Сложности возникают и при определении параметра спуска хд.. В общем случае этот параметр не выражается аналитически, и его необходимо находить тем или иным численным методом одномерной минимизации. Это вызывает неизбежные погрешности на каждой итерации, что может снижать скорость сходимости алгоритма или приводить к его расходимости. Чтобы ослабить влияние этих погреш- ностей, используют процедуру „обновления44 алгоритма, состоящую в том, что в итерационных соотношениях (3.36) периодически через заданное число итераций полагают 7д. = 0. Соответствующий номер итерации называют моментом обновления алгоритма, или рестар- том. Обычно моменты обновления алгоритма выбирают кратными размерности п арифметического пространства. Использование в ал- горитме рестартов позволяет избежать накопления вычислительных погрешностей и уменьшить вероятность построения после каждых п итераций линейно зависимых направлений спуска, но приводит к ро- сту общего числа итераций, необходимых для достижения заданной точности поиска. Пр и м е р 3.4. Используем метод сопряженных градиентов для минимизации функции f(x\,^2) = (х] — хг)1 + (я?] - I)2, рассмотрен- ной в примере 3.1. Зададим параметр точности поиска S3 = 10-3 и начальную точку х° = (— 1, —2), в которой /(ж0) = 13. Результаты вычислений, в которых параметр в рекуррентных соотношениях (3.36) определялся по формуле (3.41), приведены в табл. 3.2, а аналогичные результаты, в которых параметр 7д. рассчитан
78 Глава 3. Многомерная безусловная минимизация Таблица 3.2 к X /(^‘) Хк |grad/(a:A:)| 1 (0,379, -1,483) 3,031 0,086 3,475 2 (0,158, —0,103) 0,726 0,394 1,624 3 (0,792, 0,375) 0,107 0,432 0,631 4 (0,746, 0,494) 0,068 0,194 0,346 5 (0,978, 0,881) 0,006 1,028 0,828 6 (0,965, 0,924) 0,001 0,114 0,047 7 (0,974, 0,930) 0,001 0,232 0,045 8 (0,978, 0,960) 0,000 0,519 0,058 9 (0,999, 0,995) 0,000 0,286 0,012 10 (0,998, 0,996) 0,000 0,098 0,001 И (0,999, 0,997) 0,000 0,525 0,002 12 (0,999, 0,999) 0,000 0,398 0,001 13 (1,000, 1,000) 0,000 0,166 0,000 по формуле (3.42), — в табл. 3.3. Для сравнения также даны результаты вычислений, в которых параметр определялся по формуле (3.37) (табл. 3.4). Траектории поиска точки минимума х* = (1, 1) для всех трех вариантов вычислений показаны на рис. 3.12: а — вариант с формулой (3.41); б — вариант с формулой (3.42); в —, вариант с формулой (3.37). Таблица 3.3 к /с X №*) | grad f(xk)\ 1 (0,379, -1,483) 3,031 0,086 3,475 2 (0,192, —0,064) 0,663 0,401 1.551 3 (0,893, 0,655) 0,032 0,508 0.406 4 (0,901, 0,818) 0,001 0,265 0,219 5 (0,936, 0,927) 0,000 0,133 0,334 6 (0,999, 0,997) 0,000 0,116 0,003 7 (1,000, 1,000) 0,000 0,377 0,001 8 (1,000, 1,000) 0,000 0,088 0,000 Таблица 3.4 к хк /(xfc) *к |grad/(xfc)| 1 (0,379, -1,483) 3,031 0,086 3,475 2 (0,531, 0,326) 0,222 0,472 1,034 3 (0,899, 0,686) 0,025 0,325 0,344 4 (0,990, 0,988) 0,000 0,443 0,050 5 (1,000, 1,000) 0,000 0,115 0,000
3.4. Метод сопряженных направлений 79 Рис. 3.12
80 Глава 3. Многомерная безусловная минимизация Из приведенных результатов видно, что при поиске точки ми- нимума наименьшее количество итераций N оказалось в варианте с формулой (3.37), а наибольшее — в варианте с формулой (3.41). Для сравнения отметим, что для достижения той же точности при исполь- зовании метода наискорейшего спуска требуется N = 96 итераций. 3.5. Метод Ньютона и его модификации Метод Ньютона. Если целевая функция дважды дифференциру- ема в Rn, то в процессе поиска точки минимума можно использовать информацию не только о градиенте этой функции, но и о ее матрице Гессе, повышая скорость сходимости итерационной последовательно- сти. Алгоритмы такого поиска обычно относят к методу Ньютона. В простейшем варианте алгоритма на каждой итерации целевая функ- ция аппроксимируется в окрестности текущей точки квадратичной функцией, а следующая точка релаксационной последовательности определяется как точка минимума аппроксимирующей квадратичной функции. Аппроксимация целевой функции основана на использовании фор- мулы Тейлора. Для минимизируемой функции /(ж), рассматриваемой на k-й итерации в окрестности текущей точки xk~1, запишем формулу Тейлора с остаточным членом в форме Пеано: /(а?) = /(а?-1) + (grad/(а/~1), х - а?~') + + (Н(а/:-|)(а: — а:^-1), х — хк~}) 4- о(|х — хк~} |2). Пренебрегая последним слагаемым в правой части, получаем квадра- тичную функцию = f(xk~]) + (grad/(®fc_|), а; — а:^-1) + + |(Я(аЛ'-|)(а: - хк~'), х - хк~'). Если матрица Гессе Щхк~}) целевой функции, вычисленная в точке хк~\ является положительно определенной, то функция <^.(ж) имеет единственную точку минимума, которую и выбирают в качестве следующей точки хк итерационной последовательности. Эта точка
3.5. Метод Ньютона и его модификации 81 может быть найдена из условия, что градиент функции равен нулю. Записав равенство grad<^fc(x) = gradf(xk~') + H(xk~l)(x-xk~l) = 0, получим Хк = хк~' -77“l(xfc-|)grad/(a:fc_|), к € N. (3.43) Рекуррентное соотношение (3.43) можно трактовать как рекур- рентное соотношение для метода Ньютона решения системы нели- нейных уравнений grad/(ж) = 0. Этим можно объяснить и название метода минимизации функции многих переменных, определяемого тем же рекуррентным соотношением. В соотношение (3.43) входит матрица, обратная к матрице Гес- се. При большом количестве п аргументов минимизируемой функции обращение матрицы Гессе* оказывается слишком трудоемким. В таком случае очередную точку хк целесообразнее искать путем не- посредственной минимизации функции ^(х), например, методом сопряженных направлений или методом сопряженных градиентов. Подробнее этот вопрос рассмотрен ниже. Точку минимума функции (рд.(х) можно считать лишь вспомога- тельным приближением и, обозначив эту точку хк, для построения релаксационной последовательности {хк} использовать рекуррентное соотношение хк = хк~} + - хк~}) = хк~' + хд.//’, к е N, (3.44) в котором значение хд. > 0 можно выбрать различными способами. Вектор рк = хк — хк~' задает на fc-й итерации направление спуска, которое в случае положительно определенной матрицы Н(хк~1) назы- вают ньютоновским направлением спуска. Действительно, с учетом соотношений (3.43) и (3.44) этот вектор можно представить в виде pk = -H~\xk-^^df(xk~]), к е N, (3.45) так что (grad/(x/c“,),pA:) = = - (grad f(xk~1), Н-1 (хк~1) grad f(xk~1)) < 0. Фактически здесь речь идет не о непосредственном обращении матрицы Гессе, а о решении системы линейных уравнений Н(хк~1)хк = 1/(хк~')хк~' — - grad/^-1) относительно вектора неизвестных хк. 6- 9252
82 Глава 3. Многомерная безусловная минимизация Если в соотношении (3.44) выбрать хд. = 1, то оно сведется к соот- ношению (3.43). Но можно использовать и другие значения параметра Например, можно найти его как точку наименьшего значения функции <^д.(х) = f(xk~[ + хрк) или с помощью исчерпывающего спуска в направлении вектора рк (напомним, что эти подходы могут привести к разным значениям). Для выбора значения хд. можно также использовать метод дробления шага. Если целевая функция является квадратичной с положительно определенной матрицей Q, то исчерпывающий спуск из произвольной начальной точки х° G Rn в ньютоновском направлении приводит в точку минимума этой функции за одну итерацию. В самом деле, для квадратичной функции /(ж) = | (Qx, х) + (Ь, ж) матрица Гессе совпадает с матрицей Q, а для ньютоновского направления спуска р] в начальной точке получаем р1 = -Q-1 grad/(ж0) = -Q-1 (фж° + Ь) = -ж0 - Q~lb. В результате первая итерация приводит в точку ж1 =ж° + р1 =— Q~lb, оказывающуюся точкой минимума квадратичной функции, Для неквадратичной функции ньютоновское направление в общем случае не приводит в точку минимума, хотя часто оказывается, что использование этого направления дает лучшее приближение, чем на- правление антиградиента. Если это так, то спуск в ньютоновском направлении за одну итерацию позволяет достичь более существен- ного убывания минимизируемой неквадратичной функции и получить более близкое приближение к искомой точке ж* минимума по сравне- нию со спуском в направлении антиградиента. Если график целевой функции имеет овражную структуру, то век- тор, определяющий ньютоновское направление спуска, может соста- влять с осью оврага меньший угол, чем антиградиент. Эта особенность указывает на то, что при минимизации овражных функций метод Нью- тона более эффективен, чем метод градиентного спуска. Пример 3.5. Сравним метод Ньютона в варианте (3.44) с хд. = 1 и метод наискорейшего спуска на примере функции f(x\ ,хг) = = (х’2 — Ж2)2 + (xj — I)2. В качестве начальной выберем точку ж0 = = (— 1, —2) (в этой точке /(ж0) = 13) и зададим параметр точности поиска £3 = 10-3.
3.5. Метод Ньютона и его модификации 83 Методом Ньютона (рис. 3.13, а) приближенное значение точки ми- нимума х* « (0,999, 0,999) получено за N = 5 итераций, в то время как метод наискорейшего спуска (рис. 3.13,6) позволяет достигнуть при- ближенное значение точки минимума ж* « (0,999, 0,998) за N = 96 итераций. Из результатов вычислений видно, насколько эффективнее может быть метод Ньютона по сравнению с методом наискорейшего спуска. Обратим внимание на то, что в методе Ньютона /(ж1) < /(ж2) (см. рис. 3.13,4?), т.е. метод Ньютона привел к последовательности, не являющейся релаксационной. Такое может происходить, если хд. = 1 или начальная точка находится на значительном удалении от точки минимума. # Сходимость метода Ньютона существенно зависит от выбора начального приближения. Можно показать, что если целевая функция сильно выпуклая и для любых точек ж, у е для матрицы Гессе Я(ж) целевой функции выполнено неравенство ||Я(х) — Н(у)\\ < — у\, L > 0, а начальное приближение выбрано удачно (точка ж0 расположена достаточно близко к точке ж* минимума), то алгоритм 6*
84 Глава 3. Многомерная безусловная минимизация метода Ньютона при значении = 1 в соотношении (3.44) обладает квадратичной скоростью сходимости, т.е. справедлива оценка |жА’- - ж*|2, k € N, С — const. Это позволяет для такой функции в качестве условия прекращения процесса поиска использовать неравенство \хк - хк~' | < б], где — параметр точности поиска. Но если целевая функция не является сильно выпуклой или начальное приближение находится далеко от искомой точки ж*, метод Ньютона может расходиться. Квадратичная скорость сходимости, а также возможность контроля за соблюдением достаточного условия минимума целевой функции /(ж) на каждой fc-й итерации с помощью матрицы Гессе Н(хк~1) этой функции способствуют высокой эффективности рассматриваемого метода. Однако при его практической реализации возникают две проблемы. Первая из них — это сохранение положительной определенности матрицы Гессе Н(хк~1) целевой функции на каждой к-й итерации, так как иначе вектор рк = —Я-1 (xA:“1)grad/(xA:”1) может не определять направление спуска. Более того, матрица Н(хк~[) может быть вырожденной и не иметь обратной матрицы. Эту проблему можно решить, если направление спуска задавать вектором рк = ~(rikI + Н(хк~'))~' grad f(xk~l), где I — единичная матрица порядка п, а 0 — параметр, выбира- емый так, чтобы в точке хк~[ матрица Нк = т]к1 + Н(хк-'), fceN, (3.46) была положительно определена. Такой способ выбора направления спуска часто называют методом Марквардта. Вторая проблема — обращение на каждой итерации матрицы по- рядка п, а это при больших п — достаточно трудоемкая операция. В действительности вычислять обратную матрицу нет необходимости: вектор рк проще найти как решение системы линейных алгебраиче- ских уравнений (СЛАУ) НкРк = -gra,df(xk ’). (3.47)
3.5. Метод Ньютона и его модификации 85 Систему (3.47) можно решить различными численными методами, как прямыми, так и итерационными. Можно также решать систему линейных уравнений путем минимизации квадратичной функции Фк(х) = Х-{Нкх,х) + (grad1), х) методом сопряженных направлений или методом сопряженных гради- ентов, поскольку выполнение (3.47) является необходимым и доста- точным условием минимума такой функции. Опишем вариант метода Ньютона, в котором направление спуска определяется путем решения СЛАУ (3.47). Предварительно выбираем начальную точку х° е и параметр точности поиска £3 > 0. Полага- ем к = 1 и переходим к основной части алгоритма. 1. В точке xk~l находим градиент grad/^”1) и матрицу Гессе целевой функции. Проверяем условие останова |grad f(xk~1)I <£3. Если оно выполнено, итерации прекращаем, принимая* х* « хк~[ и f(x*) « /(яЛ’-1). Если условие останова не выполнено, проверяем, является ли матрица Н(хк~[) положительно определенной. Если да, полагаем Яд. = Н(хк~]) и переходим к п. 3, в противном случае переходим к п. 2. 2. Подбираем значение т]^ > 0, при котором матрица (3.46) будет положительно определенной, и переходим к п. 3. 3. Из решения СЛАУ (3.47) находим вектор рк и затем точку хк = xk~x +pk. Увеличиваем номер к на единицу и возвращаемся к п. 1 . Модификации метода Ньютона. Собственно метод Ньютона без- условной минимизации можно описать рекуррентным соотношением (3.44), в котором вектор рк задает ньютоновское направление спуска и определяется равенством (3.45), а хд. = 1. Поскольку ньютоновское направление является направлением спуска, то и метод Ньютона можно рассматривать в ряду других методов спуска. В этом контексте возникает идея использовать аль- тернативные способы определения шага спуска, т.е. вместо значения = 1 использовать другие значения. Стремление модифицировать Утверждать, что х* —точка минимума, можно лишь, если матрица Н(хк~') положительно определенная. Иначе необходимо проводить дополнительное исследование поведения функции в окрестности точки х'.
86 Глава 3. Многомерная безусловная минимизация метод Ньютона не в последнюю очередь объясняется тем, что метод Ньютона очень чувствителен к выбору начальной точки. Отметим две модификации метода Ньютона, различающиеся выбором пара- метра Хд.. Одна из указанных модификаций метода Ньютона опирается на метод дробления шага, используемый для определения параметра хд.. В этой модификации на каждой итерации параметр хд. выбирается так, чтобы выполнялось неравенство fcGN, (3.48) где cu Е (0, 1/2) — некоторый фиксированный параметр. Подбор па- раметра хд. осуществляется следующим образом. Сначала полагаем хд. = 1. Затем проверяем условие (3.48). Если оно нарушено, то корректируем значение хд., умножая его на постоянный коэффициент дробления шага z/. Снова проверяем условие (3.48) и снова корректи- руем хд., если условие нарушено. Процесс корректировки продолжаем до тех пор, пока условие (3.48) не будет выполнено. Ньютоновское направление спуска можно определять, например, путем решения си- стемы (3.47). Другая модификация метода Ньютона основана на применении исчерпывающего спуска в ньютоновском направлении. Такая моди- фикация может привести к довольно большому объему вычислений, так как трудоемкой является минимизация функции одного перемен- ного 99/. (х) = f(xk~l + хр^’). Пример 3.6. Сравним описанные модификации метода Нью- тона на примере минимизации функции /(ж],.?^) — (^2 ~ ^’з)2+ + (j:j — I)2 — той же, что и в примере 3.5. В качестве начальной выберем точку х{) — (— 1, —2) и зададим параметр точности поиска - 10"3. Процесс поиска точки минимума ж* = (1, 1) целевой функции /(ж j, Х2) для обеих модификаций метода Ньютона показан на рис. 3.14: а — спуск с дроблением шага (у = 0,5, и = 0,25); б — исчерпывающий спуск. Результаты вычислений приведены в табл. 3.5, в которой двум указанным модификациям соответствуют колонки а и б. В колонке в содержатся результаты расчетов „классическим44 методом Ньютона (т.е. с выбором в рекуррентном соотношении (3.44) значения хд. = 1).
3.5. Метод Ньютона и его модификации 87 Таблица 3.5 к а б в 1 (-0,7143, 0,4286) (-0,6888, 0,6455) (-0,7143, 0,4286) 2 (0,0226, —0,5832) (0,1152, —0,5155) (0,7594, — 1,5951) 3 (0,4735, 0,0209) (0,9260, 0,6683) (0,8044, 0,6451) 4 (0,8478, 0,5786) (0,9821, 0,9697) (0,9992, 0,9605) 5 (0,9667, 0,9203) (1,0000, 1,0000) (1,0000, 1,0000) 6 (0,9991, 0,9971) 7 (1,0000, 1,0000) Из результатов расчетов видно, что метод дробления шага при спуске в ньютоновском направлении дает результаты хуже, чем метод исчерпывающего спуска и метод спуска с ньютоновским шагом. При одном и том же значении £3 = 10-3 в вариантах бив требуется всего пять итераций, в то время как в варианте а — семь итераций. # Две описанные модификации метода Ньютона интересны тем, что они менее чувствительны к выбору начальной точки по сравнению с „классическим44 методом Ньютона, но при этом сохраняют высокую скорость сходимости. Можно показать, что если целевая функция
88 Глава 3. Многомерная безусловная минимизация дважды непрерывно дифференцируема, ее матрица Гессе Я (ж) в некоторой окрестности [/(ж*) точки минимума ж* удовлетворяет условию Липшица ||Я(ж) - Н(у)\\ L\x - ж, у е [/(ж*), (3.49) а также условию* (Я(ж)Ь, /г) /i|h|2, ж е (/(ж*), h € R™, то при попадании очередной точки ж^’-1 в окрестность U(ж*) верна оценка |жА: - ж*| — |жА'’_| - ж*|2. (3.50) М Реализация указанных модификаций метода Ньютона наталкива- ется на те же трудности, которые характерны и для „классического44 метода Ньютона. Главная из них состоит в том, что на каждой итера- ции необходимо для определения ньютоновского направления спуска обращать матрицу Гессе или решать систему линейных уравнений, матрицей которой является матрица Гессе. И то, и другое — трудо- емкая вычислительная задача. Один из способов преодоления этой трудности — использование для выбора направления спуска матрицы Гессе, найденной на одной из предыдущих итераций, что сокращает количество операций обращения матрицы. В простейшем варианте этого подхода матрицу Гессе обращают один раз в начальной точке и для определения вектора, указывающего направление спуска на fc-й итерации, используют формулу = -Я-1(ж0)йтас1/(ж^-1), UN. (3.51) Если матрица Гессе Я(ж°) целевой функции, вычисленная в начальной точке ж0, не является положительно определенной, то формулу (3.51) можно модифицировать, заменив матрицу Я(ж°) матрицей Н\ 4- Я(ж°), где параметр подобран так, что Н\ будет положительно определенной. Описанный подход приводит к методу с линейной скоростью локальной сходимости, которая характеризуется оценкой ^q\xk~' -ж*|, fceN, (3.52) *Это условие означает, что функция f(x) сильно выпукла в [/(ж*).
3.6. Квазиньютоновские методы 89 с некоторой константой q > 0. Выбор начальной точки х{) влияет на параметр q: чем ближе к искомой точке ж*, тем меньше q. Промежуточная стратегия, при которой матрица Гессе обновляется через фиксированное количество итераций (т.е. на первых т итераци- ях в формуле (3.51) используется матрица Н~] (х°), на следующих т итерациях — матрица Н~1 (хт) и т.д.), приводит к модификации мето- да Ньютона, обладающей сверхлинейной скоростью сходимости (т е. расстояние до точки минимума убывает быстрее геометрической про- грессии). Оценку скорости сходимости в этом случае можно получить, комбинируя оценку (3.50) квадратичной скорости сходимости, которая выполняется через каждые т итераций, с оценкой (3.52) линейной ско- рости сходимости, действующей на промежуточных итерациях. Это комбинирование дает оценку |хЬп-ж*| A;eN, где С > 0 — некоторая постоянная. Отсюда видно, что при периодиче- ском обновлении матрицы Гессе скорость сходимости итерационной последовательности возрастает с уменьшением периода обновления и дает квадратичную скорость сходимости при т = 1, когда матрица Гессе обращается на каждой итерации. Если период т возрастает, то скорость сходимости убывает, приближаясь к линейной. 3.6. Квазиньютоновские методы В многомерной минимизации выделяются методы, которые объ- единяют в себе достоинства как метода наискорейшего спуска, так и метода Ньютона. Это так называемые квазиньютоновские мето- ды. В этих методах не требуется обращение матрицы Гессе целевой функции, но в то же время сохраняется высокая скорость сходимости итерационной последовательности, присущая методу Ньютона и его модификациям. Релаксационную последовательность {аЛ} в квазиньютоновских методах строят в соответствии с общим рекуррентным соотношением (3.27), в котором вектор рк, задающий на /с-й итерации направление спуска, определяют равенством pk — AkWk, k е N. (3.53)
90 Глава 3. Многомерная безусловная минимизация Здесь wk = — gTad/(x/c-1) — антиградиент целевой функции в точке хк~\ а — положительно определенная матрица порядка п, кото- рая на каждой итерации вычисляется по определенному алгоритму Обратим внимание на то, что в силу положительной определенности матрицы Аь вектор рк действительно задает направление спуска, по- скольку (grad/(®fc-l),pfc) = -(wk,Akwk) = ~(Akwk,wk) <0. Процедуру вычисления матриц А^ строят таким образом, чтобы последовательность {Ад.} при /с —> ос сходилась к матрице Я-1 (ж*), где Н(х*) — матрица Гессе целевой функции, вычисленная в точке минимума х* этой функции. На первой итерации обычно полагают А\ = I, т.е. первая итерация выполняется по схеме градиентного спуска. Последовательность матриц А^ можно строить различными спосо- бами. В частности, соотношение А^ = Я-1 (яЛ’-1) приводит к методу Ньютона или одной из его модификаций. Таким образом, квазиньюто- новские методы можно рассматривать как обобщение „классического44 метода Ньютона. Параметр хд. в рекуррентном соотношении (3.27) можно выби- рать по любой из типовых схем (задать постоянное значение хд. = 1, применять метод дробления шага), но чаще всего используют исчер- пывающий спуск в направлении вектора рк. В силу сходимости последовательности {Ад.} к матрице Я-1 (ж*) матрицы Ад. на завершающей стадии поиска близки к матрицам Я-1 (хк~}), используемым в методе Ньютона. Исходя из этого можно ожидать, что квазиньютоновские методы сохраняют высокую скорость сходимости, присущую методу Ньютона. Сходимость указывает и на то, как можно строить матрицы Ад.: они должны быть близки к матрицам Н~} (хк~*), и их естественно получать, тем или иным образом аппроксимируя матрицы Я-1 (яЛ’-1). Выбор удачной аппроксимации может существенно сократить объем вычислений по сравнению с обращением матрицы Гессе и тем самым упростить процедуру построения очередного направления спуска. Именно эти соображения лежат в основе всех квазиньютонов- ских методов.
3.6. Квазиньютоновские методы 91 Каждую очередную матрицу Аь+\ строят, корректируя определен- ным способом ранее вычисленную матрицу А^. Этот процесс можно описать рекуррентным соотношением А.+ 1-Л + ДЛь fceN, (3.54) где ДАд. — положительно определенная матрица порядка п, назы- ваемая поправочной. Способ выбора матрицы ДА^ определяет и конкретный квазиньютоновский метод. На первой итерации, как от- мечено, обычно принимают А\ = I. Пусть целевая функция является квадратичной функцией /(х) = = 2 (Qx- х) + (Ь, ж) с положительно определенной матрицей Q. Тогда в каждой точке х матрица Гессе совпадает с матрицей Q, a grad f(x) = = Qx + Ь. Для приращения антиградиента Ди/ = wk — wk~\ соот- ветствующего приращению Дхк = хк — хк~} векторного аргумента функции, имеем Ди/ = grad/(xfc-1) - grad/Xx^’) = Q(xk~} — хк) = —Q^xk. Таким образом, для квадратичной целевой функции выполняется равенство Q~'&wk = -&хк, keN. (3.55) Имея в виду это равенство, в общем случае потребуем, чтобы матрицы Ад.+ 1 удовлетворяли так называемому квазиньютоповскому условию Ak+i&wk = -&xk, fceN. (3.56) Для поправочных матриц это условие имеет вид ДА^Ди/ = -Дх^ — Ak^wk. Непосредственной проверкой можно убедиться, что этому усло- вию удовлетворяют матрицы AxkyT AkAwkzT к (Awk,y) (&wk.zy
92 Глава 3. Многомерная безусловная минимизация где у z € К" можно выбрать произвольно. Полагая у = &хк и z = = Akwk и учитывая (3.54), получаем _ _ , N f3 57. + 1 к (hwk)hxk) , Awk} Выбор матриц Ak по формуле (3.57) в сочетании с исчерпывающим спуском по направлениям векторов рк — основа квазиньютоновского метода, называемого методом Давидона — Флетчера — Пауэлла, ил и ДФП-методом. При построении матриц Аь в соответствии с соотношением (3.57) свойство положительной определенности сохраняется. При минимизации квадратичной функции с положительно опре- деленной матрицей ДФП-метод сводится к методу сопряженных на- правлений, поскольку первые п векторов рк, задающие направления спуска в этом методе, являются сопряженными относительно матрицы Q. Таким образом, ДФП-метод не более чем за п итераций дает точное решение задачи безусловной минимизации квадратичной функции. Матрицы Лд., вычисленные по ДФП-методу, связаны равенствами AkQpl=p\ г=\,к, k=\,n. При k = п из этих равенств следует, что п векторов pl,i— 1, п, являются собственными для симметрической матрицы AnQ, а соответствующие собственные значения равны еди- нице. Следовательно, AnQ = I и An = Q~}, т.е. матрица Агг оказы- вается обратной к матрице Гессе Н(ж*) = Q квадратичной функции, вычисленной в точке минимума х*. На рис. 3.15 показаны две итерации ДФП-метода для целевой функции двух переменных. Из сказанно- го выше ясно, почему траектория ДФП-метода совпала с траекторией метода сопряженных направлений (см. рис. 3.11, а).
3.6. Квазиньютоновские методы 93 Если целевая функция не является квадратичной, использование ДФП-метода в общем случае не позволяет найти точку минимума за конечное число итераций. Как и в методе сопряженных направлений, чтобы ослабить влияние накапливаемых погрешностей на сходимость итерационной последовательности и уменьшить вероятность появле- ния после очередных п итераций линейно зависимых направлений спуска, в ДФП-методе применяют процедуру „обновления44 алгорит- ма, в соответствии с которой через каждые п итераций в качестве матрицы используют единичную матрицу. Выполнение процедуры „обновления44 алгоритма увеличивает об- щее число итераций, необходимых для достижения заданной точности поиска. Поэтому на практике используют варианты ДФП-метода, в которых (как и в методе сопряженных направлений) „обновление44 не используется. Поясним суть такого подхода на конкретном при- мере. Пр и м е р 3.7. С помощью ДФП-метода найдем минимум функ- ции /(xj,а?2) = (xj — Х2)2 4- (zj — I)2 (см. примеры 3.1, 3.4-3.6). В качестве начальной выберем точку ж0 = (— 1, —2) со значением функ- ции /(ж0) = 13 и зададим параметр точности поиска S3 = 10-3. Процесс поиска точки миниму- ма ж* = (1, 1) показан на рис. 3.16. Первая итерация совпадает с первой итерацией как по методу сопряжен- ных направлений (см. рис. 3.12, а, б), так и по методу наискорейшего спус- ка. В табл. 3.6 приведены коорди- наты точек xk итерационной после- довательности, построенной ДФП- методом, значения f(xk) целевой функции в этих точках, а также матрицы Ак и матрицы, обратные к матрицам Гессе H(xk) целевой функции. Из результатов вычислений вид- но, что заданная точность поиска минимума достигнута за 7 итераций, матрицы А 7 и Я"1 (ж7) на конечном, седьмом шаге поиска близки друг к
94 Глава 3. Многомерная безусловная минимизация Таблица 3.6 k X /(**) Ak (xfc) 1 (0,3787, -1,4830) 3,0312 /1 \° 0\ 1 J / 0,071 0,143 —0,143\ 0,786; 2 (0,1584, -0,1027) 0,7246 / 0,100 0,127 —0,127\ 0,986 ) /0,118 \ 0,089 0,089 \ 0,567 ) 3 (0,8593, 0,5572) 0,0526 ( 0,073 y—0,005 —0,005\ 0,456 ) /0,398 \0,126 0,126 \ 0,540 ) 4 (0,8707, 0,7660) 0,0168 /0,382 \ 0,382 0,382 \ 0,782 ) /0,367 \ 0,631 0,631 \ 1,584 ) 5 (0,9942, 0,9708) 3,4-10-4 /0,272 \ 0,481 0,481 \ 1,351 ) /0,508 ^0,885 0,885 \ 2,040 J 6 (0,9980, 0,9964) 4,3-10“6 / 0,494 \ 0,914 0,914 \ 2,160 ) /0,483 ^0,960 0,960 \ 2,410 J 7 (0,9999, 0,9999) 3,310-'° /0,512 1,016 1,016 \ 2,516 J /0,500 у 0,999 0,999 \ 2,494 J другу. Матрица Н вычисленная в точке минимума х*, имеет вид и также мало отличается от Ау и Я-1 (ж7). Отметим, что для дости- жения той же точности в методе наискорейшего спуска потребовалось 96 итераций. # Возможны и другие способы построения последовательности ма- триц Аь- Так, например, в методе Бройдена — Флетчера — Шенно (БФШ-методё) используют соотношение Aa?fc(Asfc)T _ Л’+1 к (&wk,£xk) AkAwk(Awky AJk + pkTk(rk)\ fceN, (3.58) Pk где AkAwk Дхк pk (Axk,Awky Pk = (АкЬ/шк, &wk),
3.6. Квазиньютоновские методы 95 а в методе Пауэлла — A^(A2fc)T Ak+\ = ~ , (Aw\ Дж ) fceN. где Дж^ = ДяЛ’ + Af.Дwk, k e N. В этих методах, как и в ДФП-методе, в качестве А] обычно выбирают единичную матрицу. Можно показать, что любой из рассмотренных способов построе- ния матриц Аь сохраняет свойство положительной определенности, а последовательность {A/J при к —* оо сходится к Н~\х*). Пример 3.8. Сравним различные методы на примере минимиза- ции функции f(x\,^2) — (^1 “ + (^’1 - I)2» рассмотренной в ряде предыдущих примеров. Выберем начальную точку ж0 = (— 1, —2) со значением функции /(х°) = 13 и зададим параметр точности поиска £3 = 10“3. Как и в примере 3.7, мы не будем использовать „обновле- ние“ алгоритма через фиксированное число шагов. В табл. 3.7 приведены координаты точек хк, найденных двумя квазиньютоновскими методами. Траектории поиска точки минимума для этих методов показаны на рис. 3.17 (а — БФШ-метод; б — метод Пауэлла). Таблица 3.7 N БФШ-метод Метод Пауэлла 1 (0,379, -1,483) (0,379, -1,483) 2 (0,158, -0,103) (0,158, -0,103) 3 (0,859, 0,557) (0,859, 0,557) 4 (0,871, 0,766) (0,871, 0,766) 5 (0,994, 0,971) (0,934, 0,871) 6 (0,998, 0,996) (0,998, 0,989) 7 (0,999, 0,999) (0,999, 0,999) 8 (0,999, 0,999) Сравнительный анализ результатов показывает, что для рассма- триваемой функции наилучший результат по количеству итераций, требуемых для достижения заданной точности, дают ДФП-метод и БФШ-метод. Метод Пауэлла по этому критерию эффективности им Уступает. #
96 Глава 3. Многомерная безусловная минимизация а б Рис. 3.17 Отметим, что сравнение эффективности алгоритмов минимиза- ции принято проводить на специально сконструированных функциях. Графики этих функций имеют четко выраженную овражную структу- ру. На рис. 3.18 представлены линии уровня унимодальной функции Розенброка /(х1?х2) = 100(я2 — х2)2 4-(1 -зч)2, (3.59) а на рис. 3.19 — функции Химмельблау /(Х1,Х'2) = (я2 4-я2 - И)2 + (Х| +Х‘2 - 7)2, (3.60) имеющей четыре точки минимума. Для испытания алгоритмов используют также унимодальную функцию Пауэлла f(x) = (я] + 10z2)2 + 5(^з-Ж4)2 4- (х2-2д:з)4 4-10 (rr i — гг4 )4, (3.61) достигающую минимума в точке х* = (0, 0, 0, 0).
3.6. Квазиньютоновские методы 97 7 — 9252
98 Глава 3. Многомерная безусловная минимизация 3.7. Методы прямого поиска В методах прямого поиска (методах нулевого порядка) используют информацию только о значениях целевой функции. Многие из этих методов не имеют теоретического обоснования и построены на эври- стических соображениях. Вопросы их сходимости мало изучены, а оценки скорости сходимости обычно отсутствуют. Вместе с тем ме- тоды прямого поиска идейно связаны с методами первого и второго порядков, что в ряде случаев позволяет оценивать их эффективность для некоторых классов функций. Распространенными способами оценки эффективности методов прямого поиска являются вычислительные эксперименты и сравни- тельный анализ методов по результатам таких экспериментов. Однако следует учитывать, что этот анализ не всегда приводит к однозначным выводам о преимуществах одного метода перед другим. Это связано с тем, что, во-первых, сравнению обычно подвергают- ся не сами методы, а конкретные алгоритмы (программы), в которых реализованы эти методы. Хороший метод можно „загубить44 плохим программированием, неудачным выбором параметров алгоритма. Во- вторых, итерационная последовательность может иметь разное пове- дение на разных этапах процесса минимизации. Удовлетворительного способа учета указанных особенностей при сравнении методов нет. Единственное, что можно сделать в подобной ситуации, — привести данные о результатах вычислений в развернутой форме, позволяющей сравнивать методы по различным критериям. Кроме того, не следует забывать, что численное решение математических задач в значитель- ной степени является искусством, которому можно научиться лишь накоплением опыта, путем проб и ошибок. Особенности прямого поиска минимума. В методах прямого поиска вычисляются значения лишь самой функции, ее частные про- изводные при этом не используются. Это обстоятельство существенно расширяет сферу практического применения таких методов. Опишем один из наиболее простых методов прямого поиска. Вы- брав начальную точку х() е Rn, строим релаксационную последова- тельность {аг} следующим образом. На /с-й итерации отталкиваемся от найденной на предыдущей итерации точки xk~1, которую в методах прямого поиска часто называют базовой точкой. Строим п-мерный куб с центром в базовой точке и с ребрами длиной Z, параллельными векторам стандартного базиса в Rn. Вершинами этого куба являются
3.7. Методы прямого поиска 99 точки вида хк 1 + 52 $iei’ где в|,..., еп — векторы стандартного ба- г=1 ___ зиса, а числовые коэффициенты 5;, г = 1, п, принимают значение 1/2 или —1/2. Множество вершин куба вместе с его центром составляют так называемый шаблон (или образец). Вычислив значения функции в центре и вершинах куба, выберем ту из этих точек, в которой зна- чение функции наименьшее. Если выбранная точка оказалась одной из вершин куба, она становится базовой точкой хк. Если же функция принимает наименьшее значение в точке хк~1, то уменьшаем параметр Z, например вдвое, и повторяем процедуру с кубом меньшего размера. Процесс поиска завершается, когда длина ребра куба I станет меньше заданного числа е > 0. Основной недостаток описанного метода прямого поиска (поиска по шаблону) состоит в резком росте количества вычисляемых зна- чений целевой функции с увеличением размерности п (количество вершин n-мерного куба равно 2П), а главное преимущество — в про- стоте реализации. Отталкиваясь от этого метода, можно построить более удачные методы прямого поиска, сокращая количество вершин в шаблоне. Совсем не обязательно располагать вершины столь регу- лярно, как в описанном методе. Главное, чтобы вершины шаблона позволяли учитывать любое направление из базовой точки. Реализация этой идеи привела к разработке методов симплексного поиска, которые к началу 1970-х гг. получили широкое распростра- нение. Симплекс (от лат. simplex — простой) — это простейший многогранник в с п + 1 вершинами (в R2 — треугольник, в К3 — тетраэдр и т.д.). В IRn симплекс образуют любые точки у1, ..., уп, для которых векторы у1 — у0, у2 — у®, ..., уп — у° линейно независимы. При этом точки у®, у\ ..., уп называют вершинами симплекса. Использование в качестве шаблона не n-мерного куба, а симплекса уже дает заметное преимущество, так как на каждой итерации коли- чество вычисляемых значений функции сокращается с 2п до п + 1. Однако это количество можно сократить еще больше, если принять во внимание следующую идею. Вычислив в вершинах симплекса значе- ния целевой функции, выберем наихудшую из них, т.е. ту, в которой значение функции наибольшее. Заменив эту вершину новой по опре- деленному правилу, получим новый симплекс, с которым повторяем такую же процедуру. В результате получим последовательность сим- плексов, стягивающихся к точке минимума целевой функции. 7*
100 Глава 3. Многомерная безусловная минимизация В первом варианте симплексного поиска, предложенном в 1962 г. Спендлеем, Хекстом и Химсвортом, был использован регулярный симплекс, у которого все вершины равноудалены друг от друга (в К2 — равносторонний треугольник, в R3 — правильный тетраэдр). Дж. Нелдер и Р. Мид в 1965 г. впервые рассмотрели произвольный (нерегулярный) симплекс и предложили способ изменения скорости его движения путем расширения или сжатия симплекса в зависимости от того, удачно был выбран шаг поиска в направлении убывания функции или нет. Позднее в исходные варианты методов симплексного поиска были введены различные способы изменения размеров и формы симплек- са. Это привело к созданию методов управляемого прямого поиска, в которых по определенному правилу выбирают направление смещения центра используемой конфигурации и величину этого смещения так, чтобы значения функции в вершинах или центре симплекса убывали. Метод, в котором в процессе поиска определенным образом изме- няют форму симплекса, обычно называют методом деформируемых конфигураций. Изменение формы симплекса позволяет улучшить процесс адаптации используемой конфигурации к рельефу графика минимизируемой функции. Использование регулярного симплекса. Сначала рассмотрим простейший вариант метода симплексного поиска с использованием регулярного симплекса. На пер в о м шаге поиска строим регулярный симплекс с вершинами ж1,1, i= 1,п+1, который обозначаем Sj. Построение симплекса можно провести двумя способами. 1. Если х° — заданная базовая точка, выбираем ее в качестве первой вершины х1 ’1 симплекса S], а координаты остальных п вершин х1,г, i = 2, п+1, этого симплекса вычисляем по формулам 5/п+ 1 - 1 71^2 + 1 + п — 1 £ п\/2 i = j +1; (3.62) где Xji, j = 1,п, — координаты вершины х1,2 симплекса; I — длина ребра симплекса. Например, если в R2 выбрать базовую точку х° = = ж1,1 = (0, 0) и длину ребра I = 2, то две другие вершины ж1,2 и ж1,3 12 12 двумерного симплекса будут иметь координаты =0,518, х2' = = 1,932 и + = 1,932, + = 0,518 (рис. 3.20, а).
3.7. Методы прямого поиска 101 2. Если ж0 — заданная базовая точка, то ее определяем как центр регулярного симплекса с длиной ребра I, а координаты вершин х1 ,г, i = 1, п+1, этого симплекса находим по формулам (3.63) где х®, j = 1, п, — координаты точки ж0; х^г, j = 1, п, — координаты вершины ж1 ,г. Например, если в К2 выбрать базовую точку ж0 = (0, 0) и длину ребра симплекса I = 2, то вершинами симплекса будут точки ж1’1 = (—1,000, -0,578), ж1’2 = (1,000, -0,578), ж1’3 = (0,000, 1,156) (рис. 3.20,6). Определив вершины симплекса Sj, вычисляем в них значения минимизируемой функции. По результатам вычислений выбираем вершину, в которой значение функции является наибольшим (если таких вершин несколько, можно взять любую из них). Пусть для определенности это будет вершина ж1,71+1. По формуле X2’n+I =2^-x'-n+1 (3.64) находим точку ж2’п+1, противолежащую вершине □г|,п+1 относи- 1 п тельно противоположной грани симплекса Sj. Точка х[ = - х^'г П г=1
102 Глава 3. Многомерная безусловная минимизация представляет собой центр грани симплекса, противоположной точ- ке SCl’n+1. Преобразование симплекса, состоящее в замене одной его вер- шины (в данном случае x,’n+l) симметричной ей относительно про- тивоположной грани (в данном случае вершиной ж2,п+1), называют отражением вершины. В результате получают новый регулярный симплекс S2, образованный новой вершиной х2,п4-1 и п вершинами х]'г, i= 1, п, принадлежавшими симплексу S|. На рис. 3.21 показано построение нового регулярного симплекса в двумерном случае. На втором шаге поиска вычисляют значение целевой функции в новой вершине симплекса S2• В остальных вершинах значения функции уже известны. Можно повторить описанную процедуру преобразования симплекса, состоящую в отражении худшей (с наи- большим значением функции) вершины. При записи алгоритма описанного метода удобно, чтобы номера вершин симплекса на /с-й итерации поиска были присвоены по возра- станию значений функции, т.е. так, чтобы выполнялись неравенства Такую нумерацию вершин симплекса будем называть правильной. При правильной нумерации вершин отражению подлежит последняя вершина, т.е. яЛп+1. После того как построен новый симплекс, изме- няют порядок вершин, устанавливая правильную их нумерацию. Если на /с-м шаге в результате отражения вершины аЛп+1 сим- плекса Sk в точку х/с+,’п+1 окажется, что /(®A:+I’n+I) /(x/c,n+1), отражение признают неудачным и возвращаются к исходному сим- плексу Sk- В этом случае пробуют провести отражение вершины хк>п, сравнивая значение в новой вершине с наибольшим значением
3.7. Методы прямого поиска 103 f(xk'n+l) в симплексе 5^.. Если и это отражение неудачно, пробуют от- ражение следующей вершины 6 Sk и т.д. Если отражения всех вершин симплекса Sk оказались неудачными, можно прекратить поиск минимума, выбрав в качестве приближения точку xk,i с наименьшим значением функции среди всех вершин последнего симплекса S^. Особенность симплексного поиска состоит в том, что его результа- том является последовательность симплексов, а не точек, как в методах спуска. Однако и в симплексном поиске можно выделить релаксаци- онную последовательность. Действительно, в силу описанного метода выбора симплексов {Sk} последовательность {хк'п+1} „наихудших“ вершин является релаксационной. Отметим, что в большинстве слу- чаев последовательность симплексов оказывается конечной, так как в окрестности точки минимума возникает ситуация, когда любое от- ражение вершины очередного симплекса является неудачным и этот симплекс будет последним. Точность приближения, полученного с помощью простейшего симплексного поиска, описанного выше, определяется размерами ребер симплекса I. Повышение точности поиска требует уменьшения значения этого параметра, а это приводит к увеличению количества итераций, поскольку шаг поиска напрямую связан со значением I. В этой связи возникает идея изменять размеры симплекса в процессе поиска. Реализация этой идеи наделяет процесс поиска высокими адаптивными свойствами. Уменьшение размера симплекса при сохранении его формы на- зывают редукцией симплекса. Редукция симплекса может исполь- зоваться следующим образом. Сначала делают попытку выполнить отражение вершины симплекса S^, полученного на предыдущей ите- рации, действуя так, как это описано выше. Затем, если отражение оказалось неудачным, выполняют редукцию симплекса, уменьшая длину его ребер с помощью некоторого фиксированного коэффици- ента редукции 6 е (0, 1). В этом случае процесс редукции можно описать равенствами xk+})l = xk'1 + 8(хк,г - a?’’1), i — 2, п+1. Из этих равенств видно, что симплекс сжимается к вершине а/’1, в которой значение целевой функции меньше, чем в других вершинах симплекса. Использование в симплексном поиске редукции симплекса при- водит к изменению и условия прекращения поиска. Здесь возможны
104 Глава 3. Многомерная безусловная минимизация различные варианты, выбор определяется конкретной постановкой за- дачи. Один из вариантов — прекращение поиска в момент, когда в результате очередной редукции длина ребер симплекса окажется мень- ше заданной точности поиска. На рис. 3.22 показан процесс симплексного поиска с помощью регулярного симплекса. Использование нерегулярного симплекса. Симплексный поиск с использованием регулярного симплекса эффективен лишь в случаях, когда график целевой функции имеет достаточно простую топогра- фию. Если график целевой функции имеет овражную структуру, использование регулярного симплекса менее эффективно: регулярный симплекс, скатываясь по поверхности уровня, плохо в нее вписы- вается. Примером функции, график которой обладает овражной структу- рой, является функция ,х2) = 10(xf - х2)2 + (Х| - I)2, имеющая минимум в точке х* = (1, 1). Топография линий уровня /(^1,^2) = С этой функции приведена на рис. 3.23. Препятствием
3.7. Методы прямого поиска 105 для успешного поиска минимума f(x) является в этом случае форма симплекса: регулярный симплекс нельзя изменить так, чтобы он „вытянулся44 вдоль „оврага44, а это не позволяет успешно продолжить поиск минимума. Естественной в этих условиях выглядит идея деформирования симплекса в процессе поиска, т.е. изменения его формы и размера. Существует много вычислительных конструкций прямого поиска с помощью нерегулярного симплекса, различающихся способами изме- нения размеров и формы симплекса. Рассмотрим одну из простейших конструкций подобного рода — метод Нелдера — Мода. Обозначим через симплекс, полученный на предыдущей, (к — 1)-й итерации. Этот симплекс может иметь произвольную форму, однако будем считать, что он имеет правильную нумерацию вершин. Построение нового симплекса S^+i включает несколько процедур: отражение „худшей44 вершины аЛп+1; изменение размера и формы симплекса, полученного в результате отражения этой вершины, и редукция исходного симплекса S^, выполняемая при неудачном от- ражении вершины. Рассмотрим эти процедуры подробнее. 1. Отражение вершины е осуществляют в соответствии с формулой, аналогичной формуле (3.64): ж/с+1,п+1 — xk a(xk _ 1 п где q > 0 — заданный коэффициент отражения, жс = - Е xk,t — п i=\ Центр грани симплекса, противоположной „худшей44 вершине аЛ’,п+1. В результате получают новый симплекс бд., образованный новой вер-
106 Глава 3. Многомерная безусловная минимизация Рис. 3.24 шиной xfc+1>n+| и вершинами xk'\ i— 1, п, исходного симплекса. На рис. 3.24 показана процедура построения симплекса в двумерном случае при а = 1. В новой вершине вычисляют значение целевой функции /(х). Если /(яЛ'+1,п+1) < /(яЛ1), то шаг поиска считают удачным: по- лучен новый симплекс 5д., у которого зна- чение целевой функции в новой вершине меньше, чем наименьшее значение функ- ции в вершинах исходного симплекса. При удачном отражении функция убывает в на- правлении новой вершины, поэтому целесо- образно эту вершину отодвинуть еще даль- ше, увеличивая тем самым шаг поиска. Это реализуется процедурой растяжения симп- Если выполнены неравенства/(яЛ71) f(xk+]'n+}) /(яЛ1), лекса. то замена „худшей41 вершины новой уменьшает среднее по вершинам значение функции и отражение следует признать приемлемым. Одна- ко целесообразно выполнить процедуру сжатия симплекса S^, чтобы получить новую вершину с меньшим значением функции. Если же у(ж/с4-1,п+1) > то отражение неудачно и можно попробовать процедуру сжатия исходного симплекса S^' может оказаться, что сжа- тие приведет к более удачному варианту симплекса. 2. Растяжение симплекса осуществляют в соответствии с фор- мулой Рис. 3.25 xi’+1’n+1 = х* + 0(хк+]'п+} -хк), где 0 > 1 — заданный коэффициент растяжения', хк — центр грани, противоположной вершине 1,71+1 в симплексе S^. Геометрически растяжение можно интерпретировать как увеличение длины вектора ж/с+1,п + 1 _ xk в д раз После растяжения сравнивают значе- ние /(ж*+1,п+1) со значениями це- левой функции в остальных верши- нах симплекса. Если /(ж*+1,п+1) < < выбирают симплекс с вершинами ж#+1,п+1 и хк>г, i = 1, п (на рис. 3.25 построен симплекс S^+\ в двумерном случае с применением опе- рации растяжения при 0 = 2). При
3.7. Методы прямого поиска 107 /(х*+1’п+1) /(яЛ1) операцию растяжения признают неудачной и выбирают симплекс S\.+ ] = Sk- 3. Сжатие симплекса Sk проводят в соответствии с формулой ®t+',n+l =®^ + 7(^’+1,n+1 -®с)> где 7 е (0, 1) — заданный коэффициент сжатия. Сжатие симплекса Sk показано на рис. 3.26, а в двумерном случае при 7=1/2. Рис. 3.26 Сжатие симплекса Sk выполняют по аналогичной формуле: ®t+l’n+l =®c+7(®fe’n+,-®c)- На рис. 3.26, б показано такое сжатие при 7 = 1/2. После сжатия симплекса сравнивают значение /(x*^l,n+1) целе- вой функции в найденной вершине со значением /(xA;+,’n+1) или /(яЛп+1) в отброшенной вершине. Если значение в новой вершине меньше, то в качестве Sk+\ выбирают результат сжатия симплек- са. Если сжатие симплекса не уменьшило значение функции, то оставляют симплекс, подвергшийся сжатию, т.е. либо = Sk, либо Sk+] = Sk- В последнем х ’ случае все попытки не привели к изменению \ \/ симплекса. Поэтому выполняют операцию ре- \ / дукции симплекса, которая осуществляется по тем же правилам, что и для регулярного сим- плекса. Симплекс Sk+\, полученный редукцией р * 327 симплекса Sk, изображен на рис. 3.27. u Одна из проблем, связанных с применением нерегулярного сим- плекса, состоит в том, что через несколько итераций симплекс может
108 Глава 3. Многомерная безусловная минимизация оказаться сильно вытянутым и потеряет способность адекватно отра- жать изменение целевой функции в разных направлениях. Учитывая это, в методах симплексного поиска, базирующихся на использовании нерегулярного симплекса, периодически (через фиксированное число итераций) проводят так называемую операцию восстановления сим- плекса, в которой, выбрав две „лучшие" точки текущего симплекса Sk, строят новый симплекс, используя расстояние между выбранными точками как длину ребер нового симплекса, а одну из этих точек — как базовую. Симплексный поиск в методе Нелдера — Мида прекращается, ко- гда размеры текущего симплекса оказываются меньше некоторой кри- тической величины. В отличие от методов с регулярным симплексом, в которых все ребра одинаковы и по их длине можно контролировать размеры симплекса, в методах с нерегулярным симплексом необходи- ма некоторая общая характеристика размеров симплекса. Например, в качестве условия останова можно использовать неравенство , п+1 г=1 где = - ^2 xk'1 — центр грани симплекса, противоположной его п i=i „худшей" вершине; в > 0 — параметр точности поиска. Построение начального симплекса в методах поиска с нерегуляр- ным симплексом проводят различными способами. Можно в качестве начального выбрать регулярный симплекс, вершины которого находят по формуле (3.62) или (3.63). Другой способ состоит в выборе базовой точки х° в качестве первой вершины х1,1 симплекса и вычислении остальных п вершин симплекса по формуле ж1’4"1 = ж0 + le^ i=l,n, (3.65) где в], ..., еп — стандартный базис в Kn; I — заданное число, регулирующее размеры симплекса. При этом способе построения начальный симплекс будет нерегулярным (например, в двумерном случае получим равнобедренный треугольник). С теоретической точки зрения методы поиска, использующие нере- гулярные симплексы, изучены недостаточно полно. Однако практика свидетельствует, что эти методы вполне работоспособны. В задачах
3.7. Методы прямого поиска 109 безусловной минимизации рекомендуют выбирать q = 1, (3 = 2, 7 = = 1 /2 или а = 2, 13 = 5/2, 7 = 1/4. Эта общая рекомендация может не учитывать особенностей конкретной целевой функции. Уточнить значения параметров симплексного поиска можно, проведя дополни- тельный анализ целевой функции или вычислительный эксперимент. Отметим, что симплексный поиск на основе нерегулярных сим- плексов чувствителен к выбору значений параметров. При правиль- ном выборе параметров такой поиск может оказаться более эффектив- ным, чем поиск с помощью регулярного симплекса. В то же время неудачный выбор параметров может привести не только к чрезмер- ному увеличению количества итераций, но и к неверным результатам вследствие того, что процесс поиска прекратится до достижения точки минимума. На рис. 3.28 показан симплексный поиск с использованием нере- гулярного симплекса. Циклический покоординатный спуск. В этом методе направле- ние спуска последовательно выбирают вдоль одной из координатных осей. Вдоль выбранного направления проводят исчерпывающий спуск (или наискорейший спуск), определяя тем самым шаг спуска.
110 Глава 3. Многомерная безусловная минимизация Метод циклического покоординатного спуска — один из самых простых в ряду методов оптимизации. Алгоритм вычислений можно описать следующим образом. Обозначим через е;, i = 1, п, векторы стандартного базиса в Rn. Выберем начальную точку ж0, параметр ТОЧНОСТИ ПОИСКа £| > 0 и положим к = j = 1, хк = ж0. 1. Минимизируя функцию = f(xj + ), находим значе- ние /3jk\ вычисляем ж^+1 = хк + и переходим к п. 2. 2. Если j < п, то увеличиваем номер j на единицу и возвращаемся к п. 1. В противном случае полагаем хк = ж^+1 и переходим к п. 3. 3. Если |аЛ’ — хк~' | < 61, то поиск прекращаем, выбирая в качестве приближения к точке минимума ж* точку хк, т.е. полагая ж* « хк, f(x*) « f(xk). В противном случае полагаем j = 1, ж^+1 = хк, увеличиваем номер к на единицу и переходим к п. 1. В описанном алгоритме одной итерацией следует считать после- довательное использование всех координатных направлений: номером итерации является параметр к, а параметр j определяет порядковый номер координатного направления и на каждой итерации пробегает все значения от 1 до п. Обратим также внимание на то, что значение /3^ может быть как положительным, так и отрицательным, а шагом спуска следует считать величину \хк — ж*_,|. Но эти положения в достаточной мере условны. С неменьшим основанием можно счи- тать, что одной итерацией прямого поиска является спуск по одному из координатных направлений, а шаг спуска определяется абсолютной величиной параметра Правда, в этом случае условие останова следует проверять перед каждой сменой координатного направления. Условие останова, указанное в алгоритме, не является единственно возможным. Часто используют два условия останова: |sc* — ж*-11 < , \f(xk)-f(xk~})\<e2- На рис. 3.29 показаны первые два шага процесса покоординатного циклического спуска в случае функции двух переменных. Хотя метод циклического покоординатного спуска прост в реали- зации, он не всегда эффективен. Метод дает хорошие результаты, если минимизируемая функция является сепарабельной, т.е. представляет
3.7. Методы прямого поиска 111 собой сумму функций одного переменного: /(ж) = hj (xj), х е Rn. j=i В этом случае решение задачи минимизации можно получить за один шаг поиска (т.е. за один полный цикл перебора всех координатных направлений). В самом деле, поскольку Л®*) = Л®) = 52 j=\ j=l достаточно на первом шаге поиска последовательно решить п задач одномерной минимизации функций hj(xj), j = 1, п, что позволит найти все п координат х* искомой точки ж*. Метод Хука — Дживса. При прямом поиске точки минимума целевой функции важную роль играет выбор направления спуска. Для этой цели на каждой итерации можно организовать предварительный
112 Глава 3. Многомерная безусловная минимизация этап исследующего поиска. На этом этапе, анализируя значения целевой функции /(ж) в точках, близких к текущей точке хк~}, находят точку хк, удовлетворяющую условию f(xk) < f(xk~}). В качестве направления спуска выбирают то, которое определяется вектором хк — хк~]. Такая стратегия прямого поиска, предложенная в 1961 г., получила название метода Хука — Дживса (эту стратегию иногда называют методом конфигураций). Опишем один из алгоритмов исследующего поиска, в котором используется фиксированный вектор b = (Ь\ ... Ьп) , удовлетворя- ющий условию max \bj\ е, где е > 0 — параметр точности иссле- дующего поиска. Координаты этого вектора, называемого вектором перемещений, определяют приращения координат точки на этапе ис- следующего поиска. На /с-й итерации полагаем j = 1, хк = хк~\ fk = f(xk~') и переходим к основной части алгоритма исследующего поиска. 1. Вычисляем fkj = f(xk + bjej) и fkj = f(xk - bjej\где e\,..., en — стандартный базис в !Rn, находим точку ~k _ J ^j+l — < хк + bjCj, хк — bjej, f+j < и < f^- во всех остальных случаях, и переходим к п. 2. 2. Если j < п, то номер j увеличиваем на единицу, полагаем fk = = f(xk) и переходим к п. 1. В противном случае переходим к п. 3. 3. Если xkl+\ хк, переходим к п.4. В противном случае умень- шаем длину вектора Ь, умножая его на число 1 /7, где 7 > 1 — коэффициент дробления шага исследующего поиска. Затем, полагая j = 1, хк = хк~}, fk = f(xk~'), возвращаемся к п. 1. 4. Полагаем х = и переходим к этапу спуска, в котором Ь_ 1 направление спуска определяется вектором х — х *. На этапе спуска, подбирая так называемый ускоряющий множи- тель > 0, по формуле хк = хк 1 4- аь(хк — хк 1) (3.66)
3.7. Методы прямого поиска 113 находим такую точку xk, чтобы f(xk) < Условием останова в методе Хука — Дживса может служить неравенство \хк — яЛ’-11 < < 6 (s — параметр точности исследующего поиска), которое можно проверять сразу после этапа исследующего поиска. При выполнении этого условия полагают х* « хк~} и /(ж*) « f(xk~}). Ускоряющий множитель позволяет регулировать величину шага спуска afcl®* — xk~] |, обеспечивая тем самым более высокую эф- фективность метода. Его можно подбирать из разных соображений, например, выполняя исчерпывающий спуск в направлении вектора хк — xk~{. В простейшем варианте метода Хука — Дживса значение задают постоянным, обычно равным 2. На рис. 3.30 показаны эта- пы исследующего поиска и спуска для первых трех итераций метода Хука — Дживса. Рассмотрены два варианта метода: с постоянным значением ускоряющего множителя (рис. 3.30, а) и с ускоряющим множителем, выбираемым в соответствии с исчерпывающим спуском в выбранном направлении (рис. 3.30,6). Известно много модификаций метода Хука — Дживса, отличаю- щихся как способом исследующего поиска, так и выбором ускоряюще- го множителя. Отметим вариант метода, при котором исследующий поиск проводится с помощью метода циклического покоординатного спуска (рис. 3.31). * - 9252
114 Глава 3. Многомерная безусловная минимизация Рис. 3.31 В некоторых модификациях метода Хука — Дживса вводят по- вторный этап исследующего поиска. В этом случае на каждом /с-м шаге поиска после того, как найдена точка хк, выполняют так назы- ваемый поиск по образцу, который включает две процедуры. Сначала выполняют спуск в направлении вектора xk — xk~ \ выбирая тем или иным способом ускоряющий множитель. Затем, получив в результате спуска некоторую точку ж^п, в окрестности этой точки организуют повторный исследующий поиск, который дает еще одну точку х^в. Поиск по образцу считают успешным, если точки хкп и жвв различны, или, другими словами, /(жвв) < /(®сп)- В этом слУчае направление спуска задают вектором жвв — регулируя шаг спуска ускоряющим множителем. Если две дополнительные точки совпали, поиск считают неуспешным и в качестве результата выполнения итерации выбирают — к к —к точку х , т.е. полагают ж — ж . Поиск по образцу может заметно ускорить сходимость итера- ционной последовательности. Например, если при минимизации квадратичной функции двух переменных на этапах исследующего по- иска используется циклический покоординатный спуск, а на этапах спуска — исчерпывающий спуск, то точка минимума достигается за одну итерацию (рис. 3.32, а). Сравним эту стратегию с модификацией метода Хука — Дживса, в которой исследующий поиск основан на методе циклического покоординатного спуска, а ускоряющий множи-
3.7. Методы прямого поиска 115 Рис. 3.32 тель на этапе спуска выбирается исходя из исчерпывающего спуска (рис. 3.32,6). Оба варианта метода на первом шаге дают одну и ту же точку ж1, но различаются правилами выбора текущего направления спуска. Метод Розенброка. Этот метод, как и метод Хука — Дживса, основан на проведении исследующего поиска на каждой итерации, но отличается от последнего способом выбора направлений иссле- дующего поиска. Если в методе Хука — Дживса эти направления фиксированы и определяются векторами стандартного базиса в Кп, то в методе Розенброка направления исследующего поиска задают- ся ортонормированным базисом, который на каждой итерации строят заново в процессе минимизации целевой функции. Такая стратегия поиска впервые была реализована в 1960 г. и получила название метода Розенброка. В первоначальном варианте метода при исследующем поиске использовались дискретные шаги по направлениям, заданным векторами текущего ортонормированного базиса. Дискретные шаги поиска определяются, как и в методе Хука — Дживса, некоторым вектором Ь. Изменяя длину этого вектора, Уменьшают или увеличивают шаги исследующего поиска. h‘
116 Глава 3. Многомерная безусловная минимизация Опишем одну из модификаций метода Розенброка, в которой исследующий поиск на каждом шаге проводится циклическим исчер- пывающим спуском по направлениям текущего ортонормированного базиса. Пусть выбраны начальная точка х° 6 и параметр sj > О точности поиска. В качестве начального ортонормированного базиса р], j = 1, п, задающего направления исследующего поиска на первом шаге, выберем стандартный базис в Rn. Полагаем k = j = 1, хк = xQ и переходим к основной части алгоритма. 1. Минимизируя функцию = f(x^ + [Зрк) на всей число- J J J вой оси, находим значение (3^ е R, вычисляем = хк + /3^рк и переходим к п. 2. 2. Если j < п, то номер j увеличиваем на единицу и возвращаемся к п. 1. В противном случае полагаем хк = и переходим к п. 3. 3. Если \хк — хк~11 < бь то дальнейший поиск точки минимума прекращаем, принимая х* » хк и /(х*) » f(xk). В противном случае переходим к п. 4. 4. На /с-м шаге поиска строим новый ортонормированный базис Pj , j = 1, п, векторы которого задают направления исследующего поиска на (fc+1 )-м шаге. Для этого строим систему векторов ак+\ j = 1, п, в соответствии с формулами pj, ^=0; l=j и проводим ортогонализацию этой системы: ^'+1 =a^+1, Затем выполняем нормировку полученной системы векторов:
3.7. Методы прямого поиска 117 Построив систему векторов рк+ , j = 1, п, переходим к п. 1, полагая j- = 1, = хк и затем увеличивая номер к на единицу. На рис. 3.33 показана первая итерация поиска методом Розенброка в двумерном случае. Метод Пауэлла. К методу Розенброка близок метод прямого поис- ка, предложенный в 1964 г. Пауэллом. Различие двух методов состоит в выборе системы векторов, определяющих направления спуска на каждом последующем шаге поиска. В методе Пауэлла построение си- стемы векторов рк, j = 1,п, на одной итерации выполняется п раз. Опишем алгоритм метода. Полагаем к = j = i = 1, хк = х°, в качестве системы векторов pj, j = 1, п, выбираем стандартный базис в и переходим к основной части алгоритма. 1. Минимизируя функцию = f(x^ -I- 0р^), находим значе- J J J ние 0^ е К, вычисляем хк_^ =хк + 0j^Pj и переходим к п. 2. 2. Если j < п, то увеличиваем номер j на единицу и возвращаемся к п. 1. В противном случае переходим к п. 3. 3. Полагаем р = хк^.1 —хк и находим значение /3, минимизируя Функцию <р(0) = + /Зр), а затем вычисляем Zi = + 0р. ^сли i < п, то для всех j = l,n—1 заменяем рк на Pj+\, полагаем
118 Глава 3. Многомерная безусловная минимизация р^’ = р, xj’ = Zi,j = \, номер i увеличиваем на единицу и переходим к п. 1 рассматриваемого алгоритма. В противном случае, т.е. при i = п, переходим к п. 4. 4. Принимаем хк — zn. Если \хк - х^-1! < £], вычисления прекращаем и полагаем х* ~ хк и /(х*) « f(xk). В противном случае полагаем х^+1 = хк\ i = j = 1, увеличиваем номер k на единицу и возвращаемся к п. 1 алгоритма. На рис. 3.34 показан первый шаг метода Пауэлла в случае функции двух переменных. Можно доказать, что при минимизации квадратичной функции с положительно определенной матрицей Q за один шаг поиска методом Пауэлла строится система векторов, сопряженных относительно Q, а точка минимума достигается за одну итерацию. На рис. 3.35 это показано в двумерном случае. Здесь сопряженными являются векторы р1 = 2| — х° и р2 = х1 — Z\. Известно много модификаций метода Пауэлла. Например, на каждом шаге поиска можно включить дополнительный спуск в на- правлении вектора рп (рис. 3.36). Такая итерация для неквадратичной функции обеспечивает линейную независимость векторов, определя- ющих очередное направление спуска.
3.8. Методы случайного поиска 119 3. 8. Методы случайного поиска Под случайным поиском понимают группу методов спуска, в которых направление спуска выбирается случайным образом. Постро- ение релаксационной последовательности осуществляется по формуле (3.4), общей для всех методов спуска: xk = хк~х + k G N, (3.67) но в этом случае единичный вектор £, определяющий направление спуска, есть случайный вектор, имеющий заданное распределение на единичной сфере ||£|| = 1. Поскольку на каждом шаге итерационного процесса направление спуска есть случайная величина, то и очередная точка xk релаксацион- ной последовательности есть функция случайных векторов , £2,..., , т.е. сама является многомерной случайной величиной. В этой си- туации говорить о сходимости метода можно только в вероятностном смысле. Методы случайного поиска не имеют очевидных преимуществ пе- ред другими методами спуска, да и сравнивать их в теоретическом
120 Глава 3. Многомерная безусловная минимизация плане сложно, поскольку утверждения о сходимости в детерминиро- ванных и стохастических методах качественно разные. Однако методы случайного поиска просты в реализации и в силу этого находят при- менение на практике. Напомним два важных понятия из теории вероятностей, связанных со сходимостью. Последовательность {£/J случайных величин, заданных на одном вероятностном пространстве, сходится по вероятности к случайной величине £, если Р{|£п — С| £} —> 1 при п —> оо для любого числа Р е > 0. Сходимость по вероятности записывают в виде —> £. п—*оо Случайные величины могут быть n-мерными векторами. В этом случае знак модуля означает какую-либо норму в Rn. Последовательность {&.} случайных величин, заданных на одном вероятностном пространстве, сходится к случайной величине £ по- чти наверное, если событие {ал £п(^) С(^)} имеет вероятность 1. Сходимость почти наверное записывают в виде £. п—>оо Лемма 3.1. Пусть функция удовлетворяет условиям теоре- мы 3.1, а релаксационная последовательность {я^}, построенная по рекуррентному соотношению (3.4), подчиняется условию (3.6), в ко- тором 0 < А Ад. 1. Тогда для некоторого числа С > 0 выполняются неравенства f(xk)-f(xk~') >Ca2k\wk\2, (uk,wk) . где otk = —и-2- — косинус угла между антиградиентом w и \wk\ направлением спуска ик. ◄ Из неравенства (3.6) заключаем, что где хк — точка, в которой достигается минимум f(xk~l +/3ик), (3 G R*. Следовательно, достаточно разность f(xk~}) — f(xk) оценить снизу. Пусть точке хк соответствует значение /3. Отметим, что (grad/(ж*), г?) =0,
3.8. Методы случайного поиска 121 поскольку функция /(х) в точке хк имеет минимум по направле- нию ик. Поэтому cvfc|wfc| - (wfc, uk) = - (grad f(xk~1), uk) - = (grad/(xfc) — grad/(xfc_|), uk). Но в соответствии с неравенством Коши — Буняковского |(grad/(xfc)-grad/(xfc-1), г?)| С |grad/(xfc) — grad/(xfc_ 1) | |ufc| < L\xk - xk~] | = L/3. Следовательно, afclw^l < L/3. Выберем значение /3 = y<afc|wfc| и используем неравенство* Li f(xk-') - f(xk~] + (3uk)^ 0(wk,uk) - y/32 = Z?o;fc|wfc| - |/32. Для выбранного значения /3 получаем f(xk~') -f(xk~' +(3uk) yak\wk\2 - ^-ak\wk\2 = ^ak\wk\2. L/ Z.Lj Значит, /(xfc-‘)-/(xfc) ^/(xfc"’)-/(xfc) > ^ak\wk\2 f(xk') > > cai.|w‘|!, Далее мы рассматриваем направления спуска ик как случайные векторы, распределенные на единичной сфере в Rn. В этом случае элементы хк также будут случайными векторами, а точнее, функ- циями случайных векторов и, поскольку по направлениям спуска в Это уточнение формулы Тейлора для функции f(xk~' + /Зик) (см.: Лтгет- ков А.В., Галкин С.В., Зарубин В.С., лемма 4.4).
122 Глава 3. Многомерная безусловная минимизация рамках конкретного алгоритма спуска релаксационная последователь- ность однозначно восстанавливается. Также случайными величинами являются параметры ад.. Будем использовать следующую стратегию спуска с помощью векторов ик. Если на /с-й итерации > 0, т.е. вектор ик является допустимым направлением спуска, то выбираем точку хк = хк~} + + /3kUk, выбирая шаг спуска /3^ тем или иным образом, но так, чтобы выполнялось условие (3.6), в котором 0 < А Ад. 1. Если < О, то допустимым направлением спуска является — ик. Следующую точку релаксационной последовательности вычисляем про формуле хк = хк~} — PkUk- Наконец, при = 0 итерацию пропускаем, т.е. д. д.__1 V» полагаем х = х и переходим к следующей итерации. Очевидно, что при такой стратегии распределение случайного вектора ик должно допускать значения, близкие с направлением антиградиента или градиента. Будем предполагать, что выполняется условие P{a2k^a2\u',...,uk~'}^p>0, fceN, (3.68) где а е (0, 1) — некоторое число. Теорема 3.3. Пусть функция f(x) удовлетворяет условиям те- оремы 3.1, а распределения случайных векторов ик таковы, что выполняются условия (3.68). Тогда для релаксационной последова- тельности {х^} имеем |grad/(sfc)| О при k ОС. ◄ Согласно лемме 3.1 имеем неравенство f(xk~')-f(xk^Ca2\wk\2, fc= 1,2,... Это неравенство следует рассматривать как неравенство случайных величин. Полагая уже заданными векторы и1, ..., ик~ \ рассмотрим условные распределения обеих частей неравенства. Из неравенства вытекает неравенство условных математических ожиданий случайных величин: M(f(xk~1)- f(xk)\u\...,uk-') >C|wfc|2M(4|u1,...,uk~l). Согласно первому неравенству Чебышева М(а£ |и',. • • ,ufc-1) > a2 |u’. ,ик~'} > ра2.
3.8. Методы случайного поиска 123 Поэтому М(/(ж/с-1) - f(xk) In1,... ,гЛ’-1) C\wk\2pa2. Условные математические ожидания в обеих частях неравенства представляют собой случайную величину (в данном случае функцию случайных векторов и1,..., гЛ’-1). Поскольку эти случайные величи- ны связаны неравенством, то и их математические ожидания связаны таким же неравенством: ^Cpa2M\wk\2, k= 1,2,... Сложим полученные неравенства: к к М(/(х°) - /(х*)) = £м(/(х-') - /(^)) £ Сра2 £М|™г|2. 2=1 2=1 Из последнего неравенства нетрудно сделать вывод, что знакопо- ОО ложительный числовой ряд М \wl\2 сходится. Следовательно, его 2=1 общий член стремится к нулю. К утверждению теоремы приходим, применяя первое неравенство Чебышева: Замечание 3.5. Доказанная теорема не дает гарантий сходимости релаксационной последовательности к точке минимума или стацио- нарной точке. Однако можно утверждать, что если релаксационная последовательность сходится, то с вероятностью, сколь угодно близ- кой к 1, последовательность сходится к стационарной точке. Чтобы обеспечить сходимость последовательности, нужны допол- нительные условия. Например, достаточно, чтобы функция имела единственную стационарную точку, а множество точек х е в которых /(ж) < /(х°), было ограниченным. Тогда это множество компактно, и любая подпоследовательность релаксационной последо- вательности будет содержать сходящуюся подпоследовательность, по которой последовательность градиентов (по вероятности) сходится к нулю. Следовательно, эта подпоследовательность сходится к стаци- онарной точке. Но тогда и вся последовательность по вероятности сходится к стационарной точке.
124 Глава 3. Многомерная безусловная минимизация Замечание 3.6. Условие (3.68) не так легко проверить. Однако его можно заменить другим условием. Например, пусть ||®|| — какая-либо норма в Rn. Обозначим || || = £, гДе вектор ик, указывающий направление спуска, имеет единичную норму: \\ик\\ = 1. Обозначим W = 77—пт И Z = w - и. Как известно из линейной алгебры, любая норма ||ж|| эквивалентна эвклидовой норме |ж|, т.е. существуют такие константы С\ и С*2, что С\ |х| < ||®|| С С21®| для любого х е Rn. С учетом этого получаем ик) (z + ик, ик) luA’Ilu^l \uk\\uk + z| = |ufc|2+ (z,ufc) |u| - |z| l-Ce _ |ufc||ufc + z| |u| + |z| 1 + Ce ' £' где C — CilC\. Отсюда следует, что если выполняется условие р{|11й-“11°- teN’ (3-69) к - - . 1 где иК — случайный вектор единичной нормы, а в < то выполня- ется и условие (3.68) с а = 1 — 2Се. Нетрудно показать, что и условие (3.68) вытекает из условия (3.69), если а достаточно близко к 1. # Остановимся на способах построения последовательности {ик} случайных векторов, определяющих направления спуска. Очевид- ный способ состоит в построении случайных векторов, равномерно распределенных на (п — 1)-мерной единичной сфере. Непосредствен- ный подсчет площадей (п — 1)-мерной сферы показывает, что условие (3.68) выполняется. Отметим, что моделирование случайного вектора, равномерно рас- пределенного на многомерной сфере, — непростая задача. Согласно замечанию 3.6 можно выбрать произвольную норму ||х|| вКпи исполь- зовать случайный вектор, равномерно распределенный на единичной сфере {х е Rn: ||®|| = 1}. Например, если ||®|| = ||®||оо = max |®j|, г=1 ,n то единичная сфера представляет собой n-мерный куб, имеющий 2п граней. Нетрудно смоделировать (п — 1)-мерный случайный вектор
3.8. Методы случайного поиска 125 z = (zi, zn-i), равномерно распределенный на прямоугольном параллелепипеде — i = l,n — 2, — 1 zn-\ 4п — 1, который представляет собой 2п состыкованных (п — 1)-мерных кубов. Этот параллелепипед затем можно отобразить на границу п-мерного куба с сохранением площади и тем самым получить равномерное распределение на границе куба. Можно отказаться от равномерного распределения единичного вектора ик, обеспечивая при этом выполнение условия (3.68). Напри- мер, моделируем случайный вектор £, равномерно распределенный в единичном кубе ||$||оо 1 (достаточно взять п независимых случай- ных величин, равномерно распределенных на отрезке [—1, 1]). Если полученный вектор попал в куб ||£ || со 1 /2, отбрасываем его и снова моделируем случайный вектор. В результате такой процедуры по- лучим случайный вектор, равномерно распределенный на множестве 1/2^||£||оо^1В качестве направления спуска ик выбираем вектор ик = ——. Можно проверить, что для таким образом построенного llslloo вектора выполняется условие (3.69). Значит, согласно замечанию 3.6 выполняется и условие (3.68). Рассмотренные способы случайного поиска — это варианты ме- тода случайного поиска с возвратом при неудачном шаге. В методе наилучшей пробы выбираются s реализаций ик\ ик'2,..., uk's вектора ик и сравниваются значения целевой функции в точках хк~] + /Зик,\ i = 1, s. В качестве окончательного направления спуска на /с-й итерации выбирается то из s анализируемых направле- ний, которое обеспечивает наименьшее значение целевой функции, т.е. f(xk~l + [3ик) = mmf(xk~l + (3uk,i'). i= 1, s Возможны модификации метода с переменным шагом спуска В методе статистического градиента несколько построенных случайных направлений используются для получения статистической оценки градиента функции в текущей точке. Предположим, что вектор С равномерно распределен на сфере |£| = 1. Можно показать, что тогда случайный вектор »7 = = (grad/(xfc_|, $)$
126 Глава 3. Многомерная безусловная минимизация имеет математическое ожидание Мт] = pngrad/(»fc-1). Следователь- но, среднее значение нескольких реализаций этого вектора является статистической оценкой вектора, коллинеарного градиенту, и может использоваться для определения направления спуска. В методе статистического градиента используют величину f(xk~' +7$)-/(жА:~|) 7 в качестве приближенного значения производной функции f(x) по направлению Суть метода в следующем. Строятся s реализаций ,..., £s вектора, равномерно распределенного на единичной сфере, и вычисляется вектор i=\ 7 В качестве направления спуска ик выбирается вектор, получающийся нормированием £, т.е. Величины 7, s и 0 (шаг спуска) являются параметрами метода. Возможен вариант метода статистического градиента, в котором случайный вектор £ имеет более сложное распределение (например, равномерное на множестве ||£|| = 1, определяемом некоторой нормой в IRn, или равномерное на множестве 1/2 < ||£||оо 1, как в методе случайного поиска с возвратом при неудачном шаге). В этом случае математическое ожидание вектора г/ может не совпадать с направле- нием градиента функции, но при выполнении условия (3.69) будет возможным направлением спуска. Следовательно, его статистическая оценка может использоваться для задания направления спуска. Вопросы для самопроверки 1. Перечислите известные вам численные методы безусловной оптимизации. Какого порядка эти методы? 2. Какую последовательность называют релаксационной?
Вопросы для самопроверки 127 3. Что называют: а) градиентным спуском; б) исчерпывающим спуском; в) наискорейшим спуском? Чем исчерпывающий спуск отличается от наискорейшего спуска? Когда они совпадают? 4. Дайте определение векторов, сопряженных относительно сим- метрической матрицы. Какова связь этого понятия с понятием орто- нормированного базиса? 5. Опишите варианты метода сопряженных направлений, предна- значенные для минимизации неквадратичных функций. 6. Что такое ньютоновское направление спуска? Чем это направле- ние отличается от направления спуска в квазиньютоновских методах? 7. Опишите основную суть методов симплексного поиска. 8. Дайте определение сходимости случайных величин: а) по вероятности; б) почти наверное; в) в среднем квадратичном. 9. Опишите способы построения векторов, определяющих напра- вления спуска в методах случайного поиска. 10. Решите задачу безусловной оптимизации 11а;2 + З?/2 + бху - 2д/То(з7 — Зт/) — 22 —> min, выбрав в качестве начальной точку (\Х10, 0^ и параметр точности е = = 0,01. Для решения задачи используйте несколько методов первого и второго порядков, несколько методов прямого поиска, какой-либо метод случайного поиска. Сравните полученные результаты по коли- честву итераций, необходимых для достижения заданной точности.
Глава 4 АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Общая задача нелинейного программирования может включать ограничения типа равенства или ограничения типа неравенства, а также оба вида ограничений одновременно. В этой главе сначала кратко обсудим задачу нелинейного программирования, в которую входят только ограничения типа равенства, а затем перейдем к общему случаю. 4.1. Минимизация целевой функции на заданном множестве Рассмотрим общую задачу математического программирования /о(ж) —> min, х Е Q, (4.1) где Q С —допустимое множество, входящее в область определения целевой функции /о(ж)- Пока не будем уточнять, каким способом задано множество Q, но будем считать, что оно не пусто. Если множество Q компактное, то существует хотя бы одна точка ж* Е Q, в которой непрерывная на этом множестве функция /о(ж) достигает своего наименьшего значения. Следовательно, задача (4.1) в случае непрерывной целевой функции и компактного допустимого множества имеет решение. Теорема 4.1. Пусть функция /о(ж) непрерывна на замкнутом множестве Q С Rn. Если для некоторого а е R множество X = = {ж Е Q: /о(ж) не пустое и ограниченное в Rn, то задача (4.1) имеет решение. ◄ Так как функция /о(®) непрерывна в Q, множество X, определенное нестрогим неравенством /о(ж) а, является замкнутым. Действи- тельно, если х° Е Q — предельная точка множества X, то в любой
4.1. Минимизация целевой функции на заданном множестве 129 окрестности этой точки можно указать точки множества X. Возь- мем произвольное число е > 0 и согласно условию непрерывности функции /о(ж) в точке ж0 выберем окрестность U(ж0,5), для которой |./о(ж) ~ /о(®°)I < е при х £ 17(ж°,<5) ClQ. В выбранной окрестности существует точка ж1, принадлежащая множеству X, т.е. для этой точки выполняется неравенство < а. Значит, /о(ж°) < /о(ж*) < а + г. Поскольку записанное неравенство верно для любого числа б > 0, то /о (ж0) С и ж0 ЕЕ X. Итак, множество X содержит все свои предельные точки, а потому замкнуто. Функция /о (ж), непрерывная на замкнутом ограниченном множе- стве X, достигает на X наименьшего значения в некоторой точке ж*. Из условия ж* е X вытекает, что /о (ж*) Если ж е Q\X, то в соответствии с определением множества X выполняется неравенство /о(ж) > ОС. Поэтому /о(ж) > СЕ ж е Q\X, и значение целевой функции в точке ж* является наименьшим на всем множестве Q. ► Рассмотрим произвольную точку ж Е Q. Будем говорить, что еди- ничный вектор е е задает допустимое направление в точке ж, если для некоторого числа 8 > 0 каждая точка ж + te, t 6 (0, <5), принадле- жит множеству Q. Множество С(ж) всех единичных векторов, каждый из которых задает в точке ж Е Q допустимое направление, называют конусом допустимых направлений в точке ж. Если множество Q выпуклое, то допустимое направление в точке ж е Q можно задать любым вектором ж — ж, определяемым произволь- ной точкой ж Е Q, не совпадающей с ж. Действительно, в этом случае для е = в качестве 6 > 0 можно выбрать 5 = |ж — ж|. |х — ж| Теорема 4.2. Пусть функция /о (ж) дифференцируема* в точке ж* Е Rn. Если ж* является точкой наименьшего значения функции /о(ж) на множестве Q, то (grad/0(®*),e) 0, ееС(х*). (4.2) Дифференцируемость функции в точке предполагает, что функция определена в некоторой окрестности этой точки, т.е. все точки дифференцируемости функции являются внутренними точками ее области определения. 9 - 9252
130 Глава 4. Аналитические методы нелинейного программирования ◄ Выберем вектор е € С(ж*) и соответствующее этому вектору число 8 > 0, так что х* + te е Q при t е (0,5). Функция tpe(t} = fo(x* +te) определена на полуинтервале [0, 5) и достигает наименьшего значения при t = 0, поскольку с^е(0) = /о(ж*) /о(я) = где х = х* + te е е Q, £ € (0, 5). Отсюда вытекает, что 1е(М) Так как функция /о(ж) дифференцируема в точке ж*, то сложная функция <pe(t) дифференцируема в точке t = 0. Поэтому существует предел ^(0) = lim ^W-^e(O) Производная функции в точке t = 0 представляет собой производную функции /о(х) в точке ж* по направлению вектора е, которую с помощью градиента функции можно записать в виде (grad/о (ж*), е). Таким образом, неравенство ^(0) 0 равносильно неравенству (4.2). ► Утверждение теоремы 4.2 можно рассматривать как обобщение необходимого условия локального экстремума. Чтобы придать такой трактовке более точный смысл, введем следующее понятие. Будем говорить, что функция /о(ж), определенная на множестве Q, имеет в точке х* е Q локальный минимум на множестве Q, если существует такая окрестность U точки ж*, что /о(ж) /о(ж*) при ж Е U AQ. Если последнее неравенство при ж ж* является строгим, то будем гово- рить о строгом локальном минимуме на множестве Q. Введенные понятия расширяют понятия локального минимума и строгого локаль- ного минимума: согласно определению точка локального (строгого локального) минимума должна быть внутренней точкой множества Q. Повторяя почти дословно доказательство теоремы 4.2, можно показать, что если ж* е Q — точка локального минимума функции /о(ж) на множестве Q, а функция /о(ж) дифференцируема в точке ж*, то имеет место условие (4.2). Если точка ж* является внутренней точкой множества Q, то конус допустимых направлений С(ж*) содержит все n-мерные единичные векторы, а условие (4.2) легко преобразовать в обычное условие ло-
4.1. Минимизация целевой функции на заданном множестве 131 кального экстремума функции, записанное в виде (grad/о (ж*), е) = О, е Е Действительно, в этом случае условие (4.2) выполняется для любой пары единичных векторов е и —е, а потому в этом условии знак нестрогого неравенства можно заменить знаком равенства. Кро- ме того, условие |е| = 1 не является существенным, так как множитель, равный длине вектора е, можно вынести за знак скалярного произве- дения. Отметим, что условие (grad/о (ж*)? е) = 0, е е Rn, эквивалентно условию grad /о(ж*) = 0. В самом деле, первое условие непосред- ственно вытекает из второго. Наоборот, если верно первое условие, то равенство (grad/о(ж*), е) = 0 верно и при е = grad /о(ж*)> т.е. |grad/о(х*)|2 = 0, что равносильно равенству grad/o(^*) = 0 — обычной формулировке необходимого условия локального минимума. Теорема 4.3. Пусть функция /о(®) определена на выпуклом множестве Q и дифференцируема в точке ж* Е Q. Если для некоторого числа а > 0 выполнено условие (grad/0(®*),e) >а, ееС(х‘), (4.3) то х* — точка строгого локального минимума этой функции на множестве Q. ◄ Условие дифференцируемости функции fo(x) в точке х* означает, что функция fo(x) определена в некоторой окрестности U(ж*, 5) точки х* и в этой окрестности имеет место представление /о(®) - /о(®*) = (grad/b(®*)> Д®) +о(Дх), где Дж = х — х*, а — бесконечно малая при Дж —» 0. Умень- IAzI шим, если необходимо, радиус окрестности 6 настолько, чтобы в этой окрестности выполнялось неравенство |о(Дж)| < у|Дж|. Пусть х Е Q A U(ж*,5), х / ж*. Тогда вектор е = задает допустимое направление. Следовательно, /о(®) - /о(®*) = (grad/0(®*), Д®) +о(Д®) |Дж|(grad/0(®*), е) ~ |Д®|а- ||Д®| = у |Д®| > 0.
132 Глава 4. Аналитические методы нелинейного программирования Но это и означает, что в точке ж* функция /о(ж) имеет локальный минимум на множестве П. ► Отметим, что условие (4.3) может выполняться лишь в граничной точке множества Q. Действительно, если бы это условие выполнялось во внутренней точке х* множества Q, то точка ж* была бы точкой локального минимума функции /о(ж) и, значит, в этой точке выполня- лось бы равенство (grad /о(ж*), е) = 0, е е Rn. Но это противоречит условию (4.3). Доказанные необходимое и достаточное условия локального мини- мума функции на множестве можно использовать при решении задач минимизации функции на заданном множестве Q. Если целевая функ- ция достигает наименьшего значения на П, то для определения точки минимума можно придерживаться следующего порядка действий. 1. Находим все стационарные точки функции, являющиеся вну- тренними точками множества П. 2. С помощью необходимого условия (см. теорему 4.2) находим все точки на границе множества Q, в которых функция может иметь локальный минимум на Q. 3. Сравнивая значения минимизируемой функции в найденных точках, находим ту точку, в которой функция имеет наименьшее значение. При решении задачи выпуклого программирования, в которой выпуклая функция минимизируется на выпуклом множестве, доста- точно найти любую точку ее локального минимума, так как выпуклая функция в любой точке локального минимума достигает наименьшего значения. В этом случае уместно использовать достаточное усло- вие локального минимума на множестве (см. теорему 4.3), которое не требует вычисления частных производных второго порядка и легко проверяется. Узким местом предложенной схемы является применение необ- ходимого условия локального минимума на множестве. Если необ- ходимое условие экстремума функции записывается в виде системы уравнений, то необходимое условие локального минимума на множе- стве представлено в виде системы неравенств, в которых варьируется не только неизвестная точка, но и вектор е допустимого направления. Выделить с помощью теоремы 4.2 точки, „подозрительные" на локаль- ный минимум, можно лишь в случае, когда допустимое множество Q имеет границу простой структуры.
4.2. Минимизация при ограничениях типа равенства 133 4.2. Минимизация при ограничениях типа равенства Задачу нелинейного программирования с ограничениями типа равенства можно записать следующим образом: --- (4.4) \fl(x) = 0, Z = l,fc. В данном случае допустимое множество Q имеет вид П = {х € ПГ: fi(x) = 0,1 = Tfc} . Сформулированную задачу для дифференцируемых функций fi (ж) можно связать с задачей исследования целевой функции на условный экстремум. Если точка х* есть решение задачи (4.4), т.е. если це- левая функция /о (ж) достигает в этой точке наименьшего значения на множестве Q, то точка х* является точкой условного локального минимума функции /о(ж) при условиях fi(x) = О, I = 1, к (эти урав- нения называют уравнениями связи). Поэтому решать задачу (4.4) можно следующим образом. Найти все точки, в которых функция мо- жет иметь условный локальный минимум, а затем путем сравнения значений функции выбрать из этих точек ту, в которой функция имеет наименьшее значение. Если задача имеет решение (т.е. целевая функ- ция при заданных ограничениях достигает наименьшего значения), то этим решением будет найденная точка. Поиск точек, „подозрительных44 на условный экстремум, выпол- няют с помощью необходимого условия условного локального экстре- мума, суть которого в следующем. Если точка ж* является точкой условного экстремума функции /о(ж) при условиях fi(x) = О, I = 1, к, причем функции fi(x), 1 = 0, к, непрерывно дифференцируемы в окрестности точки ж* и матрица Якоби 7(ж) векторной функции /(ж) = (/1(ж) ... Д(ж))Т в точке ж* имеет ранг к (максимальный ранг, равный количеству строк), то существуют такие множители Ла- гранжа А),..., Л^, что для функции Лагранжа k Ь(х) = /0(г) + £Ш) (4.5) /=1
134 Глава 4. Аналитические методы нелинейного программирования в точке х* выполняется необходимое условие экстремума gradL(x*) = О, или дЦх*) _ дЦх*) _ _ дЦх*) _ о дх\ д%2 дхп Поиск стационарных точек функции Лагранжа сводится к реше- нию системы п 4- к уравнений Л(х) = о, z = 1, /с, содержащей п 4- к неизвестных х\,..., хп., Л i,..., Лд.. Таким образом, исследование функции на условный экстремум состоит в выделении некоторого набора точек, „подозрительных44 на экстремум, и в проверке каждой точки, является ли она в действитель- ности точкой условного экстремума. Набор точек, „подозрительных44 на экстремум, можно разделить на три группы: 1) точки, в которых хотя бы одна из функций fi(x), I = 0, к, не дифференцируема или одна из ее частных производных разрывна; 2) точки, в которых ранг матрицы Якоби J(x) системы уравнений связи меньше количества к уравнений связи; 3) стационарные точки функции Лагранжа. Отличие задачи минимизации при ограничениях типа равенства от задачи исследования на условный экстремум состоит в том, что в задаче минимизации нет необходимости проверять, является ли точка, „подозрительная44 на экстремум, точкой условного локального мини- мума. Можно просто сравнить значения минимизируемой функции в этих точках и выбрать ту, в которой значение функции наименьшее. Эта точка и будет решением задачи минимизации. Правда, последнее утверждение верно лишь в случае, когда задача минимизации име- ет решение. В действительности возможна ситуация, когда целевая функция имеет точки условного локального минимума, но не достига- ет наименьшего значения. Необходимое условие условного локального экстремума можно модифицировать так, что определение стационарных точек функции Лагранжа будет включать в себя и поиск точек, в которых нарушается
4.2. Минимизация при ограничениях типа равенства 135 условие на ранг матрицы Якоби системы уравнений связи (необхо- димое условие условного локального экстремума формулируется в предположении, что ранг системы уравнений связи максимален и совпадает с числом уравнений связи). Для этого изменим понятие функции Лагранжа, используя вместо (4.5) формулу к Z(®) = A0/0(x) + ^2az/z(«), (4.6) l=i в которую добавлен еще один множитель Лагранжа До- Следующее утверждение называют обобщенным правилом множителей Ла- гранжа. Теорема 4.4. Если ж* Е йп — точка условного экстремума функции /о(ж) при условиях fi(x) = 0,1 = 1,/с, причем функции//(х), I = 0, k, непрерывно дифференцируемы в некоторой окрестности точки ж*, то существуют такие множители Лагранжа А/, I = 0, k, не все равные нулю, что для функции Лагранжа L(x) точка х* является стационарной, т.е. gradZ(x*) = 0. (4.7) ◄ Если ранг матрицы Якоби J(x*) системы функций fi(x), I = 1, А:, в точке х* равен их количеству к, то достаточно положить Ao = 1. Тогда утверждение теоремы будет вытекать из необходимого условия условного экстремума. Предположим, что R.gJ(®*) < к. Тогда строки матрицы J(x*) линейно зависимы, например, в силу теоремы о базисном миноре. Это означает, что для некоторых значений А|,..., Ад,., одновременно не равных нулю, выполняется равенство A] grad/] (ж*) + A2grad/2(®*) + ... + Afcgrad/A:(a:*) = 0. Положив До = 0, запишем к Ао grad /о (®*) + ^2 AZ grad ft (х*) = О, z=i что в силу равенства (4.6) совпадает с равенством (4.7). ► Нетрудно увидеть, что множители Лагранжа, существование кото- рых вытекает из теоремы 4.4, определяются неоднозначно: их можно,
136 Глава 4. Аналитические методы нелинейного программирования не нарушая утверждения теоремы, умножить на любой постоянный множитель. Поэтому для определения к + 1 множителя Лагранжа До, ..., Ад. и п координат точки х* достаточно к 4- п уравнений. Та- кое количество дают условие (4.7) (это п уравнений) и совокупность уравнений связи (их количество равно fc). 4.3. Общая задача нелинейного программирования Общую задачу нелинейного программирования можно записать следующим образом: /о(ж) min; _________________ ____ (4.8) fl(x)=0, 1=\,к\ <7г(ж)^0, При этом предполагается, что одна из фигурирующих в задаче функ- ций не является линейной. Считаем, что все функции fi(x), I = 0, к, и gi(x), г= 1,ш, определены на некотором открытом множестве X cRn. Упрощая изложение, далее ограничимся случаем X = Rn. В конкретной ситуации можно добиться выполнения этого ограниче- ния, доопределив все функции вне множества X, например, большим постоянным значением, которое не повлияет на процесс минимизации целевой функции. Сформулированная задача представляет собой частный случай общей задачи математического программирования, заключающейся в определении наименьшего значения целевой функции fo(x) на допустимом множестве Q = [х е X: fi(x) = 0, I = 1, fc, gi(x) 0, г — 1,т}. (4.9) Отметим, что если все функции fi(x)9 1= 1,/с, и дг(х), i = = 1, m, непрерывны в то множество Q замкнуто. В самом деле, это множество можно представить как пересечение конечного числа множеств вида {ж 6 Rn: д>(х) < а}, образованных непрерывной в Rn функцией <р(х). В данном случае в качестве <р(х) используются функции fi(x), —fi(x\ I = 1, fc, и gi(x), i = 1, m, a a = 0. Такие множества являются замкнутыми (см. доказательство теоремы 4.1). Следовательно, и множество П, как пересечение конечного числа замкнутых множеств, является замкнутым.
4.3. Общая задача нелинейного программирования 137 Большинство известных методов решения задачи нелинейного программирования позволяет найти лишь точки локального миниму- ма целевой функции на заданном множестве. В этой связи важную роль играет априорная информация о существовании решения задачи, т.е. информация о том, достигает ли целевая функция наименьше- го значения на допустимом множестве. Если допустимое множество П в задаче нелинейного программирования замкнуто, то доказатель- ство существования решения в этой задаче можно строить с помощью теоремы 4.1, проверяя непрерывность целевой функции /о(ж) и огра- ниченность при некотором а множества = {те П: /о(ж) <*}• В частности, если множество Q ограничено, а целевая функция непре- рывна на Q, то задача нелинейного программирования имеет решение. Однако проверить ограниченность множества Q (или Qq) не про- сто. Поэтому интересны другие условия, налагаемые на целевую функцию и ограничения, которые позволяют сделать заключение о существовании решения без использования ограниченности допусти- мого множества. В задаче выпуклого программирования, в которой целевая функция выпукла и допустимое множество Q выпукло, любая точка локального минимума целевой функции является решением этой задачи. Теорема 4.5. Если функции gi(x), i = l,m, выпуклы в то множество Q = {ж е gi(x) 0, i = 1. т } (4.10) является выпуклым. ◄ Утверждение теоремы очевидно, если множество П пусто или содержит всего лишь одну точку. Поэтому ограничимся случаем, когда это множество содержит по крайней мере две точки. Выберем в Q произвольные точки ж1 и ж2 и докажем, что для любого числа а 6 (0, 1) выполняется включение аж] + (1 - а)ж2 G Й. Из определения множества Й вытекает, что ^(ж1) 0 и gi(x~) 0, = 1,т. Поэтому в силу условия выпуклости функций gi(ж) для любого числа а G (0, 1) gi(axi + (1 -а)х2) сед(ж|) + (1 -a)gi(x2) 0, i = 1, /п. Значит, точка ах\ + (1 — <э)ж2 принадлежит множеству Q. ►
138 Глава 4. Аналитические методы нелинейного программирования Замечание 4.1. Из теоремы 4.5 следует, что если допустимое множество Q определяется только ограничениями типа неравенства gi(x) < 0, i = 1, тп, причем все функции gi(x) выпуклые в Rn, то мно- жество Q выпукло. Наличие ограничений типа равенства усложняет проверку допустимого множества на выпуклость. Однако если функ- ции fi(x) во всех ограничениях типа равенства являются линейными, а все функции gi(x) в ограничениях типа неравенства — выпуклыми, то допустимое множество выпукло. Действительно, в этом случае допустимое множество Q является пересечением множества Q вида (4.10) с гиперплоскостями fi(x) = 0, i = 1, т. Множество Q выпукло в силу теоремы 4.5, гиперплоскости также являются выпуклыми мно- жествами. Следовательно, множество Q, как пересечение выпуклых множеств, выпукло. # Ограничения типа неравенства в задаче нелинейного программи- рования введением дополнительных переменных можно преобразо- вать в ограничения типа равенства. Например, ограничения дг(х) 0, г = 1, т, с помощью дополнительных переменных Zj можно записать в виде gi(x) + Z? = 0, 7= 1 , 777,. (4.11) Таким образом, общую задачу нелинейного программирования можно свести к частному случаю, когда в задаче нет ограничений типа неравенства. Это позволяет в решении задачи использовать технику исследования целевой функции на условный экстремум (см. разд. 4.2). Впрочем, подобная техника может использоваться и непосредственно в задаче, имеющей ограничения типа неравенства. Пример 4.1. Рассмотрим задачу нелинейного программиро- вания /о(z 1,^2) -> min; <71O1,^2) ^0, д2(хьх2) ^0, <7з(х’1 ,х2) 0, в которой функции /о(^],£2)> д\(х\,#2), д1(х\)Х2), дз(х\,х2) непре- рывно дифференцируемы в R2. Предположим, что множество Q, которое определяется тремя неравенствами, ограничено и имеет вид, изображенный на рис. 4.1. В этой задаче наименьшее значение функции /0(^'1 ,х’2) может достигаться либо во внутренней точке множества Q, т.е. в точке
4.3. Общая задача нелинейного программирования 139 множества Qc = {(24, х2): ,х2) < 0, i = 1,2,3}, либо на границе множества Q на одной из дуг АВ, АС, ВС, либо в угловых точках границы А, В, С. Поэтому решение задачи можно строить по следующей схеме. 1. Определяем все стационарные точки целевой функции в обла- сти Qc. 2. Решаем три задачи на условный экстремум: ' fo(x] ,я2) -> extr, ( fo(x^x2) -> extr, ( Мх},х2) extr, < < ,x2) = 0; |^2(z| ,x’2) =0; [ .93(^1 ^2) = 0. Среди найденных точек отбираем те, которые попадают на соответ- ствующую дугу — АВ, АС, ВС. Например, из решений первой задачи нужно оставить такие точки (xj, х2), которые удовлетворяют условиям д2(х\,х2) < 0, д2(х\,х2) < 0. 3. К точкам, отобранным в первых двух пунктах, добавляем угловые точки А, В, С, которые находятся из систем '51(21,22) = 0, < 52(21,22) < 0, .53(21,22) =0; '51(21,22) < 0, < 52(21,22) = о, .53(21,22) =0; '5l(2|,22) =0, < 52(21,22) = 0, .53(21,22) < о. 4. Во всех отобранных точках вычисляем значение целевой функ- ции и отбираем ту (или те), в которой значение функции наи- меньшее. #
140 Глава 4. Аналитические методы нелинейного программирования Описанный в примере 4.1 процесс анализа внутренних точек допу- стимого множества и различных частей границы можно объединить в одну формальную процедуру. Рассмотрим общую задачу нелинейного программирования (4.8). Теорема 4.6. Если точка х* е Q является точкой локального минимума функции /о(ж) на множестве Q вида (4.9), причем функции fl(x), I = 0, fc, и pi(x), i = l,m, непрерывно дифференцируемы в окрестности точки ж*, то существуют такие числа Ао > 0, А/, I = 1, /с, и fj,i 0, i = 1, т, одновременно не равные нулю, что для функции k т Цх) = ло/о(ж)+л^(ж)+ Z=1 г=1 выполняется необходимое условие экстремума gradL(x*) = О и, кроме того, выполняются условия дополняющей нежесткости щд^х*) = о, i =1,п. # Теорему 4.6 принято называть теоремой Куна — Таккера, а функцию L(x) — функцией Лагранжа. Хотя функция Лагранжа определена для любых значений параметров А/, I — 0, к, и i = = 1, m, мы, учитывая утверждение теоремы Куна — Таккера, будем рассматривать ее лишь при щ 0, г = 1, п. Отметим особую роль в этой теореме условий дополняющей не- жесткости. В рассматриваемой точке ж* локального минимума функ- ции /о(ж) на множестве Q каждое из ограничений gi(x) 0, i = 1, m, выполняется либо в виде равенства gi(x*) = 0, либо в виде стро- гого неравенства gi(x*) < 0. Ограничения первого вида называют активными ограничениями, в то время как остальные — неак- тивными (пассивными) ограничениями. Для активных ограничений соответствующее условие дополняющей нежесткости выполнено. Не- активные ограничения в силу непрерывности фигурирующих в задаче функций выполняются в виде строгого неравенства не только в точке ж*, но и в некоторой окрестности этой точки. Поэтому после удале- ния этих ограничений из задачи точка ж* останется точкой локального минимума. Полагая для таких ограничений = 0, мы, с одной сторо-
4.3. Общая задача нелинейного программирования 141 ны, обеспечиваем выполнение условия дополняющей нежесткости, а с другой — удаляем соответствующее слагаемое из функции Лагранжа. В конечном счете утверждение теоремы Куна — Таккера сводится к обобщенному принципу Лагранжа. Вернемся к примеру 4.1 и поясним, как работает сформулиро- ванная теорема. В данном случае ограничений типа равенства нет, а есть три ограничения типа неравенства. Если точка ж* находит- ся внутри множества Q, то утверждение теоремы будет верно при ;/| = = О, Ao = 1. Если точка х* находится на одной из дуг, например на дуге АВ, то в этой точке дз = 0. Утверждение теоремы вытекает из обобщенного принципа Лагранжа для задачи с ограни- чениями типа равенства при /1\ = /х2 = 0. Наконец, в угловой точке, например в точке А, выполняются два равенства gi = 0 и д^ = 0. Чтобы обеспечить условия дополняющей нежесткости, полагаем /12 = 0- При этом необходимое условие экстремума для функции Лагранжа состо- ит из двух уравнений, в которых неизвестны три параметра Ao, Ml и /13, причем относительно этих параметров система уравнений являет- ся линейной и однородной. Ясно, что такая система имеет ненулевые решения. Пр и м е р 4.2. Рассмотрим задачу нелинейного программиро- вания < /о(^1,^2) = (^1 -З)2 + (х2 - З)2 -> min; — xj 0, — х2 0, X|+i2 — 4^0. В этой задаче допустимое множество представляет собой замкну- тую треугольную область на плоскости (рис. 4.2), в которой непре- рывная целевая функция достигает наименьшего значения. Кроме Рис. 4.2
142 Глава 4. Аналитические методы нелинейного программирования того, нетрудно увидеть, что ограничения задачи линейные, а целевая функция, как квадратичная функция с положительно определенной матрицей, строго выпукла. Таким образом, рассматриваемая задача относится к задачам выпуклого программирования. Проследим на примере этой простейшей задачи, как работает теорема Куна — Таккера. В этой задаче нет ограничений типа равенства, функция Лагранжа имеет вид L(xi ,х2) = Ао ((х। - З)2 + (х2 - З)2) - mi xi - /12х2 + /43 (хi + х2 - 4). Записываем систему уравнений, включающую необходимое условие экстремума функции Лагранжа и условия дополняющей нежесткости: г2А0(т1 4-мз =0, 2A0(z2 “ 3) -М2 + МЗ =0, < Ml^l = °, М2^2 — 0, ,мз(^1 +^2 -4) = 0. В случае Ао = 0 из двух первых уравнений находим mi = М2 — Мз> причем общее значение этих трех коэффициентов ненулевое, так как по теореме Куна — Таккера хотя бы один из множителей Лагранжа должен быть ненулевым. Из последних трех уравнений получаем: xi = Х2 = 0, х\ + Х2 = 4, а это невозможно. Поэтому решений системы с Ао = 0 нет. Пусть Ао 7^ 0. В этом случае можно взять для Ао любое ненулевое значение. Положим Ао = 1 /2. Тогда из первых двух уравнений можно выразить х\ и Х2 и подставить в остальные. Получим систему трех уравнений >1(3 + М1 ~Мз) = 0, < Мг(3 + М2~Мз) = 0, <Мз(2 + Ml + М2 — 2мз) = 0. Рассматривая различные варианты, находим семь решений системы (табл. 4.1). Первое решение соответствует точке локального минимума целе- вой функции, причем эта точка не попадает в допустимое множество Q.
4.4. Седловая точка функции Лагранжа 143 Второе, третье и пятое решения соответствуют точкам условного ло- кального минимума на сторонах треугольника, ограничивающего до- пустимое множество. Наконец, четвертое, шестое и седьмое решения соответствуют трем угловым точкам множества (вершинам треуголь- ника). Сравнение значений функции показывает, что единственным решением рассматриваемой задачи является точка с координатами Т| = Х2 = 2. К этим выводам легко прийти, если учесть, что значением целевой функции в точке (т| , xi) является квадрат расстояния от этой точки до точки (3, 3). 4.4. Седловая точка функции Лагранжа Рассмотрим задачу нелинейного программирования ' fo(x) -> min; ____ gi(ж) О, i = 1,7П, (4.12) в которой нет ограничений типа равенства. Предполагаем, что функции /о(х) и i = 1, т, определенные в Rrl, могут быть недифференцируемыми. Как и выше, сформируем функцию Лагранжа m = /0(®) + ^2mgi(x), г=1 (4.13) где /1 = (//], ..., цт) е R™, — неотрицательный ортант в IRm. Будем рассматривать функцию Лагранжа как функцию всей совокуп- ности переменных т и д. Отметим, что в данном случае в функцию Лагранжа не включен множитель Ао- Определение 4.1. Точку (ж*, д*), где ж* Е Q, д е К™, называют седловой точкой функции Лагранжа L(x, д), если xeQ, меС- (4-14) Таблица 4.1 Номер решения 1 2 3 4 5 6 7 Mi 0 0 -3 -3 0 0 —4 М2 0 -3 0 -3 0 —4 0 Мз 0 0 0 0 1 -1 -1 Т | 3 3 0 0 2 4 0 _ .т2 3 0 3 0 2 0 4
144 Глава 4. Аналитические методы нелинейного программирования Теорема 4.7. Если (х*, /1*) — седловая точка функции Лагранжа L(x,/i), то х* — точка наименьшего значения функции /о(х) на множестве Q = {х е Kn: gt(x) 0, i = 1, т} . ◄ Из определения функции Лагранжа вытекает, что для любых х е Q и /1 6 Rra выполняется неравенство L(x,/z) < /о(ж)>так как Мг<7г(ж) О, г = 1,т, х е Q. При этом указанное неравенство превращается в равенство, если /1 = 0, т.е. £(х,0) = /о(х). Таким образом, если (х*, /1*) — седловая точка функции Лагранжа, то для любой точки х е П /0(ж*) = L(x*,0) L(x*M*) W) < /0(ж). ► Теорема 4.7 указывает метод решения задачи нелинейного про- граммирования (4.12). Достаточно определить седловую точку функ- ции Лагранжа, чтобы прийти к решению задачи нелинейного про- граммирования. Следующая теорема устанавливает критерий для седловых точек функции Лагранжа. Теорема 4.8. Точка (x*,/z*), х* е Q, /г* = (//], .... f.im) € К*1, является седловой для функции Лагранжа L(x,[i) в том и только в том случае, если выполнены условия L(x*,/z*) = minL(x,/i*); (4.15) /z*<7i(x*) = 0, i = 1, m. (4.16) ◄ Если (x*, /z*) — седловая точка функции Лагранжа, причем х* е Q, /1* G то соотношение (4.15) верно в силу определения седловой точки. Кроме того, согласно этому определению Ь(х*,д*) > £(х*,0), что равносильно неравенству т г=1 Таким образом, 771. г=1 (4.17)
4.5. Двойственная функция 145 Но из условия х* Е П вытекает, что gi (х*) 0, а условие /л* Е означает, что 0, i = 1, т. Следовательно, каждое слагаемое суммы в неравенстве (4.17) неположительно. Поэтому и сумма, и каждое ее слагаемое равны нулю, т.е. верны соотношения (4.16). Теперь предположим, что выполнены условия (4.15) и (4.16). То- гда L(x*,/lz*) = /о(®*) и в то же время L(x*,/z) < /о(х*) для любого дх Е откуда L(x*,/i) £(х*,д*). Это неравенство вместе с соот- ношением (4.15) приводит к неравенствам (4.14), т.е. к утверждению, что (х*, д*) — седловая точка функции Лагранжа. ► Теорему 4.7 можно использовать в широком круге задач нелиней- ного программирования. При этом на функции /о(ж) и 9i(ж)> i = 1,77?., не накладываются никакие ограничения. Однако следует иметь в ви- ду, что достаточное условие, которое устанавливается теоремой 4.7, лишь заменяет одну задачу минимизации другой, которая в некоторых случаях может быть проще исходной. Действительно, поиск седловой точки функции Лагранжа в соответствии с равенством (4.15) означает минимизацию функции Лагранжа по переменным х. 4.5. Двойственная функция Рассмотрим задачу нелинейного программирования (4.12), не име- ющую ограничений типа равенства, предполагая, что целевая функция /о(^), а также функции gi(x), г = 1, т, определены в Rn. Как и выше (см. разд. 4.4), сформируем функцию Лагранжа L(x,/i) в виде (4.13), определенную при х Е и /1 Е R™, где — неотрицательный ортант в На множестве определим функцию щ(д) = inf £(х,д). (4.18) zgQ Функции /о(^) и w(m) связаны соотношением w(m)^/o(^), МбС, хеП. (4.19) Действительно, функция Лагранжа L(x, д) удовлетворяет неравенству ^(х, д) < /о(ж), ж Е П, д Е К™. Из этого неравенства вытекает, что w(m) = inf А(х,д) < inf /0(а:) /о(®)- 10 - 9252
146 Глава 4. Аналитические методы нелинейного программирования Теорема 4.9. Если для некоторых х* е Q и р* е верно равенство fo(x*) — w(p*), то функция /о(ж) в точке х* достигает наименьшего значения на множестве Q, а функция w(p,) в точке р* — наибольшего значения на множестве ИГ™. ◄ Из неравенства (4.19) для х = х* и равенства fo(x*) = w(p,*) следует, что w(p) р 6 К™, т.е. значение функции w(/i) в точке р* является наибольшим на множестве R™. Аналогично, полагая в неравенстве (4.19) р = р* и учитывая, что w(p*) = /о(ж*), находим азе О, т.е. в точке х* функция /(х) достигает наименьшего значения. ► Любая точка локального максимума функции w(p) на множестве является точкой ее наибольшего значения на этом множестве. Что- бы доказать это свойство функции w(p), достаточно показать, что функция — выпукла на выпуклом множестве R™ . Выберем про- извольные несовпадающие точки р\ р2 в и произвольное число a е [0. 1]. Пусть р = ар1 + (1 — а)р2. В соответствии с определением функции w(p) для произвольного числа s > 0 существует такая точка х е Q, что w(/i) L(x,/z) — е. Из определения функции Лагранжа (она линейна по множителям Лагранжа) следует равенство £(ж,/1) = L(x,apl + (1 - а)м2) — &L(x,p]) + (1 - a)L(x,p2). С учетом этого равенства имеем w(p) aL(x.p}) 4- (1 - a)L(x,p2) - 6 > aw(pl) + (1 — a)w(p2) — е. Ввиду того, что число <s > 0 выбрано произвольно, заключаем, что w(p) aw(pl) + (1 — a)w(p2), а это равносильно выпуклости функции — w(p). Теорема 4.10. Функция Лагранжа (4.13) имеет седловую точку (я*, р*) тогда и только тогда, когда = (4.20)
4.5. Двойственная функция 147 ◄ Пусть (ж*, /1*) — седловая точка функции Лагранжа. Тогда согласно определению седловой точки L(x*, /и*) £(ж, /i*), х Е Q, т.е. при заданном у = у* функция Лагранжа достигает на множестве П наименьшего значения в точке х*. Следовательно, w(^*) = L(x*,/i*). Далее, снова используя определение седловой точки, заключаем, что L(x* ,у*) £(ж*,0) = /о(ж*)> откуда /о(ж*) w(p,*). Сопоставляя последнее неравенство с неравенством (4.19), получаем равенство /о(ж*) = ш(м*). Пусть для х* Е Q и /1* Е верно равенство (4.20). Тогда согласно теореме 4.9 точка х* является точкой наименьшего значения функции fo(x) на Q, а точка у* — точкой наибольшего значения функции w(y) на R™. При этом w(M*) = inf L(x,m*) Цж*,М*) /о(®*) = w(/i*)- Следовательно, L(x*,m*)= inf L(x,m*). Кроме того, L(x*,y*) = /о(®*), откуда, используя равенство (4.13), определяющее функцию Лагранжа, получаем т 1=1 где у* = (//*, ..., /i*n). Так как все слагаемые в левой части послед- него равенства неотрицательны, все они равны нулю, т.е. выполняется условие (4.16). Согласно теореме 4.8 точка (ж, у) является седловой точкой функции Лагранжа. ► Функцию w(/i), определенную на соотношением (4.18), на- зывают двойственной функцией по отношению к целевой функции /о(ж). Задачу поиска точки у* Е наибольшего значения этой функции называют двойственной задачей по отношению к задаче минимизации функции /о(ж)на множестве Q, а теорему 4.10 — теоре- мой двойственности. Установленные свойства функции ы(у) дают возможность вместо задачи поиска точки наименьшего значения целе- вой функции решать двойственную задачу, которая может быть проще исходной. Найденное решение двойственной задачи далее можно ис- пользовать в качестве набора множителей Лагранжа и затем решать задачу минимизации функции Лагранжа. 10*
148 Глава 4. Аналитические методы нелинейного программирования Пример 4.3. В задаче z 2 7 I а?! + z2 min; [2хj +Х2 4-4 О найдем функцию w(/x), двойственную по отношению к целевой функции /о(ж) = 4- ^2- В данном случае допустимое множество П представляет собой полуплоскость 2х ] 4- х^ 4- 4 < 0. Чтобы найти двойственную функцию, нужно определить наименьшее значение функции Лагранжа Ь(х\,Х2,^) = х\ 4- х\ 4-м(2гг1 4-^2 4-4) при ограничении 2х । 4- Х2 4-4 < 0. Такую задачу можно решить с помощью теоремы Куна — Таккера: • для функции L(x\ ,^2>^), считая /1 фиксированным, построить функцию Лагранжа (т.е. функцию Лагранжа для функции Лагранжа), для чего необходимо ввести параметры До и Д; • на основании теоремы Куна — Таккера записать систему четырех уравнений относительно неизвестных х\, д?2, До и Д и решить ее; • среди найденных точек путем сравнения выбрать ту, в которой функция L(x\ ,X2,/i) принимает наименьшее значение. Так как функция L(x\,X2,p>) при фиксированном /1 является ква- дратичной с положительно определенной матрицей, а значит, сильно выпуклой функцией, можно утверждать, что она достигает на по- луплоскости 2х\ 4- Х2 4- 4 0 (это выпуклое множество) наименьшего значения. Следовательно, выбранная точка будет точкой наименьшего значения функции L(x\,^25м)- Значение функции L(x\,X2^ в вы- бранной точке, зависящее от д, и есть значение функции w(/i) при фиксированном /1. Отступим, однако, от этой стандартной последовательности дей- ствий и учтем специфику рассматриваемой задачи. В выражении для функции Лагранжа L(xj ,а?2,м) выделим полные квадраты по перемен- ным х\ и Х2 и запишем эту функцию следующим образом: +м)2+ (х2+ 2) +4^- 4^2- Из этого представления вытекает, что значением функции Ла- гранжа является квадрат расстояния от точки (—^, —/1/2) до точки
Вопросы для самопроверки 149 (.Т|, хг) плюс величина 4/i — |/i2, не зависящая от точки (xj, xz). Следовательно, наименьшее значение функции Лагранжа (т.е. зна- чение двойственной функции w(/i)) равно квадрату расстояния от точки (—/1, — /1/2) до полуплоскости П плюс 4/1 - ^/i2. Если точка (-/1, —/1/2) попадает в Q, то расстояние от нее до Q равно нулю. Если же (—/1, — /1/2) Q, то это расстояние есть расстояние от точ- ки (—/1, —/1/2) до границы множества Q — прямой 2х\ + т2 + 4 = 0. Условие (—/1, —/1/2) С Q означает, что 2(-/х) + (-^)+4<0, или /1 > 8/5. Расстояние р(/1) от точки (—/1, —/1/2) до прямой 2lci + Х2 + 4 = 0 равно р(м) = |-2М-м/2 + 4| \/5 Следовательно, 2, . (4-5м/2)2 16 л 5 2 Р2(М) = 1- у - 4/1 + дМ2- В результате получаем {16 -г, 0^м<71 5 , 8 4м-^М2> Вопросы для самопроверки 1. Что называют допустимым направлением в задачах нелинейного программирования? 2. Что такое конус допустимых направлений? 3. При каких условиях можно утверждать, что целевая функция на заданном множестве достигает наименьшего значения? 4. Какую роль в задачах минимизации играет функция Лагранжа? Сформулируйте обобщенное правило множителей Лагранжа.
150 Глава 4. Аналитические методы нелинейного программирования ----------------------------------------------------. 5. Какие ограничения в задаче нелинейного программирования называют активными, а какие — неактивными? 6. Какую функцию в задачах минимизации называют двойственной и каковы ее свойства? Что такое двойственная задача? 7. Минимизируйте функцию f(x\ ,хэ) = #] — хэ при ограничении х^ + х^— 1. Найдите стационарные точки и точки минимума. Проана- лизируйте поведение функции Лагранжа в окрестностях найденных точек. Классифицируйте найденные точки (точки минимума, макси- мума, седловые точки для функции Лагранжа по переменным х, А).
Глава 5 ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Известно достаточно много численных методов решения общей за- дачи нелинейного программирования. Во многих из них использованы идеи, реализованные в численных методах безусловной минимизации. Главное отличие задач нелинейного программирования состоит в том, что при решении этих задач необходимо учитывать ограничения, за- дающие допустимое множество, в пределах которого определяется минимум целевой функции. В этой главе рассмотрены наиболее часто применяемые на практике численные методы решения задач нелиней- ного программирования. 5.1. Метод условного градиента Для численного решения общей задачи нелинейного программи- рования /о(®) —* niin, х е Q С Rn, (5.1) где /о(ж) — целевая функция, определенная на допустимом множестве Q, можно применить модификацию одного из методов спуска. Одна- ко непосредственное использование методов спуска может привести к тому, что точка xk, найденная на некоторой к-й итерации, напри- мер, с помощью рекуррентных соотношений вида (3.4) или (3.10), окажется вне пределов допустимого множества. Избежать этого в слу- чае замкнутого ограниченного выпуклого множества Q и непрерывно дифференцируемой на нем выпуклой целевой функции можно следу- ющим образом. На к-й итерации в окрестности исходной точки xk~' е Q запишем приращение целевой функции в соответствии с условием ее диффе- ренцируемости: д А- = /о(ж) - /о(хк~1) = (grad/о(хк~1), X - хк~1) + о(|ж - хк~11).
152 Глава 5. Численные методы нелинейного программирования Отбрасывая в этом представлении остаток, получим главную линей- ную часть приращения целевой функции, которая дает ее линейное приближение: fk&) = (grad/o(®fc~l), х-хк~'). (5.2) Минимизируя это приближение на допустимом множестве Q, получим очередное приближение к точке минимума целевой функции: fk(xk) = min(grad/o(a:fc'_|), х - хк~'). (5.3) В силу замкнутости и ограниченности множества Q и непрерыв- ности линейной функции Д(ж) точка хк ее минимума на Q всегда существует (возможно, не единственная, тогда можно выбрать одну из Мих). Поскольку линейная функция не 2 м (b,x) = const имеет локальных экстремумов, точка хк лежит на границе <9Q допустимого множества. '' \ Для некоторых множеств, имеющих достаточно простую структуру, реше- ние задачи (5.3) удается представить в явном виде. Например, в п.-мер- 7 ном замкнутом шаре радиуса R с цен- р||С 5 j тром в точке х° е Кп, т.е. на множест- ве 0 = {хбКп: |ж — ж°| ^7?}, точкой минимума линейной функции 'ф(х) = (Ь, х) является точка ж* = = х° — R-^- (на рис. 5.1 вектор Ь указывает направление возрастания |о| функции). В этом нетрудно убедиться, используя неравенство Коши — Буняковского. В самом деле, (Ь,х)-(Ь,х*) = (Ь,х-х*) = = (Ь, х - ж0) + (b, = (Ь, ж - х°) + R\b\. Из неравенства Коши — Буняковского вытекает, что для любой точки х е Q (Ь, х - ж0) — |Ь| |ж - хо| ~Л|Ь|, поэтому (b, ж)-(Ь, x*)^-R\b\ + R\b\ = 0.
5.1. Метод условного градиента 153 Для задачи (5.3), в которой допустимым множеством является n-мерный шар П = {х е Rn: |ж — xq| С R}, получаем _ 0 _ grad/o(xfc ') Х ~Х "|grad/0(^-')r Если допустимое множество является n-мерным параллелепи- педом Q = {(xj, ..., хп) G Kn: Xj € [a?, bj], j = 1, n }, то решением задачи (5.3) является точка хк с координатами dxj dfo(xk~') dxj (5.4) j = 1, n. _ dfo(xk~') „ Если --------- = 0 для некоторого номера j, то в качестве координаты (/Xj х^ точки минимума можно выбрать любое число из отрезка [оу, bj]. Если допустимое множество определено системой линейных огра- ничений типа равенства и неравенства, т.е. Q = {ж е Кп: (ai, ж) < bi, i = 1, тп, (cj,x) = dj, j = 1, к} , то задача (5.3) будет представлять собой задачу линейного программи- рования. Для ее решения можно использовать симплекс-метод. Предположим, что задача (5.3) решена и точка хк найдена. Если хк = хк~}, то fk(xk) = 0. Следовательно, Д(ж) fk(x*) = 0, ж е Q. Учитывая вид функции fk(x\ заключаем, что (grad/ох - хк~}) 0, х е Q. Записанное условие означает, что точка хк~х является точкой мини- мума целевой функции на множестве Q. В этом случае процесс поиска точки минимума целевой функции можно прекратить. Пусть хк / хк~}. Тогда в точке хк функция Д(ж) имеет значение, меньшее, чем в точке хк~1, т.е. fk(xk) = (grad/o(«fc '), хк -хк *) < 0.
154 Глава 5. Численные методы нелинейного программирования Следовательно, вектор рк = хк — хк 1 определяет направление спус- ка. Положив хк — хк~х + x^(2fc — хк~х) = (1 — х^)хк~х + хд-З^’, (5.5) для любого значения хд. е [0, 1] получим точку хк, принадлежащую допустимому множеству Q, поскольку множество Q выпукло. Таким образом, вспомогательное приближение хк на /с-й итерации позволило определить вектор рк, задающий, с одной стороны, допу- стимое направление, а с другой — направление спуска. Однако это направление в общем случае не совпадает с направлением антигра- диента функции /о(ж) в точке хк~х (рис. 5.2). Поэтому нахождение точки хк в соответствии с соотношением (5.5) путем выбора значения хд. отличается от итерации метода градиентного спуска. Это отличие послужило основанием для того, чтобы описанный метод миними- зации функции на заданном множестве назвать методом условного градиента. Допустимое направление, определяемое вектором рк, назовем воз- можным направлением спуска для функции /о(ж) из точки хк~х е О на множестве П С Rn, если это направление является направлением спуска, т.е. существует такое число хд. > 0, что хк~1 + хрк е Q при х € 6 (0, x/J и выполнено неравенство/о (а^-1 +xpfc) < fo(xk~l). Спуск в возможном направлении из точки хк~[ позволяет на к-и итерации продолжить построение релаксационной последовательности {х^}. Рассмотрим вопрос о выборе значения хд. е (0, 1] в соотношении (5.5). Один из возможных вариантов — это минимизация на отрезке [О, 1] функции = fo(xk '+хрк). (5.6)
5.1. Метод условного градиента 155 Для квадратичной функции вида fo(x) = (Q®, х) + (Ь, х) с поло- жительно определенной матрицей Q точка х£ е (0, 1] минимума функ- ции единственна и может быть представлена в аналитическом виде. Действительно, подставляя х = хк~} + хрк в квадратичную функцию и учитывая, что матрица Q симметрическая, получаем к2 = ~2 (QPk’Pk) +x(Qxk~l +b, рк) + fo(xk~l), или, учитывая равенство Qxk~l + b = grad/o(^A'~1) — —wk, 4>к(*) = ^(,Qpk,Pk)-x(wk,pk) + fo(xk '). Случай (Qpk>pk) = 0 для положительно определенной матрицы соответствует равенству рк = хк — хк~} = 0 и уже рассмотрен выше. При (Qpk,pk) >0 имеем относительно х квадратный трехчлен, достигающий минимума при значении * _ (wk,pk) (Qpk>pkY (5-7) Поскольку вектор рк определяет направление спуска и в силу этого (wk,pk) ^0, имеем х^ 0. При хд. = 0, как отмечено выше, точка хк~} оказывается точкой минимума целевой функции на допустимом множестве Q. В иной ситуации хд. > 0. Может быть так, что х£ > 1. Тогда функция <Рд,.(х) достигает своего минимума на отрезке [0, 1] при х = 1. Значит, следует принять хд. = 1 и хк = хк. В противном случае точка хк соответствует значению хд. = вычисляемому по формуле (5.7). Для выпуклой целевой функции /о(ж) выбор значения хд. из условия минимума функции <рд/х) потребует применения методов одномерной минимизации. Отметим, что для выпуклой целевой функ- ции /о(ж) и функция (/9д.(х) выпукла, а значит, достигает минимума в любой своей стационарной точке х*. Если /о(ж) — строго выпук- лая функция, то и функция ^/с(х) строго выпукла на отрезке [0, 1], а потому имеет на этом отрезке единственную точку минимума.
156 Глава 5. Численные методы нелинейного программирования Минимизация функции — трудоемкая задача. Но можно обойти ее решение и выбирать значение для определения точки хк по формуле (5.5) из других соображений (например, применяя процедуру дробления шага). Единственное требование при этом заключается в выполнении условия fo(xk) fo(xk~]), обеспечива- ющего релаксационность последовательности {ж*}. Условием прекращения итераций в методе условного градиента может быть выполнение одного или всех неравенств (3.2) и (3.3). При некоторых ограничениях метод условного градиента работо- способен и в случае, когда целевая функция не является выпуклой. Пример 5.1. Решим задачу квадратичного программирования /0(21,22) = — 4я] + Х2 — 2x2 ~* min, О xi 1, 0 Х2 С 2. В данном случае /о(ж) = (Ож, х) + (Ь, ж), где а допустимое множество Q можно записать в виде Q = < (я?!, Х2) 6 R2: х\ Е [0, 1], Х2 € [0, 2 В качестве начальной выберем точку ж0 = (0, 0), а условие пре- кращения итераций примем в виде \хк — хк~] | < б, положив е = 0,1. Рассмотрим подробнее первую итерацию метода условного градиента. 1. Вычислим в начальной точке ж0 = (0, 0) градиент целевой функции grad/o(^°) = (“4 — 2)Т и найдем в со- ответствии с формулой (5.2) линейное приближе- ние целевой функции в указанной точке: /1 (ж) = (grad/o(z°), ж — ж°) — -4x1 - 2ж2. 2. Вспомогательное приближение ж1 найдем, ми- нимизируя функцию /1(ж) на заданном множе- стве Q (рис. 5.3). Для этого используем соотноше- ния (5.4), в которых а\ = а2 = 0, Ь\ = \ и Ь2 = 2.
5.1. Метод условного градиента 157 „ д/0(х°) . df0(x°) _ Так как частные производные —- = — 4 и —- = -2 целевом ОХ\ 0X2 функции в точке ж0 отрицательны, то в соответствии с формулой (5.4) имеем х1 = (1, 2). 3. На первой итерации направление спуска определяется вектором р1 = х1 — х° = (1 2) . Учитывая выражение для антиградиента w1 = = — grad/o(®°) — 2)Т целевой функции в точке xQ и используя равенство (5.7), находим точку х* минимума функции <р\ _ (4 2)(1 2)Т £ 1 (Qp'.p1) , ./2 0\ Ю ’ ' 1 } ^0 2J \2 J Поскольку х* < 1, принимаем xj = х* = 0,8 и по формуле (5.5) нахо- дим точку х1 = х° 4-Xjp1 = (0,8 1,6)Т. Ясно, что ж1 е Q (см. рис. 5.3). 4. Проверяя условие прекращения итераций, убеждаемся, что I®1 — <с°| = <У(0,8)2 4- (1,6)2 > 0,1 = е, т.е. требуемая точность еще не достигнута и поиск точки минимума следует продолжить, используя в качестве исходной найденную на первой итерации точку ж1 = = (0,8, 1,6). Результаты расчетов на первой и последующих итерациях приве- дены в табл. 5.1, а графическая иллюстрация решения задачи методом условного градиента представлена на рис. 5.4. Описанный алго- ритм за восемь итераций с заданной точностью приводит к точке х* = (1, 1), являющейся точным решени- ем задачи. В точке ж8 = (0,957, 0,953) значение /о(ж8) « —3,910 отличается от минимального значения /о(®*) — -4 ме- нее чем на 0,1. Обратим внимание на характерное зиг- загообразное движение текущей точки в направлении искомой точки минимума ж*. Такое движение вызвано тем обстоятель- ством, что в данном случае в результате решения задачи минимизации линейной функции (ж) на выпуклом множестве Q вспомогательными приближениями по- очередно являются крайние точки (1, 2) и (1,0) этого множества. #
158 Глава 5. Численные методы нелинейного программирования Таблица 5.1 к хк \xk—хк *| к к X |а? —х | 1 (0,800, 1,600) 1,790 5 (0,939, 1,069) 0,152 2 (0,892, 0,861) 0,745 6 (0,947, 0,940) 0,129 3 (0,915, 1,103) 0,243 7 (0,952, 1,053) 0,113 4 (0,929, 0,917) 0,187 8 (0,957, 0,953) 0,100 Поиск вспомогательного приближения хк е Q на fc-й итерации метода условного градиента можно вести не только на основе ли- неаризации целевой функции /о(ж) в окрестности точки хк~} G Q. Если /о(ж) — выпуклая функция, дважды дифференцируемая на вы- пуклом ограниченном замкнутом множестве Q, то ее приращение в окрестности точки хк~} приближенно можно представить квадратич- ной функцией К(ж) = (gTad/o(^-1),x-x/c-1) + (Н(хк~'}(х-хк~'),х-хк~'\ где Н(хк~}) — матрица Гессе функции /о(ж)> вычисленная в точке хк~}. Такое представление приводит к необходимости вместо ре- шения задачи (5.3) минимизации линейной функции на допустимом множестве Q решать на том же множестве задачу минимизации ква- дратичной функции. Это существенно усложняет поиск точки хк9 но благодаря более точной аппроксимации целевой функции в окрестно- сти точки хк~1 может уменьшить общее число итераций. 5.2. Использование приведенного градиента Если в общей задаче нелинейного программирования допустимое множество С Rn задано с помощью линейных ограничений, то для решения этой задачи можно использовать подход, аналогичный по- координатному спуску, применяемому в задачах безусловной миними- зации. При этом ограничения удобно привести к форме, содержащей ограничения типа равенства, которые можно записать в виде Ах = b с известными матрицей А и вектором Ь, и условие неотрицательности параметров оптимизации. Последнее условие можно записать в ви- де х 6 , где R* — неотрицательный ортант, содержащий все арифметические векторы с неотрицательными координатами.
5.2. Использование приведенного градиента 159 Записав допустимое множество в виде Q = {х е R*: Ах = Ь} , (5.8) можно, не ограничивая общности, считать, что ранг матрицы А равен числу т ее строк и меньше числа п ее столбцов, т.е. Rg А = т < п. В самом деле, если ранг матрицы равен количеству столбцов, то си- стема Ах = Ь несовместна или имеет единственное решение. В этом случае задача нелинейного программирования не представляет инте- реса. Если система Ах — Ь совместна, a R.gA = г < т, то в матрице можно выделить г линейно независимых строк. Уравнения систе- мы, соответствующие остальным т — г строкам матрицы А, будут следствиями уравнений, соответствующих выделенным г строкам ма- трицы А. Такие уравнения можно из системы удалить, не меняя множество решений системы и не меняя, по существу, задачу линей- ного программирования. Итак, далее считаем, что Rg А = т < п. Выберем в матрице А базисный минор В. Для удобства будем считать, что этот минор рас- положен в первых т столбцах матрицы А (этого можно добиться, изменив при необходимости порядок переменных в задаче нелиней- ного программирования). Матрицу А можно записать как блочную матрицу (В | N), где В — квадратная матрица, составленная из первых т столбцов матрицы А, а матрица N объединяет оставшиеся п — т столбцов. Матрица В, соответствующая базисному минору, являет- ся невырожденной. Выбор базисного минора в системе линейных алгебраических уравнений (СЛАУ) Ах = Ь приводит к разделению неизвестных Xjy i= 1,п, на базисные неизвестные х\у ..., хт и свободные неизвестные хт+\у ..., хп. Первую группу неизвест- ных сгруппируем в вектор-столбец хв, а вторую — в вектор-столбец xN. Введем также множества индексов JB — {1,2,..., m}, JN = = {m+1, ...,п} и J = JBU JN. С учетом введенных обозначений СЛАУ Ах = b можно записать в виде матричного уравнения Вхв + Nxn = b. Поскольку матрица В невырождена, то это матричное уравнение можно преобразовать к виду xD = b-NxN, (5.9) где Ь = B~lb, N = В-1 N. Параметры оптимизации, составляющие векторы хв и xN, называют обычно базисными и свободными переменными в задаче нелинейного программирования.
160 Глава 5. Численные методы нелинейного программирования Матрицу Якоби целевой функции в некоторой точке х° G Q пред- ставим в виде блочной матрицы-строки (дв 9N), где дв и gN — матрицы-строки длины т и п — т. Элементами этих матриц-строк 0 /о • 1-- с. с: являются частные производные j = 1, п, по базисным и свобод- ным переменным соответственно. Тогда, используя равенство (5.9), для полного дифференциала целевой функции получаем dfo(x°)=(gB gN^(xB xN^ = двdxB + gNdxN = = —gBNdxN +gN dxN = (gN — gBN) dxN = и dxN, (5.10) где и = (gN — gBN)T G IRn-m — вектор, называемый приведенным градиентом целевой функции /о (ж) относительно свободных пере- менных в точке ж0 G Q. В задаче оптимизации с линейными ограничениями возможны разные стратегии поиска точки минимума с использованием приведен- ного градиента. Простейшая из них — применение покоординатного спуска в пространстве свободных переменных. Последовательный пе- ребор свободных переменных проводят по тем же правилам, что и при решении задачи линейного программирования симплекс-методом, а метод, основанный на этой стратегии, называют выпуклым симплекс- методом. Можно также на каждой итерации процесса минимизации изме- нять все свободные переменные. Метод, основанный на подобной стратегии, называют методом приведенного градиента. Из равенства (5.10) следует, что при изменении свободных пе- ременных и соответствующем изменении базисных переменных зна- чение целевой функции быстрее всего уменьшается в направлении, противоположном приведенному градиенту. Но при произвольном из- менении свободных переменных может быть нарушено условие их неотрицательности. Чтобы этого избежать, приведенный градиент можно спроектировать на неотрицательный ортант R* ~т — допусти- мое множество для этих переменных. Поскольку —достаточно простое по структуре множество, проектирование на него выполнить несложно. Это позволяет сформировать возможное направление спус- ка, т.е. найти координаты j G <7, вектора р G IRn, определяющего это направление. При Uj 0, j G JN, увеличение свободного пере- менного Xj в окрестности рассматриваемой точки ж0 G Q приведет
5.2. Использование приведенного градиента 161 к уменьшению значения целевой функции. Поэтому для этого ин- декса принимаем pj = —Uj. Если же Uj > 0, j е JN, то увеличение свободного переменного Xj в окрестности рассматриваемой точки мо- жет привести к ее возрастанию. В этом случае положим pj = — UjX^\ Таким образом, для координат вектора р е Rn, соответствующих сво- бодным переменным и составляющих вектор pN G Rn-m, имеем (5.П) Чтобы при движении точки х — х° 4- хр, х > О, (5.12) в направлении, которое задано вектором р е Rn, не были наруше- ны ограничения Ах = Ь, определяющие допустимое множество Q вида (5.8), необходимо, чтобы выполнялось условие Ах = Ах° 4- 4- x(B\N)p — Ь, или Врв = —NpN, поскольку AxQ = Ь. Отсюда находим вектор Pb = -B-'NPn = -Npn (5-13) с координатами pj, j е JB, соответствующими базисным перемен- ным. Значение х в равенстве (5.12) выбираем, минимизируя функцию <р(х) = /о (ж0 + х > 0, но при выполнении условия х G R*, приводящего с учетом (5.12) для всех j G J к соотношениям О С х3, = = х^ 4- xpj, где Xj и х^ — координаты точек х и ж0 соответ- ственно. Из этих соотношений в предположении, что множество Т* = {j е р3 < 0} не пусто, получаем ограничение на максимально возможное значение х в виде / я(0)\ х х = min ( —— ). (5.14) Pj J Если I* — 0, то x может иметь любое неотрицательное значение, т.е. (0, 4-оо). Покажем, что равенство pN = 0 равносильно выполнению в рас- сматриваемой точке х° необходимых условий локального экстремума на множестве Q, установленных теоремой 4.6. 1 1 - 9252
162 Глава 5. Численные методы нелинейного программирования Для рассматриваемой целевой функции /о(ж) функция Лагранжа имеет вид L(x, A,/i) = /о(®) + (А, Ах -Ъ) - (д, я), где А Е и д Е Rn — векторы множителей Лагранжа, соответ- ствующие ограничениям Ах — Ь = 0 типа равенства и — х 0 типа неравенства (последнее неравенство означает, что — Xj 0, j = 1, п). Необходимые условия локального экстремума на множестве Q, уста- новленные теоремой 4.6, можно записать следующим образом: ' gradL(ж*, А,/1) = grad/o(®*) + ДТА — д = 0; * , ___ (5-15) При рдг = 0 эти условия будут выполнены, если положить Хт = -двВ~\ цв = О, vN = u, где рв и pN — вектор-столбцы, полученные группированием базис- ных и свободных координат вектора д. В самом деле, в соответствии с соотношениями (5.11) из равенства pN = 0 следует, что Uj 0 для всех j Е и, значит, pj 0, j = 1, п. Так как рв = 0, то PjX^ = = 0, j G JB. Из соотношений (5.11) и равенства pN = 0 вытекает, что UjX^ = 0, j Е , откуда в силу равенства pN = и заключаем, что PjX^ = 0, j Е JN. Таким образом, вторая система равенств в системе (5.15) выполнена. Из выражений для Ат и р находим -ХгА + рт = двВ~'(В + и) = (дв gBB~]N + u). Так как и = gN — gBN = gN — дв В~] N, то —АТА + р = (дв gN)- Но grad/(я0) = (дв gN)T. Следовательно, grad/(x°) + АТА - р = (-АтА + дт)т + АТА - р = О, т.е. выполнено и первое равенство (5.15).
5.2. Использование приведенного градиента 163 Проведенное рассуждение позволяет рассматривать равенство pN = 0 в процессе поиска как условие достижения точки минимума на множестве Q. Учитывая это, можно построить алгоритм поиска точки минимума целевой функции на множестве Q с использованием приведенного градиента. На предварительном этапе устанавливаем начальный номер итера- ции к = 1 и выбираем начальную точку х° е Q. Анализируя линейные ограничения типа равенства, выделяем базисные и свободные пере- менные в задаче, формируем множества и индексов базисных и свободных переменных и разделяем матрицу А на две матрицы и Nk, группируя столбцы, соответствующие базисным и свободным неизвестным. Вычисляем матрицы и Nk = В^}и переходим к основной части этого алгоритма. 1. На fc-й итерации в точке хк~1 G Q вычисляем блоки д& и д£г матрицы Якоби целевой функции, соответствующие базисным и свободным переменным. Затем находим приведенный градиент ик — (dk ~9kNk)T- По формулам (5.11), используя приведенный градиент, находим вектор е Rn-m. Если \р^\ < 63, то итерации прекращаем, полагая х* « хк~[ и fo(x*) « /о(хк~1). В противном случае переходим к п. 2. 2. Вычисляем вектор рв = —N^p^ G IRm и формируем вектор рк, объединяя координаты векторов ркв и р^ с учетом их порядка, определяемого множествами индексов и j}?. Этот вектор задает возможное направление спуска из точки хк~1. Формируем множество индексов j, для которых < 0. Если это множество непусто, вычисляем значение / А хд. = min | —] > 0. (5.16) &k\ Pj / Пели же Т£ = 0, то в качестве можно принять любое достаточно большое положительное значение. Минимизируя функцию ^.(х) = — ./о(жА:-1 4-х//’) в полуинтервале (0,x/J, находим значение х£ е G (0, хд.] и новую точку хк = хк~] 4- *кРк Если х£ = х/., то переходим к п. 3. В противном случае номер итерации к увеличиваем па единицу и возвращаемся к п. 1. 3. Устанавливаем индекс г, для которого —х^ /р^ = Таких индексов может быть несколько. Если все они принадлежат множеству и*
164 Глава 5. Численные методы нелинейного программирования JN, то увеличиваем номер итерации к на единицу и возвращаемся к п. 1. В противном случае равно нулю хотя бы одно базисное переменное х^\ г е JB, и мы переходим к п. 4. 4. Установленный в п. 3 индекс г (если их несколько, то один из них) переводим из множества JB в множество , а из в JB переводим индекс I наибольшего по значению свободного переменного Х[. Для новых множеств индексов и разделяем матрицу А на матрицы B^nN^n вычисляем матрицы 1 и = В^1N^. Увеличив номер итерации к на единицу, переходим к п. 1. Отсутствие изменений в составе базисных переменных в течение нескольких итераций указывает на то, что достигнута достаточно близ- кая окрестность искомой точки я* Е Q. В этом случае для ускорения сходимости можно применить спуск по сопряженным направлениям в пространстве Rn-m свободных переменных. Пр и м е р 5.2. Рассмотрим задачу нелинейного программиро- вания хз) = х] — 2z 1Х2 4- Х2 4- xj —> min; х\ 4-2x2 4- хз — 3; Xj О, j = l,3. Сначала используем модифицированный алгоритм метода приве- денного градиента, выполняя спуск по сопряженным направлениям в пространстве свободных переменных. Выберем начальную точку ж0 = (1, 1/2, 1) и зададим параметр точности поиска £3 =0,1. Целевая функция представляет собой неотрицательно определен- ную квадратичную форму. Запишем ее в виде /о(ж) = (Qx, ж), где Q = -2 о\ 2 0. 0 2/ В задачу входит одно линейное ограничение типа равенства. Поэтому лишь одно переменное может быть базисным. Выберем в качестве базисного переменное х\. Тогда JB = {!}, J\N = {2,3}, В\ = 1 и N\ = (2 1). Вычисляем В-1 = 1 и N\ = B^]N\ = (2 1).
5.2. Использование приведенного градиента 165 Первая итерация. 1. В точке ж0 вычисляем приведенный градиент: (u')T=rf'-s№ = (^ \UX2 UXy / ОХ\ = (-2x14-2^2 2х'3) —(2rc!— 2x2)N\ = (-l 2) - (2 l) = (-3 1). ~ (i) >5 (0 i Так как u2 = — 3 и Uj = 1, то в соответствии с соотношениями (5.11) имеем — 3 ир^ = —и^х^ = — 1. Следовательно, Рдг = (3 — 1)Т. Поскольку \р^\ = л/То > £3 = 0,1, переходим к п. 2 алгоритма. 2. По формуле (5.13) находим p}B = -NiP'N = -(2 1)(3 —1)Т = —5 и формируем вектор р1 = (—5 3 — 1)т, который определяет возмож- ное направление спуска из точки ж0. Формируем множество Z* = = {j G J'- р^ < 0} = {1,3} и по формуле (5.16) вычисляем Находим минимум функции <pi(x) = /о(ж° + хр1)- Для этого, учитывая, что целевая функция квадратичная, можно использовать формулу (5.7): * (ФАр1) j_ Х| (Qp'-p1) 13' Поскольку х* < X] = 1 /5, функция epi (х) достигает минимума на от- резке [0, X]] = [0, 1/5]прих = х*. Вычисляем точку ж1 = ж04-х*р’ = = (8/13, 19/26, 12/13) и переходим ко второй итерации, возвращаясь к п. 1 алгоритма. Вторая итерация. 1. Множества индексов JB и JN не изменились, поэтому N2 = N\ = (2 1). Вычисляем приведенный градиент в новой точке ж1: (u2)T = S;"-92BW2=(i п) + Пр 1) = П(‘ 3)'
166 Глава 5. Численные методы нелинейного программирования Поскольку базисное переменное осталось прежним, вектор найдем как сопряженный с вектором plNt 2 2 lu2|2 1 Pn = ~U + = 9 /1\ (9/13)2(l2 + 32) / 3\_ 18 / 7\ 1з(37 + 32 + i2 V-i7 “ 169V~247' Так как \p2N | = 450/169 > €3 =0,1, переходим к п. 2. 2. По формуле (5.13) находим вектор ‘><7 24)1 и формируем вектор р2 = (10 7 — 24)Т, задающий направление 169 спуска из точки х1. Длина этого вектора для дальнейших вычисле- ний на этой итерации не имеет значения. Поэтому примем р2 = = (10 7 — 24)Т. Сформировав множество — {7 С J7: р^ < 0} = = {3}, по формуле (5.16) вычисляем - _ 4" I рГ’ 26' Минимизируя функцию 9^2(х) — /о(ж1 + >Ф2) на отрезке [0, Jq], находим * (<2я?‘,р2) J___ *2 (QP2,P2) 26 Х2 и вычисляем точку х2 = х} + — 0, 1,0)- Поскольку х^ — ^2, переходим к п. 3. 3. Так как индекс i — 3 принадлежит множеству = {2, 3}, т.е. обратилось в нуль свободное переменное х’з, переходим к третьей итерации, возвращаясь к п. 1 алгоритма. Третья итерация. 1. Снова множества индексов J13 и остались прежними, поэтому N3 = N\ — (2 1). Находим приведенный градиент в новой точке х2: (U3)T = ^-g3B2V3 = (O 0) — 0 • (2 1) = (0 0).
5.2. Использование приведенного градиента 167 Поскольку вектор и3 оказался нулевым, то и вектор p3N в соот- ветствии с соотношениями (5.11) будет нулевым. Так как |р^| = 0 < < S3 = 0,1, дальнейшие вычисления прекращаем и полагаем х* = х3 = = (1,1, О))/о(х*) = /о(®3) = О. Из равенства р^ = 0 вытекает, что в точке сс3 выполняются необходимые условия локального экстремума (5.15). В общем случае из этого не следует, что х3 — точка минимума. Но в данном случае, учитывая, что целевая функция выпуклая, а ограничения задачи линейные, такой вывод сделать можно. Применение метода приведенного градиента в сочетании с исполь- зованием сопряженных направлений позволило найти точку минимума целевой функции всего за две итерации. Это связано с тем, что целевая функция является квадратичной, а свободных переменных всего два. Выполним в рассматриваемой задаче вторую итерацию, используя основной алгоритм, в котором в пространстве свободных перемен- ных выполняется градиентный спуск, и убедимся в том, что для достижения точки минимума целевой функции необходимо большее число итераций. В этой итерации исходной является точка х1 = = (8/13, 19/26, 12/13), а приведенный градиент в этой точке равен и2 = (9/13 27/13). По формуле (5.11) находим р2 - U2 Х2 ~ 328’ ~(2) (2) (1) 324 Рзi ~~из хз = -J69 и определяем вектор (—19 — 72)1. Поскольку |« 2,04 > > S3 = 0,1, то переходим к п. 2 алгоритма. Л —2 495 Вычислив вектор рв = —N2PN = — (в данном случае этот век- тор — число), сформируем вектор р2 = (ПО —19 —72) , опустив множитель 9/328. На множестве — {2,3} в соответствии с ра- венством (5.16) находим . Г 19 12 1 Х2 = т1П12бЛ9’ 1Г72/ — «0,01282. 78 Функция <^2(х) = /о(®' + ХР2) достигает минимума при _ (Qx',p2) 2 (Qp2,p2) 4230 2643450 0,00374 < х2,
168 Глава 5. Численные методы нелинейного программирования и мы получаем точку х2 = ж1 + Х2Р2 = (1,0333, 0,6596, 0,6535). Эта точка отличается от точного решения х2 = (1, 1,0), полученного с использованием сопряженных направлений, т.е. за две итерации основного алгоритма точка минимума не была достигнута, получено лишь некоторое приближение к ней. 5.3. Проектирование точки на множество Выше (см. разд. 5.1) отмечено, что непосредственное применение к численному решению общей задачи нелинейного программирования одного из методов спуска может привести к тому, что очередная точка итерационной последовательности выйдет за пределы допустимого множества. Чтобы этого избежать, необходимо корректировать точку, полученную в результате выполнения очередной итерации. Одним из способов такой корректировки является операция проектирования точки на допустимое множество. Проекцией точки х е на множество fi с Rn называют ближайшую к х точку у этого множества и обозначают ее Fq(x). Для точки у = Рп(ж) выполняются равенства \у — х| = inf \z — ж| = p(x,Q). (5.17) zCQ Величину р(«,П) называют расстоянием от точки х до множе- ства Q. На рис. 5.5 дана геометрическая иллюстрация операции проекти- рования точки на множество. Проекция точки х Q на множество Q может и не существовать. Например, для открытого множества Q ни одна точка вне Q не имеет проекции на это множество: нетрудно пока- зать, что проекция точки х Q на Q не может быть внутренней точкой Q. В то же время может существовать несколько (и даже бесконечное множество) проекций точки на множество (рис. 5.6). Перечислим основные свойства операции проектирования точки на множество. 1. Если х е Q, то Pq(x) = х. 2. Если Q — замкнутое множество, то любая точка х е Rn имеет проекцию на это множество. Если при этом Q — выпуклое множество, то проекция любой точки х е Rn на Q единственна.
5.3. Проектирование точки на множество 169 3. Точка у является проекцией точки х е на замкнутое выпук- лое множество Q тогда и только тогда, когда для любой точки z е Q выполнено неравенство (рис. 5.7) (z-y,x-y) ^0. (5.18) 4. Если Q — выпуклое замкнутое множество, У\ = и У2 — Р&(х2) — проекции точек Х[ и Х2 на Q, то 11/1 -1/21 1*1 “*2|, т.е. длина проекции отрезка на выпуклое множество не превосходит длины самого отрезка (рис. 5.8). Непосредственно из определения следует, что проекцию заданной точки ж Е Rn на замкнутое множество Q С Rn можно найти путем решения задачи минимизации Ф(х) = |z — х|2 —> min, z е Q. (5.19) Согласно свойству 2 эта задача имеет решение, а при дополнительном условии выпуклости Q решение задачи единственно. Трудность решения задачи связана главным образом с видом множества Q и способом его описания. Рассмотрим несколько примеров, когда определение проекции точки на множество не составляет труда.
170 Глава 5. Численные методы нелинейного программирования Пример 5.3. Если Q = {z Е Rn: \z — хо| ^7?} — замкнутый шар с центром в точке Xq Е Rn и радиусом R, то из геометрических соображений нетрудно понять, что проекция точки х Q на Q распо- ложена на отрезке, соединяющем точку х с центром шара х$ (рис. 5.9). Отсюда неслож- но получить Pq(x) = хо + р——R. (5.20) |х Xq | Множество Q = {z Е IRn: \z — ®0| = 7?} то- чек, равноудаленных отточки xq (называемое (п+1)-мерной сферой), является замкнутым, но не выпуклым. Для точки xq любая точка множества является про- екцией. Для точек х Q проекция на сферу единственна и может быть найдена по формуле (5.20). Пр и м е р 5.4. Гиперплоскость Q = {zElRn: (n,z) = 6}> (5.21) где п е — нормальный вектор этой гиперплоскости, а b — посто- янное число, является замкнутым выпуклым множеством. Проекцию точки х Q на множество Q, как и в предыдущем примере, можно найти из геометрических соображений. Из этих соображений нетруд- но понять, что вектор у — х, где у = Pq(x), коллинеарен вектору п, а поэтому у = х + Ап, где А — некоторое пока не известное число. Подставляя это представление в уравнение гиперплоскости, получаем (п, у) = (п, х) + Ап2 = Ь. Отсюда легко определить значение А, и в результате мы получаем у = = х + -—(5.22) nz Найденное решение подтверждается с помощью теоремы Пифаго- ра. Для любой точки z Е О, имеем (n, z) = (п, у), откуда (n, z — у) = = 0, т.е. векторы п и z — у, а значит, и векторы у — х и z — у, ортогональны. По теореме Пифагора \z - х\2 = |(z ~у) + (у~ я)I2 = \z - 7/I2 + |у - «I2 >\у~ ж|2. Следовательно, точка у = Pq(х) оказывается ближайшей к точке х.
5.3. Проектирование точки на множество 171 Несложно проверить, что проекция точки х на полупространство Q* = {zeRn: (n,z)^} (5.23) (при условии х е Q*) определяется той же формулой (5.22). Пример 5.5. Расширим предыдущий пример и рассмотрим множество ____ Q = {z е Rn: (ni, z) = 6;, г = 1, m } , определяемое системой из т < п линейно независимых векторов п2, i = 1, т. Это множество, как пересечение замкнутых выпуклых множеств, является замкнутым выпуклым. Проекцию произвольной точки х Q на множество Q можно найти методами линейной алгебры. Рассмотрим линейную оболочку 74 С векторов п\, ..., пт и ортогональное дополнение 7Y1 к подпространству 74. Выберем произвольную точку z е П и представим вектор z — х в виде z — x — — ан + а1, где ан Е 74, а1 6 Поскольку а1 6 то (п;, а1) = - О, i = 1, т. Отсюда нетрудно заключить, что вектор у = z — а1 = = х 4- ан принадлежит множеству П. Кроме того, из ортогональности векторов а// иа1 вытекает, что |z - ж|2 = \апI2 + 1а112 > |ах|2 = \у - ж|2. Следовательно, точка у е Q является ближайшей к точке х. Чтобы найти вектор у, вернемся к разложению z — х = ан 4- а1- и запишем условия ортогональности (z — х — ан, nj) = 0, j = 1, т, вектора а-1- векторам nj. Записав вектор ан в виде линейной комбинации векторов п?, т.е. ан = ^2 ^ini’ и использовав равенства __________________ г=1 (z, nj) = bj, j = 1, m, получим m 67-(х,Пг)-^2Лг(Пг,П7) =0, j = l,m. i=l Таким образом, мы пришли к квадратной системе линейных уравнений с неизвестными коэффициентами А;: т ^Xi(ni,nj) = bj-(x,ni), (5.24) i= 1
172 Глава 5. Численные методы нелинейного программирования Матрицей этой системы является матрица Грама системы векторов П], ..., пт, т.е. матрица скалярных произведений (п;, п?). Из курса линейной алгебры известно, что матрица Грама невырождена тогда и только тогда, когда система векторов линейно независима. Это значит, что в рассматриваемой ситуации система уравнений (5.24) имеет решение, и притом единственное. Это решение позволяет т вычислить вектор ан — 12 ^ini, & вместе с ним и вектор у = х + а/у. г=1 п ример 5.6. Рассмотрим n-мерный параллелепипед Q = {х G Rn: а3 Xj < bj, j = 1, п } , где aj и bj — заданные числа. Координаты yj проекции у = Pq(x) точки х = (jjj , ..., хп) на множество Q можно найти по формулам yj = min { max { Xj, a?}, }, j = 1, m, или в развернутой форме aj, T j < Q'j 5 yj = < X j, Xj < : bj xj: г bj, j = l,n. 5.4. Метод проекции точки на множество Сочетание метода градиентного спуска, используемого при без- условной минимизации, и операции проектирования точки на множе- ство составляет существо метода проекции точки на множество, применяемого для решения общей задачи нелинейного программиро- вания. Такое сочетание позволяет на каждой итерации обеспечивать соблюдение ограничений, определяющих множество Q. В методе проекции точки на множество релаксационную последо- вательность {яЛ’} строят с помощью рекуррентного соотношения xk = Pn(xfe_| + Xfcwfc), (5.25) сперва определяя точку хк — хк~1 + X).wk каким-либо методом гра- диентного спуска, а затем проектируя ее на допустимое множество. Здесь wk = — grad fo(xk~x) — антиградиент целевой функции, вы- численный в точке хк~\ е Q. Процесс построения релаксационной последовательности начинается с выбора начальной точки х° е Q.
5.4. Метод проекции точки на множество 173 Если Q— замкнутое выпуклое множество, процедуры градиентно- го спуска и последующего проектирования на допустимое множество можно объединить в одной задаче минимизации. Действительно, рас- смотрим минимизацию на множестве Q квадратичной функции = ---\--xk(z-xk~l,wk), ZGQ. Эта функция выпуклая как сумма двух выпуклых функций. Она достигает минимума в точке хк Е fl, в которой неравенство (grad$fc(ccfc), z - хк) О выполнено для любой точки zEfl. В данном случае grad4\.(z) = — z — хк~[ — поэтому 0^ (егабФ^яЛ’), z ~хк) = (хк -хк~' - xkwk,z-xk) = = -(хк - хк, z-xk). (5.26) Сравнивая неравенство (хк — хк, z — хк) ^0 с условием (5.18), убеждаемся, что точка хк минимума функции Ф^(г) на множестве П является проекцией точки хк = хк~х + >c^wk на это множество. Варианты метода проекции градиента различаются способами вы- бора значения параметра регулирующего на fc-й итерации шаг спуска в направлении антиградиента. Могут быть использованы и фиксированное значение параметра, и его выбор исходя из исчерпы- вающего спуска либо в соответствии с методом дробления шага. Критерием прекращения поиска в методе проекции точки на мно- жество служат те же условия (3.2) и (3.3), что и в случае безусловной минимизации. Опишем подробнее последовательность действий при выполнении А>й итерации варианта этого метода, в котором используется исчер- пывающий спуск в направлении антиградиента. Предположим, что допустимое множество Q задано ограничением д(х) = 0 типа равен- ства, где д(х) — функция, дифференцируемая в Rn. Графически выполнение к-й итерации в двумерном случае показано на рис. 5.10. Здесь Q есть множество точек плоской гладкой кривой Г, заданной Уравнением д(х) = 0.
174 Глава 5. Численные методы нелинейного программирования После вычисления антиградиента шк в исходной точке хк~} (най- денной на предыдущей итерации или начальной в случае первой итерации), ортогонального линии уровня /о(ж) — целевой функции, проведем исчерпывающий спуск в направлении антигради- ента до точки хк, в которой направление спуска касается линии уровня целевой функции (см. рис. 5.10). Поскольку д(хк) = ограниче- ние типа равенства, задающее допустимое множество Q, нарушено. Для завершения /с-й итерации и нахождения точки xk необходимо спроектировать точку хк на множество П. В данном случае это озна- чает, что нужно найти точку плоской кривой Г, наименее удаленную от точки хк. Так как функция д(х) дифференцируема, вектор хк — хк будет ортогонален касательной к кривой Г, построенной в точке хк (или, проще говоря, этот вектор ортогонален кривой Г). Аналогична последовательность действий и в случае, когда допу- стимое множество Q задано ограничением типа неравенства д(х) С 0. На рис. 5.10 это множество — часть плоскости, ограниченная кри- вой Г, которая описывается уравнением д(х) = 0. При g(xk) = d > 0 имеем хк Q, а проекция точки xk на множество Q снова является основанием кратчайшего перпендикуляра, опущенного из этой точки на кривую Г. Рассмотрим условия сходимости последовательности {яЛ}. Теорема 5.1. Если Q — замкнутое выпуклое множество, а целевая функция /о(я) на этом множестве ограничена снизу, непрерывно дифференцируема и для любых х, у Е Q удовлетворяет условию | grad/о (ж) - grad/о (!/) I L\x-y\, L > 0, (5.27)
5.4. Метод проекции точки на множество 175 то при любой начальной точке ж0 Е Q для релаксационной последо- вательности {ж^}, построенной по формуле (5.25), где 0 < хд. < 2—, е > 0, верно равенство lim [ж^-1 — хк\ = 0. Если при этом ь -I- к-^оо множество Xq = {ж е П: /о(ж) /о(ж°)} ограничено, то такая после- довательность имеет хотя бы одну предельную точку ж*, в которой для любых ж G Q выполнено неравенство (giad/0(®*),®-®*) # (5.28) Можно показать, что если выполнены все условия теоремы 5.1 и, кроме того, функция /о(ж) выпукла на допустимом множестве Q, то справедлива оценка 0 С fo(xk) — С С /к, к е N, С = const > 0. Если при этом целевая функция сильно выпукла, а релаксационная последовательность {хк} построена по рекуррентному соотношению (5.25) так, что выполняется условие 0 < fo х < 27/L2, где у L — параметр сильной выпуклости функции /о(ж), то последо- вательность {ж^} сходится к точке ж* минимума целевой функции на множестве Q и справедлива оценка |ж^ — ж*| С qk\xQ — ж*|, к е N, где q = у/1 — 27X-F x2L2 е (0, 1). Отметим, что при выборе х = y/L1 знаменатель геометрической прогрессии принимает минимально воз- можное значение q = ^/1 — 72/ZA Проиллюстрируем возможности метода проекции точки на мно- жество на конкретных примерах. Пр и м е р 5.7. Рассмотрим задачу нелинейного программиро- вания /о(з7 ,£2) — Юж2 —4ж|Х2 + 7ж2 — 4\/5(5ж1 — х^) — 16 —» min, Ж] — Х2 — \/5 = 0. В качестве начальной точки выберем ж0 = (0, — >/5). Проекти- рование точки хк на множество Q выполняем по формуле (5.22), где Ь ~ у/5 и п = (1, — 1) — нормальный вектор прямой х i - х^ — \/5 = 0. Условием останова выберем выполнение неравенства \хк — жА-1| < < £1, где 5] = 0,01, а в качестве приближенного решения задачи — последнюю точку релаксационной последовательности: ж* « хк и Л®*) ~ Точное решение рассматриваемой задачи: х* = (\/5, 0) и/(ж*) — - —66, где \/5 « 2,2361. При численном решении задачи использу- ем три варианта выбора значения х^ в рекуррентном соотношении
176 Глава 5. Численные методы нелинейного программирования Таблица 5.2 Xfc N xN х = 0,10 6 (2,234, -0,002) х = 0,05 7 (2,235, —0,001) Xfc 4 (2,236, 0,000) (5.25): первый и второй вариан- ты — постоянные значения х = 0,1 и х = 0.05; третий — выбор х/, с помощью исчерпывающего спус- ка. Результаты численного реше- ния представлены табл. 5.2. Тра- ектории спуска в трех вариантах метода показаны на рис. 5.11: а — х = 0,1; б — х = 0,05; в — х = xjt (параметр определяется исчерпывающим спуском). Расчеты показывают, что по числу N итераций и достигнутому приближению в Рис. 5.11
5.4. Метод проекции точки на множество 177 к точке минимума в данном примере предпочтение следует отдать варианту метода с использованием исчерпывающего спуска. Обратим внимание на различие в траекториях поиска точки х* при постоянных значениях х (см. рис. 5.11, а и б). Видно, что при большем из двух значений (при х = 0,1) точка минимума целевой функции достигнута за меньшее число итераций. Пр и м ер 5.8. Методом проекции точки на множество решим задачу нелинейного программирования /о(^1,я2) = Ю(Х| - ж2)2 + (zi - I)2 —► min; Си - I)2 + (Х2 - З)2 < 1. В качестве начальной выберем точку а?0 = (0, 3) Е П, а параметр щ на каждой итерации будем находить путем исчерпывающего спуска. Проектирование точки хк на замкнутый круг 9 осуществляем в соответствии с формулой (5.20). Таким образом, ~к _ d_ f^k\ ___ । х ~ Х0 х — "Ь -Ж0| где xq = (1, 3) — центр круга 9. Прекращение поиска определяется условием — хк~11 < еь гдее] = 10-3— параметр точности поиска. Процесс поиска в рассматриваемой задаче показан на рис. 5.12. 12 - 9252
178 Глава 5. Численные методы нелинейного программирования Пр и м е р 5.9. Методом проекции точки на множество найдем минимум функции /о(^1 >х2) из примера 5.8 в прямоугольнике Q С R2, заданном соотношениями xj е [—2,5, 0], Е [—1, 2]. В качестве начальной возьмем точку х° = (—2, 2), а способ выбора параметра оставим тем же, что и в примере 5.8. Для прямоугольника построение проекции рассмотрено в примере 5.6. На рис. 5.13 показаны первые итерации процесса поиска точки минимума. 5.5. Метод проекции антиградиента Результатом проектирования точки ж Е йп на замкнутое множе- ство Q С Rn является точка у Е Q, либо совпадающая с ж, если х Е Q, либо лежащая на его границе <9Q (см. разд. 5.3). Это свойство операции проектирования позволяет при численном решении задачи оптимиза- ции с ограничениями на каждой /с-й итерации использовать обычный метод градиентного спуска в направлении антиградиента из точки жА:-1 в Т0ЧКу дЛ', а затем находить проекцию xk Е Q точки хк на множество Q (см. разд. 5.4). Если при этом xk Q, то операция проек- тирования как бы возвращает ее обратно в допустимое множество Q. Естествен вопрос: нельзя ли предварительно найти такое на- правление спуска, движение точки по которому при определенных ограничениях вообще не выводило бы ее за пределы допустимого
5.5. Метод проекции антиградиента 179 множества Q? Сначала рассмотрим случай, когда множество Q опи- сывается системой линейных ограничений типа равенства: Q = {х е (а;, х) = bi, i = 1, т] . (5.29) Отметим, что в силу линейности ограничений множество Q является выпуклым. Составим вектор Ь = (Ь\ ... Ьт) и матрицу А размера т х п, строками которой являются матрицы-строки aj, г = 1, т. Без ограни- чения общности можно принять, что Rg А = т < п (см. разд. 5.2). В этом случае векторы i = 1, т, линейно независимы. Отметим, что для любой матрицы А матрица ААТ является сим- метрической, поскольку (ААТ)Т = (ЛТ)ТАТ = ААТ. Если векторы di G Rn, i = 1,т, линейно независимы, то матрица ААТ невырождена и имеет обратную матрицу (АА )~1, причем симметрическую, так как матрица ААТ симметрическая. Квадратная матрица Р = ЛТ(ЛЛТ)“'4 (5.30) порядка п является симметрической, поскольку Рт = (AT(44T)-'А)Т = АТ(АТ(А4Т)-')Т = = АТ((ААТ)-')Т(АТ)Т = Ar(AAT)-' А = Р. Кроме того, РР = (АТ(ААТ)-' А)АТ(ААТ)-' А = = AT(AAT)~I(AAT)(AAT)~I А - Ат(АДт)-‘ А = Р, т.е. Р2 = Р. Квадратную матрицу М, удовлетворяющую соотношению М2 = = М, называют идемпотентной матрицей, а симметрическую идем- потентную матрицу — проекционной. Отметим, что проекционная матрица является неотрицательно определенной, так как (Л/w, w) = (M2w, w) = (Л/w, Л/w) = |Afw|2 0. I2‘
180 Глава 5. Численные методы нелинейного программирования Собственными значениями идемпотентной матрицы могут быть только числа 0 и 1. В самом деле, если х ф 0 — собственный вектор идемпотентной матрицы М с собственным значением А, то Хх = Мх = М2х = М(Хх) = Х2х. Следовательно, (А2 — А)ж = 0 и А2 - А = 0, так как х / 0. Уравнению А2 — А = 0 удовлетворяют только числа 0 и 1. Очевидно, что собствен- ными значениями проекционной матрицы также могут быть только числа 0 и 1. Нетрудно показать, что если Р — проекционная матрица, то и Р* = I — Р — также проекционная матрица (здесь I — единичная матрица). Действительно, (Р*)2 = (/ - Р)2 = I - 2Р + Р2 = I - Р = Р* (5.31) И (Р*)т = (/-P)T = l-p = p*. (5.32) С помощью матрицы Р любой вектор w Е Rn можно представить в виде суммы w = Pw + (I — Р) w, в которой слагаемые Pw. и (Z — Р)w ортогональны. Ортогональность слагаемых вытекает из равенств Р(1 — Р) = Р - Р2 = 0, в соответствии с которыми (Pw, (I - P)w) = (w, P(J - P)w) = 0. (5.33) Вектор Pw является проекцией вектора w на линейное подпро- странство Ср = {х Е R71: х = Pw}. Если матрица Р имеет вид (5.30), то базисом в пространстве Ср являются векторы а;, г = 1, т, так как в этом случае для любого вектора у Е Ср имеем У = Pw = Ar(AAr)-'Aw^ATd = '^diai, (5.34) 1=1 где d = (ААТ)“1 Aw, a di, i = 1, т, — координаты вектора d. Обозначим Р* = I — Р. Линейное подпространство Ср* всех векторов вида P*w, w Е Rn, является ортогональным дополнением линейного подпространства Ср, поскольку для любых w\, w2 Е Rn (Pwj, P*w2) = (wi, P(I - P)w2) = 0.
5.5. Метод проекции антиградиента 181 Поэтому вектор w1 = P*w ортогонален каждому вектору а^, i = 1, пг. Таким образом, вектор ортогонален нормальному вектору (ц Е Rn каждой гиперплоскости (а^, х) = bi, i = 1, m, ограничивающей мно- жество Q (5.29). Следовательно, направление, задаваемое вектором w1, параллельно этим гиперплоскостям и движение в этом направле- нии из любой точки х° Е О. не выводит за пределы множества Q. Линейные ограничения типа равенства. Пусть в задаче опти- мизации допустимое множество Q определено ограничениями типа равенства, т.е. имеет вид (5.29), а целевая функция /о(ж) дифферен- цируема в Rn. Предположим, что задана точка ж0 Е Q. Рассмотрим функцию ^у) = Мх° + Р*у\ уе®п, (5.35) где матрица Р определена соотношением (5.30). Для этой функции в силу правила дифференцирования сложной функции и симметрично- сти матрицы Р справедливо равенство* gracMy) = P*grad/0(®)> (5-36) где хну связаны соотношением х = х° + Р*у, х,у£р. (5.37) Теорема 5.2. Если у* — стационарная точка функции то соответствующая ей точка х* = х° + Р*у* (5.38) удовлетворяет необходимому условию минимума целевой функции /о(ж) на допустимом множестве Q вида (5.29). ◄ Прежде всего убедимся, что х* Е Q. Используя представление (5.38) и условие х° Е Q, заключаем, что (аг, ж*) = (а;, ®°) + (<ii, Р*У*) = (di, ®°) = bi, г = 1, т, поскольку вектор Р*у* ортогонален каждому вектору линейного под- пространства Ср, в том числе и векторам а^. Следовательно, ж* Е Q. ’Здесь и далее градиент функции трактуется как вектор-столбец.
182 Глава 5. Численные методы нелинейного программирования Так как у* является стационарной точкой функции то grad </?(?/*) = 0, и поэтому, учитывая равенства (5.30) и (5.36) при у = = у* и х = х*, находим P*&adf0(x*) = grad/o(®*) - Лт(ЛЛт)-‘ Agrad/o(®*) = т = grad/0(®*) + аГл = grad/0(®*) + ^2 Агаг = 0, (5.39) i=l где А = — (АА1)-1 Agrad/o(x*), а Лг — координаты вектора А е Rm. Представив ограничения (5.29) в виде fa(x) = (а;, х) — bi = 0, i = = 1, m, и учитывая равенства grad fa (х*) = ai, заключаем, что точка х* является стационарной точкой функции Лагранжа т Т(х,А) = /о(ж) + ^2Лг((аг,х)-^)! (5.40) г=1 т.е. удовлетворяет необходимому условию минимума целевой функции /о(х) на множестве Q (5.29). ► В соответствии с теоремой 5.2 стационарные точки целевой функ- ции fo(x) на допустимом множестве можно определять, решая задачу безусловной минимизации функции <р(у). В общем случае функция <р(у) может иметь несколько стационарных точек, причем каждой ее стационарной точке у* будет соответствовать стационарная точка х* (5.38) функции Лагранжа (5.40). При этом теорема 5.2 не гарантирует, что через минимизацию функции <р(у) можно найти все стационар- ные точки целевой функции. Однако если целевая функция является выпуклой функцией на выпуклом множестве Q, то для решения задачи минимизации такой функции достаточно найти хотя бы одну стацио- нарную точку целевой функции в Q, поскольку в любой стационарной точке выпуклая функция достигает наименьшего значения. Отметим, что строго выпуклая функция может иметь лишь одну стационарную точку, так как она может достигать наименьшего значения на выпуклом множестве только в одной точке. Пример 5.10. Применим теорему 5.2 для поиска минимума ква- дратичной функции /о(ж) = ж) с положительно определенной матрицей Q порядка п на множестве П вида (5.29).
5.5. Метод проекции антиградиента 183 Поскольку в данном случае grad /о (®) = Qx, то в соответствии с соотношениями (5.36) и (5.37) можно записать grades/) = P*Q(x° + Р*у). Из условия grad<p(?/*) = 0 получим СЛАУ P*QP*y - -P*Qx°, (5.41) которой должна удовлетворять стационарная точка т/* функции <р(у) (5.35). Остановимся на частном случае функции двух переменных. Пусть /о(ж) = fo(x\ ,Х2) = xj + xj, а допустимое множество задано одним ограничением Х2 = 2. Тогда Q = о\ 2 ) ’ а в представлении (5.29) т = 1, а] = (О 1)Т и Ь] = 2. Ограничению типа равенства удовлетворяет, например, точка х° = (2, 2), лежащая на прямой, задаваемой уравнением (aj, х) = 2, или Х2 = 2. В данном случае имеем А = = (0 1), ААТ = ajaj = |ai |2 = 1 и Р = АТ(ААТГ'А=0У 1.(0 1) = (° °); Р*_ т_ р_ < 1 °А <° °V f1 °Y Д ij \ 0 J’ 0\/2 0\/1 0\_/2 0\ 4 “Д оДо 2 До ОДД 0/ pwJ1 °V2 °V2W4>i г ~ д о До 2Д2ДД/ Система линейных уравнений (5.41) относительно координат точки У* = (у*, у2) принимает вид 2 0 оДу2Д -4\ 0/’
184 Глава 5. Численные методы нелинейного программирования или 2у^ + 0 • У2 = —4 и 0 • у* + 0 • = 0. Из первого уравнения находим у* = —2, а второму уравнению удовлетворяет произвольное значение т/2- Используя равенство (5.38), получаем * \ / (0) \ / * Ч /Ч / X / X / X V ।Х] । + р*(у*\ - (2 V (2 °W-2 V а) \y*J W Таким образом, х* = (0, 2) и /о(ж*) = 4. Это точка минимума функции /о(х) на прямой Х2 = 2, так как функция строго выпуклая. Полученный результат очевиден с геометрической точки зрения: х* = = (0, 2) является точкой касания прямой = 2 и линии уровня fo(x\ >х’2) — + х2 = 4 целевой функции (рис. 5.14). # Для поиска стационарной точки у* е Q функции <р(у) можно использовать численные методы безусловной оптимизации. В частно- сти, можно применить один из вариантов метода градиентного спуска. Однако при решении прикладных задач иногда удобнее минимизиро- вать исходную целевую функцию fo(x), поскольку координаты точки х 6 Rn являются параметрами оптимизации и имеют вполне опреде- ленную содержательную интерпретацию. Рассмотрим процедуру поиска минимума дифференцируемой це- левой функции /о(ж) на множестве Q (5.29). Выберем начальную точку х° G Q, вычислим в этой точке антиградиент w1 = — grad /о(ж°) и антиградиент р1 = P*wl функции ф(у) в точке у = w1. Если р] = = 0, то градиент функции р(у) в точке ш1 равен нулевому вектору, т.е. ш1 = у* — стационарная точка этой функции, а в силу теоремы 5.2
5.5. Метод проекции антиградиента 185 х° — точка, удовлетворяющая необходимому условию минимума це- левой функции на множестве Q (для выпуклой целевой функции ж0 — точка ее наименьшего значения на Q). При численном решении целесообразно считать у = w1 стацио- нарной точкой функции <р(у) при выполнении условия, аналогичного неравенству (3.3): |р! | < где > 0 — параметр точности поис- ка. Если |р‘ | е3, то вектор р1 определяет направление спуска для функции р(у) при ее безусловной минимизации. Но этот же вектор задает возможное направление спуска для целевой функции, если в соответствии с (5.37) для первой итерации записать ж1 = ж0 + X) = ж0 + xip1, X] > 0. (5.42) Действительно, точка ж1 принадлежит множеству Q при любом зна- чении Х|, так как, учитывая равенства (ai, Р*ш) = 0, i = 1, m, для любого вектора ш1 имеем (ai, ж1) = (ai, ж0) + (ai, P*w]) = (ai, ж0) = bi, i = 1, m. Поскольку с учетом равенств (5.31) и (5.32) (р1, grad/о (®°)) - w1) = -((Р*)2™1, w1) = = -(P*w',P*wl) = —|р1|2<0, вектор р1 задает направление спуска и для целевой функции, в котором ее значение уменьшается. Значение Х] в соотношении (5.42) можно найти с помощью ис- черпывающего спуска в направлении р1 или методом дробления шага, задаваясь некоторым первоначальным значением хо и при необхо- димости уменьшая его так, чтобы добиться выполнения неравенства /о(ж1) < /о(®°)- Это позволит начать формировать релаксационную последовательность {ж^’}. Найдя точку ж1 по соотношению (5.42), переходим ко второй итерации и т.д. На /с-й итерации, вычисляя в точке ж^’-1 е Q антиградиент wk = — grad/о ), находим возможное направление спуска pk = P*wk; в этом направлении (если \рк\ е3) ищем точку хк = + xkP*wk = хк~' 4- xfcpfc, > 0, (5.43) подбирая соответствующим образом значение х^. Можно показать, что хк е Q при любом значении хк. Следовательно, можно переходить
186 Глава 5. Численные методы нелинейного программирования к следующей, (/с+1)-й итерации. Если \рк\ < €3, то итерации прекращаем, полагая w* ~ wk и ж* « хк~1. Поскольку на каждой к-й итерации вектор рк является проекцией антиградиента wk целевой функции на ортогональное дополнение подпространства то описанную процедуру поиска минимума этой функции на множестве Q назовем методом проекции антигра- диента. Общий случай линейных ограничений. Пусть задача оптими- зации содержит линейные ограничения типа неравенства и равенства. В этом случае допустимое множество можно записать в виде Q = е IRn: (а;, х) i , (а;, х) = bi, i е 2°|, (5.44) где 2“ и 2° — конечные множества индексов. Множество Q (5.44) согласно замечанию 4.1 является выпуклым. Предположим, что на fc-й итерации точка хк~1 удовлетворяет равенствам (а^, хк~1) — bi = О, i G где Jk С 2 = 2“ U20 — некоторое подмножество множества 2 индексов всех векторов а; в представлении (5.44), причем 2° С Составим матрицу размера х п, строками которой служат матрицы-строки aj, i 6 Jk- Если RgX^ = п, то матрица A^Ak невырожденная и можно определить квадратные проекционные матрицы Pk — Д*. и = I - Рк порядка п. После вычисления антиградиента wk = — grad/o(®fc l) целевой функции fo(x) в точке хк~[ G Q находим рк = P£wk. (5.45) Отметим, что в записи (5.44) могут отсутствовать ограничения типа равенства, т.е. множество 2° индексов может быть пусто. Возможна ситуация, в которой на fc-й итерации все ограничения типа неравенства не являются активными. При этом = 0, т.е. пусто и множество /4» а хк~1 — внутренняя точка множества П, для которой (а;, хк~]) < bi при всех i е 2". В этом случае полагаем, что Р£ совпадает с единичной матрицей I порядка п, а в равенстве (5.45) рк = wk. Для внутренней точки антиградиент wk задает возможное направление спуска, по которому на этой итерации можно двигаться вплоть до границы (9Q выпуклого множества Q (на рис. 5.15 такая ситуация показана на плоскости). Чтобы найти точку хк е 5Q, в выражения
5.5. Метод проекции антиградиента 187 для ограничений типа неравенства в записи (5.44) подставим х = хк из соотношений (5.43) при = Г. bi (cLi, хк~х 4- = (a,i, я^-1) 4- хд.(аг, u/’), i e T~. Как видно, при (af,wfc) > 0 выбор > 0 ограничен значением bt(al5 хк~') —иначе ограничение с этим индексом будет нарушено. С учетом всех ограничений типа неравенства, для которых (a;, wk) > О, получим . bi~(ai,xk ’) хд. = тш----т2--т-т—- ieT+ (ai,wk) (5.46) где Z+ = {г е Z-: (a;, wk) > 0}. После вычисления хд. следует выбрать такое значение хд. 6 (0, хд.], которому соответствует точка хк = хк~] 4- хд.ш\ обеспечивающая возможно меньшее значение fo(xk) < fo(xk~}) целевой функции. От- метим, что можно выбрать хд. = хд, что соответствует пересечению направления антиградиента wk и гиперплоскостей, для которых отно- шение bi - (ab хк~[) (ai, wk) в представлении (5.46) оказалось наименьшим. В результате найдем точку хк = хк~} 4- хдк/ е Q (см. рис. 5.15). Но при этом возможно, что fo(xk) >
188 Глава 5. Численные методы нелинейного программирования Пусть 0. Если \рк\ S3 > О, то вектор рк определяет возможное направление спуска. При движе- нии в этом направлении не будут нарушены ограничения типа равен- ства и активные ограничения ти- па неравенства, но опять возника- ет опасность нарушения неактив- ных в точке хк~} ограничений (на рис. 5.16 это показано в двумер- ном случае при одном активном и двух неактивных ограничениях в точке хк~х\ В связи с этим ана- логично формуле (5.46) вычисляем значение bi — (ai, хк~') (5.47) iejfc+ \Q>i.Pk) где^+ = {zgT-: (ai,pfc) >0}, и затем в рекуррентном соотношении (5.43) подбираем € (0, х^] так, чтобы получить возможно меньшее значение fo(xk) целевой функции. После выбора значения х^ и нахождения точки хк можно переходить к следующей, (fc+ 1)-й итерации. Если \рк\ < ез, то при Jk = 0 итерации прекращаем и полагаем х* « хк~1, а при Jk ф 0 вычисляем вектор Хк = (AkATk)~'Akwk е (5.48) координаты i Е которого являются множителями Лагранжа в функции Лагранжа Lk(x, А) = /0(х) + Е • <5 49) iejk Если A-fc) > 0 для всех i е Jk \1°, т.е. для всех активных ограниче- ний типа неравенства, то согласно теореме 4.6 это означает, что точку хк~1 можно приближенно считать стационарной точкой функции Ла- гранжа (5.49) и можно положить х* « хк~1. Но если найдутся индексы
5.5. Метод проекции антиградиента 189 i С Jk \Т°, Для которых А^ < 0, то один из них (обозначим его J) сле- дует удалить из множества и для нового множества \ {j} индексов найти проекционную матрицу Р£ размера (тд. - 1) х п. Если при этом = 0, т.е. mk — 1 = 0, то Р£ = I. Покажем, что новый вектор рк = P£wk ненулевой и определяет возможное направление спуска на к-й итерации. Этот вектор можно представить в виде рк = wk — AjA , где А = (Ад^А^)-1 и Ад.— матрица размера (тд. - 1) хп, состоящая из матриц-строк а], г е Аналогично для вектора рк = 0 с учетом равенства (5.48) имеем рк = Pkwk = wk- АкХк = wk- X{k}aj - >^}<Ч = 0- (5.50) Предположим, что рк = 0, откуда wk = Ак\к = Под- , i&Jk ставляя wK в равенство (5.50), находим Е А’% - А'% - L A,'1’,., = + £ (Л<1> - Л,'1’).., =0, iejk ieJk ieJk т.е. нетривиальная (поскольку А^ / 0) линейная комбинация линейно независимых векторов a;, i е Jk, равна нулевому вектору. Это противоречие доказывает, что рк 0. Спуск в направлении вектора рк не нарушит ограничение (ау, ж) bj, которое при построении матрицы уже не рассматривается как активное, если < 0. Убедимся в этом, для чего умножим равенство (5.50) скалярно на вектор P£aj и запишем (P^aj,wk)-xf(p*kaj,aj)- £ =0- <5-51) Так как (P^Q>jy a>i) = 0, г е Jk>то сумма в левой части (5.51) равна нулю. Учитывая, что матрица Р£ симметрическая и неотрицательно определенная, из равенства (5.51) получаем (Pfa, wk) = (aj, P^wk} = (aj,pk) = xf\p*kaj, a:i) 0,
190 Глава 5. Численные методы нелинейного программирования поскольку А^ < 0. Следовательно, вектор рк задает возможное направление спуска. Если \рк\ < 63, то предстоит новая проверка условия прекращения последующих итераций, приводящая либо к завершению решения задачи, либо к удалению из множества еще одного индекса j, для которого множитель Лагранжа < 0, и построению очередной проекционной матрицы и т.д. Если же \pk\ €3, то для определения направления спуска, которое задано вектором рк, с помощью формул (5.43) и (5.47) проводим описанную выше процедуру выбора значения хд. и нахождения точки хк, что позволяет затем перейти к (fc+ 1)-й итерации. Пример 5.11. Решим методом проекции антиградиента задачу квадратичного программирования /о(^1 ,^2) = 2Я] + 2x2 ~ 2х\х2 — 4ж] — 6^2 —> min; < jej + Х2 — 2 < 0, х\ + 5^2 — 5 < 0, — х\ 0, — Х2 С 0. Целевую функцию представим в виде /о(ж) = (Qx> х) + (Ь, ж), где Вычислим антиградиент этой функции: w = — grad fo(x) = —Qx — Ь = / 4 — 2\ ( х\ \ / —4\ у —2 4 J ух2 J у —бу 4 — 4^1 + 2x2 6 + 2rr j — 4x2 (5.52) и в соответствии с записью (5.44) обозначим aj = (1 1) , b\ = 2, а2 = = (1 5)Т, &2 = 5, аз = (— 1 0)Т, ад = (0 — 1)Т и 63 = Ьд = 0. В качестве начальной точки возьмем ж0 = (0, 0), а параметр точности поиска 63 = = 0,1. Первая итерация. В точке ж0 в соответствии с равенствами (5.52) имеем w1 = (4 6) . В этой точке активны лишь ограничения неотрицательности параметров оптимизации х\ и Ж2, т.е. J\ = {3, 4}.
5.5. Метод проекции антиградиента 191 Поэтому Л1 =(а3 а4)т = 0\ 1) ’ 1 о р,* = /-р1 = ^ °). Так как р1 = P*w! = (0 0)\ то по формуле (5.48) вычисляем В данной задаче ограничения типа равенства отсутствуют, так что отрицательными оказались оба множителя Лагранжа при активных ограничениях типа неравенства. Удалим из множества J\ индекс i = 4 и для нового множества J\ = {3} найдем Л] = (— 1 0), А\Л]Т = = (-1 0)(-1 0)т=1, P^A^AMjVa^^ J)1(-1 0)=(J о)’ Теперь получим причем |р! | = 6 > £3 = 0,1, так что вектор р1 определяет возможное направление спуска. Для ограничений, неактивных в точке х° = (0, 0), вычислим (а|, р1) = 6 > 0, (а2? Р1) = 30 > 0. При этом Ь\ - (аь х°) _ 1 (ai,p') 3’ Ь2 - (а2, ж0) _ 1 (а2,р‘) 6 В соответствии с формулой (5.47) щ — 1/6, т.е. при спуске в направле- нии вектора р1 первым будет нарушено ограничение с индексом i = 2 (рис. 5.17).
192 Глава 5. Численные методы нелинейного программирования Рис. 5.17 Подставим х — xQ + хр1 в матричное представление целевой функции: X2 1 1 1 /o(®) = y(Qp ') + х(Ь,р') =v?i(x). Функция (х) принимает минимальное значение при . (*»>?') -1 1 (Qp‘,p') < Так как х* > xj, то полагаем Х| = xj = 1/6 и находим ж1 = ж0 + -I- xjp1 = (0, 1) (см. рис. 5.17). Вторая итерация. В точке ж1 = (О, 1) согласно равенствам (5.52) находим w2 = (6 2) . В этой точке активными являются ограничения с индексами г = 2 и г = 3, т.е. J2 = {2, 3}, Л2 = (а2,а3)Т=(_11 J), Р2* = 1-4(Л2а1)-'Л2 = 02 и р2 = 0. По формуле (5.48) вычислим Л2 = (Л2Л2)_| Л2ад2 = = (2/5 — 28/5)Т. Из множества J2 удаляем индекс г = 3, соответству- ющий отрицательному множителю Лагранжа, и получаем Л2 — (1 5), Д2Д2=(1 5)(1 5)Т = 26, р2* = /-л2т(л2л2т)-'а2 = 1(^ “Q и р2 = Р2 w2 = -^(5 - 1)Т, причем |р2| = \/26 > £3 = 0,1- Следо- вательно, вектор р2 определяет возможное направление спуска. Для
5.5. Метод проекции антиградиента 193 дальнейших вычислений на этой итерации длина вектора р2 не имеет значения, поэтому для упрощения примем р2 = (5 — 1 )Т. Для ограничений, неактивных в точке ж1 = (0, 1), вычисляем (ai, р2) = 4 > 0, (ад, р2) = 1 > 0. При этом Ь\ — (а|, х2) _ 1 Ьд - (ад, ж1) _ Кр2) 4’ (а4,р2) Таким образом, в соответствии с формулой (5.47) х2 — 1/4, т.е. при спуске в направлении вектора р2 первым будет нарушено ограни- чение с индексом i = 1 (см. рис. 5.17). Подставляя х = х1 4- хр2 в матричное выражение для целевой функции и учитывая симметричность матрицы Q, находим х2 /о(®) = y(Qp2,р2) + ,р2) + (b,p2) + (Ь, я:1)) = <?2(*0- Функция 9^2 (х) достигает минимального значения при = (Qa?i,p2) + (b, р2) _7_ _1 2 (<Эр2,Р2) 31 4 2 гг 7 2 I . —2 /35 24\ Поэтому принимаем х2 = — и получаем х = х1 + х2р = ( jp уу )• Третья итерация. В точке х2 по формуле (5.52) вычисляем w = — (1 5) и устанавливаем, что активным является лишь ограни- чение с индексом г = 2, т.е. Уз = {2}. Поэтому A3 = а2 = (1 5) = А2, (д3Аз)-' =26, р3* = и 3 з 1 ( 25 -5\ 32 /1 \ п = 1 я 15)=о. Так как |р3| — 0 < Ез — 0,1, то по формуле (5.48) находим Л3 = = (AjAj)-1 A3W3 = 1(1 5) • ^(1 5)Т = 1 > 0. Таким образом, единственный множитель Лагранжа в функции Лагранжа (5.49), име- ющей в данном случае вид Н - 9252 32 Л3(®,А) = /о(®) + зу((а2>ж) ~М>
194 Глава 5. Численные методы нелинейного программирования является положительным. Поскольку на этой итерации р3 = 0, точка х2 = (35/31, 24/31) является стационарной для функции Лагранжа. Квадратичная целевая функция /о(ж) с положительно определенной матрицей Q сильно выпуклая. Поэтому х2 = х* — точка наименьшего значения целевой функции при заданных ограничениях (см. рис. 5.17). В этой точке целевая функция принимает значение /о(ж*) — -т- 961 ^7,1613. Нелинейные ограничения. Если среди ограничений в задаче оптимизации есть нелинейные, то поиск минимума целевой функции /о(ж) на допустимом множестве Q усложняется. Предположим для определенности, что Q задано ограничениями gt(x) С 0, г = = 1,т, где (ji{x} — дифференцируемые функции. На fc-й итерации известна точка хк~} е Q. Составим множество индексов г, для которых г-е ограничение в точке хк~х активно, т.е. gt{xk~x) — 0. Предполагая, что матрицы-строки (grad^a^-1)) , i Е 2^, линейно независимы, составим из них матрицу А^. Тогда проекционная матрица Р* = I — А^Ад-А^.)-1 спроектирует антиградиент wk = = —gradf()(xk~1') целевой функции в точке хк~1 на направление, ортогональное всем градиентам grad^a^’""1), г Elk- Однако в общем случае может оказаться, что это направление не будет допустимым направлением спуска, поскольку оно будет касаться в точке хк~^ границы 5Q множества Q (на рис. 5.18 эта ситуация представлена на плоскости в случае одного активного ограничения в точке хк~х}. Ясно, что любое продвижение точки в найденном направлении спуска Рис. 5.18
5.5. Метод проекции антиградиента 195 может вывести ее из допустимого множества. В этой ситуации шаг спуска приходится сочетать с проектированием точки хк, полученной в результате этого спуска, на множество Q. Рассмотрим на конкретном примере некоторые особенности по- иска точки минимума целевой функции в случае, когда допустимое множество Q задано одним нелинейным ограничением типа неравен- ства, т.е. Q = {ж е д(х) 0}. Пример 5.12. Решим задачу выпуклого программирования ,Ж2) — — 4х| + ~ min; Ж| 4- Х2 — 2x2 0- В данном случае целевая функция является квадратичной, и ее можно записать в виде fo(x) = | (Qx, х) + (Ь, ж), где Единственное ограничение задачи имеет вид д(х) 0, где д(х\ ,^2) — - Ж] + ж| — 2x2- В качестве начальной возьмем точку ж0 = (0, 0), а в условии прекращения поиска \хк - xk~] | < 5] положим е = 0,01. Вычислим антиградиент целевой функции: w = -grad/о (ж) = ~Qx — b = ~~ у0 2 J у Х2 J -4 —2 4-4ж! \ 2 — 2x2 / и градиент левой части ограничения gradg(x) = (1 2х2-2)Т. (5.53) Остановимся подробнее на первой итерации при решении этой задачи методом проекции антиградиента. 1. Поскольку w1 = — grad fo(xk~]) = (4 2)Г и grad #(ж°) = = (1 —2) , то (w1, gradд(ж0)) =0, т.е. векторы wl и grad$^°) ортогональны. Значит, нет необходимости вычислять проекционную •матрицу F*, которая в данном случае является единичной, а р1 = - P*w] = w1 = (4 2)Т. I з
196 Глава 5. Численные методы нелинейного программирования 2. С помощью исчерпывающего спуска из точки ж0 в направлении вектора р] находим значение Xj = _ 5 (Qp1,?1) 18 и точку х1 = х° 4- Х]р' = Продвижение из точки х° в направлении вектора р1 выводит за пределы допустимого множества, так как идет по касательной к кривой Г, заданной уравнением д(х) = О, в точке ж0. В частности, д(х[) = > 0 и х] £ Q. о 1 3. Спроектируем точку ж1 Q на допустимое множество Q, т.е. найдем точку ж1 кривой Г, наименее удаленную от точки ж1. Эту точку можно найти, решая задачу минимизации функции Ф(г) = = ш1п|г - ж^р. Один из способов решения такой задачи — метод последовательных приближений, основанный на линеаризации огра- ничения д(х) = 0 в окрестности текущей точки zq согласно формуле (grad/(zo), ж — zo) = 0 и построении приближения с помощью про- ектирования на гиперплоскость по формуле (5.22). В результате приходим к рекуррентному соотношению В качестве начальной точки Жд итерационного процесса мож- но принять точку ж1, а условием прекращения процесса после- довательных приближений можно считать выполнение неравенства |ж| — ж|_] | < <5, где 5 > 0 — заданный параметр точности. При выпол- нении этого неравенства полагаем ж1 = ж1 и /(ж1) = /(ж].). Выбирая 6 = 0,01, получаем ж1 = (0,9211, 0,7191), при этом (Дж1) « 0,0003. 4. Проверяем условие прекращения итераций: I®1 -®°| = У(0,9211)2 + (0,7191)2« 1,168 >е = 0,01. Так как требуемая точность поиска еще не достигнута, поиск точки ж* Е Q минимума целевой функции /(ж) на множестве Q следует продолжить. Для этого переходим к п. 1, заменив точку ж0 на найденную на первой итерации точку ж1.
5.5. Метод проекции антиградиента 197 Результаты расчетов на первой и последующих трех итерациях приведены в табл. 5.3, траектория поиска точки ж* представлена на рис. 5.19. Таблица 5.3 к хк /(^) 1 2 3 4 (0,9211, 0,7191) (0,9976, 0,9512) (1,0000, 0,9995) (1,0000, 1,0000) -2,9086 -2,9976 -3,0000 -3,0000 1,168 0,244 0,048 0,0005 Таким образом, результат четвертой итерации с заданной точно- стью совпал с точным решением задачи х* = (1, 1). # При реализации изложенного алгоритма может возникнуть ситуа- ция, когда на очередной fc-й итерации будет выполняться неравенство fo(xk) т.е. будет нарушено условие релаксационности последовательности {аЛ}. В этом случае можно использовать мо- дифицированный алгоритм, в котором выбор значения проводится с помощью метода дробления шага, а не с помощью исчерпывающего спуска. Проектирование сопряженных направлений. Эффективность поиска точки х* Е Q минимума дифференцируемой целевой функции /о(ж), х Е Кп, на допустимом множестве Q можно повысить, если па каждой /с-й итерации возможное направление спуска определять не по антиградиенту wk = — grad fo(xk~1) в точке хк~1 Е Q, а по одному
198 Глава 5. Численные методы нелинейного программирования из сопряженных направлений, которые находят последовательно в процессе итераций. Рассмотрим допустимое множество вида Q = { х G : (ai, х) = bi, i = 1, т } , где векторы G линейно независимы. Согласно теореме 5.2, опре- делять точку минимума функции /о(ж) на множестве Q можно, решая задачу безусловной минимизации функции <р(р) = /о(ж° + Р*у), где х° е Q — начальная точка; Р* = I — А1 (АЛ1)-1 А — проекционная матрица порядка n; I — единичная матрица того же порядка; А — матрица размера т х п, составленная из матриц-строк ai, i = 1, т. Опишем метод сопряженных направлений применительно к поиску минимума функции Выбираем начальную точку у® = 0, соответствующую заданной начальной точке х°. На первой итерации направление спуска находим по формуле р1 = —gradc^?/0), на последующих — по формуле (5.54) | gradр(ук 2)|2 Спуск по выбранному направлению на каждой итерации осуществляем по стандартному рекуррентному соотношению yk = yk-]+^kpk\ HN, (5.55) где значение хд. можно выбирать либо с помощью исчерпывающего спуска, либо методом дробления шага. Условием прекращения ите- раций может быть выполнение неравенства \рк\ < S3, где S3 > 0 — параметр точности поиска. Описанную последовательность действий можно уточнить, ис- пользуя конкретный вид функции 99(7/) = /о(ж° + Р*у)- В данном случае grad <р(у) = F* grad/о (ж0 4- Р*у). Поэтомур1 = —P*grad/o(®0)- Вычитая из равенства хк = х® + Р*ук равенство хк~{ = х® + Р*ук~\ получаем хк — хк~1 = Р*(ук — — ук~[) = х^Р*рк. Таким образом, хк = хк~' + xkP*pk, к е N. (5.56)
5.6. Метод возможных направлений 199 Для направления спуска pk при k > 1, заменяя в формуле (5.54) градиенты функции соответствующими выражениями, находим к р* л f Ip*grad/o(®fc_1)|2 fc-1 p =-P el»d/0(. )+lp.gl.ad/()(xt-,)|2P (S.57) Подход, в котором используется проектирование сопряженных на- правлений, можно обобщить на случай, когда допустимое множество Q задано линейными ограничениями типа неравенства и линейными ограничениями типа равенства. Можно показать, что в этом случае для поиска точки минимума квадратичной функции требуется не более п итераций. 5.6. Метод возможных направлений Метод проекции антиградиента, а также проектирование сопря- женных направлений применимы только в случае, когда в задаче оптимизации присутствуют лишь линейные ограничения. Для этих методов характерно, что на очередной итерации движение из теку- щей точки в выбранном направлении спуска приводит к нарушению нелинейных ограничений. Чтобы указанные методы можно было применять в случае нелинейных ограничений, необходимо их модифи- цировать, используя такой алгоритм выбора возможного направления спуска, что перемещение точки по этому направлению на некоторое расстояние не будет приводить к нарушению ограничений задачи. Сначала рассмотрим задачу оптимизации, в которой целевая функ- ция /о(ж) непрерывно дифференцируема и ограничена снизу на допу- стимом множестве Q вида = {zeRn: gi(x) 0, i = (5.58) где gi(x) — непрерывно дифференцируемые функции. На /с-й итера- ции известна точка яЛ-1 е Q. Обозначим через множество индексов активных ограничений, т.е. тех индексов г, для которых дг(хк~}) = 0. Отметим, что если = 0, то яЛ’-1 — внутренняя точка множества Q. Рассмотрим вспомогательную задачу оптимизации, в которой не- обходимо найти минимальное значение функции ??(р) = max {(grad f0(xk~]),p), max (grad ft (яЛ-1), p) } (5.59)
200 Глава 5. Численные методы нелинейного программирования на множестве И4- векторов р= (р\ ... рп)Т, удовлетворяющих огра- ничениям \pj | 1, j = 1, п. Допустимое множество задачи оптимизации не пусто. Оно содержит нулевой вектор, на котором значение целевой функции рав- но нулю. Поэтому точная нижняя грань целевой функции р(р) на множестве Wk не превышает нуля. Поскольку множество замкну- то и ограничено, а целевая функция непрерывна, задача оптимизации имеет решение и функция р достигает наименьшего значения рк < 0 в некоторой точке рк. Отметим, что рассматриваемую задачу оптими- зации введением дополнительного переменного р можно представить как задачу линейного программирования 'р —» min; (grad/o(o!fc_|),p) 1 / А 1 \ (5.OU) (gradgi(хк~ ), р) д, ielk; J>j 1, 3 = j = l,n, которую можно решить, например, симплекс-методом. Предположим, что эта задача решена и получена точка минимума рк Е в которой рк < 0. Тогда вектор рк задает возможное направление спуска из точки хк~} Е Q. Действительно, из вида целевой функции (5.59) заключаем, что выполняются неравенства (grad/o(«fc-1),Pfc) < Vk < 0; (5-61) (gradpi(®fe_|), pfc) Pfc < 0, i&Tk- (5-62) Отсюда, в частности, следует, что рк / 0. Для каждой функции дДх), г Е учитывая ее дифференцируе- мость и равенство gi(xk~}) = 0, можем записать 9i(xk~l + арк) = д^хк~' + арк) - д^хк~') = = (gradp^a:^-1), apfc) + о(а). Отсюда, а также из соотношений (5.62) заключаем, что для любого ин- декса i Е Тк найдется такое > 0, что при а Е (0, а;) выполняется не- равенство gi(xk~} + арк) < 0. Но это же верно и для каждой функции gi(ж) при I £ Тку поскольку эта функция непрерывна и gi(xk~x) < 0.
5.6. Метод возможных направлений 201 Таким образом, если «о = min Qi > 0,то Qi(xk 1 + арк) < 0, i = 1, m, a G (0, cio). Это означает, что вектор рк определяет допустимое на- правление в точке хк~' е Q относительно множества Q. Повторяя рассуждения для целевой функции приходим к выводу, что число do > 0, если необходимо, можно уменьшить настолько, что при а ЕЕ (0, do) будет выполняться и неравенство fo(xk~' + арк)- fQ(xk~') <0. Поэтому вектор рк задает возможное направление спуска из точки xk~l G Q на множестве Q. Перемещение в этом направлении приводит на к-и итерации в точку Хк = хк~' + хкрк, хк € (0,хд.), (5.63) где хд. > 0 — наибольшее значение х, при котором верно соотношение хк~] + трк Е(1,тЕ (0, х]. Если Q — выпуклое множество, параметр хд. > 0 можно определить формулой хд. = шах{х > 0: хк~} + хрк Efi}. (5.64) Отметим, что в случае неограниченного множества Q (в том числе и выпуклого) для некоторых направлений спуска значение хд. может быть бесконечно. Различные способы выбора значения хд. приводят к различным вариантам описанного выше метода, который обычно называют мето- дом возможных направлений. Один из способов выбора хд. состоит в минимизации функции ^.(х) = fo{xk~^ + мрк) в полуинтервале (0, хд.], для чего можно использовать методы одномерной оптимиза- ции. Для целевой функции, удовлетворяющей условию |gradf0(x)-grad/0(у)| ^L\x-y\, x,y<=Q., где L > 0, полагают мк = min^, Наконец, если оценка значения хд. затруднена, можно применить метод дробления шагсг. выбрать некоторое исходное значение хо, найти при хд. = х0 по фор- муле (5.63) точку хк и, если хк П, то дроблением значения хд. добиться выполнения условия хк G П. После этого нужно проверить условие /о(ж/с) < /о(жА;_|) и, если оно нарушено, продолжить дро-
202 Глава 5. Численные методы нелинейного программирования бдение значения хд. до тех пор, пока это условие не будет выполнено. Если множество Q не является выпуклым, необходимо дополнительно проверять, не нарушается ли при последующем дроблении условие хк е Q. Вернемся к задаче минимизации функции (5.59) и рассмотрим случай, когда ее решением является точка рк со значением т/д. = — ^(р^) — 0- Равенство т/д. = 0 можно рассматривать как необходимое условие достижения в точке хк~} е Q минимума целевой функции /о(ж) на множестве Q. Действительно, если хк~} —точка минимума /о(ж) на Q, то в силу теоремы 4.6 существуют неотрицательные и не все равные нулю множители Лагранжа Ло и i е Тд.., для которых выполнено равенство Ло grad /о(х*) + ^2 Мгёгас15'г(ж*) = 0. (5.65) ieZk Из этого равенства, учитывая соотношения (5.61), (5.62) и неотрица- тельность множителей Лагранжа, заключаем, что 0= (Aograd/o(a*)+ 52 Мг grades*), Рк) = = Ло (grad/0(3:*), P^) + 52 sj %(a0 + 52 Mi)- Так как коэффициент при т/д. положителен, то 0. Но выше установлено, что т]ь 0. Значит, = 0. Итак, условие т/д. = 0 является необходимым для того, чтобы точка хк~} была точкой минимума /о(ж) на множестве Q. Можно показать, что условие т/д. = 0 будет достаточным при дополнительном предполо- жении, что функции /о(ж) И gi(x), i— 1, тп, являются выпуклыми, а множество Q имеет внутренние точки. Проведенные рассуждения показывают, что в качестве условия прекращения итераций в методе возможных направлений можно при- нять выполнение неравенства |т/д.| < 6Г/, где > 0 — заданный пара- метр точности поиска. Пример 5.13. Решим методом возможных направлений уже рассмотренную в примере 5.11 задачу квадратичного программиро- вания /о(^1 ,^’2) — + 2%2 ~ 2^1 ~ — 622 —> min; rr 1 + Х2 — 2 С 0, х\ + 5ге2 — 5^0, — х\ 0, — xi 0.
5.6. Метод возможных направлений 203 Каки в примере 5.11, целевую функцию представим в виде /о(х) = = (Qx, х) + (Ь, х), х € К2, где 4 —2 Ь = -4 -6 В соответствии с равенствами (5.52) ее градиент имеет вид grad/0(a3) = 4х| — 2x2 ~ 4 —2т । + 41’2 — 6 (5.66) Положим X = (Ж|, Х3) И (J\(ж) = X) + Х,2 — 2, (J2(x) = Х1 + 5.1'2 - 5, 93 (ж) = —Ж], 94 (ж) = —д'2 (это функции, задающие левые части огра- ничений задачи типа неравенства). Запишем градиенты этих функ- ций: grading) = (1 if, grad92(®) = (1 5)\ grad<73^) = (-1 0)', gradдд (ж) = (0 — 1) . Допустимое множество Q, заданное линейны- ми ограничениями, является выпуклым. Его изображение в плоскости Х| 0x2 (рис. 5.20) показывает, что оно ограничено. Выберем в качестве начальной точку ж0 = (0, 0) и параметр точности поиска еГ] = 0,01. Первая итерация. В точке ж0 в соответствии с формулой (5.66) имеем grad/o^0) — (—4 — 6) , а активными являются лишь ограничения неотрицательности переменных х\ и Ж2, т.е. множество индексов Т\ = {3,4}. Поэтому для поиска направления спуска из о 1/(0 (0\т точки х , определяемого вектором р = (pj р2 ) , следует решить задачу (5.60), т.е. минимизировать переменное ту на множестве, задан- ном неравенствами - 4pi - 6р2 < Т], -Р\^Г], -Р2^Т], |Р1| 1, (5.67)
204 Глава 5. Численные методы нелинейного программирования Наименьшее возможное значение т] ограничено в (5.67) вторым и тре- тьим неравенствами —р\ р и — р2 П при максимально допустимых значениях р\ — р2 = 1, т.е. г/ = — 1. При этом первое неравенство в (5.67) также будет выполнено. Таким образом, р1 = (1 1) , причем этот вектор определен однозначно. Ясно, что при движении точки х = х® + в направлении вектора р1 ограничения дз(х) < 0 и gi(x) < 0 неотрицательности переменных не будут нарушены. Найдем, при каких значениях х выполняются ограничения д\ (ж) С 0 и д2(ж) < 0. Учитывая вид функций д\ (ж) и ^2 (ж), запишем д\ (ж) = Ж]°) 4- хр^ 4- х^ 4- ~ 2 = 2х — 2 0, (ж) — х^ 4- + $х2^ + 5хр^ — 5 = 6х — 5 0. Отсюда следует, что х < X] = min {1,5/6} = 5/6. Значение xj выберем, минимизируя на отрезке [0,Х|] функцию <Р1(х) = /о(ж° + ХР*)- Учитывая вид функции fo(x) и найденный вектор р1, находим (м) = | (С(ж° 4- хр1), х° + хр1) + (Ь, ж° 4- хр1) = 2х2 - 10х. Минимума на отрезке [0,5/6] функция 991 (х) достигает при xj =xj = = 5/6. Значит, ж1 = ж0 4- xjp1 = (5/6, 5/6) и /о(ж1) — —125/18 « « 6,9444 (см. рис. 5.20). Вторая итерация. В точке ж1 по формуле (5.66) находим grad/о(ж1) = (—7/3 — 13/3) . Активным является лишь ограниче- ние д2 (ж) 0, так что множество индексов Т2 содержит лишь один номер 2. Следовательно, чтобы наити вектор р = (pj Р2 ) , за- дающий направление спуска из точки ж1, следует минимизировать переменное р на множестве W2, заданном неравенствами 7 13 Р1+5р2^р, IpiI^I, |р2| 1- (5.68) Умножив второе неравенство на 7/3 и сложив с первым неравенством, получим р у^2- Так как р С 0, то и р2 < 0. Теперь умножим второе неравенство на 13/15 и после сложения с первым найдем р\ — |^р,
5.6. Метод возможных направлений 205 т.е. р\ 0. Отсюда следует, что наибольшему возможному значению р] = 1 соответствуют наименьшее возможное значение р — — — и р2 — 5 1 = — —. При этом все неравенства в (5.68) выполнены. Таким образом, получаем р2 = (1 — 5/ 14)Т. При движении точки х = ж1 + >ср2 в направлении вектора р2 ограничение ^(ж) 0 не будет нарушено, поскольку оно является активным в точке ж1. Ограничение (ж) 0 также не нарушается, так как оно означает, что х\ 0, а в точке ж1 + хр2 для первой координаты (1) , (2) 5 , А о имеем + хр\ ' = - + х 0. Выясним, при каких значениях х выполняются ограничения д\ (ж) 0 и #4 (ж) 0, т.е. когда 51 (®) = 4-ж^ 4-хр^ -2 = | р4(®) = | °- Из этих неравенств следует, что х2 = 14/27. Функция «РгМ = ЛИ®1 + xp1) имеет вид <р2(х) = |(Q(®° + ХР2), ®° + ХР2) + (Ь, ®° + хр2) = 291 2_ Н 125 -’98"Х -14X-TF' На отрезке [0, х2] точкой ее минимума будет х2 = Поэтому ж2 = = ж1 + х2р2 = у^) и Л)(®2) ~ -7,0850 (см. рис. 5.20). Третья итерация. Используя формулу (5.66), вычисляем , , , 2\ ( Ю15 1373\Т grad/„(x ) = Так как в точке ж2 нет активных ограничений, то 2з = 0, и переменное р следует минимизировать на множестве, заданном неравенствами 1015 1373 I l^i I 1^1 DoZ /У 1 Иначе говоря, нужно найти минимальное значение левой части первого неравенства при условии, что выполнены два других неравенства.
206 Глава 5. Численные методы нелинейного программирования Ясно, что минимальное значение достигается при р\ = р2 = 1, т.е. р3 = (1 I)1, и минимальным значением р будет р = ~ —6.4622. При движении точки х = х1 + хр3 в направлении вектора р3 ограничения </з(х) ^0 и gt(x) 0, означающие неотрицательность переменных х\ и х*2, выполняются при любом х. Выполнение ограничений д\(х) 0 и ^(ж) 0 означает, что ( \ (2) , (3) , (2) , (3) э э 269 д\ (®) = х-j + ир\’ + х\ + хр2' - 2 = 2х - 0, д2(ж) = з-']2^ + + 5х^ + 5хр^ — 5 = 6х — 0. _ 7 Отсюда устанавливаем, что хз = « 0,0030. Функция <рз(х) = fo(x2 + хр3) на отрезке [0, хз] достигает наи- меньшего значения при Х3 = Х3. Поэтому 3 2 , 3 /2255 1877\ л х3 = xz + щр* = , — j « (0,9686, 0,8063) и/0(ж3)«-7,0975. Рассматриваемая задача с квадратичной целевой функцией не явля- ется сложной, и ее решение нетрудно найти аналитическими методами. Наименьшего значения на допустимом множестве целевая функция (35 24\ —, — 1 « (1,1290, 0,7742), при этом vooz. 31/ /о(ж*) — ~ “7,1613 (см. пример 5.11). Для приближения к точке ж* с заданной точностью 6^ потребуется еще довольно много итераций. Случай линейных ограничений. Остановимся на частном слу- чае, когда в задаче оптимизации допустимое множество П задано линейными ограничениями gi(x) = (ai, х) bi, i = 1, т. В этом слу- чае задачу поиска возможного направления спуска можно упростить, видоизменив ее следующим образом. На каждой /с-й итерации вектор р/с определяющий это направление, можно искать из условия минимума функции ^(р) = (grad/о (я^-1), р) на множестве Wfc = {pCRn: (аьр)^0,ге^; |pj| < 1, j =T7I}, (5.69) где Тд. — по-прежнему множество индексов, соответствующих ак- тивным ограничениям в точке хк~} G Q. Можно показать, что если
5.6. Метод возможных направлений 207 минимальное значение функции (/Др) на множестве W/. равно нулю, то точка удовлетворяет необходимому условию минимума целе- вой функции /о (ж) на множестве Q. Пр и м ер 5.14. Вернемся к задаче из примера 5.13 и решим ее, выбирая возможное направление спуска путем минимизации функ- ции £k(p) на множестве (5.69). Отметим, что в данном случае at = = gradgi(ж), i = 1,4; b\ = 2; = 5; 63 = 64 = 0. Результат выполнения первой итерации рассматриваемым методом останется таким же, как и в примере 5.13. В самом деле, если выбрать начальную точку ж0 = (0, 0), то получим <j(p) = (grad/o(#°)> р) — — ~^Р\ — 6^2, а множество W] будет задано неравенствами —р\ 0, —Р2 0, |р| | < 1 и |^21 1- Отсюда находим минимальное значение ((р1) = —10 при р1 = (1 1) и затем точку ж1 = ж0 + хр1 = (5/6, 5/6) (см. рис. 5.20). На второй итерации в точке ж1 = (5/6, 5/6) имеем &(р) = = (grad/o(cE1), р) = —7pi/3 - 13р2/3. Поскольку в точке ж1 активно лишь ограничение с индексом i = 2, функцию Сз(р) необходимо минимизировать на множестве W2, заданном неравенствами Pi+5p2^0, |Р1|^1, |р2|^1. (5.70) Множество W2 ограничено трапецией ABCD (рис. 5.21), а лини- ями уровня функции Сг(р) являются прямые, параллельные прямой 7р\ + 1 Зр2 = 0 (прямая ^2 — 0 на рис. 5.21), на которой эта функция имеет нулевое значение. Из геометрических соображений ясно, что функция Сг(р) принимает на множестве W2 наименьшее значение в точке р2 = (1 —1/5) и это значение равно —22/15. При движении точки х = х} 4- хр2 в направлении вектора р2 ограничение д2^х) 0, оставаясь активным, не нарушается. По-
208 Глава 5. Численные методы нелинейного программирования этому необходимо убедиться в выполнении ограничений д\ (х) 0 и ^д(х) < 0. Это означает выполнение условий д\ (®) = Я]1) + хр,2) + хр^ -2 = - | < 0, д^х) = - | < 0- Отсюда заключаем, что Х2 — 5/12. Поскольку , , , , I , 2ч 62 2 22 125 ^2(^) = /о(® +хР )= -77х-“Б-> ZD ID о функция 9^2(х) достигает наименьшего значения на отрезке [0, Jq] = = [0, 5/12] при х = Следовательно, Х2 = и х2 = ж1 + Х2Р2 = 1 об 1 об = /35 24 \ “ \31 ’ 317’ В точке х2 по-прежнему активно лишь ограничение с индексом i = 2. В этой точке в соответствии с формулой (5.66) grad/o^2) = / 32 160V „ = I — — ——I . Поэтому на третьей итерации необходимо миними- зировать функцию Сз(р) = (grad/о(ж ),р) = -—Р\ - -^Р2 на множестве W3 = W2, заданном теми же неравенствами (5.70). Линии уровня функции Сз(р) — прямые, параллельные прямой р\ + 5pi = = 0, на которой функция принимает нулевое значение. Но прямая Р\ + 5р2 — 0 проходит по стороне DC трапеции, ограничивающей множество W3 (см. рис. 5.21). Значения функции в точках трапе- ции, не лежащих на стороне ВС, положительны. Таким образом, минимальное значение функции Сз(р) равно нулю. Поэтому точка * 2 /35 24\ - ж = , — ) удовлетворяет необходимому условию минимума функции /о(ж) на допустимом множестве. А так как функция /о(ж) является выпуклой, допустимое множество П также выпуклое, то в точке ж* функция /о(ж) достигает наименьшего значения на множе- стве Q.
5.6. Метод возможных направлений 209 Случай нелинейных ограничений. На практике при наличии нелинейных ограничений обычно применяют несколько модифициро- ванные варианты метода возможных направлений. Дело в том, что при малых значениях \т)^\ направление спуска, задаваемое вектором рк, который находят из решения задачи линейного программирования (5.60), хотя и является допустимым с теоретической точки зрения, мо- жет быть неприемлемым с практической точки зрения, так как оно может оказаться почти ортогональным направлению антиградиента wk = — grad/о целевой функции. При близких к нулю значе- ниях направление спуска рк почти „касается" границы <90 множества Q. Поэтому значения а следовательно, и значения хд., будут весьма малыми, а сходимость процесса поиска минимума — очень медленной. Более того, возможно „зацикливание" алгоритма или сходимость последовательности {а^} к такой точке ж Е Q, в кото- рой не выполнены необходимые условия минимума. Один из способов ускорения сходимости метода возможных напра- влений заключается в том, чтобы при выборе возможного направления спуска учитывать все ограничения, а не только активные в точке хк~1. Для этого направление спуска рк на /с-й итерации находят как решение задачи минимизации 'р min; (grad/0(zfc-l),p) 5г(а?А:_1) +(grad5i(o:fc_|),p) < fari, i=\,m\ JPjl 1, j= Tn, где 0i > 0 — некоторые весовые коэффициенты. Так как в задании допустимого множества этой задачи оптимизации участвуют все ограничения типа неравенства исходной задачи, то направление спуска не испытывает резких изменений, когда от итерации к итерации изме- няется множество индексов активных ограничений. Это позволяет избежать зигзагообразной траектории поиска точки х* и уменьша- ет опасность „зацикливания" алгоритма. Можно показать, что и для этой модификации метода возможных направлений равенство г/д. = 0 является необходимым условием минимума целевой функции на мно- жестве Q. Недостаток описанной модификации метода возможных направле- ний состоит в том, что задача линейного программирования, на основе которой определяется направление спуска, усложняется, поскольку в 14 - 9252
210 Глава 5. Численные методы нелинейного программирования нее включаются все т ограничений. Существует промежуточная мо- дификация метода, в которой учитываются лишь так называемые е-ак- тивные ограничения в окрестности точки хк~1, т.е. такие ограничения, для которых в точке хк~} выполняется неравенство —ед. < (ji{xk~}) < 0. В этой модификации вместо множества индексов 2д. используют множество Гк = {г 6 {1,..., т}: -ек gi(xk~') 0}. (5.71) Значение > 0 следует выбирать так, чтобы оно было существен- но больше значения е^. Оно может меняться от итерации к итерации, но можно также считать, что =cq = const. Множество включает в себя множество Тд., но при этом с помощью выбора подходящего зна- чения ед. число е-активных ограничений можно заметно уменьшить по сравнению с общим числом ограничений. Поясним смысл введения е-активных ограничений на примере минимизации целевой функции fo(x) двух переменных при трех огра- ничениях gi(x) 0, г = 1,2, 3 (рис. 5.22,а). Пусть в точке xk~[ G П активно лишь первое ограничение, т.е. Тд. = {1}. Тогда из реше- ния задачи линейного программирования (5.60) получим направление спуска, задаваемое вектором рк и являющееся промежуточным меж- ду направлениями в точке хк~1 антиградиентов Wq = — grad fo (xk~1) и wk = — grad(?|(яЛ-1) целевой функции и функции д\(х) соответ- ственно. Но выбор значения хд. в (5.63) будет существенно ограничен, так как это направление спуска пересекает границу множества Q, определяемую ограничением с индексом i = 2, на малом расстоянии а б Рис. 5.22
5.6. Метод возможных направлений 211 от точки хк~}. Если учесть е-активные в этой точке ограничения (рис. 5.22,6), то будем иметь = {1,2}. Тогда решением задачи (5.60), в которой 2\. заменено на и учтено влияние антиградиента wk = — grad г;?(ж^"1), можно получить вектор рк, задающий более удачное направление спуска. Это направление позволяет на А*-й итера- ции сделать более длинный шаг на пути к точке х* минимума целевой функции на множестве Q. В общем случае решение zk = (рк, задачи линейного програм- мирования (5.60), в которой множество индексов Тд. заменено множе- ством 2£, будет удовлетворять одному из двух условий: туд. или —ед. < 77д. 0. Если выполнено первое условие, считают, что соответствующий значению туд. вектор рк задает достаточно удачное направление спуска, и этот вектор используют для нахождения очеред- ной точки хк. Если же выполнено второе условие, то полагают, что найденное направление спуска неудачно, и ищут другое направление спуска, уменьшая значение ед., например, вдвое. Уменьшение при- водит, вообще говоря, к сужению множества индексов в результате чего во вспомогательной задаче линейного программирования часть ограничений снимается, а допустимое множество расширяется. Есте- ственно предполагать, что на более широком множестве W/. можно найти более удачное направление спуска, которое будет удовлетворять первому условию. Процедура дробления может и не дать положи- тельного результата вплоть до выполнения неравенства |e^.| < ег/, что равносильно условию \т)^\ < £7] прекращения последующих итераций. Если множество П задано с помощью не только ограничений типа неравенства, но и q линейных ограничений типа равенства, т.е. {тЕ Rn: gi(x) < 0, г = 1, m\ Ах = b] , где А — матрица размера q х п, b Е R9, то это следует учесть во вспомогательной задаче линейного программирования, добавив в нее ограничение Ар = 0. Тогда при спуске в направлении, определяемом вектором рк, удовлетворяющим последнему ограничению, точка хк не выйдет за пределы допустимого множества Q. Действительно, согласно равенству (5.63) для любого значения хд. верно равенство Ахк = Ахк~} + *kApk = Ъ, поскольку Арк = 0, а точка хк~х по условию принадлежит множеству и, значит, удовлетворяет равенству Ахк~х = Ь. 14»
212 Глава 5. Численные методы нелинейного программирования При наличии г нелинейных ограничений вида fi(x) — О, I = 1, г, метод возможных направлений можно применить, если на каждой /с-й итерации линеаризовать эти ограничения в окрестности точки хк~]. Но тогда спуск в направлении, найденном этим методом, при любом значении хд. > 0 может выводить точку хк за пределы П. Это нарушение можно скорректировать, заменяя найденную точку ее проекцией на множество П. Другой подход состоит в том, чтобы ослабить нелинейные ограничения типа равенства, для чего полагают \fl (ж) | <5^, I = 1, г. По мере приближения к искомой точке т* ЕЙ минимума целевой функции на множестве Q значение 8^ > 0 можно уменьшать. 5.7. Методы последовательной безусловной минимизации Один из подходов к решению общей задачи нелинейного про- граммирования состоит в преобразовании ее в последовательность за- дач безусловной минимизации для сконструированных специальным образом вспомогательных функций. Методы, в которых используется такой подход, принято называть методами последовательной без- условной минимизации. Рассмотрим общую схему, лежащую в основе методов последова- тельной безусловной минимизации. Формально задача минимизации функции /(ж), определенной в Rn, на допустимом множестве Q экви- валентна задаче безусловной минимизации min (/(х) + 5п(ж)), (5.72) xeRn где <5q(x) — так называемая индикаторная функция множества Q: Г 0, х е Q; Sn(l) = t+oo, ^ta. Символ +оо на практике можно считать просто очень большим числом, превышающим, например, любое значение целевой функции на допустимом множестве. Точки минимума функций /(ж) и /(ж) 4-<5и(ж) на множестве Q совпадают, но индикаторная функция, даже если 4-оо трактовать
5.7. Методы последовательной безусловной минимизации 213 как большое число, имеет точки разрыва на границе допустимого множества. Это не позволяет применять для решения задачи (5.72) известные методы безусловной минимизации. Выход из этой ситуации состоит в построении такой последовательности непрерывных (или даже дифференцируемых определенное число раз) функций (Щх), что в каждой фиксированной точке х е lim 6k(x) = <5q(x). (5.73) /с—* ос Можно рассчитывать на то, что последовательность {жА }, составлен- ная из точек минимума xk функций /(х) 4- <^(х), сходится к точке минимума функции /(ж) 4- <5q(x). Таким образом, исходную задачу нелинейного программирования можно свести к последовательности задач безусловной минимизации. При таком подходе функции 5 к (ж) называют функциями штрафа, целевые функции f(x) 4- Й/Дх) в последовательности задач безуслов- ной минимизации — штрафными функциями, а методы, основанные на этом подходе, —методами штрафных функций. Построение последовательности {<5д.(ж)} сильно зависит от спо- соба представления допустимого множества и в общем случае может быть весьма сложным. Если допустимое множество Q задано огра- ничениями типа равенства и неравенства, штрафные функции можно строить, используя фигурирующие в ограничениях функции. В дан- ном случае выделяются два способа построения штрафных функций и соответственно две разновидности метода штрафных функций. Для первой разновидности метода характерным является совпа- дение функций штрафа с предельной функцией Jq вне допустимого множества П, т.е. <5д:(х) = 4-оо при х ф П. Это означает, что штраф- ная функция неограниченно возрастает при приближении точки х G Q к границе допустимого множества, а ее точка минимума (если суще- ствует) принадлежит допустимому множеству. Такую разновидность метода называют методом внутренних штрафных функций (также методом барьерных функций или методом внутренней точки), а функцию штрафа — функцией внутреннего штрафа или барьерной функцией. Для второй разновидности метода штрафных функций характерно совпадение функций штрафа с предельной функцией <5q(x) внутри Допустимого множества, т.е. 5д.(х) = 0 при х е Q. Это означает, что штрафные функции в П совпадают с функцией /(ж), а их точки
214 Глава 5. Численные методы нелинейного программирования минимума могут оказаться вне множества Q. В данном случае говорят о методе внешних штрафных функций (иногда — о методе внешней точки). При этом функции штрафа называют функциями внешнего штрафа. Рассмотрим вычислительные конструкции методов штрафных функций, наиболее широко применяемых в приложениях, считая, что допустимое множество Q задано с помощью системы ограничений типа неравенства в виде Q — {ж е К": дг(х) 0, i = 1, т } , (5.74) где <7г(ж), х е — непрерывные функции. Метод внутренних штрафных функций. Пусть допустимое множество Q содержит внутренние точки, т.е. точки, в которых все ограничения выполнены как строгие неравенства. Функцию внутрен- него штрафа строят таким образом, чтобы она была неотрицательной и принимала значение -hoc за пределами допустимого множества, т.е. ^(х) = < >0, -hOO, х е х Q \ 5Q. Роль функции штрафа состоит в создании „барьера^ вдоль границы допустимого множества. Чаще всего в качестве такой функции принимают = х(^\д^ (5.75) г=1 ИЛИ <5а.(ж) = -гд.^21п(-д^х)), (5.76) г=1 где последовательность коэффициентов > 0, называемых параме- трами штрафа, стремится к нулю при k ос. Можно показать, что если допустимое множество Q замкнуто и ограничено, то при выборе функций штрафа в виде (5.75) или (5.76) последовательность {ж£} точек минимума штрафных функций Л(ж) — /(ж) + <^-(ж), к е N, сходится к точке минимума целевой функции /(ж).
5.7. Методы последовательной безусловной минимизации 215 Применение метода внутренних штрафных функций состоит в последовательной минимизации штрафных функций Д.(х) = /(х) 4- + <5/с(ж) и построении последовательности точек минимума x*k этих функций. Итерационный процесс прекращается, если выполняется одно из условий останова |4 - | < е,, |Ж) - /(4_,)| < £2 (5.77) или оба вместе. Эффективность метода внутренних штрафных функций в значи- тельной степени зависит от выбора значений параметров штрафа т^. Общих рекомендаций здесь не существует. Часто параметры штрафа задают в соответствии с формулой = 12^1, где 7 > 1 — некоторый 7 фиксированный коэффициент. Тогда процесс оптимизации регулиру- ется начальным значением параметра штрафа vq и коэффициентом 7. Эффективность метода внутренних штрафных функций зависит не только от выбора параметров штрафа, но и от способа задания самих функций штрафа. Универсальных рекомендаций в этом вопросе также не существует. В одних случаях способ задания этой функции не оказывает существенного влияния, а в других — его влияние оказывается решающим. Пример 5.15. Методом внутренних штрафных функций решим задачу оптимизации ' f(x\ ,^2) — IO#? — 4яj Х2 4- 7д?2 — 4>/5(5rr] — Х2) - 16 —► min; ДЖ1 - I)2 + (х2 - З)2 - 4 0. Допустимое множество Q в этой задаче представляет собой за- мкнутый.круг с радиусом 2 и центром в точке (1, 3). Вводя функцию штрафа в соответствии с формулой (5.75) или (5.76), получим два ва- рианта штрафных функций: или = /(х-1 ,гг2) — rjt 1п(—<7(х*1 ,£Е2).
216 Глава 5. Численные методы нелинейного программирования Параметры штрафа определим соотношениями го = 32, = = r^-i/2, к е N. На рис. 5.23, а изображены линии уровня штраф- ной функции при значении параметра штрафа = 32, а на рис. 5.23, б — линии уровня функции при = 1. Рис. 5.23 Решение вспомогательных задач безусловной минимизации было проведено численно с применением метода Ньютона при выборе в качестве начальной точки х° = (1, 3). Поиск точки минимума х* е Q прекращался при выполнении второго условия (5.77) с параметром б2 = Ю~3. Результаты расчетов приведены в табл. 5.4, в которой N — число решенных задач минимизации штрафных функций в каждом варианте метода. Числа в двух последних колонках таблицы позволяют срав- нить значения TV-й штрафной функции в точке x*N ~ ж* и целевой функции /(ж) в этой же точке. Из табл. 5.4 видно, что в данном случае способ задания функции штрафа практически не влияет на эффектив- ность реализуемого алгоритма. Таблица 5.4 Штрафная функция N XN f N (xn) /(®«) fk (х) 17 (1,970, 1,254) -52,932 -52,957 А(х) 16 (1,970, 1,251) -52,997 -53,004 __
5.7. Методы последовательной безусловной минимизации 217 Пример 5.16. Найдем решение задачи квадратичного програм- мирования f(x\,х{) — 1 Orrf — 4х]Х2 + 7х*2 - 4v/5(5xj - ^2) — 16 —* min; х\ — 2 0, а?| + Х2 — 1 С 0. Граница допустимого множества Q для этой задачи изображена на рис. 5.24. Используя функции штрафа (5.75) и (5.76), получаем штрафные функции А(®) = /(xi ,х2)----Г-^-------------- 371—2 Х\ + Х2 — 1 И = /(*!,Яг)-rfe(ln(-(zi -2)) +ln(-(xi + х2- 1))). Параметры штрафа определим, как и в примере 5.15, соотношени- ями го = 32, гд. = г k- \/2,k € N. На рис. 5.25, а показаны линии уровня вспомогательной функции Д (ж) при rjt = 32, а на рис. 5.25, б — линии уровня вспомогательной функции Д(ж) при г/. = 1. Все расчеты проведены так же, как и в
218 Глава 5. Численные методы нелинейного программирования Рис. 5.25 примере 5.15, их результаты представлены в табл. 5.5 (обозначения в ней те же, что и в табл. 5.4). Таблица 5.5 Штрафная функция N Л(х) 25 (1,706, -0,706) -61,193 . -61,195 fk(x) 11 (1,704, -0,704) -60,796 -61,198 В данном случае способ задания штрафной функции оказыва- ет существенное влияние на эффективность реализуемого алгорит- ма. Предпочтительнее штрафная функция /(ж), применение которой позволяет найти точку ж* с заданной точностью путем решения значи- тельно меньшего числа вспомогательных задач минимизации штраф- ной функции. Метод внешних штрафных функций. В этом методе функция штрафа равна нулю на допустимом множестве Q и положительна за пределами допустимого множества, т.е. ( О, адаМ>0, xta Обычно функции штрафа строят в соответствии с формулой <5^(ж) = = гд.Ф(ж), где гд. > 0 — параметр штрафа, а Ф(ж) — функция, определенная на всем множестве RTl, равная нулю на допустимом множестве Q и положительная за его пределами. Последователь- ность параметров штрафа {г^} выбирают так, чтобы она стремилась х е Q;
5.7. Методы последовательной безусловной минимизации 219 к +оо при к —> оо. Это требование гарантирует сходимость последо- вательности функций штрафа к индикаторной функции допустимого множества Q. Если множество Q задано ограничениями типа неравенства, т.е. имеет вид (5.74), то в качестве функции штрафа обычно используют квадратичную функцию т 6к(х) = гк^(д+(хУ)2, (5.78) г=1 где <7г+(х) = тах{0,рг(аз)} — так называемая „срезка“ функции gi(x): + ( } = 1 °’ (Jl^X) ^°; 9l Х 5i(®)>0- Если допустимое множество О задано ограничениями, среди которых не только неравенства gi(x) О, i = l,m, но и равенства gi (х) = 0, i = 1, р, то функцию штрафа задают в виде т р = rfc ^2(<7г+(®))2 + П- Ых^2- г=1 г=т+\ В остальном метод внешних штрафных функций не отличается от метода внутренних штрафных функций. В частности, в методе внешних штрафных функций используют те же условия останова (5.77), что и в методе внутренних штрафных функций. Пр и мер 5.17. Решим методом внешних штрафных функций задачу из примера 5.15, выбрав в качестве начальной точку х° - = (0, — \/5) и условие останова |ж£ — х^_\ | < 5 с параметром точности поиска е = 10-3. В данном случае штрафные функции имеют вид А (х ।, х2) = ।, х2) + гк (д+ (х ।, х2))2, где д+(х\)%1) = |(д(х\,Х2) + |</(хд,^2)!)- Минимизация этих функ- ций проведена численно с применением того же алгоритма метода Ньютона, что и в примере 5.15. Параметры гр определены рекуррент- ным соотношением = 7^-1 + 2, к е N, 7‘о = 2. Результаты расчетов приведены в табл. 5.6, а траектория поиска точки минимума целевой функции изображена на рис. 5.26 сплошной линией. #
220 Глава 5. Численные методы нелинейного программирования Таблица 5.6 к к Xk 1 (0,386, -0,672) -33,568 8 (1,974, 1,230) -53,434 2 (0,652, 0,270) -38,698 9 (1,976, 1,234) -53,384 3 (0,899, 0,755) -40,109 10 (1,976, 1,236) -53,348 4 (1,263, 0,928) -46,877 11 (1,975, 1,237) -53,318 5 (1.694, 1,041) -53,222 12 (1,975, 1,238) -53,292 6 (1.852, 1,150) -53,501 13 (1,975, 1,239) -53,271 7 (1.954, 1,212) -53,551 14 (1,974, 1,240) -53,252 Методы штрафных функций выгодно отличаются от рассмотрен- ных выше методов проектирования и спуска простотой реализации и „сильными44 свойствами сходимости, на их разработку и совершен- ствование до сих пор затрачиваются значительные усилия. В то же время практическая реализация методов штрафных функций может приводить к трудностям принципиального характера. В основном
Вопросы для самопроверки 221 они связаны с топографией поверхностей уровня штрафных функ- ций А (ж): при увеличении номера /с, когда функция штрафа все больше приближается к индикаторной функции, графики штрафных функций приобретают все более выраженную овражную структуру. Это может приводить к большим вычислительным затратам при ре- шении вспомогательных задач безусловной минимизации и даже к прерыванию процесса вычислений ввиду потери точности. Для пре- одоления этих трудностей развиты модификации метода штрафных функций, свободные от указанных недостатков: метод штрафных оце- нок, метод модифицированных функций Лагранжа, метод штрафов с регуляризацией и др. Вопросы для самопроверки 1. Опишите известные вам численные методы нелинейного про- граммирования. Укажите их достоинства и недостатки, целесообраз- ность применения каждого конкретного метода в зависимости от вида допустимого множества и вида ограничений задачи. 2. Сформулируйте определение проекции точки на множество. Перечислите основные свойства операции проектирования на множе- ство. Как найти проекцию точки на замкнутое выпуклое множество? 3. Дайте определение идемпотентной матрицы и проекционной матрицы. Какую роль проекционная матрица играет в операциях проектирования на множество? 4. Что такое приведенный градиент? В каких задачах нелинейного программирования используется метод приведенного градиента? В чем различие между методом приведенного градиента и методом проекции антиградиента? 5. Какие ограничения задачи нелинейного программирования на- зывают активными, а какие — пассивными? Что такое ^-активные ограничения? 6. Что означают термины „штрафная функция44, „функция штра- фа44, „параметр штрафа44? Чем функция внутреннего штрафа отличает- ся от функции внешнего штрафа? Укажите способы задания функций штрафа.
Глава 6 МЕТОДЫ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Напомним, что задачей линейного программирования называют задачу оптимизации, в которой и целевая функция, и ограничения являются линейными. В такой задаче могут быть ограничения и типа равенства, и типа неравенства. Ее можно записать следующим образом*: п ^CjXj —> max; j=l п G'ij х j Ь{ 5 1, < 2=1 (6-1) п = bi, i = 7П| + 1, Ш2’, г=1 п i = Ш2 + 1, т. < 2=1 В задачах линейного программирования нельзя использовать клас- сические методы поиска локального экстремума, поскольку линейная функция не имеет точек локального экстремума. Такие задачи мож- но решать методами нелинейного программирования, но оказывается, что для них есть специальные и гораздо более эффективные методы решения. Хотя класс задач линейного программирования довольно узкий, такие задачи играют в прикладных областях важную роль. Дело в том, *Мы рассматриваем задачу линейного программирования как задачу максими- зации, отдавая дань сложившейся традиции. Напомним, что задачу минимизации легко преобразовать в задачу максимизации, изменив знак целевой функции.
6.1. Виды задач линейного программирования 223 что линейные математические модели представляют собой модели первого приближения, в которых связь различных факторов выражена самой простой функциональной зависимостью — линейной. В ряде областей (в частности, в экономике) реальные процессы определяются большим количеством факторов. В этом случае на первое место вы- ходит не вид зависимости между какими-либо параметрами модели, а общая структура таких зависимостей. Для описания каждой конкрет- ной зависимости достаточно линейной функции, а линейные модели становятся ключевыми. 6.1. Виды задач линейного программирования Выделим три вида задач линейного программирования. Задачу, представленную системой уравнений (6.1), назовем задачей линейно- го программирования общего вида. Во многих прикладных задачах переменные могут принимать только неотрицательные значения (см. пример 1.6). Условие нео- трицательности переменного (хотя это частный случай ограничения типа неравенства) часто рассматривают как самостоятельный вид ограничений. Ограничение типа „больше или равно“ всегда мож- но преобразовать в ограничение типа „меньше или равно“, умножив неравенство на — 1. Поэтому задачу общего вида можно записать сле- дующим образом: ' п CjXj —» max; J=1 п a-ijXj b-t, i= 1, тгг]; < j=\ п ^^ctijXj =bi, i = mj-l-1, m; J=1 JEi, 0, ..., Xir 0. (6.2)
224 Г лава 6. Методы линейного программирования Среди прикладных задач распространен частный случай задачи линейного программирования, в котором все переменные удовлетво- ряют условию неотрицательности и нет ограничений типа равенства. Такую задачу можно записать в виде Z П ^CjXj —> max; j=l < п ______________________ dijXj i= 1, m; i=l ,x\ 0, ..., xn 0. Эту задачу будем называть задачей линейного программирования в стандартной форме. Задачу линейного программирования, в которой все переменные удовлетворяют условию неотрицательности, а других ограничений типа неравенства нет, т.е. задачу вида ✓ п ^cjXj —> max; j=l < \ ________________________ CL'ijXj — bj, "h — 1, 77Т, i=l ^Х\ 0, . . ., Хп 0, назовем задачей линейного программирования в канонической фор- ме. Такая форма задачи удобна для построения методов оптимизации. В линейном программировании важную роль играют геометри- ческие представления и интерпретации (точнее, представления, вы- текающие из линейной алгебры). Так, вполне естественно набор переменных х\, ..., хп задачи линейного программирования рассма- тривать как n-мерный арифметический вектор х, записываемый в виде матрицы-столбца: х = (a?i,... ,тп) . Введем отношение порядка в Rn, полагая х у, если х^ уг, i = 1, п (т.е. каждая компонента век- тора х не превышает соответствующей компоненты вектора у). Тогда задачу линейного программирования в стандартной форме можно за-
6.1. Виды задач линейного программирования 225 писать с помощью матричных соотношений: (с, х) —> шах; < Ах Ь; х О, где А = (aij) — матрица коэффициентов левых частей ограничений, а Ь = (bi, 62, • • • , bm)T — вектор-столбец правых частей ограничений. Задачу линейного программирования в канонической форме также можно записать с помощью матричных соотношений: (с, х) —> шах; < Ах = Ь-, х 0. (6.3) Формально задача в стандартной форме и задача в канонической форме являются частными случаями задачи линейного программиро- вания в общей форме. Однако любую задачу линейного програм- мирования можно привести к стандартной или канонической форме. Покажем это. Пусть дана задача линейного программирования общего вида. Сначала преобразуем ее так, чтобы все переменные удовлетворяли условию неотрицательности. Здесь можно использовать два приема. Первый прием состоит в использовании имеющихся в задаче ограни- чений типа неравенства. Например, пусть переменное xi не связано условием неотрицательности, а в ограничении а^х^ + <212^2 + ••• ... + ainxn < b] коэффициент ai ] при переменном х\ отличен от нуля. Тогда, введя взамен X] новое переменное х\ = b\ — aj 1^1 + aj2^2 + • • • • • + Я]пхп, вместо рассматриваемого ограничения получим условие неотрицательности х\ 0. Второй прием более прост: любое переменное х^ не связанное условием неотрицательности, можно заменить разностью двух новых переменных х^ = х\ — я", каждое из которых удовлетворяет условию неотрицательности. Отметим, что первый прием не повышает размерность задачи (ина- че говоря, количество переменных) и с этой точки зрения более удобен на практике. Однако неочевидно, что использование этого приема по- зволяет получить условия неотрицательности для всех переменных. 15 — 9252
226 Глава 6. Методы линейного программирования Второй прием не только увеличивает размерность задачи, но и приводит к задаче, имеющей неединственное решение, так как опре- деленное значение х^ может быть реализовано парой значений х± и х'- бесконечным числом способов. В то же время второй прием позволяет, хотя и формально, но легко показать, что условия неотрицательности переменных по существу не ограничивают общности задачи линейно- го программирования. Если в задаче линейного программирования все переменные нео- трицательные, то для ее преобразования в стандартную форму нужно избавиться от ограничений типа равенства. Ограничения типа равен- ства в совокупности образуют систему линейных уравнений Ах = Ь. Разделим по отношению к этой системе все переменные на базисные и свободные. Базисные переменные единственным образом выража- ются через свободные. Это значит, что базисные переменные можно исключить из задачи линейного программирования, выразив их через свободные переменные и выполнив в целевой функции и ограниче- ниях соответствующие подстановки. В результате получим задачу, в которой оставшиеся переменные будут связаны условием неотрица- тельности и которая не имеет ограничений типа равенства, т.е. задачу в стандартной форме. Отметим, что от ограничений типа равенства можно-формально избавиться, заменив каждое двумя ограничениями типа неравенства. Например, ограничение ] j; । + di2^2 4" ... 4" (^гпхп — bi можно заменить двумя неравенствами <1/1 Т’1 + <2/2^2 + . .. + dinxn bi, Ui\X i + <2/2^2 4" • • • + O'in^n bi. Задачу линейного программирования в общей форме можно пре- образовать и в каноническую форму. Для этого, как описано выше, обеспечим условие неотрицательности для каждого переменного, а затем избавимся от ограничений типа неравенства. Для ограничения вида Щ1 х j 4- <2/2^2 4" ... 4" a>inxn bi введем новое переменное z = bi — (nja?i 4- &i2x2 4-... 4- (Цпхп). Тогда рассматриваемое ограничение естественным образом превращается в условие неотрицательности нового переменного. Повторив этот прием для каждого ограничения типа неравенства, придем к задаче линейного программирования в канонической форме.
6.2. Графический метод решения задач линейного программирования 227 6.2. Графический метод решения задач линейного программирования Если в задаче линейного программирования всего два переменных, то для решения задачи можно использовать геометрическую интерпре- тацию задачи. В этом случае ограничение типа равенства а^х\ 4- = bi на плоскости представляет собой прямую, а каждое ограничение типа неравенства аг] х\ 4- ^2 — полуплоскость. Если задача записана в стандартной форме cjZ] 4- С2Х2 —> шах; ацХ\ 4- ai2X2 bi, i = 1, т; > О, Х2 О, то допустимое множество G будет пересечением некоторого множе- ства полуплоскостей. Такое множество на плоскости представляет собой либо выпуклый многоугольник, либо отрезок (в вырожденном случае), расположенный в первом квадранте (рис. 6.1). Линии уровня целевой функции составляют семейство параллель- ных прямых, общим нормальным вектором которых является вектор с = (cj, С2) коэффициентов целевой функции. Перемещая прямую с таким нормальным вектором в направлении этого вектора, найдем ее крайнее положение, при котором она еще пересекает многоуголь- ник (прямая /* на рис. 6.1). Каждая точка пересечения этой прямой 15*
228 Глава 6. Методы линейного программирования с многоугольником изображает оптимальное решение задачи, а значе- ние функции, соответствующее этой линии уровня, есть максимальное значение целевой функции на допустимом множестве. Пр и мер 6.1. Рассмотрим задачу Зх 4- 2у —► шах; < 2х 4- Зу < 8, 2х 4- у 4, —+ х 0, т/ > 0. Это задача в стандартной форме с двумя параметрами оптимиза- ции. Ее решение представлено на рис. 6.2. Оптимальное решение изображено точкой М. Координаты точки М можно найти, решив систему уравнений 2х 4- Зу = 8, 2х 4- у = 4. В результате получим оптимальное решение задачи х* = 1, у* = 2. Оптимальное значение целевой функции равно /* = 7. # Рис. 6.2 Графический метод полезен и в задачах линейного программирова- ния с большим числом переменных. Предположим, задача линейного программирования имеет п параметров оптимизации и п — 2 незави- симых ограничения типа равенства. Эти ограничения в совокупности составляют систему линейных уравнений Ах = Ь. В силу предпо- ложения ранг матрицы системы равен количеству уравнений п — 2.
6.2. Графический метод решения задач линейного программирования 229 Следовательно, система имеет п — 2 базисных переменных и 2 сво- бодных. Выразив с помощью системы базисные переменные через свободные, получим задачу линейного программирования без ограни- чений типа равенства, имеющую всего два параметра оптимизации. Ее можно решить, применяя графический метод. Пр и м е р 6.2. Рассмотрим задачу линейного программирования {xj + х2 4- хъ + т4 —* шах; 2xj + 3x2 4- хз — х4 = 4, х\ — х’2 4- 2хз + хд = 5; Х\ О, Х2 О, Хз 0, Хд 0. В этой задаче, записанной в канонической форме, четыре пара- метра оптимизации и два ограничения типа равенства. В качестве базисных выберем переменные xi, х’2, а в качестве свободных — пе- ременные хз, хд. Решая систему двух ограничений типа равенства от- 7 2,19 3,3 6 носительно X), Х2, получим X] = — -Хз — — Хд 4“ ~, Х2 = -Хз 4- -Хд — -. Исключая переменные х\ и х^ из задачи, приходим к следующей задаче в стандартной форме: fl 6 13 -хз 4- -хд 4- —-> max; 7 2 19 < 5Ч + 514 * У 3 3 6 --ч-Г4«-5; кхз 0, хд 0. Последнюю задачу можно упрос- тить, удалив из целевой функции по- стоянное слагаемое, а также умножив целевую функцию и ограничения на 5 и сократив второе ограничение на 2: 'хз 4- бхд —> max; < 7хз 4- 2хд 19, —хз — хд С —2; чхз > 0, хд > 0. Решение задачи представлено на рис. 6.3. Оптимальному решению соответствует точка М с координатами х = 0, у — 9,5.
230 Глава 6. Методы линейного программирования 6.3. Основы теории линейного программирования Пусть дана задача линейного программирования в канонической форме. Ее можно представить в матричной записи (6.3). При этом полагаем, что матрица А системы ограничений имеет максимальный строчный ранг, т.е. ее ранг равен количеству строк т. Предположим, что базисный минор в матрице А можно выбрать в первых т столбцах. Представив матрицу А в блочном виде А = (А& АД где блок А^ состоит из первых т столбцов матрицы А, а блок As — из оставшихся столбцов, запишем систему ограничений задачи в виде Abxb + Asxs = b, (6.4) где xb — вектор-столбец, составленный из базисных переменных xi, ..., хт, a xs — вектор-столбец, составленный из свободных пе- ременных хт+\, ..., хп. Матрица Аь представляет собой базисный минор матрицы А и потому невырождена. Значит, матричное равен- ство (6.4) можно умножить на матрицу А^"1, что позволяет выразить вектор хь через вектор xs: хь = Аь (Ь-А5жД Таким образом, вектор (хь\ _ (A^'(b-Asxs)\ JU — I I — I I \ / удовлетворяет системе ограничений, а при х 0 является допустимым решением задачи линейного программирования. Особо выделим случай xs = 0. В этом случае вектор х имеет вид о 7 \ 0 / и называется базисным решением. Если базисное решение удовле- творяет условию неотрицательности, т.е. А^Ъ 0, то его называют допустимым базисным решением. Отметим, что базисное решение в общем случае не является единственным, так как базисный минор в
6.3. Основы теории линейного программирования 231 матрице можно выбирать по-разному. Однако таких решений конеч- ное число, определяемое количеством базисных миноров в матрице ограничений задачи. Оказывается, что оптимальное решение задачи линейного про- граммирования в канонической форме следует искать среди базисных решений. Открывается возможность найти оптимальное решение задачи путем перебора всех базисных решений. Для этого нужно проверить С™ миноров матрицы А порядка т, выбрав среди них базисные, а затем для каждого базисного минора построить соот- ветствующее базисное решение. Но этот подход неэффективен, а при больших размерностях задачи может оказаться практически не- осуществимым: величина С™ может оказаться слишком большой. Остановимся на свойствах базисных решений задачи линейного про- граммирования. Выберем две точки Ж] и и рассмотрим множество точек вида х = QX] + (1 — а)ж2, 0 < а С 1. Это множество на плоскости или в пространстве представляет собой отрезок. В общем случае оно также называется отрезком в Rn. Точки Ж), х^ называются концами отрезка, остальные точки отрезка — внутренние. Точка х выпуклого множества М С называется крайней точ- кой этого множества, если она не является внутренней точкой како- го-либо отрезка, целиком содержащегося в М. Любая крайняя точка является граничной точкой выпуклого множества, но очевидно, что не все граничные точки являются крайними. Множество может не иметь крайних точек (например, полуплос- кость в R2). Однако известно, что любое замкнутое ограниченное выпуклое множество М С имеет крайние точки, причем любая точка х Е М может быть представлена в виде выпуклой комбинации крайних точек Ж],..., х^ множества М, т.е. в виде X = Q] Х\ + С^2х2 + • • • + &kxk" где все коэффициенты неотрицательны и в сумме дают 1. На таком множестве линейная функция достигает минимума в одной из крайних точек, хотя, возможно, есть точки минимума, не являющиеся крайними. Отметим, что допустимое множество задачи линейного програм- мирования, в частности задачи в канонической форме, является вы- пуклым множеством, как пересечение выпуклых множеств Ax = b
232 Глава 6. Методы линейного программирования и х 0. Отсюда вытекает важная роль крайних точек допустимого множества в задаче линейного программирования. Лемма 6.1. Допустимое решение ж = (х-| хг ... ;тп)Т задачи линейного программирования в канонической форме (6.3) является крайней точкой множества допустимых решений тогда и только тогда, когда система всех столбцов матрицы А, отвечающих ненулевым значениям Xi,i = 1, п, линейно независима. ◄ Можно считать, не теряя общности, что вектор х имеет вид X = (х\ Х2 ... хг 0 ... 0)Т, Xi ф 0, i — 1,72. (6.5) Если вектор х не является крайней точкой допустимого множества, то существует такой ненулевой вектор и и такое достаточно малое число 6 > 0, что вектор х + tu, \t\ < J, принадлежит допустимому множеству, т.е. А(х + tu) = b,x + tu^ 0. Последнее равенство, запи- санное в виде х —tu, позволяет сделать вывод, что все компоненты Ui вектора и с номерами i = r+1, п равны нулю, так как для таких ком- понент имеем неравенства гц 0 (при положительных значениях t) и —Ui С 0 (при отрицательных значениях t). Поскольку х принадлежит допустимому множеству, выполняется равенство Ах = Ь. С учетом равенства А(х + tu) = Ъ заключаем, что Аи = 0. Последнее равенство можно записать в виде CL 172 j -Н ^2 ~ит ~“Н1 -|~ 1 * • • ^ti — , а с учетом доказанных соотношений щ = 0, i = r+1, п, а\и\ 4-0/2U2 + arur = 0. (6.6) Из соотношения и ф 0 вытекает, что одно из чисел щ, i = 1, г, не равно нулю. Тем самым показано, что если вектор х вида (6.5) не является крайней точкой допустимого множества, то столбцы aj, &2,..., аг линейно зависимы. Предположим, что столбцы а\, 0,2, ..., аг линейно зависимы. Тогда существуют коэффициенты щ, ..., иг, одновременно не равные нулю, для которых выполняется равенство (6.6). Рассмотрим вектор и — (iz] ... иг 0 ... 0) . Равенство (6.6) означает, что Аи = — 0. Следовательно, А(х + tu)~Ax~b для любого числа t, т.е. вектор х + tu удовлетворяет ограничениям типа равенства задачи
6.4. Симплекс-метод 233 (6.3). Покажем, что при малых значениях t этот вектор удовлетворяет и условию неотрицательности. Пусть р = max \uj\. Тогда р > 0. 1=1,7' |сс ’ I --- Положим 8 = min —. Так как Xi > 0, i = 1, г, то 8 > 0. При этом при 2=1,7’ Р \t\ < 5 выполняются неравенства ^2 — Hlnd > xi ~ xi — 8р 0. Следовательно, х 4- и 0, \t| < <5, и вектор х не является крайней точкой допустимого множества задачи (6.3). ► Теорема 6.1. Допустимое решение задачи линейного программи- рования в канонической форме является допустимым базисным тогда и только тогда, когда оно представляет собой крайнюю точку допусти- мого множества задачи. ◄ У допустимого базисного решения ненулевыми могут быть только те компоненты, которые отвечают базисным переменным, т.е. система столбцов матрицы А ограничений, отвечающих ненулевым компонен- там вектора, есть часть системы базисных столбцов, а потому линейно независима. Следовательно, допустимое базисное решение есть край- няя точка допустимого множества. У крайней точки х допустимого множества количество ненулевых значений не превышает ранга матрицы ограничений А, а значит, коли- чества ограничений т. Сооответствующие столбцы матрицы А линей- но независимы, и их можно дополнить до набора базисных столбцов матрицы А. Всем оставшимся столбцам будут соответствовать нуле- вые компоненты рассматриваемого вектора х. Следовательно, вектор х является базисным решением. Поскольку он принадлежит допусти- мому множеству, то он есть допустимое базисное решение. ► 6.4. Симплекс-метод Согласно результатам, изложенным выше (см. разд. 6.3), поиск оптимального решения задачи линейного программирования в кано- нической форме следует искать среди допустимых базисных решений, или, что то же самое, среди крайних точек допустимого множества за- дачи. Полный перебор допустимых базисных решений неэффективен, но можно процесс поиска оптимального решения строить, переходя
234 Глава 6. Методы линейного программирования от одного допустимого базисного решения к другому В этом состоит суть симплекс-метода. Симплекс-метод можно проиллюстрировать следующим образом. Пусть требуется максимизировать линейную функцию в области, огра- ниченной выпуклым многогранником в R3. Систему координат можно выбрать так, что целевая функция будет иметь вид f(x\, #2, ^з) — а > 0. При таком расположении системы координат задача заключает- ся в поиске самой высокой точки многогранника (имеется в виду, что высота определяется третьей координатой жз). Ясно, что такая точка является вершиной многогранника (правда, возможен случай, когда точками максимума будут все точки некоторого ребра или некоторой грани; но и в этом случае в качестве решения можно выбрать вершину многогранника). Процесс поиска можно построить так. Выбираем одну из вершин многогранника в качестве начальной. На каждом шаге мы из текущей вершины переходим в одну из соседних (т.е. вершин, соединенных с текущей ребром многогранника), выбирая среди таких вершин самую высокую. Если текущая вершина расположена выше всех своих соседей, то эта вершина будет оптимальной. Рассмотренная задача — частный случай задачи линейного про- граммирования, в которой допустимое множество — внутренность многогранника — описывается системой линейных неравенств. Ка- ждая вершина многогранника — это крайняя точка допустимого множества. Вершину многогранника можно определить как точку пересечения трех примыкающих к ней граней; алгебраически это озна- чает, что в системе ограничений типа неравенства по крайней мере три выполняются как равенства. Если ограничение типа неравенства удо- влетворяется в данной точке как равенство, его называют активным ограничением. А если оно удовлетворяется как строгое неравенство, то его называют неактивным (пассивным} ограничением. Итак, вершина многогранника — это точка допустимого множе- ства, в котором по крайней мере три ограничения активны. Переход по ребру в соседнюю вершину состоит в замене одной из трех определя- ющих граней новой (две сохраняющиеся грани определяют прямую, на которой расположено ребро многогранника, соединяющее текущую вершину с новой). С алгебраической точки зрения замена грани пред- ставляет собой смену активного ограничения. Все описанные представления относятся к любой задаче линей- ного программирования, в том числе и к задачам в канонической
6.4. Симплекс-метод 235 форме. В таких задачах есть тп ограничений типа равенства и п условий неотрицательности, являющихся ограничениями типа нера- венства. Конкретная крайняя точка (допустимое базисное решение) определяется системой из п - тп активных ограничений, или, други- ми словами, нулевыми значениями п - тп переменных. Отметим, что приведенные рассуждения нестрогие и обходят стороной некоторые особые ситуации. Так, допустимое базисное решение — это не толь- ко п — тп нулевых значений переменных, но и условие базисности остальных переменных (соответствующие столбцы матрицы А систе- мы ограничений должны быть линейно независимыми). В свете изложенного процесс поиска оптимального решения мож- но представить себе как последовательный переход от одного допу- стимого базисного решения к „соседнему44 допустимому базисному решению, дающему большее значение целевой функции. „Соседство44 состоит в том, что новое допустимое базисное решение получается из исходного заменой одного из свободных переменных; иначе гово- ря, из базиса выводится одно переменное и в него включается другое, которое до этого было свободным. Остановимся подробнее на указанном переходе. Полагаем, что текущее допустимое базисное решение х имеет вид = (ж, 1° • • • 4 ° • • • °) > т.е. базисными являются первые тп (по количеству ограничений) переменных X], ..., xm. Совокупность базисных переменных будем называть базисом задачи линейного программирования. Выводимое из базиса переменное. Предположим, что перемен- ное Xi, i < тп, выводится из набора базисных, а свободное переменное Xj, j > тп, вводится в набор базисных. Заданное допустимое базисное решение (точнее, заданное разде- ление переменных на свободные и базисные) позволяет исключить базисные переменные из задачи следующим образом. Пусть, как и выше (см. разд. 6.3), = (aj, ..., am) — матрица из базисных столб- цов матрицы А ограничений задачи, = (am+\, ..., ап) — матрица свободных столбцов этой матрицы, хь = (zj ... хп) — вектор-стол- бец базисных переменных, xs = (xm+\ ... хп) — вектор-столбец свободных переменных. Тогда систему ограничений задачи можно записать в виде (6.4). Из этого представления получим хь -Ль А§х^ — Аь Ь.
236 Глава 6. Методы линейного программирования Введем обозначения: As = Ab ^s, Ь = Аь ХЪ. Это позволяет несколько упростить систему ограничений: хь 4- Asxs = Ь. (6.7) Пусть am+i, ат+2? •••> — столбцы матрицы As (номера столбцов совпадают с номерами соответствующих переменных). При замене в базисе переменного Х{ на переменное Xj нужно использовать нулевое значение переменного Xi и неотрицательное значение Xj. Из г-й строки соотношений (6.7), учитывая, что все свободные перемен- ные, кроме Xj, нулевые, получаем Xi + HijXj = bi, где — элемент матрицы А в i-й строке и (J — т)-м столбце. Нулевое значение Xi порождается значением Xj = bi/aij. Отметим, что bi совпадает со зна- чением Xi при нулевых значениях всех свободных переменных, т.е. с компонентой х® исходного допустимого базисного значения. Зна- чит, bi 0 и условие неотрицательности Xj равносильно неравенству aij > 0. Впрочем, возможен случай bi = 0. Тогда при х3; = 0 и Xi = 0. В этом случае происходит замена в базисе одного нулевого переменного другим, а допустимое базисное решение на самом деле не изменяется. Чтобы замена в базисе переменного Xi на переменное Xj снова при- водила к набору базисных переменных, должно выполняться условие Случай, когда хотя бы одно из базисных переменных xs, s = 1, т, имеет нулевое значение bs, является с точки зрения симплекс-метода особым. В этом случае говорят о вырожденном допустимом базис- ном решении. Если базисное решение вырождено, то этому решению соответствуют несколько наборов базисных переменных. Если задача линейного программирования имеет хотя бы одно вырожденное допу- стимое базисное решение, ее называют вырожденной. При изменении значения Xj все базисные переменные изменят значения. Исходное значение переменного xs есть х® и совпадает с bs. Согласно равенству (6.7) при Xj = bi/получаем ; Л . bi Xs — 6g asjxj — bg Ogj Л Qij Условие неотрицательности переменных в новом векторе таково: bs — 63j~^Q} (6.8)
6.4. Симплекс-метод 237 Это условие автоматически выполняется для тех номеров s, для которых asj 0. Поэтому можно ограничиться множеством Sj номеров s, для которых asj > 0. Для таких номеров неравенство (6.8) равносильно неравенству Ь с Ь-i ---- -—> т—, s=l,m. (6.9) Q'sj Итак, среди всех базисных переменных xs, s = 1, т, выводимое переменное Xj отличается тем, что, во-первых, величина положи- тельна, а во-вторых, среди всех таких переменных имеет наименьшее отношение bi/aij. Эти условия позволяют легко определить выво- димое переменное х^, если уже известно вводимое переменное Xj. Как правило, переменное х^ однозначно определяется переменным Xj\ для этого достаточно, чтобы минимальное значение отношения bs/asj, s е Sj, достигалось только для одного номера s. Вводимое в базис переменное. Теперь обсудим, каким образом следует выбирать вводимое в базис переменное Xj. Есть очевидное ограничение: должен быть хотя бы один индекс i т, для которого aij > 0. Но еще не учтено условие, что при переходе к новому базисному решению целевая функция не должна убывать. Целевую функцию /(ж) = (с, х) представим в виде /(ж) = стж, используя для записи скалярного произведения матричную запись. Разделив вектор- столбец с на блоки Q и cs так же, как и вектор х, можем записать /(ж) = СЬХЬ + csxs. Используя равенство (6.7), из записи целевой функции можем исключить базисные переменные: /(ж) = сь(Ь- Asxs) + = c^b + (с* - CbAs)xs = = c[b + (cs - Л^сь) xs = f + d1 xs, где f = cbb — значение целевой функции на допустимом базисном решении ж0; d = cs — — вектор симплекс-разностей, соответ- ствующих свободным переменным.
238 Глава 6. Методы линейного программирования Если переменное Xj получает значение Xj = bjjaij, а остальные свободные переменные остаются нулевыми, то целевая функция при- мет значение /(®) = f + djXj = f + dj^-. aij Изменение значения целевой функции /(а?) - /(ж0) = djXj = dj^- aij положительно, если dj > 0. В принципе можно выбирать в качестве вводимого в базис пе- ременного Xj любое свободное переменное, у которого симплекс- разность положительна. Наибольшее приращение целевой функции достигается при введении переменного, для которого максимальна ве- личина dj^-. Но чтобы вычислить эту величину, нужно определиться aij и с выводимым переменным, т.е. фактически построить новое допу- стимое базисное решение. Но если уже имеется лучшее допустимое базисное решение, то зачем возвращаться к прежнему? Можно исполь- зовать более простой подход, выбирая среди всех симплекс-разностей наибольшую. Замечание 6.1. Если все симплекс-разности dj неположительны, то для любых значений хт+], , хп п /(®) = f + dTxs = f + djXj f = f(x°). j=m+\ Следовательно, допустимое базисное решение х° — оптимальное решение задачи. Если же есть положительные симплекс-разности dj, а допустимое базисное решение х° невырождено, то, выбрав номер j с dj > 0, а затем выбрав номер i выводимого из базиса переменного, получим новое допустимое базисное решение х1, для которого/(х1) > /(ж0). Значит, невырожденное допустимое базисное решение, дающее хотя бы одну положительную симплекс-разность, не является оптимальным решением.
6.4. Симплекс-метод 239 Условие неположительности симплекс-разностей можно записать в виде cs < ATsCb, или cs < А^А^1)1^. Введя обозначение 7 = = (А^1)7^, придем к неравенству cs AJ7. Поскольку заключаем, что (сь\<(А^\(А1л \ С® / \ / \ / Таким образом, допустимое базисное решение оптимально тогда и только тогда, когда с^ЛТ7- (6.Ю) Вектор 7 = (А^-1 )Tq будем называть вектором оценок. Особо отметим случай вырожденного допустимого базисного ре- шения. В этом случае смена базиса не вызывает изменения допусти- мого базисного решения и фактического продвижения к оптимальному решению не происходит. Избегая этой ситуации, можно попробовать изменить вводимое в базис переменное, выбрав другую положитель- ную симплекс-разность. Но это не всегда возможно. Сама по себе смена базиса для данного допустимого базисного решения не страш- на, однако может случиться, что после перебора нескольких базисов данного допустимого базисного решения произойдет возврат к уже рассматривавшемуся базису. Произойдет зацикливание, которое не позволит завершить процесс решения задачи несмотря на то, что коли- чество допустимых базисных решений и количество базисов в задаче конечно. На практике такое происходит редко, но можно исключить и эту редкую ситуацию, если все базисы определенным образом упо- рядочить, используя для этого в первую очередь значение целевой функции на соответствующем допустимом базисном решении, а во вторую очередь состав переменных, входящих в базис. Тогда бази- сы не будут повторяться. Можно показать, что при наличии поло- жительных симплекс-разностей уточненный итерационный процесс перехода от одного допустимого базисного решения к другому при- ведет к новому „большему44 базису. Следовательно, итерационный процесс рано или поздно остановится, и произойдет это в момент, когда для очередного базиса все симплекс-разности окажутся не- положительными. Это будет означать получение оптимального ре- шения.
240 Глава 6. Методы линейного программирования Алгоритм применения симплекс-метода. Применение сим- плекс-метода предполагает, что изначально известно какое-либо до- пустимое базисное решение х° задачи, которое называют начальным допустимым базисным решением. Для этого решения выбира- ют начальный базис преобразуют ограничения задачи в форму (6.7), разрешенную относительно базисных переменных, и исключа- ют базисные переменные из целевой функции, вычисляя тем самым симплекс-разности dP- для начального базиса. Далее на каждой итера- ции процесса производят смену базиса в соответствии со следующей процедурой: 1) среди симплекс-разностей выбирают положительную dj (если таких несколько, можно выбрать максимальную); номер j симплекс- разности указывает переменное, которое будет вводиться в базис; 2) отбирают все номера s базисных переменных, для которых элементы dsj положительны, и среди них выбирают номер г, для которого отношение bs/asj минимально. Этот номер определит выводимое из базиса переменное; 3) корректируют систему ограничений задачи и целевую функцию, исключая из уравнений переменное Xj, уже не являющееся свободным; при этом в уравнениях появляется новое свободное переменное Xi\ корректировка приводит к новым параметрам aSj9 bs, dj. Процесс вычислений удобно реализовать в матричной форме, за- писывая параметры вычислений в специальную таблицу, называемую симплекс-таблицей. В симплекс-таблице т + 1 строка и п 4- 1 стол- бец. Строки симплекс-таблицы соответствуют базисным переменным и целевой функции, столбцы — всем переменным задачи и правым частям ограничений (они же — значения базисных переменных теку- щего базиса). Порядок строк таблицы не является существенным, но каждая строка соответствует определенному базисному переменному или целевой функции. Поэтому в записи таблицы используется стол- бец с заголовками строк. Строка, соответствующая целевой функции, располагается либо первой, либо последней. Для удобства исполь- зуют и заголовки столбцов, хотя столбцы занимают фиксированное положение, и можно было бы обойтись без заголовков. Пример симплекс-таблицы для набора базисных переменных х\,..., хт пред- ставлен в табл. 6.1. Рассмотрим использование симплекс-метода на конкретном при- мере.
6.4. Симплекс-метод 241 Таблица 6.1 ь Х| х2 Хщ Хт+ 1 •Т/i Х1 Ь, 1 0 0 ,m+1 O-ln Х’2 г>2 0 1 0 ^2,т+1 &2п хт 0 0 1 Qm,m+ 1 -/ 0 0 0 0 ^т+1 dn Пример 6.3. Рассмотрим задачу линейного программирования '/(xj ,х'2) = Зх। — Х2 —> max; < 2xi — 4, xj — 2x2 ^2, xj + Х2 < 5; X] О, Х2 0. Запишем задачу в стандартной форме (у\ = х\,у2 = Х2,уз,У4,У5 — новые переменные): {Зу\ ~ У2 max; 2у\ ~У1+Уз> =4, г/1 — 2?/2 + 3/4 = 2, 3/1+3/2 4-3/5 = 5; 2/fc^O, fc=l,5. В качестве начального можно использовать допустимое базисное решение Y = (0 0 4 2 5) , на котором целевая функция принимает нулевое значение. Базисными переменными являются уз, у4, у$. Заполним начальную симплекс-таблицу (табл. 6.2). Таблица 6.2 ь У\ У2 Уз У4 У5 Уз 4 2 -1 1 0 0 У4 2 1 —2 0 1 0 У5 5 1 1 0 0 1 -f 0 3 -1 0 0 0 Наибольшая положительная симплекс-разность равна 3 и распо- ложена в столбце у\. Значит, у\ — вводимое в базис переменное. Все 16 - 9252
242 Глава 6. Методы линейного программирования три элемента столбца у\, соответствующие базисным переменным, положительны, для поиска выводимого из базиса переменного нужно 4 2 5 тт сравнить три отношения -, у, у. Наименьшее значение имеют первые два отношения. Значит, из базиса можно выводить переменное у?, или переменное 1J4. Остановимся на втором варианте. Итак, вводимое переменное у\, выводимое уд. На пересечении строки у4 и столбца у\ находится число 1 (в табл. 6.2 оно выделено полужирным шрифтом), которое называется ведущим элементом симплекс-таблицы. Строка 3/4, в которой находится ведущий элемент, называется ведущей строкой. Для преобразования симплекс-таблицы на 1-й итерации необхо- димо, используя ведущую строку, обнулить все элементы столбца у\, кроме ведущего. Ведущий элемент должен преобразоваться в 1, для чего ведущую строку достаточно разделить на ведущий элемент. Ре- зультаты преобразований представлены в табл. 6.3. Таблица 6.3 ь У\ У2 Уз У4 У5 Уз 0 0 3 1 -2 . 0 У\ 2 1 —2 0 1 0 У5 3 0 3 0 -1 1 -f -6 0 5 0 -3 0 После 1-й итерации осталась одна положительная симплекс-раз- ность в столбце т/2- Ведущей является строка ?/з (ведущий элемент в ней выделен). Обращаем внимание на то, что в результате 1-й итера- ции получено вырожденное допустимое базисное решение, поскольку в столбце Ъ присутствует нулевой элемент (естественно, он оказыва- ется в ведущей строке). Выбрав выводимое из базиса и вводимое в базис переменные, преобразуем симплекс-таблицу, обнуляя в столбце выводимого переменного все элементы, кроме ведущего. Результаты 2-й итерации представлены в табл. 6.4. После 2-й итерации имеем единственную положительную сим- плекс-разность, расположенную в столбце у4. Ведущей строкой является ?/5. Результаты 3-й итерации представлены в табл. 6.5. В табл. 6.5 все симплекс-разности отрицательны. Значит, эта симплекс-таблица соответствует оптимальному решению. Значения базисных переменных указаны в столбце Ь, их имена — в первом
6.4. Симплекс-метод 243 Т а б л и ц а 6.4 ь //1 У2 Уз !/4 У5 Z/2 .71 //5 0 2 3 0 1 0 1 0 0 1/3 2/3 -1 -2/3 -1/3 1 0 0 1 -f -6 0 0 -5/3 1/3 0 Таблица 6.5 ь У\ У2 Уз ?/4 У2 2 0 1 0 2/3 У\ 3 1 0 1/3 0 1/3 7/4 3 0 0 -1 1 1 -./ -7 0 0 -4/3 0 -1/3 столбце. Свободные переменные имеют нулевые значения. Таким образом, с помощью симплекс-метода получено оптимальное решение у* = (3 2 0 3 0) . В столбце b также присутствует оптимальное значение — 7 целевой функции с противоположным знаком. Теперь нетрудно вернуться к исходной задаче линейного програм- мирования, учитывая, что z/з, ij4, — это дополнительные перемен- ные, а т/i и 1/2 — переменные исходной задачи. Итак, х\ = у\ = 3, •г2 — //2 — 2. Решение задачи графическим методом представлено на рис. 6.4. Рис. 6.4 ф © © © © 3^ = 0 х2 = 0 2а?1-т2=4 х1-2х2=2 Х1+х2 = 5 16*
244 Глава 6. Методы линейного программирования Отметим, что крайняя точка (2, 0) допустимого множества задачи расположена на пересечении трех прямых, отвечающих трем актив- ным ограничениям. Именно эта крайняя точка и привела в задаче канонического вида к вырожденному допустимому базисному реше- нию, которому соответствуют три пары свободных переменных: у2 и 2/3, 2/2 и 7/4, 2/з и 2/4. Иначе говоря, указанное допустимое базисное решение имеет три базиса. Попав в точку (2, 0) после 1-й итерации, мы имели свободные переменные у2 и ?/4, что на рис. 6.4 соответствует прямым с теми же номерами. Выбор переменного у2 для ввода в базис означает переме- щение в новую крайнюю точку по ребру, определяемому оставшимися свободными переменными, т.е. по прямой с номером 4. Однако на этой прямой нет ни одной стороны многоугольника. В результате мы остались в этой крайней точке, но сменили пару прямых, ее определя- ющих. Замена 2-й прямой на 3-ю позволила на следующей итерации по 3-й прямой попасть в вершину, соответствующую оптимальному решению. # 6.5. Построение начального допустимого базисного решения В некоторых случаях начальное допустимое базисное решение можно получить путем непосредственного анализа ограничений за- дачи. Например, пусть задача линейного программирования имеет вид (с, х) —> шах; Ах Ь; х О, где Ь 0, т.е. в задаче нет ограничений типа равенства, все ограничения типа неравенства имеют вид „меньше или равно44, причем их правые части неотрицательны. После приведения к каноническому виду задача будет иметь вид (с, х) —> шах; Ах + у = Ь, х 0, 1/^0,
6.5. Построение начального допустимого базисного решения 245 где у — вектор-столбец дополнительных переменных. Нетрудно увидеть, что вектор (жт ?/т)т, для которого х = 0, у = Ь — Ах, есть допустимое базисное решение. Именно таким способом получено начальное допустимое базисное решение в примере 6.3. На практике, когда задача содержит сотни ограничений и тысячи переменных, таким способом построить начальное допустимое базис- ное решение сложно. Существует общий метод решения этой задачи. Он состоит в решении некоторой вспомогательной задачи линейного программирования. Пусть дана задача линейного программирования в канонической форме (с, х) —» шах; < Ах = Ь‘, ^0. Полагаем, что в этой задаче матрица А типа т х п имеет макси- мальный строчный ранг т и все компоненты bi вектора b правых частей ограничений неотрицательны. Рассмотрим вспомогательную задачу ' - У\ - У1 - • • • - Ут max; < Ах + у = Ь\ х 0, 2/^0, где у = (у\ У2 • Ут) — вектор-столбец искусственных перемен- ных. Как было отмечено, можно сразу указать допустимое базисное решение вспомогательной задачи: х = 0, у = Ь. Целевая функ- ция вспомогательной задачи не превышает нуля. Можно показать, что в силу этого рассматриваемая задача достигает максимума. Ес- ли максимальное значение целевой функции вспомогательной задачи равно нулю, то, как легко увидеть, для любого оптимального решения вспомогательной задачи искусственные переменные равны нулю. Зна- чит, любое оптимальное решение вспомогательной задачи дает (после удаления искусственных переменных) допустимое решение основной задачи.
246 Глава 6. Методы линейного программирования Зная начальное допустимое базисное решение вспомогательной задачи, симплекс-методом найдем ее оптимальное базисное реше- ние. В этом решении из п + т переменных в нуль обращаются п переменных, включая все искусственные переменные. Следователь- но, совокупность основных переменных содержит п - т нулевых переменных, а столбцы матрицы Л, соответствующие ненулевым переменным, линейно независимы. Это означает, что, удалив из оптимального базисного решения вспомогательной задачи искусствен- ные переменные, получим допустимое базисное решение основной задачи. Отметим, что во многих случаях задача линейного программи- рования в канонической форме получается из поставленной задачи введением дополнительных переменных на каждое ограничение типа неравенства. Вспомогательная задача формируется дополнительным введением искусственных переменных. Общее количество фиктивных переменных, отсутствующих в исходной задаче, может быть довольно значительным, а это усложняет вычисления. Количество фиктивных переменных можно сократить, введя ис- кусственные переменные только для части ограничений. Пусть дана задача линейного программирования общего вида (6.1), в которой все правые части неотрицательны. Выполнения этого условия можно до- биться, умножая, если необходимо, неравенства и уравнения на -1 и соответствующим образом упорядочивая их. Преобразуем эту зада- чу в каноническую форму, добавив в ограничения типа неравенства дополнительные переменные: Z 71 Y/W шах; 7 = 1 77 ^/W'j ^yi = bi. i= Lmi; 71 = bi, i = 77? 1 4- 1 , 77/2? 7=1 77 -- Ui =-bi, i = mz+l.m. < ?=1 (6.И)
6.5. Построение начального допустимого базисного решения 247 Формируем вспомогательную задачу, при этом искусственные переменные вводим только во второй и третий блоки ограничений: < 771 — Zi —> max; i=m । + 1 n +tji = bi, i = < i=' 71 aijXj + Zi = bi, i = m\ + l, m2; i=i 71 '^aijXj - iji + Zi = bit i — m2+\, m. < 7=1 В этой задаче допустимое базисное решение имеет вид Xi = 0, i = 1, m; !bi, i = 1, тп\; 0, i = + Zi = bi, i = mj-hl, m. Найдя оптимальное базисное решение этой задачи и удалив из него искусственные переменные, получим допустимое базисное решение задачи (6.11) канонического вида. Пример 6.4. Рассмотрим задачу линейного программирования '3xi +4^2 max; <Х|+Х2^2О, —2*1+4x2^20, xj 10, х*2 5; (6.12) Xj > 0, х2 0. Для преобразования задачи в стандартную форму вводим четыре дополнительных переменных: '3x1 + 4x2 ~* max; Х| +1-2 + У1 =20, -Х| +4ж2 + У2 = 20, < (0.13) х\ ~Уз = 10, х2~У4 = 5; ^1,12^0, У1,У2,УЗ,У4>0.
248 Глава 6. Методы линейного программирования (6.14) В исходной задаче можно ограничиться введением искусственных переменных во второе и третье ограничения, являющиеся ограниче- ниями вида „больше или равно“ с неотрицательной правой частью. Вспомогательная задача содержит восемь переменных (из них два ис- кусственных) и имеет вид ' — 23 — 24 —► шах; х\ + х2 + У\ = 20, -х\ + 4z2 + У2 = 20, Х\ — Уз + z3 — 10, Х2 — У4 + ~4 — 5; чТ|,гг2^0, 7/l,Z/2,Z/3,Z/4 0, 23,24 ^0 Допустимым базисным решением вспомогательной задачи явля- ется вектор со значениями переменных х\ = х2 = 0, у\ = у2 = 20, Уз — Уа — 0, 23 = 10, 24 = 5. Базисными переменными будут т/|, т/2, г3, 24. Вспомогательную задачу линейного программирования решаем симплекс-методом с использованием симплекс-таблиц. Ограничения уже представлены в нужной форме, остается исключить базисные переменные из целевой функции. Выражаем базисные переменные 23, 24 через свободные: 23 = 10 — 37] +7/3, Z4 = 5-z2 + ?/4. Таким образом, целевая функция имеет вид (^ = —15 + 37] +х2 -Уз -У4- Решение вспомогательной задачи представлено в табл. 6.6. Итак, максимальное значение целевой функции равно нулю. Сле- довательно, допустимое множество задачи (6.13) непусто. Из вспо- могательной задачи получаем допустимое базисное решение задачи (6.13): Х[ = 10, х2 = 5, у\ = 5, т/2 — Ю> Уз — Уа — 0. Целевая функция после исключения базисных переменных имеет вид f = 50 + 3?/з + 4т/4. Решение задачи (6.13) представлено в табл. 6.7. Оптимальное решение задачи (6.13) имеет вид X} = 12, х2 = 8, У\ — У2 = ®> Уз = Ъ Уа — Ъ. Ему соответствует оптимальное значение целевой функции f = 68. Оставляя только основные переменные X] и х2, получаем оптимальное решение исходной задачи (6.12): xi = 12, х2 = 8; соответствующее значение целевой функции f = 68.
5. Построение начального допустимого базисного решения 249 Таблица 6.6 Итерация Базисные переменные ь Т| .г? У\ У2 Уз Z/4 z3 z4 У1 20 1 1 1 0 0 0 0 0 У2 20 -1 4 0 1 0 0 0 0 п z3 10 1 0 0 0 -1 0 1 0 V z4 5 0 1 0 0 0 -1 0 1 -V 15 1 1 0 0 -1 -1 0 0 У\ 10 0 1 1 0 1 0 -1 0 У2 30 0 4 0 1 -1 0 1 0 1 .Т1 10 1 0 0 0 -1 0 1 0 1 Z4 5 0 1 0 0 0 -1 0 1 5 0 1 0 0 0 -1 -1 0 У\ 5 0 0 1 0 1 1 -1 -1 У2 10 0 0 0 1 -1 4 1 —4 X*! 10 1 0 0 0 -1 0 1 0 Z .г*2 5 0 1 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 -1 Табл и ц а 6.7 Итерация Базисные переменные ь Х‘| .г? У\ У2 Уз У4 У\ 5 0 0 1 0 1 1 У2 10 0 0 0 1 -1 4 0 X । 10 1 0 0 0 -1 0 Х’2 5 0 1 0 0 0 -1 -/ -50 0 0 0 0 3 4 У\ 5/2 0 0 1 -1/4 5/4 0 У4 5/2 0 0 0 1/4 -1/4 1 1 Х\ 10 1 0 0 0 -1 0 Х2 15/2 0 1 0 1/4 -1/4 0 -f -60 0 0 0 -1 4 0 Уз 2 0 0 4/5 -1/5 1 0 У4 3 0 0 1/5 1/5 0 1 2 Х\ 12 1 0 4/5 -1/5 0 0 Х’2 8 0 1 1/5 1/5 0 0 -68 0 0 -16/5 -1/5 0 0
250 Глава 6. Методы линейного программирования 6.6. Двойственная задача линейного программирования Рассмотрим задачу линейного программирования в стандартной форме f (с, ж) —> max; Ах Ь; кх 0. (6.15) Задача линейного программирования f (Ь, и) —* min; < АТи с; (6.16) и 0 называется двойственной задачей по отношению к задаче (6.15). В стандартной форме двойственную задачу можно записать следующим образом: f (—Ь, и) —> max; < -АТи^-с- (6.17) 1 и 0. Отметим, что, записав задачу линейного программирования, двой- ственную к задаче (6.17), придем к исходной задаче (6.15). Таким образом, отношение двойственности является симметричным, т.е. ка- ждая из двух задач является двойственной по отношению к другой. Теорема 6.2. Если прямая (6.15) и двойственная (6.16) задачи ли- нейного программирования имеют непустые допустимые множества, то для любых их допустимых решений хии выполняется неравенство (с, х) (Ь, и), (6.18) т.е. значение целевой функции прямой задачи не превышает значения целевой функции двойственной задачи.
6.6. Двойственная задача линейного программирования 251 ◄ Отметим очевидное утверждение: если х 0, у 0, то (ж. у) О (имеется в виду стандартное скалярное произведение в R'1). Отсюда, в частности, вытекает, что если х\ х^ у (х\,у) (а?2, у), т.е. векторные неравенства можно скалярно умножать на неотрицательный вектор. Пусть ж и и — допустимые решения прямой и двойственной задач. Тогда в соответствии с формулировками этих задач имеем Ах С b и Ати с. Умножим первое из этих равенств скалярно на вектор и: и Ах = (и, Ах) (и, Ь) = (Ь. и). Умножая второе равенство скалярно на х 0, получаем аналогич- ные соотношения: и Ах = (4еи)1 х = (А1 и, х) (с, х). Сопоставляя две цепочки неравенств, получаем неравенство (6.18). ► Следствие 6.1. Если целевые функции прямой (6.15) и двойствен- ной (6.16) задач линейного программирования имеют на допустимых решениях х* и и* одинаковые значения, то эти решения являются оптимальными. ◄ Пусть (с. х*) = (Ь, и*). По теореме 6.2 для любого допустимого решения х прямой задачи имеем (с, х) (Ь, и*) = (с. х*). Следовательно, на векторе х* целевая функция прямой задачи до- стигает максимума, и этот вектор является оптимальным решением. Аналогично можно показать, что и* — оптимальное решение двой- ственной задачи. ► В силу доказанной теоремы любое значение целевой функции двойственной задачи дает оценку сверху оптимальному значению це- левой функции прямой задачи, и наоборот, любое значение целевой функции прямой задачи есть оценка снизу оптимального значения целевой функции двойственной задачи. Следствие указывает на то, что оптимумы в двух задачах могут совпадать. На самом деле такое
252 Глава 6. Методы линейного программирования совпадение происходит всегда. Более того, оптимальное решение пря- мой (двойственной) задачи можно легко получить, зная оптимальное решение двойственной (прямой). Отметим, что если допустимые мно- жества прямой и двойственной задач непусты, то возможные значения целевой функции прямой задачи ограничены сверху, а двойственной — снизу. Как отмечено выше, в этом случае и прямая, и двойственная задачи имеют оптимальные решения. Теорема 6.3. Если допустимые множества прямой (6.15) и двой- ственной (6.16) задач непусты, то они имеют оптимальные решения х* и и*, причем оптимальные значения целевых функций двух задач совпадают: (с,ж*) = (Ь, и*). ◄ Пусть х* — оптимальное решение прямой задачи (6.15). Тогда х* = (х* у*) — оптимальное решение задачи т с х —> шах; Ах у = Ь, х 0, 1/^0. Вводя обозначения с = (с 0)Т, А = (Л Е), х — (х у)\ приходим к задаче с х —> max; < Ах — Ь, х 0. Введем для этой задачи вектор оценок 7 = (Аь 1)тс/? (индексы b и с обозначают совокупности базисных и свободных переменных в векторе х, а также наборы соответствующих столбцов матрицы Д) и запишем условие (6.10) оптимальности А^у решения £*, равно- сильное неравенствам ЛТ7 с и 7 0. Эти неравенства означают, что вектор оценок 7 является допустимым решением двойственной задачи. При этом ьт7 = ьт(1 )ТС(, = (А^1Ь) сь = х[сь = СТХ = сх.
6.6. Двойственная задача линейного программирования 253 Следовательно, допустимые решения х* и 7 прямой и двойственной задач в соответствии со следствием 6.1 являются оптимальными, и для этих решений значения целевых функций двух задач равны. Очевидно, что равенство сохраняется для любых двух оптимальных решений. ► Замечание 6.2. Из доказательства теоремы 6.3 вытекает, что если известно решение х* исходной задачи, то решение двойственной задачи можно получить, вычислив вектор оценок 7. Это правило можно конкретизировать следующим образом. Пусть х* и и* — оптимальные решения прямой (6.15) и двой- ственной (6.16) задач. Тогда выполняется двойное равенство с х* = (и*)ТАх* = (u*)Tb. Следовательно, (Ат и* — с)т х* = 0 и (Ь — Ах*)ти* = 0. Поскольку Ати* — с 0, х* 0, Ь — Ах* 0, и* 0, эти равенства выполняются, если имеют место следующие условия: 1) каждой положительной компоненте х* вектора х* соответствует нулевая компонента (Ати* — c)i вектора А1 и* — с, т.е. положительной переменной прямой задачи соответствует активное ограничение двой- ственной задачи; 2) каждой положительной компоненте (Ь — Ax*)j вектора b — Ах* соответствует нулевая компонента и* вектора и\ т.е. активному огра- ничению прямой задачи соответствует нулевое значение переменной в оптимальном решении двойственной задачи. Если прямая задача невырождена, то после перехода к стандартной форме все базисные переменные (их количество m равно количе- ству ограничений, т.е. строк матрицы А) будут положительными, а все свободные — нулевыми. Каждой основной базисной пере- менной соответствует активное ограничение двойственной задачи, а каждой дополнительной базисной переменной — нулевое значение переменной двойственной задачи. В результате имеем тп линейных уравнений относительно тп переменных двойственной задачи. Систе-
254 Глава 6. Методы линейного программирования ма уравнений позволяет однозначно определить оптимальное решение двойственной задачи. Если прямая задача вырождена, какое-то количество базисных переменных будет иметь нулевое значение. Это приводит к сокраще- нию количества уравнений, связывающих переменные двойственной задачи, и к неединственности оптимального решения двойственной задачи. Пример 6.5. Рассмотрим задачу линейного программирования / 3’1 ~ 42’2 - 167*3 шах; < я’1 - 4^з 2, .7'2 + 2тз 1: .7‘1 0. 2'2 0. ,7’з > 0. Преобразуем эту задачу в стандартную форму: 7J - 4j:2 - 16.Гз —> шах: тд ~ 4.7*3 < 2, -7*2 - 27*з С -1: 7*| 0. 2'2 0. 7’3 0. В матричной форме рассматриваемая задача имеет вид ' (1 - 4 - 6)ж —> max: ч х 0. где х = (тд 2'2 2'3)Т. Используя (6.17), запишем двойственную задачу линейного программирования: и > 0,
6.6. Двойственная задача линейного программирования 255 или —2и\ 4- U2 —> max; —U] — 1, ^2^4, 4г£] 4-2^2 ^16; щ О, U2 0. Полученная задача имеет два параметра оптимизации и может быть решена графическим методом (рис. 6.5). Оптимальное реше- ние представлено точкой М, имеющей координаты и* = 1, — 4. Оптимальное значение целевой функции равно —2и* 4- = 2. Записывая двойственную задачу в форме (6.16), согласно теореме 6.3 находим оптимальное значение исходной задачи, равное 2. Что- бы получить оптимальное решение исходной задачи, отметим, что обе переменные в оптимальном решении двойственной задачи положи- тельны, а из трех ограничений неактивным является только третье. В соответствии с замечанием 6.2 получаем систему трех уравнений, связывающих оптимальные значения я*, х^ переменных прямой задачи: xf-4x* = 2, Х^ 4~ 2х* — 1 ? х* = 0. Из этой системы находим оптимальное решение исходной задачи: X* = 2,х* = 1,х^ =0. #
256 Глава 6. Методы линейного программирования Понятие двойственности, введенное для задач линейного програм- мирования в стандартной форме, распространяется на любые задачи линейного программирования. Рассмотрим, например, задачу линей- ного программирования в канонической форме / т с ж —> max; < Ах = Ь; (6.19) х 0. Используя предположения и обозначения, введенные выше (см. разд. 6.3), запишем нашу задачу в виде т , т cb + csxs —> max; < AfoXfr Н- Л5ж§ — Ь; 0, xs 0. Исключим базисные переменные ж^ из ограничений и целевой функ- ции (постоянное слагаемое в целевой функции опускаем): max; < A^Asxs^A;'b- xs 0. Полученная задача в стандартной форме позволяет сформулиро- вать двойственную задачу: fbT(Ab 1 )Tu —* min; < Aj(A^'u + A^'cb) >cs; .u 0. Выполним линейную замену переменных z = А^'и + В результате придем к следующей задаче линейного программирования (постоянное слагаемое в целевой функции опускаем): / .Т о z —* min; < Arsz^ca-, ,Abz-cb > 0.
6.6. Двойственная задача линейного программирования 257 Наконец, объединяя ограничения, получаем задачу Vz —> min; < лт k A z с. (6.20) Обратим внимание на то, что в этой задаче отсутствуют условия неотрицательности переменных. Задачу (6.20) назовем двойственной к задаче (6.19). Рассмотренный пример показывает, как различные ограничения прямой задачи реализуются в двойственной. Каждому ограничению прямой задачи соответствует переменное двойственной задачи, а каждому переменному прямой задачи — ограничение двойственной задачи. При этом: 1) ограничению типа неравенства прямой задачи соответствует неотрицательное переменное двойственной; 2) ограничению типа равенства прямой задачи соответствует не- ограниченное в знаке переменное двойственной задачи; 3) неотрицательному переменному прямой задачи соответствует ограничение типа неравенства двойственной; 4) не ограниченному в знаке переменному прямой задачи соответ- ствует ограничение типа неравенства двойственной задачи. Пользуясь сформулированными правилами, запишем задачу ли- нейного программирования, двойственную к задаче (6.2), полагая, что is = s = 1, г, т.е. переменные прямой задачи перенумерованы так, что вначале идут неотрицательные переменные. Получим сле- дующее: f т —* min; г=1 т j=l,r; < г=1 т (lijiii = Cj, j = г+1, n; i=l щ 0, и2 о, «Ш| > 0. 17 - 9252
258 Глава 6. Методы линейного программирования Расширение понятия двойственности сохраняет основные свой- ства: • любое значение целевой функции прямой задачи не превышает любого значения целевой функции двойственной задачи; • если допустимые множества прямой и двойственной задач непу- сты, то каждая из них имеет оптимальное решение, причем оптималь- ные значения двух задач совпадают. Вопросы для самопроверки 1. Дайте определения оптимального и допустимого решений зада- чи линейного программирования. 2. Изменится ли оптимальное решение задачи линейного про- граммирования (6.1), если во всех ограничениях (кроме требования неотрицательности переменных) знаки неравенства заменить знаками равенства? 3. Объясните различие между активными и пассивными ограниче- ниями в задаче линейного программирования. 4. Как связаны значения целевой функции, соответствующие раз- личным оптимальным решениям? 5. Обязательно ли при использовании геометрического метода представлять задачу линейного программирования в стандартной форме? 6. Может ли ведущий элемент симплекс-таблицы быть: а) нуле- вым; б) отрицательным? 7. Можно ли утверждать, что если на текущей итерации симплекс- метода получено вырожденное базисное решение, то и на следующей итерации будет получено вырожденное базисное решение? 8. Опишите построение двойственной задачи линейного програм- мирования для задачи: а) в стандартной форме; б) общего вида. 9. Покажите, что ограничениям типа равенства исходной задачи линейного программирования соответствуют не ограниченные в знаке переменные двойственной задачи. 10. Покажите, что не ограниченным в знаке переменным исходной задачи линейного программирования соответствуют ограничения типа равенства двойственной задачи. 11. Может ли двойственная задача линейного программирования иметь допустимое решение, если исходная задача не имеет оптималь- ного решения?
Вопросы для самопроверки 259 12. Задачу линейного программирования Г] --г 2.7’2 4- тз + 8:7’4 —> max: j’l + 47’2 — ^7’3 — 47^4 — I . 27:1 г 37’2 + 7’з - 27.:4 > 3; .rk >0. к = Т~4. решите симплекс-методом, а двойственную ей задачу — геометриче- ским методом. Сопоставьте полученные результаты.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ Учебники и учебные пособия Алексеев В. М. Оптимальное управление/В.М. Алексеев, В.М. Тихомиров, С.В. Фомин. -М.: Наука, 1979. -429 с. Аоки М. Введение в методы оптимизации. Основы и приложения нелинейного программирования: пер. с англ. / М. Аоки. - М.: Наука, 1977. - 344 с. Аттетков А.В. Методы оптимизации: учебник для вузов / А.В. Аттетков; С.В. Галкин, В.С. Зарубин; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. -440 с. Ашманов С.Л. Линейное программирование/С.Л. Ашманов. -М.: Наука, 1981.-304 с. Базара М. Нелинейное программирование. Теория и алгоритмы: пер. с англ. / М. Базара, К. Шетти. - М.: Мир, 1982. - 584 с. Банди Б. Методы оптимизации. Вводный курс: пер. с англ. / Б. Банди. - М.: Радио и связь, 1988. - 128 с. Банди Б. Основы линейного программирования: пер. с англ. / Б. Банди. - М.: Радио и связь, 1989. - 176 с. Васильев Ф.П. Численные методы решения экстремальных задач / Ф.П. Васильев. - М.: Наука, 1988. - 552 с. Волков И.К. Исследование операций: учебник для вузов / И.К. Волков, Е.А. Загоруйко; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2000. -436 с. Волков И.К. Случайные процессы: учебник для вузов / И.К. Волков, С.М. Зуев, Г.М. Цветкова; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1999. -448 с. Габасов РФ. Методы оптимизации / Р.Ф. Габасов, Ф.М. Кириллова. - Минск: Изд-во БГУ, 1981. -352 с. Гилл Ф. Практическая оптимизация: пер. с англ. / Ф. Гилл, У. Мюррей, М. Райт. - М.: Мир, 1985. - 510 с. Гроссман К. Нелинейное программирование на основе безусловной минимизации / К. Гроссман, А.А. Каплан. - Новосибирск: Наука. Сиб. отд-ние, 1981. - 183 с. ДамбраускасА.П. Симплексный поиск/А.П. Дамбраускас. -М.: Энергия, 1979. -176 с.
Список рекомендуемой литературы 261 Дэннис Дж. Численные методы безусловной оптимизации и решения нелинейных уравнений: пер. с англ. / Дж. Дэннис, Р. Шнабель. - М.: Мир, 1988. -440 с. Евтушенко Ю.Г. Методы решения экстремальных задач и их применение в системах оптимизации / Ю.Г. Евтушенко. - М.: Наука, 1982. -432 с. Зуховицкий И.И. Линейное и выпуклое программирование / И.И. Зухо- вицкий, Л.И. Авдеева. - М.: Наука, 1970. - 264 с. Измаилов А. Ф. Численные методы оптимизации: учеб, пособие/А.Ф. Из- маилов, М.В. Солодов. - М.: Физматлит, 2003. - 304 с. Канатников А. Н. Линейная алгебра: учебник для вузов/А.Н. Канатников, А.П. Крищенко; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1998. - 336 с. Канатников А.Н. Дифференциальное исчисление функций многих пере- менных: учебник для вузов / А.Н. Канатников, А.П. Крищенко, В.Н. Че- твериков; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2000. -456 с. Карманов В.Г. Математическое программирование: учеб, пособие / В.Г. Карманов. - М.: Физматлит, 2001. - 264 с. Кузнецов ЮН. Математическое программирование / Ю.Н. Кузнецов, В.И. Кузубов, А.Б. Волощенко. - М.: Высш, шк., 1976. - 352 с. Лесин В.В. Основы методов оптимизации / В.В. Лесин, Ю.П. Лисовсц. - М.: Изд-во МАИ, 1995. -341 с. Линейное и нелинейное программирование / Под ред. И.Н. Ляшенко. - Киев: Выща шк., 1975. -372 с. Моисеев Н.Н. Методы оптимизации / Н.Н. Моисеев, Ю.П. Иванилов, Е.М. Столярова. -М.: Наука, 1978. -351 с. Ногин В.Д. Основы теории оптимизации / В.Д. Ногин, И.О. Протодьяко- нов, И.И. Евлампиев. - М.: Высш, шк., 1986. - 384 с. Пантелеев А.В. Методы оптимизации в примерах и задачах: учеб, пособие / А.В. Пантелеев, ТА. Летова. - М.: Высш, шк., 2002. - 544 с. Поляк Б.Т. Введение в оптимизацию / Б.Т. Поляк. - М.: Наука, 1983. - 384 с. Пшеничный Б.Н. Численные методы в экстремальных задачах / Б.Н. Пше- ничный, Ю.М. Данилин. - М.: Наука, 1975. - 320 с. Растригин Л.А. Статистические методы поиска / Л.А. Растригин. - М.: Наука, 1968. -376 с. Реклейтис Г. Оптимизация в технике: в 2 кн.: пер. с англ. / Г. Реклсйтис, А. Рейвиндран, К. Рэгсдел. -М.: Мир, 1986. Рыков А.С. Поисковая оптимизация. Методы деформируемых конфигу- раций / А.С. Рыков. - М.: Физматлит, 1993. - 216 с.
262 Список рекомендуемой литературы Сухарев А.Г. Курс методов оптимизации / А.Г. Сухарев, А.В. Тимохов, В.В. Федоров. -М.: Наука, 1986. -328 с. Теория вероятностей: учебник для вузов / В.А. Печинкин, О.И. Тескин, Г.М. Цветкова и др.; под ред. В.С. Зарубина, А.П. Крищенко. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1998. -456 с. Фиакко А. Нелинейное программирование. Методы последовательной безусловной минимизации: пер. с англ. / А. Фиакко, Г. Мак-Кормик. - М.: Мир, 1972. -240 с. Химмельблау Д. Прикладное нелинейное программирование: пер. с англ. / Д. Химмельблау. - М.: Мир, 1975. - 534 с. Юдин Д. Б. Линейное программирование. Теория, методы, приложения / Д.Б. Юдин, Е.Г. Гольштейн. - М.: Наука, 1969. -424 с. Дополнительная литература Абрамов Л.М. Математическое программирование / Л.М. Абрамов, В.Ф. Капустин. - Л.: Изд-во ЛГУ, 1981. -328 с. Амосов А.А. Вычислительные методы для инженеров: учеб, пособие / А.А. Амосов, Ю.А. Дубинский, Н.В. Копченова. - М.: Высш, шк., 1994. - 554 с. Ашманов С. А. Линейное программирование/С. А. Ашманов.-М.: Наука, 1981. -304с. Белоусов A ll. Элементы линейного программирования: учеб, пособие / А.И. Белоусов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1993. - 76 с. Бертсекас Д. Условная оптимизация и методы множителей Лагранжа: пер. с англ. / Д. Бертсекас. - М.: Радио и связь. 1987. -400 с. Васютинский //. Золотая пропорция / Н. Васютинский. - М.: Молодая гвардия, 1990. -235 с. Введение в нелинейное программирование / Под ред. К.Х. Эльстера; пер. с англ. - М.: Наука. 1985. - 264 с. Гачеев ЭМ. Курс лекций по вариационному исчислению и оптимальному управлению / Э.М. Галеев. - М.: Изд-во механико-математического факуль- тета МГУ, 1996. - 160 с. Ганшин ГС. Методы оптимизации и решение уравнений / ГС. Ганшин. - М.: Наука, 1987. - 128 с. Гасс С. Линейное программирование / С. Гасс. - М.: Физматгиз, 1961. - 303 с. Гейл Д. Теория линейных экономических моделей / Д. Гейл. - М.: Изд-во иностр, литер., 1963. Голуб Дж. Матричные вычисления: пер. с англ. / Дж. Голуб, Ч. Ван Лоун. - М.: Мир, 1999. -548 с.
Список рекомендуемой литературы 263 Гольштейн Е.Г. Выпуклое программирование (элементы теории) / Е.Г. Гольштейн. -М.: Наука, 1970. -268 с. Гольштейн Е.Г Теория двойственности в математическом программиро- вании и ее приложения / Е.Г. Гольштейн. - М.: Наука, 1971. - 351 с. Дамбраускас А.П. Алгоритмы и программы симплексного поиска / А.П. Дамбраускас, В.А. Кащеев, Д.В. Кошаев. - Красноярск: Изд-во Краснояр. ун-та, 1993. - 160 с. Данциг Дж. Линейное программирование: пер. с англ. / Дж. Данциг. - М.: Прогресс, 1966. -600 с. Демьянов В.Ф. Введение в минимакс / В.Ф. Демьянов, В.Н. Малоземов. - М.: Наука, 1972. -368 с. Демьянов В.Ф. Приближенные методы решения экстремальных задач / В.Ф. Демьянов, А.М. Рубинов. - Л.: Изд-во ЛГУ, 1965. - 180 с. Еремин И.И. Введение в теорию линейного и выпуклого программирова- ния / И.И. Еремин, Н.Н. Астафьев. - М.: Наука, 1976. - 192 с. Ермольев Ю.И. Методы стохастического программирования / Ю.И. Ермо- льев. -М.: Наука, 1976. -240 с. Зангвилл У.И. Нелинейное программирование. Единый подход: пер. с англ. / У.И. Зангвилл. - М.: Сов. радио, 1973. - 312 с. Зойтендейк Г. Методы возможных направлений: пер. с англ. / Г. Зойтсн- дейк. - М.: Изд-во иностр, лит., 1963. - 176 с. Иоффе АД. Теория экстремальных задач / А.Д. Иоффе, В.М. Тихомиров. - М.: Наука, 1974. -480 с. Карлин С. Математические методы в теории игр, программировании и экономике / С. Карлин. - М.: Мир, 1964. - 836 с. Кузнецов Ю.Н. Математическое программирование / Ю.Н. Кузнецов, В.И. Кузубов, А.Б. Волошенко. - М.: Высш, шк., 1980. - 320 с. Кюнци Г. Нелинейное программирование: пер. с англ. / Г. Кюнци, В. Крелле. - М.: Советское радио, 1965. - 304 с. Лейхтвейс К. Выпуклые множества / К. Лейхтвейс. - М.: Наука, 1985. - 336 с. Мину М. Математическое программирование. Теория и алгоритмы: пер. с франц. / М. Мину. - М.: Наука, 1990. -487 с. Михалевич В.С. Оптимизационные задачи производственно-транспортно- го планирования: модели, методы, алгоритмы / В.С. Михалевич, В.А. Трубин, Н.З. Шор. -М.: Наука, 1986. -259 с. Моисеев Н.Н. Численные методы в теории оптимальных систем / Н.Н. Мо- исеев. -М.: Наука, 1971. -424 с. Муртаф Б. Современное линейное программирование: пер. с англ. / Б. Муртаф. - М.: Мир, 1984. - 224 с.
264 Список рекомендуемой литературы Мухачева Э.А. Математическое программирование / Э.А. Мухачева, Г.Ш. Рубинштейн. - Новосибирск: Наука, 1983. -224 с. Немировский А.С. Сложность задач и эффективность методов оптимиза- ции / А.С. Немировский, Д.Б. Юдин. - М.: Наука, 1979. - 384 с. Полак Э. Численные методы оптимизации. Единый подход: пер. с англ. / Э. Полак. - М.: Мир, 1974. - 376 с. Пшеничный Б.Н. Выпуклый анализ и экстремальные задачи /Б.Н. Пше- ничный. -М.: Наука,1980. -320 с. Пшеничный Б.Н. Метод линеаризации / Б.Н. Пшеничный. - М.: Наука, 1983. - 136 с. Растригин Л.А. Случайный поиск в процессах адаптации / Л.А. Растри- гин. -Рига: Зинатне, 1973. - 131 с. Рокафеллар Р.Т. Выпуклый анализ: пер. с англ. / Р.Т. Рокафеллар. - М.: Мир, 1973. -468 с. Романовский И.В. Алгоритмы решения экстремальных задач / И.В. Рома- новский. -М.: Наука, 1977. -352 с. Рубинштейн Г.Ш. Конечномерные модели оптимизации / Г.Ш. Рубин- штейн. - Новосибирск: Изд-во Новосибирск, ун-та, 1970. - 228 с. Сеа Ж. Оптимизация. Теория и алгоритмы: пер. с англ. / Ж. Cea. - М.: Мир, 1973. -244 с. Стронгин Р.Г. Численные методы в многоэкстремальных задачах (инфор- мационно-статистические алгоритмы) / Р.Г. Стронгин. - М.: Наука, 1978. - 240 с. Сухарев А.Г. Курс методов оптимизации / А.Г. Сухарев, А.В. Тимохов, В.В. Федоров. - М.: Наука, 1986. - 328 с. Сухарев А.Г. Минимаксные алгоритмы в задачах численного анализа / А.Г. Сухарев. - М.: Наука, 1989. - 304 с. Сухарев А.Г. Оптимальный поиск экстремума/А.Г. Сухарев. -М.: Изд-во МГУ, 1975. - 100 с. Фаддеев Д.К. Вычислительные методы линейной алгебры / Д.К. Фаддеев, В.Н. Фаддеева. - СПб.: Лань, 2002. - 733 с. Федоров В.В. Численные методы максимина / В.В. Федоров. - М.: Наука, 1979. -280 с. Формалев В.Ф. Численные методы / В.Ф. Формалев, Д.Л. Ревизников. - М.: Физматлит, 2004. -400 с. Хедли Дж. Нелинейное и динамическое программирование: пер. с англ. / Дж. Хедли. - М.: Мир, 1967. - 534 с. Численные методы условной оптимизации/Под ред. Ф. Гилла, У. Мюррея. - М.: Мир, 1977. -256 с. Чичинадзе В.К. Решение невыпуклых нелинейных задач оптимизации / В.К. Чичинадзе. -М.: Наука, 1983. -256 с.
Список рекомендуемой литературы 265 Шор Н.З. Квадратичные экстремальные задачи и нсдиффсрснцирусмая оптимизация/Н.З. Шор, С.И. Стсцснко. - Киев: Наукова думка, 1989. -203 с. Щедрин Н.И. Математические методы программирования в экономике / Н.И. Щедрин, А.Н. Кархов. - М.: Статистика, 1974. - 144 с. Задачники Акулич И.Л. Математическое программирование в примерах и задачах / И.Л. Акулич. - М.: Высш, шк., 1986. - 320 с. Алексеев В.М. Сборник задач по оптимизации / В.М. Алексеев, Э.М. Га- леев, В.М. Тихомиров. - М.: Наука, 1984. - 287 с. Ашманов С.А. Теория оптимизации в задачах и упражнениях / С.А. Аш- манов, А.В. Тимохов. -М.: Наука, 1991. -448 с. Калихман И.Л. Сборник задач по математическому программированию / И.Л. Калихман - М.: Высш, шк., 1975. - 272 с. Капустин В.Ф. Практические занятия по курсу математического програм- мирования / В.Ф. Капустин. - Л.: Изд-во ЛГУ, 1976. - 192 с. Летова Т.А. Экстремум функций в примерах и задачах: учеб, пособие / ТА. Летова, А.В. Пантелеев. - М.: Изд-во МАИ, 1998. - 376 с. Морозов В.В. Исследование операций в примерах и задачах / В.В. Моро- зов, А.Г. Сухарев, В.В. Федоров. - М.: Высш, шк., 1986. - 287 с. Справочные издания Александрова Н.В. Математические термины: справочник / Н.В. Алексан- дрова. - М.: Высш, шк., 1978. - 190 с. Бронштейн И.Н. Справочник по математике для инженеров и учащихся втузов. 13-е изд., испр. / И.Н. Бронштейн, К.А. Семендяев. -М.: Наука, 1986. - 544 с. Воднев В.Т. Математический словарь высшей школы / В.Т. Воднсв, А.Ф. Наумович, Н.Ф. Наумович; иод ред. Ю.С. Богдановича. - Минск: Вышейш. шк., 1984. - 528 с. Воеводин В.В. Матрицы и вычисления / В.В. Воеводин, Ю.А. Кузнецов. - М.: Наука, 1984. -320 с. Выгодский М.Я. Справочник по высшей математике. 13-е изд., стереотип / М.Я. Выгодский. -М.: Физматгиз, 1995. -872 с. Иванов В.В. Методы вычислений на ЭВМ: справочное пособие / В.В. Ива- нов. -Киев: Науковадумка, 1986. - 584 с. Корн Г. Справочник по математике. Для научных работников и инжене- ров: пер. с англ. / Г. Корн, Т. Корн. - М.: Наука, 1973. - 832 с. Математический энциклопедический словарь / гл. ред. Ю.В. Прохоров. - М.: Сов. энцикл., 1988. - 848 с.
предметный указатель Альтернатива 9 Антиградиент 49 Базис задачи линейного программирования 235 Базисное решение 230 — допустимое 230 ---вырожденное 236 ---начальное 240 БФШ-метод 94 Вектор оценок 239 - перемещений 112 Векторы сопряженные 69 Вершина симплекса 99 Градиент приведенный 160 ДфП-метод 92 Задача безусловной минимизации 20 - выпуклого программирования 22 - геометрического программирования 22 - двойственная 147 - дискретного программирования 23 - Евклида 13 - квадратичного программирования 21 - линейного программирования 20 ---в канонической форме 224 -----стандартной форме 224 Задача линейного программирова- ния вырожденная 236 -- двойственная 250 --общего вида 223 - математического программирования 11 - нелинейного программирования 20 - о диете 19 - оптимального проектирования 15 - оптимизации 9 - сепарабельного программирования 21 - транспортная 18 - условной минимизации 20 - целочисленного программирования 23 Интервал неопределенности 28 Итерация 45 Конус допустимых направлений 129 Коэффициент золотого сечения 33 - отражения 105 - растяжения 106 - редукции 103 - сжатия 107 Критерий оптимальности 9 Масштабирование 63 Матрица идемпотентная 179 - поправочная 91 - проекционная 179
Предметный указатель 267 Метол барьерных функций 213 - Бройдена — Флетчера — ! Пенно 94 - внешней точки 214 - внутренней точки 213 - возможных направлений 201 - второго порядка 45 - градиентного спуска 49 - Давидона — Флетчера — Пауэлла 92 - деформируемых конфигураций 100 - дихотомии 29 - дробления шага 55 - золотого сечения 34 - квадратичной аппроксимации 37 - квазиньютоновский 89 - кубической аппроксимации 40 - Марквардта 84 - наилучшей пробы 125 - наискорейшего спуска 49 - Нелдера—Мида 105 - нулевого порядка 45 - Ньютона 80 - Пауэлла 95 - первого порядка 45 - Полака — Рибьера 77 - последовательной безусловной оптимизации 212 - приведенного градиента 160 - проекции антиградиента 186 - - точки на множество 172 - прямого поиска 26. 45 --симметричный 29 - случайного поиска с возвратом при неудачном шаге 125 - сопряженных градиентов 76 - - направлений 72 - спуска 45 - статистического градиента 125 Метол условного градиента 154 - Флетчера — Ривса 76 - циклического покоординатного спуска 109 - штрафных функций 213 ---внешних 214 ---внутренних 213 Методы полиномиальной аппроксимации 37 Минимизация функции 11 Минимум локальный на множестве 130 ----- строгий 130 Многочлен интерполяционный кубический Эрмита 40 Множество выпуклое 22 - допустимое 11 Множитель ускоряющий 112 Момент обновления алгоритма 77 Направление допустимое 129 - спуска 48 - - возможное 154 — ньютоновское 81 Направления сопряженные 69 Неизвестное базисное 159 - свободное 159 Норма спектральная 64 Нумерация вершин правильная 102 Ограничение активное 140. 234 - линейное 20 - неактивное 140, 234 - нелинейное 20 - пассивное 140,234 - типа неравенства 20 — равенства 20 Операция восстановления симплекса 108 Определитель Вандермонда 37
268 Предметный указатель Оптимизация бесконечномерная 10 - конечномерная 10 - многокритериальная 10 - одномерная 10 Ортант неотрицательный 158 - положительный 22 Отношение золотого сечения 33 - порядка в 224 Отображение сжимающее 64 Отражение вершины 102 Отрезок в Rn 231 Параметр точности поиска 47 - штрафа 214 Параметры оптимизации 11 Переменное базисное 159 - искусственное 245 - свободное 159 Позином 22 Поиск исследующий 112 - пассивный 27 - по образцу 114 - последовательный 27 - прямой управляемый 100 - симплексный 99 - случайный 119 Последовательность итерационная 45 - релаксационная 45 Правило множителей Лагранжа обобщенное 135 Проекция точки на множество 168 Процедура исключения отрезка 28 Процесс ортогонализации 69 Ранг максимальный строчный 230 Расстояние от точки до множества 168 Редукция симплекса 103 Рестарт 77 Решение допустимое 11 - оптимальное 11 Сечение отрезка золотое 32 Симплекс 99 - регулярный 100 Симплекс-метод 234 - выпуклый 160 Симплекс-разность 237 Симплекс-таблица 240 Скорость сходимости квадратичная 84 - - линейная 88 - - сверхлинейная 89 Спуск исчерпывающий 53 Строка ведущая 242 Структура овражная 63 Сходимость по вероятности 120 - почти наверное 120 - сильная 47 - слабая 46 Теорема двойственности 147 - Куна — Таккера 140 - о неподвижной точке 64 Точка базовая 98 - крайняя 231 - минимума 44 - седловая 143 - стационарная 23 Уравнение связи 133 Условие квазиньютоновское 91 - останова 47 Условия дополняющей нежесткости 140 Функция барьерная 213 - выпуклая 22 - двойственная 147 - дробно-линейная 21
Предметный указатель 269 Функция индикаторная 212 - квадратичная 21 - Лагранжа 140 - сепарабельная 21 - сильно выпуклая 23 - строго выпуклая 22 - унимодальная 26 - целевая 11 - штрафа 213 Функция штрафа внешнего 214 - - внутреннего 213 - штрафная 213 Число обусловленности 65 Шаблон 99 Шаг спуска 48 Элемент ведущий 242