промежутке является важным этапом процедуры оптимизации. Обычно в
процессе применения методов одномерной оптимизации можно выделить два
этапа: поиск отрезка, содержащего точку максимума, и уменьшение длины этого
отрезка до заранее установленной величины (уточнение координаты точки
максимума на данном отрезке).
Поиск отрезка, содержащего точку максимума. Алгоритм Свенна.
Исходные данные. х
0
- начальная точка, h - шаг поиска (h>0).
Шаг 1. Вычислить f(x
0
); f(x
0
+h); f(x
0
-h); k=1.
Шаг 2. Если f(x
0
-h)
≤
f(x
0
) f(x
≤
0
+h), то x
1
= x
0
+ h, перейти к шагу 4.
Шаг 3. Если f(x
0
-h) f(x
≥
0
) f(x
≥
0
+h), то х
1
= x
0
-h, h = -h, перейти к шагу 4, в
противном случае (f(x
0
-h) f(x
≤
0
)
≥
f(x
0
+h)) a = x
0
– h; b = x
0
+ h, конец.
Шаг 4. x
k+1
= x
k
+ 2
k
h , вычислить f(x
k+1
).
Шаг 5. Если f(x
k+1
) f(x
≥
k
), то к = к + 1, перейти к шагу 4.
Шаг 6. Если h > 0, то a = x
k-1
, b = x
k+1
, конец, в противном случае a = x
k+1
, b = x
k-1
, конец.
Заметим, что случай f(x
0
-h) f(x
≥
0
)
≤
f(x
0
+h)
(шаг 3) не рассматривается, так как он противоречит предположению об
унимодальности функции f(x).
Уменьшение длины отрезка, содержащего точку максимума, достигается
путем последовательного исключения частей этого отрезка. Величина интервала,
исключаемого на каждом шаге, зависит от расположения двух пробных точек
внутри отрезка. Поскольку координата точки максимума априори неизвестна,
целесообразно размещать пробные точки таким образом, чтобы обеспечивать
уменьшение длины отрезка в одном и том же отношении.
Дихотомический поиск (метод деления отрезка пополам).
Пробные точки y, z на каждом шаге этого метода выбираются следующим
образом:
,
2
;
2
δδ+
+
=−
+
=
ba
z
ba
y
где δ – параметр метода, 0 < δ < (b-a).
При малых δ каждая из пробных точек делит отрезок почти пополам, т.е.
исключению будет подлежать почти половина отрезка.
Алгоритм.
Исходные данные. Отрезок [a; b], содержащий точку максимума;
параметр δ и параметр окончания счета ε (ε > 2δ).
Шаг 1. a
1
= a ; b
1
= b ; k = 1.
Шаг 2. Если b
k
– a
k
< ε , , конец. ],[*
kk
bax ∈
Шаг 3. δδ+
+
=−
+
=
2
a
z ;
2
k kkk
bba
y ;
A = f(y) ; B = f(z).
Шаг 4. Если A > B, то a
k+1
= a
k
; b
k+1
= z; в противном случае a
k+1
=y; b
k+1
=
b
k
Шаг 5. k = k+1, прейти к шагу 2.
На каждой итерации дихотомического поиска производятся два
вычисления значения функции и после n вычислений (n/2 итераций) длина
начального интервала уменьшается приблизительно в 2
n/2
раз.
Метод золотого сечения.
50