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