
- •Одномерная задача оптимизации
- •Многомерная задача безусловной оптимизации
- •Задача выпуклого программирования
- •Задача нелинейного программирования с ограничениями типа равенств
- •Теорема Куна-Таккера для задачи нелинейного программирования с ограничениями типа неравенств
- •Теорема Куна-Таккера для общей задачи нелинейного программирования
- •Аналитическое решение многомерных задач нелинейного программирования
Задача выпуклого программирования
Рассмотрим -мерную задачу
выпуклого программирования
(
)
– выпуклая
функция,
–
выпуклое не пустое ограниченное и
замкнутое множество
допустимых значений вектора варьируемых
переменных.
Напомним, что по определению выпуклая
функция является непрерывной.
Во внутренних точках
множества допустимых значений функция
(
)
достигает минимального значения в
точках, которые являются ее либостационарными
точками функции,
либо критическими
точками функции.
Однако функция может достигать своего
наименьшего значения и в граничных
точках области
определения
.
Важные свойства задачи выпуклого программирования определяют две следующие теоремы.
Теорема
1.
Если внутренняя точка множества
является
точкой локального минимума в задаче
выпуклого программирования,
то в этой точке функция
достигает
глобального минимума.
Доказательство.
Положим, что в точке функция
не
достигает наименьшего во множестве
значения.
Тогда существует точка
,
для которой
.
Рассмотрим сечение
.
Функция
(
)
достигает в точке
=0
наибольшее значение. Действительно,
поскольку
Это
значит, что существует окрестность точки
и
некоторое
такие,
что
.
Но тогда
,
что противоречит условию теоремы
Из теоремы следует, что во всех точках локального минимума выпуклая функция имеете одинаковые значения.
Пример 1
Рассмотрим
не строго выпуклую квадратичную
функцию ,
определенную в области
=
(см.
рис. 1). Все локальные минимумы этой
функции равны нулю и расположены на
прямой -
+
=0
.
MATLAB-программа:
x=-2:0.06:2;
y=x;
[X,Y]=meshgrid(x);
Z=(X+Y).^2;
V=[0.025,0.5,1,2,4,8];
[C,h]=contour(X,Y,Z,V);
clabel(C,h);
|
Рис. 1. К прим. 1
Теорема
2.
Функция (
), строго
выпуклая функция на выпуклом
множестве,
имеет в этом множестве не более одной
точки минимума (глобального)
Условие существования решения задачи выпуклого программирования дает следующая теорема.
Теорема
3.
Пусть функция (
)
выпукла на выпуклом
множестве
и
дифференцируема в точке
Тогда
для того чтобы эта точка была точкой
минимума функции
(
),
необходимо и достаточно, чтобы для любой
точки
выполнялось
неравенство
|
(1) |
Необходимость. Рассмотрим
сечение функции
(
).
Функция
(
)
определена на отрезке [0,1], имеет в
точке
=0
локальный минимум и дифференцируема в
этой точке. Следовательно
(равенство
нулю имеет место в том случае, когда
точка
является
внутренней точкой множества
).
По правилу дифференцирования сложной
функции
Достаточность.
Пусть в точке выполнено
неравенство (1). Рассмотрим
сечение
функции
(
),
где
–
произвольная точка из множества
.
Поскольку
(
)
выпукла во множестве
,
то функция
(
)
также выпукла на отрезке [0,1]. Кроме того,
из неравенства (1) следует, что
(0)
0.
Это означает, что
(
)
- неубывающая отрезке [0,1] функция,
т.е.
(0)
(1).
Последнее неравенство означает, что
и
в точке
функция
(
)
принимает наименьшее в области
значение
Теорему 3 иллюстрирует рис. 2, линии уровня на котором получены с помощью следующей MATLAB-программы:
x=-2:0.06:-0.1;
y=x;
[X,Y]=meshgrid(x);
Z=100.*(Y-X.^2).^2+(1-X).^2;
V=[2,8,32,125,250,500,1000,2000];
contour(X,Y,Z,V);
[C,h]=contour(X,Y,Z,V);
clabel(C,h);
Точка на
рис.рис. 2 является точкой локального
минимума, поскольку не существует такой
точки
,
что скалярное произведение (
(
),(
-
))
отрицательно. Точка
,
например, не является точкой локального
минимума, так как существуют такие
точки
,
что скалярное произведение (
(
),(
-
))
отрицательно.
|
Рис. 2. К теореме 3.
Заметим,
что если точка является
внутренней точкой множества
,
то условие (1) эквивалентно условию
.
Таким образом, условие (1) можно
рассматривать как обобщение необходимого
условия минимума в многомерной задаче
безусловной оптимизации.