
- •Основные понятия.
- •1. Безусловная оптимизация (многомерные функции)
- •1.1 Методы первого порядка (градиентные методы)
- •1.1.1. Градиентный метод с постоянным шагом
- •1.1.2. Выпуклые функции и множества
- •Теорема
- •Определение.
- •Без доказательства
- •2.Теорема:
- •1.2. Градиентные методы (продолжение)
- •1.2.1. Градиентный метод с дроблением шага.
- •1.2.2. Метод наискорейшего спуска.
- •Без доказательства
- •1.2.3. Масштабирование
- •1.3. Метод Ньютона.
- •1.4. Многошаговые ( двухшаговые ) методы.
- •1.3.1. Метод тяжелого шарика
- •1.3.2. Метод сопряженных градиентов
- •1.3.3. Модификация Полака-Ривьера
- •1.5. Квазиньютоновские методы
- •1.6. Методы нулевого порядка (методы прямого поиска)
- •1.6.1. Методы аппроксимации
- •Метод покоординатного спуска
- •1.6.3. Метод симплексов (Нелдера-Мида)
- •1.6.4. Метод Пауэлла (сопряженных направлений)
- •1.7. Методы прямого поиска в задачах одномерной минимизации.
- •1.7.1. Метод квадратичной интерполяции.
- •1.7.2. Метод дихотомии ( половинного деления.).
- •1.7.3. Метод «золотого» сечения.
- •1.7.4. Метод Фибоначчи.
- •2. Условная минимизация.
- •2.1 Задача нелинейного программирования.
- •2.1.1. Ограничения типа равенства.
- •2.1.2. Ограничения типа неравенств.
- •2.2. Задача выпуклого программирования
- •2.3. Методы условной минимизации.
- •2.3.1. Метод проекции градиента.
- •2.3.2. Метод условного градиента.
- •2.3.3. Метод модифицированной функции Лагранжа.
- •2.3.4. Метод штрафных функций.
- •2.4. Двойственность звп
- •2.4.1. Двойственность злп
- •3. Линейное программирование
- •3.1. Основные понятия
- •3.2. Геометрическая интерпретация злп.
- •3.3. Условие оптимальности для злп.
- •3.4. Базис и базисное решение.
- •3.5. Симплекс - метод решения злп.
- •3.6 Транспортная задача
- •3.5.1. Построение первоначального опорного плана.
- •3.5.2. Построение оптимального плана. Метод потенциалов.
- •4. Решение переборных задач.
- •4.1. Метод ветвей и границ.
- •4.1.1. Задача о коммивояжере.
- •4.2. Динамическое программирование.
- •4.2.1. Абстрактная схема.
- •4.2.2. Вывод уравнения Беллмана.
- •4.2.3. Методика применения функции Беллмана для решения исходной задачи.
- •4.2.4. Примеры задач динамического программирования
- •5. Вариационное исчисление (ви)
- •5.1. Уравнение Эйлера-Лагранжа.
- •5.1.1. Частные случаи уравнения Эйлера-Лагранжа.
- •5.1.2. Задача о брахистохроне.
- •5.2. Вариационные задачи на условный экстремум.
- •5.2.1. Модельные задачи на условный экстремум.
- •6. Принцип максимума Понтрягина ( на примере задачи оптимального управления ).
- •6.1. Принцип максимума в задаче о быстродействии.
- •Список литературы
2.4. Двойственность звп
В формулировке теоремы Куна- Таккера прямые и двойственные переменные входят симметричным образом. Поэтому можно ожидать, что аналогичная симметрия существует и для задач оптимизации относительно прямых и двойственных переменных.
Введем функцию: g(x)=sup(x,
),
при
0
Тогда очевидно ,что
g(x)
=f(x), еслиgi(x)
0,i=1...m
g(x)
=,
в противном случае
Понятно, что
(x,
)
=f(x)+(
,g(x)),
Поэтому исходная ЗВП может быть записана в виде:
ming(x)-?,
приxRn
Эту задачу принято называть прямой.
Поступим аналогичным образом, поменяв
роль переменных и операций maxиmin. Обозначимh()=inf
,
приxRn
Задачу нахождения максимума функции
h()-?
при
,
называют двойственной.
Теорема двойственности:
Справедливы следующие соотношения двойственности:
1) f(x)h(
)
x
X,
2) Если выполнено условие теоремы Куна-Таккера, а пара (x*,*) является седловой точкой функции Лагранжа, то*-решение двойственной задачи.
* = argmaxh(),при
иf(x* )=h(*)
3)Если для допустимых x*,* :f(x*)=h(*), то
x* =argminf(x),
приxX– решение прямой задачи,
* = argmaxh(),
при
0
– решение двойственной задачи.
Доказательство:
1) f(x)f(x)+(
,g(x))=
(x,
)
inf
(x,
)
=h(
),
приxRn
2) Для всех
0
справедливо соотношение:
h(*)=inf(x,*)
=
(x*
,*)
(x*
,
)
inf
(x,
)
=h(
),приxRn
Отсюда * - решение двойственной задачи.
Но
(x*,*) =f(x*)
h(*)=f(x*)
3) На основании 1)f(x)h(*)
= (на основании 2))f(x*)
h(
)
тогда x*- прямое решение,*- двойственное решение
Продемонстрируем двойственность ЗВП на примере задачи линейного программирования (ЗЛП) , которая вкладывается в ЗВП.
Напомним, что функция fназывается вогнутой, если -fвыпуклая функция.
Определение. Функция, которая выпукла и вогнута одновременно, является афинной или линейной функцией.
2.4.1. Двойственность злп
Рассмотрим множество X=xRn,x,Ax
b,
b-
вектор размерностиm,A-
матрица размерностиmn.
f(x) = (c,x)- целевая функция (линейная)
ЗЛП: minf(x)-?, приxX- прямая задача линейного программирования.
Построим функцию Лагранжа.
=(c,x)+(1,b-Ax)+( 2,-x),1Rm,2Rn
(подгоняем подgi(x)0).
Тогда min(c,x) =maxinf(c,x)+(1,b-Ax)+(2, -x), при10,20,xRn = (см. метод модификации функции Лагранжа) =maxinf(c-AT1-2,x)+(b,1)
при 10,20,xRn =
Примечание: (1,Ax)=(AT1,x)
= max
,
при10,20
= max(b,1) (при10,20, с=AT1+2) =max(b,1) (при10, сAT1)
Таким образом, max(b,) = (c,x*), сAT,0
max(b,), сAT,0 - двойственная ЗЛП.
Таким образом, решение исходной ЗЛП может быть сведено к решению новой ЗЛП : максимизация (b,) по множеству, определенному условиями сAT,
0.
Утверждения:
Вектор состояния двойственной ЗЛП имеет размерностьm- количество ограничений в исходной задаче (размерность вектораAx).
Количество ограничений (кроме 0, неотрицательных) совпадает с размерностью вектора состояний в исходной задаче (вектораx).
Суммарное количество ограничений совпадает с (n+m) в обеих задачах.
Двойственная задача к двойственной задаче дает исходную задачу.
Когда какую задачу решать - зависит от числа ограничений и от размерности множества Х.
Утверждение:
Двойственные переменные можно рассматривать как коэффициент чувствительности целевой функции к изменению параметров задачи.
Пусть x* ,*- решения прямой и двойственной задач, причем эти решения единственны (достиг. в одной точке минимумxи в одной максимум)
Тогда f(x*) = (b,*), несколько изменимb:bb+bminувеличился на
(b,*). При сдвигеbградиенты не изменились,iостались теми же.
Обозначим h(b) =minf(x),Axb,x0.
Тогда при малых b:
h(b+b) =h(b) + (b,*), следовательно приb0 получим:
,
для компонент векторов