Алгоритм Фибоначчи

Алгоритм Фибоначчи

Рассмотрим следующую задачу условной оптимизации: найти минимум одномерной унимодальной функции ( ), определенной в замкнутой области допустимых значений =[ , ],

Числа Фибоначчи и их некоторые свойства.

Числа Фибоначчи задаются следующим рекуррентным уравнением:

(1)

 

Числа Фибоначчи ,..., приведены в нижеследующей табл. 1.

Таблица 1

...
...

 

Общее выражение для -го числа Фибоначчи можно получить из решения уравнения (1):

При больших значениях членом (- )N+1 можно пренебречь. При этом

(2)

 

Отсюда следует, что . Т.е. отношение двух соседних чисел Фибоначчи примерно постоянно и равно .

Алгоритм Фибоначчи.

Алгоритм Фибоначчи относится к классу поисковых методов оптимизации и включает в себя два этапа.

Первый этап состоит из ( -1)-й итерации для =1,2,… -1. Рассмотрим схему -й итерации, когда ТИНr=[ , ]:

1. Вычисляем величины

2. Вычисляем значения функции ( ).

3. Если , то выполняем присваивания , , . Иначе - выполняем присваивания , ,

Алгоритм Фибоначчи обладает тем свойством, что после выполнения ( -1)-й итерации имеет место следующая ситуация: . Т.е. в результате ( -1)-й итерации сужение текущего интервала неопределенности не происходит:

Второй этап призван решить по какую сторону от точки лежит точка минимума функции ( ).

Второй этап выполняется по следующей схеме:

1. Находим точку = + , где |ТИНN-1| - свободный параметр алгоритма.

2. Вычисляем значение функции .

3. Если , то выполняем присваивания . Иначе - выполняем присваивания

В качестве приближенного значения точки минимума с равными основаниями может быть принята любая точка ТИНN.