Простейшим из безградиентных методов является метод сканирования (рис 5.3). Алгоритм расчета при исходных данных (целевая функция – = МАХ, область исследования – , погрешность определения точки экстремума – ) заключается в сканировании (прохождении) оси Х в интервале от до с шагами и расчетом значения критерия по целевой функции с запоминанием лучшего результата оптимизации.
|
Х1 Х2 Х3 Х
Рис. 5.3. Иллюстрация метода
сканирования
В рассмотренном алгоритме в памяти содержится характеристика глобального экстремума целевой функции (рис.5.1). Если целевая функция содержит один экстремум, то в пункте 5 алгоритма вводится условие прекращения сканирования и, соответственно, решения задачи в виде: если
|
|
, то расчет прекращают.
Метод сканирования – это единственный из методов нелинейного программирования, позволяющий рассчитать глобальный экстремум. Недостатком метода является длительность решения задачи в связи с необходимостью выполнения большого числа циклов расчета :
, (5.28)
так, например, если Х – это температура процесса, исследуемая в интервале 100-400 0С с шагом 0.5 0С, то для решения задачи будет необходимо выполнить 600 циклов расчета.
Намного эффективнее метода сканирования при наличии единственного экстремума методы локализации экстремума, в частности, метод чисел Фибоначчи. В этом методе шаги в области исследования по оси выполняются пропорционально числам Фибоначчи (табл. 5.1), которые рассчитываются по рекуррентному соотношению
. (5.29)
Как следует из табл. 5.1, числа Фибоначчи резко возрастают с увеличением их порядкового номера.
Таблица 5.1
Числа Фибоначчи
Порядковый номер к | |||||||
Числа Фибоначчи | |||||||
Порядковый номер к | |||||||
Числа Фибоначчи | |||||||
Порядковый номер к | |||||||
Числа Фибоначчи |
Если заданы целевая функция = МАХ, область исследования и погрешность определения точки экстремума – , то методом чисел Фибоначчи необходимо выполнить к циклов расчета, где к – порядковый номер ближайшего числа Фибоначчи, большего числа циклов при решении задачи методом сканирования:
. (5.30)
Так, например, если в примере, приведенном на стр. 126 число циклов расчета методом сканирования составляло 600, то при ближайшем большем числе Фибоначчи 610 (табл. 5.1) рассматриваемым методом придется выполнить лишь 14 циклов расчета.
|
|
Алгоритм расчета включает следующие этапы:
1. Определяется минимальный шаг поиска экстремума
, (5.31)
очевидно, что , если , и , если .
2. Вычисляется величина в точке .
3. Выполняется переход из точки в точку Х1 с координатой
(5.32)
и в этой точке рассчитывается величина критерия .
4. Если шаг оказался удачным ( больше ), т следующий шаг выполняется в том же направлении, что и предыдущий, но с последовательным уменьшением числа Фибоначчи на каждом шаге. На рис. 5.4 первый шаг – удачен и выполнен переход в точку
. (5.33)
Если шаг оказался неудачным, то меняется направление движения к экстремуму и переходим последовательно в новые точки, каждый раз уменьшая число Фибоначчи. На рис. 5.4 второй шаг оказался неудачным и координаты очередной третьей точки нашли как
. (5.34)
Х1 Х3Х2 Х
Рис. 5.4. Иллюстрация метода чисел Фибоначчи
Процесс пошагового расчета выполняется до тех пор, пока не будут исчерпаны все числа Фибоначчи в убывающей последовательности, при этом последнее число Фибоначчи обеспечивает шаг
, (5.35)
то есть оно определяет координаты экстремума с заданной степенью точности или выше ее.