Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

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

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

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

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

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

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

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

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

3) , i = 1, …, n, то есть все частные производные в новой точке поиска практически равны 0, то есть отличаются от 0 на величину, не превышающую точности e.

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

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

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

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

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

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

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

И, наконец, в методе второго порядка - методе Ньютона N = 3× n2.

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

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

Начнём рассмотрение методов поиска нулевого порядка. В методе случайного поиска исходными данными являются требуемая точность метода e, начальная точка поиска Х0 = (x10, x20, …, xn0) и величина шага поиска h.

Поиск новых точек производится в случайном направлении, на котором и откладывается заданный шаг h, таким образом получают пробную точку и проверяют, является ли пробная точка лучшей, чем предыдущая точка поиска. Для задачи поиска минимума это означает, что:

 

(6.19)

 

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

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

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

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

 
 

 


Рис. 6.3. К методу случайного поиска

 

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

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

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

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

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

В противном случае, пробную точку исключаем из рассмотрения и получаем новую пробную точку, двигаясь вдоль оси x1 в сторону уменьшения координаты. Получим пробную точку (x1k–h, x2k, …, xnk). Проверяем, если , то продолжаем движение вдоль оси x2 в сторону увеличения координаты. Получим пробную точку (x1k+h, x2k, …, xnk), и т.д.

При построении траектории поиска повторное движение по точкам, вошедшим в траекторию поиска, запрещено.

Получение новых точек в методе покоординатного спуска продолжается до тех пор, пока не будет получена точка Хk, для которой все соседние 2× n пробных точек (по всем направлениям x1, x2, …, xn в сторону увеличения и уменьшения значения координаты) будут хуже, то есть . Тогда поиск прекращается и в качестве точки минимума выбирается последняя точка траектории поиска Х*= Хk.

Рассмотрим работу метода покоординатного спуска на примере (рис. 2.21): n = 2, X = (x1, x2), Ф (x1, x2) ® min, Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2, h = 1, Х0 = (0, 1).

  1. Начинаем движение вдоль оси x1 в сторону увеличения

координаты. Получим первую пробную точку

 

(x10+h, x20) = (1, 1), Ф () = (1-1)2 + (1-2)2 = 1,

 

Ф(Х0) = (0-1)2 + (1-2)2 = 2,

 

то есть

 

Ф() < Ф(Х0) ® Х1 = (1, 1).

 

 

Рис. 6.4

 

2. Продолжаем движение вдоль оси x1 от точки Х1 в сторону увеличения координаты. Получим пробную точку

 

=(x11+h, x21) = (2, 1), Ф() = (2-1)2 + (1-2)2 = 2,

 

Ф(Х1) = (1-1)2 + (1-2)2 = 1,

 

то есть Ф() > Ф(Х1) – пробная точка с координатами (2, 1) исключается из рассмотрения, а поиск минимума продолжается из точки Х1.

3. Продолжаем движение вдоль оси x2 от точки Х1 в сторону увеличения координаты. Получим пробную точку

 

= (x11, x21+h) = (1, 2), Ф() = (1-1)2 + (2-2)2 = 0,

 

Ф(Х1) = (1-1)2 + (1-2)2 = 1,

 

то есть

 

Ф() < Ф(Х1) ® Х2 = (1, 2).

 

4. Продолжаем движение вдоль оси x2 от точки Х2 в сторону увеличения координаты. Получим пробную точку

 

= (x12, x22 +h) = (1, 3), Ф() = (1-1)2 + (3-2)2 = 1,

 

Ф(Х2) = (1-1)2 + (2-2)2 = 0,

 

то есть Ф() > Ф(Х2) – пробная точка с координатами (1, 3) исключается из рассмотрения, а поиск минимума продолжается из точки Х2.

5. Продолжаем движение вдоль оси x1 от точки Х2 в сторону увеличения координаты. Получим пробную точку

 

= (x12 + h, x22) = (2, 2), Ф() = (2-1)2 + (2-2)2 =1,

 

Ф(Х2) = (1-1)2 + (2 - 2)2 = 0,

 

то есть Ф(Х^) > Ф(Х2) – пробная точка с координатами (2, 2) исключается из рассмотрения, а поиск минимума продолжается из точки Х2.

6. Продолжаем движение вдоль оси x1 от точки Х2 в сторону уменьшения координаты. Получим пробную точку

 

= (x12 - h, x22) = (0, 2), Ф() = (0-1)2+(2-2)2 = 1,

 

Ф(Х2) = (1-1)2 + (2 - 2)2 = 0,

 

то есть Ф() > Ф(Х2) – пробная точка с координатами (0, 2) исключается из рассмотрения, а поиск минимума закончен, так как для точки Х2 выполнено условие прекращения поиска. Точкой минимума функции Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2 является Х* = Х2.

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

 

.

 

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

Линии уровня – это кривые, на которых функция принимает постоянное значение (Ф(Х) = соnst).

В данном разделе рассматриваются пять модификаций градиентного метода:

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

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

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

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

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

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

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

 

Хk+1= Хk – h× grad Ф(Хk), k=0, 1, 2, … (6.20)

 

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

 

Хk+1= Хk + h× grad Ф(Хk), k = 0, 1, 2, … (6.21)

 

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

(6.22)

 

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

 

(6.23)

 

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

 

(6.24)

В качестве условия прекращения поиска во всех градиентных методах используется, как правило, комбинация двух условий: ç Ф(Xk+1) - Ф(Xk) ç £ e или для всех i =1, …, n.

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

Рассмотрим пример поиска минимума градиентным методом с постоянным шагом для той же функции, что и в методе покоординатного спуска:

 

n = 2, X = (x1, x2), e =0.1,

Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2 ® min, h = 0, 3, Х0 = (0, 1).

 

1. Получим точку Х1 по формуле (2.45):

 

Ф(X1) = (0.6–1)2 + (1.6–2)2 = 0.32, Ф(X0) = (0 –1)2 + (1–2)2 = 2.

 

ç Ф(X1) - Ф(X 0) ç =1, 68 > e = 0, 1 Þ продолжаем поиск.

 

2. Получим точку Х2 по формуле (2.45):

Ф(X2) = (0.84–1)2 + (1.84–2)2 = 0.05,

Ф(X1) = (0, 6 –1)2 + (1, 6–2)2 = 0, 32.

 

ç Ф(X1) - Ф(X 0) ç =0, 27 > e = 0, 1 Þ продолжаем поиск.

 

3. Аналогично получим X3:

Ф(X3) = (0.94–1)2 + (1.94–2)2 = 0.007,

Ф(X3) = (0, 84 –1)2 + (1, 84–2)2 = 0, 05.

Так как условие прекращения поиска выполнено, найдено Х* = X3 = (0.94, 1.94) с точностью e = 0.1.

Траектория поиска для данного примера приведена на рис. 6.5.

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

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

 

 

 

Рис. 6.5

 

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

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

 

Хk+1= Хk – hk × grad Ф(Хk), k=0, 1, 2, …, (6.25)

 

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

 

Ф(Хk – hk × grad Ф(Хk)) £ Ф(Хk) - e× hk × ½ grad Ф(Хk2. (6.26)

 

Если величина hk такова, что неравенство (2.64) не выполнено, то производится дробление шага до тех пор, пока данное условие не будет выполнено.

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

Это обеспечивает простоту замены и дополнения процедур, данных и знаний.

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

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

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

 

Хk+1= Хk – hk× grad Ф(Хk), k=0, 1, 2, …, (6.27)

 

где hk = arg min Ф(Хk – hk × grad Ф(Хk)), то есть выбор шага производится по результатам одномерной оптимизации по параметру h (при 0 < h < ¥).

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

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

Рис. 6.6

 

Рассмотрим пример поиска минимума для той же функции, что и в градиентном методе с постоянным шагом и в методе покоординатного спуска:

 

n = 2, X = (x1, x2), e = 0.1,

 

Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2 ® min, Х0=(0, 1).

 

1. Получим точку Х1 :

 

X1 = X0 – h1∙ grad Ф(X0),

 

где h1 = arg min Ф(X0 – h∙ grad Ф(X0)) при 0 < h < ¥, то есть h1 – это аргумент, при котором достигается минимальное значение функции Ф(h) = Ф(Х0 – h × grad Ф(Х0)).

 

 

Таким образом, Ф(h) = 2× (2× h -1)2. Теперь нужно найти h, при котором Ф(h) принимает минимальное значение. В точке экстремума Ф/(h) = 0:

 

[2× (2× h -1)2]/h = 2× 2× (2× h -1)× 2=8× (2× h -1)=0.

 

Следовательно, h1 = 1/2 – оптимальный шаг на первой итерации метода наискорейшего спуска. Тогда

 

Х 1= Х 0 – 1/2× grad Ф(Х0),

то есть

 

x11 =0 -1/2× [2× (0-1)] = 1, x 21 = 1-1/2× [2× (1-2)] = 2 Þ Х 1 = (1, 2).

 

Проверим выполнение условий прекращения поиска в точке поиска Х 1 = (1, 2). Первое условие не выполнено

 

ç Ф(X1)-Ф(X 0) ç = ç 0-2 ç =2 > e = 0.1, но справедливо

 

 

 

то есть все частные производные с точностью e можно считать равными нулю, точка минимума найдена: Х*=Х1 =(1, 2). Траектория поиска приведена на рис. 6.7.

Таким образом, метод наискорейшего спуска нашел точку минимума целевой функции за одну итерацию (из-за того, что линии уровня функции Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2. ( (x1 – 1)2 + (x2 –2)2 = const – уравнение окружности, и вектор антиградиент из любой точки точно направлен в точку минимума – центр окружности).

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

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

 

Рис. 6.7

 

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

 

Хk+1= Хk – hk+1 × grad Ф(Хk), k = 0, 1, 2, …, (6.28)

 

где шаг hk+1 может быть рассчитан по одной из двух формул: hk+1 = hk+lk+1× ak, или hk+1 = hk× exp(lk+1× ak). В качестве понижающего коэффициента выбирают обычно lk =1/k, где k – номер итерации поискового метода.

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

Величина ak определяет знак такой корректировки (при ak > 0 шаг увеличивается, а при ak < 0 уменьшается):

Ù

ak=sign{(grad Ф(Хk), grad Ф(Х))},

 

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

Знак скалярного произведения двух векторов позволяет оценить величину угла между данными векторами (обозначим этот угол b). Если b < 90°, то скалярное произведение должно быть положительным, в противном случае – отрицательным. С учетом вышеизложенного нетрудно понять принцип корректировки величины шага в двухуровневом адаптивном методе. Если угол между антиградиентами b < 90° (острый угол), то направление поиска из точки Хk выбрано правильно, и величину шага можно увеличить (рис. 6.8).

Рис. 6.8. Выбор направления поиска при b < 90°

 

Если же угол между антиградиентами b > 90° (тупой угол), то направление поиска из точки Хk удаляет нас от точки минимума Х*, и шаг нужно уменьшить (рис. 6.9).

Рис. 6.9. Выбор направления поиска при b > 90°

 

Метод носит название двухуровневого, так как на каждой итерации поиска анализируются не одна, а две точки и строятся два вектора антиградиента.

Это, конечно, увеличивает затраты на проведение одной итерации, но позволяет проводить адаптацию (настройку) величины шага hk+1 на поведение случайных факторов.

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

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

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

 

j(Х) = Ф(Х0) + (Х - Х0) т× gradФ(Х0) + ½ G(X0)× (Х - Х0), (6.29)

 

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

 

2Ф(Х)¶ 2Ф(Х)... 2Ф(Х)

¶x12 ¶x1 ¶x2 ¶x1 ¶xn

G(X) = 2Ф(Х)¶ 2Ф(Х)... 2Ф(Х)

¶x2 ¶x1 ¶x2 2 ¶x2 ¶xn

2Ф(Х)¶ 2Ф(Х)... 2Ф(Х)

¶xn ¶x1 ¶xn ¶x2 ¶xn2 .

 

Формула (2.67) представляет собой первые три члена разложения функции Ф(Х) в ряд Тейлора в окрестности точки Х0, поэтому при аппроксимации функции Ф(Х) функцией j(Х) возникает ошибка не более чем ½ ½ Х-Х0 ½ ½ 3.

С учетом (2.67) в методе Ньютона исходными данными являются требуемая точность e, начальная точка поиска Х0 и получение новых точек производится по формуле:

 

Хk+1 = Хk – G-1k)× grad Ф(Хk), k =0, 1, 2, …, (6.30)

 

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

 

1 0 … 0

I = 0 1 … 0 - единичная матрица.

0 0 … 1

 

Рассмотрим пример поиска минимума для той же функции, что и в градиентном методе с постоянным шагом и в методе покоординатного спуска:

 

n = 2, X = (x1, x2), e = 0.1,

Ф(x1, x2) = (x1 – 1)2 + (x2 – 2)2 ® min, Х0=(0, 1).

1. Получим точку Х1:

 

X1 = X0 – G–1(X0)∙ grad Ф(X0),

 

где

grad Ф(X0) = (2∙ (x10–1)), 2∙ (x10–1) = (–2, –2), то есть

или

x11 = 0 – (1/2∙ (–2) + 0∙ (–2)) = 1,

x21 = 1 – (0∙ (–2) + 1/2∙ (–2)) = 2,

X1 = (1, 2).

 

Проверим выполнение условий прекращения поиска: первое условие не выполнено

 

ç Ф(X1)-Ф(X 0) ç = ç 0 - 2 ç = 2 > e = 0.1,

 

но справедливо

 

то есть все частные производные с точностью e можно считать равными нулю, точка минимума найдена: Х* = Х1 = (1, 2). Траектория поиска совпадает с траекторией метода наискорейшего спуска (рис. 2.24).

Главным недостатком метода Ньютона являются затраты на вычисление обратного гессиана G-1k) на каждой итерации метода.

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

Достоинством данного метода является то, что он не требует вычисления обратного гессиана, а в качестве направления поиска в методе ДФП выбирается направление – Нk× gradФk), где Нk - положительно определенная симметричная матрица, которая заново рассчитывается на каждой итерации (шаге метода поиска) и приближает обратный гессиан G-1k) (Нk ® G-1k) с увеличением k).

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

Вычислительная процедура метода ДФП включает следующие шаги.

Исходными данными являются требуемая точность e, начальная точка поиска Х0 и начальная матрица Н0 (обычно единичная матрица, Н0 = I).

1. На k -ой итерации метода известны точка поиска Хk и матрица Нk (k = 0, 1, …).

2. Обозначим направление поиска

 

dk = - Нk × grad Ф(Хk).

 

Находим оптимальную величину шага lk в направлении dk с помощью методов одномерной оптимизации (так же, как в методе наискорейшего спуска выбиралась величина в направлении веrтора антиградиента)

З. Обозначим vk = lk × dk и получим новую точку поиска Хk+1=Xk + vk.

4. Проверяем выполнение условия прекращения поиска.

Если ½ vk ½ £ e или ½ gradФ(Хk+1) ½ £ e, то решение найдено Х* = Хk+1. В противном случае продолжаем вычисления.

5. Обозначим uk = grad Ф(Хk+1) - grad Ф(Хk) и матрицу Нk+1 рассчитаем по формуле:

 

Hk+1= Hk + Ak + Bk, (6.31)

 

где Ak = vk. vkT / (vkT × uk), Bk = - Hk× uk. ukT. Hk / (ukT × Hk × uk).

Ak и Вk – это вспомогательные матрицы размера n х n (vkT соответствует вектору-строке, vk означает вектор-столбец, результатом умножения n -мерной строки на n -мерный столбец является скалярная величина (число), а умножение столбца на строку дает матрицу размера n x n).

6. Увеличиваем номер итерации на единицу и переходим к пункту 2 данного алгоритма.

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.