
Лабы / Разработки / Labs6
.rtfЛабораторная работа 6
Градиентные методы минимизации функций в задачах с ограничениями
Рассматривается обобщение градиентных методов минимизации на задачи выпуклого программирования:
(*)
т.е.
предполагается, что функции
выпуклы и дифференцируемы. Мы также
будем дополнительно предполагать, что
ограничения
являются
линейными.
Метод условного градиента
В
этом методе решения задачи выпуклого
программирования строится итерационный
процесс, на каждом шаге которого решается
вспомогательная задача минимизации
линейной
функции на допустимом множестве U
и одномерная задача минимизации. Пусть
––
очередное приближение к решению. Если
, то полагаем
.
В противном случае функция
представима в виде
,
и линейная функция
является
приближением с точностью до
в некоторой окрестности
.
Вспомогательная
задача
(**)
относится
к классу задач линейного программирования
поскольку
линейные. Для ее решения следует
воспользоваться встроенной в MATLAB
функцией
linprog
(linprog(gradfxk,A,b,[],[],xl,xr)),
которая выполнит минимизацию
при условиях
(написанные
неравенства для векторов означают
неравенства соответствующих компонент
векторов). Следующее приближение
к точке минимума
находится по формуле
,
где
решение (**), а
.
Понятно, что
,
т.к.
U
—
выпуклое.
После этого проверяется условие
.
(***)
Если
оно выполнено, то
,
если не выполнено, то выбирают
и проверяют неравенство (***). Условие
окончания
.
Здесь величина
определяет точность решения задачи.
Полагая
,
найдем решение с заданной точностью.
Метод проекции градиента
На
каждой итерации этого метода предусмотрена
процедура возврата очередного приближения
градиентного спуска
на допустимое множество, если
.
Такой возврат производится проектированием
точки
на множество
.
Проекцией
точки xRn
на
замкнутое множество U
Rn
называется
ближайшая к x
точка
U,
т.е.
.
Будем
обозначать
.
Необходимым
и достаточным условием того, чтобы
была решением задачи (*) является равенство
для
всех
.
Таким
образом, в методе проекции градиента
приближение
к точке
вычисляется по формуле
k=0,1,…,
(****)
где
выбирается согласно методу градиентного
спуска (наискорейшего спуска).
В
случае линейных ограничений
проекция x
находится следующим образом: