Методы поисковой оптимизации

1. Назначение и классификация методов поисковой оптимизации



В связи со сложностью объектов проектирования критерии качества и ограничения задачи параметрической оптимизации (1.5), как правило, слишком сложны для применения классических методов поиска экстремума. Поэтому на практике предпочтение отдается методам поисковой оптимизации. Рассмотрим основные этапы любого метода поиска.

Исходными данными в методах поиска являются требуемая точность метода и начальная точка поиска Х 0.

Затем выбирается величина шага поиска h, и по некоторому правилу происходит получение новых точек Х k+1 по предыдущей точке Х k , при k = 0,1,2,… Получение новых точек продолжают до тех пор, пока не будет выполнено условие прекращения поиска. Последняя точка поиска считается решением задачи оптимизации. Все точки поиска составляют траекторию поиска.

Методы поиска могут отличаться друг от друга процедурой выбора величины шага h (шаг может быть одинаковым на всех итерациях метода или рассчитываться на каждой итерации), алгоритмом получения новой точки и условием прекращения поиска.

Для методов, использующих постоянную величину шага, h следует выбирать значительно меньше точности h  ). Если при выбранной величине шага h не удается получить решение с требуемой точностью, то нужно уменьшить величину шага и продолжить поиск из последней точки имеющейся траектории.

В качестве условий прекращения поиска принято использовать следующие:

все соседние точки поиска хуже, чем предыдущая;

Ф(Xk+1 ) - Ф(X k) , то есть значения целевой функции Ф(Х) в соседних точках (новой и предыдущей) отличаются друг от друга на величину не больше, чем требуемая точность ;



 

 



Ф(Х 

k

+1

)

 



 



, 

i

=1,…,

n

, 

(2.1) 

 

 



x

i

 



то есть все частные производные в новой точке поиска практически равны 0 или отличаются от 0 на величину, не превышающую заданной точности .

Алгоритм получения новой точки поиска Хk+1 по предыдущей точке Хk свой для каждого из методов поиска, но всякая новая точка поиска должна быть не хуже предыдущей: если задача оптимизации является задачей поиска минимума, то Ф(Хk+1)  Ф(Хk). 

Методы поисковой оптимизации принято классифицировать по порядку производной целевой функции, используемой для получения новых точек. Так, в методах поиска нулевого порядка не требуется вычисления производных, а достаточно самой функции Ф(Х). Методы поиска первого порядка используют первые частные производные, а методы второго порядка используют матрицу вторых производных (матрицу Гессе).

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

Эффективность поискового метода определяют по числу итераций и по количеству вычислений целевой функции Ф(Х) на каждой итерации метода (N). Рассмотрим наиболее распространенные методы поиска, расположив их в порядке уменьшения числа итераций.

Для методов поиска нулевого порядка справедливо следующее: в методе случайного поиска нельзя заранее предсказать количество вычислений Ф(Х) на одной итерации N, а в методе покоординатного спуска N  2n, где n- количество управляемых параметров X = ( x1, x2.,…,xn).

Для методов поиска первого порядка справедливы следующие оценки: в градиентном методе с постоянным шагом N=2n; в градиентном методе с дроблением шага N = 2n + n1, где n1 – число вычислений Ф(Х), необходимых для проверки условия дробления шага; в методе наискорейшего спуска N=2n+n2, где n2 – число вычислений Ф(Х), необходимых для расчета оптимальной величины шага; а в методе Давидона – Флетчера - Пауэлла (ДФП) N = 2 n + n3, где n3 – число вычислений Ф(Х), необходимых для расчета матрицы, приближающей матрицу Гессе ( для величин n1, n2, n3 справедливо соотношение n1 < n2 << n3 ).

И, наконец, в методе второго порядка - методе Ньютона N = 3n2. При получении данных оценок предполагается приближенное вычисление производных по формулам конечных разностей / 6 /:







 

Ф(Х ) Ф(

x

1

, …,

x

i

+



.

,…,

x

n

 )

-

 Ф(

x

1

, …,

x

i

.

,…,

x

n

 )

 



 

,

 (2.2)

 



x

i 



 





2

 Ф(Х ) Ф(

x

1

, …,

x

i

+



.

,…,

x

n

)

-

 2



Ф(

x

1

, …,

x

i

.

,…,

x

n

)+ Ф((

x

1

, …,

x

i

-



.

,…,

x

n

)

 



 

 

,

(2.3) 

 



x

i

2

 

 

2



 



 



то есть для вычисления производной первого порядка нужно знать два значения целевой функции Ф(Х) в соседних точках, а для второй производной – значения функции в трех точках.

На практике широкое применение нашли метод наискорейшего спуска и метод ДФП, как методы с оптимальным соотношением числа итераций и их трудоемкости.


2. Методы поиска нулевого порядка



2.1. Метод случайного поиска



В методе случайного поиска исходными данными являются требуемая точность метода , начальная точка поиска Х0 = ( x10, x2. 0,…,xn0) и величина шага поиска h. Поиск новых точек производится в случайном направлении, на котором и откладывается заданный шаг h (рис. 2.1), таким образом получают пробную точку Х^ и проверяют, является ли пробная точка лучшей, чем предыдущая точка поиска. Для задачи поиска минимума это означает, что



Ф(Х^)  Ф(Хk), k = 0,1,2… (2.4) 



Если условие (2.4) выполнено, то пробную точку включают в траекторию поиска Х k+1 = Х^. В противном случае, пробную точку исключают из рассмотрения и производят выбор нового случайного направления из точки Х k, k = 0,1,2,. 

Несмотря на простоту данного метода, его главным недостатком является тот факт, что заранее неизвестно, сколько случайных направлений потребуется для получения новой точки траектории поиска Хk+1, что делает затраты на проведение одной итерации слишком большими. Кроме того, поскольку при выборе направления поиска не используется информация о целевой функции Ф(Х), число итераций в методе случайного поиска очень велико.

В связи с этим метод случайного поиска используется для исследования малоизученных объектов проектирования и для выхода из зоны притяжения локального минимума при поиске глобального экстремума целевой функции /6/.



Ф(Х

^

) >Ф(Х

k

)

 

 

 

 

 



 

Х

^

 Ф(

Х

^

) 



 Ф(Х

k

)

 

 

 

h

 

X

k

 



 

 

 

 



 

 

h

 

X

k

+1

=

X

 

 

 h 

 



 

Х

^

 

 

 

Ф(

Х

^

)>Ф(Х

k

)

 

 

 

Рис. 2.1





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



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

Исходными данными в методе покоординатного спуска являются величина шага h и начальная точка поиска Х0 = ( x10, x2. 0,…,xn0). Движение начинаем из точки Х0 вдоль оси x1 в сторону увеличения координаты. Получим пробную точку Х^ с координатами ( x10+h, x20,…,xn0), при k = 0. 

Сравним значение функции Ф(Х^) с значением функции в предыдущей точке поиска Хk. Если Ф(Х^)  Ф(Хk) (мы предполагаем, что требуется решить задачу минимизации целевой функции Ф(Х)), то пробную точку включают в траекторию поиска ( Х k+1 = Х^). 

В противном случае, пробную точку исключаем из рассмотрения и получаем новую пробную точку, двигаясь вдоль оси x1 в сторону уменьшения координаты. Получим пробную точку Х^ = ( x1k-h, x2. k,…,xnk ). Проверяем, если Ф(Х^) > Ф(Хk), то продолжаем движение вдоль оси x2 в сторону увеличения координаты. Получим пробную точку Х^ = ( x1k, x2.k+h,…,xnk) и т.д. При построении траектории поиска повторное движение по точкам, вошедшим в траекторию поиска, запрещено. Получение новых точек в методе покоординатного спуска продолжается до тех пор, пока не будет получена точка Хk, для которой все соседние 2n пробных точек (по всем направлениям x1, x2.,…,xn в сторону увеличения и уменьшения значения каждой координаты) будут хуже, то есть Ф(Х^) > Ф(Хk). Тогда поиск прекращается и в качестве точки минимума выбирается последняя точка траектории поиска Х* = Хk.



x

2

 





 4 





 3 





 



 

 

 2 





 



X

*

 



 

 

 1 



X

0

 



 

X

1

 



 

 



















x

1

 









-

 



пробная точка

 

 Рис. 2.2

 

 


3. Методы поиска первого порядка



3.1. Структура градиентного метода поиска



В методах поиска первого порядка в качестве направления поиска максимума целевой функции Ф(Х) выбирается вектор градиент целевой функции grad (Ф(Хk)), для поиска минимума – вектор антиградиент -grad (Ф(Хk)). При этом используется свойство вектора градиента указывать направление наискорейшего изменения функции:





 

 

grad

 (

Ф

(

Х

 

k

))

 = 



Ф(Х 

k

)

 , 



Ф(Х 

k

)

 , 



Ф(Х 

k

)

 

 

.(2.5)

 

 



x

1 



x

2 



x

n

 



Для изучения методов поиска первого порядка важно также следующее свойство: вектор градиент grad (Ф(Хk)) направлен по нормали к линии уровня функции Ф(Х) в точке Хk (см. рис. 2.4). Линии уровня – это кривые, на которых функция принимает постоянное значение (Ф(Х) = соnst).

В данной главе мы рассмотрим 5 модификаций градиентного метода:

градиентный метод с постоянным шагом,

градиентный метод с дроблением шага,

метод наискорейшего спуска,

метод Давидона-Флетчера-Пауэлла,

двухуровневый адаптивный метод.



3.2. Градиентный метод с постоянным шагом



В градиентном методе с постоянным шагом исходными данными являются требуемая точность , начальная точка поиска Х0 и шаг поиска h.

Получение новых точек производится по формуле:



Х

k+1

=

 

Х

k

 

–

 h



grad 

Ф

(

Х

k

)

, k=0,1,2,… 

 

 (2.6)

 



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





Х

k+1

=

 

Х

k

 

+ h



grad 

Ф

(

Х

k

)

, k=0,1,2,…

 

 (2.7)

 



Каждая из формул (2.6), (2.7) является векторным соотношением, включающим n уравнений. Например, с учетом Хk+1 = ( x1k+1, x2. k+1,…,xnk+1), Хk = ( x1k, x2. k,…,xnk) формула (2.6) примет вид:





(2.8)

 

x

1 

k

+1 

 

 

x

1

 

k

 



Ф(Х

 

k

)/



x

1

 

 

x

2.

 

k

+1 

 

= 

x

2

 

k

 

-

 

h

 



 



Ф(Х 

k

)/



x

2

 

 … … 

. . .

 

 

x

n

k

+1 

 

 

x

n

 

k

 



Ф(Х 

k

)/



x

n

 



или в скалярном виде





 

x

1 

k

+1 

=

 

x

1

 

k

 

-

 

h

 



 



Ф(Х 

k

)

 

 



x

1

 

 

x

2 

k

+1 

=

 

x

2

 

k

 

 

-

 

h

 



 



Ф(Х 

k

)

 

 



x

2

 

 . . . 

 

(2.9)

 

 

 

x

n

 

k

+1 

=

 

x

n

 

k

 

 

-

 

h

 



 



Ф(Х 

k

).

 

 



x

n

 



В общем виде (2.9) можно записать:



 

x

i 

k+1 

=

 

x

i

 k 

 

-

 h 



 



Ф(Х 

k

)

, 

i=1,…,n

.

 



x

i

 

 

 (2.10) 



В качестве условия прекращения поиска во всех градиентных методах используется, как правило, комбинация двух условий:  Ф(Xk+1 ) - Ф(X k)    или





 



Ф(Х 

k

+1

)

 



 



 для всех 

i

=1,…,

n

.

 (2.11)

 

 



x

i

 







x

2

 

 

-

grad

(

Ф(Х

0

))

 

 2 



 



 

 

 

 



 

X

*

=

X

3 

 





Х

 

2





 



 X

1

 

 

 



 1 



 X

0

 

 





 



 

 

 0

 

 

 

 



 



 



 



 

 x

1

 



 

 

 0.6

 

0.84

 

0.94 

1 

 

 

 Рис. 2. 3

 



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


3.3. Градиентный метод с дроблением шага



В градиентном методе с дроблением шага процедура подбора величины шага на каждой итерации реализуется следующим образом.

Исходными данными являются требуемая точность , начальная точка поиска Х0 и начальная величина шага поиска h (обычно h = 1). Получение новых точек производится по формуле:





Х

k

+1

=

 Х

k

 

–

 

h

k

 



grad

 

Ф(Х

k

)

, 

k

=0,1,2,…

,

 (2.12)

 

 



где hk – величина шага на k-ой итерации поиска, при hk должно выполняться условие:



Ф( 

Х

k

 

–

 

h

k

 



grad

 

Ф(Х

k

)

 ) 



 Ф(Х

k

) 

-

 





 

h

k

 





grad

 

Ф(Х

k

)



2

. 

(2.13)

 



Если величина hk такова, что неравенство (2.13) не выполнено, то производится дробление шага до тех пор, пока данное условие не будет выполнено. Дробление шага выполняется по формуле hk = hk , где 0    1.Такой подход позволяет сократить число итераций, но затраты на проведение одной итерации при этом несколько возрастают.



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



В методе наискорейшего спуска на каждой итерации градиентного метода выбирается оптимальный шаг в направлении градиента. 

Исходными данными являются требуемая точность , начальная точка поиска Х0. 

Получение новых точек производится по формуле:



Х

k+1

=

 

Х

k

 

–

 h

k



grad 

Ф

(

Х

k

)

, k=0,1,2,…

 

,

 (2.14)

 

где h

k 

= arg min Ф(

Х

k

 

–

 h

k

 



grad 

Ф

(

Х

k

)

),

 

 

0<

h

<



 

 



то есть выбор шага производится по результатам одномерной оптимизации по параметру h.

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





x

2

 



 

 

-

grad

 (

Ф(Х

k

)).

 

 



 



X

k

+1

 



-

grad

(

Ф(Х

k

+1

))

 





X

*



 

 

 

 



 X

k

 

 

 



x

1

 

 

 

 Рис. 2.4

 



При выборе оптимальной величины шага необходимо из множества ХМ = { Х Х = Хk – hgrad Ф(Хk), h[0,) } точек, лежащих на векторе градиенте функции Ф(Х), построенном в точке Хk, выбрать ту, где функция Ф(h) = Ф(Хk – h grad Ф(Хk)) принимает минимальное значение.

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





x

2

 

 

 

 2 



 

 



 

X

*

=

X

1

 

 

 

 





 

-

grad

(

Ф(Х

0

))

 

 

 



 1 



 

X

0 

 

 

 

линии уровня

 



(

x

1

 

–

 1)

2 

+ (

 

x

2

 

–

2)

2





2



 



 

 0

 

 

 

 



 

 x

1

 



 

 

 

1 

 

 

 

 Рис. 2. 5

 


4. Методы поиска второго порядка



Несмотря на простоту реализации, метод наискорейшего спуска не рекомендуется в качестве “серьезной” оптимизационной процедуры для решения задачи безусловной оптимизации функции многих переменных, так как для практического применения он работает слишком медленно. Причиной этого является тот факт, что свойство наискорейшего спуска является локальным свойством, поэтому необходимо частое изменение направления поиска, что может привести к неэффективной вычислительной процедуре. Более точный и эффективный метод решения задачи параметрической оптимизации (1.5) можно получить, используя вторые производные целевой функции (методы второго порядка). Они базируются на аппроксимации (то есть приближенной замене) функции Ф(Х) функцией (Х),





 



(Х)=Ф(Х

0

)+ (Х

-

Х

0

)

 т



grad

Ф(Х

0

)+

1



 

G

(

X

0

)



 (Х

-

Х

0

),

(2.17)

 

 2 

 



где G(X0)- матрица Гессе (гессиан, матрица вторых производных), вычисленная в точке Х0:







Формула (2.17) представляет собой первые три члена разложения функции Ф(Х) в ряд Тейлора в окрестности точки Х0, поэтому при аппроксимации функции Ф(Х) функцией (Х) возникает ошибка не более чем (Х-Х0)3. С учетом (2.17) в методе Ньютона исходными данными являются требуемая точность  и начальная точка поиска Х0 , а получение новых точек производится по формуле:





Х

k

+1

=

 Х

k

 

–

 

G

-

1

(Х

k

)



grad

 

Ф(Х

k

)

, 

k

=0,1,2,…

,

 (2.18)

 



где G-1(Хk) – матрица, обратная к матрице Гессе, вычисленная в точке поиска Хk ( G(Хk) G-1(Хk) = I, где I - единичная матрица).


Библиографический список



1. Кофанов Ю.Н. Теоретические основы конструирования, технологии и надежности радиоэлектронных средств. - М.: Радио и связь, 1991. - 360 с.

2. Норенков И.П., Маничев В.Б. Основы теории и проектирования САПР.- М.: Высш. шк., 1990.- 335 с.

3. Самойленко Н.Э. Основы проектирования РЭС. - Воронеж: ВГТУ, 1998. - 60 с.

4. Фролов В.Н., Львович Я.Е. Теоретические основы конструирования, технологии и надежности РЭА. - М.: Радио и связь, 1988. - 265 с.

5. Батищев Д.И. Поисковые методы оптимального проектирования. - М.: Сов. Радио, 1975. - 216 с.

6. Банди Б. Методы оптимизации. Вводный курс. - М.: Радио и связь, 1988.- 128 с.

7. Батищев Д.И., Львович Я.Е., Фролов В.Н. Оптимизация в САПР. Воронеж: Изд-во Воронеж. гос. ун-та, 1997. 416 с.

8. Автоматизация проектирования РЭС: Учеб. пособие для вузов  О.В. Алексеев, А.А. Головков, И.Ю. Пивоваров и др.; Под. ред О.В. Алексеева. М: Высш. шк., 2000. 479 с.





3