
- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
Для сравнения укажем, что при I = 1,0 поиск с помощью нере гулярного симплекса приводит к минимуму за N = 25 шагов, причем ж* « (0,999, 1,005), f{x*) « 5,85 •10“ 4. В то же вре мя при Z= 1,75 симплекс не в состоянии изменить свою форму так, чтобы, пвытянувшись11 вдоль оврага, успешно продолжить поиск точки минимума*(см. рис. 6.13, б). Поиск заканчивает ся за N = 14 шагов в точке ж14 = (0,237, —0,017), в которой /(ж 14) = 0,635. Аналогичная ситуация наблюдается и в случае I= 0,4, причем преждевременное окончание поиска после N = 24 шагов приводит в точку ж24 = (0,645, 0,404) со значением целе вой функции /(ж 24) = 0,127.
К преждевременному окончанию процесса поиска может приводить изменение других параметров алгоритма. Напри мер, это происходит при е = 0,01, Z= 1 ,0, если выбрать коэффи циент сжатия 7 = 0,25. Поиск завершается за N = 26 шагов в точке ж26 = (0,671, 0,409) со значением целевой фукнкции /(ж 26) =0,125.
6.4. Циклический покоординатный спуск
Поиск точки ж*, в которой функция /(ж) достигает наи меньшего значения, можно описать рекуррентным соотноше нием
x k = x k~l +otkUk, к е N, |
(6.8) |
где ж0 — начальная точка; uk — единичный вектор, опреде ляющий направление спуска на к-м шаге; а* > 0 — длина шага спуска, т.е. расстояние в направлении вектора uk, отделяющее точку ж*"1 от новой точки х к. Различные методы отличаются друг от друга способом выбора направления спуска и значе ния а*.
Поиск точки ж* обычно прекращают при выполнении одно го или обоих неравенств:
|ajfc_ajfc“1|= afc<e1, |
|/(®fc) - /(®fe_1)| < е2, |
(6.9) |
где €\ и £2 — заданные параметры точности поиска.
В одном из алгоритмов прямого поиска, базирующихся на идее методов спуска, на каждом fc-м шаге поиска проводят од номерную минимизацию целевой функции последовательно по каждой из п координат ее аргумента х еШп. Такой метод на зывают обычно методом циклического покоординатного спуска. Рассмотрим алгоритм этого метода.
Пусть е*, г —1,п, — стандартный базис в W1. Выберем начальную точку ж0. Поиск точки минимума функции в мето де циклического покоординатного спуска проводят в соответ ствии с рекуррентным соотношением
xk = x )~l + Qkv |
j = T 7 n . |
(6.10) |
Значение ak Е К находят из решения задачи одномерной мини мизации (см. 2)
<рк{а) -¥ min, |
<Pj{a) = /(ж *-1 + a e j). |
(6.11) |
Подчеркнем, что индекс j изменяется циклически, пробегая на каждом шаге покоординатного спуска все значения от 1 до п, причем значение аk в отличие от значения а* в (6.8) может быть как положительным, так и отрицательным.
Пусть выбраны значения е\ и (или) €2 в (6.9) и перед fc-м шагом циклического покоординатного спуска по найденной на предыдущем шаге точке x k~l вычислено значение f { x k~l) целевой функции (на первом шаге значение /(ж 0) вычисляют в выбранной начальной точке ж0). Тогда для каждого значения j = 1, п из решения задачи (6.11) находят значение ак и затем вычисляют
п |
(6.12) |
xk = xk~1 + '52(Jjej |
з=1
и значение f { x k). Далее проверяют выполнение условий (6.9) или того из них, которое выбрано в качестве условия прекра щения поиска. При положительном результате поиск точки х*
минимума функции f(x) прекращают на fc-м шаге и принима ют х* « х к и f(x*) « f { x k). В противном случае переходят к следующему шагу метода, полагая к: = к+ 1 .
Рассмотренный алгоритм прост в реализации, но эффекти вен лишь в случаях, когда минимизируемая функция является сепарабельной, т.е. представляет собой сумму функций, каждая из которых зависит лишь от одной координаты:
|
71 |
= |
® еКП- |
|
Э=1 |
В этом случае решение задачи минимизации можно получить за один шаг поиска.
В самом деле, так как
71 |
П |
/(* * ) = “ } $ /( * ) = 2 |
= Е М Х;)> |
i=i 3 |
j=i |
то достаточно на первом шаге поиска последовательно решить п задач одномерной минимизации функций hj(xj), j —1, п, что позволит найти все п координат х* искомой точки х*.
Для функций более общего вида может нарушаться да же условие релаксационности последовательности {®fc}, т.е. j { x k~1) - f { x k) > 0 для некоторых номеров к. Поэтому обычно используют модификацию этого метода, состоящую в следую щем. На каждом шаге при спуске по очередной координате Xj учитывают результаты, полученные на этом шаге для коорди нат xi, I = 1, j —1. В этом случае значение ак находят из реше
ния задачи (6.11), в которой полагают <рк(а) = |
+ ае; ), |
||
где |
|
з- 1 |
|
~к |
_„к—1 |
|
|
. \ А |
|
||
Xj-i |
= X |
+ / |
|
|
|
1=1 |
|
После перебора всех п координат вычисляют х к = х к_г + акеп. Рис. 6.14 иллюстрируют этапы покоординатного спуска для первых двух шагов метода в случае функции двух переменных.
Рис. 6.14 |
Рис. 6.15 |
Пример 6.4. С помощью модифицированного метода ци клического покоординатного спуска найдем решение задачи минимизации функции
f{xi,X2 ) = Qx\ - 4X IX 2 + 3^2 + 4>/5(rci + 2ж2) + 22,
рассмотренной в примерах 6.1 и 6.2. В качестве начальной выберем точку х° = (—2, 1), в которой /(® °) = 57, а в первом из условий (6.8) прекращения поиска положим е* = 0,01.
На рис. 6.15 дана графическая иллюстрация первых двух шагов процесса поиска точки минимума х* — (—л/5, —2л/5) этой функции, а в табл. 6.3 приведены результаты вычислений (заметим, что у/Ъ« 2,2361). Из этих результатов видно, что при заданной точности поиска решение задачи получается за шесть шагов. #