Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебные пособия / ММвСС (2018) v3.pdf
Скачиваний:
173
Добавлен:
15.01.2020
Размер:
3.99 Mб
Скачать

3. Численные методы оптимизации Ф1П

258

П1. Дихотомия (метод оптимизации Ф1П)

Заданы

 

Требуется найти экстремум

x* = arg min{f (x)}

или

f (x)

x

 

x* = arg max{f (x)}

 

x

 

 

2. Поиск экстремума

 

 

 

 

 

 

 

 

 

x

 

(b-a)/2-α

 

 

 

(b-a)/2+α

a

 

x2

(b-a)/2

 

b=x2

b x1

 

 

x2

a=x1

 

 

 

 

x1

 

a

 

x2

 

a=x1

 

 

 

 

b

 

 

 

b

 

x2

a=x1

 

 

 

 

 

 

 

 

 

 

 

 

 

ba≤∆

 

 

 

x1

 

x2 = x1

 

 

ba≤∆

a

x

 

=

 

2

 

 

 

 

 

*

 

a

+ b

 

-Алгоритм поиска представляет собой много итерационную процедуру -На каждой итерации интервал поиска экстремума

сужается путем исключения правого (x2, b) или левого отрезка (a, x1)

-Правый отрезок исключается если f(x2)>f(x1) -Левый отрезок исключается если f(x1)>f(x2) -Итерации повторяются пока |b-a|> -результат x*=(a+b)/2

259

П2. Метод золотого сечения (метод оптимизации Ф1П)

Заданы

 

Требуется найти экстремум

x* = arg min{f (x)}

или

f (x)

x

 

x* = arg max{f (x)}

 

x

 

 

2. Поиск экстремума

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

b

a

d =d1 =

d1

 

 

 

 

x2

 

d2

d d1

 

d1

 

 

 

 

b=x2

dd1

d2

1dd1

2

ϕ1=0

5

+1

 

 

 

 

 

d1

=d2

=dd1

 

 

 

 

 

 

 

=ϕ

=ϕ1

ϕ

ϕ= 2

 

 

 

 

 

 

d

 

1

=ϕ1

2

 

1=0

5+1

 

 

d1

 

 

 

 

 

 

 

 

 

 

 

d1

=ϕ

ϕ

ϕ

ϕ

ϕ= 2

 

 

 

 

 

 

 

 

x2

 

 

x1 = x2

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

x1

 

b

 

 

 

d1

a=x

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ba≤∆

x2

x = x

 

x1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

a + b

 

 

 

 

 

 

 

 

ba≤∆

 

 

x

*

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

x

 

 

-Алгоритм поиска представляет собой много итерационную

 

 

процедуру

 

 

-На каждой итерации интервал поиска экстремума

 

 

сужается путем исключения правого (x2, b) или левого

b

x1

отрезка (a, x1)

-Правый отрезок исключается если f(x2)>f(x1)

 

 

 

-Левый отрезок исключается если f(x1)>f(x2)

 

 

-Итерации повторяются пока |b-a|>

 

 

-результат x*=(a+b)/2

f (x)

=

x

x2 + 2

 

x2 = x1

260

П.3 Метод золотого сечения (алгоритм)

Начало

f(x),

Нет

|b-a|>

Нет

Да

>

Да Останов

261