Broyden类算法
Broyden类算法是BFGS和DFP校正的凸组合产生的一类校正族
B
k
+
1
θ
=
θ
k
B
k
+
1
D
F
P
+
(
1
−
θ
k
)
B
k
+
1
B
F
G
S
=
B
k
+
1
B
F
G
S
+
θ
k
(
B
k
+
1
D
F
P
−
B
k
+
1
B
F
G
S
)
=
B
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
y
k
y
k
T
y
k
T
s
k
+
θ
k
(
(
I
−
s
k
y
k
T
y
k
T
s
k
)
T
B
k
(
I
−
s
k
y
k
T
y
k
T
s
k
)
+
y
k
y
k
T
y
k
T
s
k
−
B
k
+
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
−
y
k
y
k
T
y
k
T
s
k
)
=
B
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
y
k
y
k
T
y
k
T
s
k
+
θ
k
(
B
k
−
y
k
s
k
T
B
k
y
k
T
s
k
−
B
k
s
k
y
k
T
y
k
T
s
k
+
y
k
s
k
T
B
k
s
k
y
k
T
(
y
k
T
s
k
)
2
+
y
k
y
k
T
y
k
T
s
k
−
B
k
+
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
−
y
k
y
k
T
y
k
T
s
k
)
=
B
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
y
k
y
k
T
y
k
T
s
k
+
θ
k
(
−
y
k
s
k
T
B
k
y
k
T
s
k
−
B
k
s
k
y
k
T
y
k
T
s
k
+
y
k
s
k
T
B
k
s
k
y
k
T
(
y
k
T
s
k
)
2
+
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
)
=
B
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
y
k
y
k
T
y
k
T
s
k
+
θ
k
(
s
k
T
B
k
s
k
)
(
y
k
y
k
T
s
k
−
B
k
s
k
s
k
T
B
k
s
k
)
(
y
k
y
k
T
s
k
−
B
k
s
k
s
k
T
B
k
s
k
)
T
\begin{aligned} \mathbf{B}_{k+1}^{\theta}&=\theta_k\mathbf{B}_{k+1}^{DFP}+\left(1-\theta_k\right)\mathbf{B}_{k+1}^{BFGS}\\ &=\mathbf{B}_{k+1}^{BFGS}+\theta_k\left(\mathbf{B}_{k+1}^{DFP}-\mathbf{B}_{k+1}^{BFGS}\right)\\ &=\mathbf{B}_k-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\theta_k\left(\left(\mathbf{I}-\frac{\mathbf{s}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}\right)^T\mathbf{B}_{k}\left(\mathbf{I}-\frac{\mathbf{s}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}\right)+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}-\mathbf{B}_k+\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}-\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}\right)\\ &=\mathbf{B}_k-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\theta_k\left(\mathbf{B}_k-\frac{\mathbf{y}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{y}_k^T\mathbf{s}_k}-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k\mathbf{y}_k^T}{\left(\mathbf{y}_k^T\mathbf{s}_k\right)^2}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}-\mathbf{B}_k+\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}-\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}\right)\\ &=\mathbf{B}_k-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\theta_k\left(-\frac{\mathbf{y}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{y}_k^T\mathbf{s}_k}-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k\mathbf{y}_k^T}{\left(\mathbf{y}_k^T\mathbf{s}_k\right)^2}+\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}\right)\\ &=\mathbf{B}_k-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\theta_k\left(\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k\right)\left(\frac{\mathbf{y}_k}{\mathbf{y}_k^T\mathbf{s}_k}-\frac{\mathbf{B}_k\mathbf{s}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}\right)\left(\frac{\mathbf{y}_k}{\mathbf{y}_k^T\mathbf{s}_k}-\frac{\mathbf{B}_k\mathbf{s}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}\right)^T \end{aligned}
Bk+1θ=θkBk+1DFP+(1−θk)Bk+1BFGS=Bk+1BFGS+θk(Bk+1DFP−Bk+1BFGS)=Bk−skTBkskBkskskTBk+ykTskykykT+θk((I−ykTskskykT)TBk(I−ykTskskykT)+ykTskykykT−Bk+skTBkskBkskskTBk−ykTskykykT)=Bk−skTBkskBkskskTBk+ykTskykykT+θk(Bk−ykTskykskTBk−ykTskBkskykT+(ykTsk)2ykskTBkskykT+ykTskykykT−Bk+skTBkskBkskskTBk−ykTskykykT)=Bk−skTBkskBkskskTBk+ykTskykykT+θk(−ykTskykskTBk−ykTskBkskykT+(ykTsk)2ykskTBkskykT+skTBkskBkskskTBk)=Bk−skTBkskBkskskTBk+ykTskykykT+θk(skTBksk)(ykTskyk−skTBkskBksk)(ykTskyk−skTBkskBksk)T
令
u
k
=
s
k
T
B
k
s
k
(
y
k
y
k
T
s
k
−
B
k
s
k
s
k
T
B
k
s
k
)
\mathbf{u}_k=\sqrt{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}\left(\frac{\mathbf{y}_k}{\mathbf{y}_k^T\mathbf{s}_k}-\frac{\mathbf{B}_k\mathbf{s}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}\right)
uk=skTBksk(ykTskyk−skTBkskBksk)
B
k
+
1
θ
=
θ
k
B
k
+
1
D
F
P
+
(
1
−
θ
k
)
B
k
+
1
B
F
G
S
=
B
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
+
y
k
y
k
T
y
k
T
s
k
+
θ
k
u
k
u
k
T
\begin{aligned} \mathbf{B}_{k+1}^{\theta}&=\theta_k\mathbf{B}_{k+1}^{DFP}+\left(1-\theta_k\right)\mathbf{B}_{k+1}^{BFGS}\\ &=\mathbf{B}_k-\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^T\mathbf{B}_k}{\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k}+\frac{\mathbf{y}_k\mathbf{y}_k^T}{\mathbf{y}_k^T\mathbf{s}_k}+\theta_k\mathbf{u}_k\mathbf{u}_k^T \end{aligned}
Bk+1θ=θkBk+1DFP+(1−θk)Bk+1BFGS=Bk−skTBkskBkskskTBk+ykTskykykT+θkukukT
把
B
\mathbf{B}
B换成
H
\mathbf{H}
H,然后
s
\mathbf{s}
s和
y
\mathbf{y}
y互换
令
v
k
=
y
k
T
H
k
y
k
(
s
k
s
k
T
y
k
−
H
k
y
k
y
k
T
H
k
y
k
)
\mathbf{v}_k=\sqrt{\mathbf{y}_k^T\mathbf{H}_k\mathbf{y}_k}\left(\frac{\mathbf{s}_k}{\mathbf{s}_k^T\mathbf{y}_k}-\frac{\mathbf{H}_k\mathbf{y}_k}{\mathbf{y}_k^T\mathbf{H}_k\mathbf{y}_k}\right)
vk=ykTHkyk(skTyksk−ykTHkykHkyk)
H
k
+
1
ϕ
=
ϕ
k
H
k
+
1
B
F
G
S
+
(
1
−
ϕ
k
)
H
k
+
1
D
F
P
=
H
k
−
H
k
y
k
y
k
T
H
k
y
k
T
H
k
y
k
+
s
k
s
k
T
s
k
T
y
k
+
ϕ
k
v
k
v
k
T
\begin{aligned} \mathbf{H}_{k+1}^{\phi}&=\phi_k\mathbf{H}_{k+1}^{BFGS}+\left(1-\phi_k\right)\mathbf{H}_{k+1}^{DFP}\\ &=\mathbf{H}_k-\frac{\mathbf{H}_k\mathbf{y}_k\mathbf{y}_k^T\mathbf{H}_k}{\mathbf{y}_k^T\mathbf{H}_k\mathbf{y}_k}+\frac{\mathbf{s}_k\mathbf{s}_k^T}{\mathbf{s}_k^T\mathbf{y}_k}+\phi_k\mathbf{v}_k\mathbf{v}_k^T \end{aligned}
Hk+1ϕ=ϕkHk+1BFGS+(1−ϕk)Hk+1DFP=Hk−ykTHkykHkykykTHk+skTykskskT+ϕkvkvkT
可以证明(没证明过)
θ
k
=
1
−
ϕ
k
1
−
ϕ
k
(
1
−
μ
k
)
\theta_k=\frac{1-\phi_k}{1-\phi_k\left(1-\mu_k\right)}
θk=1−ϕk(1−μk)1−ϕk
其中
μ
k
=
(
s
k
T
B
k
s
k
)
(
y
k
T
H
k
y
k
)
(
s
k
T
y
k
)
2
\mu_k=\frac{\left(\mathbf{s}_k^T\mathbf{B}_k\mathbf{s}_k\right)\left(\mathbf{y}_k^T\mathbf{H}_k\mathbf{y}_k\right)}{\left(\mathbf{s}_k^T\mathbf{y}_k\right)^2}
μk=(skTyk)2(skTBksk)(ykTHkyk)
性质
性质1
用Broyden族算法求解
min
f
(
x
)
=
1
2
x
T
G
x
+
b
T
x
+
c
\min f\left(\mathbf{x}\right)=\frac{1}{2}\mathbf{x}^T\mathbf{G}\mathbf{x}+\mathbf{b}^T\mathbf{x}+c
minf(x)=21xTGx+bTx+c
若初始矩阵
H
0
\mathbf{H}_0
H0是正定的,算法所产生的迭代点是互异的。则
(1)当
y
k
T
s
k
>
0
\mathbf{y}_k^T\mathbf{s}_k>0
ykTsk>0且
ϕ
k
≥
0
\phi_k\ge 0
ϕk≥0或
θ
k
≥
0
\theta_k\ge 0
θk≥0时,Broyden族校正公式保持正定性
(2)算法所产生的搜索方向
d
0
,
⋯
,
d
k
(
k
≥
n
−
1
)
\mathbf{d}_0,\cdots,\mathbf{d}_k\left(k\ge n-1\right)
d0,⋯,dk(k≥n−1)满足
(a)
d
i
T
G
d
j
=
0
,
0
≤
i
<
j
≤
k
\mathbf{d}_i^T\mathbf{G}\mathbf{d}_j=0,\quad 0\le i<j\le k
diTGdj=0,0≤i<j≤k
(b)
H
k
ϕ
y
i
=
s
i
,
0
≤
i
≤
k
−
1
\mathbf{H}_k^\phi\mathbf{y}_i=\mathbf{s}_i,\quad 0\le i\le k-1
Hkϕyi=si,0≤i≤k−1
证明:
(1)与前面BFGS那里类似
(2)再说吧
H k + 1 = { H k , s k T y k ≤ 0 H k + 1 = H k − H k y k y k T H k y k T B k y k + s k s k T s k T y k + ϕ v k v k T s k T y k > 0 \mathbf{H}_{k+1}=\begin{cases} \mathbf{H}_k,&\mathbf{s}_k^T\mathbf{y}_k\le 0\\ \mathbf{H}_{k+1}=\mathbf{H}_k-\frac{\mathbf{H}_k\mathbf{y}_k\mathbf{y}_k^T\mathbf{H}_k}{\mathbf{y}_k^T\mathbf{B}_k\mathbf{y}_k}+\frac{\mathbf{s}_k\mathbf{s}_k^T}{\mathbf{s}_k^T\mathbf{y}_k}+\phi\mathbf{v}_k\mathbf{v}_k^T&\mathbf{s}_k^T\mathbf{y}_k>0 \end{cases} Hk+1={Hk,Hk+1=Hk−ykTBkykHkykykTHk+skTykskskT+ϕvkvkTskTyk≤0skTyk>0
步骤
初始化:选择起点
x
0
\mathbf{x}_0
x0,
选择
H
0
\mathbf{H}_0
H0(一般取
∇
−
2
f
(
x
0
)
\nabla^{-2} f\left(\mathbf{x}_0\right)
∇−2f(x0)或者
I
\mathbf{I}
I )
步骤
1.若
∥
g
k
∥
≤
ϵ
\|\mathbf{g}_k\|\le \epsilon
∥gk∥≤ϵ,停止,输出
x
k
\mathbf{x}_k
xk
2.计算
d
k
=
−
H
k
g
k
\mathbf{d}_k=-\mathbf{H}_k\mathbf{g}_k
dk=−Hkgk
3.求步长
α
k
\alpha_k
αk
4.
x
k
+
1
=
x
k
+
α
k
d
k
\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{d}_k
xk+1=xk+αkdk,矫正
H
k
\mathbf{H}_{k}
Hk得到
H
k
+
1
\mathbf{H}_{k+1}
Hk+1
5.k=k+1,转1