Метод условного градиента

Существо метода условного градиента состоит в том, что, если известна некоторая точка xkÎD, то направление возрастания целевой функции может задаваться некоторой внутренней или крайней точкой xÎD, которая ищется в области D в направлении, задаваемом градиентом Ñf(x). Действительно, пусть hk=1,тогда

x = xk + r(xk), или отсюда r(xk) = x - xk.

С другой стороны из определения (2.2) дифференцируемости функции в точке xk

f(x) = f(xk) + Ñтf(xk)(x - xk) + o(║x - xk║)

или

f(x) - f(xk) > Ñтf(xk)(x - xk).

Отсюда приращение целевой функции f(xk*) - f(xk) при переходе к следующей точке xk* можно максимизировать на основе специального выбора точки, производимого в результате решения следующей задачи


xk* = arg max Ñтf(xk)(x - xk), (7)

xÎD

Таким образом, xk* задает направление максимального приращения целевой функции из точки xk.

Если xk* - граничная точка D, то следующую точку, точку xk+1 целесообразно искать на отрезке, соединяющем xk и xk*, т.е.

xk+1 = hk xk* + (1-hk) xk, где 0 ≤ hk ≤ 1,

или

xk+1 = xk + hk (xk* - xk) = xk + hk r(xk), где 0 ≤ hk ≤ 1.

Величину шага hk следует выбирать из условия максимизации значения целевой функции в точке xk+1, т.е.

hk = m a x f(xk+h(xk* - xk)) (8)

0≤h≤1

Последняя задача представляет собой задачу одномерной оптимизации.

Основные трудности использования метода условного градиента при решении задач нелинейного программирования состоят в решении задачи (7), и, в общем говоря, в ряде случаев задача оптимизации функции градиента на D может быть сравнима по трудоемкости с исходной задачей. Однако для некоторых классов задач, в частности, для задач квадратичного программирования, метод условного градиента дает существенный выигрыш.