Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Загребаев Методы матпрограммирования 2007

.pdf
Скачиваний:
124
Добавлен:
16.08.2013
Размер:
10.97 Mб
Скачать

После определения

λk вычислить xk +1 = xk

+ λk Sk ,

положить

εk +1 = εk

и прейти к шагу 1.

 

 

 

3. Если 0 < σk < εk , то положить

xk +1 = xk ,

εk +1 = γεk , где γ

удовлетворяет условию 0 < γ <1, и перейти к шагу 1.

 

4. Если σk = 0 ,

то вычислить σ*k , решив вспомогательную за-

дачу с ε = 0 . Если σ*k

= 0 , то процесс поиска точки минимума за-

кончен

( x* = xk ).

В

противном

случае положить

xk +1 = xk ,

εk +1 = γεk и перейти к шагу 1.

 

 

 

Замечание. Условие σ*k

= 0 является необходимым и достаточным условием

оптимальности точки x , это доказывается с помощью специальной теоремы.

3.4.4.Метод проекции градиента

Вслучае задач безусловной минимизации весьма распространенным является метод градиентного спуска. Однако для задач с ограничениями направление вдоль антиградиента необязательно является возможным. В случае, когда множество X выпукло, для

отыскания направления в точке xk напрашивается мысль спроек-

тировать точку yk = xk − νk f (xk ) ( νk – некоторое фиксирован-

ное положительное число) на множество X и в качестве направле-

ния спуска взять Sk = pk xk , где pk – проекция точки yk на до-

пустимое множество X (рис. 3.30). После этого надо осуществлять

спуск вдоль полученного направления. Выпуклость множества X

гарантирует,

что такое направление Sk является возможным. Про-

екция точки

y k на множество – ближайшая к y k точка этого

множества.

 

 

Итак, метод проекции градиента состоит в вычислении проек-

ции pk

точки yk = xk − νk f (xk )

на множество X

и в выборе ша-

га

λk

таким

образом, чтобы

в точке xk +1 = xk

− λk Sk , где

Sk

= pk xk ,

выполнялось условие движения

к

минимуму

( f (xk +1 ) < f (xk ) ).

 

 

 

231

 

 

f (

 

)

 

k

x

y

g(x) = 0

pk Sk

xk

X

Рис. 3.30. Определение направления в методе проекции градиента

В зависимости от способа выбора шага λk можно получить раз-

личные варианты метода проекции градиента (можно использовать одномерную минимизацию и т.д.).

Условием прекращения процесса является условие pk = xk , которое является необходимым и достаточным условием того, что точка xk – точка минимума (доказывается с помощью специальной теоремы).

Например, pk = xk , если f ( xk ) = 0 , так как тогда yk = xk , и нет перемещения из точки xk . Аналогичная ситуация возникает,

если xk лежит на границе и градиент ортогонален границе допустимой области (рис. 3.31).

f ( x )

Рис. 3.31. Направление градиента совпадает с направлением градиента к границе допустимой области

Для того, чтобы найти проекцию точки yk на множество X , необходимо решить задачу минимизации квадратичной функции

232

yk x 2 на множестве X (т.е. x X ) – тем самым будет найдена ближайшая к yk точка множества X . В общем случае эта задача

того же порядка сложности, что и исходная. Поэтому методом проекции градиента обычно пользуются лишь в тех случаях, когда проекция точки на множество легко определяется.

Например, когда множество X представляет собой шар или па-

раллелепипед в E n , гиперплоскость или полупространство. В этом случае задача проектирования точки решается просто и в явном виде. В частности, это имеет место, когда ограничивающие уравнения линейны.

Рассмотрим пример явного определения проекции точки на множестве X . В качестве области X будем рассматривать замк-

нутый шар радиуса r с центром в точке O в пространстве E n . Как известно, уравнение шара имеет вид:

n

xi2 = r 2 ;

i=1

тогда допустимая область X описывается неравенством:

n

xi2 r 2 .

i=1

Пусть y – некоторая точка, для которой надо найти проекцию p на поверхность шара. Очевидно, данная задаче эквивалентна

задаче минимизации функции

φ(x) = y x 2; x X , при этом

Данную задачу можно записать в виде: найти

n

min ( yi xi )2

i=1

p= arg min φ(x) .

x X

при ограничение

n

xi2 r 2 .

i=1

233

Решение этой вспомогательной задачи находиться в явном виде:

y,

p =

 

n

 

если yi2 r 2 ;

 

i=1

 

ry

, если

n

n

yi2 > r 2 .

yi2

i=1

 

i=1

 

3.4.5. Метод проекции градиента при линейных ограничениях

Будем полагать, что ограничивающие уравнения линейны, т.е. имеют вид:

Ax b 0 ,

где A – матрица ( m ×n ); b m-мерный вектор.

Назовем гранью многогранника X (допустимой области) подпространство, определяемое любой совокупностью активных ограничений.

Предположим, что при заданном x X грань, содержащая x , определяется уравнением

gi (x) = 0, i I ,

где I ={i1 , i2 ,K, i p } , p < m .

Предположим, что любая подматрица размерности ( p ×n) мат-

рицы A имеет ранг

p , и пусть AI – подматрица, составленная из

p строк матрицы

A , соответствующих активным ограничениям.

Тогда можно предложить следующий алгоритм поиска минимума функции f (x) при линейных ограничениях.

Алгоритм (один шаг, после того как найдена точка xk X ).

1. Вычислить проекцию градиента на грань, содержащую xk по формуле

x = I n AIт (AI AIт )1 AI f (xk ) ,

234

где In – единичная матрица (n × n) . Матрица (AI AIт )1 существует, так как по условию задачи ранг матрицы AI равен числу строк в ней.

Если xk лежит внутри X , то множество I пусто, в квадратных скобках остается одна единичная матрица In и x = f (xk ) . В

этом случае данный метод оказывается обычным градиентным методом.

2. Если x 0 , то найти λдоп , такое, что λдопx определяет максимальное перемещение в направлении − ∆x , которое может быть сделано, не выходя за пределы X ; λдоп может быть найдено

путем решения задачи:

λдоп = max{λ: (xk − λ∆xk X }.

После этого найти λ* как решение задачи одномерной оптимизации:

 

 

min f (x

 

− λ∆x

 

 

λ* = arg

k

 

 

 

 

 

k

 

0≤λ≤λдоп

 

 

 

и вычислить xk +1 = xk − λ*xk .

 

 

 

Если λ* < λдоп , то совокупность

активных ограничивающих

уравнений остается без изменений.

 

 

 

Если λ* = λдоп , то граница области X будет достигнута и новое

ограничивающее

уравнение станет

 

активным. Тогда, если

g j (xk+1) =0 , j I , то надо включить в I это

j , определить новую

матрицу AI и вернуться к шагу 1.

 

 

 

Если x = 0 ,

то необходимо вычислить вектор µ (размерности

p ), исходя из соотношения

µ = ( AI AI т )1 AI f (xk ) .

Если все компоненты µi 0 , i =1, p , то xk оптимально ( xk = x* ), и процесс вычисления прекращается.

235

В противном случае исключить из AI строку, соответствующую наибольшей положительной компоненте вектора µ , и вернуться к

шагу 1.

Дело в том, что компоненты вектора µ эквивалентны множителям Лагранжа и точка xk является оптимальной точкой в том случае, когда все µi 0 .

Однако, если некоторые компоненты вектора µ положительны, то функция f (x) может уменьшаться, если перемещаться от xk в направлении уменьшения gi (x) , т.е. в направлении, где gi (x) < 0 . При этом ограничение gi (x) становится неактивным, i исключа-

ется из I .

Это можно проиллюстрировать следующим образом:

f (x )

x

 

f ( x )

x

 

Алгоритм работает так, что проекции градиентов, расположенных симметрично относительно грани, одинаковы:

f ( x )

1

g ( x ) = 0

2

− ∆ f ( x )

 

236

Следовательно, если f ( x ) 0 , то ситуация, когда x = 0 , может возникнуть в двух случаях:

вслучае 1 точка x является точкой оптимума, следовательно, вычисления необходимо прекратить;

вслучае 2, как видно из рисунка, антиградиент направлен внутрь области X , следовательно, его проектировать на грань не нужно.

Когда, согласно алгоритму, из AI будет убрана строка, соответствующая ограничению gi (x) = 0 , в формуле для проекции останется In и получится, что x = f ( x ) , т.е. направление поиска будет направлено внутрь области X в сторону убывания функции.

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

Идея метода условного градиента состоит в выборе направления спуска на основе линеаризации функции f (x) относительно теку-

щей точки xk . В результате линеаризации получаем линейную функцию f L (x) вида:

f L (x) = f (xk ) + ∆f (xk )(x xk ) .

Пусть yk – точка, обеспечивающая минимум функции f L (x) на множестве X . Тогда направление Sk поиска экстремума исходной функции f (x) на множестве X можно определить следующим образом:

Sk = yk xk ,

при этом основная итерационная формула имеет стандартный вид:

xk +1 = xk + λk Sk .

Таким образом, для определения направления Sk необходимо решить задачу минимизации линейной функции f L (x) на множе-

стве X . В общем случае эта задача того же порядка сложности, что и исходная. Поэтому метод условного градиента применяют лишь тогда, когда вспомогательная задача решается просто. Например,

237

если множество X представляет собой шар, или параллелепипед. В этом случае решение задачи легко найти в явном виде.

Если ограничения, образующие множество X линейны, то рассматриваемая задача превращается в задачу линейного программирования, которая легко может быть решена симплекс-методом.

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

Существуют различные способы выбора шага λk в методе условного градиента. Рассмотрим некоторые из них.

1. Величина шага λk может выбираться из условий: 0 ≤ λk 1;

ϕ(λk ) = min f (xk + λSk ).

λ

Очевидно, такая задача может быть решена каким-либо методом одномерной минимизации.

2.Можно задавать λk =1 и проверять условие монотонного

убывания функции f (x) при переходе от точки xk к точке xk +1 , а именно, f (xk +1 ) < f (xk ) . Если это условие не выполняется, то необходимо дробить шаг λk до тех пор, пока не выполнится условие монотонности.

3.Величина шага определяется из условия λk = αi0 , где i0

минимальный номер среди номеров i 0 , удовлетворяющих условию:

f (xk ) f (xk + αi Sk ) ≥ αi ε η(xk ) .

Здесь α, ε – параметры метода, 0 < α <1; 0 < ε <1. Величина η(xk ) является минимумом линейной функции f L (x) , т.е.

η(xk ) = min f L (x) = min < f (xk ), (x xk ) > .

x X x X

238

Необходимо отметить, что величина η(xk ) в условии выбора параметра шага берется по модулю, так как η(xk ) 0 . Это следует

из того,

что

при x = xk вспомогательная линейная функция

f L (x)

 

x=xk

= 0 ,

следовательно, значение η(xk ) , обеспечивающее

 

 

 

минимальное значение f L (x) меньше, или равно нулю.

Существуют теоремы, доказывающие сходимость метода условного градиента при любом из перечисленных способов выбора шага.

Процесс вычислений заканчивается в точке xk , если η(xk ) = 0 . Это может случиться, например, если f (xk ) = 0 . Из этого условия следует, что если

min < f (x k ), x xk >= 0 ,

 

x X

 

то для всех x X будет выполняться:

 

< f (x k ), x xk > ≥ 0 .

(*)

Последнее, очевидно, является необходимым

и достаточным

(для выпуклой функции достаточным) условием того, чтобы точка xk являлась минимумом функции f (x) на множестве X (тоже

выпуклом).

Это условие является обобщением условия стационарностиf (x k ) = 0 для задачи минимизации функций на множествах.

Проиллюстрируем условие < f (x k ), x xk > ≥ 0 графически

(рис. 3.32).

x

x xk

f (x k )

Рис. 3.32. Графическая интерпретация скалярного произведения

< f (x k ), x xk > ≥ 0

239

Оно означает, что угол между градиентом в точке xk и любым

вектором x xk

для всех точек x X должен быть острым. Одна-

ко, если точка

xk лежит внутри области X , то этого не может

быть. Следовательно, условие (*) справедливо, только в случае:

f (x k ) = 0 .

Если точка xk лежит на границе области, то минимум в этой

точке достигается лишь тогда, когда антиградиент перпендикулярен границе и направлен из области X (рис. 3.33).

xk

f (xk )

 

 

 

 

xk

 

 

 

 

 

 

x

x

 

 

 

 

f (xk )

 

 

 

 

 

 

 

 

f (xk )

а)

 

 

б)

Рис. 3.33. Определение оптимального направления в случае,

 

когда xk

лежит на границе области

В этом случае

углы

между градиентом и любым вектором

(x xk ) будут острыми (рис. 3.33, а).

Если антиградиент отклоняется от данного направления, то найдутся точки x , для которых эти углы будут тупыми (рис. 3.33, б).

Геометрический смысл метода условного градиента поясняет рис. 3.34.

Рассмотрим пример использования метода условного градиента, который решается в явном виде.

240