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

Методы оптимизации

..pdf
Скачиваний:
47
Добавлен:
05.02.2023
Размер:
2.15 Mб
Скачать

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;32).

Уравнение прямой, проходящей через данную точку M0 , перпендикулярно к данной плоскости, задается уравнением

x x0 = y y0 = z z0 ,

A B C

где Ax + By + Cz + D = 0 заданная плоскость, M0 (x0 , y0 ,z0 ) заданная точка. В нашем случае точка M0 = (34,32). Плоскость это прямая, т. е. 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 вектор,

185

где A матрица со строками akT , т. е.

 

a11

a12

...

a1n

 

a

a

...

a

A =

21

22

 

2n

.............................

 

 

 

...

 

am1

am2

amn

где ai1,ai2 ,...ain коэффициенты i -го ограничения.

,

Пусть S′′ = −P f (xk ) направление спуска. Если S′′ = 0, то точка xk

удовлетворяет необходимым условиям Лагранжа. Вектор множителей Лагранжа задается выражением:

 

λ = (AAT )1

A f (x).

 

(6.73)

Первое утверждение следует из того, что матрица

P симметрическая и

положительно полуопределена. Действительно, имеем

 

xk+1 = xk − αP f (xk ), α ≥ 0;

 

f (xk+1 ) = f (xk − αP f (xk ))= f (xk )− α f T (xk+1 ) P f (xk ).

Так как f T (xk+1 ) P f (xk ) 0 ,

α ≥ 0, то

f k+1 f k , что и требовалось

доказать.

 

 

 

 

 

Имеем S′′ = −P f , т. е. S′′

это проекция вектора f на поверхность

ограничений. Поэтому, если S′′ = 0, значит, градиент f

перпендикулярен по-

верхности ограничений.

 

 

 

 

 

Рассмотрим второе

свойство. Так как S′′ = −P f , то произведение

f TS′′ = − f T P f 0.

Если

S′′ = −P f = 0 ,

то

f S′′ , т. е. f

перпендикулярен поверхности ограничений. Тогда из формулы

 

S = S′ + S′′ = ATλ + S′′ = 0

 

следует

 

 

 

 

 

 

 

f = ATλ.

 

(6.74)

Так как строками матрицы A являются векторы коэффициентов в линейных ограничениях, то (6.74) представляет собой другую форму записи необходимого условия Лагранжа:

m

 

f λkak = 0,

(6.75)

k=1

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