
Методы оптимизации
..pdf
181
6.6 Метод проекции градиента
Существуют две разновидности метода проекции градиента (МПГ) – для решения задач с линейными и нелинейными ограничениями [1, 5–6, 9–10].
6.6.1 Случай линейных ограничений
Рассмотрим ЗО при единственном линейном ограничении в виде равен-
ства
f (x) → min, |
(6.65) |
n |
|
h(x) = ∑aj xj = aT x = b. |
(6.66) |
j=1
Взаданной точке xk , в которой f (xk ) ≠ 0, делается попытка найти
направление поиска, которое бы лежало на поверхности ограничения и являлось направлением спуска. Такое направление можно получить геометрически, ортогонально проектируя вектор, противоположный f (xk ), на поверхность ограничения (см. рис. 6.8).
x2
' |
f (xk) |
S |
S |
|
S''
Линия уровня
ЦФ xk
a
– f (xk)
h(x) = a1x1 + a2x2 = b
x1
Рис. 6.8 – Метод проекции градиента
Здесь fck − проекция антиградиента на поверхность ограничений, которая приводит в допустимые точки. Действительно, α ≥ 0 точки, заданные соотношением
182
|
|
x = xk − α f k , |
(6.67) |
|
|
c |
|
удовлетворяют линейному ограничению: |
|
||
|
|
aT x = aT xk − αaT f k , |
|
|
|
c |
|
где aT xk = b, aT f k |
= 0. |
|
|
|
c |
|
|
Если a f |
, то aT x = b. |
|
|
c |
|
|
|
Это направление задает спуск, т. к. угол между векторами f k |
и − f k |
||
|
|
|
c |
больше 90° . Процесс ортогонального проектирования состоит в разложении вектора на две ортогональные компоненты: одна параллельна поверхности, заданной ограничением, вторая перпендикулярна к ней. Параллельная компонента является искомой проекцией градиента.
Пусть вектор a − нормаль к поверхности ограничения. Отметим, что из выражения aTS = 0 следует допустимость направления, задаваемого вектором S (S параллельно поверхности).
Таким образом, все векторы, перпендикулярные к поверхности ограничения, должны быть параллельны к a . Следовательно, для любого вектора S его компонента S′, перпендикулярная к поверхности ограничения, равняется значению a , умноженному на константу.
Обозначим через S′′ компоненту S , параллельную поверхности ограни-
чения. Тогда S′′ удовлетворяет соотношению |
|
|
aTS′′ = 0. |
|
(6.68) |
Таким образом, любой вектор можно представить в виде векторной сум- |
||
мы: |
|
|
S = S′ + S′′, |
|
(6.69) |
где S′ = λ a, а S′′ удовлетворяет уравнению aTS′′ = 0. |
|
|
Найдем λ . Рассмотрим скалярное произведение |
aTS . В силу |
(6.69) и |
(6.68), имеем |
|
|
aTS = aTλa + aTS′′ = λaTa, |
|
(6.70) |
откуда |
|
|
λ = (aT a)−1 aTS. |
|
(6.71) |
Из (6.69) найдем S′′ = S − S′ = S − λa . Подставим сюда (6.71), получим |
||
S′′ = S − a(aTa)−1 aTS = I − a(aTa)−1 aT |
S, |
(6.72) |
|
|
|

183 |
|
|
где I − единичная матрица, порядок которой |
согласован с |
S . Матрица |
P = I − a(aTa)−1 aT − проекционная матрица. Она |
проектирует |
вектор S на |
плоскость, задаваемую ограничением h(x). |
|
|
Отметим, что P является симметрической и положительно полуопределенной. Симметричность P очевидна. Для доказательства положительной полуопределенности рассмотрим произведение yTPy для произвольного y ≠ 0. Тогда
yTPy = yT I − a(aTa) |
−1 |
aT y = yT y − |
(yTa)(aT y) |
= |
(yT y)(aTa) |
− (yTa)2 |
||||
|
a |
T |
a |
a |
T |
a |
. |
|||
|
|
|
|
|
|
|
||||
Используя неравенство Шварца (yTa)2 ≤ (yT y) (aTa), убеждаемся, что |
||||||||||
числитель неотрицателен. |
|
|
|
|
|
|
|
|
|
|
······················ |
|
Пример 6.3 ······················ |
Вычислить проекцию вектора S = (0;1)T на поверхность, задаваемую ограничениями h(x) = 2x1 + x2 = 3 в точке (34;3
2).
Уравнение прямой, проходящей через данную точку M0 , перпендикулярно к данной плоскости, задается уравнением
x − x0 = y − y0 = z − z0 ,
A B C
где Ax + By + Cz + D = 0 − заданная плоскость, M0 (x0 , y0 ,z0 ) − заданная точка. В нашем случае точка M0 = (34,3
2). Плоскость − это прямая, т. е. A = 2, B =1, C = 0, D = −3. Таким образом, получим:
x1 − 3/ 4 = x2 − 3/ 2 , 2 1
откуда следует уравнение прямой: 2x2 = x1 + 94. Перенесем параллельно эту прямую в начало координат, получим 2x2 = x1 . В качестве нормали возьмем вектор с координатами h(x) = (2;1)T .
Проекционная матрица задается выражением:
P = I − a (aTa) |
−1 |
|
1 |
0 |
|
|
2 |
|
|
1 |
|
0,2 |
−0,4 |
|
|
aT = |
0 |
1 |
|
− |
1 |
|
|
5 |
(2 1) = |
−0,4 |
0,8 |
. |
|
|
|
|
|
|
|
|
|
|
Проекция S′′ имеет вид:

|
|
184 |
|
|
|
|
|
|
|
|
0,2 |
−0,4 |
|
|
0 |
|
−0,4 |
|
|
S′′ = P S = |
−0,4 |
0,8 |
|
|
1 |
|
= |
0,8 |
. |
|
|
|
|
|
|
x2
3
S
2S''
|
|
|
|
|
M0 |
|
S' |
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
1 |
|
|
|
|
|
|
|
|
2x1 + x2 = 3 |
||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
1 |
|
|
2 |
|
||||
|
|
|
|
|
|
|
|
|
|
|||||
|
Рис. 6.9 – Проекция вектора S на поверхность |
|||||||||||||
Проекция |
S′ = S − |
|
|
|
0 |
|
−0,4 |
|
|
0,4 |
|
. Очевидно, что S′ и S′′ |
||
S′′ = |
1 |
|
− |
|
= |
|
|
|
||||||
|
|
|
|
|
|
0,8 |
|
|
0,2 |
|
|
ортогональны, т. е.
(S′)T S′′ = (0,4 0,2) −0,4 = 0,
0,8
и S′′ перпендикулярен a :
aTS′′ = (2 1) −0,4 = 0.0,8
·····································································
Способ построения проекционной матрицы P легко распространяется на случай многих ограничений:
hk (x) = akT x = bk , k =1,2,...,m, S′ = ATλ ,
S′′ = P S = I − AT (AAT )−1 A S,
λ = (AAT )−1 AS − вектор,
186
где ak − k -й вектор ограничений. Отсюда мы видим, что λk − это множители Лагранжа, т. е. множители функции
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
L = f (x) |
− ∑hk (x)λk . |
|
|
|
|
||||||
|
|
|
|
k=1 |
|
|
|
|
|
|
|
|
Необходимое условие экстремума: |
|
|
|
|
|
|
|
|
||||
|
∂L |
= 0 f − ∑λ h = 0, |
|
|
||||||||
|
|
|
|
|||||||||
|
∂xi |
|
|
|
|
k |
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
hk |
= ak . |
|
|
|
|
|
||||
Нетрудно получить выражение для λ : |
|
|
|
|
|
|
||||||
|
|
S = S′ + S′′, |
|
( |
|
) |
|
|||||
{ |
( |
|
|
) |
−1 |
|
|
−1 A f , |
||||
AS = AATλ + AS′′ λ = |
|
AAT |
|
AS = |
|
AAT |
|
|||||
=0 |
|
|
|
|
|
|
|
|
|
|
||
т. е. |
|
|
|
|
|
|
|
|
|
|
||
|
|
λ = (AAT )−1 |
A f , |
|
|
|
(6.76) |
где (AAT )−1 существует только в том случае, если значения ak линейно незави-
симы. Если имеются линейно зависимые ограничения, их следует исключить из рассмотрения.
Алгоритм метода проекции градиента для случая линейных ограничений. Исходные данные – ЦФ, ограничения, начальная точка x0 S , точность решения по аргументу и по функции – абсолютная (εx и εy ) или относительная
(δx и δy ). Ограничения необходимо привести к виду ai x ≥ bi , i =1,2,...,m.
1.Задать номер итерации k = 0. Вычислить f (x0 ).
2.Вычислить f (xk ), gi (xk ). Если f (xk )
≤ εy , то положить x* ≈ xk и
закончить вычисления.
3.Составить матрицу A ограничений из строк, соответствующих активным ограничениям.
4.Вычислить проекционный оператор P = I − AT (AAT )−1 A в предположе-
нии, что векторы ak линейно независимы. Вычислить вектор проекции
Sk = −P f (xk ).
5. Если Sk
> εx , то перейти на шаг 6. Иначе вычислить множители Лагранжа λ по формуле

187
λ = (AAT )−1 A f (xk ).
Если все λi ≥ 0 , то положить x* ≈ xk и закончить вычисления – оптимальное решение найдено. В противном случае ограничение с наибольшим по модулю множителем Лагранжа исключить из множества активных ограничений и перейти на шаг 4.
6. |
Определить максимальную длину шага: |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
k |
|
bk |
− ak xk |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
∞, если ak S |
|
= 0 или |
|
|
|
|
|
≤ 0 |
|
|
|
|
|
|
|
|
||||||
|
|
|
ak S |
k |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
k =1,2,...,m. |
||||||
|
αmax = min |
bk − ak xk |
|
|
|
|
|
bk − ak xk |
|
|
|||||||||||||
|
|
, если a Sk ≠ 0 |
и |
> 0 |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
ak S |
k |
|
k |
|
|
|
ak S |
k |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
7. |
Решить задачу одномерного поиска параметра αk : |
|
|
|
|
|
|
|
|||||||||||||||
|
|
Φ(α) = f (xk + αSk )→ min , 0 ≤ α ≤ αmax . |
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
α |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8. |
Положить xk+1 = xk + αk Sk . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
9. |
Проверить |
близость |
к |
решению. Если |
|
|
|
xk+1 − xk |
|
|
|
≤ εx и |
|
f (xk+1 )− |
|||||||||
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− f (xk ) ≤ εy (если заданы относительные погрешности, то xk+1 − xk
xk+1
≤ δx ,
f (xk+1 )− f (xk ) f (xk+1 ) ≤ δy ), положить x* ≈ xk+1 и закончить вычисления. Иначе выполнить присваивание k = k +1 и вернуться на шаг 2.
·····························································
Мы рассмотрели алгоритм, в котором используются линейные
равенства. Но его можно легко распространить на неравенства, используя либо дополнительные переменные, либо активные ограничения, что предпочтительнее, т. к. второй способ позволяет уменьшить размерность.
·····························································
При использовании второго способа с помощью получаемой по формуле (6.73) оценки множителей Лагранжа осуществляется поочередное исключение ограничений из множества активных ограничений. Модификация выглядит следующим образом. В заданной точке xk для определения активного множества проверяются ограничения в виде неравенств: aTj x ≥ bj , j =1,2,...,m.

188
6.6.2 Случай нелинейных ограничений
Один из подходов к решению ЗНП состоит в такой модификации градиентных методов безусловной минимизации, чтобы в процессе построения последовательных приближений к точке минимума учитывались ограничения на допустимое множество S [7].
Рассмотрим ЗНП:
f (x) → min,
gi (x) ≤ 0, i =1,2,...,m, x S Rn,
где S − выпуклое замкнутое множество, f (x) − выпуклая дифференцируемая
на множестве S функция.
На каждой итерации метода предусмотрена процедура возврата очередного приближения градиентного спуска
xk+1 = xk − αk f (xk )
на допустимое множество S , если xk+1 S . Такой возврат проводится посредством проектирования xk+1 на S , т. е. замены xk+1 на ближайшую точку множества S .
·····························································
Пусть заданы замкнутое множество S Rn и точка z Rn . Точка zS = PS (z) называется проекцией точки z на множество S ,
если ρ(zS , z) = minρ(x, z), где ρ(x, y) = x − y − расстояние между
x S
точкой x и точкой y в пространстве Rn .
·····························································
Ясно, что для точки z S проекция PS (z) совпадает с точкой z.
Таким образом, в методе проекции градиента последовательные прибли-
жения xk к точке минимума x* целевой функции f (x) |
на множестве S |
вычис- |
|||||||||
ляются по формулам |
|
|
|
|
|
|
|
|
|
|
|
|
k+1 |
|
k |
k |
f (x |
k |
|
|
0 |
|
|
x |
|
= PS x |
|
− α |
|
) |
, k = 0,1,..., x |
|
S. |
(6.77) |
В зависимости от способа вычисления αk , различают несколько вариантов МПГ (ниже приводятся два наиболее распространенных):
1) αk находятся как и в методе наискорейшего спуска безусловной минимизации, т. е.

189
Φ(α) = f (xk − α f (xk ))→ min;α
2)в предположении, что f (x) удовлетворяет на множестве S условию
Липшица, т. е. |
|
f (x′) − f (x′′) ≤ Λ x′ − x′′ |
(6.78) |
для x′,x′′ S , полагают αk ≡ α , k = 0,1,..., где α − произвольное число из интервала (0,2Λ]. Если известна минимальная константа Липшица Λ из выражения (6.78), то выбирается αk =1
Λ .
Алгоритм метода проекции градиента для случая нелинейных ограничений. Исходные данные – ЦФ, ограничения, начальная точка x0 S , точность решения по аргументу и по функции – абсолютная (εx и εy ) или относительная
(δx и δy ).
1.Задать номер итерации k = 0. Вычислить f (x0 ).
2.Вычислить f (xk ). Если f (xk )
≤ εy , то положить x* ≈ xk и закон-
чить вычисления.
3. Найти αk , представляющее собой решение задачи при
Φ(α) = f (xk − α f (xk )) |
→ min, |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
α |
|
|
|
|
|
|
|
либо из соотношения (6.78), т. е. αk (0,2 Λ], например, αk |
=1 Λ . |
||||||||||||||||
4. Вычислить следующее приближение по формуле (6.77): |
|||||||||||||||||
|
k+1 |
|
k |
k |
f (x |
k |
|
|
|
|
|
|
|
|
|
||
x |
|
= PS x |
|
− α |
|
) . |
|
|
|
|
|
|
|
||||
5. Проверить близость |
к решению. Если |
|
|
xk+1 − xk |
|
|
|
|
≤ εx и |
|
f (xk+1 )− |
||||||
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− f (xk ) ≤ εy (если заданы относительные погрешности, то xk+1 − xk
xk+1
≤ δx , f (xk+1 )− f (xk )
f (xk+1 ) ≤ δy ), положить x* ≈ xk+1 и закончить вычисления.
Иначе выполнить присваивание k = k +1 и вернуться на шаг 2.
···························································
|
|
Определение проекции PS (z) для точки z S |
является само- |
|||||||||
|
|
|||||||||||
|
|
стоятельной ЗНП: |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
f% (x) = |
|
|
|
x − z |
|
|
|
2 |
= ∑(xj − zj )2 → min, |
(6.79) |
|
|
|
|
j=1

190
решение которой может вызвать затруднения. Решить ее можно, например, с помощью метода множителей Лагранжа.
···························································
Рассмотрим задачу проектирования, которая решается в явном виде.
······················ |
|
|
|
|
Пример 6.4 ························ |
||||
Найдем проекцию P |
(z) точки z Rn на множество S , где |
||||||||
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
n |
|
|
S = x Rn |
|
|
|
x |
|
= ∑x2j |
≤ R02 – |
||
|
|
|
|
|
|
|
|
j=1 |
|
|
|
|
|
|
|
|
|
|
шар радиуса R в пространстве Rn с центром в начале координат. |
||||||
0 |
|
|
|
|
|
|
Решение. Запишем задачу поиска проекции как ЗНП: |
|
|||||
|
n |
|
|
)2 → min, |
|
|
f (x) = ∑(xj |
− zj |
|
||||
|
j=1 |
|
|
|
|
(6.80) |
n |
|
|
|
|
|
|
∑x2j |
≤ R02. |
|
|
|
|
|
|
|
|
|
|
|
|
j=1 |
|
|
|
|
|
|
Рассмотрим возможные частные случаи: |
|
|
||||
n |
|
|
|
|
|
|
1) пусть z S , т. е. ∑z2j ≤ R02 . Тогда PS (z) = z ; |
|
|||||
j=1 |
|
|
|
|
|
|
n |
|
|
|
|
|
|
2) пусть z S , т. е. ∑z2j |
= R2 > R02 . Запишем неравенство ЗНП (6.80) в |
|||||
j+1 |
|
|
|
|
|
|
виде равенства, добавив новую переменную |
x |
= y2 ≥ 0. В результате получим |
||||
|
|
|
|
n+1 |
|
|
задачу на условный экстремум с ограничением-равенством: |
|
|||||
|
n |
|
− zj )2 → min, |
|
||
f (x) |
= ∑(xj |
|
||||
|
j=1 |
|
|
|
|
|
h(x, y) = ∑ x2 |
+ y2 − R2 |
= 0. |
|
|||
|
|
j |
|
0 |
|
|
Составляем функцию Лагранжа и минимизируем ее: |
|
|||||
n |
|
2 |
|
n |
|
|
L(x, y,λ) = ∑(xj − zj ) |
|
+ λ |
∑x2j + y2 − R02 |
|
||
j=1 |
|
|
|
j=1 |
|
|