Исследование операций безусловная оптимизация. Курс лекций
.pdf
Тогда можно ввести переменную µ:
μ = |
f |
2′ + w − z |
|
|
|
. |
|
|
|
||
|
f1′+ f2′ + 2w |
||
Используя формулу для вычисления корней квадратного уравне- ния (1.7), запишем решение, определяющее стационарную точку ап- проксимирующего кубического полинома в следующем виде:
x , |
μ < 0, |
|
|
2 |
− μ(x2 − x1), |
0 ≤ μ ≤ 1, |
(1.8) |
x = x2 |
|||
x , |
|
μ > 1. |
|
1 |
|
|
|
Формула для w обеспечивает надлежащий выбор одного из двух корней квадратного уравнения; для значений µ, заключенных в ин- тервале от 0 до 1, формула (1.8) гарантирует, что получаемая точка х расположена между x1 и x2. Затем снова выбираются две точки для реализации процедуры кубической аппроксимации – это х и одна из точек x1 или x2, причем значения производной исследуемой функции в этих точках должны быть противоположны по знаку. Процедура повторяется до окончания поиска.
Проверка на окончание поиска производится по двум параметрам ε1 и ε2, где ε1 такое, что |f'(x)| ≤ ε1, и ε2 такое, что
x − x1 ≤ ε2. x
Если оба этих условия выполняются, то поиск заканчивается. Данный метод является более эффективным, чем метод квадра-
тичной аппроксимации в том случае, если значение производной можно вычислить. Если же значение производной вычисляется пу- тем разностного дифференцирования, то предпочтение следует отда- вать методу Пауэлла, основанному на квадратичной аппроксимации.
Оценка всех изложенных методов проводилась по двум критери- ям: по степени точности желаемого решения и по виду целевой функции. Сравнительный анализ показывает, что если необходимо получить решение с очень высокой точностью, то более эффектив- ными оказываются методы полиномиальной аппроксимации.
Решим задачу оптимизации, рассмотренную в методе Пауэлла. Пример 1.4. Найти точку минимума функции
F(x) = (10x3 + 3x2 + x + 5)2.
31
Заданы: начальная точка х1 = 2, длина шага х = 0,5 и ε = 1,1. Решение. Найдем значение производной функции в начальной точке:
F'(x1) = 26334 и производную в следующей точке: х2 = х1 + х = 2,5: F'(x2) = 74277,5. Так как в этих точках производные имеют одинако- вый положительный знак, то возьмем другую точку: х2 = х1 – х = 1,5 и F'(x3) = 7285. Это направление правильное, так как значение произ- водной функции уменьшилось. Будем двигаться в этом направлении по заданному шагу до тех пор, пока значение производной функции
не станет отрицательным. Это произойдет в точке х6 = х5 – |
х = –0,5 – |
|||||||
– 0,5 = –1 и F'(x6) = –150. |
|
|
|
|
|
|||
Итак, х1 = –1, F(х1) = 9 и х2 = 2, F(х2) = 9801. |
|
|
|
|||||
|
|
|
|
|
|
|
|
Таблица 1.4 |
|
|
Решение методом кубической аппроксимации |
|
|||||
|
|
|
|
|
|
|
|
|
Шаг |
х |
|
f'(x) |
f |
z |
ω |
μ |
x''' |
1 |
–1 |
|
–150 |
9 |
16392 |
16512 |
0,45 |
0,666 |
|
|
|
|
|
|
|
|
|
|
2 |
|
26334 |
9801 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,666 |
|
364,251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
–1 |
|
–150 |
9 |
52,16 |
239,5 |
0,56 |
–0,26 |
|
|
|
|
|
|
|
|
|
|
0,666 |
|
364,251 |
99,017 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–0,26 |
|
13,9091 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
–1 |
|
–150 |
9 |
–192 |
197,1 |
0,72 |
–0,79 |
|
|
|
|
|
|
|
|
|
|
–0,26 |
|
13,909 |
22,7386 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–0,79 |
|
33,0749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
–1 |
|
–150 |
9 |
–3,21 |
70,51 |
0,33 |
–0,86 |
|
|
|
|
|
|
|
|
|
|
–0,79 |
|
33,0749 |
1,19169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–0,86 |
|
–1,3737 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
–,862 |
|
–1,37371 |
0,00144 |
–20,8 |
21,88 |
0,97 |
–0,86 |
|
|
|
|
|
|
|
|
|
|
–0,79 |
|
33,0749 |
1,19169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–0,86 |
|
–0,06346 |
0,0000031 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Из табл. 1.4 видно, что решение получено на четвертом шаге, Fmin = 0,0000031 и xmin = –0,86. Очевидно, что это решение лучше, чем решение, полученное методом Пауэлла (Fmin = 0,09 и xmin = –0,843), что доказывает превосходство метода кубической аппроксимации.
Очевидно, что на последней итерации уже выполняется условие окончания поиска:
|f(–0,86) – f(0,862)| = 0,001 < ε.
32
Контрольные вопросы
1.Почему условие унимодальности функции столь важно при ре- шении задачи оптимизации заданной функции?
2.Известно, что вычисление производной функции возможно только с помощью разностного дифференцирования. Какой из мето- дов поиска экстремума эффективен в этом случае?
3.Какие условия окончания поиска оптимума вы знаете? Зависят ли они от конкретных методов?
4.Каким условиям должна удовлетворять функция, чтобы ее мож- но было оптимизировать любым методом с использованием произ- водных?
5.Что такое точка перегиба и как ее идентифицировать?
6.Может ли метод Ньютона – Рафсона дать расхождение? Почему?
7.Какой базовый принцип для выбора начальной точки положен в метод средней точки и метод секущих. Почему?
8.В каких случаях целесообразно применение метода квадратич- ной аппроксимации для поиска оптимума функции одной перемен- ной?
9.Известно, что функция одной переменной дважды дифферен- цируема. Какой метод целесообразно применить для поиска ее опти- мума?
33
2.МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ (МНОГОМЕРНАЯ ОПТИМИЗАЦИЯ)
Вданном разделе рассматриваются методы оптимизации функции нескольких переменных. Изучив этот материал, вы:
•получите представление об условиях применения многомерной оптимизации для реальных задач;
•сможете определить:
–по каким признакам реальную задачу можно идентифицировать как задачу многомерной безусловной оптимизации;
–для каких задач целесообразно применять методы прямого по- иска и в чем их преимущество;
–при каких условиях возможно исследование целевой функции градиентными методами;
–какие условия окончания поиска необходимо применять для за- дач многомерной оптимизации.
2.1. Математическая модель
Постановка задачи оптимизации функции нескольких переменных выглядит следующим образом:
f(x) → min, x Є Rn. |
(2.1) |
при отсутствии ограничений на x, где x – вектор управляемых пере- менных размерности n, f(x) – скалярная целевая функция.
Предполагается:
1) xi (i =1, n) могут принимать любые значения, хотя в ряде прак-
тических приложений на x накладывается условие целочисленности (дискретности);
2)f(x) и ее производные существуют и непрерывны всюду, хотя известно, что оптимум может достигаться и в точке разрыва функции или ее градиента;
3)если исследуемая функция не выпукла, то будем ограничивать- ся идентификацией локальных оптимумов, так как в этом случае функция может быть мультимодальной.
Рассмотрим критерии, по которым идентифицируется точка оп- тимума. Известно, что в окрестности некоторой точки x функцию
можно разложить в ряд Тейлора. Разложим исследуемую функцию в ряд Тейлора второго порядка:
34
f (x) = f (x) + f (x)T |
x + |
1 |
( x)T 2 |
f (x) x + Q ( x), |
||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
3 |
|
|
|
|
|
|
|
где x |
– точка разложения из пространства R ; x – величина измене- |
|
n |
~ |
|
|
|
ния x; f (x ) – n-мерный вектор-столбец первых производных f(x), |
|||
вычисленных в точке x ; |
|
2 |
f (x) – симметрическая матрица порядка |
|
|
|
|
n×n вторых частных производных f(x), вычисленных в точке x (мат- рица Гессе); Q3( x) – сумма всех членов разложения, имеющих по- рядок по x выше второго.
Пренебрегая членами третьего и высших порядков, определим ве- личину изменения целевой функции, соответствующего произволь- ному изменению x:
f (x) = f (x) − f (x) = f (x)T |
x + |
( |
x)T 2 f (x) x. |
(2.2) |
||
|
|
|
1 |
|
|
|
|
|
|
2 |
|
|
|
Так как функция исследуется на минимум, то в окрестности точки минимума все значения целевой функции будут больше минималь- ного, т.е. имеет место неравенство
f (x) = f (x) − f (x) ≥ 0. |
(2.3) |
|
|
Точка x является точкой глобального минимума, если неравенст- во (2.3) выполняется для всех x Є Rn. Когда формула (2.3) справедли- ва лишь в некоторой окрестности точки x , то x есть точка локально- го минимума.
Аналогичные рассуждения справедливы и для исследования функции на максимум. Если в окрестности точки x выполняется неравенство
f (x) = f (x) − f (x) > 0,
то x является точкой строгого минимума. В случае, когда в окрест-
ности точки x , в которой f (x) = 0 |
, f(x) принимает как положи- |
||
|
|
|
|
тельные, так и отрицательные значения, точка |
|
представляет собой |
|
x |
|||
седловую точку (рис. 2.1).
Рассмотрим формулу (2.2). Для того чтобы знак f(x) не менялся
при произвольном варьировании |
х, градиент функции должен быть |
||||
равен нулю, т.е. x должна быть стационарной точкой: |
f (x) |
= 0, и |
|||
|
|
|
|
|
|
формула (2.2) принимает следующий вид: |
|
|
|||
|
1 |
|
|
|
|
f (x) = |
2 |
( x)T 2 f (x) x. |
|
|
|
|
|
|
|
|
|
35
Рис. 2.1. Седловая точка (х*, у*)
Очевидно, что знак f(x) определяется квадратичной формой
Q(x) = ( x)T 2 f (x) x
или
Q(x) = ( x)T H x, |
(2.4) |
|
где Н – матрица вторых частных производных функции (матрица Гессе). Из линейной алгебры известно, что
•Н – положительно определенная матрица, если Q(x) > 0 для любых x;
•H – положительно полуопределенная матрица, если Q(x) ≥ 0 для любых x;
•H – отрицательно определенная матрица, если Q(x) < 0 для лю- бых x;
•H – отрицательно полуопределенная матрица, если Q(x) ≤ 0 для любых x;
•H – неопределенная матрица, если Q(x) > 0 для некоторых x и Q(x) < 0 для остальных x.
Тогда можно утверждать, что стационарная точка x есть:
•точка минимума, если 2 f (x) – положительно полуопреде- ленная матрица;
36
•точка максимума, если 2 f (x) – отрицательно полуопреде- ленная матрица;
•седловая точка, если 2 f (x) – неопределенная матрица.
Методы, ориентированные на решение задач безусловной много- мерной оптимизации, можно разделить на три больших класса в соот- ветствии с типом используемого при реализации метода информации:
1)методы прямого поиска (нулевого порядка), основанные на вы- числении значений целевой функции на каждой итерации и сравне- ние этих значений для определения стратегии поиска;
2)градиентные методы первого порядка, в которых используется значение градиента первого порядка исследуемой функции (метод Коши);
3)градиентные методы второго порядка, в которых наряду с гра- диентом первого порядка используется также матрица Гессе – мат- рица вторых частных производных исследуемой функции (методы Ньютона и Марквардта).
2.2. Методы прямого поиска (нулевого порядка)
Среди методов, реализующих процедуру поиска оптимума на ос- нове вычисления значений функции, рассмотрим несколько базовых методов, обладающих хорошей сходимостью каждый для своего класса задач:
1)поиск по симплексу, или S2-метод;
2)метод Нелдера – Мида (метод деформируемых многогранников);
3)метод поиска Хука – Дживса.
Эти методы относятся к категории эвристических и реализуют принципиально различающиеся стратегии поиска.
2.2.1. Метод поиска по симплексу (S2-метод)
Данный метод был предложен ученым Спендли. Процедура дан- ного метода базируется на том, что для поиска минимума эффектив- ным является использование регулярного симплекса. Регулярный симплекс в n-мерном пространстве представляет собой многогран- ник, образованный равноотстоящими друг от друга точками – вер- шинами. Например, в случае двух переменных симплексом является равносторонний треугольник; в трехмерном пространстве симплекс представляет собой тетраэдр. В алгоритме симплексного поиска ис- пользуется важное свойство симплексов, согласно которому новый
37
симплекс можно построить на любой грани начального симплекса, перенеся выбранную вершину на надлежащее расстояние вдоль пря- мой, проведенной через центр тяжести остальных вершин начально- го симплекса. Построенная таким образом вершина является верши- ной нового симплекса, а выбранная при построении вершина началь- ного симплекса исключается. Процесс показан на рис. 2.2.
r
xk
Рис. 2.2. Регулярный симплекс: хk – текущая точка; х0 – центр тяжести; хr – вершина нового симплекса
Работа алгоритма симплексного поиска начинается с построения регулярного симплекса в пространстве независимых переменных и оценивания значений целевой функции в каждой из вершин сим- плекса. При этом определяется вершина, которой соответствует наи- большее значение целевой функции. Затем найденная вершина про- ецируется через центр тяжести остальных вершин симплекса в но- вую точку, которая используется в качестве вершины нового сим- плекса.
Из элементарной геометрии известно, что при заданных началь- ной (базовой) точке x(0) и масштабном множителе α координаты ос- тальных n вершин симплекса в n-мерном пространстве вычисляются по формуле
x (0) |
+ δ |
|
, |
если |
j ≠ i; |
|
|
j |
1 |
|
|
|
|
x(i) = |
|
+ δ |
|
, |
|
j = i, |
x (0) |
2 |
если |
||||
|
j |
|
|
|
|
|
где i и j = 1, 2, 3, … , n.
Приращения δ1 и δ2, зависящие только от n и выбранного мас- штабного множителя α, определяются по формулам
38
δ1 = (n + 1)1/ 2 + n − 1α, n 2
δ2 = (n + 1)1/ 2 − 1α. n 2
При α = 1 симплекс регулярен и его ребра имеют единичную дли- ну. Центр тяжести определяется следующим образом. Пусть x(j) – точка, подлежащая отражению, тогда центр тяжести остальных точек расположен в точке
|
= |
1 |
n |
|
xc |
∑x(i) . |
|||
|
||||
|
|
n i=0 |
||
|
|
|
i≠ j |
|
Известно, что все точки прямой, проходящей через x(j) и хс, зада- ются формулой
х = x(j) + λ(хс – x(j)). |
(2.5) |
При λ = 0 получаем исходную точку, при λ = 1 получаем центр тяжести хс. Для того чтобы симплекс обладал свойством регулярно- сти, отражение должно быть симметричным, следовательно λ = 2. Таким образом,
j |
= 2 |
j |
(2.6) |
хнов |
хс − хпред . |
Подставив значение хс в формулу (2.6), получим
j |
= |
2 |
n |
(i) |
− хпред. худш . |
|
хнов |
|
∑xпред. лучш |
(2.7) |
|||
|
||||||
|
|
n i=0 |
|
|
|
|
|
|
|
i≠ j |
|
|
|
Формула (2.7) позволяет найти новую вершину симплекса на каж- дой итерации.
Если функция убывает достаточно плавно, то итерации продол- жаются до тех пор, пока либо не будет перекрыта точка минимума, либо не начнется циклическое движение по двум или более симплек- сам. В таких ситуациях можно воспользоваться следующими прави- лами.
Правило 1. Перекрытие точки минимума. Если значение целевой функции в вершине, построенной на данной итерации, превышает значения в других вершинах, то для построения следующего сим-
39
плекса вместо нее берется вершина, которой соответствует меньшее по величине значение целевой функции.
Правило 2. Циклическое движение. Если некоторая вершина сим- плекса не исключается на протяжении более чем М итераций, то не- обходимо уменьшить размеры симплекса с помощью масштабного множителя α и построить новый симплекс, выбрав в качестве базо- вой точку, которой соответствует минимальное значение целевой функции. Разработчик метода ученый Спендли предложил вычис- лять М по формуле
М = 1,65n + 0,05n2,
где n – размерность задачи, а М округляется до ближайшего целого числа.
Поиск завершается, когда или размеры симплекса, или разности между значениями функции в вершинах становятся достаточно ма- лыми.
Данный метод имеет ряд недостатков:
1)медленная сходимость алгоритма из-за отсутствия механизма ускорения движения к оптимуму, так как на каждом шаге строится регулярный симплекс;
2)если произошло циклическое движение, то необходимо про- масштабировать все переменные для того, чтобы их значения были сравнимы по величине, так как для всех переменных применяется
один и тот же множитель α.
2.2.2. Метод Нелдера – Мида
Ученые Нелдер и Мид разработали модифицированную процеду- ру поиска оптимума по симплексу, в которой предусмотрено не только отражение, но и растяжение и сжатие симплекса. Если в фор- муле (2.5) λ = 2, то мы получаем регулярный симплекс. В сложных случаях поиск можно ускорить, если сжимать или растягивать сим- плекс. Нелдер и Мид предложили заменить коэффициент λ в форму- ле (2.5) на выражение (1 + θ), тогда формула для поиска новой точки выглядит следующим образом:
x = xmax + (1+ θ)(xc − xmax ).
При θ = 1 имеет место нормальное отражение (см. рис. 2.2); если –1 ≤ θ ≤ 1, то наблюдается сжатое отображение, а если θ > 1, то это растянутое отражение. Коэффициенты сжатия θ = β = 0,5 и растяже-
40
