
- •1.4.Двойственность состоит в том, что каждой исходной (прямой) задаче, в которой целевая функция стремится к максимуму (минимуму)
- •2. Лекции
- •Понятие модели
- •Классификация экономико-математических моделей
- •Оптимизационные модели
- •Лекция 2. Примеры содержательных постановок задач линейного программирования
- •Задача об оптимальном использовании ресурсов
- •Транспортная задача линейного программирования
- •Лекция 3. Различные формы задач линейного программирования
- •Стандартная форма задачи линейного программирования
- •Каноническая форма задачи линейного программирования (злп)
- •Переход от стандартной формы задачам линейного программирования (злп) к канонической
- •Лекция 4. Графический метод решения задач линейного программирования
- •Лекция 5. Основные теоремы линейного программирования
- •Геометрическая интерпретация симплекс-метода
- •Основное неравенство теории двойственности
- •Лекция 8. Основные теоремы двойственности
- •Лекция 9. Задачи нелинейного программирования
- •Метод множителей Лагранжа
- •Выпуклое программирование
- •Задача выпуклого программирования
- •Градиентные методы
- •Метод параллельных касательных
- •Метод сопряженных градиентов
- •Метод покоординатного спуска
- •О методах второго порядка
- •О методах прямого поиска
- •Методы одномерной минимизации
- •1. Задачи с ограничениями-равенствами
- •2. Задачи с ограничениями-неравенствами
- •2.1. Метод проекции градиента
- •2.2. Метод приведенного градиента
- •Методы штрафных функций
- •Методы барьерных функций
- •Лекция 14. Практическая реализация методов нелинейного программирования
- •Построение начального приближения
- •Практическая реализация методов нелинейного программирования
- •3. Практические и лабораторные занятия
- •4. Самостоятельная работа студента
- •Задача об оптимальном использовании ресурсов
- •Транспортная задача линейного программирования
- •Стандартная форма задачи линейного программирования
- •Основное неравенство теории двойственности
- •Экономический смысл первой (основной) теоремы двойственности
Градиентные методы
Градиентным методом называется метод, по которому на каждом шаге очередная точка определяется по формуле
(1)
т.е. направление спуска на каждой итерации - это антиградиент, вычисленный в текущей точке хк.
Рис. 4. Линии уровня и антиградиент
На рис. 4 текущему вектору хк соответствует точка А. Примем за единицу значение целевой функции в этой точке и рассмотрим линию уровня со значением 1-ε, где ε достаточно малая величина. При достаточно малом е эти линии уровня будем считать параллельными. Переход на линию уровня с меньшим значением при изменении только x1 дает точку С, а при изменении только х2 точку В. Обозначим расстояние АС через Δ1 ,а АВ через Δ2. Тогда для частных производных имеем приближенные равенства: дF/дх1 = - ε /Δ1 и дF/дх2 = -ε/ Δ2.
Градиентный метод, в котором на каждой итерации используется шаг до точки минимума в направлении антиградиента, называется методом наискорейшего спуска.
Название наискорейший спуск не должно вводить в заблуждение, так как оно вовсе не означает, что метод позволяет найти минимум за наименьшее число шагов по сравнению с другими методами.
Траектория спуска в этом методе носит зигзагообразный характер и градиенты в любых двух последовательных точках ортогональны (рис. 6).
Рис. 6. Зигзагообразная траектория наискорейшего спуска
Метод параллельных касательных
Алгоритм состоит в следующем:
Из точки х0 делаем два шага как в методе наискорейшего спуска (рис. 6) и получаем точку х2.
Из точки х2 идем не по антиградиенту, а по направлению х2-х0(рис. 7).
Находим х3 как точку минимума функции в этом направлении и вычисляем антиградиент в ней.
Проверяем условия окончания счета и, если они не выполнены, повторяем пункт 1, используя х3 вместо х0.
В методе наискорейшего спуска информация об уже пройденных точках не хранилась и никак не использовалась. А в методе параллельных касательных надо запоминать пройденные точки, так как они используются для выбора направления спуска. Эта идея использования информации, полученной в процессе поиска минимума, для ускорения сходимости лежит в основе многих методов оптимизации.
Метод сопряженных градиентов
Идея этого метода в том, чтобы на каждом шаге в качестве направления спуска использовать не антиградиент, а его линейную комбинацию с прежним направлением спуска. Если обозначить через рк направление спуска на k-ой итерации, то последовательность векторов рк строится следующим образом:
р0 = -g0, т.е. первый шаг делаем по антиградиенту,
pk+1 = -gk+1 + βkpk, где βк = (gk+', gk+') / (gk, gk).
Это означает, что
Другими словами, сделав из начальной точки один шаг по методу наискорейшего спуска, надо вычислить антиградиент в новой точке. Затем взять отношение квадратов длин нового и старого градиентов (это и есть β0), умножить старый антиградиент на это число и результат сложить с новым антиградиентом. Это и будет направление спуска р1= -g1 – β0 g0, которое мы будем использовать вместо антиградиента -g1. В направлении р1 нужно дойти до точки минимума, в ней вычислить антиградиент –g2 затем β1= (g2, g2) / (g1 ,g1) и р2 = -g2 + β1 p1 и т.д.