
Шпоры по вычмату / 23
.doc
Задачи оптимизации.
Пусть дана схема,
математической моделью которой является
алгоритмически заданная функция,
например коэффициент усиления
,
который должен быть сделан максимальным
в выбранном диапазоне изменения
параметров. Такие задачи называются
задачами оптимизации, в отличие от задач
анализа. В задачах анализа вычисляется
выходное значение
для заданного набора входных параметров,
а в задаче оптимизации определяется
оптимальный набор входных параметров,
т.е. наилучший. В латыни optimus означает
"лучший".
Оптимизировать – это выбрать лучший вариант из множества возможных. Лучший при этом подразумевает выбор с точки зрения технического задания. Требования технического задания обычно сложны и противоречивы, и для формализации понятия ”оптимальный” вводится целевая функция.
Целевая функция
– эта скалярная функция многих переменных,
максимум или минимум которой определяет
оптимальный набор входных параметров.
Пуcть вектор
- это массив входных параметров и он
имеет длину
.
Тогда целевая функция записывается в виде
|
(14.1) |
Выбор целевой функции
обычно является сложной творческой
задачей, но есть методы ее формального
построения, которые здесь рассматриваться
не будут. Отметим, что при неправильном
выборе целевой функции экстремум может
отсутствовать. Например, для
получаем, что
стремится к минус бесконечности при
,
стремящихся к минус бесконечности.
Задачей оптимизации
называется задача поиска минимума
скалярной функции
на множестве значений ее аргументов.
Это означает, что нужно найти точку
в многомерном пространстве, для которой
выполняется условие
,
где
- вектор.
Если нужен максимум
функции
,
а не минимум, то нужно решить ту же задачу
для
.
На рис.14.1. показано условное изображение задачи оптимизации, которая всегда использует некоторую математическая модель рассматриваемого физического объекта и результаты решения задачи анализа. Оптимизацию обычно выполняют специальные программы, реализующие конкретные методы оптимизации. Во всех методах выполняются шаги в многомерном пространстве.
|
Рис.14.1. Задачи анализа и оптимизации |
Если поиск минимума проводится во всем многомерном пространстве без каких-либо ограничений на область изменения аргументов целевой функции, то оптимизация называется безусловной. При условной оптимизации всегда есть какие-то ограничения, что характерно для практических задач моделирования.
Обычно задача оптимизации имеет один из следующих трех видов:
-
безусловная нелинейная,
-
условная нелинейная,
-
условная линейная.
Для первого вида рассматриваются как одномерные, так и многомерные задачи, а для условной всегда многомерные. Третий вид задач – условные линейные – характерен для экономических и технологических задач и здесь рассматриваться не будет. В них целевая функция линейно зависит от входных параметров. Эти задачи называют задачами линейного программирования. Для их решения существует надежный и эффективный метод – симплекс-метод, а также стандартные программы, его реализующие.
В задачах оптимизации формируются аналитические или алгоритмические целевые функции, которые могут иметь один или несколько минимумов. Каждый минимум называется локальным, а минимум из минимумов называется глобальным. Обычно решение задачи оптимизации дает один из локальных минимумов, выбор которого определяется заданным начальным значением.
В качестве примера
приведем целевую функцию для случая
двух переменных ()
|
(14.2) |
Это известная функция
Розенброка и она часто используется
при решении тестовых задач, т.к. имеет
сложный характер линий уровня вблизи
точки минимума
,
.
При решении задач
оптимизации в случае двух переменных
используют представление функций в
виде линий уровня. Это же представление
используют для иллюстрации различных
методов в случае
,
т.к. нет другого способа изобразить шаги
в многомерном пространстве.
В заключение напомним условие минимума функции многих переменных (14.1)
|
(14.3) |
которое можно записать
в виде системы
нелинейных уравнений
|
(14.4) |
Отсюда следует, что для решения задачи оптимизации нужно решить систему нелинейных уравнений (13.5), например, методом Ньютона.
Отметим, что матрица
Якоби для системы (13.4) будет вычисляться
через вторые частные производные функции
и поэтому на итерациях в методе Ньютона
будет решаться система линейных уравнений
с матрицей Гессе
,
элементы которой
|
(14.5) |
Из-за сложности вычисления матрицы Гессе для целевых функций в практических задачах такой подход никогда не используется.
Одномерный поиск.
Одномерным поиском
называют алгоритмы поиска минимума
функции одной переменной
при отсутствии каких-либо ограничений
на область изменения
.
В этих задачах
и
- это скалярные
переменные. Одномерный поиск используется
в качестве вспомогательной задачи во
многих методах для поиска минимума
функций многих переменных.
1. Точку минимума
можно найти, решив нелинейное уравнение
|
(14.6) |
но такой подход при одномерном поиске не используется из-за сложности целевых функций и невозможности записи аналитического выражения производной.
2. Вычисляя функцию
с постоянным шагом
,
можно найти минимум, однако как выбрать
шаг? При большом шаге большая погрешность,
при мелком шаге слишком много вычислений.
3. Существует большое
количество методов одномерного поиска,
ускоряющих расчет. Один простой метод
одномерного поиска, основанный на
изменении шага в процессе счета.
Введем понятие удачного и неудачного
шага. Пусть шаг выполняется из точки
в точку
и величина этого шага равна
.
Вычислим
и
.
Шаг удачен, если
функция не возрастает, т.е. если
,
и неудачен и его надо изменить, если
функция возрастает, т.е.
.
АЛГОРИТМ
Положим, что начальное
значение
,
начальный шаг
выбраны и вычислено
значение
.
Задана также
допустимая погрешность EPS вычисления
точки минимума.
1) Вычисление нового
.
2) Вычисление
.
3) Если шаг удачен, то
значение
сохраняется. Если шаг неудачен, то
возвращаемся в точку
изменяем знак и величину шага, например,
.
4) Проверка условия
<
EPS для окончания поиска.
Иначе
и на пункт 1.
Применение этого алгоритма иллюстрирует рис. 14.2, где цифры дают номера шагов. Показаны 5 первых шагов. Точки соответствуют удачным шагам, а крестиками отмечены результаты неудачных.
|
Рис. 14.2. Первые шаги в простом алгоритме одномерного поиска. |
Рассмотренный метод
является самым простым, но он требует
большого количества итераций (шагов) и
в нем трудно выбирать начальный шаг
.
4. Количество итераций можно существенно уменьшить, если после нескольких шагов применить параболическую интерполяцию.
Пусть при выполнении
алгоритма получены три точки
,
,
,
из которых
расположена между
и
и значение
меньше, чем значения
и
.
По этим трем точкам
строится парабола
,
где
,
,
(см. рис.14.3). Дифференцирование дает
точку минимума параболы
|
(14.7) |
К этой точке
добавляются из
,
,
две ближайших к минимуму. Для новой
тройки точек (
,
,
на рис. 13.2) выполняются те же условия,
что и для предыдущих трех. Вычисления
повторяются для новой параболы. Итерации
прекращаются, когда разность значений
,
полученных на текущей и предыдущей
итерациях, меньше допустимой погрешности
EPS.
|
Рис.14.3. Применение параболической интерполяции при одномерном поиске. |
Метод можно усовершенствовать, применив для интерполяции кубическую параболу вместо обычной.