Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математические основы теории систем_1 / Лекции / Павлова А.В. Математические основа теории систем. Лекции Часть 2.pdf
Скачиваний:
299
Добавлен:
02.06.2015
Размер:
1.3 Mб
Скачать

Тогда

F

= 24,22 a1 -9,56 = 0

и a1 = 0,39.

 

 

 

1

 

 

 

 

¶a

 

 

и значение F (x2 ) :

 

Находим координаты точки x2

 

 

 

 

 

x2 = 0,49 + 2,51× 0,39 =1,47;

x2 = 2,41 - 2,41× 0,39 = 1,47;

 

 

 

1

 

2

 

 

 

 

 

 

 

F (x1 ) = (1,47 - 2) 2

+ (1,47 - 2)2 = 0,56 .

Точка

x

2

 

 

 

~1*

и x

1

.

 

лежит на прямой, соединяющей x

 

Следует заметить, что от итерации к итерации значение функции цели

уменьшается. Истинный экстремум x* = [1,5; 1,5]

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

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

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

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

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

max{F (x) = cT x

g

j

(x) ³ 0, j =

1, m

; x ³ 0, i =

1, n

},

(6.4)

 

 

 

 

i

 

где g j (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

 

a £ x £ b ; a

2

£ x

2

£ b }.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

2

 

 

 

 

 

 

 

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

первую подзадачу ЛП:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max{F (x) = cT x

 

x Î Z 0}.

 

 

(6.5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

96

x2

 

 

 

 

 

 

b2

x1*

 

 

 

 

 

 

 

 

 

 

 

Z0

 

 

 

 

 

 

x3*

x2* ~

 

 

 

 

 

X

 

 

1*

)

 

g p1 (x, x

 

 

F1

~

(x, x

2*

)

g p2

 

 

a2

a1

x1

b1

 

 

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

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

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

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

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

~

(x, x

1*

) » g j (x

1*

) + Ñg j (x

1*

)

T

[x - x

1*

] .

(6.6)

g j

 

 

 

 

 

Келли предложил осуществлять на каждой итерации линеаризацию только

одного ограничения g p (x) ,

которое нарушается в рассматриваемой точке наибо-

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

ние g p (x) определится из условия

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

97

~

1*

) отсекает от Z

0

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

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

(x, x

 

1

 

 

 

 

 

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

область Z 1 , представляющая собой

ОДЗП для

второй

линейной подзадачи

max{F (x) = cT x x Î Z1}.

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

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

ется

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

результате

строится

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

ограничение

~

(x, x

2*

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

1

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

2*

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

g p2

 

 

 

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

Если на каждом шаге отбрасывается ненужная часть Z, то в процессе решения найдется допустимая точка максимума F (x) на X .

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

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

так, чтобы X ÎZ 0 , и определить точность e > 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* ) > -e, то прекратить вычисления. В противном случае перейти к

4-му шагу.

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

~

(x, x

k *

) = g p (x

k *

) + Ñg p

(x

k *

)

T

[x - x

k *

] .

g p

 

 

 

 

 

Определить новую область допустимых значений Z k .

98

5-й шаг. Решить задачу ЛП

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

Обозначим через x(k +1)* оптимальное решение этой задачи.

6-й шаг. Положить k = k+1 и перейти к 3-му шагу.

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

Пример 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 ³ 0

и построим нелинейную ОДЗПX,

ограниченную кри-

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

выми g1(x) = 0,

g2 (x) = 0 и

учитывающую

ограничения

на

знак переменных

(заштрихованная область на рис. 6.3). Значения переменных для построения

графиков g1(x) и

g2 (x)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а 6.7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1+ x 2

 

 

 

 

 

 

 

9

- 0,8x 2

 

 

 

 

Для g1 (x) : x1 ³

2

 

 

 

Для

g 2 (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* :

g (x1* ) = -2,

1

g2 (x1* ) = -9,8 . Наиболее сильно нарушается ограничение g2 (x) ³ 0 .

99

 

x2

 

 

 

 

 

 

 

 

 

4

g2 (x)

~

1*

)

 

 

 

 

 

 

 

 

 

 

g2

(x, x

 

 

 

 

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

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

 

 

 

 

 

 

 

~

 

 

 

 

1*

) = g2 (x

1*

) + Ñg2 (x

1*

)

T

1*

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

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

(x, x

 

 

 

[x - x

градиент 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*

 

 

 

 

 

 

ìé x1

ù é4ùü

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

g2

 

) = -9,8 -[6,4; 2] íê

 

 

ú

- ê úý

 

 

 

 

 

 

 

 

 

 

îëx2

û

ë3ûþ

 

 

 

 

 

 

 

 

 

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

 

 

 

~

1*

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

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

(x, x

виде 3,2x1 + x2 £ 10,9

~

1*

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

. На рис. 6.3 g2

(x, x

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

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

 

 

5-й шаг. Решается задача ЛП с новыми ограничениями:

max{F (x) = x1 + x2 x ÎZ 1},

где Z 1 = {x 3,2x1 + x2 £10,9; 0 £ x2 £ 3; x1 ³ 0} .

100

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

(табл. 6.8 – 6.10).

 

 

Т а б л и ц а 6.8

 

 

 

 

 

 

 

Т а б л и ц а 6.9

 

 

 

 

Т а б л и ц а 6.10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БП

Св.чл.

 

 

 

 

НП

 

 

БП

Св.чл.

 

 

 

НП

 

 

 

 

 

 

БП

 

 

Св.чл.

 

 

 

 

 

 

НП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

x2

 

 

 

 

x1

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

10,9

 

 

 

 

3,2

 

1

 

 

x3

7,9

 

 

 

 

3,2

 

 

-1

 

 

 

 

 

x1

 

 

 

2,47

 

 

0,31

 

-0,3

 

 

x4

3

 

 

 

 

 

 

0

 

1

 

 

x2

3

 

 

 

 

0

 

 

 

1

 

 

 

 

 

x2

 

 

 

 

3

 

 

 

 

 

0

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

0

 

 

 

 

 

-1

 

-1

 

 

F

3

 

 

 

 

-1

 

 

 

1

 

 

 

 

 

F

 

 

 

5,47

 

 

0,31

 

0,69

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2* = [2,47;3],

 

F (x2* ) = 5,47.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

x2* : g1 (x2* ) = -5,06; g2 (x2* ) = -1,88 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Наиболее сильно нарушается ограничение 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; - 2x

 

] ,

 

Ñg (x2* ) = [2; - 6] .

Тогда

g%

(x, x2* ) = -5,06 +[2 -

 

ìé x

ù

-

é2, 47ùü

=

 

 

6]í

 

1

ú

ê

 

 

3

ú

ý

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

êx

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

îë

2

û

 

ë

 

 

 

 

ûþ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получили линейное ограничение, которому на рис. 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.

101