Исследование операций и методы оптимизации. Часть 1. Лекционный курс
.pdf
110
ШАГ 1.
Задается исходная вершина симплекса.
x0 = (x10 ,...,xn0 )
Задается коэффициент сжатия γ [0,1] и размер симплекса L. Строится симплекс  | 
	
  | 
|||||||||||||||||||||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	x0 ...  | 
	
  | 
	
  | 
	
  | 
	x0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	x1 ...  | 
	
  | 
	
  | 
	
  | 
	x1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(x j ) =  | 
	... ...  | 
	
  | 
	
  | 
	...  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(9.2)  | 
|||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	xn−1 ...  | 
	
  | 
	xn−1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	xn ...  | 
	
  | 
	
  | 
	
  | 
	xn  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Здесь j-я строка – это координаты j-ой вершины Vj  | 
	. ( j =1,...,n +1), где n - размерность  | 
|||||||||||||||||||||||||||||||||||||||||||
пространства (размерность вектора x ), i – номер координаты i =1,...,n .  | 
	
  | 
|||||||||||||||||||||||||||||||||||||||||||
Определение координат x j  | 
	, начиная со второй, производится по формуле  | 
	
  | 
||||||||||||||||||||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	x j  | 
	= x  | 
	0 + xɶj  | 
	
  | 
	, ( j =1,...,n;  | 
	
  | 
	i =1,...,n) ,  | 
	(9.3)  | 
|||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i  | 
	
  | 
	
  | 
	i  | 
	
  | 
	i  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
где xɶj - матрица размерности (n +1)× n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||
i  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	0  | 
	
  | 
	0  | 
	...  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	p  | 
	q  | 
	
  | 
	q  | 
	
  | 
	...  | 
	
  | 
	q  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(xɶj  | 
	) = q  | 
	
  | 
	p  | 
	
  | 
	q  | 
	
  | 
	...  | 
	
  | 
	q  | 
	,  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(9.4)  | 
||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	n  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	... ... ...  | 
	... ...  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	qn  | 
	
  | 
	qn  | 
	...  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	qn  | 
	
  | 
	
  | 
	pn  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	где  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	L  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	L  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	
  | 
	p  | 
	
  | 
	=  | 
	
  | 
	
  | 
	
  | 
	( n +1 + n −1) ,  | 
	
  | 
	q = p  | 
	−  | 
	
  | 
	=  | 
	
  | 
	
  | 
	( n +1 −1).  | 
	
  | 
||||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	n  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||
Векторы соответствующие вершинам V1,...,Vn , определяемые формулой (9.2),  | 
||||||||||||||||||||||||||||||||||||||||||||
составят одинаковые углы с координатными осями  | 
	x ,..., x  | 
	n  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
ШАГ 2.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
В вершинах симплекса вычисляется ЦФ f (x j ),  | 
	
  | 
	j = 0,...,n  | 
	
  | 
|||||||||||||||||||||||||||||||||||||||||
ШАГ 3.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
Проверяем условия:  | 
	
  | 
	
  | 
	x j  | 
	− x j−1  | 
	
  | 
	
  | 
	≤ ε  | 
	1  | 
	,  | 
	
  | 
	f (x j ) − f (xj+1)  | 
	
  | 
	≤ ε  | 
	2  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||||||||||||||||||||||
  | 
	Если «да», то конец; если «нет», то на ШАГ 4.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||||||||
  | 
	f (x  | 
	j  | 
	) −  | 
	f (x  | 
	j+1  | 
	) ≤ ε 2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
ШАГ 4.
Находится «наихудшая» вершина симплекса (при поиске минимума «наихудшая» вершина – та, в которой значение функции максимально).
f (xp ) = max{ f (x j ), j =1,n +1}
j
ШАГ 5.
111
Осуществляется расчет координат новой вершины (вершина отражения xp ):
  | 
	
  | 
	2  | 
	
  | 
	n  | 
	
  | 
	
  | 
  | 
	xɶp =  | 
	
  | 
	
  | 
	∑xj − xp  | 
	− xp  | 
|
  | 
	n  | 
|||||
  | 
	
  | 
	
  | 
	j=0  | 
	
  | 
	
  | 
|
ШАГ 6.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Если точка xɶp  | 
	оказывается «хуже»  | 
	всех остальных точек симплекса, то  | 
||||
осуществляется возврат к исходному симплексу с последующим его сжатием относительно «лучшей» из вершин xk
f (xk ) = min{f (x j ), j =1,n +1}
j
xɶs = γxk + (1− γ)xs, s = 0,1,...,n; s ≠ k ,
Переход на ШАГ 2.
Если xɶp не является «худшей» в новом симплексе, то перейти на ШАГ 3.
9.2.2 Метод Хука-Дживса
Процедура Хука–Дживса представляет собой комбинацию двух поисков:
а) "исследующий" поиск (для выявления характера локального поведения ЦФ и определения направления движения вдоль "оврагов") с циклическим изменением переменных;
б) ускоряющий поиск по образцу с использованием определенных эвристических правил.
Исследующий поиск. Выбирается некоторая исходная точка x0 . Задается величина шага ∆ i , которая может быть различной для разных координатных направлений и
изменяться в процессе поиска.
Если значение ЦФ в пробной точке меньше значения ЦФ в исходной точке, то шаг поиска успешный. В противном случае из исходной точки делается шаг в противоположном направлении. После перебора всех n координат исследующий поиск завершается. Полученная точка называется базовой.
Поиск по образцу. Осуществляется шаг из полученной базовой точки вдоль прямой, соединяющей эту точку с предыдущей базовой. Новая точка образца определяется по формуле:
xkp+1 = xk + (xk − xk −1) .
Как только движение по образцу не приводит к уменьшению ЦФ, точка xkp+1 фиксируется в качестве временной базовой точки и вновь проводится исследующий поиск. Если в результате получается точка с меньшим значением ЦФ, чем в точке xk , то она рассматривается как новая базовая точка xk +1. Но если исследующий поиск
неудачен, то следует вернуться в точку xk и провести исследующий поиск с целью выявления нового направления минимизации. В конечном итоге возникает ситуация, когда такой поиск не приводит к успеху. В этом случае уменьшается шаг путем введения коэффициента α и возобновляется исследующий поиск.
Схема алгоритма Хука – Дживса
112
Введем следующие обозначения: xk - текущая базовая точка;  | 
	xk−1- предыдущая  | 
|||||||||||||
базовая точка; xk+1 - точка, построенная при движении по образцу;  | 
	xk+1 - следующая  | 
|||||||||||||
p  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
(новая) базовая точка.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
Критерий останова:  | 
	
  | 
	
  | 
	
  | 
	∆ x  | 
	
  | 
	
  | 
	
  | 
	≤ ε .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
Шаг 1. Определить начальную точку x0 ; приращения (шаги) ∆  | 
	
  | 
	
  | 
||||||||||||
i  | 
	, i =  | 
	1, n  | 
	; коэффициент  | 
|||||||||||
уменьшения шага α >1; параметр окончания поиска  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
Шаг 2. Провести исследующий поиск.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
Шаг 3. Был ли исследующий поиск удачным (найдена ли точка с меньшим значением ЦФ)?
Да: переход на Шаг 5. Нет: продолжить, т.е. переход на Шаг 4.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
Шаг 4. Проверка на окончание поиска. Выполняется ли  | 
	неравенство  | 
	
  | 
	∆ x  | 
	
  | 
	
  | 
	
  | 
	
  | 
	≤ ε ? Да:  | 
||||||
  | 
	
  | 
	
  | 
||||||||||||
окончание поиска, т.е. текущая точка аппроксимирует точку экстремума x .  | 
	
  | 
|||||||||||||
Нет: уменьшить приращение ∆i / α; i =1,2, ... ,n . Переход на Шаг 2.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
Шаг 5. Провести поиск по образцу: xk+1  | 
	= xk  | 
	+ (xk  | 
	− xk −1) .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	p  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Шаг 6. Провести  | 
	исследующий поиск,  | 
	используя  | 
	точку  | 
	xk +1 в  | 
	качестве временной  | 
|||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	p  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
базовой точки. Пусть в результате получена точка xk +1.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
Шаг 7. Выполняется ли неравенство: f (xk +1) < f (xk ) ?  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
Да: положить xk−1 = xk ; xk = xk+1 . Переход на Шаг 5.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
Нет: переход на Шаг 4.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
Пример 9.1. Найти точку минимума ЦФ  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	f (x) = 8x2 + 4x x  | 
	2  | 
	+ 5x2 ;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	1  | 
	1  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
начальная точка:  | 
	x0 = [−4; − 4]T .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Решение. Зададим следующие величины:  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
∆ x = [1; 1]T - векторная величина приращения шага;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
α = 2- коэффициент уменьшения шага ∆ x;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
ε =10−4 - параметр окончания поиска.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
Итерации начинаются с исследующего поиска  | 
	вокруг  | 
	точки  | 
	x0 ,  | 
	которой  | 
||||||||||
соответствует значение ЦФ f (x0 ) = 272.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
Фиксируя переменную x2 = −4 , дадим приращение x1:
x1 = −4 +1→ f (−3;− 4) = 200 < f (x0 ) → успех.
Далее, фиксируем x1 = −3 и дадим приращение x2 :
x2 = −4 +1→ f (−3;− 3) =153 < 200 → успех.
Таким образом, в результате исследующего поиска найдена точка x1 = [−3;− 3]T ,
в которой значение ЦФ
Так как исследующий поиск был удачным, переходим к поиску по образцу:
x2p = x1 + (x1 − x0 ) = [−2; − 2]T ; f (x2p ) = 68.
113
Далее проводится исследующий поиск вокруг точки x2p . В результате получаем точку x2 = [−1;−1]T , в которой значение ЦФ f (x2 ) = 17 .
Поскольку f (x2 ) < f (x1), поиск по образцу следует считать успешным, и x2
становится новой базовой точкой. Итерации продолжаются до тех пор, пока уменьшение величины шага не укажет на окончание поиска в ε -окрестности точки минимума
x = [0; 0]T .
Достоинства метода Хука-Дживса: несложная стратегия поиска, простота вычислений, малый объем требуемой памяти (меньше чем в симплексе - методе).
Недостатки: при наличии значительных нелинейных эффектов процесс вырождается в последовательность исследующих поисков без перехода к ускоряющему поиску по образцу.
Возможные варианты модификации метода Хука - Дживса:
а) если движение по образцу приводит к успеху, то желательно увеличить длину шага по образцу, чтобы полностью использовать возможность поиска вдоль прямой;
б) введение дополнительных правил увеличения и уменьшения приращения переменных и другое.
9.3 Градиентные методы
Предполагается, что целевая функция f (x) непрерывна и имеет, по крайней мере,
непрерывные первые производные. Необходимым условием существования экстремума является наличие стационарной точки ЦФ. Таким образом, основная идея многих методов
оптимизации без ограничений в пространстве Rn заключается в отыскании стационарной
точки x , в которой градиент ЦФ f (x )= 0.
Эта задача эквивалентна решению нелинейной системы уравнений вида:
∂ f (x)
= 0, i =1,n .∂ xi
Можно отыскивать решение непосредственно этой системы, что приводит к методу Ньютона. При этом предполагается, что функция дважды дифференцируема.
В данном случае речь идет об итерационных процессах, порождающих последовательность точек x0 , x1,…, xk , сходящихся к локальному экстремуму функции f в точке x .
На каждом k -ом этапе значение xk+1 определяется выражением: xk+1 = xk + λk dk ,
где dk - направление перемещения, которое может быть:
−либо градиентом функции в точке xk , т.е. dk = −f (xk );
−либо вычисленным, исходя из направления градиента f (xk );
−либо выбранным произвольно при условии, что это будет направление спуска. В
этом случае должно выполняться неравенство вида: f T (xk )dk < 0.
Здесь λk - параметр, характеризующий длину шага.
  | 
	
  | 
	
  | 
	
  | 
	114  | 
Способ  | 
	определения dk  | 
	и  | 
	λk  | 
	на каждой итерации связан с особенностями  | 
применяемого  | 
	метода. Обычно  | 
	выбор  | 
	λk осуществляется путем решения задачи  | 
|
минимизации  | 
	f (x) в направлении  | 
	dk . Поэтому при реализации изучаемых методов  | 
||
необходимо использовать эффективные методы одномерной оптимизации.
В семействе градиентных методов следует выделить методы с заданным шагом, в которых заранее задаются значенияλk .
Доказано, что построенная последовательность сходится к решению, т.е. xk → x , если выполняются два условия:
1)  | 
	λk → 0 при k → ∞;  | 
	
  | 
	
  | 
	
  | 
|
  | 
	∞  | 
	
  | 
	1  | 
	
  | 
|
2)  | 
	∑λk → +∞ (например, λk  | 
	=  | 
	).  | 
||
  | 
|||||
  | 
	k =0  | 
	
  | 
	k  | 
||
Данная процедура ("метод расходящегося ряда") может оказаться медленной. Критерии останова (наиболее употребительные).
Пусть ε > 0 - заданная точность:
  | 
	
  | 
	
  | 
	∂f  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	∂ f  | 
	2  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
1) max  | 
	
  | 
	
  | 
	
  | 
	≤ ε;  | 
	2)  | 
	
  | 
	
  | 
	f  | 
	2  | 
	= ∑  | 
	
  | 
	≤ ε;  | 
|||||||||
  | 
	∂xi  | 
	
  | 
	
  | 
	
  | 
	∂xi  | 
||||||||||||||||
  | 
	i=1,n  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i=1  | 
	
  | 
	
  | 
||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	f ( xk+1) −( xk )  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n  | 
	
  | 
	
  | 
	∂ f  | 
	
  | 
	2  | 
||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
3)  | 
	≤ ε; 4)  | 
	
  | 
	f  | 
	
  | 
	= ∑  | 
	
  | 
	
  | 
	
  | 
	≤ ε;  | 
||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	i=1  | 
	
  | 
	
  | 
	∂xi  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
5)
∆x
= 
xk+1 − xk 
 ≤ ε .
9.3.1Метод сопряженных направлений
Данный метод и его модификации являются наиболее эффективными алгоритмами прямого поиска.
Метод ориентирован на решение задач с квадратичными целевыми функциями и
основывается на фундаментальных теоретических результатах.  | 
	
  | 
	
  | 
Основная идея алгоритма: если квадратичная функция f (x), x = (x ,..., x  | 
	n  | 
	) ,  | 
1  | 
	
  | 
приведена к виду суммы полных квадратов, то ее экстремум может быть найден в результате реализации n одномерных поисков по преобразованным координатным направлениям, т.е. не более чем за n шагов.
Рассмотрим общие принципы. Пусть имеем квадратичную функцию ( в окрестности точки оптимума любую нелинейную функцию можно аппроксимировать квадратичной функцией) вида
  | 
	1  | 
	
  | 
	
  | 
	T  | 
	
  | 
	T  | 
|
f (x) =  | 
	
  | 
	x  | 
	
  | 
	
  | 
	Ax + b x + c ,  | 
||
2  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
где A – положительно определенная симметричная матрица порядка n × n; b − n -  | 
|||||||
вектор (b ,...,b  | 
	n  | 
	)T ;  | 
	c - константа.  | 
||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
Суть методов сопряженных направлений состоит в том, чтобы начиная от точки  | 
|||||||
x0 , минимизировать последовательно  | 
	f (x) по n линейно независимым направлениям  | 
||||||
d0 , d1,..., dn−1 , обладающим свойством быть попарно сопряженными относительно квадратичной формы f (x).
115
Это условие записывается в виде
  | 
	i, j (i, j = 0,...,n −1) dT  | 
	Ad  | 
	j  | 
	= 0.  | 
	(9.3)  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	i  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	точки xk , k =  | 
	
  | 
	
  | 
	
  | 
	с xk−1,  | 
||
Итак,  | 
	предположим, что  | 
	0,n −1  | 
	определены, начиная  | 
|||||
формулой  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	xk = xk−1 − λkdk−1,  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
где λk –  | 
	значение величины  | 
	λ, минимизируещее значение одномерной  | 
	функции  | 
|||||
f (xk−1 − λ dk−1).
Теорема. Точка
  | 
	n−1  | 
	
  | 
xn = x0  | 
	− ∑λ j+1 d j  | 
	(9.4)  | 
j=0
полученная на n – ом этапе, является точкой минимума функции f (x), т.е. будет
удовлетворять соотношению:  | 
	
  | 
f (xn ) = Axn + b = 0 .  | 
	(9.5)  | 
Таким образом, начиная с точки x0 шаг за шагом строится последовательность x1,x2,..., xn , определенная соотношениями:
f (x1) = f (x0 − λ1d0) = min f (x0 − λd0) ;
λ
f (x2) = f (x1 − λ2d1) = min f (x1 − λd1);
λ
f (xn ) = f (xn−1 − λndn−1) = min f (xn−1 − λdn−1) .
λ
Точка xn и является точкой минимума функции f (x), т.е. x* = xn .
Займемся теперь вопросом вычисления сопряженных направлений d0,d1,...,dn−1.
Зададим начальную точку x0 , начальное направление d0 и вычислим точку  | 
	x1 по  | 
||
формуле  | 
	
  | 
	
  | 
	
  | 
x1 = x0 − λ d  | 
	0  | 
	,  | 
	(9.10)  | 
1  | 
	
  | 
	
  | 
|
где λ1 – скалярная величина, определяется из условия минимума функции f (x) вдоль направления d0, т.е. из условия f T (x1)d0 = 0 (см. формулу (9.7) при k =1). Определим направление d1 по формуле
d = − f (x1) + µ d  | 
	0  | 
	(9.11)  | 
|
1  | 
	1  | 
	
  | 
|
так, чтобы оно было сопряжено с направлением d0, т.е.  | 
	
  | 
||
dT  | 
	Ad = 0 .  | 
	
  | 
	(9.12)  | 
0  | 
	1  | 
	
  | 
	
  | 
Здесь µ1 – скалярный параметр, который мы будем определять из уравнения (9.12). Разложим градиент f (x) в окрестности точки x0 и подставим x = x1:
116
f (x1) − f (x0) = A(x1 − x0) . С учетом (10) получим
f (x1) − f (x0) = −λ1Ad0 . Отсюда получим выражение для d0T :
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	d0T = −  | 
	( f (x1) − f (x0))T A−1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	λ1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(9.13)  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
Подставим выражения (9.11) и (9.13) в формулу (9.12), получим:  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
( f (x1) − f (x0))T (− f (x1) + µ1d0 )= 0. Отсюда выражение для µ1:  | 
	
  | 
	
  | 
|||||||||||||||||||||||
µ =  | 
	( f (x1) − f (x0))T f (x1)  | 
	=  | 
	(A(x1 − x0))T (Ax1 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	.  | 
	
  | 
	
  | 
	(9.14)  | 
|||||||
  | 
	( f (x1) − f (x0))T d0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(A(x1 − x0))T d0  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
Если потребовать выполнения дополнительного условия ( f (x1))T f (x0) = 0,  | 
|||||||||||||||||||||||||
то вместо (14) получим  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	( f (x1) − f (x0))T f (x1)  | 
	
  | 
	(Ax1 + b)T (Ax1 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
  | 
	
  | 
	µ =  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	=  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	.  | 
	(9.15)  | 
||||
  | 
	
  | 
	
  | 
	( f (x1) − f (x0))T d0  | 
	
  | 
	
  | 
	(A(x1 − x0))T d0  | 
	
  | 
||||||||||||||||||
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
Далее, направление d  | 
	2  | 
	находим по формуле d  | 
	2  | 
	= − f (x2 ) + µ  | 
	2  | 
	d , где x2  | 
	= x1  | 
	− λ  | 
	2  | 
	d .  | 
|||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
||||
Проводя аналогичные рассуждения, получим для µ2 :  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
µ2 =  | 
	( f (x2 ) − f (x1))T f (x2 )  | 
	=  | 
	(A(x2 − x1))T (Ax2 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(A(x2 − x1))T d1  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||
  | 
	
  | 
	( f (x2 ) − f (x1))T d1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
Потребовав выполнения дополнительного условия ( f (x2 ))T f (x1) = 0,  | 
	
  | 
||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	получим  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
µ2 =  | 
	( f (x2 ) − f (x1))T f (x2 )  | 
	=  | 
	(Ax2 + b)T (Ax2 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(A(x2 − x1))T d1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||
  | 
	
  | 
	( f (x2 ) − f (x1))T d1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
На k -ом шаге получим:  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	
  | 
	( f (xk ) − f (xk−1))T f (xk )  | 
	
  | 
	(A(xk − xk−1))T (Axk + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||
µk =  | 
	
  | 
	( f (xk ) − f (xk−1))T dk−1  | 
	
  | 
	=  | 
	
  | 
	(A(xk − xk−1))T dk−1  | 
	,  | 
	(9.16)  | 
|||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	или с учетом условия  | 
	( f (xk ))T f (xk−1) = 0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||
µk =  | 
	
  | 
	( f (xk ))T f (xk )  | 
	
  | 
	
  | 
	=  | 
	(Axk + b)T (Axk + b)  | 
	,  | 
	
  | 
	
  | 
	
  | 
	(9.17)  | 
||||||||||||||
  | 
	
  | 
	
  | 
	(A(xk − xk−1))T dk−1  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||
  | 
	( f (xk ) − f (xk−1))T dk−1  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||
  | 
	
  | 
	117  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	dk = − f (xk ) + µkdk−1,  | 
	(9.18)  | 
|||
где  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
xk  | 
	= xk−1 − λkdk−1,  | 
	
  | 
	
  | 
	(9.19)  | 
|||
λ  | 
	k  | 
	=  | 
	dkT−1(Axk−1 + b)  | 
	, k =1,2,...,n .  | 
	(9.20)  | 
||
  | 
|||||||
  | 
	
  | 
	dkT−1Adk−1  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
В качестве начального направления d0 можно взять, например,  | 
	
  | 
||||||
  | 
	
  | 
	d0 = − f (x0) = −(Ax0 + b).  | 
	f (x) методом  | 
||||
Сформулируем теперь алгоритм поиска минимума функции  | 
|||||||
сопряженных направлений.  | 
	
  | 
	
  | 
	
  | 
||||
Шаг 0. Задаем начальную точку x0 и вычисляем начальное направление d0 по  | 
|||||||
формуле (19).  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Шаг k . По формуле (9.20) вычисляем λ  | 
	k  | 
	и затем по формуле (9.19) — точку xk .  | 
|||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
Затем по формулам (9.16) (либо (9.17)) и (9.18) вычисляем параметр µk  | 
	и направление  | 
||||||
dk . При k = n процесс вычислений заканчиваем. В качестве точки минимума берем  | 
|||||||
точку xn .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Замечание. Формула для µk может быть получена непосредственно из (9.18) с учетом
условия (9.12) dT Ad  | 
	= 0 . В результате имеем  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
  | 
	
  | 
	
  | 
	0  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	µk =  | 
	( f (xk ))T  | 
	Adk−1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(9.22)  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	dkT−1Adk−1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
К такому же результату мы придем, если в формуле (9.16) заменим (xk − xk−1)  | 
	на  | 
	
  | 
|||||||||||||||||
(−λkdk−1) (см. формулу (9.19)).  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||
Пример 9.2. Найти минимум функции  | 
	f (x) = 8x  | 
	2  | 
	+ 4x x  | 
	2  | 
	+ 5x2  | 
	+ x x  | 
	+ 2x x  | 
	3  | 
	+ x2  | 
||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	1  | 
	2  | 
	1  | 
	3  | 
	2  | 
	3  | 
||||
методом сопряженных направлений. Начальная точка x0 = (5,5,5)T .  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
Решение. Вычислим матрицу Гессе A = 2 f (x)  | 
	и  | 
	вектор коэффициентов линейной  | 
|||||||||||||||||
части  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
16  | 
	4  | 
	1  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
A =  | 
	4  | 
	10  | 
	2  | 
	, b  | 
	=  | 
	0  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	1  | 
	2  | 
	2  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
Тогда функцию f (x) можно представить в матричной форме f (x) = 12 xT Ax + bT x + c,
где c = 0 .
Шаг 0. Вычисляем начальное направление d0 = −(Ax0 + b) = −(105,80,25)T .
  | 
	dT (Ax0  | 
	+ b)  | 
	
  | 
Шаг 1. Вычисляем λ =  | 
	0  | 
	
  | 
	= −0.056 ,  | 
  | 
	
  | 
||
1  | 
	d0T Ad0  | 
	
  | 
|
  | 
	
  | 
||
118
x1 = x0 − λ d  | 
	
  | 
	= (−0.884, 0.516,3.599)T ,  | 
	µ  | 
	=  | 
	(A(x1 − x0))T (  | 
	Ax1 + b)  | 
	= 0.011,  | 
|||||||||||||||||||
0  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||||
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	(A(x1 − x0))T d0  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
d  | 
	
  | 
	= − f (x1) + µ d  | 
	0  | 
	= −(Ax1  | 
	+ b) + µ d  | 
	0  | 
	= (7.292,− 9.734,− 7.630)T .  | 
	
  | 
	
  | 
|||||||||||||||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	dT (Ax1 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
Шаг 2. Вычисляем λ2  | 
	=  | 
	
  | 
	1  | 
	
  | 
	
  | 
	= −0.132,  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
dT  | 
	Ad  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
x  | 
	2 = x1 − λ  | 
	
  | 
	d = (0.085, − 0.777,2.584)T  | 
	, µ  | 
	
  | 
	=  | 
	(A(x2 − x1))T  | 
	(Ax2 + b)  | 
	= 0.095,  | 
|||||||||||||||||
2  | 
	2  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||||||||
  | 
	
  | 
	
  | 
||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	(A(x2 − x1))T d1  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
d  | 
	2  | 
	= − f (x2 ) + µ  | 
	2  | 
	d  | 
	= −(Ax2 + b) + µ  | 
	2  | 
	d  | 
	
  | 
	= (−0.147,1.333,− 4.429)T .  | 
	
  | 
	
  | 
|||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	dT (Ax2 + b)  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
Шаг 3. Вычисляем λ3  | 
	=  | 
	
  | 
	2  | 
	
  | 
	
  | 
	= −0.583,  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
  | 
	d2T  | 
	Ad2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
x3 = x2 − λ3d2 = (0, 0,0)T . Точка минимума x* = x3 = (0,0,0)T .
9.3.2 Метод наискорейшего спуска (метод Коши)
Известный французский математик Коши Огюстен Луи (21.08.1789–23.05.1857) первым использовал аналогичный алгоритм для решения системы линейных уравнений.
В этом широко используемом методе (МК) λk выбираются так, чтобы минимизировать функцию по λ:
g (λ) = f xk − λ f (xk )
на множестве значений λ ≥ 0 (одномерная минимизация).
Алгоритм Коши
Шаг 1.  | 
	
  | 
	Выбрать начальную точку x0 .  | 
	
  | 
	
  | 
||||||
Шаг 2.  | 
	
  | 
	На k -ой итерации, где d  | 
	k  | 
	= − f (xk ), найти такое λ  | 
	k  | 
	, что  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
f (xk + λ  | 
	k  | 
	d  | 
	k  | 
	)= min f (xk + λd  | 
	k  | 
	).  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	λ≥0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
Положить xk+1 = xk + λk dk . Шаг 3. Проверка критерия останова.
Да: окончание поиска→ конец. Нет: k = k + 1, → Ш. 2.
МК обладает устойчивостью, т.е. при достаточно малом значенииλk
обеспечивается выполнение неравенства:
f (xk +1 )≤ f (xk ).
119
МК позволяет существенно уменьшить значение ЦФ (быстро спуститься на "дно оврага")
при движении из точек, расположенных на значительных расстояниях от точки x , но в дальнейшем может произойти "зацикливание". Поэтому МК часто используются совместно с другими градиентными методами (например, методом Ньютона) в качестве начальной процедуры.
Недостаток: для некоторых типов функций сходимость может оказаться медленной. В самом деле, если λk минимизирует функцию
  | 
	g(λ) = f (xk + λd  | 
	k  | 
	), то должно быть  | 
|||||||
dg (λk )  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
= d  | 
	
  | 
	f (xk + λ  | 
	
  | 
	
  | 
	d  | 
	
  | 
	)= dT f (xk +1 )= 0,  | 
|||
  | 
	k  | 
	k  | 
	k  | 
|||||||
dλ  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	k  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
откуда вытекает равенство:
dkT dk +1 = 0,
которое доказывает, что последовательные направления ортогональны. В случае
Рис. 9.2. Метод Коши-«зацикливание» траектории спуска
ярко выраженной нелинейности ("овражности") ЦФ происходит "зацикливание" (см. рис. 9.2).
Пример 9.3. Методом Коши найти  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||||
min f (x)= 8x2  | 
	+ 4x x  | 
	2  | 
	+ 5x2  | 
	;  | 
	x0 = [10;10]T .  | 
|||||||||||||||||||||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
Критерии останова:  | 
	
  | 
	
  | 
	
  | 
	f (xk )  | 
	
  | 
	
  | 
	
  | 
	≤ ε или  | 
	
  | 
	
  | 
	
  | 
	
  | 
	xk +1 − xk  | 
	
  | 
	
  | 
	
  | 
	≤ ε.  | 
|||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||||||||
  | 
	
  | 
	Решение. Вычислим компоненты градиента:  | 
||||||||||||||||||||||||||
  | 
	∂f  | 
	= 16x + 4x  | 
	2  | 
	;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	∂f  | 
	= 10x  | 
	2  | 
	+ 4x .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	∂x2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
  | 
	∂x1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	f (x0 )построим первое приближение:  | 
|||||||
  | 
	
  | 
	С помощью формулы xk +1 = xk  | 
	− λ  | 
	k  | 
||||||||||||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
x1 = x0 − λ0 f (x0 ).
Выберем λ0 таким образом, чтобы минимизировать функцию по λ:
f (x1 )→ min → λ0 = 0,056 .
λ
Следовательно: x1 = [−1,18;2,14]T . Далее найдем точку
x2 = x1 − λ1 f (x1),
вычислив градиент в точке x1 и проведя поиск вдоль прямой.
