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

Семестровая 1 (Методы оптимальных решений) / Методы оптимальных решений учебное пособие

.pdf
Скачиваний:
1245
Добавлен:
19.04.2015
Размер:
6.01 Mб
Скачать

Оптимальное решение этой задачи равно

xɶ(0) 5

= 0

(симплексная таблица представлена в табл. 5.4.1).

 

 

 

 

 

 

 

 

Т а б л и ц а

5.4.1

 

cɶ

Базис

h

14

0

0

0

 

 

 

 

 

 

 

 

 

 

x1

x2

x3

x4

 

 

 

 

 

 

 

 

 

0

x3

15

3

1

1

0

 

 

 

0

x4

10

1

1

0

1

 

 

 

 

f0(0) f (0)

0 – f (0)

–14

0

0

0

 

 

 

14

x1

5

1

1/3

1/3

0

 

 

 

0

x4

5

0

2/3

–1/3

1

 

 

 

 

f0(0) f (0)

70 – f (0)

0

14/3

14/3

0

 

 

 

ɶ(0)

из условия наибольшего роста целевой функции

f (x)

Выберем h

при перемещении из точки

x(0) 1

= 8

в точку

x(0) + hɶ(0) (xɶ(0) x(0) ) =

 

1

 

+ hɶ(0)

 

5 −1

 

 

1

+ 4hɶ

(0)

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

−8

 

 

 

−8hɶ

(0)

 

 

 

8

 

0

 

8

 

 

Рассмотрим функцию

1 + 4h 2 2 Φ (h) = f = −(1 + 4h −8) − (8 −8h −8) =

0 8 −8h

= −16h2 + 56h − 49 − 64h2 = −80h2 + 56h − 49.

Производная

Φ′0 (h) = −160h +56

обращается в нуль в точке h = 56 / 160 = 7 / 20 , положительна при h < 7 / 20

и отрицательна при h > 7 / 20 , поэтому точка hɶ(0) = 7 / 20 является точкой глобального максимума функции Φ0 (h) .

Величину шага смещения h(0) выберем как

h( k ) = min{1; hɶ( k )}= min{1; 7 / 20} = 7 / 20

171

и построим следующее приближение x(1) к оптимальному решению исходной задачи:

 

(1)

 

(0)

 

(0)

(

 

(0)

 

 

(0) )

 

1

 

 

 

7

 

5 -1

 

1 + 4 × 7 / 20

 

12 / 5

x

 

= x

 

+ h

 

 

x

 

- x

 

=

 

+

 

 

 

=

 

 

=

.

 

 

 

 

 

 

 

ɶ

 

 

 

 

 

8

 

 

20 0 - 8

 

8 - 8 × 7 / 20

26 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−2(x −8)

 

 

 

 

 

−2(12 / 5 −8)

56 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

grad f (x(1) ) =

 

1

 

 

 

 

 

=

 

 

=

 

.

 

 

 

 

 

 

 

 

 

 

−2(x2

−8)

 

x=x(1)

 

−2(26 / 5 −8)

28 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поставим вспомогательную задачу максимизации функции (5.4.1) при ограничениях (3.1.2):

 

 

 

 

 

f (1) (x) = (grad f (x(1) ), x x(1) )=

 

 

56

 

 

12

 

 

28

 

 

26

 

 

56

 

 

28

 

 

,

=

+

=

 

+

 

−56

→ max

 

x1

 

 

 

 

x2

 

 

 

x1

 

x2

5

5

5

5

5

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x1 +x2 15,x1 +x2 10,

x1 0, x2 0 .

Оптимальное решение этой задачи равно

5 / 2

xɶ(1) =

15 / 2

(симплексная таблица представлена в табл. 5.4.2).

 

 

 

 

 

 

 

 

Т а б л и ц а

5.4.2

 

cɶ

 

Базис

h

56/5

28/5

0

0

 

 

 

 

 

 

 

 

 

 

 

x1

x2

x3

x4

 

 

 

 

 

 

 

 

 

 

0

 

x3

15

3

1

1

0

 

 

 

0

 

x4

10

1

1

0

1

 

 

 

 

 

f0(1) f (1)

0 – f (1)

–56/5

–28/5

0

0

 

 

 

56/5

 

x1

5

1

1/3

1/3

0

 

 

 

0

 

x4

5

0

2/3

–1/3

1

 

 

 

 

 

f0(1) f (1)

0 – f (1)

0

–28/15

56/15

0

 

 

 

56/5

 

x1

5/2

1

0

1/2

–1/2

 

 

 

28/5

 

x2

15/2

0

1

–1/2

3/2

 

 

 

 

 

f0(1) f (1)

70 – f (1)

0

0

14/5

14/5

 

 

 

ɶ(1)

из условия наибольшего роста целевой функции

f (x)

Выберем h

при перемещении из точки

172

12 / 5

 

x(1) =

 

26 / 5

 

в точку

 

x(1) + hɶ(1) (xɶ(1) x(1) ) =

 

12 / 5

 

+ hɶ(1)

 

5 / 2 −12 / 5

 

 

12 / 5 + hɶ(1)

/10

 

 

 

 

=

 

 

 

 

.

 

 

 

 

 

 

 

− 26 / 5

 

 

26 / 5 + 23hɶ

(1)

/ 10

 

 

26 / 5

 

 

15 / 2

 

 

 

 

 

Рассмотрим функцию

Φ1

(h) =

 

12 / 5 + h / 10

 

= −(12 / 5

+ h / 10 − 8)2 − (26 / 5 + 23h / 10 − 8)2 =

f

 

 

 

 

 

 

 

26 / 5 + 23h / 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

28 2

 

23h

 

 

14 2

 

 

 

 

 

= −

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

10

 

 

 

5

 

 

 

 

 

 

5

 

 

 

 

Производная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Φ′

(h) = −2

 

h

28

 

1

 

− 2

 

23h

14

 

23

= −

1

(53h − 70)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

5

 

 

 

 

 

 

 

10

 

 

 

 

 

5

 

 

 

 

 

10

 

10

 

 

 

 

 

 

5 10

 

обращается в нуль в точке h = 70 / 53, положительна при h < 70 / 53 и отрицательна при h > 70 / 53, поэтому точка hɶ(1) = 70 / 53 является точкой глобального максимума функции Φ1 (h) .

Величину шага смещения h(1) выберем как

h(1) = min{1; hɶ(1) } = min{1; 70 / 53} = 1

и построим следующее приближение x(1) к оптимальному решению исходной задачи:

x(2) = x(1) + h(1) (xɶ(1) x(1) ) = x(1) + xɶ(1)

 

 

5 / 2

 

x(1) = xɶ(1) =

 

.

 

 

 

 

 

 

 

 

 

 

15 / 2

При этом

−2(x

− 8)

 

 

 

 

 

 

−2(5 / 2 − 8)

 

 

 

 

 

 

 

=

 

 

 

11

 

 

grad f (x( 2) ) =

1

− 8)

 

 

 

 

−2(15 / 2 − 8)

=

.

 

−2(x2

 

 

x=x( 2 )

 

 

 

1

 

 

 

 

 

 

 

Поставим вспомогательную задачу максимизации функции (5.4.1) при ограничениях (3.1.2):

f (2) (x) = (grad f (x( 2) ), x x( 2) ) = 11(x1 − 5 / 2) + x2 −15 / 2 → max ,

3x1 + x2 15,x1 + x2 10,

x1 0, x2 0 .

Оптимальное решение этой задачи равно

173

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xɶ(1) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(симплексная таблица представлена в табл. 5.4.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а

5.4.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cɶ

 

 

 

Базис

 

 

 

 

h

 

 

 

 

11

 

 

 

1

 

 

 

 

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

x2

 

 

 

 

 

 

x3

 

x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

x3

 

 

 

 

 

 

15

 

 

 

 

3

 

 

 

 

1

 

 

 

 

 

 

 

1

 

0

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

x4

 

 

 

 

 

 

10

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

(2)

 

f (2)

 

 

 

0 – f (2)

 

–11

 

–1

 

 

 

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

x1

 

 

 

 

 

 

5

 

 

 

 

 

 

1

 

 

 

 

1/3

 

 

 

 

 

1/3

 

0

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

x4

 

 

 

 

 

 

5

 

 

 

 

 

 

0

 

 

 

 

2/3

 

 

 

 

 

–1/3

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

(2)

 

f (2)

 

 

55 – f (2)

 

 

0

 

 

 

 

8/3

 

 

 

 

 

11/3

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ɶ(2)

из условия наибольшего роста целевой функции

f (x)

 

Выберем h

 

 

при перемещении из точки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(2)

 

 

5 / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15 / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в точку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 − 5 / 2

 

 

 

5 / 2 + 5hɶ(2) / 2

 

 

 

x(2) + hɶ(2) (xɶ(2) x(2) ) =

 

 

5 / 2

 

+ hɶ(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15 / 2

 

 

 

 

 

 

 

0 −15 / 2

15 / 2 −15hɶ

 

 

 

 

Рассмотрим функцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Φ

 

 

 

5 / 2 + 5h / 2

 

 

= −(5 / 2 + 5h / 2 − 8)2 − (15 / 2 −15h / 2 − 8)2 =

2 (h) = f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15 / 2

 

−15h / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5h

 

 

11 2

 

 

 

 

 

15h

 

1

2

 

 

 

5h

 

 

11

2

 

 

15h

 

1

2

 

 

 

 

= −

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −

 

 

 

 

 

 

 

 

 

+

 

 

.

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2 2

 

 

 

 

 

 

 

 

 

 

 

 

 

2 2

 

 

 

 

 

 

Производная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5h

 

11

5

 

 

 

 

15h

 

1

 

15

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Φ′2 (h) = −2

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

+

 

 

 

 

 

 

= −

 

 

 

(50h − 8) = −5(25h − 4)

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

2

2

 

 

 

 

 

2

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обращается в нуль в точке h = 4 / 25 , положительна при h < 4 / 25 и отрица-

тельна при h > 4 / 25 , поэтому точка hɶ(2) = 4 / 25 является точкой глобального максимума функции Φ2 (h) .

Величина шага смещения

h( 2) = min{1; hɶ( 2) } = min{1; 4 / 25} = 4 / 25

и построим следующее приближение к оптимальному решению исходной задачи:

174

 

5 / 2

 

 

4

 

5 − 5 / 2

 

29 / 10

 

2,9

 

 

x(3) = x(2) + h(2) (xɶ(2) x(2) ) =

 

 

+

 

 

 

=

 

=

6,3

 

.

 

 

15 / 2

 

 

25

0 −15 / 2

 

63 / 10

 

 

 

§ 5.5. МЕТОД ШТРАФНЫХ ФУНКЦИЙ

Перейдем к рассмотрению метода штрафных функций, идея которого состоит в переходе от задачи условной максимизации функции (3.1.1) при ограничениях (3.1.2) к последовательности задач безусловной максимизации

fk (x) = f (x) + ψk (x) → max, k = 1, 2, 3, ... ,

(5.5.1)

где функции ψk (x) с ростом k все в большей степени учитывают ограниче-

ния (3.1.2). Для этого функции ψk (x) подбираются так, чтобы fk (x) при больших k мало отличались от f (x) при x, удовлетворяющих ограничениям (3.1.2), и быстро убывали при удалении x от множества допустимых реше-

ний. Более строго, последовательность функций {ψk (x)}k =1 называется по-

следовательностью штрафных функций для задачи (3.1.1)—(3.1.2), если

lim ψk

0,

если ϕi (x) bi ,

i = 1, 2, , m,

 

(x) =

если хотя бы одно из неравенств ϕi (x) bi нарушается.

k →∞

−∞,

 

Такую последовательность штрафных функций можно определить,

например, так:

 

 

ψk (x) = kψ(x) ,

 

 

 

 

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

ψ(x) = −( gi+ (x))2 ,

 

 

 

 

 

 

i=1

 

 

 

 

gi+

0,

 

если ϕi (x) bi ,

 

 

(x) =

ϕ (x)

b ,

если ϕ (x) > b .

 

 

 

 

 

 

 

i

i

i

i

При этом последовательность решений задач безусловной максимизации (5.5.1) сходится (при определенных условиях) к решению исходной задачи (3.1.1)—(3.1.2), поэтому в качестве приближенного решения задачи (3.1.1)— (3.1.2) полагают очередное решение задачи (5.5.1) при достаточно большом k: x x( k ) .

Если целевая функция задачи выпуклого программирования является квадратичной, а ограничения — линейными, то решение вспомогательной задачи можно найти точно, после чего для определения оптимального решения исходной задачи перейти к пределу при k → ∞ .

ПРИМЕР 5.5.4. Требуется найти оптимальное решение задачи выпуклого программирования (3.2.7)—(3.2.9) из примера 3.2.1 с помощью метода штрафных функций.

175

Решение. Предположим, что в точке x( k ) максимума вспомогательной функции

fk (x) = f (x) + ψk (x)

все ограничения исходной задачи (3.2.8)—(3.2.9),

которые мы представим

в форме

 

 

 

+x2 15,

 

 

 

 

 

 

 

 

 

3x1

 

 

 

 

 

 

 

 

 

x1

+ x2 10,

 

 

 

 

 

 

 

 

 

x1

 

0,

 

 

 

 

 

 

 

 

 

 

x2

0,

 

 

 

 

нарушаются, т. е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x(k )

+x(k )

>15,

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

x(k )

+ x(k )

>10,

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

x(k )

 

 

> 0,

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

> 0.

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

ψ

k

(x) = −k ((3x + x −15)2 + (x + x −10)2 + (x − 0)2

+

(x − 0)2 )=

 

1

2

 

1

2

 

 

1

 

 

2

 

 

= −k ((3x + x −15)2 + (x + x −10)2 +

(x )2 + (x

 

)2 ),

 

 

 

1

 

2

1

 

2

1

2

 

 

 

 

f

k

(x) = −(x −8)2 (x −8)2

 

 

 

 

 

 

 

1

 

 

2

 

 

)2 ),

 

 

k ((3x + x −15)2 + (x + x −10)2 + (x )2 + (x

 

 

1

 

2

 

1

2

 

1

2

 

 

 

 

fk = −2(x −8)− 6k (3x + x −15)− 2k (x + x −10)− 2kx =

 

 

x1

 

 

1

2

 

1

2

 

 

1

 

 

1

 

 

 

 

 

 

 

 

= −(22k + 2)x1 −8kx2 +110k +16,

 

 

 

 

 

fk = −2(x −8)− 2k (3x + x −15)− 2k (x + x −10)− 2kx =

 

 

x1

 

 

1

2

 

1

2

 

 

2

 

 

2

 

 

 

 

 

=−8kx1 − (6k + 2)x2 + 50k +16.

Вточке максимума функции fk (x) частные производные по x1 и x2 должны быть равны нулю, откуда

−(22k + 2)x1

−8kx2 +110k +16 = 0,

 

−8kx1 − (6k + 2)x2 + 50k +16 = 0

 

или

 

 

(11k +1)x1

+ 4kx2 = 55k +8,

 

4kx1

+ (3k +1)x2 = 25k +8.

 

176

Выразим из первого уравнения

 

 

 

 

 

x2 =

55k +8 −(11k +1)x1

 

 

 

 

 

 

 

 

 

 

 

 

 

4k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и подставим во второе уравнение:

 

 

 

 

 

 

 

 

 

 

 

 

4kx + (3k +1)

55k +8 −(11k +1)x1

 

= 25k +8 .

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

4k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

=

65k 2

+ 47k +8

> 0, x(k )

=

 

55k 2

+81k +8

> 0.

 

 

 

17k 2

+14k +1

 

 

17k 2

+14k +1

 

 

 

1

 

 

2

 

 

 

 

 

 

При этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x(k ) + x(k ) −15 = −

5k 2

−12k −17

,

x(k ) + x(k ) −10 = −

50k 2 − 268k −36

 

 

 

 

 

 

 

 

.

17k 2 +14k +1

 

17k 2

 

1

2

 

 

 

1

 

2

 

 

 

+14k +1

 

Поскольку при любом k

x( k )

> 0,

x( k ) > 0 , наше предположение о

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

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

функции fk (x) выполняются третье и четвертое ограничения исходной задачи (3.2.8)—(3.2.9), а первое и второе ограничения не выполняются, т. е.

 

 

 

 

 

3x(k )

 

+x(k )

>15,

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

+ x(k )

>10,

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

 

 

0,

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ψ

k

(x) = −k (3x + x

2

 

−15)2 k (x + x −10)2

,

 

 

 

 

 

1

 

 

 

 

 

1

2

 

 

 

f

k

(x) = −(x −8)2

(x −8)2

k (3x + x

2

−15)2

k (x + x −10)2

,

 

1

 

 

2

 

 

 

1

 

 

1

2

 

 

 

fk = −2(x −8)− 6k (3x + x −15)− 2k (x + x −10)=

 

 

 

x1

 

1

 

 

1

2

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= −(20k + 2)x1 −8kx2 +110k +16,

 

 

 

 

 

fk = −2(x −8)− 2k (3x + x −15)− 2k (x + x −10)=

 

 

 

x1

 

2

 

 

1

2

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

= −8kx1 − (4k + 2) x2 + 50k +16.

177

В точке максимума функции

fk (x) частные производные по x1 и x2

должны быть равны нулю, откуда

 

−(20k + 2)x1 −8kx2 +110k +16 = 0,

 

−8kx1 − (4k + 2)x2 + 50k +16 = 0

 

или

 

 

(10k +1)x1

+ 4kx2 = 55k +8,

 

4kx1 + (2k +1)x2 = 25k +8.

 

Выразим из первого уравнения

x2 = 55k +8 −(10k +1)x1 4k

и подставим во второе уравнение:

 

4kx + (2k +1)

55k +8 −(10k +1)x1

= 25k +8 .

 

 

 

 

 

1

 

 

 

 

4k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10k 2 +39k +8

 

 

30k 2

+ 73k +8

 

 

 

x(k ) =

 

 

 

> 0, x(k ) =

 

 

 

 

 

 

> 0.

 

 

4k 2 +12k +1

4k 2

+12k +1

 

1

 

 

2

 

 

 

При этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x(k ) + x(k ) −15 =

10k +17

 

> 0,

 

x(k ) + x(k ) −10 =

−8k + 6

.

 

 

 

 

1

2

 

4k 2 +12k +1

 

1

 

2

 

4k 2 +12k +1

Поскольку при любом k x( k ) + x( k ) <10 , наше предположение о том,

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

что второе ограничение исходной задачи нарушаются, неверно.

Рассмотрим

третью гипотезу относительно

местоположения точки

максимума. Предположим, что в точке максимума функции fk (x) выполняются все ограничения исходной задачи (32.8)—(3.2.9), кроме первого, т. е.

3x(k )

+x(k ) >15,

1

2

x(k )

+ x(k ) 10,

1

2

x(k )

0,

1

 

x2(k ) 0.

Тогда

178

 

 

 

ψ

k

(x) = −k (3x + x

2

− 15)2 ,

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

f

k

(x) = − ( x − 8)2

( x

2

− 8)2 k (3x + x

2

− 15)2 ,

 

 

1

 

 

 

 

 

 

1

 

 

fk

= −2( x − 8) − 6k (3x + x

−15) = −(18k + 2)x − 6kx

+ 90k +16,

x1

1

 

 

1

2

 

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

fk

= −2( x

 

− 8) − 2k (3x + x

−15) = −6kx − (2k + 2)x

+ 30k +16.

x1

2

 

 

1

2

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

В точке максимума функции

 

fk (x)

частные производные по x1 и x2

должны быть равны нулю, откуда

−(18k + 2)x1 − 6kx2 + 90k + 16 = 0,−6kx1 − (2k + 2)x2 + 30k + 16 = 0

или

(9k + 1)x1 + 3kx2 = 45k + 8,3kx1 + (k + 1)x2 = 15k + 8.

Выразим из первого уравнения

x2 = 45k + 8 − (9k +1)x1 3k

и подставим во второе уравнение:

 

3kx + (k +1)

45k + 8 − (9k +1)x1

= 15k + 8 .

 

 

 

 

 

 

 

 

1

 

 

 

 

 

3k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k ) =

29k + 8

> 0, x(k ) =

63k + 8

 

> 0.

 

 

 

 

 

10k +1

 

 

 

1

 

10k

+1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

При этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x(k ) + x(k )

−15 =

17

 

> 0, x(k ) + x(k ) −10 =

−8k + 6

< 0 ,

 

 

 

 

1

2

 

10k +1

 

1

 

2

 

 

 

10k +1

 

 

 

 

 

 

 

 

 

 

 

 

Значит, наше предположение о том, что

 

 

 

 

 

 

 

 

3x(k )

+x(k )

> 15,

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

+ x(k )

10,

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

 

0,

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(k )

0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

179

оказалось верным, и это означает, что точка безусловного максимума функции fk (x) равна

 

(29k +8)

(10k +1)

x(k ) =

 

.

(63k +8)

(10k +1)

Поэтому оптимальное решение исходной задачи определим как

x = lim x(k )

k →∞

lim((29k +8)

(10k +1))

 

29 / 10

 

2,9

 

 

= k→∞

 

=

 

=

6,3

 

.

lim((63k +8)

(10k +1))

 

63 / 10

 

 

 

k→∞

 

 

 

 

 

 

 

§5.6. РЕШЕНИЕ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

ВПАКЕТЕ MICROSOFT EXCEL

Пакет Microsoft Excel предоставляет средства для решения задач нелинейного программирования в надстройке «Поиск решения», работу с которой опишем в следующем примере.

ПРИМЕР 5.6.5. Требуется найти приближение к оптимальному решению задачи выпуклого программирования (3.2.7)— (3.2.9) из примера 3.2.1 с помощью надстройки «Поиск решения» пакета Microsoft Excel.

Решение. Введем в рабочий лист Microsoft Excel формулы, как показано на рис. 5.6.2, а, б. Ячейки B1 и B2 отведем под координаты вектора оптимального решения задачи. Запустим надстройку «Поиск решения». Для этого на вкладке «Данные» нужно нажать кнопку «Поиск решения». (Если такая кнопка на вкладке «Данные» отсутствует, нужно выбрать пункт меню «Файл | Параметры», в появившемся диалоговом окне «Параметры Excel» выбрать пункт «Надстройки», далее в выпадающем списке «Управление» выбрать элемент «Надстройки Excel», нажать кнопку «Перейти», и во вновь открывшемся диалоговом окне «Надстройки» отметить

вкачестве доступной надстройку «Поиск решения».)

Впоявившемся окне ввода данных (рис. 5.6.3) укажем ячейку $B$3,

вкоторую введена целевая функция, отметим, что требуется искать м а к - с и м у м этой функции, изменяя значения переменных x1 и x2 (под которые

отведены ячейки $B$1:$B$2) при наличии ограничений φ b

($B$4:$B$5 <= $B$6:$B$7). Отметим также пункт «Сделать переменные без ограничений неотрицательными» в соответствии с ограничениями x θ .

В качестве метода решения выберем «Поиск решения нелинейных задач методом ОПГ» — нелинейный метод обобщенного понижающего градиента, который наилучшим образом подходит для решения гладких нелинейных задач условной оптимизации. (Для решения негладких нелинейных задач лучше подходит метод эволюционного поиска решения, а для решения задач линейного программирования целесообразнее выбрать симплекс-метод — эти методы также доступны в надстройке «Поиск решения».)

180