3Л_Одномерная Оптимизация
.pdfПример решения задачи методом золотого сечения
Пример 3. Найти значение аргумента, при котором значение функции у=12х-2х2, заданной на интервале L0=10, будет у ≥17.6
Решение. Применяя метод "золотого сечения", получим точку первого измерения:
L |
L0 |
|
|
10 |
, |
тогда x = 6.2, |
y =-5 |
|
|
||||||
1 |
|
|
|
|
|
||
|
C |
|
1.62 |
|
1 |
1 |
|
|
|
|
|
|
Второе измерение выполняется симметрично первому, т.е. х2=10-x1=3.8, у2=17. Следовательно, интервал неопределенности L2= [0,6.2], что следует из унимодальности функции y = f(x)
Из условия Lj+1=Lj-1-Lj получим х3=х1-x2=6.2-3.8=2.4, у3=28-12=16, интервал
неопределенности L3= [2.4,6.2]
Точку четвертого измерения х4 выполняем симметрично точке х2, т.е. x4=х1-х2+x3=6.2-3.8+2.4=4.8; у4=57.6-46=11.6. Из ситуации у2>у4, в силу унимодальности функции, следует L4=[2.4,4.8]
Определяем положение пятого измерения: x5=х4-х2+х3=4.8-3.8-2.4=3.4,
у5=40.8-23=17.8.
Поскольку у5>17.6, то искомой точкой, т.е. решением задачи, является точка х5=3.4
Зависимость эффективности методов одномерного поиска от числа опытов
L0/Ln
Число |
Метод |
Золотое |
Метод Фибоначчи |
|
опытов |
дихотомии |
сечение |
|
|
|
|
|
|
|
|
2k/2 |
Cn-1 |
Fn |
по дискретным |
|
|
|
|
точкам |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
2 |
2 |
1.62 |
2 |
2 |
|
|
|
|
|
3 |
2 |
2.62 |
3 |
4 |
|
|
|
|
|
4 |
4 |
4.24 |
5 |
7 |
|
|
|
|
|
5 |
4 |
6.85 |
8 |
12 |
|
|
|
|
|
6 |
8 |
11.09 |
13 |
20 |
|
|
|
|
|
7 |
8 |
17.94 |
21 |
33 |
|
|
|
|
|
8 |
16 |
29.0 |
34 |
54 |
|
|
|
|
|
9 |
16 |
47.0 |
55 |
88 |
|
|
|
|
|
10 |
32 |
76.0 |
89 |
143 |
|
|
|
|
|
Математик Люкас вывел уравнение, связывающее числа Фибоначчи Fn и величину .:
при больших n F n |
|
N 1 |
n+1. |
||
|
|
|
|||
|
|||||
|
5 |
|
|
Тогда связь между интервалами неопределеннности метода Фибоначчи и метода
сечения золотого следующая: |
Ф |
|
|
|
|
|
|
|
|
|
|
Ln |
|
Fn |
|
|
|
n 1 |
|
2 |
|
||
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
1.17. |
||||
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
||||
|
LЗсn |
n 1 |
|
|
5 |
n 1 |
|
5 |
|
Метод касательных
Суть методов, основанных на аппроксимации целевой функции: по полученной в ходе вычислений информации строится аппроксимирующая функция и её минимум принимается за точку очередного вычисления. Такие методы дают хорошие результаты при минимизации достаточно гладких унимодальных функций.
Пусть функция f (x) выпукла и дифференцируема на отрезке [a,b] . Пусть известны результаты вычислений в точках а и в: f (a), f (a), f (b), f (b)
По этой информации строится f (
кусочно-линейную функцию, к f (x) в точке а
аппроксимирующая функция, представляющая из себя x)
состоящую из касательной La (x) f (a) f (a)(x a)
и касательной Lb (x) f (b) f (b)(x b) к f (a) 0 в точке в.
Полученная аппроксимирующая функция есть ломанная, состоящая из прямой La (x) и Lb (x) на [a,c] , где с – точка пересечения касательных. При f (a) 0 и f (b) 0 минимум аппроксимирующей функции достигается в точке с.
Положение точки пересечения с можно определить по формуле:
c |
(b f (b) a f (a)) ( f (b) f (a)) |
|
|
|
f (b) f (a) |
|
|
Если f (c) 0, то решением задачи будет x* c |
. Если же f (c) 0 , то в качестве |
||
следующего отрезка неопределённости берется [a,c] . |
|||
|
|
|
|
Если же f (c) 0 , то – отрезок [c,b] |
|
|
|
Процесс повторяется до тех пор, пока f (c) 0 |
или отрезок неопределённости не |
||
достигнет заданной точности. |
|
|
Метод парабол (квадратичная интерполяция )
Алгоритм квадратичной интерполяции (метод парабол) в качестве аппроксимирующей функции использует параболы. Для однозначного задания параболы необходимы три точки.
Пусть имеются три точки, для которых выполняется условие a<c<b, f(c) f(a), f(c) f(b).
Так как [a,b] – отрезок неопределенности и f(x) – унимодальная функция, то найти
точку c нетрудно.
Парабола, проходящая через три точки (a,f(a)), (c,f(c)), (b,f(b)), имеет вид
|
f (b) f (c) |
|
f (a) f (c) |
(x c)(x b) |
|
f (b) f (c) |
|
|
P(x) |
|
|
|
|
|
|
|
(x c) f (c). |
|
|
|
|
|||||
|
(b c) |
|
(a c) |
|
b a |
|
b c |
|
|
|
|
|
|
Поскольку f – унимодальная функция, то хотя бы одно из неравенств f(c) f(a), f(c) f(b) строгое и, следовательно, коэффициент при старшем члене P(x) положителен. Тогда P(x) достигает минимума в точке
t c |
1 (b c)2 |
( f (a) f (c)) (c a)2 |
( f (b) f (c)) |
|||
|
|
|
|
|
||
2 (b c)( f (a) f (c)) (c a)( f (b) f (c)) |
||||||
|
причем (a+c)/2 t (c+b)/2.
Эта точка и выбирается в качестве точки очередного вычисления значения функции.
Схема алгоритма метода парабол
Схема алгоритма
Шаг 1. Задаются a,c,b и . Вычислить ya=f(a),
Шаг 2. Вычислить t, если t x
(a c) 2
yc=f(c),c yb=f(b).
, если t c
|
t c |
1 |
|
(b c)2 ( y |
a |
y |
) (c a)2 |
( y |
b |
y |
) |
|
|
|
где |
|
|
c |
|
|
c |
|
. |
|
|
||||
2 |
(b c)( ya yc ) (c a)( yb yc ) |
|
|
|
||||||||||
и y=f(x). |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шаг 3. а) При x<c. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если y<yc, то b=c, c=x, yb=yc, yc=y. |
|
|
|
|
|
|
|
|
||||||
Если y>yc, то a=x, ya=y. |
|
|
|
|
|
|
|
|
|
|
||||
Если y=yc, то a=x, b=c, c=(x+c)/2, ya=y, yb=yc, yc=f(c). |
|
|||||||||||||
б) При x>c. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если y<yc, то a=c, c=x, ya=yc, yc=y. |
|
|
|
|
|
|
|
|
||||||
Если y>yc, то b=x, yb=y. |
|
|
|
|
|
|
|
|
|
|
||||
Если y=yc, то a=c, b=x, c=(x+c)/2, ya=yc, yb=y, yc=f(c). |
~ |
|||||||||||||
Шаг 4. Если b-a , то закончить поиск, положив |
|
|
|
|
~ |
|
||||||||
|
|
|
|
x |
,xиначе, y yперейти к шагу 2. |