- •Глава 1. Методы оптимизации в электронике свч
- •1.1 Классификация методов оптимизации
- •1.2 Методы одномерного поиска
- •1.2.1 Методы исключения интервалов
- •1.2.2 Методы полиномиальной аппроксимации
- •1.2.3 Методы с использованием производных
- •1.3 Методы оптимизации 0-го порядка
- •1.3.1 Метод покоординатного поиска
- •1.3.2 Метод Розенброка
- •1.3.3 Метод дск
- •1.3.4 Метод Пауэлла
- •1.3.5 Симплексный метод
- •1.4 Методы оптимизации 2-го порядка
- •1.4.1 Метод Ньютона
- •1.4.2 Метод Ньютона-Рафсона
- •1.5 Методы оптимизации 1-го порядка
- •1.5.1 Метод наискорейшего спуска
- •1.5.2 Метод Вольфа
- •1.5.3 Методы с переменной метрикой
- •1.6 Методы условной оптимизации
- •1.6.1 Метод множителей Лагранжа
- •1.6.2 Метод штрафных функций
- •1.6.3 Комбинированный метод Хестенса
- •1.6.4 Метод разделения параметров
- •1.7 Проблема глобальной оптимизации
- •1.8 Расчет производных
- •1.8.1 Конечно-разностный метод
- •1.9 Рекомендации по использованию методов оптимизации в задачах электроники свч и краткие выводы
1.5.2 Метод Вольфа
Метод Вольфа [35] основывается на построении начального n+1 - мерного симплекса, расчета в вершинах симплекса значений целевой функции и градиента и вычисления новой вершины симплекса по квадратичной аппроксимации целевой функции. Алгоритм метода Вольфа следующий.
{{{ Начало алгоритма.
1) Относительно начальной точки Xinit случайным образом определяются n+1 вершины симплекса в гиперкубе с ребром Xinit. В вершинах этого симплекса вычисляются значения целевой функции и градиента: J(Xk), xJ(Xk), k=1..n+1.
2) Решается относительно параметров k следующая система линейных алгебраических уравнений n+1 порядка:
(1.5.2)
Определяется новая вершина симплекса
(1.5.3)
Среди всех старых вершин симплекса находится такая с номером j в которой значение целевой функции максимально, т.е.
J(Xj)>J(Xk), k=1..n+1. (1.5.4)
Если J(Xnew)>J(Xj), то
полагаем
и переходим к пункту 1), иначе заменяем
j-ю вершину на новую Xj=Xnew
и переходим к следующему пункту.
3) Если
,
то переходим к пункту 2), иначе поиск
заканчивается.
}}} Конец алгоритма.
Для доказательства правомерности формулы (1.5.3), представим квадратичную целевую функцию в виде следующего ряда Тейлора относительно точки Xnew, в которой мы предполагаем находится минимум целевой функции:
J(Xk)=J(Xnew)+(Xk-Xnew)TG(Xk-Xnew)/2. (1.5.5)
Градиент в точке Xk определяется как
xJ(Xk)=G(Xk-Xnew). (1.5.6)
Подставив (1.5.6) в (1.5.2) получим:
Считая, что G ненулевая матрица и учитывая соотношение (1.5.2), получаем искомую формулу (1.5.3), которая указывает на точку минимума квадратичной целевой функции.
Метод Вольфа хорошо сходится, как и метод Ньютона, на функциях близких к квадратичным, на не квадратичных функциях метод Вольфа неустойчив. Его можно, как и метод Ньютона, модифицировать, введя процедуру поиска минимума вдоль направления P=Xnew-Xj в пункт 2) алгоритма метода Вольфа. Можно ожидать, что такое дополнение улучшит устойчивость метода Вольфа, как это наблюдается в методе Ньютона-Рафсона.
1.5.3 Методы с переменной метрикой
В методах с переменной метрикой заложена идея метода Ньютона, а именно в них итерационным способом находится матрица, обратная матрице вторых производных, т.е. G-1 ~ Hk, где Hk - матрица порядка nn, которая носит название метрики. Поисковое направление определяется по формуле:
(1.5.7)
Методы поиска вдоль направлений, определяемых этой формулой, называются методами с переменной метрикой, поскольку матрица Hk изменяется на каждой итерации. С другой стороны методы с переменной метрикой представляют собой квази-ньютоновские методы, если в соответствии с ними перемещение текущей точки удовлетворяет условию, следующему из формул (1.1.6) и (1.4.3):
X=G-1g (1.5.8)
Для аппроксимации матрицы, обратной матрице Гессе, воспользуемся следующим рекуррентным соотношением:
Hk+1=Hk+Ek, (1.5.9)
где Ek - корректирующая матрица.
Исходя из важного свойства квадратичной функции (1.5.8), можно потребовать, чтобы новое приближение Hk+1 удовлетворяло соотношению:
Hk+1yk=sk , (1.5.10)
где yk=gk+1-gk, sk=Xk+1-Xk.
Выражение (1.5.10) можно переписать в виде:
Hkyk+Ekyk=sk. (1.5.11)
Решение уравнения (1.5.11) для корректирующей матрицы Ek является не однозначным и может иметь следующий вид:
Здесь vk и wk - произвольные вектора, т.е. формула (1.5.12) определяет некоторое семейство решений. Если положить
vk=sk и wk =Hkyk , (1.5.13)
то получим формулу, реализующую известный и широко применяемый метод Давидона-Флетчера-Пауэлла [16 ]:
(1.5.14)
Можно показать, что формула (1.5.14) сохраняет свойства симметрии и положительной определенности матрицы Hk. Поэтому, если H0 - симметрическая и положительно определенная матрица, то матрицы H1, H2, ... также будут симметричными и положительно определенными при отсутствии ошибок округления; обычно полагают H0=I, где I - единичная диагональная матрица.
Первая вариация J(X) равна
J(X)=gkTX.
Используя формулы (1.5.7) и (1.1.1), получим
J(X)=-kgkTHkgk.
Из (1.5.16) видно, что неравенство J(Xk+1)<J(Xk) выполняется при
любых значениях k>0 , если Hk - положительно определенная матрица. Таким образом, алгоритм обеспечивает убывание целевой функции при переходе от итерации к итерации.
В силу того, что существует определенный произвол в выборе векторов v и w в (1.5.12), то можно учесть какие-то дополнительные условия, улучшающие работу методов с переменной метрикой. Например, в методе Гольдфарба [19] накладывается дополнительное требование минимальности нормы корректирующей матрицы:
(1.5.17)
где Qi={0,0,..,0,1i,0,..,0}T . Это приводит к повышению устойчивости метода к ошибкам вычислений значений целевой функции, градиента и минимума в поисковом направлении. Так практически на тестовых примерах и задачах оптимизации процессов в электронных приборах было установлено, что алгоритм Гольдфарба оказался существенно более устойчивым к ошибкам вычислений, чем алгоритм Давидона-Флетчера-Пауэлла. Корректирующая матрица алгоритма Гольдфарба рассчитывается по формуле:
(1.5.18)
В приложении 1 приведены основные алгоритмы расчета корректирующих матриц для наиболее известных методов с переменной метрикой.
Алгоритм методов с переменной метрикой следующий.
{{{ Начало алгоритма.
1 0....0)
1) Полагаем k=1, Xk=Xinit,
Рассчитываем J(Xk), gk=xJ(Xk).
2) Определяем поисковое направление
Pk= - Hkgk и находим минимум в этом направлении:
k: min(J(Xk+kPk )
Новое приближение вектора поисковых параметров находится как
Xk+1=Xk+kPk.
3) Если |kPk|<, то процесс оптимизации окончен, иначе переходим к следующему пункту.
4) Рассчитываем в новой точке J(Xk+1) и gk+1.
Пересчитываем метрику Hk+1=Hk+Ek по одной из формул приложения 1, увеличиваем k на единицу k=k+1 и переходим опять к пункту 2).
}}} Конец алгоритма.
Работа метода с переменной метрикой показана на рис.1.5.2
Методы с переменной метрикой, как и ожидалось, хорошо себя показали на только на функциях близких к квадратичным, но и на сложных более высокого порядка функциях. Это можно объяснить тем, что в методах с переменной метрикой на каждой итерации находится очередное приближение обратной матрицы Гессе, которая дает квадратичную аппроксимацию целевой функции около текущей поисковой точки. В процессе оптимизации это приближение меняется в соответствии с изменением рельефа целевой функции, при этом рассчитываются только первые производные, что существенно проще и быстрее сделать, чем рассчитывать вторые производные, как в методе Ньютона. Пересчет матрицы Hk на каждой итерации приводит к адаптации метода к текущему рельефу целевой функции, что и позволяет ему успешно работать на функциях далеких от квадратичных. Как показали тестовые испытания методы с переменной метрикой оказались более быстродействующими даже по сравнению с методом Ньютона-Рафсона при численном расчете производных.
Рис.1.5.2
Поиск минимума методом с переменной метрикой
В настоящее время методы с переменной метрикой наиболее широко используются на практике при оптимизации различных приборов и устройств. Единственным недостатком методов с переменной метрикой является необходимость хранить в памяти ЭВМ половину симметричной матрицы Hk
Следует отметить также, что методы с переменной метрикой позволяют получить, как побочный результат, квадратичную аппроксимацию целевой функции вблизи точки минимума:
J(X)=J(Xmin)+gT(Xmin)(X-Xmin)+(X-Xmin)TG(X-Xmin)/2. (1.5.19)
