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

ТЕОРИЯ ОПТИМИЗАЦИИ И Алгоритмов / Методы_оптимизации

.pdf
Скачиваний:
24
Добавлен:
06.03.2016
Размер:
887.42 Кб
Скачать

31

F(z) = z1 + z2 = (4x1 2x2 + 4 λ + v1 ) +

+(2x1 4x2 + 6 2λ + v2 ) = 10 6x1 6x2 3λ + v1 + v2 .

Составляем вспомогательную задачу ЛП:

F (z) = 10 6x1 6x2 3λ + v1 + v2 min,

4x1 + 2x2 + λ v1 + z1 = 4, 2x1 + 4x2 + 2λ v2 + z2 = 6, x1 + 2x2 + w = 2,

x1, x2 , λ, v1, v2 , w, z1, z2 ≥ 0.

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

ные z1 , z2

и w . Таким образом, начальный базис Б0 = {z1, z2 , w}.

В результате приходим к табл. 3.1.

 

 

 

 

Таблица 3.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

Своб.

 

x1

 

 

 

x2

λ

 

v1

v2

 

w

 

z1

z2

 

 

член

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z1

4

 

4

 

 

2

1

 

1

0

 

0

 

1

0

4/4=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z2

6

 

2

 

4

2

 

0

1

 

0

 

0

1

6/2=3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

2

 

1

 

 

2

0

 

0

0

 

1

 

0

0

2/1=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

10

 

6

 

 

6

3

 

1

1

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДБР0=

 

 

Начальное

 

допустимое

базисное

 

решение

= (z1

= 4, z2 = 6, w = 2). ДБР0 не является оптимальным, посколь-

ку в строке целевой функции есть положительные коэффициенты

Fx1 = 6 , Fx2 = 6 , Fλ = 3.

Согласно условиям дополняющей нежесткости, в базис можно вводить x1, так как v1 = 0 , либо x2 , так как v2 = 0 , но нель-

 

 

 

 

 

 

 

 

32

 

 

зя вводить λ , так как w > 0 . Находим Б1 :

 

 

 

Fx

> 0

x1 вводим в базис,

 

 

 

 

1

 

 

 

 

 

 

4

 

6

 

 

2

 

 

 

min

 

= 1,

 

=

3,

 

= 2

= 1

z1 выводим из базиса.

4

2

1

 

 

 

 

 

 

 

 

Таким образом, Б1 = {x1, z2 , w}. В результате приходим к

табл. 3.2.

Таблица 3.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

Своб.

x

x

λ

v

v

 

w

z

z

2

 

 

 

 

член

1

2

 

1

2

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

1

1

1/2

1/4

1/4

0

 

0

1/4

0

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z2

4

0

3

3/2

1/2

1

 

0

1/2

1

4/3

 

 

 

 

 

 

 

 

 

 

 

 

w

1

0

3/2

1/4

1/4

0

 

1

1/4

0

2/3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

4

0

3

3/2

1/2

1

 

0

3/2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получили

ДБР1 = (x1 = 1, z2 = 4, w = 1).

ДБР1 не является

оптимальным, поскольку в строке целевой функции есть положи-

тельные коэффициенты F

 

= 3 ,

F

= 3 и

F = 1 .

 

 

 

 

x2

 

 

 

λ

2

ν1

2

 

 

 

 

 

 

 

 

 

 

 

 

Согласно условиям дополняющей нежесткости, в базис

можно вводить x2 ,

так как v2 = 0 ,

но нельзя вводить λ, так как

w > 0 , и v1 , так как x1 > 0 . Находим Б2 :

 

 

 

 

Fx2 > 0

x2

вводим в базис,

1 2

 

4

 

1 2

 

2

 

2

 

w

 

 

min

= 2,

 

,

 

=

 

=

 

 

 

выводим из базиса.

3

3

3

3

 

1

 

 

 

 

 

 

 

 

Таким образом, Б2 = {x1, x2 , z2}. В результате приходим к табл. 3.3.

 

 

 

 

 

 

 

33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

Своб.

x

x

λ

 

 

 

v

v

w

z

z

2

 

 

 

 

 

член

1

2

 

 

 

1

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

2/3

1

0

1/3

 

 

1/3

0

1/3

1/3

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

2/3

0

1

1/6

1/6

0

2/3

1/6

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z2

2

0

0

2

 

 

0

1

2

0

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

2

0

0

2

 

0

1

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получили

ДБР2

 

=

2

,

x2

=

2

,

z2

= 2

 

ДБР2 не явля-

= x1

3

3

.

 

 

 

 

 

 

 

 

 

 

 

 

ется оптимальным, поскольку в строке целевой функции есть по-

ложительный коэффициент Fλ = 2 .

 

 

 

 

 

 

 

 

 

Согласно условиям дополняющей нежесткости, в базис

можно вводить λ, так как w = 0 . Находим Б3 :

 

 

 

 

 

 

 

 

3

Fλ > 0

λ вводим в базис,

 

 

 

 

 

2

 

 

2

 

 

 

z2

 

 

 

 

 

 

 

 

 

min

 

 

 

= 2,

 

=

1 = 1

выводим из базиса.

 

 

 

 

 

1

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, Б3 = {x1, x2 , λ} . В результате приходим к

табл. 3.4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

Своб.

 

x

 

x

 

 

λ

 

v

 

v

 

w

z

z

2

 

член

 

 

1

 

2

 

 

 

1

 

2

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

1/3

 

 

1

 

0

 

 

0

 

1/3

 

1/6

 

 

0

1/3

1/6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

5/6

 

 

0

 

1

 

 

0

 

1/6

 

1/12

 

 

1/2

1/6

1/12

34

Окончание табл. 3.4

λ

1

0

 

0

 

1

 

0

 

1/2

1

0

1/2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

0

0

 

0

 

0

 

0

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получили

ДБР3

= (x1 = 1 3,

x2

= 5 6,

λ = 1).

ДБР3

явля-

ется оптимальным решением.

Таким образом, вспомогательная задача ЛП решена. Поскольку min F(z) = 0, то оптимальное ДБР вспомога-

 

 

z

 

 

 

 

 

 

 

 

x* задачи КП. Поэтому по-

тельной задачи определяет решение

 

лагаем

 

x* = (x* = 1 3, x*

 

5 6),

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

f * = f (x*) = 2

1

 

 

1

5

 

25

1

 

5

 

1

9 + 2

 

3

6 + 2

36

4 3

6

6

= −4

6 .

Ответ: x

*

1

,

5

 

 

f

*

= −4

 

1

.

 

 

 

 

 

 

=

6

,

 

 

 

6

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

Задачи

1. Решить задачу квадратичного программирования

f (x) = 2x12 + 3x22 + 4x1x2 6x1 3x2 min , x1 + x2 1,

2x1 + 3x2 4 ,

x1 0, x2 0.

2. Решить задачу квадратичного программирования

f (x) = x1 + 2x2 x22 max , 3x1 + 2x2 6 ,

x1 + 2x2 4 , x1 0, x2 0.

35

4. ЧИСЛЕННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ (МИНИМИЗАЦИИ) УНИМОДАЛЬНЫХ ФУНКЦИЙ

Унимодальными называются функции, имеющие на заданном отрезке ∆ = [a, b] единственный экстремум. На практиче-

ских занятиях рассматриваются унимодальные функции с минимумом. Свойство унимодальности обеспечивает выполнение очень важного для поиска точки минимума x условия.

Пусть f(x) унимодальна на , x1, x2 , x1 < x2. Тогда, ес-

ли f (x ) f (x ) , то

x* x ; если же

f (x

) f (x

) , то x* x .

1

2

 

2

1

2

1

Таким образом, на основании вычисленных значений f(x)

можно указать отрезок ∆′ = [a, b], в котором заключена точка x ,

меньшей

длины,

чем

исходный

отрезок

∆ = [a, b], т.е.

L′ = b′ − a′ < L = b a.

Говорят, что точка минимума x локализо-

вана в отрезке [a, b], при этом сам отрезок называют отрезком

локализации минимума.

 

 

 

 

На

практических

занятиях рассматриваются алгоритмы

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

При записи алгоритмов и решении задач используются следующие обозначения:

i = [ai ,bi ] и Li = bi ai , i = 1,2,", соответственно отрезок локализации и его длина после i вычислений значений f(x),

0 [a,b], L0 b a;

N – количество вычислений значений f(x).

Исходными данными для решения задачи минимизации унимодальной функции являются исходный отрезок локализации

0 и N, результатами решения итоговый отрезок локализации

N , а также оценки точки минимума x и величины минимума

f * .

36

4.1. ПАССИВНЫЙ МЕТОД ПОИСКА МИНИМУМА

Метод оптимизации называется пассивным, когда все точки xi , i = 1, N, вычислений характеристик задачи (в данном слу-

чае значений целевой функции) выбираются одновременно до начала вычислений.

Если N четное, т.е. N = 2l, l = 1,2,", то наилучшее (в смысле максимального уменьшения длины отрезка локализации)

размещение точек xi ,

i =

1, N

, получается разбиением их на рав-

ноотстоящие ε-пары, т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2 j 1

= a +

b a

 

j ε ,

x

2 j

= a +

 

b a

j + ε , j = 1, N 2,

(4.1)

N 2 +1

N 2 +1

 

 

 

2

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где ε некоторое малое положительное число.

 

 

 

При этом

 

 

 

b a

 

 

 

ε

 

 

L0

 

+ ε .

 

 

 

 

 

 

LN =

 

+

 

=

 

 

 

 

 

 

 

 

 

N 2 +1

2

l +1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

Если N нечетное,

т.е. N = 2l +1, l = 1,2,", то наилучшим

является равномерное распределение точек, т.е.

 

 

 

 

 

 

x

= a +

b a

i,

i =

 

 

.

(4.2)

 

 

 

 

 

1, N

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

N +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При этом

 

 

 

 

 

 

 

 

b a

 

 

L0

 

 

 

 

 

 

 

 

 

 

 

LN

= 2

=

 

.

 

 

 

 

 

 

 

N +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l +1

 

 

 

Нетрудно заметить, что использование нечетного числа точек при пассивном методе поиска неэффективно.

 

После определения точек

xi , i =

1, N

, вычисляются значе-

ния

функции f (xi ) . Пусть

f (xk ) = min f (xi ).

Тогда, полагая

 

 

 

 

i =1, N

 

 

x0 = a, xN +1 = b ,

определяется

итоговый

отрезок локализации

N

= [xk 1, xk +1] .

Точка xk

принимается

за

аппроксимацию

37

(оценку) точки минимума x , значение функции f (xk ) за оцен-

ку f * = f (x*) , т.е.

x* xk , f * f (xk ).

Пример. Определить с помощью пассивного поиска ми-

нимум функции

f (x) = x + 1 ,

заданной на отрезке ∆ = [0,2]: а)

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при N=6, ε=0,1; б) при N=7.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а) N=6, ε

=0,1.

 

 

 

 

 

 

 

x2 j1,

x2 j

 

 

 

 

 

 

 

 

 

 

 

Определяем пары точек

с помощью соотноше-

ния (4.1):

 

 

 

 

2 0

j 0.1 = 0,5 j 0,05,

 

 

 

 

 

 

 

 

 

 

 

x2 j−1

= 0 +

 

j =

 

 

 

 

 

 

1,3;

 

 

 

 

 

 

 

 

3 +1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 j

= 0 +

2 0

j +

0.1 =

0,5 j + 0,05,

j =

 

 

 

 

 

 

1,3.

 

 

 

 

 

 

 

 

3 +1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результаты вычислений x и

f (x) заносим в табл. 4.1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

1

 

 

 

2

 

 

 

3

 

 

 

4

 

5

 

 

6

 

 

отсчета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0,45

 

 

0,55

 

 

0,95

 

1,05

1,45

 

 

1,55

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x)

2,67

 

 

2,37

 

 

2,0026

 

2,0024

2,14

 

 

2,20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку

 

f (x4 ) = min f (xi ) ,

то

полагаем

6=[x3, x5]=

 

 

 

 

 

 

 

i =1,6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=[0,95; 1,45], x x4

= 1,05,

 

f *

f (x4 ) = 2,0024.

 

 

 

 

 

Ответ: 6

= [0,95; 1,45] ,

x* 1,05,

f * 2,0024.

б) N=7.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определяем xi помощью соотношения (4.2):

 

 

 

 

 

 

 

 

 

 

xi = 0 +

2 0

i = 0,25i,

i =

 

 

 

 

 

 

 

 

 

 

 

 

1,7.

 

 

 

 

 

 

 

 

 

 

7 +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

38

Результаты вычислений x и f (x) заносим в табл. 4.2. Таблица 4.2

 

Номер

1

 

 

 

2

3

 

 

4

 

 

5

6

7

 

 

отсчета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0,25

 

 

0,5

0,75

 

 

1

 

 

1,25

1,5

1,75

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x)

4,25

 

2,50

2,08

 

2,00

 

2,05

2,17

2,32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку

 

 

f (x4 ) = min f (xi ) ,

 

то полагаем 7=[x3, x5]=

 

 

 

 

 

 

 

i =1,7

 

 

 

 

 

 

 

 

=[0,75, 1,25], x* x

4

=1,

f * f (x

4

) =

2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ответ: 7

= [0,75; 1,25], x* 1,

 

f * 2 .

 

 

 

4.2. АКТИВНЫЕ МЕТОДЫ ПОИСКА МИНИМУМА

Метод оптимизации называется активным, если точки xi ,

i = 1, N, вычислений характеристик задачи (в данном случае зна-

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

лизации после j итераций будет обозначаться ( j) = [a( j) , b( j ) ]. Если при этом произведено i вычислений значений f(x), то

( j) ≡ ∆i , a( j) ai , b ( j ) bi .

На практических занятиях рассматриваются такие активные методы поиска, как метод дихотомии, метод Фибоначчи и метод золотого сечения. Для каждого из этих методов на j-й,

j =1,2,…, итерации рассматривается пара точек x1( j ) и x2( j ) , при этом x1( j ) < x2( j ). Значения функции в этих точках будут обозначаться соответственно f1( j) и f2( j) .

39

Метод дихотомии (половинного деления)

В данном случае общее количество вычислений f(x) четное, т.е. N = 2l, l = 1,2,", на j-м шаге (j-й итерации) произво-

дится пара вычислений x( j ) и x( j ) , отстоящих на расстоянии ε / 2

 

1

2

 

 

по обе стороны от

середины текущего

отрезка локализации

[a( j 1) ,b( j 1) ]. Если

f ( j)

f ( j) , то отбрасывается часть отрезка,

 

1

2

f ( j) > f ( j ) , то отбрасывается

расположенная справа от

x( j ) ; если

 

 

2

1

2

часть отрезка, расположенная слева от x( j ) .

 

 

 

 

1

 

Используются два условия окончания вычислений:

а) выполнение заданного количества вычислений N;

б) достижение заданной величины δ

уменьшения отрезка лока-

лизации.

 

 

 

 

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

1. Задаются N (либо δ) и ε, полагается j=1. 2. На j-й итерации вычисляются

x( j) = 1

(a( j 1) + b( j 1) ) ε ,

x( j) = 1

(a( j 1) + b( j 1) ) + ε ,

1

2

 

2

2

2

2

 

 

 

 

 

f ( j)

= f (x( j) ),

f ( j) = f (x( j) ).

 

 

1

1

2

 

2

Если

f ( j)

f ( j) , то

a( j ) = a( j 1) , b( j) = x( j) .

 

1

2

 

 

 

2

Если

f ( j)

> f ( j) , то

a( j) = x( j) ,

b( j) = b( j 1) .

 

1

2

1

 

 

 

3. Проверяется условие окончания вычислений:

а) j=N/2 либо б) L2 j δ .

L0

Если оно выполняется, то определяются итоговый отрезок локализации, оценки точки минимума x и величины минимума

f * = f (x*) , и вычисления завершаются.

Если условие не выполняется, то полагается j = j +1 и

40

осуществляется переход к п.2.

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

Пример. Определить методом дихотомии минимум функции f (x) = x4 6x2 +10 , заданной на отрезке =[1,3], при N=8,

ε=0,1.

Решение.

В данном случае будут выполнены N/2=4 итерации. Результаты вычислений заносим в табл. 4.3.

Таблица 4.3

Номер

x1( j )

x2( j )

f1( j)

f2( j)

a( j)

b( j)

итерации

 

 

 

>

 

 

 

0

 

1

3

1

1,95

2,05

1,644

<

2,446

1

2,05

2

1,475

1,575

1,680

>

1,270

1,475

2,05

3

1,713

1,813

1,004

<

1,082

1,475

1,813

4

1,594

1,694

1,211

>

1,017

1,594

1,813

 

 

 

 

 

 

 

 

Поскольку j=N/2=4, то вычисления завершаются.

Точка минимума локализована на отрезке 8 = [1,594; 1,813] . На данном отрезке исследованы 4 точки:

a(4)

= 1,594 f (a(4) ) = 1, 211;

 

 

 

 

 

 

 

 

b(4)

= 1,813 f (b(4) ) = 1,082;

 

 

 

 

 

 

 

 

 

*

(3)

= 1,713, f

*

 

(3)

) = 1,004.

x2(4)

 

 

 

x

x1

 

f (x1

=1,694 f (x2(4) ) =1,017;

 

 

 

 

 

 

 

x(3)

=1,713

f (x(3) ) =1,004;

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

Ответ: 8

= [1,594; 1,813] , x* 1,713,

f * 1,004 .

 

 

 

Соседние файлы в папке ТЕОРИЯ ОПТИМИЗАЦИИ И Алгоритмов