设有如下优化问题:
m
i
n
f
(
x
)
+
g
(
z
)
min~~f(x)+g(z)
min f(x)+g(z)
s
.
t
A
x
+
B
z
=
c
s.t~~~~Ax+Bz=c
s.t Ax+Bz=c
它的增广Language形式如下:
L
ρ
(
x
,
z
,
λ
)
=
f
(
x
)
+
g
(
z
)
+
y
T
(
A
x
+
B
z
−
c
)
+
(
ρ
/
2
)
∣
∣
A
x
+
B
z
−
c
∣
∣
2
L_ρ(x,z,λ)=f(x)+g(z)+y^T(Ax+Bz−c)+(ρ/2)||Ax+Bz−c||^2
Lρ(x,z,λ)=f(x)+g(z)+yT(Ax+Bz−c)+(ρ/2)∣∣Ax+Bz−c∣∣2
其中
ρ
>
0
ρ>0
ρ>0为 增广Language参数。
乘子法思想:
{
x
k
+
1
,
z
k
+
1
}
=
a
r
g
m
i
n
x
,
z
L
ρ
(
x
,
z
,
λ
k
)
\{x^{k+1},z^{k+1}\}=argmin_{x,z}L_ρ(x,z,λ^k)
{xk+1,zk+1}=argminx,zLρ(x,z,λk)
λ
k
+
1
=
λ
k
+
ρ
(
A
x
k
+
1
+
B
z
k
+
1
−
c
)
λ^{k+1}=λ^{k}+ρ(Ax^{k+1}+Bz^{k+1}−c)
λk+1=λk+ρ(Axk+1+Bzk+1−c)
ADMM思想
ADMM是乘子法的一个改进,主要区别在Alternating Direction也就是交替更新原始变量。迭代格式如下:
x
k
+
1
=
a
r
g
m
i
n
x
L
ρ
(
x
,
z
k
,
λ
k
)
x^{k+1}=argmin_xL_ρ(x,z^k,λ^k)
xk+1=argminxLρ(x,zk,λk)
z
k
+
1
=
a
r
g
m
i
n
z
L
ρ
(
x
k
+
1
,
z
,
λ
k
)
z^{k+1}=argmin_z L_ρ(x^{k+1},z,λ^k)
zk+1=argminzLρ(xk+1,z,λk)
λ
k
+
1
=
λ
k
+
ρ
(
A
x
k
+
1
+
B
z
k
+
1
−
c
)
λ^{k+1}=λ^{k}+ρ(Ax^{k+1}+Bz^{k+1}−c)
λk+1=λk+ρ(Axk+1+Bzk+1−c)
注意到:ADMM中 ρ ρ ρ往往取0~0.618之间(孙德峰老师提出的).
对于凸优化而言,ADMM算法的想达到的最优性条件为:
原始可行性(primal feasibility)
A x + B z = c Ax+Bz=c Ax+Bz=c,
和对偶可行性(dual feasibility):
0
∈
∂
f
(
x
)
+
A
T
y
0\in\partial f(x)+A^Ty
0∈∂f(x)+ATy,
0
∈
∂
g
(
z
)
+
B
T
y
0\in\partial g(z)+B^Ty
0∈∂g(z)+BTy.