Исследование операций безусловная оптимизация. Курс лекций
.pdf
ния θ = γ = 2 используются в том случае, если построение регулярно- го симплекса не дало удовлетворительного результата. Значения ко- эффициентов β = 0,5 и γ = 2 предложены Нелдером и Мидом как наилучшие. На рис. 2.3 представлены результаты поиска новой точки при разных значениях θ:
z = xнов
|
|
xc |
|
|
x0 |
|
|
а |
|
xc |
z = xнов |
|
xc |
|
z = xнов |
|
|
|
|
|
x0 |
|
x0 |
|
|
|
б |
|
в |
|
|
Рис. 2.3. Растяжение и сжатие симплекса: а – θ = γ > 1 – растяжение; б – θ = β < 1 – сжатие; в – θ = β > 1 – сжатие
Метод Нелдера – Мида – один из самых эффективных методов прямого поиска в случаях небольшой размерности. Эксперименталь- но установлено, что эта эффективность сохраняется при n ≤ 6.
Рассмотрим пример.
Пример 2.1. Найти минимум f(x) = [ x12 + (x2 + 1)2][( x12 + (x2 – 1)2].
Пусть х(0) = 8,5, а ε = 7. В табл. 2.1 представлены результаты решения примера с использованием метода поиска по симплексу.
|
|
|
|
|
Таблица 2.1 |
|
Результаты решения задачи методом поиска по симплексу |
||||
|
|
(k ) |
|
|
|
№ точки |
|
(k ) |
F(x) |
Комментарии |
|
|
|
x1 |
x2 |
|
|
x(0) |
|
8 |
5 |
8000 |
– |
|
|
|
|
|
Окончание табл. 2.1 |
|
|
(k ) |
|
|
|
№ точки |
|
(k ) |
F(x) |
Комментарии |
|
|
|
x1 |
x2 |
|
|
x(1) |
|
8,5176 |
6,9318 |
14594,21 |
Рост функции, смена вершины |
41
x(2) |
6,5858 |
6,4142 |
7148,2 |
Направление верное |
x(3) |
6,0682 |
4,4824 |
3273,775 |
– |
x(4) |
4,654 |
5,8966 |
3159,08 |
– |
x(5) |
4,1364 |
3,9648 |
1081,553 |
– |
x(6) |
2,7222 |
5,379 |
1278,8411 |
Рост функции, смена шага |
x(7) |
2,2046 |
3,447 |
267,2972 |
Направление верное |
x(8) |
3,6188 |
2,033 |
315,7569 |
Рост функции, смена вершины |
x(9) |
1,687 |
1,5154 |
28,5434 |
Направление верное |
x(10) |
0,2728 |
2,9296 |
58,927 |
Рост функции, смена шага |
x(11) |
–0,2448 |
0,9978 |
0,242792 |
Направление верное |
x(12) |
1,1694 |
–0,4164 |
5,7625 |
Выполнено условие окончания |
|
|
|
|
поиска |
Итак, решением данной задачи будет х* = (–0,2448; 0,9978) и F* =
= 0,243.
Решим данный пример методом Нелдера – Мида.
Пусть х(0) = 8,5. В табл. 2.2 представлены результаты поиска с ис- пользованием метода Нелдера – Мида.
|
|
|
|
Таблица 2.2 |
|
Результаты решения задачи методом Нелдера – Мида |
|||
|
|
|
|
|
№ точки |
(k ) |
(k ) |
F(x) |
Комментарии |
|
x1 |
x2 |
|
|
x(0) |
8 |
5 |
8000 |
|
x(1) |
8,5176 |
6,9318 |
14594,21 |
|
x(2) |
6,9318 |
8,5176 |
14496,21 |
Сжатие –0,75 |
x(3) |
2,28125 |
3,2064 |
229,26 |
Растяжение 2,5 |
x(4) |
0,38 |
–2,36 |
22,79 |
– |
x(5) |
–1,35 |
–2,9 |
92,53 |
– |
x(6) |
–1,8 |
–0,57 |
19,37 |
Сжатие –0,5 |
x(7) |
0,64 |
1,435 |
3,8 |
Растяжение 0,5 |
x(8) |
0,548 |
1,668 |
5,54 |
Сжатие –0,8 |
x(9) |
0,018 |
– 1,6 |
2,46 |
Сжатие –1,5; –0,7 |
x(10) |
–0,416 |
– 1,45 |
2,34 |
Сжатие 0,2; –1,3 |
x(11) |
–0,03 |
– 1,13 |
0,077 |
Конец поиска |
Итак, решением данной задачи будет х* = (–0,03; –1,13) и F* = 0,077. Применение метода Нелдера – Мида дает оптимальное решение на одиннадцатом шаге и лучший результат, чем при применении ме-
тода поиска по симплексу.
2.2.3. Метод Хука – Дживса
Метод поиска по симплексу и модифицированный метод поиска по деформируемому многограннику (метод Нелдера – Мида) основа-
42
ны на построении геометрического образа из пробных точек и поис- ка такого направления, вдоль которого значение целевой функции улучшается.
Ученые Хук и Дживс предложили определять направление поиска не только на каждом шаге алгоритма, но и по каждой координате. Метод Хука – Дживса является одним из первых алгоритмов, в кото- рых при определении нового направления поиска учитывается ин- формация, полученная на предыдущем шаге. Перебор координат с целью определения направления движения к оптимуму называется исследующим поиском. Процедура Хука – Дживса представляет со- бой комбинацию исследующего поиска с циклическим изменением переменных и ускоряющегося поиска по геометрическому образцу с использованием определенных эвристических правил. Исследующий поиск ориентирован на выявление характера локального поведения целевой функции и определение направлений вдоль «оврагов». Полу- ченная в результате исследующего поиска информация затем исполь- зуется в процессе поиска по образцу при движении по «оврагам».
Исследующий поиск
Для проведения исследующего поиска необходимо задать вели- чину шага, которая может быть различной для разных координатных направлений и изменяться в процессе поиска. Исследующий поиск начинается в некоторой исходной точке. Если значение целевой функции в пробной точке не превышает значения функции в исход- ной точке, то шаг поиска рассматривается как успешный. В против- ном случае необходимо вернуться в предыдущую точку и сделать шаг в противоположном направлении с последующей проверкой значения целевой функции. После перебора всех n координат иссле- дующий поиск завершается. Полученную в результате точку назы-
вают базовой точкой.
Поиск по образцу
Поиск по образцу заключается в реализации единственного шага из полученной базовой точки вдоль прямой, соединяющей эту точку с предыдущей базовой точкой. Новая точка образца определяется в соответствии с формулой
xp(k +1) = x(k ) + (x(k ) − x(k −1) ).
43
Как только движение по образцу не приводит к уменьшению це- левой функции, точка xp(k +1) фиксируется в качестве временной ба-
зовой точки, и вновь проводится исследующий поиск. Если в резуль- тате получается точка с меньшим значением целевой функции, чем в точке x(k), то она рассматривается как новая базовая точка. С другой стороны, если исследующий поиск неудачен, необходимо вернуться
вточку x(k) и повторить процедуру поиска с целью выявления нового направления оптимизации. Если это не приведет к успеху, то следует уменьшить величину шага, введя некоторый множитель, и возобно- вить исследующий поиск. Поиск завершается, когда величина шага становится достаточно малой. Последовательность точек, получаемую
впроцессе реализации метода, можно записать в следующем виде:
x(k) – текущая базовая точка;
x(k – 1) – предыдущая базовая точка;
xp
x(k + 1) – следующая (новая) базовая точка.
Метод Хука – Дживса характеризуется несложной стратегией по- иска и невысоким уровнем требований к объему памяти компьютера, что можно отнести к его достоинствам. Существует несколько усо- вершенствований данного метода, в частности, увеличения шага при движении по образцу для ускорения достижения оптимума.
Недостатками метода являются сложность его применения к «ов- ражным» функциям, а также часто возникающая цикличность дви- жения по координатам, когда алгоритм не находит выхода к поиску по образцу.
Рассмотрим решение задачи методом Хука – Дживса на данных примера 2.1.
Пример 2.2. Найти минимум f(x) = [ x12 + (x2 + 1)2][( x12 + (x2 – 1)2].
Пусть х(0) = 8,5, а х = (0,5; 0,3). В табл. 2.3 представлены резуль- таты поиска с использованием метода Хука – Дживса.
|
|
|
|
|
Таблица 2.3 |
|
|
Решение задачи методом Хука – Дживса |
|||
|
(k ) |
|
|
|
|
№ точки |
(k ) |
F(x) |
Комментарии |
||
|
x1 |
|
x2 |
|
|
x(0) |
8 |
|
5 |
8000 |
– |
(0) |
8,5 |
|
5 |
9553,06 |
Рост, шаг в противоположном направ- |
xp1 |
|
|
|
|
лении |
|
|
|
|
|
|
44
|
|
|
|
|
Окончание табл. 2.3 |
|
(k ) |
|
|
|
|
№ точки |
(k ) |
F(x) |
Комментарии |
||
|
|
x1 |
x2 |
|
|
(0) |
7,5 |
5 |
6665,1 |
Направление верное |
|
xp 2 |
|
|
|
|
|
(0) |
7,5 |
5,3 |
7170,5 |
Рост, шаг в противоположном направ- |
|
xp3 |
|
|
|
лении |
|
|
|
|
|
|
|
(0) |
7,5 |
4,7 |
6206,5 |
Направление верное. Это базовая точка |
|
xp 4 |
|
|
|
|
|
x(1) |
7 |
4,4 |
4733,4 |
Движение по образцу |
|
( |
) |
6,5 |
4,4 |
3842,6 |
– |
1 |
|
|
|
|
|
xp1 |
|
|
|
|
|
( ) |
6,5 |
4,1 |
3540 |
Направление верное. Это базовая точка |
|
1 |
|
|
|
|
|
xp2 |
|
|
|
|
|
x(2) |
6 |
3,8 |
2588,3 |
Движение по образцу |
|
(2) |
5,3 |
3,8 |
1837,1 |
х = (0,7; 0,4) |
|
xp1 |
|
|
|
|
|
(2) |
5,3 |
3,4 |
1606,2 |
Направление верное. Это базовая точка |
|
xp 2 |
|
|
|
|
|
x(3) |
4,6 |
3 |
935 |
Движение по образцу |
|
( |
) |
4,1 |
3 |
682,8 |
х = (0,5; 0,3) |
3 |
|
|
|
|
|
xp1 |
|
|
|
|
|
(3) |
4,1 |
2,7 |
600,9 |
Направление верное. Это базовая точка |
|
xp 2 |
|
|
|
|
|
x(4) |
3,6 |
2,4 |
365,8 |
Движение по образцу |
|
(4) |
3,1 |
2,4 |
244,9 |
– |
|
xp1 |
|
|
|
|
|
(4) |
3,1 |
2,1 |
208 |
Направление верное. Это базовая точка |
|
xp2 |
|
|
|
|
|
x(5) |
2,6 |
1,8 |
108 |
Движение по образцу |
|
Из табл. 2.3 видно, что происходит плавное уменьшение целевой функции, которое требует лишь уточнения величины шага. Оптималь- ное значение получается на восьмом шаге: х* = (0; 0,8) и F* = 0,13. Это решение найдено быстрее, чем методом поиска по симплексу, и зна- чение целевой функции лучше.
2.3. Градиентные методы
Рассмотренные выше методы прямого поиска очень важны для применения в практических задачах в тех случаях, когда вычисление градиента целевой функции затруднено или когда функция не зада- ется в явном виде, а является результатом некоторых эксперимен- тальных данных. В тех же случаях, когда вычисление градиента функции возможно, целесообразно применять методы, основанные на условии оптимальности первого порядка: grad (f(x)) = 0.
Предполагается, что целевая функция f(x) дифференцируема; f(x), grad (f(x) и grad2 (f(x)) существуют и непрерывны, а также, что ком-
45
поненты градиента могут быть вычислены с достаточно высокой сте- пенью точности численными методами.
Все градиентные методы основаны на итерационной процедуре, реализуемой в соответствии с формулой
x(k +1) = x(k ) + α(k ) s(x(k ) ), |
(2.8) |
где x(k) – текущее приближение к решению x*;
α(k) – параметр, характеризующий длину шага;
S(x(k)) = S(k) – направление поиска в n-мерном пространстве управляемых переменных xi, i = 1, 2, …, n.
Методы отличаются друг от друга способом определения величин α(k) и S(k). Рассмотрим метод наискорейшего спуска (метод Коши), метод Ньютона, метод сопряженных градиентов и квазиньютонов- ские методы.
2.3.1. Метод Коши (метод наискорейшего спуска)
Пусть в некоторой точке x требуется определить направление наис- корейшего локального спуска. Известно, что дифференцируемую функ- цию можно разложить в ряд Тейлора в окрестности некоторой точки. Разложим целевую функцию в окрестности точки x в ряд Тейлора:
|
T |
(x), |
(2.9) |
|
f (x) = f (x) + [ f (x)] |
x + О2 |
|||
где О2(х) – члены второго порядка малости и выше.
Отбрасывая в формуле (2.9) все члены второго порядка и выше, получим следующий результат:
|
|
T |
x. |
(2.10) |
f (x) = f (x) + ( f (x)) |
|
|||
Очевидно, что уменьшение целевой функции определяется вто- рым слагаемым в формуле (2.10). Перенося f (x) в этой формуле в левую сторону, получаем
|
T |
(2.11) |
|
f (x) − f (x) = |
f (x) = [ f (x)] |
x. |
|
Так как значение f (x) фиксировано, а мы ищем минимум функ- ции, то уменьшение f(x) ассоциируется с выбором такого направле- ния s(x(k ) ) из формулы (2.8), которому соответствует наименьшая
46
отрицательная величина скалярного произведения, стоящего в пра- вой части формулы (2.11).
Из свойства скалярного произведения известно, что указанный выбор обеспечивается при следующем условии:
S(x) = −f (x),
тогда найдем x, используя формулу (2.8):
x |
(k +1) |
− x |
(k ) |
= x = −α |
(k ) |
f (x), |
|
||
|
|
|
|
|
(2.12) |
||||
|
|
|
|
|
|
|
|
|
|
и формула (2.11) принимает вид |
|
|
|
|
|||||
|
|
|
|
|
T |
|
|
|
|
f (x) = −α(k ) [ f (x)] |
|
f (x). |
|
||||||
Это и есть направление наискорейшего локального спуска. |
|
||||||||
Формулу (2.12) можно записать следующим образом: |
|
||||||||
|
x(k +1) |
= x(k ) − α(k ) f (x(k ) ), |
(2.13) |
||||||
где α(k) – положительный параметр.
На рис. 2.4 показана реализация поиска минимума методом Коши. Отчетливо видно, что каждое новое направление движения ортого- нально предыдущему.
Рис. 2.4. Траектория движения в точку минимума методом наискорейшего спуска
47
Формула (2.13) и является формулой, определяющей каждый по- следующий шаг поиска минимума функции по методу Коши. Метод Коши довольно медленно сходится, но является весьма устойчивым.
Уданного метода есть два недостатка:
1)необходимость на каждом шаге просчитывать значение α(k) пу- тем решения задачи минимизации f(x(k+1)) вдоль направления гради- ента функции с помощью любого метода одномерного поиска;
2)медленная сходимость в окрестности точки оптимума.
Исходя из изложенного, метод Коши целесообразно применять, когда поиск начинается на значительном расстоянии от точки опти- мума, т.е. в начале поиска. В качестве условия окончания поиска
применяется малая величина градиента: f (x) ≤ ε или малая вели- чина х: x ≤ ε.
2.3.2. Метод Ньютона
Направление, противоположное градиенту, не может служить единственным правилом поиска экстремума функции. Для некото- рых нелинейных функций использование данного направления поис- ка может привести к медленной сходимости. В таких случаях целе- сообразно использовать градиент второго порядка исследуемой функции. Примером такого подхода является метод Ньютона.
Разложим исследуемую функцию в ряд Тейлора:
|
|
(k ) |
|
(k ) |
|
T |
|
1 |
T |
|
2 |
|
(k ) |
|
|
3 |
|
|
f (x) = |
f (x |
|
) + f (x |
|
) |
|
x + |
|
( x) |
|
|
f (x |
|
) |
x + O3 ( x |
|
), |
(2.14) |
|
|
|
2 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где f(x) – аппроксимирующая функция переменной х, построенная в окрестности точки х(k); О3(х) – члены третьего порядка и выше, кото- рыми можно пренебречь.
Отбросив в формуле (2.14) все члены третьего порядка и выше, получим следующий результат:
|
(k ) |
|
|
|
(k ) |
|
(k ) |
|
T |
|
1 |
T |
|
2 |
|
(k ) |
|
f (x, x |
|
) |
= |
f (x |
|
) + f (x |
|
) |
|
x + |
|
( x) |
|
|
f (x |
|
) x, (2.15) |
|
|
|
|
2 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где f (x, x(k ) ) |
– аппроксимирующая функция переменной х, постро- |
||||||||||||||||
енная в точке x(k).
Следующую точку х(k + 1) будем определять таким образом, чтобы в этой точке градиент аппроксимирующей функции обращался в ноль. Тогда из формулы (2.15) имеем
48
f (x, x(k ) ) = f (x(k ) ) + 2 f (x(k ) ) x = 0
и можно найти х:
x= − 2 f (x(k ) ) −1 f (x(k ) ).
Так как х = х(k + 1) – x(k), то можно записать
|
(k +1) |
= x |
(k ) |
|
2 |
|
(k ) |
|
−1 |
f (x |
(k ) |
|
(2.16) |
x |
|
|
− |
|
f (x |
|
) |
|
|
). |
На основе формулы (2.16) осуществляется итерационная проце- дура поиска оптимума в данном методе. Данный метод сходится не для всех нелинейных функций. Метод целесообразно применять, ко- гда поиск осуществляется в окрестности оптимума. Если начальная точка находится на значительном расстоянии от оптимума, то метод может дать расхождение, т.е. следующая точка перекроет точку оп- тимума. В качестве условия окончания поиска здесь применяется
малая величина градиента: f (x) ≤ ε.
Рассмотрим пример.
Пример 2.3. Необходимо исследовать следующую функцию:
f (x) = x13 − x1x2 + x22 − 2x1 + 3x2 − 4.
Задана начальная точка х(0) = (4; –3). Решение. Используем метод Коши. Вычислим градиент целевой функции:
∂f |
|
= 3x12 − x − 2; |
|
|
|||
∂x1 |
2 |
||
|
|
|
|
∂f |
= − x |
+ 2x + 3. |
|
|
|||
∂x2 |
2 |
||
1 |
|||
В начальной точке имеем f (x) = (49;− 7), тогда
x1(1) = 4 − 49α(0) ; x2(1) = −3 + 7α(0) .
Подставив эти значения в целевую функцию, мы получим функ- цию, зависящую только от одной переменной – α(0). Найти оптимум
49
данной функции можно, решая задачу одномерной оптимизации от- носительно α(0).
f (α(0) ) = (4 − 49α(0) )3 − (4 − 49α(0) )(7α(0) − 3) + (7α(0) − 3)2 − −2(4 − 49α(0) ) + 3(7α(0) − 3) − 4
или
f (α) = −117649α3 + 29204α2 − 2450α + 64 → min.
Решим ее методом Ньютона – Раффсона и получим α(0) = 0,078. Теперь можно вычислить точку х(1) : х(1) = (0,18; 8,55). Вычислим гра- диент в новой точке:
f (x(1) ) = (10,46; 19,92).
Если условие окончания поиска не выполняется, то поиск следует продолжить, используя значение переменной х(1) = (0,18; 8,55) для определения точки х(2) и так далее, пока не будет выполнено условие окончания поиска.
2.3.3. Метод Марквардта
Метод Марквардта был разработан с целью устранить зависи- мость сходимости от выбора начальной точки. Для реализации дан- ного метода необходимо, чтобы исследуемая функция была дважды дифференцируема. Марквардт предложил определять направление поиска по следующей формуле:
s(x(k ) ) = −(H (k ) + λ(k ) I )−1 f (x(k ) ), |
(2.17) |
где H(k) – матрица Гессе, вычисленная в точке х(k); λ – параметр, не только характеризующий направление поиска, но и позволяющий регу- лировать длину шага, поэтому в формуле (2.8) полагают, что α(k) = 1, так как длину шага теперь регулирует параметр λ(k); I – единичная мат- рица.
В начале поиска параметру λ обычно придают большое значение, например, λ = 105. Очевидно, что большим значениям λ соответству- ет направление поиска, противоположное градиенту. Из формулы (2.17) видно, что с уменьшением значения λ до нуля направление s(x) изменяется от начального направления, противоположного градиен-
50
