- •7. Нелинейное программирование
- •7.1. Постановка задачи нелинейного программирования и ее геометрическая интерпретация
- •7.2. Множители Лагранжа Рассмотрим задачу условной минимизации вида
- •Алгоритм решения задачи
- •7.3. Задачи выпуклого программирования
- •7.5. Задача квадратичного программирования
- •Алгоритм решения.
7.3. Задачи выпуклого программирования
Рассмотрим задачу нелинейного программирования:
,
(7.27)
,
(7.28)
,
,
(7.29)
где
f
и
– некоторые
функции n
переменных
.
Эта задача от рассмотренных ранее задач
условием,
,
которое добавлено из соображений
удобства. В практических задачах, как
правило,
или
.
Для
решения сформулированной задачи в такой
общей постановке не существует
универсальных методов. Однако для
отдельных классов задач, в которых
сделаны дополнительные ограничения
относительно свойств функций
и
,
разработаны эффективные методы их
решения. В частности, ряд таких методов
имеется для решения задач нелинейного
программирования (7.27)…(7.29)
при условии, что f
– вогнутая (выпуклая) функция и область
допустимых решений, определяемая
ограничениями (7.28)…(7.29),
–
выпуклая.
Введем нормальную функцию Лагранжа вида:
,
(7.30)
![]()
Нормальная
функция Лагранжа проще функции Лагранжа,
удобнее для вычислений. Однако правило
для нее не всегда верно. Путь функции
f(x),
g(x)
определены, непрерывны и дифференцируемы
на
.
Еслих*
– точка
условного относительного минимума, то
найдется нулевой вектор
такой, что
.
Решения задачи (7.27)…(7.29) тесно связаны с седловыми точками функции Лагранжа.
Определение
1. Точка
,
где
называется седловой точкой функции
Лагранжа (7.21),
если при всех x
выполняется неравенства:
![]()
График
некоторой функции, имеющей седловую
точку, где x
и λ
– скаляры,
изображены на рис. 7.7.
Седловая точка функции является
результатом ее минимизации по x
и максимизации по
.
Таким
образом, если
зафиксировать
равным λ*
и рассматривать
как функцию толькоx,
то х*
будет точкой глобального минимума.
Аналогично, если рассматривать эту
функцию как функцию от
при фиксированномx,
равном х*,
то λ*
будет точкой глобального максимума.

Рис. 7.7. График функции, имеющей седловую точку
Лемма.
Пара векторов
при
является
седловой точкой функции Лагранжа тогда
и только тогда, когда выполнены следующие
условия:
![]()
или
![]()
![]()
.
Теорема
7.3.
(достаточное условие оптимальности).
Если пара векторов
,
где
,
является седловой точкой функции
Лагранжа, то
х*–
точка глобального минимума в задаче
(7.27)…(7.29)
и выполнены условия дополняющей
нежесткости
.
В
соответствии с теоремой 7.3,
если удается найти седловую точку
функции Лагранжа (7.30),
тем самым будет решена задача (7.27)…(7.29).
Теоретически такой подход безупречен.
Однако его практическая реализация
возможна не всегда. Дело в том, что если
функция f,
g
не выпуклы, то функция Лагранжа часто
не имеет ни одной седловой точки. Более
того, даже если указанные функции и
множество выпуклы и оптимальное решение
задачи (7.27)…(7.29)
существует, то в некоторых «вырожденных»
случаях функция Лагранжа также может
не обладать ни одной седловой точкой.
Условия, при выполнении которых хотя бы одна седловая точка функции Лагранжа всегда существует, сформулированы в следующем утверждении.
Теорема
7.4.
(существования седловой точки)
(Куна-Таккера). Предположим, что множество
выпукло, функции
выпуклы на нем и имеют условие Слейтера:
найдется такая точка
![]()
,
что
<
0,
i
= 1: m.
Пусть
– точка глобального минимума в задаче(7.27)…(7.29).
Тогда найдется такой вектор
,
что пара
образует седловую точку функции
Лагранжа, т.е. для всех
и x
выполняются неравенства:
.
Условие Слейтера исключает присутствие в задаче ограничений типа равенств. Это условие означает, что среди точек множества D найдется хотя бы одна, в которой все ограничения являются неактивными.
Если
предположить, что целевая функция f
и функция
непрерывно
дифференцируемы, то теорема Куна-Таккера
может быть дополнена аналитическими
выражениями, определяющими необходимые
и достаточные условия того, чтобы точка
была седловой точкой функции Лагранжа,
т.е. являлась решением задачи выпуклого
программирования. Эти выражения имеют
вид:
(7.31)
(7.32)
(7.33)
(7.34)
(7.35)
(7.36)
где
и
– значения
соответствующих частных производных
функции Лагранжа, вычисленных в седловой
точке.
Всем
отмеченным выше требованиям, позволяющим
записать необходимые и достаточные
условия для седловой точки
функции Лагранжа в виде указанных
выражений, удовлетворяет сформулированная
ниже задача квадратичного программирования.
