- •Теория принятия решений
- •Часть 2 нелинейное программирование, теория игр, многокритериальные задачи принятия решений
- •Введение
- •4. Нелинейное программирование
- •4.1. Характеристика задач
- •4.2. Условия оптимальности
- •4.3. Квадратичное программирование
- •4.4. Сепарабельное программирование
- •4.5. Задачи дробно-линейного программирования
- •4.6. Методы спуска
- •4.7. Методы одномерной минимизации
- •4.7.3. Метод деления интервала пополам
- •4.7.4. Метод золотого сечения
- •4.7.6. Метод первого порядка
- •4.8. Многомерный поиск безусловного минимума
- •4.8.1. Метод Гаусса – Зейделя (покоординатного спуска)
- •4.8.2. Метод Хука – Дживса (метод конфигураций)
- •4.8.3. Симплексный метод
- •4.8.4. Градиентные методы
- •4.8.6. Методы сопряженных направлений
- •4.8.7. Методы случайного поиска
- •Алгоритм с возвратом при неудачном шаге
- •Алгоритм с обратным шагом
- •Алгоритм наилучшей пробы
- •Алгоритм статистического градиента
- •4.8.8. Генетические алгоритмы
- •Исходная популяция
- •Результаты работы оператора скрещивания
- •Популяция первого поколения
- •4.9. Методы условной оптимизации
- •4.9.2. Метод проектирования градиента
- •4.9.3. Метод штрафных функций
- •Минимизация по методу Ньютона
- •4.9.4. Метод барьерных функций
- •Результаты поиска алгоритмом барьерных функций
- •4.9.5. Другие методы условной оптимизации
- •5. Методы теории игр в управлении
- •5.1. Теория игр в контексте теории принятия решений
- •5.2. Матричные игры с нулевой суммой
- •Использование линейной оптимизации при решении матричных игр. Пусть игра не имеет оптимального решения в чистых стратегиях, т.Е. Седловая точка отсутствует .
- •5.3. Игры с природой
- •5.4. Критерии, используемые для принятия решений
- •В играх с природой. Критерии, основанные
- •На известных вероятностях стратегий природы
- •Иногда неопределенность ситуации удается в некоторой степени ослабить с помощью нахождения вероятностей состояний на базе данных статистических наблюдений.
- •5.5. Оценка необходимости эксперимента
- •6. Многокритериальные задачи принятия решений
- •6.1. Основы многокритериальный оптимизации
- •6.2. Принцип оптимальности Парето.
- •6.3. Принцип равновесия по Нэшу
- •6.4. Конфликты, переговоры и компромиссы
- •6.5. Краткий обзор методов решения задачи векторной оптимизации
- •Значения компонентов вектор-функции
- •1. Оптимальность по Парето
- •Исходные данные для задачи оптимизации по Парето
- •Эффективность операции
- •2. Принятие решений в условиях неопределенности
- •Исходные данные для задачи принятия решения в условиях неопределенности
- •3. Многокритериальная оптимизация
- •Заключение
- •Библиографический список
- •Оглавление
- •Теория принятия решений
4.8.4. Градиентные методы
Если функция дифференцируема, вычисление производных дает информацию о поведении функции в исследуемой точке и, следовательно, позволяет находить лучшее направление поиска.
Скорость изменения функции f(X) в произвольном направлении l определяется производной
. (4.43)
Здесь частные производные представляют собой направляющие косинусы. Геометрическая иллюстрация для случая функции двух переменных приведена на рис. 4.27. Очевидно, что
.
Поверхность уровня целевой функции, описываемая уравнением f(X) = const, имеет размерность n – 1.
Зададим координаты следующим образом. Проведем через рассматриваемую точку n – 1 взаимно ортогональные касательные к поверхности уровня, приняв их за оси координат. В качестве последней оси возьмем нормаль к поверхности уровня (рис. 4.28).
В такой системе координат производные функции по всем xj равны нулю. Поэтому из уравнения (4.43) имеем
.
Отсюда следует, что максимальная скорость увеличения функции будет в направлении l, совпадающем с нормалью. Вектор, имеющий направление нормали к поверхности функции в данной точке и длину , называется градиентом.
Обозначается градиент как grad f(X), или f(X). Он полностью определяется своими проекциями – производными функции по переменным:
В задачах на минимум используется противоположное направление – антиградиент.
Значения производных могут быть найдены по приближенным формулам:
;
.
Более точный результат дает вторая формула, но она требует больше вычислений. Чем точнее необходимо вычислить производную, тем меньше должно быть х. Однако недопустимо, чтобы разность значений функции была соизмерима с погрешностью вычисления.
Если переменные имеют разные единицы измерения, можно перейти к относительным переменным yi, используя минимально и максимально возможные значения переменных xi:
.
Очевидно, что значения yi лежат в диапазоне [0, 1].
Знание градиента (антиградиента) позволяет осуществлять перемещение из текущей точки в направлении наибольшего улучшения функции. Для линейных функций оно постоянно, и поэтому его требуется определять всего один раз. В нелинейных функциях значение градиента зависит от вектора X, т.е. его необходимо пересчитывать при любом изменении X.
В градиентном методе поиск минимума производится согласно рекуррентным формулам:
, (4.44)
где hk – шаг.
В первой формуле величина изменения переменных X зависит как от шага, так и от величины градиента. Более удобно, когда расстояние между последовательными точками зависит только от величины шага. Поэтому предпочтительнее вторая формула. В ней используется нормированный градиент, длина которого всегда равна единице (за счет деления на длину). Поэтому он задает лишь направление, но не влияет на величину X.
Формула (4.44) в записи по отдельным переменным принимает вид
. (4.45)
Алгоритм градиентного метода
1. Задать начальную точку, начальное значение шага и точность по величине градиента , вычислить f(X0) и положить k = 0.
2. В текущей точке Xk вычислить градиент (производные ) и его длину.
3. Проверить: если закончить поиск.
4. Определить новую точку Xk+1 согласно формуле (4.45) и вычислить в ней значение функции.
5. Проверить: если f (Xk+1) f (Xk), увеличить k на единицу и перейти на п. 2; если иначе, уменьшить hk в два раза и перейти на п. 4.
При гладкой производной траектория поиска в идеале (при непрерывном вычислении градиента) тоже будет гладкой и ортогональной линиям уровня. При конечной величине шага траектория становится кусочно-линейной. Качественный характер поиска показан на рис. 4.29, а на рис. 4.30 приведена реализация алгоритма с двух начальных точек применительно к функции f(X) = (x1 – x2)2 + (x2 – 2)4. Обе траектории приводят практически в одну точку.
Рис. 4.29. Характер поиска |
Рис. 4.30. Реализация алгоритма |
Самой трудоемкой частью алгоритма является вычисление градиента, а он вычисляется после каждого успешного шага. В методе наискорейшего спуска, который представляет собой модификацию градиентного метода, градиент определяется реже, особенно в начальный период поиска.
Модификация заключается в том, что после вычисления градиента вместо одного дискретного шага ищется минимум на направлении антиградиента, т.е. проводится одномерный поиск по h:
(4.46)
В результате решения задачи (4.46) определяется оптимальный шаг h*, по которому находится следующая точка:
(4.47)
Очевидно, что при таком определении новой точки значение функции в ней будет лучше, чем в xk.
Алгоритм наискорейшего спуска
1. Задать начальную точку и точность по величине градиента , положить k = 0.
2. В текущей точке xk вычислить градиент (производные ) и его длину.
3. Проверить: если закончить поиск.
4. Провести одномерный поиск (4.46).
5. Определить новую точку xk+1 согласно (4.47), увеличить k на единицу и перейти на п. 2.
На рис. 4.31 показаны две траектории движения к минимуму функции f(X) = = (x1 – x2)2 + (x2 – 2)4, полученные алгоритмом. Минимум на направлении антиградиента достигается в точке касания с линией уровня, а градиент в этой точке ортогонален ей. Поэтому каждое последующее направление ортогонально непосредственно предшествующему. Из рис. 4.31 видно, что с приближением к экстремуму частота вычисления градиента увеличивается, и вблизи минимума метод наискорейшего спуска вырождается в градиентный (см. рис. 4.30 и 4.31).
Градиентные методы плохо работают в условиях «оврага»: при попадании на дно «оврага» резко падает скорость движения и возможна остановка поиска до достижения окрестности минимума (рис. 4.32, f = (2 – x1)2 + 3(x12 – x2 )2).
4.8.5. Метод Ньютона
Это классический метод второго порядка. Если направление градиента находится из линейного представления функции в окрестности текущей точки, то в методе Ньютона используется квадратичная аппроксимация функции цели.
Квадратичная аппроксимация дифференцируемой функции f в точке Xk записывается в виде
, (4.48)
где Н – матрица вторых производных функции f (матрица Гессе). В стационарной точке градиент функции равен нулю, что применительно к формуле (4.48) дает
. (4.49)
Полагая матрицу H неособенной (существует обратная к ней матрица), из уравнения (4.49) получаем рекуррентный способ генерирования последовательности точек
. (4.50)
Исходя из вывода формулы (4.50) ясно, что для квадратичной функции цели Xk+1 является точкой минимума. Следовательно, минимум такой функции из любой начальной точки достигается за один шаг (4.50). Для нелинейной унимодальной функции, отличной от квадратичной, точки последовательности (4.50) асимтотически приближаются к минимуму. Условие окончания поиска такое же, как и в градиентных методах: . (В случае линейной аппроксимации матрица Н становится единичной и поиск вырождается в градиентный).
Необходимым условием сходимости метода является существование обратной матрицы во всех генерируемых точках. Доказательство сходимости метода получено при условии, что начальная точка достаточно близка к точке минимума. При этом метод имеет высокую скорость сходимости. Если поиск начинается с удаленной точки и функция существенно отличается от квадратичной, метод может не сходиться или давать слабую сходимость. Причина такого поведения в том, что значение функции в точке Xk+1 не обязательно меньше, чем в точке Xk. Так, на рис. 4.33 траектория поиска имеет зигзагообразный характер из-за того, что после 2-й итерации значение функции ухудшилось.
Для устранения отмеченных недостатков предложены модификации метода. Чтобы обеспечить регуляризацию матрицы Н (невырожденность), она деформируется добавлением к ней единичной матрицы с неотрицательным скалярным множителем : H = Н + Е. Значение зависит от X и подбирается так, чтобы все собственные значения матрицы H были положительными. Тогда эта матрица положительно определена и существует обратная матрица H–1, которая также положительно определена.
Возможное ухудшение функции в очередной точке исключается введением в формулу (4.50) изменяемого параметраh. Модифицированная формула принимает вид
. (4.51)
При этом возможен вариант с дискретным шагом h, как в градиентном методе, либо с определением оптимального h* с помощью одномерной минимизации (наискорейший спуск):
Пример поиска минимума функции f = (1 – x1)2 + 5(x12 – x2)2 методом Ньютона с регулируемым шагом приведен на рис. 4.34. Если сравнить траектории поиска на рис. 4.33 и 4.34, то легко заметить преимущество модифицированного варианта метода.