- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
2. С помощью необходимого условия (см. теорему 7.2) на ходим все точки на границе множества f2, в которых функция может иметь локальный минимум на П.
3. Сравнивая значения минимизируемой функции в найден ных точках, находим ту точку, в которой функция имеет наи меньшее значение.
При решении задачи выпуклого программирования, в кото рой выпуклая функция минимизируется на выпуклом множе стве, достаточно найти любую точку ее локального минимума, так как, согласно теореме 3.14, в любой точке локального ми нимума эта функция достигает наименьшего значения. В этом случае уместно использовать достаточное условие локального минимума на множестве (см. теорему 7.3), которое не требу ет вычисления частных производных второго порядка и легко проверяется.
Узким местом предложенной схемы является применение не обходимого условия локального минимума на множестве. Если необходимое условие экстремума функции записывается в виде системы уравнений, то необходимое условие локального мини мума на множестве представлено в виде системы неравенств, в которых варьируется не только неизвестная точка, но и вектор е допустимого направления. Выделить с помощью теоремы 7.2 точки, wподозрительные “ на локальный минимум, можно лишь в случае, когда допустимое множество Q, имеет границу про стой структуры.
7.2. Минимизация при ограничениях типа равенства
Задачу нелинейного программирования с ограничениями ти па равенства можно записать следующим образом:
/о(ж) |
min; |
//(* ) = |
(7.4) |
0, l = ljc. |
В данном случае допустимое множество ft имеет вид
n = { x e R n: fi(x )= 0 , 1 = 1 , к}.
Сформулированную задачу в случае дифференцируемых функций fi(x) можно связать с задачей исследования целевой функции на условный экстремум [V]. Если точка х * есть ре шение задачи (7.4), т.е. если целевая функция /о(®) достигает в этой точке наименьшего значения на множестве ft, то точка х * является точкой условного локального минимума функции /о(ж) при условиях fi(x) = 0, I = 1 , к (эти уравнения называют уравнениями связи). Поэтому решать задачу (7.4) можно сле дующим образом. Найти все точки, в которых функция может иметь условный локальный минимум, а затем путем сравнения значений функции выбрать из этих точек ту, в которой функ ция имеет наименьшее значение. Если задача имеет решение (т.е. целевая функция при заданных ограничениях достигает наименьшего значения), то этим решением будет найденная точка.
Поиск точек, „подозрительных11 на условный экстремум, выполняют с помощью необходимого условия условного локаль ного экстремума, суть которого в следующем. Если точка х * является точкой условного экстремума функции /о(ж) при усло виях fi(x) = 0, Z= 1 , А:, причем функции /{(ж), I = 0, А;, непре рывно дифференцируемы в окрестности точки х * и матрица Якоби J(x) векторной функции f(x ) = (Д(ж) Д(ж)) в точ ке х* имеет ранг к (максимальный ранг, равный количеству строк), то существуют такие множители Лагранжа Ai, ..., А*, что для функции Лагранжа
к
(7.5)
в точке х* выполняется необходимое условие экстремума
gradL(sc*) = О,
или
dL{x*) _ дЦ х*) |
дЦх*) |
|
дх\ |
дх2 |
|
Поиск стационарных точек функции Лагранжа сводится к решению системы п + к уравнений [V]
содержащей п + к неизвестных х\, ..., хп, Ai, ..., А*.
Таким образом, исследование функции на условный экстре мум состоит в выделении некоторого набора точек, „подозри тельных" на экстремум, и в проверке каждой точки, является ли она в действительности точкой условного экстремума. На бор точек, „подозрительных" на экстремум, можно разделить на три группы:
1 ) точки, в которых хотя бы одна из функций fi{x), 1 = 0 , к, не дифференцируема или одна из ее частных производных разрывна;
2)точки, в которых ранг матрицы Якоби J(x) системы уравнений связи меньше количества к уравнений связи;
3)стационарные точки функции Лагранжа.
Отличие задачи минимизации при ограничениях типа ра венства от задачи исследования на условный экстремум состоит в том, что в задаче минимизации нет необходимости проверять, является ли точка, „подозрительная" на экстремум, точкой условного локального минимума. Можно просто сравнить зна чения минимизируемой функции в этих точках и выбрать ту, в которой значение функции наименьшее. Эта точка и будет ре шением задачи минимизации. Правда, последнее утверждение верно лишь в случае, когда задача минимизации имеет реше ние. В действительности возможна ситуация, когда целевая функция имеет точки условного локального минимума, но не достигает наименьшего значения.
Необходимое условие условного локального экстремума мож но модифицировать так, что определение стационарных точек функции Лагранжа будет включать в себя и поиск точек, в ко торых нарушается условие на ранг матрицы Якоби системы уравнений связи (необходимое условие условного локального экстремума формулируется в предположении, что ранг систе мы уравнений связи максимален и совпадает с числом уравне ний связи). Для этого изменим понятие функции Лагранжа, используя вместо (7.5) формулу
к
(7.6)
в которую добавлен еще один множитель Лагранжа АоСледу ющее утверждение называют обобщенным правилом мно жителей Лагранжа.
Теорема 7.4. Если х* 6 l n — точка условного экстре мума функции fo(x) при условиях fi(x) = 0, I = 1 , к, причем функции //(а?), 1 = 0 , к, непрерывно дифференцируемы в неко торой окрестности точки х *, то существуют такие множители Лагранжа Ai, I = 0, к, не все равные нулю, что для функции Лагранжа L(x) точка х* является стационарной, т.е.
gradL(a:*) = 0. |
(7.7) |
◄ Если ранг матрицы Якоби J(x*) системы функций fi(x), 1= 1, к, в точке х* равен их количеству к, то достаточно по ложить Ао = 1- Тогда утверждение теоремы будет вытекать из необходимого условия условного экстремума [V]. Предполо жим, что Rg J(x*) < к. Тогда строки матрицы J{x*) линейно зависимы, например, в силу теоремы о базисном миноре [III]. Это означает, что для некоторых значений Ai, ..., А*, одновре менно не равных нулю, выполняется равенство
Ai grad fi (x*) + A2grad /2 (®*) + ... + A*grad Д (x*) = 0.
Положив Ао = 0, запишем
к
A0grad/0(®*) + ^A igrad/i(a:*) = О,
/=1
что в силу (7.6) совпадает с (7.7). ►
Нетрудно увидеть, что множители Лагранжа, существова ние которых вытекает из теоремы 7.4, определяются неодно значно: их можно, не нарушая утверждения теоремы, умно жить на любой постоянный множитель. Поэтому для определе ния к + 1 множителя Лагранжа Ао, ..., \k и п координат точки х * достаточно к + п уравнений. Такое количество дают усло вие (7.7) (это п уравнений) и совокупность уравнений связи (их количество равно к).
7.3. Общая задача нелинейного программирования
Общую задачу нелинейного программирования можно сфор мулировать следующим образом:
(7.8)
//(* ) = 0, 1 - 1 , t, S i(* )< 0, г = 1 , т .
При этом предполагается, что одна из фигурирующих в зада че функций не является линейной. Считаем, что все функции //(ж), I = 0, /с, и дг(ж), i = 1 , га, определены на некотором от крытом множестве X С Кп. Упрощая изложение, мы далее ограничимся случаем X = Rn. В конкретной ситуации мож но добиться выполнения этого ограничения, доопределив все функции вне множества X , например, большим постоянным значением, которое не повлияет на процесс минимизации це левой функции.
Сформулированная задача представляет собой частный слу чай общей задачи математического программирования, за
ключающейся в определении наименьшего значения целевой функции /о(ж) на допустимом множестве
0 = { ж е Х : fi(x )= О, 1 = 1,k, |
0, г — 1 , т } . |
(7.9) |
Отметим, что если все функции |
//(ж), Z= 1 , &, и |
gi(x), |
г= 1,га, непрерывны в Rn, то множество ft замкнуто. |
В са |
мом деле, это множество можно представить как пересечение конечного числа множеств вида {ж € К п: ф(х) ^ а}, образован ных непрерывной в R71 функцией <р(х). В данном случае в качестве <р(х) используются функции //(ж), —//(ж), I = 1, А;, и ft (ж), г = 1 , m, a a = 0. Такие множества являются замкнуты ми (см. доказательство теоремы 7.1). Поэтому и множество ft, как пересечение конечного числа замкнутых множеств, являет ся замкнутым.
Большинство известных методов решения задачи нелиней ного программирования позволяют найти лишь точки локаль ного минимума целевой функции на заданном множестве. В этой связи важную роль играет априорная информация о суще ствовании решения задачи, т.е. информация о том, достигает ли целевая функция наименьшего значения на допустимом мно жестве. Если допустимое множество ft в задаче нелинейного программирования замкнуто, то доказательство существова ния решения в этой задаче можно строить с помощью теоремы 7.1, проверяя непрерывность целевой функции /о(ж) и ограни ченность при некотором а множества fta = (ж Е ft: fo(x) ^ a}. В частности, если множество ft ограничено, а целевая функция непрерывна на ft, то задача нелинейного программирования имеет решение.
Однако проверить ограниченность множества ft (или ftQ) не просто. Поэтому интересны другие условия, налагаемые на це левую функцию и ограничения и позволяющие делать заключе ние о существовании решения без использования ограничен ности допустимого множества. В задаче выпуклого програм мирования, в которой целевая функция выпукла и допустимое
множество Q выпукло, любая точка локального минимума це левой функции, согласно теореме 3.14, является решением этой задачи.
Теорема 7.5. Если функции gi{x), %= 1, га, выпуклы в R71, то множество
f2 = {х е Шп: 9i{x) ^ О, г = 1, га} |
(7.10) |
является выпуклым.
◄Утверждение теоремы очевидно, если множество П пусто или содержит всего лишь одну точку. Поэтому ограничимся случа ем, когда это множество содержит по крайней мере две точки. Выберем в нем произвольные точки х 1 их2. Тогда gi{xl) ^ 0 и gi{x2) ^ 0, г = 1, га . В силу определения 3.2 выпуклости функции для любого числа a Е (0 ,1) имеем
&(o:£Ci + (l-a :)a :2) < a#i(a:i) + (1 - а)д{(х2) < 0, i = l,m .
Поэтому точка ах\ + (I —а)х2 также принадлежит множеству Q, а это означает, согласно определению 3.1, что О, является выпуклым множеством. ►
Замечание 7.1. |
Из теоремы 7.5 следует, что если допу |
стимое множество |
определяется только ограничениями типа |
неравенства gi{x) ^ 0, i —1 , га, причем все функции gi{x) вы пуклые в Кп, то множество О выпукло. Наличие ограничений типа равенства усложняет проверку допустимого множества на выпуклость. Однако если функции fi(x) во всех ограничени ях типа равенства являются линейными, а все функции gi(x) в ограничениях типа неравенства — выпуклыми, то допустимое множество выпукло. Действительно, в этом случае допустимое множество ft является пересечением множества Q вида (7.10) с гиперплоскостями fi(x) = 0, г = 1, га. Множество Q выпукло в силу теоремы 7.5, гиперплоскости также являются выпуклы ми множествами (см. пример 3.3). Поэтому множество fi, как пересечение выпуклых множеств, выпукло. #
Ограничения типа неравенства в задаче нелинейного про граммирования введением дополнительных переменных можно преобразовать в ограничения типа равенства. Например, огра ничения gi{x) ^ О, г = l,m , с помощью дополнительных пере менных Z{ можно записать в виде
gi{x) + Zi= 0, г = 1, ш. |
(7.11) |
Таким образом, общую задачу нелинейного программирования можно свести к частному случаю, когда в задаче нет огра ничений типа неравенства. Это позволяет в решении задачи использовать технику исследования целевой функции на услов ный экстремум (см. 7.2).
Впрочем, техника исследования функции на условный экс тремум может использоваться и непосредственно в задаче, име ющей ограничения типа неравенства [V].
Пример 7.1. Рассмотрим задачу нелинейного программи рования
( f{x\,x2) -unin;
gi{x\,x2) < 0, 02(zi,Z 2K O , 53(1 1 ,1 2 ) 0 ,
в которой функции f(x i,x2), gi{x\,x2), g2 {xi,x2), gs{xi,x2) не прерывно дифференцируемы в R2. Предположим, что множе ство ft, которое определяется тремя неравенствами, ограничено
иимеет вид, изображенный на рис. 7.1.
Вэтой задаче наименьшее значение функции f(x i,x 2) мо жет достигаться либо во внутренней точке множества ft, т.е. в точке множества
ftc = {(яг, х2 ): gi(xi,x2) <0, г = 1, 2, 3},
либо на границе множества ft на одной из дуг АВ, АС, ВС, либо в угловых точках границы А, В, С. Поэтому решение задачи можно строить по следующей схеме.
объединить в одну формальную процедуру. Рассмотрим общую задачу нелинейного программирования (7.8).
Теорема 7 .6 . Если точка х * € Г2является точкой локально го минимума функции /о(*) на множестве £1 вида (7.9), причем функции fi(x), I —0, к, и g i { x), г = 1 , т, непрерывно дифферен цируемы в окрестности точки х*, то существуют такие числа А(, I = 0, к , и f a ^ 0, г = 1, т , одновременно не равные нулю, что для функции
кт
Ц х ) =Ао/о(*) + |
X i f i ( x +) 2 м»л(®) |
/=1 г=1
выполняется необходимое условие экстремума
gradL(®*) = О
и, кроме того, выполняются условия дополняющей не-
жесткости
/^»5г(® ) = 0, i = 1, П . $
Теорему 7.6 принято называть теоремой Куна — Так-
кера*, а функцию L ( x )— функцией Лагранжа. Хотя функ ция Лагранжа определена для любых значений параметров Aj, 1 = 0 , к , и p i , i =1, т , мы, учитывая утверждение теоремы Ку на — Таккера, будем рассматривать ее лишь при ц* ^ 0, г = 1, п .
Отметим особую роль в этой теореме условий дополняющей нежесткости. В рассматриваемой точке х * локального мини мума функции f o ( x ) на множестве Q каждое из ограничений g i ( x )< 0, i = 1, т , выполняется либо в виде равенства, 9 i { x * ) = О, либо в виде строгого неравенства, g i ( x * )< 0. Ограничения первого вида называют активными ограничениями, в то время как остальные — неактивными ограничениями. Для активных ограничений соответствующее условие дополняющей
'С м .: Алексеев В .М ., Тихомиров В .М ., Фомин С .В .
нежесткости выполнено. Неактивные ограничения в силу не прерывности фигурирующих в задаче функций выполняются в виде строгого неравенства не только в точке ж*, но и в неко торой окрестности этой точки. Поэтому после удаления этих ограничений из задачи точка х* останется точкой локального минимума. Полагая для таких ограничений щ = 0, мы, с одной стороны, обеспечиваем выполнение условия дополняющей не жесткости, а с другой — удаляем соответствующее слагаемое из функции Лагранжа. В конечном счете утверждение теоремы Куна — Таккера сводится к обобщенному принципу Лагранжа.
Вернемся к примеру 7.1 и поясним, как работает сформули рованная теорема. В данном случае ограничений типа равен ства нет, а есть три ограничения типа неравенства. Если точка х * находится внутри множества fi, то утверждение теоремы будет верно при HI = р>2 = Мз = 0, Ао = 1. Если точка х* нахо дится на одной из дуг, например на дуге АВ, то в этой точке д3 = 0. Утверждение теоремы вытекает из обобщенного прин ципа Лагранжа для задачи с ограничениями типа равенства при ц\ = Ц2 = 0. Наконец, в угловой точке, например в точке А, выполняются два равенства д\ = 0 и д$ = 0. Чтобы обеспе чить условия дополняющей нежесткости, полагаем Н2 = 0. При этом необходимое условие экстремума для функции Лагранжа состоит из двух уравнений, в которых неизвестны три параме тра Ло, A^i и /хз, причем относительно этих параметров система уравнений является линейной и однородной. Ясно, что такая система имеет ненулевые решения.
Пример 7.2. Рассмотрим задачу нелинейного программи рования
f /о(яь® 2) = (х\ - З)2 + (х2 - З)2 ->> min;
| - x i ^ 0 , |
- Х 2 ^ 0, |
# 1 + £ 2 - 4 ^ 0 . |
В этой задаче допустимое множество представляет собой замкнутую треугольную область на плоскости (рис. 7.2), в