Алгоритм Фибоначчи
Алгоритм Фибоначчи
Рассмотрим следующую задачу условной оптимизации: найти минимум одномерной унимодальной функции (
), определенной в замкнутой области допустимых значений
=[
,
],
Числа Фибоначчи и их некоторые свойства.
Числа Фибоначчи задаются следующим рекуррентным уравнением:
![]() | (1) |
Числа Фибоначчи ,...,
приведены в нижеследующей табл. 1.
Таблица 1
![]() | ... | ||||||||||
![]() | ... |
Общее выражение для -го числа Фибоначчи можно получить из решения уравнения (1):
При больших значениях членом (-
)N+1 можно пренебречь. При этом
![]() | (2) |
Отсюда следует, что . Т.е. отношение двух соседних чисел Фибоначчи примерно постоянно и равно
.
Алгоритм Фибоначчи.
Алгоритм Фибоначчи относится к классу поисковых методов оптимизации и включает в себя два этапа.
Первый этап состоит из ( -1)-й итерации для
=1,2,…
-1. Рассмотрим схему
-й итерации, когда ТИНr=[
,
]:
1. Вычисляем величины
2. Вычисляем значения функции
(
).
3. Если , то выполняем присваивания
,
,
. Иначе - выполняем присваивания
,
,
Алгоритм Фибоначчи обладает тем свойством, что после выполнения ( -1)-й итерации имеет место следующая ситуация:
. Т.е. в результате (
-1)-й итерации сужение текущего интервала неопределенности не происходит:
Второй этап призван решить по какую сторону от точки лежит точка минимума функции
(
).
Второй этап выполняется по следующей схеме:
1. Находим точку =
+
, где
|ТИНN-1| - свободный параметр алгоритма.
2. Вычисляем значение функции .
3. Если , то выполняем присваивания
. Иначе - выполняем присваивания
В качестве приближенного значения точки минимума с равными основаниями может быть принята любая точка ТИНN.