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

Исследование операций и методы оптимизации

.pdf
Скачиваний:
381
Добавлен:
05.06.2015
Размер:
2 Mб
Скачать

N2 . Тогда для задачи минимизации для заданного ε в точке x необходимоопределитьвеличинуизусловия

 

,

где

, g0(X)-– градиент F(X).

 

Более подробно алгоритм решение и примеры можно найти в [7, 16].

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

На каждой итерации этого метода предусмотрена процедура возврата очередного приближения градиентного спуска

на допустимое множество U , если . Такой возврат производится

посредством проектирования на U, т.е. замены на ближай-

шую точку множества U.

Определение. Пусть заданы замкнутое множество и точка

. Точка называется проекцией точки z на множество U, если

где – расстояние междуточкамиx иy впространствеEn . Очевидно, для точкипроекциясовпадает с z.

Таким образом, в методе проекции градиента последовательные приближения x(k) к точке минимума X* целевой функции f(x) на множестве U вычисляются по формулам

, . (6.20)

Рис. 43

118

В зависимости от способа вычисления ak из (6.20) различают несколько вариантов метода проекции градиента, самыми распространенными из которых являются следующие.

1) ak находится, как в методе наискорейшего спуска безусловной минимизации, т.е. , где В

предположении, что градиент f (k) целевой функции удовлетворяет на множестве U условию Липшица, т.е.

(6.21)

для всех , полагают где α - произвольное

число из интервала (0;2/L). Если известна минимальная константа Липшица L из (6.21), то выбирают, как правило, α=1/L.

Вычисления по формуле (6.20) завершаются при выполнении одного из неравенств или , где величина оп-

ределяет

точность

решения

задачи.

Окончательно

полагают

 

 

.

 

 

 

Отметим, что определение проекции

для точки

является

самостоятельной задачей нелинейного программирования:

 

 

 

 

 

,

(6.22)

решение которой может вызвать затруднения.

В частном случае, когда множество U определяется лишь линейными ограничениями, задача (6.22) представляет собой задачу квадратичного программирования. Ее решение может быть найдено за конечное число шагов, как описано выше.

X3

Z

 

PU(Z)

X1

X2

Рис. 44

Особый интерес при использовании метода проекции градиента представляют такие множества U, для которых задача проектирования (6.22) решается в явном виде.(U - шар, параллелепипед и т.д.)

119

Иногда, как в примере с шаром, нахождение кратчайшего расстояния приводит к задаче на условный экстремум

Ф(X ,λ)= n (X j Z j )2 +λn (X j

 

R0 )2 ;

Ф

= 0;

Ф

= 0

 

 

 

 

 

j=1

 

 

 

 

 

j=1

 

 

X j

λj

В случае с шаром:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

(Z U )

 

 

 

 

 

 

Z, Z 2j R02 ;

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

 

 

 

 

P

(Z )=

 

R0 Z

 

 

n

2

2

; (Z U )

 

 

 

 

U

 

 

 

 

 

,

Z j

> R0

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z 2

 

 

j=1

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если область допустимых решений U - параллелепипед, то проекция точки определяется очень просто. Пусть область U определяется условиями: a1<x1<b1

a2<x2<b2

a3<x3<b3

Рис. 45

Если только одна из координат X j [aj ,bj ] , а остальные нет, то проекцией на параллелепипед будет точка на ребре (т. А).

Если две из координат X j принадлежат области X j [aj ,bj ] ,

Xk [ak ,bk ] , то проекцией на параллелепипед будет точка на грани (т. В).

Если все три координаты X1 [a1,b1 ], X2 [a2 ,b2 ], X3 [a3 ,b3 ], то проекцией на параллелепипед будет точка в вершине (т. С).

120

6.11. Методы штрафных и барьерных функций

Идея методов штрафных и барьерных функций заключается в том, что исходная задача НЛП с ограничениями заменяется последовательностью задач безусловной оптимизации (т.е. без ограничений) за счет введения новой функции, учитывающей невыполнение ограничений в виде «штрафа»:

С(X)=F(X)+ P(X),

Где F(X) – целевая функция, P(X) – функция, равная в идеале F(X) в области допустимых решений U и равная бесконечности вне этой области. Практически вместо P(X) подбирается последовательность функций PK(X), зависящих от к, так, чтобы lim PK(X)=P(X), при кÆ.

На рис.a) и b) показано решение задачи F(x)Æ min, a<x<b.

В методах штрафных функций последовательность точек стремится к решению в допустимой области извне и функции штрафа изменяются вне области U, поэтому они называют методами с внешней точкой (см. рис. a). В методах барьерных функций функция P(X) аппроксимируется барьерными функциями изнутри области (для них ограничения являются барьером), поэтому эти методы называются методами с внутренней точкой.(см. рис. b).

Рассмотрим метод штрафных функций для задачи НЛП

F(X) Æ min, XєU. Заменим эту задачу последовательностью задач безусловной оптимизации

Ck(X)=F(X) + Pk(X) Æ min, k=1,2,3,…,

(6.23)

Где Pk(X) – функции, которые с ростом k во все большей степени учитывают ограничения, определяемые допустимым множеством U исходной задачи. В методе штрафных функций функции Pk(X) подбираются так, чтобы при больших k функция Сk(X) мало отличалась от F(X) при X U и быстро возрастала при удалении точки от допустимого множества U. Последовательностью штрафных функций множества U называется последовательность функций {Pk(X)}, обладающих свойством

a) b)

Рис. 46

121

0, еслиX U , lim Pk (X ) = +∞, еслиХ U.

Рассмотрим один из вариантов метода штрафных функций приближен-

ного решения задачи нелинейного программирования

 

F(X) Æ min

(6.24)

gi (X ) = 0,i =1,...,l

gi (X ) 0,i = l +1,...,m

считая, что функции F(X), gi(X), i=1,…,m , заданы во всем пространстве En.

Положим

 

 

Pk(X)= kp(X), k=1,2,3,…

(6.25)

где

 

 

p(X)= Σ gi2(x)+ Σ [gi+(x)]2,

 

i=1 i=l+1

 

 

0,

gi (X ) 0,

 

gi* (X ) =

 

 

gi(X ), если gi (X ) > 0.

 

если

Равенство (6.25) определяет последовательность штрафных функций допустимого множества исходной задачи (проверьте!).

При определенных условиях последовательность решений задач безусловной минимизации (6.23), (6.25) сходится к решению x* задачи (6.24), поэтому для достаточно больших k полагают x*=x(k), F*=F(X(k)).

Критерием достижения требуемой точности решения задачи (6.24) может служить неравенство

||X(k)-X(k/2)||≤ε,

где ε>0 – число, характеризующее точность, k – четное число.

Если в задаче (6.24) F(X) – выпуклая квадратичная функция, а gi(X), i=1, … , m, - линейные функции, то точное решение вспомогательной задачи (6.23) можно найти из системы линейных уравнений dF(X)/dXj=0, j=1, … , n, определяющих стационарную точку функции Fk(X).

Пример.

Минимизировать x1x2 при ограничениях

122

g1 ≡ +x1 + x22 1 0, g2 ≡ −x1 x2 0.

В качестве штрафной функции применим следующее

pi (gi ) = [(gi +

 

gi

 

) / 2]2 ,

p(X ) = pi [gi (x)] и Pk(X)=k p(X ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(+x + x2 1 +

+ x + x2 1

)

2

 

(x

x

 

+

 

x

x

 

 

)

2

 

 

 

 

 

1

2

 

1

2

 

 

 

 

 

 

 

 

Ck (X ) = −x1 x2

+ k

 

 

 

 

 

 

 

 

+ k

1

 

2

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

будет функцией, минимизируемой методом внешней точки.

Рис. 47

Значение x(k) для примера

Таблица 39

 

k

x1 (k)

x2 (k)

k1

1,0

0,89

0,64

k2

2,0

0,77

0,62

k3

3,0

0,73

0,61

k4

10,0

0,67

0,58

оптимум

 

2 3

3 3

 

 

 

 

123

В таблице приведены значения x(k) для четырёх различных значений k.

Из рисунка видно, что при возрастании k они приближаются к оптимуму из недопустимой области.

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

Метод барьерных функций.

В методе барьерных функций исходная задача НЛП также сводится к последовательности задач безусловной минимизации (6.23), но функции Pk(X) выбираются таким образом, чтобы при больших k функции Ck(X) из (6.23) мало отличались от F(X) во внутренних точках x допустимого множества U. В то же время при приближении точки X U к границе множества U эти функции должны неограниченно возрастать.

Определение. Пусть множество U εn задано. Последовательность функций {Pk (X )}, определенных во всех внутренних точках множества U,

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

1. limk→∞ Pk (X ) = 0 для любой фиксированной внутренней точки x множества U.

2. limr→∞ Pk (X (r ) ) = +∞ для любой последовательности {X (r) }внутрен-

них точек множества U, сходящейся к какой либо граничной точке этого множества.

Рассмотрим некоторые варианты метода барьерных функций решения следующей задачи нелинейного программирования:

F(X) Æ min

Отформ

ширине, 14,2 пт,

нумеров 1 + Стил

3, … + Н

Выравни

Выровня

Табуляц Отступ: Поз.табу по левом

gi (X ) 0,i =1...,m.

(6.26)

Положим

 

 

 

 

 

 

P (X ) =

1

p(X ), k=1, 2…,

(6.27)

 

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

где

 

 

 

 

 

 

 

p(X ) = im=1

 

gi( x)

 

k , k >0

(6.28)

 

 

или

 

 

 

 

 

 

 

124

 

 

 

 

 

 

 

p(X ) = −im=1ln[gi( x) ]

(6.29)

Выражения (6.27) – (6.29) определяют последовательности барьерных функций допустимого множества U задачи (6.26) (проверяйте!).

Пусть X(k) – решение задачи безусловной минимизации (6.23), где функция Pk(X) определена равенствами (6.27), (6.28) или (6.29). Полагая

X * X (k ) , F* F(X (k ) ) для достаточно большого k, находим приближен-

ное решение задачи нелинейного программирования (6.24) методом барьерных функций. Для контроля достигнутой точности решения можно использовать критерий (6.4).

Пример. Минимизировать X1 + X 2 при ограничениях

g1 = +X12 X 2 0,

g2 = −X1 0 .

В качестве функции p(gi) возьмём логарифмическую функцию. Обозна-

m

чим 1/k=r. Тогда Pr(X))=rp(X), p(X )= −ln(gi (X )) .

n=1

C(X ,r) = X1 + X2 r ln(X12 + X2 ) r ln X1 .

Этот простой пример можно решать аналитически, учитывая, что С(X, r) дважды дифференцируема. Необходимые условия первого порядка принимают вид:

1 +

 

r(2X1 )

 

 

r

 

= 0 ,

 

 

 

X12 + X

2

X

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

r

 

= 0 .

 

 

 

 

 

 

 

 

 

X 12 + X 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решая эту систему, получаем

 

 

X1 (r) =

1± 1+8r

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

Поскольку значение X1 (r)

должно быть положительно, будем рассмат-

ривать лишь один корень

X1 (r) =

1

+ 1+8r . Тогда

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

125

X 2 (r) =

(1 + 1 + 8r )2

+ r .

16

 

 

Эти значения X1(r) и X2(r) удовлетворяют достаточным условиям и поэтому дают локальный минимум задачи.

Втаблице приведены вычисленные значения X(r) для четырёх различных

r. Этот пример изображён на рисунке. В пределе при rk0 минимизирующие точки приближаются к решению (0,0).

Значения r и x(r) из примера

Таблица 40

 

r

X1 (r)

X 2 (r)

r1

1,000

0,500

1,250

r2

0,500

0,309

0,595

r3

0,250

0,183

0,283

r4

0,100

0,085

0,107

В этой задаче при каждом значении r существует только один локальный минимум. Это происходит так потому, что исходная задача имела единственное решение. Оказывается, что в задачах со многими локальными минимумами (при выполнении вышеупомянутого условия регулярности Слейтера) существует последовательность безусловных локальных минимумов, сходящаяся к каждому из условных локальных минимумов [24,1,12,22].

Рис. 48

126

На рисунке показан пример решения задачи с помощью безусловной логарифмической функции. Допустимая область заштрихована.

6.12. Метод скользящего допуска

Метод скользящего допуска применяется при общей постановке задачи нелинейного программирования:

Минимизировать F(X ), Х Еn при ограничениях

hi (X ) = 0

i =1,...., m

gi (X ) 0

i = m +1,..., p

Где функции F(X ), hi (X ), gi (X ) могут быть как линейные, так и не-

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

точки {Х}.

В качестве метода получения последовательности точек, улучшающих значение целевой функции, используется метод Нелдера-Мида (см. п.6.4). При такой стратегии задачу можно заменить более простой, но имеющей то

же самое решение задачей минимизации F(X ), Х Еn при ограничениях

Ф(к) Т(Х) 0 ,

где Ф(к) - значение критерия скользящего допуска на к-м этапе;

Т(Х) - мера степени нарушения ограничений рассматриваемой задачи.

Вкачестве Ф выбирают положительно определенную убывающую функцию координат вершин деформируемого многогранника Нелдера и Мида.

Функция Ф служит критерием допуска для нарушения ограничений задачи и прекращения процедуры оптимизации.

Варианты выбора Ф многочисленны.

Например:

127