上一节讲了对偶问题上的 DR-splitting 就等价于原问题的 ADMM,这一节在详细的讲一下 ADMM 及其变种。

1. 标准 ADMM 形式

首先还是给出 ADMM 要求解的问题的格式,也就是约束存在耦合:
min⁡x,zf(x)+g(z)s.t.Ax+Bz=b\begin{aligned} \min_{x,z} \quad& f(x)+g(z) \\ \text{s.t.} \quad& Ax+Bz=b \end{aligned} x,zmin​s.t.​f(x)+g(z)Ax+Bz=b​
这个问题的增广拉格朗日函数为
Lβ(x,z,w)=f(x)+g(z)−w⊤(Ax+Bz−b)+β2∥Ax+Bz−b∥22L_{\beta}(\mathbf{x}, \mathbf{z}, \mathbf{w})=f(\mathbf{x})+g(\mathbf{z})-\mathbf{w}^{\top}(\mathbf{A} \mathbf{x}+\mathbf{B z}-\mathbf{b})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}+\mathbf{B z}-\mathbf{b}\|_{2}^{2} Lβ​(x,z,w)=f(x)+g(z)−w⊤(Ax+Bz−b)+2β​∥Ax+Bz−b∥22​
ADMM 的迭代方程为
xk+1=argmin⁡xLβ(x,zk,wk)zk+1=argmin⁡zLβ(xk+1,z,wk)wk+1=wk−β(Axk+1+Bzk+1−b)\begin{array}{l} \mathbf{x}^{k+1}=\operatorname{argmin}_{\mathbf{x}} L_{\beta}\left(\mathbf{x}, \mathbf{z}^{\mathbf{k}}, \mathbf{w}^{k}\right) \\ \mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} L_{\beta}\left(\mathbf{x}^{k+1}, \mathbf{z}, \mathbf{w}^{k}\right) \\ \mathbf{w}^{k+1}=\mathbf{w}^{k}-\beta\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right) \end{array} xk+1=argminx​Lβ​(x,zk,wk)zk+1=argminz​Lβ​(xk+1,z,wk)wk+1=wk−β(Axk+1+Bzk+1−b)​
这实际上就是把 ALM 中关于 x,zx,zx,z 的联合优化给分开了,分别进行优化。如果取 yk=wk/β\mathbf{y}^{k}=\mathbf{w}^{k}/\betayk=wk/β,就可以转化为
xk+1=argmin⁡xf(x)+g(zk)+β2∥Ax+Bzk−b−yk∥22zk+1=argmin⁡zf(xk+1)+g(z)+β2∥Axk+1+Bz−b−yk∥22yk+1=yk−(Axk+1+Bzk+1−b)\begin{array}{l} \mathbf{x}^{k+1}=\operatorname{argmin}_{\mathbf{x}} f(\mathbf{x})+g\left(\mathbf{z}^{k}\right)+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B} \mathbf{z}^{k}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2} \\ \mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} f\left(\mathbf{x}^{k+1}\right)+g(\mathbf{z})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2} \\ \mathbf{y}^{k+1}=\mathbf{y}^{k}-\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right) \end{array} xk+1=argminx​f(x)+g(zk)+2β​∥∥​Ax+Bzk−b−yk∥∥​22​zk+1=argminz​f(xk+1)+g(z)+2β​∥∥​Axk+1+Bz−b−yk∥∥​22​yk+1=yk−(Axk+1+Bzk+1−b)​
最后一步也可以加一个步长系数
yk+1=yk−γ(Axk+1+Bzk+1−b)\mathbf{y}^{k+1}=\mathbf{y}^{k}-\gamma\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right) yk+1=yk−γ(Axk+1+Bzk+1−b)

2. 收敛性分析

假如 x⋆,z⋆,y⋆x^\star,z^\star,y^\starx⋆,z⋆,y⋆ 是该问题的最优解,那么对拉格朗日函数求导可以得到 KKT 条件
(primal feasibility)Ax⋆+Bz⋆=b(dual feasibility I)0∈∂f(x⋆)+ATy⋆(dual feasibility II)0∈∂g(z⋆)+BTy⋆\begin{array}{ll}(\text {primal feasibility}) & \mathbf{A x}^{\star}+\mathbf{B z}^{\star}=\mathbf{b} \\(\text {dual feasibility } I) & 0 \in \partial f\left(\mathbf{x}^{\star}\right)+\mathbf{A}^{T} \mathbf{y}^{\star} \\(\text {dual feasibility } I I) & 0 \in \partial g\left(\mathbf{z}^{\star}\right)+\mathbf{B}^{T} \mathbf{y}^{\star}\end{array} (primal feasibility)(dual feasibility I)(dual feasibility II)​Ax⋆+Bz⋆=b0∈∂f(x⋆)+ATy⋆0∈∂g(z⋆)+BTy⋆​
由于 zk+1=argmin⁡zg(z)+β2∥Axk+1+Bz−b−yk∥22\mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} g(\mathbf{z})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2}zk+1=argminz​g(z)+2β​∥∥​Axk+1+Bz−b−yk∥∥​22​,求导就可以得到
⇒0∈∂g(zk+1)+BT(Axk+1+Bzk+1−b−yk)=∂g(zk+1)+BTyk+1\Rightarrow 0 \in \partial g\left(\mathbf{z}^{k+1}\right)+\mathbf{B}^{T}\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}-\mathbf{y}^{k}\right)=\partial g\left(\mathbf{z}^{k+1}\right)+\mathbf{B}^{T} \mathbf{y}^{k+1} ⇒0∈∂g(zk+1)+BT(Axk+1+Bzk+1−b−yk)=∂g(zk+1)+BTyk+1
也就是说对偶可行性 IIIIII 在每次迭代过程中都能满足,但是对偶可行性 III 则不能满足,因为有
0∈∂f(xk+1)+AT(yk+1+B(zk−zk+1))0 \in \partial f\left(\mathbf{x}^{k+1}\right)+\mathbf{A}^{T}\left(\mathbf{y}^{k+1}+\mathbf{B}\left(\mathbf{z}^{k}-\mathbf{z}^{k+1}\right)\right) 0∈∂f(xk+1)+AT(yk+1+B(zk−zk+1))
当 k→∞k\to\inftyk→∞ 的时候 III 还是可以渐近逼近的。

收敛性:如果假设 f,gf,gf,g 是闭凸函数,并且 KKT 条件的解存在,那么 Axk+Bzk→b\mathbf{A} \mathbf{x}^{k}+\mathbf{B z}^{k} \rightarrow \mathbf{b}Axk+Bzk→b,f(xk)+g(zk)→p∗f\left(\mathbf{x}^{k}\right)+g\left(\mathbf{z}^{k}\right) \rightarrow p^{*}f(xk)+g(zk)→p∗,yk\mathbf{y}^{k}yk 收敛。并且如果 (xk,yk)(x^k,y^k)(xk,yk) 有界,他们也收敛。

收敛速度:ADMM 算法的收敛速度没有一个 general 的分析和结论。在不同的假设条件下有不同的结论。

  • 如果每步更新都有关于 xk,yk,zkx^k,y^k,z^kxk,yk,zk 的准确解,并且 fff 光滑,∇f\nabla f∇f 利普希茨连续,那么收敛速度为 O(1/k),O(1/k2)O(1/k),O(1/k^2)O(1/k),O(1/k2)(应该是针对不同情况可能有不同速度,课上也没怎么讲,了解一下就够了)

3. ADMM 变种

在 ADMM 的标准形式里比较关键的实际上就是要求一个如下形式的子问题(极小化问题)
min⁡xf(x)+β2∥Ax−v∥22\min _{\mathbf{x}} f(\mathbf{x})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}-\mathbf{v}\|_{2}^{2} xmin​f(x)+2β​∥Ax−v∥22​
其中 v=b−Bzk+yk\mathbf{v}=\mathbf{b}-\mathbf{B} \mathbf{z}^{k}+\mathbf{y}^{k}v=b−Bzk+yk。这个问题对于不同的 fff 求解复杂度也不一样,而且有的时候并不能得到准确的解,只能近似。实际上这也是一个优化问题,可以采用的方法有

  1. 迭代方法,比如 CG,L-BFGS;
  2. 如果 f(x)=1/2∥Cx−d∥2f(x)=1/2 \|Cx-d\|^2f(x)=1/2∥Cx−d∥2,那么子问题就是求解方程 (CTC+βATA)xk+1=⋯(C^TC+\beta A^TA)x^{k+1}=\cdots(CTC+βATA)xk+1=⋯,由于 CCC 是固定的参数,因此可以在一开始做一次 Cholesky 分解或者 LDLTLDL^TLDLT 分解,之后求解就很简单了。另外如果 (CTC+βATA)(C^TC+\beta A^TA)(CTC+βATA) 的结构是简单矩阵 + 低秩矩阵,就可以用 Woodbury 公式矩阵求逆;
  3. 单次梯度下降法 xk+1=xk−ck(∇f(xk)+βAT(Ax+Bzk−b−yk))\mathbf{x}^{k+1}=\mathbf{x}^{k}-c^{k}\left(\nabla f\left(\mathbf{x}^{k}\right)+\beta \mathbf{A}^{T}\left(\mathbf{A} \mathbf{x}+\mathbf{B} \mathbf{z}^{k}-\mathbf{b}-\mathbf{y}^{k}\right)\right)xk+1=xk−ck(∇f(xk)+βAT(Ax+Bzk−b−yk))
  4. 如果 fff 非光滑,也可以把上面的梯度下降换成 proximal 梯度下降;
  5. 可以在后面加一个正则项

xk+1=argmin⁡f(x)+β2∥Ax+Byk−b−zk∥22+β2(x−xk)T(D−ATA)(x−xk)\mathbf{x}^{k+1}=\operatorname{argmin} f(\mathbf{x})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right\|_{2}^{2}+\frac{\beta}{2}\left(\mathbf{x}-\mathbf{x}^{k}\right)^{T}\left(\mathbf{D}-\mathbf{A}^{T} \mathbf{A}\right)\left(\mathbf{x}-\mathbf{x}^{k}\right) xk+1=argminf(x)+2β​∥∥∥​Ax+Byk−b−zk∥∥∥​22​+2β​(x−xk)T(D−ATA)(x−xk)

这个时候优化问题就变成了 min⁡f(x)+(β/2)(x−xk)TD(x−xk)\min f(x)+(\beta/2)(x-x^k)^TD(x-x^k)minf(x)+(β/2)(x−xk)TD(x−xk),如果取一个简单的 DDD 比如 D=ID=ID=I,那么问题就可能得到简化。

4. 分布式 ADMM

回想我们之前在计算近似点以及近似点梯度下降的时候,如果函数 f,gf,gf,g 有特殊结构是不是可以分布式并行计算,而 ADMM 的子问题实际上跟近似点算子很像,所以如果有一定的特殊结构也可以并行处理。

首先回忆一下 ADMM 子问题的形式
min⁡xf(x)+β2∥Ax−v∥22\min _{\mathbf{x}} f(\mathbf{x})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}-\mathbf{v}\|_{2}^{2} xmin​f(x)+2β​∥Ax−v∥22​
现在这个优化变量 x\mathbf{x}x 是一个向量,我们的思想就是 x\mathbf{x}x 分成多个子块 x1,...,xnx_1,...,x_nx1​,...,xn​,如果函数有特殊的形式,就能把上面的问题解耦成多个子项的求和,然后针对 x1,...,xnx_1,...,x_nx1​,...,xn​ 就能并行求解了。下面看几种特殊形式。

4.1 Distributed ADMM Ⅰ

函数 fff 需要是可分的
f(x)=f1(x1)+f2(x2)+⋯+fN(xN)f(\mathbf{x})=f_{1}\left(\mathbf{x}_{1}\right)+f_{2}\left(\mathbf{x}_{2}\right)+\cdots+f_{N}\left(\mathbf{x}_{N}\right) f(x)=f1​(x1​)+f2​(x2​)+⋯+fN​(xN​)
约束条件 Ax+Bz=bA\mathbf{x}+B\mathbf{z}=\mathbf{b}Ax+Bz=b 也需要是可分的
A=[A10A2⋱0AN]\mathbf{A}=\left[\begin{array}{cccc}\mathbf{A}_{1} & & & \mathbf{0} \\& \mathbf{A}_{2} & & \\& & \ddots & \\\mathbf{0} & & & \mathbf{A}_{N}\end{array}\right] A=⎣⎢⎢⎡​A1​0​A2​​⋱​0AN​​⎦⎥⎥⎤​
如果满足上面的两个性质,那么原本的更新过程
xk+1←min⁡f(x)+β2∥Ax+Byk−b−zk∥22\mathbf{x}^{k+1} \leftarrow \min f(\mathbf{x})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right\|_{2}^{2} xk+1←minf(x)+2β​∥∥∥​Ax+Byk−b−zk∥∥∥​22​
就可以分成并行的 NNN 个优化问题
x1k+1←min⁡f1(x1)+β2∥A1x1+(Byk−b−zk)1∥22⋮xNk+1←min⁡fN(xN)+β2∥ANxN+(Byk−b−zk)N∥22\begin{array}{c}\mathbf{x}_{1}^{k+1} \leftarrow \min f_{1}\left(\mathbf{x}_{1}\right)+\frac{\beta}{2}\left\|\mathbf{A}_{1} \mathbf{x}_{1}+\left(\mathbf{B} \mathbf{y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right)_{1}\right\|_{2}^{2} \\\vdots \\\mathbf{x}_{N}^{k+1} \leftarrow \min f_{N}\left(\mathbf{x}_{N}\right)+\frac{\beta}{2}\left\|\mathbf{A}_{N} \mathbf{x}_{N}+\left(\mathbf{B} \mathbf{y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right)_{N}\right\|_{2}^{2}\end{array} x1k+1​←minf1​(x1​)+2β​∥∥​A1​x1​+(Byk−b−zk)1​∥∥​22​⋮xNk+1​←minfN​(xN​)+2β​∥∥​AN​xN​+(Byk−b−zk)N​∥∥​22​​
例子 1(consensus):假如我们的 fff 并不像上面那样可分,而是 min⁡∑i=1Nfi(x)\min\sum_{i=1}^N f_i(\mathbf{x})min∑i=1N​fi​(x),注意上面要求 fi,fjf_i,f_jfi​,fj​ 的自变量分别是 xi,xjx_i,x_jxi​,xj​,而这里的 fi,fjf_i,f_jfi​,fj​ 的自变量都是 x\mathbf{x}x。可以怎么办呢?引入 x\mathbf{x}x 的 NNN 个 copies,把优化问题写成
min⁡{xi},z∑ifi(xi)s.t.xi−z=0,∀i\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \mathbf{x}_i-\mathbf{z}=0,\forall i\end{aligned} {xi​},zmin​s.t.​i∑​fi​(xi​)xi​−z=0,∀i​
例子 2(exchange):优化问题的形式为
min⁡{xi},z∑ifi(xi)s.t.∑ixi=0\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \sum_i\mathbf{x}_i=0\end{aligned} {xi​},zmin​s.t.​i∑​fi​(xi​)i∑​xi​=0​
这个问题的满足 fff 可分了,但是却不满足上面要求的 AAA 的形式。可以怎么做呢?再次引入变量
min⁡{xi},z∑ifi(xi)s.t.xi−xi′=0,∀i∑ixi′=0\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \mathbf{x}_i-\mathbf{x}_i'=0,\forall i \\\quad& \sum_i\mathbf{x}_i'=0\end{aligned} {xi​},zmin​s.t.​i∑​fi​(xi​)xi​−xi′​=0,∀ii∑​xi′​=0​
这个时候 xi\mathbf{x}_ixi​ 可以并行计算了,但是 xi′\mathbf{x}_i'xi′​ 还需要处理
(xi′)k+1=arg⁡min⁡{xi′}∑iβ2∥xik+1−xi′+yik/β∥s.t.∑ixi′=0(\mathbf{x}_i')^{k+1}=\arg\min_{\{\mathbf{x}_i'\}} \sum_i \frac{\beta}{2}\|\mathbf{x}_i^{k+1}-\mathbf{x}_i' + \mathbf{y}_i^k/\beta\| \\\text{s.t.} \sum_i \mathbf{x}_i'=0 (xi′​)k+1=arg{xi′​}min​i∑​2β​∥xik+1​−xi′​+yik​/β∥s.t.i∑​xi′​=0
这个问题可以得到闭式解,代入关于 xi\mathbf{x}_ixi​ 的迭代方程里就可以得到
xik+1=argmin⁡xifi(xi)+β2∥xi−(xik−mean⁡{xik}−uk)∥22uk+1=uk+mean⁡{xik+1}\begin{aligned}\mathbf{x}_{i}^{k+1} &=\underset{\mathbf{x}_{i}}{\operatorname{argmin}} f_{i}\left(\mathbf{x}_{i}\right)+\frac{\beta}{2}\left\|\mathbf{x}_{i}-\left(\mathbf{x}_{i}^{k}-\operatorname{mean}\left\{\mathbf{x}_{i}^{k}\right\}-\mathbf{u}^{k}\right)\right\|_{2}^{2} \\\mathbf{u}^{k+1} &=\mathbf{u}^{k}+\operatorname{mean}\left\{\mathbf{x}_{i}^{k+1}\right\}\end{aligned} xik+1​uk+1​=xi​argmin​fi​(xi​)+2β​∥∥​xi​−(xik​−mean{xik​}−uk)∥∥​22​=uk+mean{xik+1​}​
实际上,这个 exchange 问题还是 consensus 问题的对偶形式,只需要写出来拉格朗日函数和 KKT 条件就可以了。

4.2 Distributed ADMM Ⅱ

前面是对 x\mathbf{x}x 进行分解,其实我们还可以对 z\mathbf{z}z 进行分解。对于约束 Ax+z=bA\mathbf{x}+\mathbf{z}=\mathbf{b}Ax+z=b,可以按行分解
A=[A1⋮AL],z=[z1⋮zL],b=[b1⋮bL]\mathbf{A}=\left[\begin{array}{c}\mathbf{A}_{1} \\\vdots \\\mathbf{A}_{L}\end{array}\right], \mathbf{z}=\left[\begin{array}{c}\mathbf{z}_{1} \\\vdots \\\mathbf{z}_{L}\end{array}\right], \mathbf{b}=\left[\begin{array}{c}\mathbf{b}_{1} \\\vdots \\\mathbf{b}_{L}\end{array}\right] A=⎣⎢⎡​A1​⋮AL​​⎦⎥⎤​,z=⎣⎢⎡​z1​⋮zL​​⎦⎥⎤​,b=⎣⎢⎡​b1​⋮bL​​⎦⎥⎤​
这个时候假如优化函数的形式为 min⁡x,z∑l(fl(x)+gl(zl)),s.t.Ax+z=b\min_{\mathbf{x},\mathbf{z}}\sum_l (f_l(\mathbf{x})+g_l(\mathbf{z}_l)),\text{ s.t.}A\mathbf{x}+\mathbf{z}=\mathbf{b}minx,z​∑l​(fl​(x)+gl​(zl​)), s.t.Ax+z=b,注意到这个时候虽然关于 z\mathbf{z}z 是可分的,但是关于 x\mathbf{x}x 却不是,跟前面的方法类似,我们把 z\mathbf{z}z copy 很多份,就可以转化为
min⁡x,{xl},z∑l(fl(xl)+gl(zl))s.t.Alxl+zl=bl,∀ixl−x=0\begin{aligned}\min_{\mathbf{x},\{\mathbf{x}_l\},\mathbf{z}} \quad& \sum_l (f_l(\mathbf{x}_l)+g_l(\mathbf{z}_l)) \\\text{s.t.} \quad& A_l\mathbf{x}_l+\mathbf{z}_l=\mathbf{b}_l,\forall i \\\quad& \mathbf{x}_l-\mathbf{x}=0\end{aligned} x,{xl​},zmin​s.t.​l∑​(fl​(xl​)+gl​(zl​))Al​xl​+zl​=bl​,∀ixl​−x=0​
ADMM 方法中第一步我们更新 {xl}\{\mathbf{x}_l\}{xl​} 这可以并行处理,第二步我们更新 x,z\mathbf{x},\mathbf{z}x,z,巧妙的是我们也可以把他们两个解耦合开再并行处理。

4.3 Distributed ADMM Ⅲ

实际上前面分别是对矩阵 AAA 按列分解和按行分解,那也很容易想到我们可以既对列分解也对行分解。

对优化问题
min⁡∑jfj(xj)+∑igi(zi)s.t.Ax+z=b\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& A\mathbf{x}+\mathbf{z}=\mathbf{b}\end{aligned} min s.t.​j∑​fj​(xj​)+i∑​gi​(zi​)Ax+z=b​
那么就可以分解为
A=[A11A12⋯A1NA21A22⋯A2N…AM1AM2⋯AMN],also b=[b1b2⋮bM]\mathbf{A}=\left[\begin{array}{cccc}\mathbf{A}_{11} & \mathbf{A}_{12} & \cdots & \mathbf{A}_{1 N} \\\mathbf{A}_{21} & \mathbf{A}_{22} & \cdots & \mathbf{A}_{2 N} \\& & \ldots & \\\mathbf{A}_{M 1} & \mathbf{A}_{M 2} & \cdots & \mathbf{A}_{M N}\end{array}\right], \text { also } \mathbf{b}=\left[\begin{array}{c}\mathbf{b}_{1} \\\mathbf{b}_{2} \\\vdots \\\mathbf{b}_{M}\end{array}\right] A=⎣⎢⎢⎡​A11​A21​AM1​​A12​A22​AM2​​⋯⋯…⋯​A1N​A2N​AMN​​⎦⎥⎥⎤​, also b=⎣⎢⎢⎢⎡​b1​b2​⋮bM​​⎦⎥⎥⎥⎤​
优化问题可以转化为
min⁡∑jfj(xj)+∑igi(zi)s.t.∑jAijxj+zi=bi,i=1,...,M\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j A_{ij}\mathbf{x}_j+\mathbf{z}_i=\mathbf{b}_i,i=1,...,M\end{aligned} min s.t.​j∑​fj​(xj​)+i∑​gi​(zi​)j∑​Aij​xj​+zi​=bi​,i=1,...,M​
但是注意到这个时候 xj\mathbf{x}_jxj​ 之间还是相互耦合的,类比前面的方法,要想解耦合,我们就找一个“替身”,这次是 pij=Aijxj\mathbf{p}_{ij}=A_{ij}\mathbf{x}_jpij​=Aij​xj​,那么新的问题就是
min⁡∑jfj(xj)+∑igi(zi)s.t.∑jpij+zi=bi,∀ipij=Aijxj,∀i,j\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j \mathbf{p}_{ij}+\mathbf{z}_i=\mathbf{b}_i,\forall i \\\quad& \mathbf{p}_{ij}=A_{ij}\mathbf{x}_j,\forall i,j\end{aligned} min s.t.​j∑​fj​(xj​)+i∑​gi​(zi​)j∑​pij​+zi​=bi​,∀ipij​=Aij​xj​,∀i,j​
ADMM 中可以交替更新 {pij}\{\mathbf{p}_{ij}\}{pij​} 和 ({xj},{zi})(\{\mathbf{x}_j\},\{\mathbf{z}_i\})({xj​},{zi​})。关于 {pij}\{\mathbf{p}_{ij}\}{pij​} 的求解有闭式解,关于 ({xj},{zi})(\{\mathbf{x}_j\},\{\mathbf{z}_i\})({xj​},{zi​}) 也是可以分解为分别更新 {xj},{zi}\{\mathbf{x}_j\},\{\mathbf{z}_i\}{xj​},{zi​},但是需要注意的是更新 xj\mathbf{x}_jxj​ 的时候 fj,A1jTA1j,...,AMjTAMjf_j,A_{1j}^TA_{1j},...,A_{Mj}^TA_{Mj}fj​,A1jT​A1j​,...,AMjT​AMj​ 都耦合在一起了,实际当中计算应该还是比较麻烦的。

4.3 Distributed ADMM Ⅳ

既然上面第三类方法中还是有耦合,那我们就可以再引入“替身变量”来解耦合,对每个 xj\mathbf{x}_jxj​ 都 copy 出来 x1j,...,xMj\mathbf{x}_{1j},...,\mathbf{x}_{Mj}x1j​,...,xMj​,之后可以得到
min⁡∑jfj(xj)+∑igi(zi)s.t.∑jpij+zi=bi,∀ipij=Aijxij,∀i,jxj=xij,∀i,j\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j \mathbf{p}_{ij}+\mathbf{z}_i=\mathbf{b}_i,\forall i \\\quad& \mathbf{p}_{ij}=A_{ij}\mathbf{x}_{ij},\forall i,j \\\quad& \mathbf{x}_{j}=\mathbf{x}_{ij},\forall i,j\end{aligned} min s.t.​j∑​fj​(xj​)+i∑​gi​(zi​)j∑​pij​+zi​=bi​,∀ipij​=Aij​xij​,∀i,jxj​=xij​,∀i,j​
ADMM 中可以交替更新 ({xj},{pij})(\{\mathbf{x}_j\},\{\mathbf{p}_{ij}\})({xj​},{pij​}) 和 ({xij},{zi})(\{\mathbf{x}_{ij}\},\{\mathbf{z}_i\})({xij​},{zi​})

最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/

前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性
凸优化学习笔记 14:SDP Representablity
最优化方法 15:梯度方法
最优化方法 16:次梯度
最优化方法 17:次梯度下降法
最优化方法 18:近似点算子 Proximal Mapping
最优化方法 19:近似梯度下降
最优化方法 20:对偶近似点梯度下降法
最优化方法 21:加速近似梯度下降方法
最优化方法 22:近似点算法 PPA
最优化方法 23:算子分裂法 & ADMM
最优化方法 24:ADMM

最优化方法 24:ADMM相关推荐

  1. 最优化方法 23:算子分裂法 ADMM

    前面章节中,针对 min⁡f(x)+g(Ax)\min f(x)+g(Ax)minf(x)+g(Ax) 形式的优化问题,我们介绍了如 PG.dual PG.ALM.PPA 等方法.但是比如 PG 方法 ...

  2. 最优化方法 26:不动点迭代

    前面讲了很多具体的算法,比如梯度.次梯度.近似点梯度.加速近似点梯度.PPA.DR方法.ADMM.ALM等,对这些方法的迭代过程有了一些了解.这一节则主要是针对算法的收敛性进行分析,试图从一个更加抽象 ...

  3. 无约束最优化方法-牛顿法

     无约束最优化算法-Newton法原理及c++编程实现 2012-12-14 13:04 6536人阅读 评论(5) 收藏 举报 本文章已收录于: 分类: [算法](27) 作者同类文章X 版权声 ...

  4. 文献阅读09期:基于ADMM方法的柔性负载实时定价

    [ 文献阅读·能源 ] Load shifting of a supplier-based demand response of multi-class subscribers in smart gr ...

  5. 最优化方法-共轭梯度法

    最优化方法-共轭梯度法 1.简介 共轭梯度法最初由Hesteness和Stiefel于1952年为求解线性方程组而提出的.其基本思想是把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向, ...

  6. 最优化方法matlab实现

    优化问题测试函数: http://www-optima.amp.i.kyoto-u.ac.jp/member/student/hedar/Hedar_files/TestGO.htm 9.1  概   ...

  7. 规划问题—最优化方法的Matlab实现

    优化问题测试函数: http://www-optima.amp.i.kyoto-u.ac.jp/member/student/hedar/Hedar_files/TestGO.htm 9.1  概   ...

  8. 最优化方法的Matlab实现

    转自:http://blog.csdn.net/luckydongbin/article/details/1497391 现在看一段 摄像机标定的程序里面涉及到最优化求解方程的函数,从网上找到了下面的 ...

  9. 最优化方法笔记2:多维无约束最优化

    最优化方法笔记2:多维无约束最优化 1 多维无约束最优化问题(待更新) 1.1 随机搜索法 1.2 共轭方向法(鲍威尔(Powell方法) 1.3 梯度法 1.2.1 最速上升法 1.2.2 改进的梯 ...

最新文章

  1. 汇编语言的div指令 ax dx bx
  2. python转csv_python – 如何将.tsv转换为.csv?
  3. android Studio 运行不显示avd 无法运行
  4. python画超长图-python 画长图
  5. springboot-quartz普通任务与可传参任务
  6. React Native--移动端开发的救星
  7. 2003年GCT考试真题
  8. 物理-反重力系统:反重力系统
  9. NYOJ 366 STL 全排列
  10. ACCESS模糊查询like的解决方法SQL查询语句通配符问题
  11. java手机调查问卷_JAVA学习调查问卷——20145101
  12. 计算机各键的名称和作用,space是什么键 键盘键位名称及功用详解
  13. 开源笔记本工具及待办事项软件Joplin推荐
  14. Re:从零开始的Spring Security Oauth2(二)
  15. HTML/JSP/CSS网页编写实例,附源码
  16. Android USB HID整理
  17. Eclipse在官网下载页面打不开
  18. 流体的“流线”和“迹线”定义和区别。
  19. ISO-8601,日期时间格式表示法的国际标准
  20. R DT包 datatable()的使用

热门文章

  1. 对接融云即时通讯组件SDK,轻松实现App聊天室
  2. 燃气灶电子点火器原理与检修(图)
  3. 数字 IC 笔试面试必考点(3)数字 IC 前端设计 + 后端实现
  4. ez usb fx2 linux,EZ-USB FX2实现图像采集系统
  5. 男子带充电宝过机场安检时突然发生爆炸
  6. 从徐庶弃备投曹 说领导该如何对待组员
  7. 使用Kdevelop开发ROS软件
  8. sonarqube部署
  9. The Challenge of Storing International Addresses
  10. 负2次方计算机怎么算,3的负2次方怎么算呀