Вы находитесь на странице: 1из 13

9. Методы поиска экстремума функций.

9.1.Методы поиска экстремума функции одной переменной.

Метод деления интервала.


При использовании этого метода весь интервал допустимой области изменения
переменной делится на n равных частей и вычисляется значение функции во всех точках,
включая граничные точки интервала. Затем из полученных значений функций
выбираются такие точки, где функция имеет наименьшие значения (при поиске минимума
функции). Полученный интервал опять делится на n – равных частей и процедура
повторяется до тех пор, пока мы не получаем точку с самым минимальным значением
функции ( при заданной точности определения экстремума).

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


Было показано, что если делить заданный интервал не на равные интервалы, а на отрезки
не равной длины, то есть возможность локализовать экстремум гораздо быстрее. Было
найдено, что это отношение отрезков, на которые нужно делить весь заданный интервал,
равно 0.38. Это значение отношения отрезков (меньшего отрезка ко всему интервалу)
называется золотым сечением. При использовании метода золотого сечения имеется
возможность после одного вычисления на каждом этапе локализовать положение
экстремума в интервале, длина которого составляет 0.62 от исходного интервала.
Алгоритм поиска экстремума методом золотого сечения складывается из следующих
этапов:
1. Вычисляются и запоминаются значения оптимизируемой функции R(u) на концах
исходного интервала [u(0),u(3)], т.е. значения функций R(u(0),R(u(3)).
2. Вычисляется и запоминается значение функции в точке u (1), координаты которой
определяются следующим образом:
u(1)=u(0)+0.38(u(3)  u(0)) (9.1)
3. Вычисляется и запоминается значение функции в точке u (2), координаты которой
определяются следующим образом:
u(2)=u(3) - 0.38(u(3)  u(0)) (9.2)
4. По найденным значениям функции R(u(0)), R(u(1)), R(u(2)), R(u(3)) определяется
подынтервал, в котором локализован экстремум, состоящий из двух подынтервалов l1
и l2 не равной длины.
5. Внутри большего интервала находится точка, отстоящая от конца общего интервала l1
+ l2 на расстоянии
l=( l1 + l2)0.38 (9.3)
В этой точке рассчитывается значение функции R(u), после чего снова выбирается
сокращенный подынтервал в интервале (l1 + l2), локализующий экстремум, т.е.
вычисления повторяются начиная с пункта 4.
Для изложенного алгоритма была получена формула для вычисления точности
определения экстремума после s вычислений значений функции R(u):
s 3

b  a  5 1 
   (9.4)
2  2 
 
При применении метода «золотого сечения» для того же числа расчетов значений
функции R(u) достигаемая точность в 10 раз выше, чем при использовании метода
деления интервала на равные части.

156
Метод поиска с использованием чисел Фибоначчи.
Показано, что свойства последовательности чисел Фибоначчи, описываемой
рекуррентным соотношением
Fk=Fk-1+Fk-2 ; F0 = F1 (9.5)
Можно использовать для поиска экстремума функции одной переменной.
Доказано, что если требуется найти положение экстремума функции R(u), определенной
на интервале [a,b] c абсолютной ошибкой, не превышающей:
ba
 (9.6)
F s
Где Fs – s-e число Фибоначчи, то для отыскания положения экстремума достаточно
вычислить не более s значений функции R(u). Так, например, при выполнении s=21
расчетов точность определения экстремума составит
 1 1 4
   0.56 10 (9.7)
b  a F s 17711
Эта точность оказывается более высокой, чем в приведенных выше методах поиска
деления интервала на равные части и «золотого сечения».
Алгоритм поиска с использованием чисел Фибоначчи имеет следующий вид:
1. По заданной точности , с которой необходимо найти положение экстремума
функции R(u) в интервале [ a, b ], рассчитывается вспомогательное число N.
ba
N 

2. Для полученного значения N находится такое число Фибоначчи, чтобы выполнялось
неравенство
Fs-1 < N < Fs
3. Определяется минимальный шаг поиска по формуле:
ba
 
m
F s

4. Рассчитывается значение функции R(u) в начале интервала, т.е. R(a).


5. Рассчитывается следующая точка, в которой вычисляется R(u) по формуле:
u(1) = a +mFs-2
6. Если этот шаг оказался удачным, т.е. R(u(1))<R(a), то следующая точка
определяется как
u(2) = г(1) +mFs-3
(1)
При R(u )>R(a) (шаг неудачный)
u(2) = г(1) +mFs-3
7. Последующие шаги выполняются с уменьшающейся величиной шага, которая для
i – го шага будет равна
u(i)=mFs-i-2
Шаги выполняются в соответствии со следующим правилом.
Если при выполнении шага u(i) значение функции в точке
u(i+1)=u(i)+u(i)
оказывается меньше чем в предыдущей точке, т.е. R(u(i+10)<R(u(i)) - шаг оказался удачным,
то следующий шаг делается из этой точки, т.е.
u(i+2)=u(i+1)+u(i+1)

157
Если же шаг оказался неудачным т.е. R(u(i+10)>R(u(i)), то следующий (i+1)-й шаг
выполняется из предыдущей точки в противоположном направлении:
u(i+2)=u(i)  u(i+1)
Описанный процесс продолжается до тех пор, пока не будут исчерпаны все числа
Фибоначчи в убывающей последовательности:
Fs-i-2 = Fs-i – Fs-i-1
Можно показать, что алгоритм поиска с использованием чисел Фибоначчи в пределе при
s, т.е. при поиске с высокой точностью, совпадает с методом «золотого сечения». Это
следует из того, что отношение Fs-1/Fs очень быстро стремится к величине 0.62.

9.2. Методы поиска экстремума функции многих переменных.

Метод поочередного изменения переменных.


Для случая многоканальных ЭСУ применяют методы поиска для функций многих
переменных типа метода Гауса-Зейделя, или его еще называют методом по координатного
спуска. Этот метод заключается в том, что все переменные изменяют по очереди,
добиваясь экстремального значения оптимизируемой переменной по каждой из
координат. Этот метод обладает достаточно хорошей скоростью достижения экстремума
при небольшом числе переменных. Для большего количества переменных используют
методы нелинейного программирования – градиентный метод, или его модификацию
метод наискорейшего спуска.

Градиентный метод поиска экстремума функций многих переменных.


При градиентном методе вычисляют частные производные оптимизируемой
переменной по варьируемым параметрам – управляющим воздействиям и каждое
следующее значение управляющих переменных делают в направлении градиента
оптимизируемой функции по варьируемым переменным следующим образом:

(k ) (k )
     
 ui  M     ui  M   
( k 1) (k ) (k )
u (9.8)
  ui    ui 
i

В этом выражении частная производная оптимизируемой функции заменена ее конечно-


разностным эквивалентом. При наличии большого числа варьируемых переменных эта
процедура требует большого числа вычислений, что создает некоторые трудности при
работе системы управления с экстремальным регулятором в реальном времени. Поэтому
вместо градиентного метода применяют различные модификации этого метода,
ускоряющие движение к экстремуму. Например, метод наискорейшего спуска.

Метод наискорейшего спуска.


При использовании этого метода после каждого шага в направлении к экстремуму
проверяется удачным ли был этот шаг:

 
(k ) ( k 1)
(9.9)
Если условие (2.1.2) выполняется ( при поиске минимума), то следующий (k+1)-й шаг
делается в этом же направлении, если же условие (2.1.2) не выполняется, то делается

158
возврат в предыдущую точку, вычисляется новое значение градиента и делается шаг с
новым значением градиента.
При некоторых модификациях этого метода выбирается оптимальное значение
коэффициента пропорциональности М, с которым делается шаг в направлении градиента.
Рассматривая этот коэффициент как новую варьируемую переменную, можно применить
метод однопараметрической оптимизации, например метод золотого сечения, и
определяется экстремум функции на выбранном направлении градиента.

Метод релаксации
Алгоритм метода заключается в отыскании осевого направления, вдоль которого
целевая функция изменяется наиболее сильно. Для этого в начальной точке поиска
определяются частные производные оптимизируемой функции по всем варьируемым
переменным. Осевому направлению, в котором целевая функция изменяется наиболее
быстро, соответствует наибольшая по модулю производная. Если знак производной
отрицательный, то функция убывает в направлении данной оси, если производная
положительна, то функция убывает в обратном направлении. По направлению убывания
целевой функции производятся шаги до тех пор, пока не будет получено минимальное
значение по выбранному осевому направлению. При этом для определения величины
шага по этому направлению поиска также может быть использован один из методов
однопараметрической оптимизации, рассмотренных выше. После достижения экстремума
функции в выбранном направлении, вновь определяются частные производные по всем
переменным, за исключением той, по которой осуществлялось движение и вновь
определяется направление наискорейшего убывания функции, по которому и делаются
шаги до тех пор, пока движение будет успешно, и т.д.
Критерием окончания поиска является достижение такой точки, при движении из которой
по любому осевому направлению, дальнейшего убывания функции не происходит. На
практике в качестве признака оптимума часто применяется условие:
2
 R 
  
n
 (9.10)
 u 
 
j 1
j
Здесь  - заданная точность достижения экстремума. При  это условие превращается в
точное условие равенства нулю производных в точке оптимума. Разумеется, что условие
(1.6.10) может быть использовано только в том случае, когда оптимум находится внутри
допустимой области изменения управляющих переменных U. Если же оптимум попадает
на границу области U, то критерий типа (1.6.10) непригоден, и вместо него следует
применять условие положительности всех производных по допустимым осевым
направлениям. При этом допустимым будет только направление внутрь области U.
Обратное направление по той же оси ведет за пределы области U, если, конечно,
рассматриваемая ось не является касательной к границе области в данной точке. Алгоритм
спуска для выбранного направления может быть записан в следующем виде:
( p)

 sgn u
( k 1) (k ) (k ) R( )
u j
 uj h
u j
(9.11)

Где uj(k) – значение изменяемой переменной на k-ом шаге спуска, h(k) – величина k-го шага,
которая может изменять свое значение в зависимости от номера шага, sgn – функция
знака; u(p) – вектор точки, в которой последний раз производилось вычисление

159
производных целевой функции. Графическое изображение движения от исходного
состояния к оптимуму показано на рис. 9.1

u(0)

u(опт)

Рис9.1. Характер движения к оптимуму при использовании


метода релаксации

Очевидно, что скорость движения к оптимуму будет зависеть от величины шага h(k).
Хорошие результаты дает стратегия изменения, основанная на свойствах чисел
Фибоначчи.

Метод сканирования.
Описанные выше метода поиска экстремума иногда являются малоэффективными, если у
функции имеются локальные экстремумы, к которым сходится поиск, не позволяя достичь
глобального экстремума. В таких ситуациях иногда оказывается очень полезным так
называемый метод сканирования, который заключается в последовательном просмотре
критерия оптимальности в ряде точек, принадлежащих допустимой области управления и
нахождения среди них такой точки, где критерий имеет минимальное (или максимальное )
значение. Точность метода определяется тем, насколько «густо» располагаются точки
сканирования в допустимой области изменения переменных.
Основным достоинством метода сканирования является то, что при его использовании с
достаточно густым расположением исследуемых точек всегда гарантируется отыскание
глобального оптимума. Другое достоинство этого метода – независимость от свойств
оптимизируемой функции. К недостаткам метода относится необходимость вычисления
функции в большом числе точек. Это должно гарантировать, что оптимум не будет
пропущен. Этот метод лишен общего недостатка градиентных методов оптимизации – все
они «застревают» в ближайшем локальном экстремуме, в область притяжения которого
попадает выбранная начальная точка поиска. Метод сканирования лишен этого недостатка
и поэтому его иногда применяют для предварительного «грубого» определения границ
областей притяжения локальных оптимумов.
Число вычислений критерия оптимальности при определении положения оптимума
методом сканирования возрастает в показательной зависимости от размерности решаемой
задачи. Для сокращения числа вычислений, необходимых для отыскания оптимума, часто
применяют метод сканирования с переменной сеткой сканирования. В соответствии с
этим методом на первом этапе проводится сканирование на грубой сетке. После
уточнения положения экстремума, найденная область разбивается с помощью более
мелкой сетки. В узлах этой сетки вычисляется значение функции и уточняется положение

160
оптимума. Эффективное применение этого метода ограничивается обычно задачами с 2-3
управляющими переменными.

9.3 Пример использования метода нелинейного программирования для


поиска экстремума функции многих переменных.
Рассмотрим задачу определения параметров математической модели технологического
объекта по результатам его функционирования.
Рассмотрим реактор полного вытеснения, в котором происходит процесс,
описываемый следующей схемой превращений:

1.A+B  C lnk01, E1, lnK01e, Ee1.(9.3.1)


2. A+C D lnk02, E2
Схема реактора имеет следующий вид:

Схема проточного аппарата

Для случая, когда температура внутри реактора задана, математическое описание процесс
в реакторе имеет следующий вид:

w*dC(j)/dx = R(j) , (9.3.2)


T = T(x)
где j=1,…,4 номера компонентов реакционной смеси, х – продольная координата
реактора.
Если мы располагаем экспериментальными данными в виде профиля изменения
концентраций реакционной смеси по длине реактора, т.е. СA(x), СB(x), СC(x), СD(x) при
заданном профиле температур Т(х), то задача идентификации параметров математической
модели сводится к поиску минимума функции рассогласования между результатами
моделирования реактора по уравнениям (1.6.3.2) и результатами наблюдения за
процессом, заданными в виде профилей концентраций и температур.
Q
  
N

q 1 i 1
 x (qiр)  x (qiэ)   (ln k 2

01
,. ln k 01e . ln k 02 , E1 , E 1e , E 2 )  min (9.3.3

)
Используя систему ReactOp, созданную для разработки и идентификации математических
моделей можно решить эту задачу, используя метод нелинейного программирования для
поиска набора такого набора параметров, который обеспечивает минимум функции
(1.6.3.3). Расчетные значения переменных состояния, соответствующих концентрациям
реакционной смеси, получаются путем численного интегрирования системы уравнений
(1.6.3.2) с параметрами математической модели, получаемыми на каждом шаге поиска в
соответствии со следующим алгоритмом метода нелинейного программирования:

161
(i ) (i )
     
 k j  M    k j  M  
( i 1) (i ) (i )
k j
 k j   k j 
(9.3.4)

   
где i-номер шага поиска, М –коэффициент пропорциональности изменения
параметра в направлении градиента минимизируемой функции. При градиентном
методе параметры изменяются на каждом шаге поиска в направлении градиента,
однако этот метод требует большого объема вычислений, связанных с
необходимостью вычисления градиента функции в каждой точке поиска. Для
сокращения объема вычислений применяют обычно так называемый метод
наискорейшего спуска.
При использовании этого метода после каждого шага в направлении к
экстремуму проверяется удачным ли был этот шаг:

 
(i ) ( i 1)
(9.3.5)
Если условие (6) выполняется, то следующий (i+1)-й шаг делается в этом
же направлении, если же условие (6) не выполняется, то делается возврат в
предыдущую точку, вычисляется новое значение градиента и делается шаг с новым
значением градиента. Эти методы называются линейными градиентными
методами, потому, что при вычислении производной функции рассогласования по
формуле (1.6.3.4) мы заменяем производную ее конечно-разностным выражением,..
Это эквивалентно тому, что мы разлагаем неизвестную функцию (kj) в ряд
Тейлора по искомым параметрам модели и отбрасываем все члены разложения, за
исключением членов, содержащих параметры в первой степени. Используются
также различные модификации этих линейных градиентных методов, ускоряющих
их сходимость. Например, для выбора коэффициента пропорциональности М в
формуле (1.6.3.4) используют методы поиска экстремума функции одной
переменной – метод «золотого сечения» или метод чисел Фибоначчи. Эти методы
позволяют быстро достичь минимума на определенном направлении градиента.
Однако часто некоторые параметры модели оказывают очень большое влияние на
функцию рассогласования. Поэтому для этих случаев используют так называемые
методы квадратичного программирования. При использовании этих методов
частные производные минимизируемой функции вычисляются из выражения
разложения функции (kj) в ряд Тейлора с учетом квадратичных членов.
 = b0 +biki+bijkikj+biiki2 (9.3.6)
В этом случае получаются более точные значения производных, что позволяет
локализовать положение экстремума.
На рис. 9.3.2 Показаны рассогласование экспериментальных и расчетных данных при
начальном приближении параметров модели.

Начальное приближение:

Name Optimum Gradient Sing.Value


ln(Ko), [m] 16 4106.06 156.001
E, kJ/mol 68 -3805.89 127.783
ln(Keo), [m] 17 41.381 5.94273
Ee, kJ/mol 50 -14.1758 3.34576
ln(Ko), [m] 4 4510.42 0.478809

162
E, kJ/mol 35 -5232.4 0.0136476

Величина рассогласования 1709.7

10

20 10

15

5 6

D, kmol/m3
A, kmol/m3

B, kmol/m3
10
4

5
2

0 0
0 5 10 0 0 5 5 10 10
Length, m Length, m
Length, m

10

10

6
C, kmol/m3

6
D, kmol/m3

4
4

2
2

0
0 5 10 0
Length, m 0 5 10
Length, m

Описание экспериментальных данных


моделью при начальном приближении

163
Результаты поиска оптимальных значений параметров.

20
4

3
15
A, kmol/m3

D, kmol/m3

10
1

0
5 0 5 10
0 5 10 Length, m
Length, m

10

10

6 5
C, kmol/m3

B, kmol/m3

0
0 5 10 0 5 10
Length, m Length, m

Оптимальные параметры модели.


Name Optimum Gradient Sing.Value
ln(Ko), [m] 15.00002 -1.08764E-6 161.632
E, kJ/mol 80.00009 1.00293E-6 68.0658
ln(Keo), [m] 22.01528 1.03968E-7 3.44993
ln(Ko), [m] 2.000001 -1.69987E-5 1.76642

164
E, kJ/mol 40 1.82003E-5 0.025618

Величина рассогласования равна 1.5598610-10


Модель, с найденными значениями параметров адекватно описывает экспериментальные
данные.

9.4. Определение оптимального температурного профиля методами


нелинейного программирования.
Рассмотренный нами в разделе 8. принцип максимума Понтрягина позволяет найти
оптимальное управление, заданное в виде функций времени или длины для любых
объектов при наличии ограничений на переменные состояния и управления. Однако при
сложном математическом описании объекта этот метод не всегда может быть успешно
использован в связи с вычислительными трудностями, связанными с решением краевой
задачи и нахождении поисковыми методами управления, соответствующего
максимальному значению Гамильтониана. Для таких сложных случаев более
целесообразен следующий подход: Искомую оптимальную функцию управления
аппроксимируют в виде кусочно-линейной функции. В этом случае, критерий
оптимизации становится уже не функционалом, а функцией переменных, описывающих
аппроксимированную управляющую функцию (или функции). Таким образом, мы задачу
поиска оптимума функционала, сводим к задаче поиска оптимума функции многих
переменных. Рассмотрим этот подход на примере поиска оптимального профиля
температуры.
Пусть необходимо найти оптимальный профиль изменения температуры в реакторе
идеального вытеснения для рассмотренного нами случая идентификации параметров
модели.
В реакторе полного вытеснения происходит система последовательных реакций
типа (9.3.1)
1.A+B  C lnk01, E1, lnK01e, Ee1.(9.3.1)
2. A+C D lnk02, E2
Поставим оптимальную задачу следующим образом:
Найти такой оптимальный профиль изменения температуры Т(х), который
обеспечил бы максимальное значение концентрации целевого продукта С на выходе из
реактора при заданной производительности реактора, определяемой скоростью потока, и
заданной длине реактора. Пусть длина реактора равна 10 метров. Представим себе, что
искомый температурный профиль аппроксимирован в виде кусочно-линейной функции.
Тогда искомыми параметрами температурного профиля будет значения температур в
точках переключения и абсциссы точек переключения. Если мы разобьем длину реактора
на 10 отрезков, то число варьируемых параметров будет равно 21. При этом на
температуру мы наложим ограничения типа неравенств:

TminT(x) Tmax (9.4.1)

Для учета этих мы в процесс поиска будем проверять находимую температуру на


выполнение этих неравенств. Если температура оказывается меньше Tmin, для решения
уравнений модели и вычисления целевой функции используется Tmin. При нарушении
верхнего предела по температуре , используется Tmax . Таким образом мы всегда
находимся в допустимой области управления. При наличии ограничений на переменные
состояния, формируется функция штрафа, учитывающая возможность выполнения
ограничения. На рисунке показано полученное оптимальное управление.

165
500

450

400
K

350

300
0 5 10
Length, m

Рис. 9.4.1. Оптимальный профиль температур для поставленной задачи.

166
20

15
kmol/m3

10

0
0 5 10
Length, m

Рис. 9.4.2. Изменение переменных состояния в оптимальном режиме.

Из полученного решения видно, что максимальное значение критерия оптимизации


достигается внутри реактора. Затем критерий постепенно и незначительно уменьшается.
Следовательно, для достижения максимального значения критерия оптимизации для
данного случая необходимо либо уменьшить длину реактора до величины примерно 6
метров, либо увеличить скорость потока, а следовательно производительность. Это можно
сделать в зависимости от заданных условий функционирования. Используемый метод
оптимизации не гарантирует нахождения глобального оптимума. Поэтому для
нахождения глобального оптимума нужно задавать различное начальное приближения для
поиска оптимума и исследовать находимые локальные экстремумы. Из семейства
найденных локальных экстремумов выбирается наиболее подходящий, как по
достигаемой величине критерия оптимизации, так и по возможности его реализации.
Несмотря на кажущуюся громоздкость такого подхода, с помощью автоматизированной
системы поиска оптимума решение можно получить достаточно быстро.

167
168

Оценить