- •Оптимизация
- •1. , Отсюда
- •2. , Откуда
- •Оптимизация функции одной переменной
- •Методы поиска
- •Метод золотого сечения
- •Блок-схема метода "золотого сечения"
- •Оптимизация функции многих переменных Минимум функции нескольких переменных
- •Общий алгоритм методов многомерного поиска:
- •Вычисление производных функции
- •Градиентные методы поиска экстремума
- •Алгоритм простого градиентного метода:
- •Алгоритм метода наискорейшего спуска:
- •Симплексный метод
- •Расчет координат новой вершины симплекса
- •Алгоритм метода "деформируемых многогранников"
Общий алгоритм методов многомерного поиска:
1. Выбор начального приближения и необходимых параметров метода.
2. Итерация метода (выбор направления и поиск в этом направлении).
3. Проверка условия окончания расчетов (если оно выполняется, то прекращают расчеты и переходят на пункт 5).
4. Лучшая найденная точка принимается за новое начальное приближение, после чего расчеты повторяются с пункта 2.
5. Вывод полученных результатов.
Итерация метода (этап 2) выполняется по следующей формуле:
![]()
где
- очередное приближение;
- предыдущее приближение;
- величина шага;
- направление поиска.
В зависимости от выбранного метода по разному выбирают только величину шага и направление поиска.
Вычисление производных функции
Если аналитический расчет производных невозможен, то используют численное дифференцирование. Возможная формула

В этой формуле Dxi - величина приращения независимой переменной xi , которую надо выбирать достаточно аккуратно.
Если величина Dxi велика, то полученные оценки могут оказаться весьма неточными, особенно это заметно в том случае, если функция имеет большую кривизну.
Если же Dxi мало, то все значения производных могут обратиться в ноль (если величина Dxi взята меньше "машинного" нуля).
Ниже приводятся вычисленные значения производных для функции Розенброка
f(x1,x2) = 100(x2-x12)2 + (1-x1)2
вычисленные в точке x1=-1.2 и x2=1.0 для разных значений Dxi. Точные значения производных в этой точке равны ¶f/¶x1 = -215.6 и ¶f/¶x2 = -88.0 .
|
Dxi |
¶f/¶x1 |
¶f/¶x2 |
|
10 |
58314,1 |
912 |
|
1 |
69.4 |
12.0 |
|
0.1 |
-153.8 |
-78.0 |
|
0.01 |
-209.0 |
-87.0 |
|
0.001 |
-214.94 |
-87.9 |
|
0.0001 |
-215.57 |
-80.0 |
|
0.00001 |
-215.9 |
-88.1 |
|
0.000001 |
-206.0 |
-83.9 |
|
0.0000001 |
-248.0 |
-114.4 |
|
0.00000001 |
0 |
0 |
Как видно из данных этой таблицы при неудачном выборе величины Dxi можно неправильно определить и величину и знак производной.
На практике обычно рекомендуют использовать итерационный расчет производных с изменением величины Dxi . То есть начальные значения производных вычисляют при величине шага, равной Dxi после чего расчет повторяется при Dxi/2. Если полученные при этом значения производных существенно различаются, то расчет снова повторяют при Dxi/4 и т.д., пока не будет найдено оптимальное приращение величины Dxi.
Градиентные методы поиска экстремума
Идея метода: в начальной точке вычисляется градиент функции и ищется направление наискорейшего убывания функции (антиградиент). В этом направлении любым одномерным методом поиска ищется минимум целевой функции. В найденной точке проверяется условие окончания расчетов и, если оно не выполняется, то снова вычисляется градиент, ищется новое направление одномерного поиска и т.д.
Градиент - вектор, образованный из частных производных функции:

где
и
- единичные вектора, параллельные
координатным осям.
Свойства градиента
1. Градиент всегда направлен в сторону возрастания функции.
2. Градиент ортогонален (перпендикулярен) линии равного уровня, проходящей через ту точку, где он вычислялся.
3. В точке экстремума градиент равен нулю.
