- •Глава 4. Методы поиска минимума одномерных унимодальных функций.
- •§1. Метод сокращения текущего интервала неопределенности. Алгоритм равномерного поиска.
- •§2. Метод сокращения текущего интервала неопределенности. Алгоритм равномерного дихотомического поиска.
- •§3. Метод сокращения текущего интервала неопределенности. Алгоритм Фибоначчи.
- •Первый этап
- •Второй этап
- •§4. Метод сокращения текущего интервала неопределенности. Алгоритм золотого сечения.
- •§5. Сравнение эффективности алгоритмов равномерного поиска, равномерного дихотомического поиска, Фибоначчи и золотого сечения.
- •§6. Методы сокращения текущего интервала неопределенности. Метод квадратичной аппроксимации.
- •§7. Методы сокращения текущего интервала неопределенности. Метод Паулла.
- •§8. Методы сокращения текущего интервала неопределенности. Метод хорд. Метод касательных (метод Ньютона).
- •§9. Повышение эффективности поиска посредством учета дополнительной информации о свойствах минимизируемой функции.
§2. Метод сокращения текущего интервала неопределенности. Алгоритм равномерного дихотомического поиска.
Рассмотрим следующую задачу одномерной условной унимодальной оптимизации: найти минимум одномерной унимодальной функции Φ(x), определенной в замкнутой области допустимых значений D=[a,b],
Φ(x)=Φ(x*)
с
точностью
.
В
алгоритме
деления пополам или алгоритме равномерного
дихотомического поиска
испытания проводятся парами. Координаты
каждой последующей пары испытаний
разнесены между собой на величину
относительно середины ТИН. По значениямФ(х),
полученным в этих точках, одна половина
текущего интервала неопределенности
в
силу унимодальности функции Ф(х)
исключается из дальнейшего рассмотрения.
Более строго описанную схему алгоритма можно записать в нижеследующем виде.
Выполняем присваивания r=1, a1=a, b1=b, ТИН1=[a1, b1].
Вычисляем величины (рисунок 1)
![]()
,
.

Рисунок
1 - К
определению величин
![]()
Вычисляем величины
,
.Если
,
то выполняем присваивания
,
.
Иначе
- выполняем присваивания
,
.
ПолагаемТИНr+1=[ar+1,br+1].Если |ТИНr+1|≤εx,, то заканчиваем вычисления. Иначе - выполняем присваивание r=r+1 и переходим на п. 2.●
Приведенную схему алгоритма равномерного дихотомического поиска иллюстрирует рисунок 2.

Рисунок 2 - Две первые итерации поиска минимума одномерной унимодальной функции с помощью алгоритма равномерного дихотомического поиска.
Легко видеть, что после одной итерации алгоритма равномерного дихотомического поиска текущий интервал неопределенности уменьшается в 2 раза. Поэтому количество итераций r, необходимых для нахождения минимума функции с точностью εx, находится из условия
.
Алгоритм равномерного дихотомического поиска относится к классу прямых методов последовательного поиска.
Входные термины:
задача условной оптимизации;
одномерная унимодальная функция;
метод последовательного поиска.
прямой метод поиска;
метод сокращения текущего интервала неопределенности.
Выходные термины:
алгоритм Фибоначчи;
алгоритм золотого сечения.
§3. Метод сокращения текущего интервала неопределенности. Алгоритм Фибоначчи.
Рассмотрим следующую задачу одномерной условной унимодальной оптимизации: найти минимум одномерной унимодальной функции Φ(x), определенной в замкнутой области допустимых значений D=[a,b],
Φ(x)=Φ(x*)
с
точностью
.
Числа Фибоначчи и их некоторые свойства.
Числа Фибоначчи задаются следующим рекуррентным уравнением:
,
,
.(1)
Числа
Фибоначчи
приведены в нижеследующей таблице.
|
N |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
… |
|
iN |
1 |
1 |
2 |
3 |
5 |
8 |
13 |
21 |
34 |
55 |
89 |
144 |
233 |
377 |
… |
Общее выражение для N-го числа Фибоначчи можно получить из решения уравнения (1):
,
где
.
Поскольку
,
при больших значенияхN
членом
можно пренебречь. При этом
. (2)
Отсюда
следует, что
.
Т.е. при достаточно большихN
отношение двух соседних чисел Фибоначчи
примерно постоянно и равно τ.
Алгоритм Фибоначчи.
Алгоритм Фибоначчи относится к классу прямых алгоритмов последовательного поиска и включает в себя два следующих этапа (число N должно быть задано до начала вычислений).
Первый этап состоит из (N-1)-й итерации для r=1,2,…N-1. Рассмотрим схему r-й итерации, когда ТИНr=[ar,br]:
Вычисляем величины
![]()
,
![]()
.
Вычисляем значения
.Если
,
то выполняем присваиванияar+1=ar,
br+1=
.
Иначе
- выполняем присваивания ar+1=
,
br+1=br
.
Полагаем ТИНr+1=[ar+1,br+1]
– рисунок 1●

Рисунок 1 - К схеме первого этапа алгоритма Фибоначчи
Алгоритм
Фибоначчи обладает тем свойством, что
после выполнения
-й
итерации имеет место следующая ситуация:
=
=
- рисунок 2. Т.е. в результате
-й
итерации сужение текущего интервала
неопределенности не происходит:
ТИНN-1=[aN-1,bN-1]=ТИНN-2=[aN-2,bN-2].
Отметим,
что, легко видеть, точка
расположена в серединеТИН
.Указанное
свойство алгоритма Фибоначчи обусловлено
тем, что
.
Второй
этап призван решить по какую сторону
от точки
лежит точка минимумафункции
Ф(х).

Рисунок
2 - Схема
-ой
итерации алгоритма Фибоначчи
Второй этап выполняется по следующей схеме:
Находим точку
,
где
- свободный параметр алгоритма.Вычисляем значение функции
.Если
,
то выполняем присваивания
ТИНN=[aN-1,xN-1].
Иначе
выполняем присваивания
ТИНN=[xN-1,bN]
– рисунок 3●

Рисунок 3 – Ко второму этапу алгоритма Фибоначчи
Некоторые свойства алгоритм Фибоначчи.
Утверждение
1. Для любого
алгоритм Фибоначчи обладает следующим
свойством: одна из точек![]()
совпадает с одной из точек![]()
(рисунок 4).
Доказательство.
Пусть на r-й
итерации
(ситуацияб
на рисунке 4). В соответствии с
алгоритмом Фибоначчи
причем, очевидно,
.
Рассмотрим точку
![]()
=
![]()
.
Подставим сюда значение координаты точки
![]()
:
![]()
![]()
![]()
![]()
=![]()
.
Аналогично
проводится доказательство для случая
(ситуацияа
на рисунке 4).●

Рисунок 4 - К утверждению 1
Указанное свойство алгоритма Фибоначчи позволяет на каждой итерации (кроме первой) производить испытания только в одной точке.
Утверждение
2. Точки
![]()
расположены симметрично относительно
концов текущего интервала неопределенностиТИНr=[ar,br],
т.е. расстояние точки
до точкиar
равно
расстоянию точки
до точки
:
(рисунок 5).
Доказательство. В соответствии с алгоритмом Фибоначчи имеем:
![]()
=![]()
![]()
![]()
=
.
Но
из формулы (1) следует, что
.
Подставляя это в предыдущую формулу,
получим
![]()
=
●
Из
утверждения 2 следует, что
.

Рисунок 5 - К утверждению 2
Утверждение
3. В результате
любой итерации
алгоритма Фибоначчи длина текущего
интервала неопределенности уменьшается
в
раз.
Доказательство.
Поскольку
(см.утверждения
2), достаточно рассмотреть только один
из интервалов
,
.
Рассмотрим первый из указанных интервалов:
![]()
![]()
=![]()
●
Утверждение 4. При достаточно больших N в результате одной итерации алгоритма Фибоначчи длина текущего интервала неопределенности уменьшается примерно в τ раз.
Доказательство. Справедливость утверждения следует из утверждения 3 и из того факта, что при достаточно больших N имеем (см. (2)):
![]()
![]()
●
Из утверждения 4 следует, что при достаточно больших N алгоритм Фибоначчи практически идентичен алгоритму золотого сечения (см. следующий параграф).
Утверждение 5. В результате N итераций алгоритма Фибоначчи длина текущего интервала неопределенности становится равной
. (3)
Доказательство. Из утверждения 3 следует, что:
после первой итерации длина ТИН равна

;после второй итерации -

;….
после итерации номер N-2 длина ТИН равна

;после итерации номер N-1 длина ТИН не меняется;
после итерации номер N длина ТИН уменьшается в два раза и становится равной
●
Поэтому количество итераций N, необходимых для нахождения минимума функции с точностью εx, находится из условия
.
Алгоритм Фибоначчи относится к классу прямых методов поиска.
Пример
1 (для
самостоятельной аудиторной работы).
Пусть
необходимо найти с использованием
N=6
итераций
алгоритма Фибоначчи минимум одномерной
унимодальной функции Ф(x)=2(х-12)2+3,
где
.
Положим, чтоδx=0.1.
