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

Численные методы решения задач оптимизации. Учебное пособие

.pdf
Скачиваний:
4
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Продолжаем поиск по образцу, пока функция убывает. Когда
()4(
)
f
(
)
(
(
(
(
)
(1) ()kk
перестает выполняться условие
fx fx

, уменьшаем шаг

и снова проводим исследующий поиск. Процесс продолжается
до тех пор, пока не выполнится условие x.
Пример 11 Найти минимум функции
xx x методом Хука и
22
1
12
4
Дживса.
Решение.
1
шаг. Зададим
12
1 – шаг по координатным направлениям
(0)
x – базис, 0,6 – точность решения,
1; 1, 5
10
 
dd

12
,
 
01
 
,
10  –
ускоряющий множитель, 2 1  – коэффициент
уменьшения шага.
Пусть
шаг. Так как
2
(1) (0)
yx i k  
неудачен. Так как
(2)
y
0;1,5).
3
шаг. Поскольку
1
2
. Так как
Так как
(3)
y
0; 0,5).
1
. Поскольку
3
4
шаг. Поиск по образцу:
Пусть
T

(2) (2)

T
(1) (3)
xy – новый базис, 1; : 1 2ikk, найдем
1; 1, 5);1; 0.


(2) (2)
22
2in
0; 0,5
T
(1)
(1)
12in 
22
и
2;1,5 45 1;1,5 25fy d f f , то шаг
11
11
, то
0; 2,5 29 13fy d f fy

0; 0,5 5fy d f fy , то шаг удачен,

(3) (0)
 
(1) ( 1) ( 1) ( )kkk
yx x x
 .
T
 
0;1,5 13 1; 1,5fy d f f , то шаг удачен,
 
, переход к шагу 2*.
:2i


525fy fx  , переход к шагу 4.


, то шаг неудачен.
(1) (1) (1) ( 0)
yx xx
  
1 0;0,5 0;0,5 1;1,5 1; 0,5 .


TTT T
 
Выполнен поиск по образцу. Переход к шагу 2.
*
61
2
fy
ffy
fy
ffy
(
(
(
)
(
fy
ffy
fy
ffy
(
)
. Так как
2
Так как
Поэтому
2
3
3
2
(3)
y  
3
3
шаге 4
1
4
найдем
yy
. Поскольку 2in, то :2i , переход к шагу 2. . Так как
1; 0, 5).
. Поскольку 2in и
0
успешен,
. Пусть
(1) (1)

(2) (1)
T
xy – новый базис, 1; : 1 2ikk,
(1) (1)

     , то шаг неудачен.
11
d
   , то шаг неудачен.
11
d

1; 0, 5).
(2) (2)

переход к шагу 4.
(2) (3)
22
1; 0 , 5
0; 0,5 5

2; 0,5 5
T
1; 0 , 5 1 5fy d f fy    , то шаг удачен,

(3) (1)

T



5fy fx, то поиск по образцу на
(1) ( 2) (2) (1)
yx xx
  
Выполнен поиск по образцу. Переход к шагу 2.
4
. Так как
2
Так как
(3)
y  
4
3
. Поскольку
5
. Так как
2
Так как
5
3
. Поскольку
шаге 4
1
неудачен,
5
шаг. Так как
Пусть
1 1;0,5 1;0,5 0;0,5 2;0,5 .

(1) (3)

(1) (3 )

1; 0, 5).
T
11
1in
(2) (3)

(2) (3)

(1)(2) (3)(2)
yx x x i kk   
22
2in
переход к шагу 5.
12
( 1;0,5) ; ( 1;0,5) ; 1; : 1 3

11
3; 0,5 17fy d f fy , то шаг неудачен,

, то
22
2; 0,5 5fy d f fy   , то шаг неудачен.

и

1 , то уменьшим шаг
TT
TTT T
 
1; 0 , 5 1fy d f fy   , то шаг неудачен.

, переход к шагу 2.
:2i
2;1,5 13fy d f fy , то шаг неудачен.


(3) (2)



1fy fx, то поиск по образцу на
  .
12
1 2
0,6
,
переход к шагу 2.
6
. Так как
2
Так как
(2) (1)
му
yy
6
3

. Поскольку 1in , то :2i , переход к шагу 2.
(1) (1)

(1) (1)
d
 , то шаг неудачен. Поэто
11
1; 0 , 5
d
   , то шаг неудачен.
11
1, 5 ; 0 , 5 2

T
.
0,5; 0,5 2



62
7
(
)
fy
ffy
(
)
(
)
()4(
)
f
()4(
)
f
. Так как
2
Так как
7
3
. Поскольку 2in и
(2) (3)

(2) (3)

22
22
1; 0 0fy d f fy , то шаг удачен.

 
1; 1 4fy d f fy , то шаг неудачен.



(3) (3)
01fy fx , переход к шагу 4.
2
. Пусть
4
(4) (3)
xy
1; 0
T
– новый базис,
найдем
(1) (4) (4) (3)
yx xx
      
1 1; 0 1; 0 1; 0, 5 1; 0, 5 .

 
TT T T
 
Выполнен поиск по образцу. Переход к шагу 2.
8
. Так как
2
Так как
Тогда
yy
8
3
. Поскольку 1in , то :2i , переход к шагу 2.
9
2
. Так как
Так как
9
3
. Поскольку

(2) (1)
(2) (2)

образцу на шаге 4
1
5
. Так как
(1) (1)

(1) (1)
11
1; 0 , 5

22
2
неудачен,
12
d
   , то шаг неудачен.
11

T
.
(2) (2)
22
1; 0 0fy d f fy  

2in
и
1 , то поиск завершен,
0,5; 0, 5 2

0,5; 0,5 2fy d f fy , то шаг неудачен.
1; 1 4fy d f fy , то шаг неудачен.


(3) (4)
, то шаг удачен,

переход к шагу 5.
На рис. 6 приведены линии уровня функции
построенные в системе MathCAD.
1; : 1 4ikk



y 
1; 0 0fy fx, то поиск по

*
x  .
xx x
1; 0
T
,
(3)
(1;0)
1
12
T
.
22
,
4
fx1() 4 x1 1()
fx1()
f1 x1()
Рис. 6. Линии уровня функции
 f1 x 1() 1 x1 1()
3 2 101
2
x1

2
1
xx x
2
22
1
12
4
63
5.1.2.3. Комплексный поиск Бокса
E
x
x
()
f
()
x
j
()
f
()
)
Для реализации метода комплексного поиска Бокса используется следующий алгоритм:
1.
Строится многогранник с 2n вершинами (комплекс), для чего
выбирается 2n точек из пространства
n
по формуле
(0)
lrul i nlxu     , (19)
iiiii iii
где
iii iiii i iii i
,,, , ,,,, ,,,
xx x l ll l u uu u ,

12 12 12
nn n
дослучайные числа, равномерно распределенные на интервале
Целевая функция вычисляется в каждой вершине, и вершина, в
2.
которой
x имеет наихудшее значение, заменяется новой вершиной,
,1,2,,2,
r – псев
i
0,1 .
находящейся на прямой, проходящей через наихудшую вершину и центр тяжести оставшихся точек. Координаты центра тяжести можно определить по формуле
()
k
xxx
cj ij hj
где j – номер координаты вектора x
i –
номер точки;
h –
номер удаляемой точки.
1

21
n

1
i

;
i
(20)
,
2
n

Координаты новой точки определяются по формуле
(1) ()
kk
xxx
  (21)
hj cj cj hj
,1,2,,2,
n
где 1 – коэффициент отражения (например, 1,3 ).
Если значение
3.
x в найденной новой вершине остается
наихудшим, то она заменяется другой, расположенной на расстоянии, равном половине расстояния от новой вершины до центра тяжести.
Если нарушается ограничение
(
lxu, то новая вершина также
iii
передвигается на половину расстояния к центру тяжести.)
4.
Поиск продолжается до тех пор, пока многогранник не будет
стянут в центр тяжести (в пределах заданной точности).
Пример 12
Выполнить минимизацию функции
0 6; 20 80; 0,001xx  методом комплексного поиска Бокса.
12
fx x x
22
60,25(40
12
,
64
Решение.
(
)
(
)
(
(
f
(
f
(
(
)
(
(
По условию задачи, нижние границы переменных
верхние
6; 80
u .
i
0; 20
l ,
i
Случайным образом выбираем значения
0,1; 0,8, 0,7; 0,5 , 0, 9; 0,2, 0,3; 0,4rr
 
12
r из интервала
i
0,1
Строим многогранник с 4мя вершинами, для чего выбираем 4
точки из области определения функции по формуле (19).
(0)
11 1 11 1 1
(0)
00,8200 16;x    
12
(0)
00,7200 14;x   
13
(0)
0 0,5 20 0 10.x     Аналогично
14
(0) (0)
21 2 21 2 2
(0)
6 0,2 80 6 20,8;x    
22
(0)
60,3806 28,2;x   
23
00,1200 2.xlrul     Аналогично
60,9806 72,6;xlrul     
:
(0)
6 0,4 80 6 35,6.x    
24
Вычисляем в каждой полученной вершине значение функции и
выбираем наихудшее.
2; 72,6)289,69;f
16;20,8)1628,16; 14;28,2)1210,81;
10;35,6)604,84.f
В точке
(
наихудшее) значение; поэтому заменяем ее другой, расположенной на
(0) (0)
xx функция принимает максимальное
h
2
16;20,8
прямой, проходящей через нее и центр тяжести оставшихся точек.
Координаты центра тяжести рассчитаем по формуле (20):
11
xx   
12
cc
21410)8,6667;
33
72,6 28,2 35,6)45,4667.
65
Координаты новой точки определяем по формуле (21), приняв
(
x


s
1, 1 :
(1)
xx 
Как видим, ограничение
8,6667 1,1 (8,6667 16) 0,6;
21 (1)
45,4667 1,1
 
22
45,4667 20,8)77,88.
lxu не нарушается; поэтому
iii
продолжим вычисления с новой точкой.
Процесс заканчивается при выполнении условия
(1) ()
kk
()()
fx fx
.
5.1.2.4. Повторяющийся случайный поиск
Метод случайного поиска представляет собой выбор наилучшего направления минимизации из многих возможных, получаемых случайным путем, и переход к новой точке с минимальным значением функции в этом направлении.
Алгоритм метода.
Задается начальная точка
1.
2.
Строится случайная траектория из последовательности шагов
(0)
.
по формуле
(1) () () ()
kkk k
 
где
xx r
()k
числовой параметр, увеличивающийся при удачном и умень
–
шающийся при неудачном шаге (можно начать с
–
числовой параметр, изменяемый в процессе поиска (можно принять 0,5 );
()k
z –
вектор «предыстории», учитывающий среднее направление поиска на предыдущих шагах:
( 1) () ( 1) () ()
kk kkk

()k
r –
zz xxs
единичный вектор, компоненты которого определяются слу
  ;
чайным образом с помощью генератора псевдослучайных чисел на интервале [0, 1], а затем весь вектор нормируется
(
делится на длину);
()k
s – вектор масштабных множителей (
–
постоянный весовой множитель = 0,5.
()
k
z
()
k
z
1

1


()1k
 
);
,
()1k
);
66
(1)k
x
x
()
)
s
(
(
)
(
(
)
3.
Вектор
выполняется или нет неравенство
нят, то
(1) ()kk

будет принят или отвергнут в зависимости от того,
(1)k
, если нет, то
(1) ()kk
fx fx
(1)
k
 ,

. Если
()
k
,1
например 1, 3 .
при
Пример 13 Выполнить минимизацию функции
22
fx x x
60,25(40
12
методом повторяющегося случайного поиска. Точность вычислений
0,001 .
Решение.
1

Задаем:
(0)
x

41

Случайным образом выбираем значения
(1) (0) (0) (0)
xx r
    
zz zz
(1)
x
x
 
1 1 0,5 1 1 0,5 0,001 1,5005;
  
1
(1)
41 1 0,5 0 1 0,5 0,193 41,0965;
  
2
(1) (1)

12
(1)(1) (0)(0)
,,fx x fx x
12 1 2
()1k
,
, 0,5 ,
(0)
(0) (0)
110,5
(0) (0)





(0) (0)

12
,
0,001; 0,193 .r

    



,
1,5005;41,0965)13,8096.fx x f
()1k
,  = 0,5,
r из интервала
i
1
 
41

1; 4 1
6,25fx x f;
 ,
(1)
z
(0)
(0)
0,5
2
1


0

0,1
10,5)0,1 .
.
:
(2)
x – не принимается.
(1) (1) (0)
zxx
111
1,5005;41,0965
(2)
x
x
0,5 1 1 0,5 1 0,5 0,5 1,27275 1 0,636375;
   

1 0,5 0,5 1 0,5 0,091 1,27275;
 
1
(2)
41 0,5 0,5 0 0,5 0,014 41,0035;
   
2



(1) (1) ( 0)
0,5 0 1 0,5 1 0 0,5 41,0035 41 0,00175;
    
zxx
222



67
(1)


(
(
f
()
()
f
()
f
g
()
f
g
()
f
(2) (0) (1) (2)
 
xx r
z
1;

(1)
z
 
(2)
x
x
1 0,5 0,5 0,5 0,091 1,27275;
  
1
(2)
41 0,5 0,5 0,5 0,014 41,10058;
    
2
  

0,636375 0,00175
  

(2) (2)
,

12
(2)(2) (1)(1) (2)
fx x fx x
,, 0,25

12 12
0,636375
22
0,00175
0,636375 0,00175
(0) (0)

12
22
,
1; 4 1)6,25fx x f;
1,27275; 41,10058)10,02217.fx x f
(1)

2
и т.д., процесс заканчивается, если выполняется условие
(1) ()
kk
()()
fx fx
.
5.2. Методы первого порядка
Рассмотрим методы поиска, в которых наряду со значениями функции используется и ее градиент.
Напомним, что градиент функции

fx fx fx

k
()
( ) , , ...,
fx

()
Вектор
xc ; его направление совпадает с направлением наиболь
const
k
fx или
шего возрастания функции вектор
rad

x
, противоположный градиенту и называемый анти
  

xx x


12
gradfx ортогонален линиям уровня

в заданной точке. Следовательно,
x
градиентом, направлен в сторону наискорейшего убывания функции
наискорейшего спуска). В точке минимума функции
(
x определяется формулой

T
.
n
rad
0
x .
68
5.2.1. Метод градиентного спуска
x
()
f
Идея метода градиентного спуска состоит в следующем. Выбираем некоторую начальную точку и вычисляем в ней градиент рассматри ваемой функции. Делаем шаг в направлении антиградиента. В ре зультате приходим в точку, значение функции в которой обычно меньше первоначального. Если это условие не выполнено, т.е. значение функции не изменилось либо даже возросло, то нужно уменьшить шаг. В новой точке процедуру повторяем: вычисляем градиент и снова делаем шаг в обратном к нему направлении. Процесс продолжается до получения наименьшего значения целевой функции. Момент оконча ния поиска наступит тогда, когда движение из полученной точки с любым шагом приведет к возрастанию целевой функции.
Определим итерационный процесс:
(1)() ()()()()kkkkkk
xxxx s

,
где
() ()kk
s –
()k
()k
s –
шаг минимизации; скаляр;
–
единичный вектор в направлении минимизации,
()
k
fx

.
()
fx

k
s
()
k

Следовательно,
() ()
kk
(1)
kk
xx


fx

()
fx

. (22)
k
Поскольку один шаг в направлении наискорейшего спуска в общем случае не приводит в точку минимума
x , формула (22) должна
применяться многократно до тех пор, пока не будет достигнут минимум. В точке минимума
2()k
fx.

Процедура поиска может закончиться в стационарной точке (в которой
()0k
fx) различного типа. Поэтому иногда следует опре

делять, является ли данная точка точкой локального минимума (т.е. решением) или седловой точкой. Если это седловая точка, то необхо димо выйти из нее, применив какойлибо метод нулевого порядка, после чего минимизация может опять продолжаться градиентным ме тодом. Тип стационарной точки можно определить с помощью матри
69
цы Гёссе
()
f

()
f
f
()
f
2()

2()

k
fx



 
k
fx

: если эта матрица является положи
xx
ij
тельноопределенной, то имеем точку минимума, иначе стационарная точка является седловой.
Критерий окончания поиска основывают:
a) на значении
x (когда уменьшение функции не происходит ни
в одном направлении);
b) на значении
()k
fx (когда вектор

(1)k
fx
,

()k
fx близок к 0):

где – заданная точность,
(1)
k
fx

x
i
()k
fx .


fx

c)
на комбинации значений
(1)
k
n
1
i
x и
Важным вопросом является выбор величины шага
используется один из следующих способов выбора вектора
()
1)
2)
3)
k
 ;  при k ;
const
()0k
целевая функция минимизируется по :
() ()
min
kk
xs

 .
2
 
;
()k
. Обычно
()k
:
Для этого значение может быть вычислено из уравнения
() ()
df x s
kk


0
Минимум функции
.
minkfx можно определить
()

d
также какимлибо численным методом.
Имеет место следующая теорема сходимости градиентного метода
минимизации.
Если
x – выпуклая функция, имеющая производные до
третьего порядка, то метод наискорейшего спуска сходится из любого начального приближения.
При использовании градиентного спуска в задачах оптимизации
основной объем расчетов приходится обычно на вычисление градиента
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]