- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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.Методы с использованием производных
Вметодах прямого поиска при вычислении значений мини мизируемой функции /(х ) неизбежно возникают погрешности,
ккоторым чувствительны алгоритмы прямого поиска, осно ванные на сравнении значений функции в отдельных точках.
Пусть f(x) — дважды непрерывно дифференцируемая функ ция в окрестности точки х* строгого локального минимума, значения которой вычисляются с абсолютной погрешностью, не превышающей Ду. Оценим абсолютную погрешность Д*, с которой может быть найдена точка х* с применением метода прямого поиска. Для представления функции /(х ) в окрест ности точки х* воспользуемся формулой Тейлора [И] с учетом равенства /(х*) = 0:
где £ — точка, лежащая между точками х* и х. Имея в виду, что вычисления проводятся в достаточно малой окрестности точки т*, положим }"{£) ~ fix * ). Тогда для приближенно вычисляемых значений f(x) получим
fix) ~ fix*) = f{x )-f{x * ) + [f{x) - f i x ) ) - {fix*) - |
f{x*)) > |
> fix) - fix*) - 2 Д / и f"{x*)^X |
- 2Д /. |
Из этих неравенств вытекает, что можно гарантировать вы полнение неравенства /(х ) > /(х*), если /"(х*)(х — х*)2 > 2Ду. Это приводит к приближенной оценке абсолютной погрешности нахождения точки х* методом прямого поиска:
Заданная точность е* нахождения точки х* не должна быть меньше Д*, так как иначе эту точность нельзя достичь методом прямого поиска. Из (2.20) также следует, что при нахожде
нии точки ж* происходит потеря примерно половины верных значащих цифр, с которыми можно вычислить приближенное значение минимизируемой функции [II].
Если унимодальная функция /(ж) непрерывно дифференци руема на отрезке минимизации, то точку ж* наименьшего значе ния функции можно вычислять как корень уравнения / '( ж) = О с помощью тех или иных методов численного решения нелиней ных уравнений [И]. В этом случае на точность решения задачи решающее влияние оказывает погрешность вычисления произ водной функции.
Если абсолютная погрешность вычисления производной не превышает Ду/, то для нижней оценки абсолютной погрешно сти вычисления корня ж* уравнения /(ж) = 0 имеем [И]
Таким образом, при нахождении этого корня можно сохранить все верные значащие цифры, с которыми можно вычислить значение производной / '( ж).
Рассмотрим некоторые методы одномерной минимизации, основанные на использовании производной минимизируемой функции.
М етод средней точки. Будем искать минимум функ ции /(ж), непрерывно дифференцируемой и строго унимодаль ной на отрезке [ai,bi]. В этом случае единственной точкой ж* Е [ai , bi] минимума будет стационарная точка, в которой /'(ж*) = 0. Отметим, что непрерывно дифференцируемая уни модальная на отрезке функция может иметь на нем более одной стационарной точки.
В методе средней точки используют простую идею:
вычисляют |
производную f'(xi) = К\ в |
средней |
точке х\ = |
||
= (ai + bi)/2 |
исходного отрезка и, |
если |
К\ > 0 , |
то отрезок |
|
[$i, &i] отбрасывают, так как на |
нем строго |
унимодальная |
|||
функция только возрастает, а если К\ < 0, то |
отбрасывают |
отрезок [ai,®i], поскольку на нем строго унимодальная функ ция лишь убывает. В данном случае отбрасывание половины исходного отрезка [oi, bi] аналогично процедуре исключения отрезка. Ясно, что в случае К = 0 имеем ж* = ж.
Оставшуюся после отбрасывания половину отрезка обозна чим [ог, Ьг] и) вычислив производную /'(жг) = Кч в его средней точке а?2 = (02 + Ьг)/2, повторим процедуру отбрасывания поло вины отрезка и т.д. Условием прекращения вычислений на к-м шаге может быть выполнение неравенства < е*, где lk+1 = = bk+1 — afc+i — длина отрезка [а^+ь fyt+i] после отбрасывания половины отрезка [a*, 6^]; е» — наибольшая допустимая длина интервала неопределенности.
Метод средней точки напоминает метод дихотомии, но сходится к искомому значению ж» быстрее, поскольку в отличие от (2.8) для метода средней точки после вычисления п значений производной минимизируемой на отрезке [0, 1] функции /(ж) для длины интервала неопределенности получаем
(2 .22)
Таким образом, для одинакового уменьшения значения 1п в методе средней точки нужно вычислить вдвое меньше значений производной функции по сравнению с числом значений самой функции в методе дихотомии.
М етод Н ьютона. Если строго унимодальная на отрез ке [о, Ь] функция /(ж) дважды непрерывно дифференцируема на этом отрезке, то точку ж* € [о, 6] минимума этой функ ции можно найти путем решения уравнения /'(ж) = 0 методом Ньютона, иногда называемым методом касательных. Пусть жо € [о, 6] — нулевое приближение к искомой точке ж*, назы ваемое обычно начальной точкой. Линеаризуем функцию /'(ж) в окрестности начальной точки, приближенно заменив ду гу графика этой функции касательной в точке (жо, / '( жо)):
Выберем в качестве следующего приближения к х* точку х\ пересечения касательной с осью абсцисс (рис. 2.13). При равнивая нулю правую часть (2.23), получаем первый элемент
х\= XQ — |
итерационной последовательности {ж*.}. На |
/ |
(*о) |
(к + 1)-м шаге по найденной на предыдущем шаге точке х* мож но найти точку
Zfc+l = Х к ~ |
г ы |
(2.24) |
|
f " ( x k )
Для квадратичной функции f(x) функция f'(x) линейна. По этому в (2.23) равенство будет точным, а метод Ньютона будет сходиться за один шаг при любом выборе точки хо из области определения этой функции.
В общем случае сходимость метода Ньютона существенно зависит от выбора начальной точки хо. Для надежной рабо ты этого метода необходимо, чтобы вторая производная f"(x) в окрестности искомой точки х* сохраняла знак, а началь ная точка хо выбиралась из такой окрестности. В противном случае второе слагаемое в правой части (2.24) может стать неограниченным. Поскольку для дважды непрерывно диффе ренцируемой функции в точке минимума /"(х*) > 0, то должно быть и f"(x о) > 0. Поэтому говорят, что метод Ньютона обла дает локальной сходимостью в том смысле, что надо выбрать
хорошее начальное приближение, попадающее в такую окрест ность точки х*, где /"(х ) > 0. Однако проверка выполнения этого условия не всегда возможна.
Достаточное условие надежной работы метода Ньютона при нахождении точки х* Е [а, Ь] минимума функции /(х ) мож но установить в случае, если эта функция трижды непрерывно дифференцируема на отрезке [а, 6]. Ясно, что итерационная по следовательность {х*} будет сходиться к пределу х* монотонно,
если 0 < —— |
< 1 . |
В соответствии с формулой Тейлора с |
||
X* Xfc |
|
|
|
|
остаточным членом в форме Лагранжа имеем |
|
|||
/'(* .) = 0 = П х к) + /"(* * )(* , - |
хк) + f'"(x ){X*~2X— > |
|||
где точка х лежит между х& и х*. |
Поэтому с учетом (2.24) |
|||
имеем |
|
|
|
|
ж* - Sfc+1 |
* |
к + f " ( x k)_ г _________ 2_______. |
||
Х * ~ Х к |
|
Х , - Х к |
0 , |
- Х к) 2 ' |
/'(**)
Таким образом, последовательность {х*} является монотонной,
f " ( x ) |
0, т.е. достаточным условием монотонной сходи- |
если т-.- : > |
|
J \хк) |
|
мости метода Ньютона будут постоянство в интервале между
точками хо и х* |
знака производной |
f ,n(x) и совпадение его |
со знаком /'(хо). |
Оказывается [II], |
что в этом случае метод |
Ньютона обладает квадратичной скоростью сходимости в не которой 5-окрестности U(x*,5) точки х*, причем
|Х* Xk\ ^ (х, -g fe -l)2
С
где
min |/;^д)!
(2.25)
max|/,,,(a:)| ’
минимум и максимум вычисляются по множеству и(ж*,<5).
Если радиус 5-окрестности U(a:*,5) не превосходит С , а точ ка Хк попадает в окрестность U(a;*,5/2), то и следующая точка оказывается в этой окрестности, т.е. итерационная последова тельность не выходит за пределы окрестности U(rc*,5/2). В этом случае верна оценка [II]
\хк —2*1 < \хк- 1 —xk\i |
(2-26) |
которую можно использовать для оценки точности найденно го решения уравнения f'(x) = 0 (точки локального минимума функции).
Пример 2 .6. Найдем точку я* наименьшего значения функции f(x) = х2 + 16/х на отрезке [1, 4].
Вычислим f'(x) = 2х — 16/т2, f"(x) = 2 + 32/х3 и f'"{x) = = —96/х4. Всюду на отрезке [1, 4] имеем f"{x) > 0, /'"(т ) < 0. Поэтому, если начальную точку XQ выбрать исходя из условия f'(xо) < 0, то построенная итерационная последовательность будет монотонной.
Выберем XQ = 1 и вычислим /'(то) = —14, /"(то) = 34, а затем, используя (2.24) при к = 0, получим
Х \ — X Q |
f'{xо) |
«1,4118. |
|
f" {xо)
Далее при помощи (2.24) последовательно находим тг « 1,8010, тз « 1,9790, Т4 « 1,9998.
Предположим, что верна оценка (2.26). Тогда |т4 —т*| ^ ^ |тз — T4I « 0,0208 и, в силу того что последовательность {т*} возрастает, искомая точка т* должна лежать в интер вале (т4, Т4+ 0,0208) = (1,9998, 2,0206). Так как /'(1,9998) « « —0,0012 < 0, /'(2,0206) « 0,1223 > 0, то, действительно, урав нение / '( т) = 0 в интервале (1,9998, 2,0206) имеет корень, ко торый в силу условия / " ( т) > 0, т £ [1 , 4], является точкой минимума функции / ( т). Отметим, что функция / ( т) была рассмотрена в примере 2.4, где получено точное значение т» = 2 точки, в которой функция достигает наименьшего значения.
М одификации м етода Н ьютона. Вычисление второй производной f"{xk) минимизируемой функции / ( х) на каждом к-м шаге метода Ньютона может оказаться достаточно трудо емким. В этом случае целесообразно использовать упрощенный метод Ньютона, положив в (2.24) f"{xk) = f"(x о) = const:
л» |
я . |
|
/Г) о * 7 \ |
It+i |
' т |
- |
(2-27) |
Оказывается, что этот метод имеет линейную скорость схо димости. При этом если в интервале между точками х* и хо выполнено условие f ,{xo)fnf{x) > 0, то последовательность {я*;}, построенная в соответствии с (2.27), сходится к точке х* монотонно.
Можно избежать вычисления второй производной мини мизируемой на отрезке [а, Ь] функции /(х ), если располагать двумя приближениями хо, х\ £ [а, Ъ] к искомой точке х* £ [а, Ь] минимума этой функции. Заменяя в (2.24) при к = 1 производ ную /" (х i) выражением
f'(x i) - f(x o )
Х\ XQ
получаем
г С ) - У ы Г Ы ’
а в случае произвольного номера к £ N приходим к формуле
(2'28)
Метод решения нелинейного уравнения f'{x) = 0 с применением рекуррентного соотношения (2.28) обычно называют методом секущих. Геометрическая интерпретация этого метода состоит в том, что в качестве очередного приближения Xk+i выбирают точку пересечения с осью абсцисс не касательной к графику функции f'{x), как это делают в методе Ньютона, а секущей,
проходящей через две точки этого графика, найденные при выполнении двух предыдущих шагов метода.
Выбор начальной точки то в (2.28) при к = 1 проводят следующим образом. Если на отрезке [о, 6] функция f(x) имеет знакопостоянную третью производную f'"{x), то в качестве XQ выбирают тот конец отрезка [а, Ь], на котором совпадают знаки f'(x ) и f'"(x), а в качестве
af'(b)-bf'(a)
(2.29)
точку пересечения с осью абсцисс хорды, стягивающей дугу графика функции f'(x ) на отрезке [а, Ь] (рис. 2.14). Таким образом, первый шаг метода секущих выполняют согласно методу хорд, а последующие шаги — в соответствии с (2.28). Этот метод имеет сеерхлинейную скорость сходимости [II],
причем |х* —Xk\ ^ С(х* —Xk-\)т, где С = const, а т = —' |
« |
w 1,618 — отношение золотого сечения. |
|
Модификации метода Ньютона обладают только локальной сходимостью, т.е. сходятся, если начальная точка выбрана в некоторой окрестности точки минимума функции. Если же на чальная точка расположена слишком далеко от точки миниму ма, то подобный метод может расходиться или „зацикливать
ся“. В некоторых случаях целесообразно сочетать различные модификации метода Ньютона, чередуя их применение в зави симости от номера шага [И].
М етод кубической аппроксимации. В методах поли номиальной аппроксимации при построении многочлена, ап проксимирующего минимизируемую функцию в окрестности искомой точки ж* минимума, помимо значений функции в от дельных точках могут быть использованы и значения ее про изводных.
Пусть для непрерывно дифференцируемой функции f(x),
строго |
выпуклой на отрезке [жх, Ж2], известны значения /1 = |
= |
/2 = /(®г)> Л = /'(z i) и Л = /'( * г)- Для строго вы |
пуклой функции производная f'(x) возрастает на отрезке [II]. Поэтому если значения f[ и f 2 одного знака, т.е. f [f 2 > 0, то дифференцируемая функция f(x) не имеет стационарных то чек на отрезке [®i, 2:2] и) следовательно, не имеет на нем точки минимума. Если Л Л = 0, то один из концов отрезка являет ся стационарной точкой функции / (ж), в которой эта функция имеет минимум. Наконец, если f [f 2 < 0, то для строго выпук лой функции /1 < 0 и /2 > 0. Следовательно, лишь единственная точка х, € (1 1 , 2:2) будет стационарной, и в ней функция f(x) достигнет минимума. Таким образом, если f [f2 <0 на отрезке
1, 2:2], то рассматриваемая функция строго унимодальна на этом отрезке.
Рассмотрим метод поиска точки ж* 6 (ж*, Ж2) при условии Л Л < 0, называемый методом кубической аппроксима ции, поскольку в этом случае на отрезке [ж1,жг] можно по строить единственный многочлен третьей степени, располагая значениями / г, / 2, Л> Л на концах этого отрезка [II]. Этот многочлен, называемый кубическим интерполяционным много членом Эрмита*, можно преобразовать к виду
#з(ж) = /1 + O I(T - X I) + а2(ж -ж 1)(ж -ж 2) + аз(ж -ж 1)2(ж -ж 2) *Ш. Эрмит (1822-1901) — французский математик.
с коэффициентами
Г |
_ |
/2 - /1 |
) |
|
|
|
о>\— |
ГС2 —^1 |
|
|
|
|
|
|
|
|
|
, |
„ |
/ 2 - / 1 |
|
Л |
(2.30) |
|
|
(X2-^l)^ |
X2~Xi |
||
|
|
|
|||
|
|
/ 2 + /1 |
_ о / 2 - / 1 |
|
|
k° 3 |
(Z2 - X 1 ) 2 |
(x2 ~ X i ) 3 ' |
|
Несложно проверить, что # 3(xi) = / 1, # 3 (2 :2 ) = / 2 , # 3(2:1) = f[
И # з ( ® 2 ) = / 2 -
Производная # з ( х ) является квадратичной функцией, непрерывной на отрезке [xi, 2:2] и имеющей на его концах раз личные знаки. Поэтому в интервале она может изменить знак лишь один раз в точке х, , которая является стационарной точ кой многочлена #з(х), а именно точкой его минимума, так как производная меняет знак с минуса на плюс.
Из необходимого условия #3 (х) = 0 экстремума этого мно гочлена получаем с учетом (2.30) квадратное уравнение
3o3(a:-2:1)2 - 2 2/f + / 2 Зщ ( x - x i) + f[ = 0.
Х2 —Xi
/
Его решение, принадлежащее интервалу (xi, Х2), представим в виде х* = xi + fi(x2 - xi), где
v + z - f { |
Z =Л+/2-з / 2 - / 1 ^ |
(2.31) |
2ь>Ч [+№ |
Х2 -Х 1 ’ |
|
и покажем, что ц G (0,1). Действительно, поскольку /{ < 0 и /2 > 0, имеем ш > |z|, ш + z — /{ > 0, 2 ш— /{ + /3 > 0. Следова тельно,
Q< |
u + z - f [ |
w + z - f { + (u - z ) |
2w - f [ |
* |
2w - Я + Л |
2 w - /{ + ^ |
2 w - /{ + ^ |
и х * G ( x i , 2:2).
Если /'(х*) = 0, то х* = х* — искомая точка минимума функции /(х ) на отрезке [xi, Х2]. Если же /'(х*) ф 0, то в слу чае < 0 можно отбросить отрезок [х, х^\ и продолжать описанным выше способом поиск точки минимума на отрезке [xi, х*], и наоборот. После каждого приближения правильность вычислений подтверждается уменьшением минимального зна чения многочлена по сравнению с его минимальным значением на предыдущем шаге. Вычисления можно прекратить, когда длина интервала неопределенности, в котором гарантированно находится искомая точка х*, станет меньше заданной наиболь шей допустимой величины е*.
Пример 2.7. Рассмотрим ту же функцию / ( х ) = х 2 + 16/х, что и в примерах 2.4 и 2.6, и найдем точку ее минимума х* на отрезке [xi, Х2] = [1,4].
Вычисляем /1 = 12, /2 = 20 и по формуле /'(х ) = 2х — 16/х2 получаем /{ = —14, / 2 = 7. Используя (2.31), находим г = —10, и —\/198 ~ 14,0712, /х « 0,3677 и х* = х\ + /х(хг — xi) « 2,1031. Так как /'(х+) « 0,5888 > 0, то поиск точки х* продолжаем на
отрезке [х^ , х2^], где х[^ = х\ = 1 и х2^ = х* и 2,1031, причем
/( х ^ ) и 12,0308. |
|
|
|
|
|
После аналогичных вычислений имеем |
и 0,1303, u /1) « |
||||
« 2,9333, |
/х(1) ~ |
0,8342, xi1} = |
х[1} + Ai(1)(x(l)2 - х ^ ) |
« 1,9202, |
|
/'(х1г)) « |
—0,4990 < 0 и /(х£^) ~ 12,0196. Теперь искомая точка |
||||
х* находится в интервале (х ^ , х22^), где х ^ |
= х»1^« |
1,9202 и |
|||
х22^= х* ~ 2,1031. |
|
|
|
||
В итоге аналогичной серии вычислений получаем |
|
||||
z(2) « -0,0939, |
ш(2) «0,5501, |
/х(2) « 0,4365, |
xi2) « |
2,0000. |
Итак, пришли к значению х£2\ у которого четыре верных знака после запятой совпадают с точным значением х* = 2 (см. пример 2.4).