
- •Глава 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.3.3 Метод дск
Имя метода образовано по начальным буквам фамилий авторов -Девис-Свен-Кэмпей [32]. По своей сути он является усеченным методом Розенброка, в котором отсутствует процедура ортогонализации направлений (1.3.3). Он обладает почти такой же скоростью сходимости, что и метод Розенброка, однако он может вырождаться, т.е. терять какое-либо измерение в n мерном пространстве параметров когда два поисковых направления почти совпадают.
1.3.4 Метод Пауэлла
В методе Пауэлла [14] первые n итераций выполняются также, как и в методе Гаусса-Зейделя. Затем вводится новое направление поиска, совпадающее с направлением полного прохода за предыдущие n итераций. Это направление становится первым, а остальные поисковые направления увеличивают свой номер на единицу. Последнее направление отбрасывается. Алгоритм этого метода следующий.
{{{ Начало алгоритма.
1) Полагаем i=1 и Xi=Xinit. Запоминаем начальные направления в матрице P={ei}, i=1..n.
2) Выбираем поисковое направление Pi из матрицы P и ищем минимум в этом направлении: i: min(J(Xi+iPi ). Рассчитываем новое приближение вектора поисковых параметров Xi+1=Xi+iPi. Увеличиваем i на единицу и если in , то идем в начало пункта 2).
3) Рассчитываем новое направление поиска по формуле:
(1.3.5)
Номера всех направлений в матрице P увеличиваем на единицу:
(1.3.6)
а первым ставим найденное по формуле (1.3.5) Pnew .
4) Если |B| , то оптимизацию заканчиваем, иначе полагаем i=1 и переходим к пункту 2).
}}} Конец алгоритма.
Рис.1.3.3
Поиск минимума методом Пауэлла
Этот метод хорошо работает на функциях, кода главная ось ее прямолинейна, т.к. через n итераций все поисковые направления будут близки к направлению главной оси функции. Однако этот метод может вырождаться и на функциях с криволинейной основной осью не имеет преимуществ перед другими методами. Графически работа метода показана на рис.1.3.3.
1.3.5 Симплексный метод
Под симплексом в n - мерном пространстве понимается многогранник, образованный n+1 вершиной. Например, в двумерном случае симплекс является треугольником, в трехмерном - тетраэдром. Во всех симплекс-методах новое поисковое направление выбирается проходящим через вершину с максимальным значением целевой функции и центр симплекса, который вычисляется без учета этой вершины. В этом направлении делается шаг заданной длины , в новой точке вычисляется значение целевой функции и путем сопоставления этого значения с другими производится или увеличение или уменьшение шага, например, так как это описано в [33]. Некоторые приемы улучшения работы симплекс метода даны в работе Нельдера-Мида [34]. Здесь остановимся на варианте симплекс метода с процедурой поиска минимума в заданном направлении, который свободен от неопределенности некоторых ,ускоряющих, множителей метода Нельдера-Мида.
{{{ Начало алгоритма.
1) Относительно заданного начального приближения вектора поисковых параметров X0 в заданной сфере радиуса r случайным образом выбираем n+1 вершину симплекса. Запоминаем координаты этих вершин в матрице A={X1,X2,..,Xn+1} . Вычисляем значения функций в этих вершинах.
2) Определяем номер вершины симплекса, в которой функция максимальна: jmax: maxj(J(Xj)).
Вычисляем точку центра симплекса:
(1.3.7)
Определяем направление поиска:
P=(Xc-Xjmax)/|P|. (1.3.8)
В заданном направлении P относительно точки Xjmax ищем минимум целевой функции:
0: min(J(Xjmax+P) (1.3.9)
и новую точку Xnew=Xjmax+0P вводим в симплекс вместо точки с номером jmax.
3) Если |Xnew-Xjmax|, то оптимизацию заканчиваем, иначе переходим к пункту 2).
}}} Конец алгоритма.
Графически работа данного метода в двумерном случае показана на рис.1.3.4.
Рис.1.3.4
Поиск минимума симлексным методом Нельдера-Мида