Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

862

.pdf
Скачиваний:
4
Добавлен:
07.01.2021
Размер:
720.35 Кб
Скачать

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

1.5.Определяем вторую координату по формуле (26), двигаясь в том же направлении:

x2 x1 h FS 3 0,8 0,1 5 1,3; R(1,3) 2,65.

Шаг сделан неудачно, поскольку R(x2) R(x1), т.е. –2,65 > – 12,38, следовательно, третий шаг будет осуществлен из последней удачной точки x1 в направлении, обратном ко второму шагу, т.е. справа налево.

1.6.Третью координату определяем по формуле x3 x1 h FS 4 0,8 0,1 3 0,5;

R(0,5) 9,16; R(0,5) R(0,8), т.е. –9,16 > –12,38 (шаг неудачный).

1.7. Находим x4 x1 h FS 5 0,8 0,2 1,0;

R(1)= – 11,67; R(1) > R(0,8), т.е. – 11,67 > –12,38 (шаг неудачный)

1.8.Находим x5 x1 h FS 6 0,8 0,1 1 0,7;

R(0,7)= – 11,73; R(0,7) > R(0,8), т.е. – 11,73 > –12,38 (шаг

 

 

 

 

 

неудачный)

 

1.9.Находим x6

x1

h FS 7 0,8 0,1 1 0,9; R(0,9)= – 12,42.

Поскольку 12,42<12,38, то шаг оказался удачным.

При этом исчерпаны в убывающей последовательности все числа

Фибоначчи, а поэтому поиск закончен.

 

 

Ответ: Rmin R(0,9 0,1) 12,48.

 

 

2. Метод локализации экстремума.

 

 

I шаг.

 

 

 

 

 

 

 

Весь диапазон от xmin до xmax

разбиваем на четыре равных

подынтервала.

 

 

 

 

 

 

 

Поскольку xmin 0,

а xmax 2, то имеем

 

xmin 0;

R(0) 0;

x

 

0,5;

R(0,5)

9,16;

1

 

 

 

 

 

x2

1,0;

 

 

 

вычисляем

R(1,0) 11,67;

x

3

1,5;

 

R(1,5) 11,33;

x

 

 

 

 

 

100,67.

max

2,

R(2,0)

 

 

 

 

 

 

На основе анализа имеем минимальное значение функции R(1,0)

25

= =– 11,67. Тогда рассматриваемый диапазон сужается до [0,5…1,5], т.е. берутся два прилегающих подынтервала к точке x2 , имеющей минимум целевой функции. Далее осуществляем второй шаг: в связи

сэтим делим прилегающие подынтервалы пополам.

II шаг.

xmin

0,5;

R(0,5) 9,16;

x

 

0,75;

 

R(0,75)

12,12;

 

1

 

 

 

 

x2 1,0;

 

 

 

 

 

вычисляем R(1,0) 11,67;

x

3

1,25;

 

R(1,25) 5,59;

x

 

 

 

 

 

 

max

1,5,

R(1,5) 11,33.

 

 

 

 

 

 

 

III шаг.

 

 

 

 

 

 

 

 

xmin

0,5;

R(0,5) 9,16;

x

 

0,625;

R(0,625)

10,93;

1

 

 

 

 

 

 

x2 0,75;

 

 

 

 

 

вычисляем R(0,75) 12,12;

x

 

0,875;

R(0,875)

 

12,48;

3

 

 

1,0,

 

 

 

 

x

max

 

R(1,0) 11,67.

 

 

 

 

 

 

Поскольку на третьем шаге подынтервал разбиения еще не достиг заданной точности поиска, т.е. 0,125 > 0,1 (см. табл. 2), то осуществляем следующий шаг, выбирая в качестве наилучшей точки точку x3, при которой R(x3)=R(0,875) = 12,48. Тогда рассматриваемый интервал сузится до величины [0,75 – 1,0], а [0,5 – 0,75) отбрасываем.

1V шаг.

xmin 0,75;

R(0,75) 12,12;

x

 

0,8125;

R(0,8125)

12,43;

1

 

 

 

 

x2 0,875;

 

 

 

 

вычисляем R(0,875) 12,48;

x

3

0,9375;

R(0,9375) 12,24;

x

 

1,0,

 

 

 

max

 

R(1,0) 11,67.

 

 

 

 

 

Поскольку на четвертом шаге подынтервал разбиения оказался меньше заданной точности поиска (см. табл. 2), т.е. 0,0625 < 0,1, то расчеты заканчиваются. В качестве решения задачи принимаем наименьшую величину целевой функции на последнем шаге поиска.

Ответ: Rmin R(0,875 0,1) 12,48.

26

3. Метод золотого сечения.

На первом шаге весь диапазон изменения неизвестной от xmin =0 до xmax =2 разбиваем на три подынтервала следующим образом:

a=xmax xmin =2 – 0=2;

 

 

 

x1 xmin z2 a =0 + 0,38 2 = 0,76;

 

 

 

 

x2 xmin z a =0 + 0,62 2 = 1,24.

 

Определяем величины откликов на концах интервала (xmin и

x

max

) и в точках разбиения (x и

x

2

).

 

 

 

 

 

 

1

 

 

 

 

xmin 0;

 

 

 

 

R(0) 0;

 

 

x1 0,76;

 

 

 

 

 

 

 

 

 

 

 

R(0,76) 12,19;

 

 

x

 

1,24;

 

вычисляем R(1,24) 5,14;

 

 

2

 

 

 

 

 

 

 

 

 

x

 

 

2,0,

 

 

 

R(2,0) 100.

 

 

max

 

 

 

 

 

 

Наименьшая величина отклика в точке x1 = 0,76, а R(0,76) = – 12,19. Окружаем эту точку прилегающими подынтервалами (0 – 0,76) и (0,76 – 1,24), а остальное (1,24 – 2) из рассмотрения исключаем. Тогда рассматриваемый интервал будет от 0 до 1,24, т.е. a = 1,24. В этом случае получаем новые точки разбиения.

x3 xmin z2 a=0 + 0,38 1,24 = 0,471; x4 xmin z a=0 + 0,62 1,24 = 0,76.

xmin 0;

 

R(0) 0;

x3

 

 

 

0,471;

R(0,471) 8,69;

x4

 

 

вычисляем

0,76;

 

R(0,76) 12,19;

x2

1,24,

 

 

 

R(1,24) 5,44.

Наименьшая величина отклика в точке разбиения x4=0,76, а

R(0,76)=-12,19.

Согласно вышеизложенной методике рассматриваемый интервал сужается до x3x2. Тогда имеем a = x3x2= 1,24 – 0,471 = 0,769.

Отсюда

x5 x3 z2 a=0,471 + 0,38 0,769 = 0,471 + 0,292 = 0,76; x6 x3 z a=0,471 + 0,62 0,769 =0,471 + 0,476 = 0,948.

На новом шаге получим

27

x2 0,471;

R(0,471) 8,69;

x5

0,76;

 

 

 

R(0,76) 12,19;

x6

 

 

вычисляем

0,948;

 

R(0,948) 12,16;

x3

1,24,

 

 

 

R(1,24) 5,44.

Наилучшая точка здесь x5 = 0,76, а R(0,76) = –12,19. Тогда a = =0,948 – 0,471 = 0,477.

Отсюда

x7=0,471 + 0,38 0,477 = 0,471 + 0,181 = 0,65; x8=0,471 + 0,62 0,477 =0,76 .

Имеем новое разбиение:

x2 0,471;

R(0,471) 8,69;

x

7

0,65;

 

 

 

 

 

 

R(0,65)

11,22;

x8

0,76;

 

вычисляем

 

 

R(0,76) 12,19;

x3

0,948,

 

 

 

 

R(0,948) 12,16.

Наилучшая точка x8 = 0,76, а R(0,76) = –12,19. Тогда a = 0,948 –

– 0,65 = 0,298.

Отсюда

x9 =0,65 + 0,38 0,298 =0,76; x10 =0,65 + 0,62 0,298 =0,835.

Имеем новое разбиение:

x7 0,65;

 

R(0,65) 11,22;

x

0,76;

 

R(0,76) 12,19;

9

 

 

 

 

 

 

вычисляем

x10 0,836;

R(0,836) 12,48;

x

0,948,

 

R(0,948) 12,16.

6

 

 

 

Наилучшая точка x10 = 0,835, а R(0,835) = –12,48. Тогда a = 0,948

– – 0,76 = 0,188.

Отсюда

x11=0,76 + 0,38 0,188 =0,835; x12 =0,76 + 0,62 0,188 =0,876;

Имеем новое разбиение:

28

x9

0,76;

 

R(0,76) 12,19;

x

0,835;

 

R(0,835)

12,48;

11

 

 

 

 

 

x

0,876;

 

вычисляем

R(0,876)

12,48;

 

 

12

 

 

 

x

0,948,

 

R(0,948)

12,16.

6

 

 

 

 

 

Наилучших две точки: R(0,835)=R(0,876)= –12,48.

Поскольку на последнем шаге наибольший подынтервал разбиения равен (0,948 – 0,876=0,072) и он меньше заданной точности поиска (0,1), то на этом расчеты прекращаются.

Ответ: R(0,876 0,1)= –12,48. 4. Метод сканирования.

Весь диапазон изменения неизвестной от xmin =0 до xmax =2 разбиваем с шагом, равным = 0,1 на 20 одинаковых подынтервалов и определяем величины откликов на концах интервала (xmin и xmax) и в точках разбиения. Имеем следующие результаты:

R(0)

= 0;

R(0,1)

= – 1,9;

R(0,2)

= – 3,8;

R(0,3)

= – 5,67;

R(0,4)

= – 7,48;

R(0,5)

= – 9,16;

R(0,6)

= – 10,39;

R(0,7)

= – 11,73;

R(0,8)

= – 12,38;

R(0,9)

= – 12,48;

R(1,0)

= – 11,67;

R(1,1)

= – 9,93;

R(1,2)

= – 7,00;

R(1,3)

= – 2,65;

R(1,4) =3,37; R(1,5) =11,33; R(1,6) =23,89; R(1,7) =34,14; R(1,8) =49,58; R(1,9) =68,09; R(2,0) =100,67.

Выбираем наименьшую величину отклика, которая и будет решением задачи.

Ответ: R(0,9 0,1) = – 12,48.

Отчет о работе оформляется в произвольной форме с обязательным обоснованием всех действий, подтвержденных расчетами, при этом он не должен вызывать затруднений при чтении.

Вопросы для самоконтроля

1.Дать перечень безградиентных методов поиска экстремума одномерных функций.

2.Сформулировать сущность метода сканирования.

3.Определить оптимум целевой функции методом локализации экстремума.

4.Какова последовательность вычислений при использовании метода золотого сечения?

5.Записать формулу рекуррентного соотношения, положенного в основу последовательности чисел Фибоначчи.

29

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]