Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мотс 2.pdf
Скачиваний:
66
Добавлен:
24.02.2016
Размер:
1.96 Mб
Скачать

Следует заметить, что от итерации к итерации значение функции цели уменьшается. Истинный экстремум x* =[1,5; 1,5] может быть достигнут на сле-

дующем шаге. С графической точки зрения x* – это точка касания одной из линий уровня со стороной ВС ОДЗП.

6.2. Метод отсекающих плоскостей Кэлли

Метод ориентирован на решение задач оптимизации с линейной функцией цели F(x) и нелинейными ограничениями, и позволяет свести исходную нели-

нейную задачу к последовательности линейных подзадач, полученных в результате линеаризации ограничений.

Рассмотрим следующую задачу МП:

max{F(x) = cT x

g

 

(x) 0, j =

 

; x 0, i =

 

},

(6.4)

j

1, m

1, n

 

 

 

 

i

 

где g j (x) – выпуклые функции.

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

X гиперкуб,

т.е. множество

Z 0 , задаваемое

следующими

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

Z 0 ={x

 

a

x

b ,i =

 

}; при этом выбор a

и b

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

чтобы X Z 0 .

 

1, n

 

 

i

i

i

i

i

 

 

Это достаточно грубая, но наиболее простая аппроксимация.

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

Z 0 ={x a1 x1 b1;a2 x2 b2}.

Используя это приближение в качестве ограничения, получим следующую первую подзадачу ЛП:

max{F(x) = cT x

x Z 0}.

(6.5)

Пусть оптимальное решение задачи (6.5) x1* . С графической точки зрения – это одна из вершин области Z 0 (рис. 6.2). Наиболее вероятно, что истинный оп-

тимум задачи (6.4) расположен в наиболее близкой к x1* части X , поэтому именно эту часть исследуют для получения улучшенной аппроксимации.

100

x2

 

 

 

 

 

 

b2

x1*

 

 

 

 

 

Z0

 

 

 

 

 

 

x3*

x2* ~

 

 

 

 

 

X

 

 

1*

)

 

g p1(x, x

 

 

F1

~

(x, x

2*

)

g p2

 

 

a2

a1

x1

b1

 

Рис. 6.2. Линейная аппроксимация допустимой области

В окрестности точки x1* строятся отсекающие плоскости при помощи локальной линеаризации нарушаемых ограничений. Линеаризация любого, нару-

шающегося в точке x1* ограничения g j (x) 0, осуществляется в соответствии с выражением

~

1*

) g j (x

1*

) + g j (x

1*

)

T

[x x

1*

].

(6.6)

g j (x, x

 

 

 

 

 

Келли предложил осуществлять на каждой итерации линеаризацию только одного ограничения g p (x) , которое нарушается в рассматриваемой точке наибо-

лее сильно. Если в условии задачи g j (x) 0 , то наиболее нарушаемое ограничение g p (x) определится из условия

g p (x1* ) = max[g j (x1* ),0], j =1,m .

Линеаризованное ограничение

~

1*

)

отсекает от Z

0

часть области вме-

g p

(x, x

 

 

1

 

 

 

 

 

сте с точкой x1* , но не затрагивает X. В результате получается некоторая меньшая

область Z 1 , представляющая собой ОДЗП для второй линейной подзадачи max{F(x) = cT x x Z1}.

101

Оптимальное решение x2* этой подзадачи с графической точки зрения соот-

ветствует одной из вершин области Z1 (рис. 6.2). Далее проверяется, какое из нелинейных ограничений нарушается в этой точке наиболее сильно, и оно подверга-

ется

линеаризации.

В результате строится

дополнительное

ограничение

~

 

2*

) , которое отсекает часть области Z

1

вместе с точкой x

2*

, и получается

g p2 (x, x

 

 

 

еще меньшая область Z 2 . Оптимальное решение новой задачи x3*.

 

 

Если на каждом шаге отбрасывается ненужная часть Z, то в процессе реше-

ния найдется допустимая точка максимума F(x)

на X .

 

 

Алгоритм решения задачи (6.4) методом отсекающих плоскостей Кэлли: 1-й шаг. Задать начальные границы линейной ОДЗП

Z 0 ={x ai xi bi ,i =1, n},

так, чтобы X Z 0 , и определить точность ε > 0 решения задачи. 2-й шаг. Решить задачу ЛП:

max{F(x) = cT x x Z 0}.

Пусть x1* – оптимальное решение задачи. Для k = 1,2,… выполнить следующую последовательность шагов.

3-й шаг. Найти такое р, что

g p (xk*) = max[g j (xk*),0], j =1, m ,

т.е. выбрать то ограничение, которое нарушается наиболее сильно.

Если g p (xk* ) > −ε, то прекратить вычисления. В противном случае перейти

к 4-му шагу.

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

~

k*

) = g p (x

k*

) + g p (x

k*

)

T

[x x

k*

] .

g p (x, x

 

 

 

 

 

Определить новую область допустимых значений Z k . 5-й шаг. Решить задачу ЛП

max{F(x) = cT x x Z k }.

Обозначим через x(k +1)* оптимальное решение этой задачи. 6-й шаг. Положить k = k+1 и перейти к 3-му шагу.

102

представлены в табл. 6.7.

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

Пример 6.2. Решить задачу методом отсекающих плоскостей Кэли:

 

 

max{F(x) = x

+ x

2

2x

+ x2

≤ −1; 0,8x2

+ 2x

2

9; x

 

0}.

 

 

 

 

 

 

 

1

 

1

2

1

 

1,2

 

 

 

 

Преобразуем

 

ограничения

к

виду

g (x) = 2x

x2 1 0

и

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

2

 

g

2

(x) = 9 0,8x2

2x

2

0

и построим нелинейную ОДЗП X , ограниченную кри-

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выми g1(x) = 0,

g2 (x) = 0

и учитывающую ограничения на знак переменных (за-

штрихованная область на рис. 6.3). Значения переменных для построения графи- ков g1(x) и g2 (x)

Т а б л и ц а 6.7

 

 

 

 

 

 

1+ x2

 

 

 

 

 

 

9 0,8x2

 

 

 

Для

g1(x) : x1

2

 

 

 

Для

g2 (x) :

x2

 

1

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

0

 

1

 

 

2

 

3

x1

0

1

2

 

3

 

3,35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

0,5

 

1

 

 

2,5

 

5

x2

4,5

4,1

2,9

0,9

 

0

Первая итерация.

1-й шаг. Начальные границы линейной области Z 0 зададим условиями 0 x1 4 и 0 x2 3 , которые определяют соответствующий прямоугольник,

включающий X (рис. 6.3).

2-й шаг. Находим максимальное значение функции F(x) = x1 + x2 при ли-

нейных ограничениях, определяющих область Z 0 . Очевидно, что решением является точка x1* =[4, 3], при этом F(x1* ) = 7 .

3-й шаг. Вычисляются значения ограничений в точке x1* : g1(x1*) = −2, g2 (x1* ) = −9,8 . Наиболее сильно нарушается ограничение g2 (x) 0 .

4-й шаг. Осуществляется линеаризация ограничения g2 (x) в точке x1* в со-

ответствии с выражением:

~

1*

1*

1*

)

T

[x x

1*

] . Вычисляется

g2

(x, x

) = g2 (x

) + g2 (x

 

 

103

градиент g

 

(x) :

g

 

(x) =

g2 ;

g2

 

=[1,6x ;2],

g

 

(x1* ) =[6,4; 2], тогда

 

2

 

 

 

2

 

 

x

x

2

 

 

 

 

1

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

(x, x

1*

) = −9,8 [6,4; 2]

x1

 

4

 

 

 

 

 

 

 

 

 

g2

 

 

 

 

− = −9,8 6,4(x1 4) 2(x2 3) =

 

 

 

 

 

 

 

 

 

 

x2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −6,4x1 2x2 + 21,8 0 .

 

 

 

 

Выполнив определенные преобразования,

~

 

 

1*

) можно представить в

g

2 (x, x

виде 3,2x1 + x2 10,9. На рис. 6.3

~

1*

) представлена прямой линией,

отсе-

g2

(x, x

 

кающей от области Z 0

часть ее вместе с точкой x1* .

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

g2 (x)

~

(x, x

1*

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g2

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

x2*

 

 

 

 

 

 

x 1 *

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

(x, x2* )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 3 *

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

F = 1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

g1(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

0

 

1

 

 

 

 

2

 

 

 

3

 

3,4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

Рис. 6.3. Графическая интерпретация процесса решения примера 6.2

 

5-й шаг. Решается задача ЛП с новыми ограничениями: max{F(x) = x1 + x2 x Z1},

где Z1 ={x 3,2x1 + x2 10,9; 0 x2 3; x1 0}.

Решение можно осуществлять графически (одна из линий уровня функции цели для F =1 показана на рис. 6.3), либо с помощью симплекс-метода

(табл. 6.8 – 6.10).

104

Т а б л и ц а 6.8

БП

Св.чл.

 

НП

 

 

 

x1

 

x2

 

 

 

x3

10,9

3,2

 

1

 

 

 

 

 

x4

3

0

 

1

F

0

-1

 

-1

 

 

 

 

 

Т а б л и ц а 6.9

БП

Св.чл.

 

НП

 

 

 

x1

 

x4

 

 

 

x3

7,9

3,2

 

-1

 

 

 

 

 

x2

3

0

 

1

 

 

 

 

 

F

3

-1

 

1

 

 

 

 

 

Т а б л и ц а 6.10

БП

Св.чл.

 

НП

 

 

 

x3

 

x4

 

 

 

x1

2,47

0,31

 

-0,3

 

 

 

 

 

x2

3

0

 

1

 

 

 

 

 

F

5,47

0,31

 

0,69

 

 

 

 

 

 

Оптимальное решение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2* =[2,47;3],

F(x2*) = 5,47.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вторая итерация.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2* :

1-й шаг. Вычисляются значения исходных нелинейных ограничений в точке

g (x2* ) = −5,06; g

2

(x2* ) = −1,88 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Наиболее сильно нарушается ограничение g1 (x) 0 ; осуществим его линеа-

ризацию в соответствии с выражением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

2*

) = g1(x

2*

) + g1(x

2*

)

T

[x

x

2*

].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g1(x, x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2-й

шаг.

 

Вычисляется

градиент

функции

 

g

 

 

(x) :

g

 

 

(x)T =

g1

;

g1

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

x

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

=[2; 2x2 ], g1 (x2* ) = [2; 6] . Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

(x, x

2*

) = −5,06

 

 

x1

 

2,47

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g1

 

+[2 6]

 

 

 

= 2x1 6x2 +8 0 или x1 + 3x2 4 .

 

 

 

 

 

 

 

 

 

 

 

x2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получили линейное ограничение, которому на рис. 6.3 соответствует прямая

 

~

 

 

2*

) = 0 , отсекающая часть плоскости

Z

1

вместе с точкой x

2*

. В ре-

линия g1(x, x

 

 

 

 

 

 

зультате образуется новая ОДЗП Z 2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3-й

 

шаг.

 

 

 

Решается

 

 

задача

линейного

 

 

 

программирования

max{F(x) = x

 

+ x

2

 

x Z 2}, где Z 2

={x

 

3,2x

+ x

2

10,9; x

+3x

2

4, x , x

2

0}.

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

Процедура решения иллюстрируется табл. 6.11 – 6.13.

 

 

 

 

 

 

 

 

 

 

 

 

 

Оптимальное решение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3* =[2,7; 2,2],

F(x3* ) = 4,9 .

 

 

 

 

 

 

 

 

 

 

 

 

105