Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций
.pdf
Δ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)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
