УМ_Пособие_09
.pdf71
Достоинство метода — его универсальность, т.е. возможность использования практически для любого вида целевой функции.
Направленный случайный поиск
Недостаточно хорошая сходимость метода ненаправленного случайного поиска потребовала его совершенствования. Улучшить сходимость можно путем комбинации метода ненаправленного случайного поиска с другими методами оптимизации или более рациональной организацией поиска, когда для формирования нового шага поиска пользуются информацией, накопленной в ходе проведения предыдущих шагов. Этим характеризуются методы направленного случайного поиска.
Для направленного случайного поиска характерно ограничение зоны поиска областью, центром которой является найденная в ходе поиска точка с наилучшим значением целевой функции.
Если на новом шаге найдена точка с лучшим значением целевой функции, то эта точка становится новым центром зоны поиска. Этим достигается последовательное смещение ограниченной зоны поиска в район цели.
Простые методы статистического поиска
Рассмотрим наиболее характерные простые методы статистического поиска.
Метод с возвратом при неудачном шаге работает следующим образом. В пространстве параметров произвольно выбирается точка Х0. Задается постоянный шаг h. Из точки Х0 в случайном направлении, определенном случайным единичным вектором ζ = (ζ1,…, ζn), осуществляется шаг на величину h. Вычисляется значение целевой функции в новой точке X1. Если значение функции в новой точке уменьшилось (в случае поиска минимума), то шаг считается рабочим и новый шаг осуществляется из точки X1 в случайном направлении. При увеличений значения целевой функции (∆F>0) шаг считается неудачным, производится возвращение в точку X0, из которой в случайном направлении снова совершается пробный шаг.
72
Работу этого метода можно записать в виде следующего рекуррентного соотношения:
|
|
|
k |
) f ( X |
k 1 |
), |
Х к 1 |
h , f ( X |
|
|
|||
|
f ( X k ) f ( X k 1 ). |
|||||
|
Х , |
|||||
|
|
|
|
|
|
|
Здесь ( 1, 2 ,..., n ) — n-мерный независимый случайный вектор, где i — нормированные случайные числа,
n
такие что i2 1 . Т.К. если это условие выполняется, то
i 1
вектор , равномерно распределен в n-мерном пространстве,
т.е. отдельные реализации этого вектора направлены равновероятно во всех направлениях пространства параметров.
n
Для выполнения условия i2 1 элементы вектора
i 1
следует |
пронормировать, |
используя |
соотношение |
||
|
|
|
|
|
|
i i0 |
n |
i0 — |
|
|
|
( i0 )2 , где |
случайные числа, |
равномерно |
|||
|
i 1 |
|
|
|
|
распределенные в интервале (-1,1).
Всвою очередь числа i0 можно получить
масштабированием случайных чисел ri, равномерно распределенных в интервале (0, 1), в соответствии с формулой:
i0 1 2ri .
В методе с парной пробой предполагается четкое разделение между пробным и рабочим шагами. В направлении, определенном случайным вектором и противоположным ему, делаются пробы с шагом а. Определяются значения целевой функции в точках Х1,2=Х ± а. В сторону уменьшения значения целевой функции совершается рабочий шаг на величину h:
X k 1 h sign[ f (X k a ) f (X k a )]
Величина пробного и рабочего шага задается. Рассмотренные методы были построены на поощрении
случайностью, т.е. обращение к случайному вектору Е, происходило после удачного шага. Однако можно после удачного шага продолжать поиск в том же направлении, а после
73
неудачного шага обращаться к случайному вектору, т. е. "наказывать "случайность. Формула, реализующая метод, имеет вид
|
|
k |
, f ( X |
k |
) f ( X |
k 1 |
), |
X k 1 |
X |
|
|
|
|||
|
|
f ( X k ) f ( X k 1 ). |
|||||
|
h , |
||||||
|
|
|
|
|
|
|
|
Обращение к случайному вектору указывает на то, что удачное направление исчерпалось. Этот алгоритм является статистическим обобщением алгоритмов Гаусса-Зайделя. Однако благодаря введению случайности движение к экстремуму производится не только вдоль координат, но и вдоль любого направления.
Методы статистического поиска с накоплением
Врассматриваемых ранее методах решение о направлении рабочего шага принималось на основе случайной попытки, и эффективность рабочего шага зависела от качества этой попытки. Если же с помощью пробных шагов собрать информацию о поведении функции в окрестности точки Xk, то можно найти направление для рабочего шага, достаточно близкое к антиградиентному, причем степень этой близости зависит в основном от числа пробных шагов.
Вметоде наилучшей пробы из точки X делается m
случайных независимых проб с заданным шагом a. Для каждой пробы вычисляется значение функции F(Xk+aζ).
Полученные значения сравниваются, и рабочий шаг совершается в направлении той пробы, которая привела к наименьшему значению целевой функции.
Вметоде статистического градиента по m случайным пробам составляется векторная сумма
~
f ( X k ) m [ f ( X k h ) f ( X k )] ,
j 1
которая является статистической оценкой градиентного направления. Рабочий шаг совершается в противоположном (антиградиентном) направлении
74
|
~ |
|
|
X k 1 X k h |
f ( X k ) |
. |
|
~ |
|
||
|
f ( X k ) |
|
|
Очевидно, что при m |
~ |
||
направление f(Xk) |
|||
стремиться по вероятности к направлению вектора f(Xk). При m=n, где n число переменных оптимизируемой функции, а m- неслучайные ортогональные пробы, ζ(1,0,...,0), ζ(0,...,1), рассмотренный алгоритм вырождается в детерминированный метод градиента. Однако существенным отличием метода статистического градиента является возможность работы при m<n в то время, когда обычный метод градиента требует n проб.
Метод статистического поиска с адаптацией.
Адаптацией называется целенаправленный процесс изменения различных параметров поиска (например, шага) для повышения его эффективности. Процесс адаптации можно вводить и в детерминированные методы.
Наиболее естественная – адаптация величины рабочего
шага.
Описанные выше методы статистического поиска можно сделать эффективнее за счет изменения параметров поиска в процессе оптимизации. Рассмотрим некоторые методы изменения размера шага поиска.
Очевидно, что от размера шага зависит сходимость метода оптимизации. Если задавать большой шаг, то спуск к минимуму осуществляется быстрее, однако алгоритм поиска становится "нечутким ", есть возможность зацикливания в районе экстремума.
Малый шаг удобен при работе в непосредственной близости экстремума, но на больших расстояниях от него он не эффективен. Поэтому введение автоматически изменяющегося масштаба поиска существенно улучшает его сходимость и точность. Необходимо так изменять масштаб поиска, чтобы на значительном расстоянии от экстремума шаг поиска увеличивался и по мере приближения к нему уменьшался.
75
Изменение масштаба поиска можно производить по результату одной или нескольких удачных попыток (вводить накопление), учитывая при этом качество предыдущих попыток. В этом случае алгоритм поиска осуществляет более эффективные итерации. Наиболее простым способом автоматической настройки масштаба шага является использование результатов последней итерации. В этом случае после удачной итерации масштаб поиска увеличивается, а после неудачной - уменьшается. Увеличение масштаба шага осуществляется умножением его на коэффициент роста Mk+1 = Mkd1, а уменьшение - делением на коэффициент сброса Mk+1 = Mk/d2, где для устойчивости поиска d1 d2 1.
В методах с накоплением информации используется соотношение между количеством удачных и неудачных попыток. Вводится характеристическая величина k, которая увеличивается после получения удачной попытки kk+1 = kk + d3 и уменьшается после неудачной kk+1 = kk + d3, где 0<d3<0.5; 0.5<d4<1. При наличии устойчивого соотношения между количеством удачных и неудачных попыток величина kk колеблется около некоторого равновесного значения kp. При возрастании эффективности поиска k растет, при снижении - уменьшается. Вводятся граничные величины kmin и kmax, определяющие момент изменения масштаба шага. Если
kmin<kk+1<kmax, масштаб Mk+1 не изменяется при получении как удачных, так и неудачных попыток; если kk+1<kmin, Mk+1
увеличивается после получения неудачной попытки; если же kk+1>kmin, Mk уменьшается после получения неудачной попытки. Граничные величины удобно задавать в следующих диапазонах:
kmin = 0.2-0.5; kmax = 1,0-2,0.
Рассмотренные алгоритмы пригодны для оптимизации широкого класса целевых функций, в том числе и разрывных, так как оценка попыток производится не по величине приращения критерия ∆f, а лишь по его знаку.
Для оптимизации непрерывных функций целесообразно применять сложные методы с качественной оценкой предыдущих шагов. Для такой оценки определяется скорость
76
изменения целевой функции на направлении вектора приращения
|
f k |
|
|
|
|
|
|
k |
|
, где | X k | |
n |
xi2,k , а n – число |
|||
|
|
|
|||||
|
|
||||||
|
M k |
X k |
|
|
i 1 |
|
|
|
|
|
|
|
|
||
переменных.
Шаг поиска принимается пропорциональным квадрату
~
отношения полученной оценки k к средней оценке k . Здесь
~
k определяется за ряд предыдущих попыток:
|
|
|
2 |
|
M k |
k |
|||
|
~ |
|
||
|
||||
|
k |
|||
|
|
|
|
|
где λ зависит только от результата последней попытки. Если попытка удачная, λ =1, если неудачная, - меньше единицы. Описанные алгоритмы автоматической настройки шага при правильном подборе констант очень эффективны и, как указывалось выше, пригодны для оптимизации широкого класса функций. Единственное условие, которое необходимо соблюдать во всех случаях, - избыточность масштаба. Поиск при максимальном масштабе наиболее эффективен. Существенно также то, что при большом масштабе поиск приобретает нелокальные свойства и становится менее чувствительным к погрешностям вычислений, сшибкам округлений и к незначительным локальным особенностям оптимизируемой функции. С помощью таких алгоритмов можно оптимизировать целевые функции типа "овраг" и "гребень".
Врассмотренных методах шаг выбирался из условия линейной зависимости целевой функции от шага. Аналогичные алгоритмы могут быть построены для параболической зависимости целевой функции от шага.
Вэтом случае определение величины шага производится параболической экстраполяцией на основе удачных попыток.
Структурная адаптация осуществляется за счет параметризации структуры алгоритма т.е. вводятся параметры, которые определяют структуру алгоритма поиска.
77
Пусть {Fi}, i-1,q – конечное множество возможных
q
алгоритмов поиска, тогда их линейная комбинация F= ui Fi
i 1
образует поиск, параметрами которого являются числа u1, u2 ,...,uq , вариация которых позволяет получать алгоритмы с
разной структурой.
q
Например, если сумма ui 1 и ui 0,1 , то получим
i 1
F=Fi т.е. какой-то конкретный. Если же снять ограничение
q
ui 1 и ui 0,1 , т получим гибридную структуру
i 1
алгоритма.
Метод статистического поиска с самообучением
Самообучение в процессе оптимизации методами случайного поиска состоит в перестройке вероятностных характеристик случайного вектора для увеличения числа эффективных итераций и уменьшения неэффективных.
Единичный случайный вектор ζ уже перестаѐт быть равновероятным в процессе поиска, а приобретает определѐнное преимущество в направлении наилучшего шага, причѐм в том случае, когда избранное направление больше не приводит к успеху, алгоритм с самообучением способен искать другое. Поскольку процесс самообучения затрагивает только вероятностные характеристики шага, его можно вводить в
самые различные методы статистического поиска.
На начальных итерациях поиск эффективного направления начинается в равновероятной зоне, а затем с накоплением сведений о характере функции последовательно приобретает преимущество в выборе наилучшего направления. В общем виде процесс самообучения может быть описан
следующей рекуррентной формулой: pk(ζ) = Ф[pk-1(ζ)∆ f(Xk-1)],
78
где pk(ζ) - распределение случайного вектора ζ на k-м шаге является некоторой функцией распределения этого вектора на прошлом шаге (pk-1) и приращения целевой функции ∆f(xk-1).
Различают методы координатного и непрерывного самообучения.
Рассмотрим несколько примеров покоординатного самообучения.
Метод с введением постоянного параметра памяти реализуется следующим образом: задаѐтся вероятность выбора удачного шага Pi где i=1,…,n, которая определяется функцией некоторого параметра i, называемого параметром памяти или просто "памятью":
Pki =P( ik), Р( )- заданная неубывающая функция, например ступенчатая:
0, |
|
при 1, |
|
|
|
|
|
при 1 1, |
|
|
|
P( ) 0.5, |
|
|
|||
|
1, |
при 1. |
|
|
|
|
|
|
|||
|
|
|
|
|
|
Алгоритм |
|
|
самообучения |
реализуется |
путем |
соответствующего изменения памяти:
ik+1= ik – δ∙sign(∆xik. ∆f(xik))
где δ - шаг по памяти (δ >0). При δ = 0 самообучения нет. Таким образом, если шаг окажется неэффективным, то вероятность выбора этого направления при следующем шаге уменьшается, и наоборот, т.е. алгоритм работает в режиме
поощрения (∆f(xik)<0) и наказания (∆f(xik)>0). |
|
||
При работе этого |
алгоритма есть |
возможность |
|
"передетерминирования", |
т.е |
появления |
некоторой |
инерционности алгоритма, при которой поиск всѐ дальше уходит от равновероятной зоны. Для избежания этого явления
необходимо |
наложить ограничения на зону изменения |
||||
параметра. |
|
|
|
|
|
|
|
C1 , |
при ik C1 , |
|
|
k 1 |
|
|
|
|
|
k , при C k C |
2 |
, |
|||
i |
|
i |
1 i |
|
|
|
|
C2 , |
к |
|
|
|
|
при С2 ш . |
|
|
|
|
|
|
|
|
|
79
Такой алгоритм будет быстрее перестраиваться в процессе работы с одного направления на другое.
В приведенном выше методе параметр памяти в результате одного шага поиска изменялся на постоянную величину δ. Можно поставить в соответствие величину изменения памяти от величины приращения:
ik+1 = ik - δ∙∆xik∆f(xik),
При ∆fik = 0 обучения нет. При ∆xik=0 параметр памяти вдоль i-й координаты не изменяется. Здесь направления, вдоль которых функция памяти изменяется незначительно, воздействуют на параметры памяти незначительно; если же случайно попадается более эффективное направление, то параметры памяти быстро перестроятся в нужном направлении.
Метод координатного самообучения с "забыванием" реализуется следующим образом:
ik+1 = N ik
где N - параметр "забывания" (0 N 1). При N=1 в памяти хранится весь предыдущий опыт работы, при N=0 в памяти хранится лишь результат последнего шага. При ik=0 численное значение вероятности должно быть равно 1/2. При отсутствии опыта (∆f(xik) = 0) система с "забыванием" вырождается в равновероятный поиск.
Рассмотренные алгоритмы, случайно определив удачное направление спуска, стараются зафиксировать его. Вероятность найти при этом более эффективное направление всѐ время уменьшается, т.е. чтобы перейти на другое направление, поиск должен пройти через равновероятную зону. Возможно построение алгоритма, воспринимающего каждый шаг как неудачный, но в разной мере:
ik+1= ik - δ [∆f(xik) + d] ∆xik,
где d>0 - некоторая постоянная, выбирающаяся таким образом, чтобы выполнялось неравенство ∆f(xik) + d >0.
Этот алгоритм не фиксирует эффективное направление, но в среднем обеспечивает преимущество только наилучшему направлению.
Методы с непрерывным самообучением дают возможность улучшить поиск при изменении градиентного
80
направления функции, т.е. избежать перехода через равновероятную зону, связанного с "забыванием" алгоритмом всего опыта работы.
Направление случайного шага представляется в виде некоторой векторной функции
q h ( ,W ) ,
где h- размер шага; ζ - единичный случайный вектор, равномерно распределѐнный в пространстве параметров; Ψ - некоторая непрерывная по модулю и направлению единичная функция двух параметров ζ и W, удовлетворяющая следующим требованиям :
1)Ψ( ζ,0) = 4. т.е. при нулевом значении обучения поиск должен быть равновероятным;
2)M[Ψ (ζ,W)]=W/|W|, т.е. математическое ожидание случайного шага совпадает с направлением вектора обучения;
3)дисперсия случайного шага D[Ψ (ζ,W)]=1/|W|.
При выполнении этих условий функция Ψ реализует пространственное распределение случайного шага, причем это направление по мере накопления опыта все более приближается к антиградиентному Чем больше модуль вектора памяти |W|, тем меньше дисперсия распределения случайного шага. Указанные условия могут быть выполнены для различных алгоритмов, например
Wk 1 NWk [ f (xk ) d] X k
где N - коэффициент "забывания" (0 N 1); δ - параметр скорости обучения; d-некоторая постоянная : d >-
min f (x k ) ; xk вектор k-го шага в пространстве параметров.
Чтобы избежать передетерминирования при d=0, вектор следует ограничить сверху |W|<с.
Рассмотрим пример ненаправленного случайного
поиска.
Пример. В качестве иллюстрации метода ненаправленного случайного поиска рассмотрим следующую нелинейную задачу оптимизации.
Переменные задачи x1 и х2 связаны системой неравенств
5х10,9 + 10x20,85 ≤ 3200,
