Поиск с помощью золотого сечения — различия между версиями
м |
м |
||
Строка 24: | Строка 24: | ||
+ | Формально для поиска минимума (для максимума - делается аналогично) функции <tex> f </tex>: | ||
+ | |||
+ | :'''Шаг 1''': | ||
+ | ::Определяем границы поиска <tex>lbound</tex> и <tex>rbound</tex>, затем устанавливаем текущее разбиение: | ||
+ | ::<tex>x_1 = lbound + \frac{rbound - lbound}{\phi + 1}</tex> | ||
+ | ::<tex>x_2 = rbound - \frac{rbound - lbound}{\phi + 1}</tex> | ||
+ | ::и вычислем функцию на них: <tex>f_1 = f(x_1), f_2 = f(x_2)</tex> | ||
+ | |||
+ | :'''Шаг 2''': | ||
+ | :: если <tex>f(x_1) < f(x_2)</tex> | ||
+ | :: | ||
+ | |||
+ | :'''Шаг 3''': | ||
===Псевдокод=== | ===Псевдокод=== | ||
Версия 11:20, 15 июня 2011
Поиск с помощью золотого сечения (Golden section search) - это улучшение наивной реализации троичного поиска, служащий для поиска минимума/максимума функции. При простом троичном поиске на каждой итерации функция вычисляется в двух точках. Метод же золотого сечения требует вычисления лишь в одной точке (за исключением первой итерации). За счет этого достигается выйгрыш в производительности.
Содержание
Алгоритм
Рассмотрим одну итерацию алгоритма троичного поиска. Попробуем подобрать такое разбиение отрезка на три части, чтобы на следующей итерации одна из точек нового разбиения совпала с одной из точек текущего разбиения. Тогда в следующий раз не придется считать функцию в двух точках, так как в одной она уже была посчитана.
Точки
и разбивают отрезок на три части. Потребуем, чтобы одновременно выполнялось:
Где
- это некоторое отношение, в котором делим отрезок (точки и разбивают отрезок симметрично).Тогда:
, откуда получаем (тот корень уравнения, который меньше нуля, по понятным причнам отбросили)
Это число совпадает с золотым сечением. Отсюда название метода.
Формально для поиска минимума (для максимума - делается аналогично) функции :
- Шаг 1:
- Определяем границы поиска и , затем устанавливаем текущее разбиение:
- и вычислем функцию на них:
- Шаг 2:
- если
- Шаг 3:
Псевдокод
Асимптотика
Ссылки
Википедия - Метод золотого сечения
Wikipedia - Golden section search (english)