- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
Из табл. 6.6 видно, что рассмотренные варианты метода Хука — Дживса приводят к заметному уменьшению количества шагов поиска, практически не изменяя точности нахождения точки минимума и значения функции в этой точке.
Отметим еще одну модификацию метода Хука — Джив са, позволяющую определить точку минимума целевой функции двух переменных за один шаг поиска. Графическая иллюстра ция этого метода дана на рис. 6.20. Обратим внимание на то, что процесс поиска точки х 1 в этом варианте совпадает с про цессом ее поиска в варианте, представленном на рис. 6.19, б'. Проводя исследующий поиск в точке х 1 с помощью метода ци клического покоординатного спуска и выбирая на этапе спуска ускоряющий множитель по условию минимума целевой функ ции в установленном направлении спуска, получим точку ж2, совпадающую с точкой минимума рассматриваемой функции.
6.6. Методы Розенброка и Пауэлла
Рассмотрим еще одну стратегию поиска точки минимума ограниченной снизу целевой функции /(ж ), х <ЕШп. Метод, реализующий эту стратегию поиска, также предусматривает проведение исследующего поиска на каждом к-м шаге. Целью исследующего поиска является выбор текущего направления спуска с учетом информации о поведении целевой функции в окрестности точки х к~1, найденной на предыдущем шаге.
Отличие этого метода от метода Хука — Дживса состо ит в способе выбора направлений исследующего поиска. Если в методе Хука — Дживса они фиксированы и коллинеарны напра влениям векторов стандартного базиса в Rn, то в рассматри ваемом методе выбор этих направлений проводят в процессе минимизации целевой функции путем построения на каждом /e-м шаге поиска нового ортонормированного базиса в R71. Ито гом выполнения этого этапа является нахождение точки х к, для которой / ( х к) < f(x k~l). Тогда вектор х к— х к~ 1 определит на правление спуска на к - м шаге.
Такая стратегия поиска впервые была реализовала в I960 году и получила название метода Розенброка*. В первоначаль ном варианте метода Розенброка процедура нахождения точки хк (как и в методе Хука — Дживса) была основана на дискрет ных шагах исследующего поиска по выбранным направлениям. Опишем модификацию этого метода, в которой на каждом к-м шаге поиска выбор координат точки хк проводят методом мо дифицированного циклического покоординатного спуска.
Пусть выбраны начальная точка х° Е и параметр е > О точности поиска. Возьмем в качестве векторов pj, j = 1, n, определяющих направления исследующего поиска на первом шаге, векторы е3 стандартного базиса в Rn. Полагаем k = j —1, хк = а;0 и переходим к основной части алгоритма.
1. Минимизируя функцию ф^к\х) = f(xk+ хрк), находим
значение х ^ Е R, вычисляем хк+1 = хк + х ^ р к и переходим к п.2.
2.Если j < п, то принимаем j := j +1 и возвращаемся к п. 1.
Впротивном случае полагаем хк = хк+1 и переходим к п. 3.
3.Если |xfc —хк~г\< е, где е > 0 — достаточно малое чи сло, характеризующее точность выполнения этапа исследующе го поиска, то дальнейший поиск точки минимума прекращаем, принимая х* « х к и / (х*) « f ( x k). В противном случае перехо дим к п. 4.
4.На к-м шаге поиска строим новый ортонормированный базис, векторы pk+1, j = 1, п, которого задают направления исследующего поиска на ( f c + l ) - M шаге. При построении этого базиса используем процесс ортогонализации Грама — Шмидта
ипроводим его следующим образом. Полагаем
p j ,
о ‘ +1 = <
£ х {к)о^
*1 Рг »
*=7
*См.: Базара |
Ш е т т и К. |
и о
j = l , n .
0-
о
Далее вычисляем
ь‘ +1 = . |
|
а&+1 |
|
|
з = 1; |
|
7 — 1 |
|
|
|
|
|
|
Е («}&+1 , р -+1)р;fc+i |
j = %n, |
||
|
|
г=1 |
|
|
|
и |
|
Ьк.+1 |
|
|
|
|
|
|
|
|
|
|
pfc+i = 11___ |
3 = |
1 , П. |
|
|
|
’ |
К+Ч |
|
||
После вычисления |
векторов р* |
, j = |
1,п, |
переходим к п. 1, |
полагая j := 1, x k+l = х к и затем к := к + 1.
На рис. 6.21 иллюстрируются этапы одного шага поиска точки минимума целевой функции двух переменных из началь ной точки х°. Отметим, что рассмотренный алгоритм можно модифицировать, вводя дополнительные правила выбора точ ки х к на каждом к-м шаге при проведении этапа исследующего поиска (см. 6.4).
Пример 6.6. Используем метод Розенброка для минимиза ции функции из примеров 6.4 и 6.5. Выберем начальную точку
х° = (—2, 1) и точность поиска е —0,01. Графическая иллюстра ция первых трех шагов метода дана на рис. 6.22. Результаты поиска точки минимума по методу Розенброка приведены в табл. 6.7.
|
|
Рис. 6.22 |
|
|
|
|
|
|
|
|
|
Таблица 6.7 |
|
к |
х к |
f { x k) |
к |
х к |
л » * ) |
|
1 |
(-0,412, -3,259) |
-12,482 |
5 |
(-2,168, -4,444) |
-27,977 |
|
2 |
(—2,020, —3,178) |
-23,817 |
6 |
(—2,219, |
-4,428) |
-27,996 |
3 |
(-1,834, -4,234) |
-27,245 |
7 |
(-2,233, |
-4,472) |
-28,000 |
4 |
(—2,159, —4,177) |
-27,794 |
|
|
|
|
Из табл. 6.7 видно, что для рассматриваемой функции ис пользование метода Розенброка не приводит к повышению эффективности поиска по сравнению, например, с модифици рованным методом циклического покоординатного спуска (см. пример 6.4), поскольку при той же точности поиска необходи мое число N шагов поиска не уменьшается.
Рассмотрим еще один алгоритм прямого поиска, предло женный в 1964 году и называемый обычно методом Пауэлла* Предварительный этап и первые два пункта основной части этого алгоритма практически совпадают с алгоритмом метода Розенброка. Отличие состоит в построении системы векторов, определяющих направления спуска на каждом последующем ша ге поиска и проявляется начиная с п. 3 описанного выше алго ритма метода Розенброка. В методе Пауэлла вычисления в п. 3 носят итерационный характер. Поэтому на предварительном этапе для номера %итерации принимают г = 1.
1. Минимизируя функцию ф^к\>с) = f (x k + хр^?), находим
значение xj^ G К, вычисляем ж*+1 = Щ + и переходим
кп. 2.
2.Если j < п, то полагаем j := j + 1 и возвращаемся к п. 1.
Впротивном случае переходим к п. 3.
3.Полагаем р = ж*+1 — х к и находим значение х, миними
зируя функцию ^>(х) = f(x k+l + хр), а затем вычисляем Z{ =
= x k+i + хр. Если г < п, |
то для всех j = 1, n —1 заменяем р к |
на р*+1, полагаем р£ = р, |
= «*, j = 1, г := г + 1 и переходим |
к п. 1 рассматриваемого алгоритма. В противном случае, т.е. при %= гг, переходим к п. 4.
4. Принимаем х к = zn. Если |ж* —ж*-1 ! < £, то вычисления прекращаем и полагаем ж* « ж* и /(ж*) « f ( x k). В противном случае считаем, что ж*-1 = х к, г = 1, j = 1, к := А; + 1, и возвращаемся к п. 1 рассматриваемого алгоритма.
Рис. 6.23 иллюстрирует один шаг поиска точки миниму ма целевой функции двух переменных из начальной точки ж0. Можно доказать, что в случае квадратичной целевой функции /(ж) = (Q x, ж)/2 + (с, ж) с положительно определенной матри цей Q с помощью алгоритма метода Пауэлла за один шаг поиска строится система векторов р^, j = 1, п, сопряженных относи тельно этой матрицы. При этом точка ж1, полученная в конце
"См.: Базара М., Шеттпи К.
Рис. 6.23
первого шага, совпадает с искомой точкой х* минимума такой целевой функции. Покажем это на конкретном примере.
Пример 6.7. Используем метод Пауэлла для минимизации ранее рассмотренной функции (см. примеры 6.1, 6.4-6.6). Вы берем начальную точку х° = (—2, 1) и точность поиска е = 0,01. Графическая иллюстрация метода представлена на рис. 6.24. На рисунке видно, что точка х* минимума целевой функции достигается за один шаг поиска. В результате этого поиска по лучаем х* и (—2,236, —4,472) и f(x*) « —28,0, что с точностью 5•10"5 совпадает с точным решением (—\/5, —2\/б) задачи. #
Известно много модификаций метода Пауэлла. На рис. 6.25 представлена одна из таких модификаций в применении к функции из примеров 6.1, 6.4-6.7. В качестве начальной вы брала точка х° = (1, 1). Алгоритм, реализующий этот вариант метода Пауэлла, включает проведение на каждом к-м шаге по иска одной дополнительной итерации циклического покоорди натного спуска в направлении вектора* рп. При минимизации
*См.: Реклейтпис Г ., Рейвиндран А ., Р эгсдел К ., а также: Химмелъ-
блау Д .