最优化方法-共轭方向和共轭梯度法
共轭梯度法的迭代方向

共轭梯度法的迭代方向一、引言共轭梯度法是一种优化算法,用于解决线性方程组和最小化二次函数。
它基于共轭方向的概念,可以在相对较少的迭代次数内找到精确解。
二、共轭方向的概念在求解线性方程组Ax=b时,我们可以使用梯度下降法来最小化误差。
但是,梯度下降法可能会出现收敛速度缓慢的问题。
这是因为当我们按照负梯度方向进行迭代时,可能会遇到一个局部极小值点,并且在该点附近来回震荡。
为了解决这个问题,我们可以使用共轭方向。
如果两个向量a和b满足aTAb=0,则称它们是关于A共轭的。
也就是说,如果a和b都是A矩阵的特征向量,则它们是关于A共轭的。
三、CG方法CG方法(Conjugate Gradient)就是利用共轭方向来优化线性系统Ax=b的算法。
具体步骤如下:1. 初始化x0和r0=b-Ax0;2. 设置p0=r0;3. 对于k=0,1,2,...,直到收敛为止:a. 计算αk=rTk/rkTArk;b. 更新xk+1=xk+αkp;c. 更新rk+1=rk-αkAp;d. 计算βk+1=rTk+1/rkT+1;e. 更新pk+1=rk+1+βkp;其中,rk表示第k次迭代的残差,pk表示第k次迭代的搜索方向,αk是步长,βk是更新搜索方向时的系数。
四、共轭梯度法的迭代方向共轭梯度法中的搜索方向pk是关于A矩阵共轭的。
也就是说,对于任意两个不同的搜索方向pi和pj,它们满足piTApj=0。
为了证明这个结论,我们可以使用归纳法。
假设前i-1个搜索方向都满足共轭条件,则:piTApj=(ri-αiAi)TA(rj-αjAj)=riTA(rj-αjAj)-αiAiTA(rj-αjAj)=riTArj-αiAiTAjTArj其中,第一个等式使用了ri和rj关于A共轭的事实;第二个等式使用了公式rk+1=rk-αkAp;第三个等式使用了Ai和Aj关于A共轭的事实。
由于riTArj=0(因为ri和rj是关于A共轭的),所以我们得到piTApj=-αiAiTAjTArj=0。
共轭方向与共轭梯度法-最优化方法

f (X1)T P0 0 ,所以 f (X1)T P0 1P1TQ P0 0
P1TQ P0 0
(1)
以上就是搜索方向P1所必须满足的(必要) 条件。这也是使X2是极小点的充分条件。 P1,P2称为关于Q的共轭方向。
讨论表明 对于二维的具有正定矩阵Q的 二次函数f(X),从任一初始点出发,依次沿关 于Q共轭的两个方向进行一维搜索,必可达到 f(X)的无约束精确极小点。
Pk 1
0
且对j 0,1 , k 2, 有
PjT QPk PjT Q f ( X k ) k1Pk1
PjT Qf
(X
k
)
k
PT
1 j
QPk
1
f ( X k )T QPj
f ( X k )T f ( X j1) f ( X j ) j
f ( X k1 ) QX k1 b Q( X k k Pk ) b (2)
f ( X k1 ) f ( X k ) k QPk
所以
f ( X m ) f ( X m1) m1QPm1
f ( X m2 ) m2QPm2 m1QPm1
其中1 是最优步长,1>0 .因为 X * 是无约束极小点。
故 f ( X * ) 0 即 QX * b 0
f (X1) QX1 b
Q( X * 1P1) b (QX * b) 1QP1 1QP1
又因为 X1是f(X)沿P0方向的直线l0上的极小点,故
设 X En ,
,Q为对称正定矩阵,P0,
P1,···,Pm-1是关于Q共轭的m个共轭方向,
4.4共轭方向法4.5 共轭梯度法

序框图如下图所示。
开始
给定 X 0、d0、
k0
X (k 1) X k ak d k ak : min f ( X k ak d k )
k k+1
YES Xk X(k+1)
结束
NO
f (X k1) <
提供新的共轭方向
共轭方向 + 精确一维搜索 = 二次终结 设 Z1 ,Z2 ,……Zm 关于正定矩阵A共轭。则从任意初 始点出发 二次型目标函数
2 0
2 9
,
2 T 3
X
2
X1
1d1
2
3
0
2
1
9 2
3
2 3
2 9
1
2 3
1
将 X 2 代入原方程,将 n 维问题化成一维问题。
令 将
(1) 1 代入
0 X2
,解得 1
式得
3 2
。
X
2
2 3
2 9
1
2 3
1
1 1
计算 X 2 点的梯度
g2
f
(
X
2
)
4 0
(0 )
(0 ) 120 4
令 (0 ) 0 ,解得
0
1 3
将
0
1 3
代入
X1
式得
X
1
20
0
2
3
0
将 X 1 代入求梯度公式
g1
f
(
X
1)
3x1 2
x2
x1
x2
x1
2 3
x2 0
0
2
3
0
g1 g0
共轭梯度法在优化问题中的应用

共轭梯度法在优化问题中的应用共轭梯度法是一种高效的优化算法,在许多优化问题中都得到了广泛的应用。
它是一种迭代方法,用于解决最小化二次函数的优化问题。
在本文中,我将介绍共轭梯度法的原理和算法,并探讨它在优化问题中的应用。
一、共轭梯度法的原理共轭梯度法的核心思想是通过迭代的方式,找到一个与之前迭代步骤方向相互垂直的搜索方向,以加快收敛速度。
在每一次迭代中,共轭梯度法根据当前的搜索方向更新搜索点,直到找到最优解或达到预定的收敛标准。
具体来说,共轭梯度法从一个初始搜索点开始,计算对应的梯度,并沿着负梯度方向进行搜索。
通过一定的方法找到一个与之前搜索方向相互垂直的新搜索方向,并以一定步长更新搜索点。
迭代过程将重复进行,直到满足收敛标准或达到最大迭代次数。
二、共轭梯度法的算法共轭梯度法的算法包括以下几个步骤:1. 初始化搜索点x0和梯度g0,设置迭代次数k=0。
2. 计算当前搜索方向d_k=-g_k(k为当前迭代次数)。
3. 通过一维搜索方法找到最佳步长α_k。
4. 更新搜索点x_k+1 = x_k + α_k * d_k。
5. 计算更新后的梯度g_k+1。
6. 判断是否满足收敛标准,若满足则算法停止,否则转到步骤7。
7. 计算新的搜索方向β_k+1。
8. 将迭代次数k更新为k+1,转到步骤3。
这个算法保证了每一次迭代中的搜索方向都是彼此相互垂直的,从而加快了收敛速度。
三、共轭梯度法的应用共轭梯度法在优化问题中有广泛的应用,特别是在二次规划、线性规划和非线性规划等领域。
在二次规划问题中,共轭梯度法可以高效地求解线性系统Ax=b,其中A是一个对称正定的矩阵。
由于共轭梯度法的特性,它只需要进行n 次迭代,其中n是问题的维度,就能得到精确的解。
这使得共轭梯度法在大规模线性系统求解中具有重要的应用价值。
在线性规划问题中,共轭梯度法可以用于求解带有线性约束的最小二乘问题。
共轭梯度法通过将线性约束转化为一系列的正交子空间,从而在求解最小二乘问题时能够更快地收敛。
共轭方向法

T T d g g , i i ig i
(下降条件)
系数的其他形式
(1)FR公式
T gk gk k 1 T gk 1gk 1
(1964)
(2)PRP公式
T g g g k k k 1 (1969) k 1 T g g k 1 k 1
T 非零向量, 如果:d 0 , i j i Gd j , d , , d 则称 d 是关于 G 共轭的. 1 2 m
注: 若 G I , 则是正交的,因此共轭是 正交的推广.
定理:
设 G为 n 阶正定阵, 非零向量组 关于 G共轭, 则必线性无关. d , d , , d 1 2 m
(1)
1 x0 1 1 d0 0
1 g 0 Gx 0 b 1
T g0 d0 0 T 1 d0 Gd 0
0 x 1 x 0 0d 0 1
0 g 1 Gx 1 b 1
FR共轭梯度法收敛定理
上连续可微, 且有下界, 那么采用精确线搜索下的 FR共轭梯度法产生的点列 x k 至少有一个聚点 是驻点,即: 其最后一个点是 (1) 当 x k 是有穷点列时, f x 的驻点. 它必有聚点, 且任一 (2) 当x k 是无穷点列时, 聚点都是 f x 的驻点.
共轭方向法基本定理
, d , , d 定义2: 设 n 维向量组 d 1 2 k线性无关,
k 1 x R , 向量集合 H x R 1 k 1 id i i i 1 , d , , d 为 x1 与 d 生成的 k维超平面. 1 2 k
工程优化 第4章-3

g k +1 与 g1 ,g 2 ,...,g k 正交,p k +1 与 p1 ,p 2 ,...,p k A共轭。 (a) 证明 g k +1 与 g1 ,g 2 ,...,g k 正交; 1 f ( x ), i 1, 因为 i p i i 1 f ( x ) p , i 2,..., n, i 1
共轭方向法---共轭方向的性质
性质4 设n元函数f(x)=1/2xTAx+bTx+c, A=AT正定,又设n维非零向量组p1, p2,…, pn是A 共轭向量组,从任意点x1出发,相继以p1, p2,…, pn 为搜索方向进行精确一维搜索,则
(1) ▽f(xk+1)与p1, p2,…, pk (k=1,2,…,n)正交;
共轭方向法和共轭梯度法
最速下降法,计算步骤简单,但收敛速度慢。
Newton法和阻尼Newton法都有一个优点:收敛速度快,但 需要计算Hesse矩阵和Hesse矩阵的逆矩阵,计算量和存储量都 很大。
需要寻找一种好的算法,这种算法能够兼有这两种方法的 优点,又能克服它们的缺点,即收敛速度快同时计算简单。 这就是要讨论的共轭方向法和共轭梯度法。
=0
结论(b)成立,进而结论(2)成立。
共轭梯度法
定理1:设向量组 p , p ,..., p 是由上述方法产生的向量组,向量
组 g1 , g 2 ,..., g n 是由各点的梯度生成的向量组, ( g k f ( x ) ) 则
k
1 2 n
(1) g1 , g 2 ,..., g n 是正交向量组;
( pi )T Ap j 0 (i j, j 1, 2,..., m)
最优化方法3-5共轭梯度法和共轭方向法

算法 3.5.1
设目标函数为 f (x) 1 xTGx bT x c,其中G 正定。 2
给定控制误差 。
Step1. 给定初始点 x0及初始下降方向 p0,令k 0。
Step2. 作精确一维搜索,求步长k
f
( xk
k
pk )
min
0
f
( xk
pk
)
Step3. 令 xk1 xk k pk 。
称 Fletcher-Reeves 公式,简称 FR 公式。
k 1
gkT Gpk1 pkT1Gpk 1
Gpk 1
1
k 1
(gk
g
k 1 ) ,
gkT Gpk1
1
k 1
gkT
(gk
g
k 1)
,
pkT1Gpk 1
1
k 1
(g
k1 k2
pk2 )T
(gk
g
k 1)
1
k 1
g
g T
k 1 k
1
(2)Polak-Ribiere-Polyak 公式
故
k 1
g
T k
(
gk
g
k 1)
gkT1gk 1
此式是 Polak 和 Ribiere 以及 Polyak 分别于 1969
年提出的,故称 Polak-Ribiere-Polyak 公式,简称 PRP
0,i
1,2,L
,k
(ii) xk1是二次函数在k 维超平面Hk 上的极小点。
证明 由引理 3.5.2,只需证明(i),
共轭梯度法总结

共轭梯度法(Conjugate Gradient Method)总结1. 引言共轭梯度法是一种用于求解线性方程组或优化问题的迭代算法。
它在大规模问题上具有较高的效率和收敛速度,并且不需要存储完整的矩阵。
共轭梯度法最早由Hestenes和Stiefel于1952年提出,后来经过多次改进和推广,成为求解稀疏线性方程组和优化问题的重要工具。
2. 基本原理共轭梯度法的基本思想是利用共轭方向的性质,通过一系列迭代来逼近最优解。
对于一个对称正定矩阵A和一个向量b,我们希望找到一个向量x使得Ax=b成立。
通过引入残差r=b-Ax,我们可以将问题转化为求解残差最小化的问题。
定义两个向量d和g满足以下关系:d_i^TAd_j=0 (i≠j),则称d_i与d_j是关于矩阵A共轭的。
在每次迭代中,选择与之前所有搜索方向都共轭的搜索方向,并沿着该方向进行搜索。
3. 算法流程步骤1:初始化给定初始解x_0,计算初始残差r_0=b-Ax_0,并令搜索方向d_0等于r_0。
步骤2:迭代重复以下步骤直到满足收敛条件: - 计算当前搜索方向的梯度g_k=Ad_k。
- 计算步长alpha_k=r_k Tr_k/(d_k TAd_k)。
- 更新解x_{k+1}=x_k+alpha_k d_k。
- 更新残差r_{k+1}=r_k-alpha_k Ad_k。
- 计算新的搜索方向d_{k+1}=r_{k+1}+beta_{k+1}d_k,其中beta_{k+1}=r_{k+1}^T r_{k+1}/(r_k^T*r_k)。
步骤3:输出结果返回近似解x。
4. 关键观点和发现共轭梯度法具有以下几个关键观点和发现: - 共轭方向的选择:在每次迭代中,选择与之前所有搜索方向都共轭的搜索方向。
这样可以保证每次迭代都能沿着一个新的、不再相关的搜索方向前进,从而避免了无谓的震荡和重复计算。
- 最优解性质:对于一个n维问题,共轭梯度法最多需要n步就可以达到最优解,即解决了一个n维线性方程组的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由3式可以看出
2020/3/6
16
2.共轭方向-共轭方向法
• 基本定义
利用共轭方向作为搜索方向的无约束极小化算法
• 通用步骤:
(1)任取X 0 ,以及在X 0的下降方向P0 , k 0; (1)求解一维搜索问题
min f ( X k Pk ),为最优步长,是个数值.
(3) X k1 X k k Pk ;
X
T QX
bT
X
c, Q正定,
X 0是初始点,
P0
f
(X0)
X k1 X k k Pk , k 0,1...m 1, k是最优步长,且
Pk1 f ( X k1) ak Pk (这是构造的结果)
其中ak
f
( X k1)T QPk PkT QPk
,
P0
(
X
)T
k 1
Pk
)T
PkT f ( X k1)
f ( X k1) QX k1 b Q( X k k Pk ) b, ( X k 1 X k k Pk )
f ( X k1) (QX k b) kQPk f ( X k ) kQPk
当m 2时 所以,P0,P1, Pm1是线性无关的。
P0T QP1
P0T Q f ( X 1 )
f ( X 1 )T QP0 P0T QP0
P0
P0T Qf ( X 1 ) f ( X 1 )T QP0 0
表明,P0与P1共轭。
2020/3/6
2020/3/6
4
1.共轭方向法的基本原理
• 已知 X1 点是在 X 0 点在直线 l0 上沿 P0 搜索方向的一个极小 点。(l0 与 P0 是平行的)
• 过 X1 点找一个方向 P1 ,沿平行于P1 的直线 l1 进行一维搜索 ,找到点 X 2为全局的极小点。
2020/3/6
5
1.共轭方向法的基本原理
共轭方向和共轭梯度法
2020/3/6
1
本节主要内容
1 共轭方向法的基本原理 2 共轭方向(定义+性质+方法) 3 共轭梯度法 4 例题 5 小结
2020/3/6
2
基本原理
2020/3/6
3
1.共轭方向法的基本原理
先看一个无约束极小化问题:
min f (x) 1 X T QX bT X c,Q为正定矩阵 2
怎么理解?
2020/3/6
8
2.共轭方向-定义
已知向量x
(1,0)T
,
y
(
1 3
,
2)T 3
,Q
2 1
12.则xT
Qy
2 (1,0)1
12
1 3 2
3
0,
因此x, y是关于Q共轭正交的。但是x, y并不正交,因为xT y 0.而向量10
P1应该满足的条件:X2=X1+λ1P1 (λ1为最优步长)
∵X2是无约束极小值点 ∴▽f(X2)=0 即QX2+b=0
P1要如何求呢?
(▽f(X)=QX+b)
有 f ( X 1 ) QX1 b
Q( X 2 1P1 ) b (QX 2 b) Q1P Q1P
P0 , P1, Pm1是关于Q的个共轭方向, X 0为初始点, 令
X k1 X k k Pk , k 0,1,...,m 1, k是一维搜索的最优步长.
则有结论:
(1)PjTf ( X m ) 0, j 0,1,...,m 1
(2) X m是f ( X )在线性流形L( X 0; P0 , P1...Pm1)上的极小点.
Pm 1 )所生成的线性流形.
其中:
m1
L( X 0; P0 , P1,...Pm1) {X X X 0
j
Pj
,
是一个数值,
j
j0
可定义为步长}
2020/3/6
13
2.共轭方向-性质
定理3.32(共轭方向的极小点)
设X
En ,
f
(X
)
1 2
X
T QX
bT
X
c,其中Q为对称正定,
PjT Qf ( X k ) k1PjT QPk1 f ( X k )T QPj
f ( X k )T f ( X j1 ) f ( X j ) j f ( X k )T f ( X j1 ) f ( X k )T f ( X j ) j
2020/3/6
14
2.共轭方向-性质
证明: (1)因为X m是沿Pm1方向进行一维搜索所得的极小点, 根据最
优化性条件有f ( X m )T Pm1 0
当k
0,1,...,m
2时,因为X
k
是
1
沿Pk
方向进行一维搜索所得的极小
点, 所以0 f ( X k1)T Pk
(f
k 0
m1
现任取X L( X 0 : P0 , , Pm1 )有X X 0 k Pk
2
k 0
2 f (X) Q
线性流形
f (X)
f ( X m ) f ( X m )T ( X
Xm)
1 (X 2
X m )T Q(X
Xm)
m1
f ( X m )T ( X X m ) f ( X m )T ( ( k k )Pk ) k 0
• 线性流形几何意义
设P0, P1是3维空间E3中的两个线性无关向量,过X 0作平面法
向量为P0 P1,则
L( X 0; P0, P1)
2020/3/6
12
2.共轭方向-性质
定义3.18(线性流形定义)
设X 0 En , P0 , P1...Pm1是En中m个线性无关向量,则 称集合L( X 0; P0 , P1...Pm1)是由点X 0和向量组(P0 , P1...
PkT1QPk
PkT1Q f
(X k
)
f
( X k )T QPk 1 PkT1QPk 1
Pk 1 0
且对j 0,1 , k 2, 有
2020/3/6
21
3.共轭梯度法
证明
PjT QPk PjT Q f ( X k ) P k1 k1
m1
j PkT QPj 0, K 0,1, , m 1 j0
由Q的正定性以及Pj , Pk的共轭性,有PkT QPj
0,当k
0,当k
j , j
j
0,1,
m 1
故 j PjT QPJ 0, j 0,1, m 1
j 0, j 0,1, m 1
m1
j从k 1开始, 共轭故 jQPj为0) j k 1
2020/3/6
15
2k Pk , k 0,1, m 1
m1
X m X 0 k Pk L( X 0 : P0 , , Pm1 )
1
[
f ( X k1 ) f ( X k )
]2
2020/3/6
23
3.共轭梯度法
证明,由3 77有k QPk f ( X k1 ) f ( X k )
ak
f
( X k1 )T QPk Pk T QPk
f
( X k 1 )T Pk T [f
[f ( X k1 ) f ( X ( X k1 ) f ( X k )]
P0
P0T Qf ( X 1 ) f ( X 1 )T QP0 0 表明,P0与P1共轭。
2 设当m k时,P0,P1, ,Pk-1是共轭的,即
PiT QPj 0, i j, j k 1
3 证明P0,P1, ,Pk-1,Pk也是共轭的:
首先有
,
P1
,
.
.
.Pm
是
1
关于Q的共轭向量组.
2020/3/6
19
3.共轭梯度法
定理3.33
设f
(X)
1 2
X T QX
bT
X
c,Q正定,
X 0是初始点, P0
f
(X0)
X k 1
Xk
k Pk
,k
0,1...m
1,
k
是最优步长,
且
构造的
Pk1 f ( X k1 ) ak Pk
m1
( k
k
)
PT k
f
(Xm)
0
k 0
又由于Q正定,所以
3 由1和2得出
( X X m )T Q( X X m ) 0,当X X m f ( X ) f ( X m ),当X X m 有X m是f ( X )在L(X 0 ; P0 , P1 , Pm1 )上的极小点
有PiT QPj 0, i j., i、j k 1 综合以上可断言P0,P1, ,Pk1, Pk是共轭向量。
2020/3/6
22
3.共轭梯度法
• 定理3.34(ak的简化)
在定理3.33条件下, ak可简化为
ak
f ( X k1 )T f ( X k1 ) f ( X k )T f ( X k )