
Метод чисел Фибоначчи
В основу метода чисел Фибоначчи положены два соотношения:
Lq-2
= Lq-1+
Lq
, q=
;
LN = (LN-1 + )/2.
Первое из этих двух соотношений определяет связь трех соседних интервалов неопределенности. Второе соотношение требует, чтобы в завершении эксперимента две последние точки находились симметрично на интервале неопределенности LN-1. Здесь - минимальный размер интервала неопределенности LN, вычисляемый перед N–м шагом.
Расчеты показывают, что в диапазоне реальных значений N (от 4-5 до 25-30) метод чисел Фибоначчи эффективнее метода дихотомии на 20-30%. Это объясняется тем, что сокращение длины очередного интервала Lq требует здесь проведения одного нового эксперимента, тогда как в схеме дихотомии их требовалось два.
Так как второе граничное условие связывает LN и LN-1, то схему поиска следует строить от конца к началу. В итоге обнаруживается зависимость длин интервалов неопределенности, вычисляемых на каждом шаге и координат точек, в которых следует вычислять значения целевой функции, от значений N и , заданных при планировании поиска. Необходимо помнить, значение не должно быть больше, чем LN.
Для разрешения этой проблемы заранее рассчитаны коэффициенты при LN и c целью определения различных значений Lq, названные числами Фибоначчи FN в честь итальянского математика XIII века Леонарда Пизанского (Фибоначчи):
Lq=
FN-q+1
LN
–
FN-q-1.
Если же в результате вычисления по приведенной выше формуле значение LN окажется меньше, чем значение , то следует уменьшать либо минимальный размер интервала неопределенности , либо количество шагов N. Иначе при вычислении LN-1 будет получаться не логичное неравенство: LN-1 < LN.
В табл. 2 приведены значения FN для малых значений N.
Нетрудно видеть, что эти числа определяются соотношениями
F0 = F1 =1; Fk = Fk-1 + Fk-2; k=2, 3, ….
Таблица 2. Числа Фибоначчи
N |
FN |
N |
FN |
N |
FN |
0 |
1 |
6 |
13 |
12 |
233 |
1 |
1 |
7 |
21 |
13 |
377 |
2 |
2 |
8 |
34 |
14 |
610 |
3 |
3 |
9 |
55 |
15 |
987 |
4 |
5 |
10 |
89 |
16 |
1597 |
5 |
8 |
11 |
144 |
17 |
2584 |
На рис. 3.5.4. приведена геометрическая иллюстрация схемы поиска экстремума методом чисел Фибоначчи. Из нее видно, что LN-3 = LN-1+ LN-2. Если считать, что исходный интервал L1=1, то L2 + L3 =1, а также 1=1– L2, 2= L2. При этом точки 1 и 2 расположены симметрично относительно центра единичного интервала L1=1.
Рис. 3.5.4. Геометрическая иллюстрация задачи поиска экстремума методом чисел Фибоначчи
Решим предыдущую задачу поиска экстремума методом чисел Фибоначчи.
Как было указано ранее N = 6 , = 0,05. Тогда, приняв q=1 и L1=1, воспользуемся формулой
Lq= FN-q+1 LN – FN-q-1.
Получим
L1=F6-1+1L6–F6-1-1=F6L6
–
F4=13L6–50,05=13L6
–
0,25=1;
L6=.
Остальные длины интервалов неопределенности
определим, воспользовавшись формулойLN-3
= LN-1+
LN-2.
Тогда L4 = L6 + L5 L5 + 0,1;
L3 = L5 + L4 L5 + L5 + 0,1 2L5 + 0,1;
L2 = L4 + L3 L5 + 0,1+ 2L5 + 0,1 3L5 + 0,2;
L1 = L3 + L2 2L5 + 0,1+ 3L5 + 0,2 5L5 + 0,3 = 1.
Следовательно,
L5=;L4
=L5
+
0,1=0,24; L3
=2L5
+
0,1=0,38;
L2 =3L5 + 0,2=0,62; 1 = 1 – 0,62 =0,38; 2 = 0,62; L1 = 5L5 + 0,3 = 1, что и было предположено.
До начала решения задачи исходный интервал неопределенности [0; 1] длины L1 = 1. После измерений значений целевой функции в точках 1, 2 и сравнения их выявляем, что большее значение целевая функция принимает в точке 2 =0,62, поэтому новый интервал неопределенности [0,38; 1] длины L2 = 0,62.
Нам уже известно, что длина третьего интервала неопределенности L3 = 0,38. Заметим, что расстояние от 1 до 0,62 как раз и составляет 0,38, поэтому первая точка нового второго шага нам уже известна. Это точка 3=2=0,62. Осталось найти вторую точку второго шага такую, которая отстояла бы вправо по шкале на 0,38 от левой границы интервала неопределенности L2 – от точки 1=0,38. Тогда 4=0,38+0,38=0,76. Процесс решения этой задачи приведен на рис.3.5.5 и в таблице 3.
0 |
|
|
1 |
|
|
|
|
0,62 |
2 |
|
|
|
|
|
1 | ||||
L2 = 0,62 |
|
|
0,3 |
|
|
|
|
|
|
3 |
|
4 |
|
|
|
| |||
L3 = 0,38 |
|
|
|
|
|
|
5 |
|
|
6 |
|
|
0,76 |
|
|
| |||
L4 = 0,24 |
|
|
|
|
0,48 |
|
8 |
|
|
|
|
|
|
|
|
|
| ||
L5 = 0,14 |
|
|
|
9 |
|
10 |
0,52 |
|
|
|
|
|
|
|
|
|
| ||
L6 = 0,10 |
|
|
|
0,42 |
11 |
|
|
|
|
|
|
|
|
|
|
|
| ||
L7=0, 067 |
|
|
|
0,46 |
L7 = 0, 067 |
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.5.5. Шаги поиска экстремума при стратегии чисел Фибоначчи
Таблица 3. Шаги поиска экстремума W() при стратегии чисел Фибоначчи
i |
2i-1 |
2i |
Li |
W(2i-1) |
W(2i) |
1 |
0,38 |
0,62 |
1 |
3,14 |
3,24 |
2 |
0,62 |
0,76 |
0,62 |
3,24 |
2,96 |
3 |
0,52 |
0,62 |
0,38 |
3,44 |
3,24 |
4 |
0,48 |
0,52 |
0,24 |
4,22 |
3,44 |
5 |
0,42 |
0,48 |
0,14 |
3,53 |
4,22 |
6 |
0,46 |
0,48 |
0,10 |
3,97 |
4,22 |
Таким образом, *[0,46; 0,52]. Это с допустимой точностью совпадает с результатами, полученными методом дихотомии. Однако потребовалось меньшее число экспериментов, так как (это видно из таблицы и рисунка) на каждом шаге поиска требуется только одно новое измерение целевой функции, т. к. одна из точек предыдущего интервала неопределенности Li переходит на очередной интервал Li+1.
В качестве недостатка метода чисел Фибоначчи следует отметить то, что для того, чтобы найти первое число 1 = f(N, ) нужно знать значения аргументов функции f, что не всегда возможно. Изменение N в ходе экспериментов в метод чисел Фибоначчи невозможно. Т. е. метод чисел Фибоначчи является итеративным методом поиска экстремума целевой функции, использующим пассивную стратегию. Лишен данного недостатка рассматриваемый далее метод золотого сечения, хотя его эффективность несколько меньше (примерно в 1,17 раза при N > 4), чем эффективность метода чисел Фибоначчи.
Как мы видим, для определения L6=0,1 методом чисел Фибоначчи нам потребовалось измерить значения целевой функции всего в шести точках. При решении данной задачи методом дихотомии после шести измерений интервал неопределенности был равен L4=0,17, после восьми измерений – L5=0,11, после десяти – L6=0,08, а после двенадцати – L7=0,065. Для сравнения, методом чисел Фибоначчи после одиннадцати измерений интервал неопределенности (при N = 10) будет равен
L1=F10-1+1L10–F10-1-1=
F10L10–F8=89L10–1,7=1;
L10=.
Аналогично
находим интервал неопределенности
после 12 (при =0,01)
L11=и
после 13 (при=0,006)
измерений L12=
.