2.1.4. Метод с использованием чисел Фибоначчи
Последовательность чисел, подчиняющаяся рекуррентному
соотношению |
|
FS FS 1 FS 2 |
(20) |
называется последовательностью чисел Фибоначчи. Другими словами, каждое последующее число Фибоначчи равно сумме двух предыдущих чисел. При этом нулевое число Фибоначчи равно единице, т.е.
|
F0=1. |
|
(21) |
В табл.1 приводится последовательность чисел Фибоначчи для |
|||
практически используемого диапазона. |
|
|
|
Установлена |
последовательность |
поиска |
экстремума |
рассматриваемой функции методом с использованием чисел Фибоначчи, заключающаяся в выполнении таких операций (методика расчета).
Таблица 1
Последовательность чисел Фибоначчи
S |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
FS |
1 |
1 |
2 |
3 |
5 |
8 |
13 |
21 |
34 |
55 |
89 |
144 |
233 |
1. Определяется вспомогательное число N по заданной точности поиска и диапазону исследования (Xmax Xmin ), которое рассчитывается по формуле
N |
Xmax Xmin |
. |
(22) |
|
|||
|
|
|
|
2. Из последовательности чисел Фибоначчи (см. табл. 1) находят такое, чтобы
FS 1 N FS . |
(23) |
||
3. Определяется минимальный шаг поиска hmin по формуле |
|
||
h |
Xmax Xmin |
. |
(24) |
|
|||
min |
FS |
|
|
|
|
||
4. Определяется первая искомая координата
X1 Xmin hmin FS 2 . (25)
Вычисляется значение целевой функции для точек Хmin и Х1. Пошаговая процедура в этом методе сводится к следующему:
20
определяем координату новой точки, затем вычисляем величины целевой функции в точке, откуда шагаем, и в точке, куда шагаем, которые сравниваем между собой. Если функция улучшилась, т.е. увеличилась при поиске максимума либо уменьшилась при определении минимума, то следующий шаг осуществляют из последней удачной точки в том же направлении, иначе говоря, в направлении последнего шага, уменьшая число Фибоначчи на единицу. Допустим, если на предыдущем шаге использовали F7=21, то на текущем шаге будет F6=13. Если же предыдущий шаг оказался неудачным, т.е. целевая функция в новой точке не улучшилась, то следующий шаг осуществляется из последней удачной точки (т.е. из той точки, из которой осуществляли шаг), но в сторону, обратную предыдущему шагу. Исключение здесь составляет лишь тот случай, когда мы шагаем из точки Хmin (т.е. из крайней левой точки) и шаг оказался неудачным. По изложенному правилу мы должны бы на следующем шаге переместиться влево от точки Хmin, т.е. за пределы рассматриваемого отрезка Хmin–Хmax. Поэтому в этом случае движение осуществляется из точки Хmin в направлении предыдущего шага (т.е. вправо от точки Хmin).
Возвращаясь к рассматриваемому примеру, получим (рис. 8) R(Xmin)<R(X1). Поскольку здесь определяется минимум целевой функции, то шаг оказался неудачным. Но в этом случае следующий шаг мы будем делать также вправо из точки Хmin, уменьшив номер числа Фибоначчи на единицу.
5. Производится вычисление второй координаты:
X2 Xmin h FS 3. (26)
Вычисляется значение целевой функции R(Х2).
Шаг выбран удачно, т.к. R(Х2)<R(Хmin) при поиске min, поэтому осуществляют третий шаг, рассчитывая соответствующую координату по формуле
x3 x2 hmin FS 4 . |
(27) |
Если бы предыдущий шаг оказался неудачным, т.е. R(Х2)>R(Х1) при поиске min, то третий шаг осуществлялся бы из исходного положения в обратную сторону, т.е.
x3 x2 hmin FS 5 . (28)
Шаговая процедура продолжается до тех пор, пока не будут исчерпаны в убывающей последовательности все числа Фибоначчи. Геометрическая интерпретация этого метода приведена на рис. 8.
Данный метод обеспечивает следующую точность поиска:
21
|
Xmax Xmin |
, |
(29) |
|
|||
|
FS |
|
|
где FS – выбранное число Фибоначчи.
Для того чтобы можно было сравнить рассматриваемые методы по точности поиска, принимаем S=21. Тогда точность поиска составит
|
|
1 |
0,56 10 4. |
Xmax Xmin |
|
||
|
F21 |
||
R(x)
R(x1) 




R(x3) 




R(xmin)
R(x2) 
R(x4)
|
4 |
3 |
|
|
|
|
|
5 |
|
|
|
||
|
2 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
xmin |
x5 x4 x2 |
|
|
x3 |
x1 |
xmax |
|
|
|||||
Рис. 8. Геометрическая интерпретация метода с использованием чисел Фибоначчи
Из этого следует, что метод с использованием чисел Фибоначчи обеспечивает наибольшую среди рассматриваемых методов точность поиска.
2.2 Безградиентные методы поиска экстремума многомерных функций
Безградиентные методы поиска экстремума многомерных функций подразделяются на методы детерминированного и случайного поиска. Детерминированные методы поиска экстремумов многомерных функций базируются на том, что всю интересующую нас область покрывают сеткой, допустим, разбивают по методу
22
сканирования с шагом (заданная точность поиска), а затем в узловых точках сетки определяют величины откликов и из них выбирают наилучший по заданному критерию.
При использовании случайных методов поиска экстремумов многомерных функций в исходной точке поиска направления пробных движений выбирают случайно; если шаг оказался удачным, то из последней удачной точки вновь выбирают случайное направление и продолжают движение. Несколько более успешным является метод случайных направлений с обратным шагом. Здесь, если случайным образом выбранное направление движения в исходной точке оказалось неудачным, следующий шаг осуществляется из последней удачной точки, но в сторону, обратную предыдущему неудачному шагу, который должен указать удачное направление поиска.
Расчеты с использованием любого из этих методов заканчиваются, если шаг поиска будет равен заданной точности поиска по осям и очередные пробные движения по всем осям не приводят к успеху. Тогда последняя удачная точка является решением задачи.
2.3. Типовой расчет "Безградиентные методы поиска экстремума одномерных функций"
2.3.1. Задание
Допустим, в результате исследования объекта получена следующая функция в общем виде
R(x) ax4 |
|
bx3 |
dx min. |
(30) |
|
c x |
|||||
|
|
|
|
Используя исходные данные (прил. 1), где заданы коэффициенты a, b, с, d (столбцы 2–5) для 31 различного варианта, необходимо:
1.Определить экстремум функции (30) методом с использования чисел Фибоначчи для указанного варианта с заданной точностью поиска в заданном диапазоне xmin xmax (см. столбцы 6 – 7).
2.Определить экстремум функции (30) (см. столбцы 2 – 5) методами сканирования, локализации экстремума и золотого сечения (см. столбец 9) в указанном диапазоне xmin ,xmax (см. столбцы 6 – 7) с предложенной точностью поиска (см. столбец 8).
23
2.3.2. Образец выполнения работы
Текст задания записать в соответствии с подразд. 2.3.1 в отчет. Числовые значения по заданному варианту свести в табл. 2. Для примера рассмотрим выполнение настоящей работы по варианту 31 со следующими исходными данными (см. табл. 2).
|
|
|
Исходные данные |
|
|
Таблица 2 |
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
№ вар. |
a |
b |
с |
d |
|
xmin |
xmax |
|
|
31 |
10 |
8 |
4 |
19 |
|
0 |
2 |
0,1 |
|
На основе исходных данных (см. табл. 2) и формулы (30) имеем исходную функцию
R(x) 10x4 8x3 19x min, 4 x
которую необходимо согласно заданию исследовать на минимум четырьмя методами.
1. Метод с использованием чисел Фибоначчи.
Решение задачи методом с использованием чисел Фибоначчи осуществляем в такой последовательности:
1.1.Вычисляем вспомогательное число N согласно (22):
N xmax xmin 2,0 20.
0,1
1.2.Из последовательности чисел Фибоначчи, которую создайте сами, определяем число S, соответствующее величине N по соотношению (23). Имеем S 7; F7 21.
1.3.Определяем минимальный шаг поиска согласно (24):
h xmax xmin 2,0 0,1.
FS 21
1.4.Определяем первую искомую координату согласно (25): x1 xmin h FS 2 0 0,1 8 0,8.
Вычисляем R(0,8) 10(0,8)4 8 (0,8)3 19 0,8 12,38. Поскольку 4 0,8
R(xmin ) R(0) 0, то шаг сделан удачным, так как величина функции уменьшилась при перемещении из точки xmin в точку x1, т.е.
0> –12,38.
24