Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Δf(x) = f(x) – f(x*) > 0
)
1
x
)
1
x
)
1
x
)
1
x
для всех x из sph(x(k + 1), ε), т.е. из ε-окрестности точки x(k + 1).
Одним из распространенных способов вычисления множителя
α(k) является следующий: α(k) = arg min f(x(k) + λS(k)), где минимум берется по переменной λ.
Это означает, что точка x(k + 1) определяется как минимум функ-
ции
f(x) в направлении S(k). При этом используется один из способов поиска минимума функции одной переменной, а конкретное значе­ние α(k) не используется в алгоритме. Указанный поиск называется одномерным поиском в заданном направлении.
1.5. Методы одномерного поиска в заданном направлении
Классические методы одномерного поиска предполагают, что указанная выше функция от λ имеет единственный экстремум в на­правлении S(k). Для любого алгоритма поиска выбирается некоторая начальная точка x(0) и задается так называемый шаг грубого поиска h. (Значение h обычно на порядок больше, чем заданная точность одномерного поиска ε вая точка x(1) = x(0) + hS(k) и f(x(1)).
Если f(x(1)) < f(x(0)), то определяется следующая точка x(k + 1) = = x(k) + hS(k) и т.д., пока не будет выполнено условие f(x(k + 1)) ≥ f(x(k)). Затем производится так называемая фиксация Очевидно, что в общем случае минимум должен находиться между точками x(k + 1) и x(k – 1). Введем обозначения a = x(k + 1) и b = x(k – 1), где a и b есть концы отрезка, содержащего минимум.
Если при первом шаге оказалось, что f(x(1)) ≥ f(x(0)), то делается обратный шаг:
то присваиваются значения a =
Если же f(
(
процедура поиска области минимума, как указано выше.
Далее выполняется алгоритм точного поиска на отрезке [a, b].
Большинство методов точного поиска основаны на следующем правиле: на отрезке [a, b] помещаются две точки, симметричные от- носительно его середины. Назовем левую точку c, а правую Вычислим f(c) и f(d) (рис. 1.5).
.) Затем определяется f(x(0)), вычисляется но-
x
области минимума.
(
= x(0) – h S(0). Если при этом f(
(
, b = x(1).
(
) ≥ f(x(0)),
) < f(x(0)), то делается замена h = –h и производится
точку d.
11
Рис. 1.5. Возможное положение минимума на отрезке [a, b]
.
mLm
Lm L
Из рис. 1.5 следует, что дальнейшая локализация области мини-
мума может быть выполнена по одному из следующих правил:
– если f(c) < f(d), то b = d; – если f(c) > f(d), то a = c; – если f(c) = f(d), то a = c, b = d.
Полученный в результате новый отрезок [a,
b] подвергается той
же операции. Останов указанного цикла происходит по условию ||b – a|| < ε
После этого минимум фиксируется в точке x Конкретные алгоритмы поиска различаются способом задания то-
чек c и d. Ниже приведены два типа алгоритмов.
1. Метод «золотого сечения».
Если обозначить через L длину отрезка [a, b], а через m длину от-
резка [a, c], то отрезок [a, b] делится в отношении
Отсюда, поскольку m < L, следует; что m = L(3 – Тогда L – m = 0,618L.
Поэтому расчет точек c и d производится по следующим формулам:
c = a + 0,382(b – a); d = a + 0,618(b – a).
Напомним, что все переменные здесь – это векторы.
12
−
=
.
x
*
= (a + b) / 2.
−
(1.4)
)/2 ≈ 0,382L.
5
2. Метод дихотомии.
2
ab
2
ab
k
)
k
k
)
k
((), ()) (())
;
((), ()) (())
.
Выбирается некоторое число ε
. Точки c и d вычисляются по фор-
d
мулам:
+
c =
d =
– εd (b – a);
+
+ εd (b – a).
(1.5)
Значение εd выбирается достаточно малым, но с тем расчетом, чтобы значения f(c) и f(d) были различимы.
Надо отметить, что имеются более сложные методы одномерного поиска, такие как метод чисел Фибоначчи или метод квадратичной аппроксимации. Однако достоинства метода определяются количест­вом операций, необходимым для достижения минимума. Более сложные методы, как правило,
выигрывают в количестве итераций, однако проигрывают в количестве вычислений внутри одной итера­ции. Поэтому для практического применения вполне достаточно двух упомянутых выше методов.
1.6. Оценка производных
В методах первого и второго порядка требуется оценка соответст-
вующих частных производных.
Оценки первых производных могут быть сделаны по двум точкам
(линейная оценка) или по трем точкам (квадратичная оценка).
Линейная оценка производных первого порядка производится следующим образом. Если задана некоторая точка x(k), то вначале нужно вычислить f(x(k)). производится пробный шаг:
δ
– достаточно малое число. Затем вычисляются значения функции в
x
пробных точках: f(
x
вычисляются по формулам:
fxk
∂
(())
x δ
∂
fxk
∂
(())
x δ
∂
Затем по каждой из компонент вектора x
x
()
, x2(k)) и f(x1(k),
1
fxk x k fxk
12
≈
1
fxk x k fxk
12
≈
2
()
= x1(k) + δx,
1
x
2
−
x
−
x
(
x
= x2(k) + δx, где
2
(
). Оценки производных
(1.6)
(1.7)
Квадратичная аппроксимация производится путем замены функции f(x) параболой, коэффициенты которой определяются через значения
13
функции в трех пробных точках. По полученным коэффициентам за­писывается выражение для соответствующей частной производной.
Для оценки производной второго порядка необходима разность производных первого порядка. Поэтому даже для линейной оценки нужны три пробные точки. Более подробно эта оценка здесь не рас­сматривается.
Контрольные вопросы
1. Чем отличаются целевые функции в динамической и статиче-
ской задачах оптимизации?
2. Что такое линия уровня функции?
3. Каким образом условия существования минимума реализуются
в алгоритме поиска минимума?
4. Каковы основные операции в алгоритме поиска минимума
функции?
5. Опишите процедуру одномерного поиска минимума методом
золотого сечения.
6. Зачем нужен грубый шаг в методе
7. Почему поиск методом «золотого сечения» называется одно-
мерным?
8. Как вы опишете в программе процедуру деления отрезка (a, b)?
9. Какие вы знаете методы численной оценки производных?
10. Опишите порядок действий при оценке производных первого
порядка в трехмерном пространстве переменных.
«золотого сечения»?
14
2. МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ
2.1. Классификация методов безусловной оптимизации
Имеются три основных класса методов безусловной оптимизации.
1. Методы нулевого порядка, называемые также методами прямо-
го поиска. При использовании этих методов не требуются вычисле­ния производных целевой функции.
2. Методы первого порядка, или градиентные методы, для реали-
зации которых вычисляется градиент целевой функции.
3. Методы второго порядка, при которых требуются вычисления
вторых
имеющих производных, а также для функций, которые не могут быть выражены в аналитической форме (например, заданных таблично).
функций. В связи с необходимостью вычисления частных производ­ных они сложнее в смысле количества арифметических операций выигрывают по сравнению с методами нулевого порядка в количест­ве шагов, необходимом для достижения минимума.
зи с сильными ограничениями, накладываемыми на форму поверхно­сти целевой функции. Кроме того, в них применяется операция об­ращения матриц, которая занимает очень много вычислительных ре­сурсов. Поэтому методы второго порядка выгодно применять лишь в тех случаях, когда вид целевой функции заранее хорошо изучен и нет риска сбоя вычислительного процесса, связанного, например, с вы­рожденностью соответствующей матрицы. Практически эти методы применяются в системах, где задача оптимизации решается периоди­чески, а форма целевой функции известна с точностью до ров. В этом случае трудности, связанные с вычислением вторых про­изводных, можно обойти, вычислив их предварительно аналитически с точностью до параметров.
ка обеспечивают максимальную скорость поиска минимума с точки зрения количества шагов поиска.
производных целевой функции.
Методы нулевого порядка могут применяться для функций, не
Методы первого порядка применяются только для аналитических
, но
Методы второго порядка применяются относительно редко в свя-
парамет-
Если указанные трудности преодолены, то методы второго поряд-
15
2.2. Методы нулевого порядка
().
xxi
Методы нулевого порядка называются также методами прямого поиска. Как было сказано раньше, методы различаются способом определения направления движения к минимуму и способом пере­мещения точки в этом направлении. Ниже рассмотрены наиболее характерные методы.
2.2.1. Симплексный метод
Симплексом в N-мерном пространстве независимых переменных x называется правильный многогранник с (N + 1)-й вершиной длины r. Возможно использование и неправильного многогранника, т.е. имеющего ребра разной длины. Однако без применения специ­альных методов управления формой (так называемых методов с управляемым симплексом) сходимость алгоритма, определяемая числом шагов до достижения минимума, может существенно ухуд­шиться.
Для определения направления движения к минимуму использует­ся тот факт
, что вершины симплекса могут служить пробными точ­ками для оценки формы поверхности целевой функции. Предполага­ется, что минимум находится в противоположной стороне по отно­шению к вершине с максимальным значением функции. Пусть на k-м шаге симплекс находится в некотором фиксированном положении. Обозначим через x(i) вершины симплекса. Для обеспечения сти обозначения стоило бы добавить в него k в качестве второго ин­декса. Однако делать это не обязательно, а индекс k можно опустить.
Итак, определим индекс j-й вершины с максимальным значением функции:
и ребром
строго-
f(x(j)) = max f(x(i)); i = 1, N + 1. (2.1)
Определим затем центр тяжести фигуры, образованной из сим-
плекса путем удаления j-й вершины:
Вычислим направление S:
S = x
16
1
N
+
1
=
∑
c
N
i
=
ij
≠
– x(j). (2.3)
c
(2.2)
1
Переместим вершину x(j) в направлении S. Этот процесс называ-
x
j
x
j
x2 x
()
xj
ется отражением вершины, которое и является шагом в симплексном
методе. Новое положение вершины x(j) обозначим через
()
. Оно
должно быть таким, чтобы симплекс остался правильным много­гранником. Запишем уравнение прямой, выходящей из точки x(j) в направлении S:
x = x(j) + λ(x
– x(j)). (2.4)
c
Поскольку при λ = 1 точка x переместится в точку x
переместить на такое же расстояние от x
в том же направлении. Это
c
означает, что нужно принять λ = 2. При этом
= x(j) + 2(xс – x(j)) = 2xc – x(j). (2.5)
()
Перемещение симплекса показано на рис. 2.1.
?
x
c
x(j)
()
xj
, то нужно ее
c
1
Рис. 2.1. Отражение вершины x(j)
По указанным правилам симплекс перемещается до тех пор, пока минимум не окажется внутри него. Эта ситуация называется «накры­тие минимума». После этого симплекс начинает периодическое дви­жение в районе минимума, причем одна из вершин становится не­подвижной. Это обстоятельство используется следующим образом.
17
Каждой вершине x(i) ставится в соответствие счетчик q(i), в кото-
(1) 1
;
dr
(1)1
.
dr
)()
xxni
рый при начальном положении симплекса записывается ноль. При перемещении симплекса счетчик отражаемой вершины q(j) каждый раз обнуляется, а во все остальные счетчики добавляется единица. Накрытие минимума фиксируется при условии, что какое-либо q(i) становится равным некоторому числу
M, для определения которого
имеется эмпирическая формула
2
M = INT(1,65N + 0,05N
). (2.6)
При N = 2 получаем M = 3.
После фиксации минимума ребро симплекса r уменьшается (обычно делится пополам) до тех пор, пока не будет выполнено ус­ловие останова алгоритма: r < ε
.
r
Для завершения алгоритма нужно определить правило построения начального симплекса. Это правило получается из решения геомет­рической задачи о правильном многограннике, вписанном в N­мерную сферу (двумерная сфера – это окружность). Ниже приведен результат этого решения.
Зафиксируем координаты (N + 1)-й вершины x(N + 1) и длину ребра r.
Тогда координаты остальных вершин вычисляются
по формулам:
x
x
(i) = xk(N + 1) + d1, если k = i;
k
(i) = xk(N + 1) + d2, если k ≠i,
k
где i = 1, N – индексы вершин;
k = 1, N – индексы координат; d
, d2 вычисляются по формулам:
1
NN
=
1
=
2
При уменьшении размера симплекса в два раза фиксируется не­подвижная вершина x(n), а координаты остальных вершин вычисля­ются по очевидным формулам векторной алгебры:
(
x(i) =
+
2
18
++−
2
N
+−
N
2
N
(2.7)
; i = 1, N + 1, i ≠ n. (2.8)
2.2.2. Метод сопряженных направлений
z
2
x
z
1
x
1
*
Пусть в пространстве координат x задана произвольная квадра-
тичная форма
1
f(x) = a + b
T
x +
xTCx,
2
где C – симметрическая матрица.
Идея метода состоит в таком преобразовании координат x, чтобы новые оси координат z были параллельны осям гиперэллипсоида, представляющего собой поверхность уровня функции f(x). В двумер­ном пространстве x это, разумеется, будет эллипс. В таком случае минимум может быть найден за N шагов одномерного поиска по правлениям осей z
, т.е. ортам (рис. 2.2).
i
x
на-
Рис. 2.2. Преобразование координат x
Пусть преобразование координат сделано с помощью некоторой матрицы S:
x = Sz. (2.9)
Если оси координат z
и z1 параллельны осям эллипсоида, то в
1
функции f(z) вместо матрицы C должна быть диагональная матрица D. Это означает, что в квадратичной форме исчезли произведения вида
19
(xixj) и остались только слагаемые, содержащие xi и
2
i
x
2
xCx
().
bxCd
λλ
. Поэтому мат-
рица S определяется из соотношения
z
TST
CSz = zTDz. (2.10)
Отсюда S
T
CS = D.
Обозначим через s(j) j-й столбец матрицы S. Тогда можно записать:
T
Cs(k) = dkk при j = k;
s(j) s(j)
– элементы матрицы D.
где d
kk
T
Cs(k) = 0 при j ≠ k,
(2.11)
Векторы s(j) и s(k), удовлетворяющие этому условию, назовем C­сопряженными. Заметим, что условию C-сопряженности могут удов­летворять различные системы векторов. Построим такую систему в двумерном пространстве x.
Теорема
Если q(x) – квадратичная форма, A(1) и B(1) – две несовпадающие точки, d – произвольный вектор направления, а
A(2) и B(2) есть соот­ветственно минимумы q(x), найденные в направлении d из точек A(1) и B(1), то направление S = B(2) – A(2) является C-сопряженным с на­правлением d.
Доказательство. Запишем квадратичную форму
T
q(x) = a + b
T
x +
(2.12)
и уравнения прямых, выходящих из точек A(1) и B(1) в направлении d: x = A(1) + λd; x = B(1) + λd. (2.13)
При условии, что матрица C – симметрическая, справедливо сле-
дующее выражение для формального дифференцирования:
Так как по условиям теоремы A(2) и B(2) есть минимумы в на-
правлении d, т.е. минимумы по λ, то справедливы равенства:
(b (b
20
() ()
ddd
qx qx x
==+
ddd
x
T
+ A(2)TC)d = 0;
T
+ B(2)TC)d = 0.
TT
(2.14)
(2.15)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]