Used scaled version of admm instead of unscaled
This commit is contained in:
parent
ad4dfc6325
commit
c34b1ca687
@ -800,6 +800,25 @@ The same is true for $\left( \boldsymbol{\lambda}_j \right)_i$.}
|
||||
It should be noted that all of the $\boldsymbol{z}_j$-updates can be computed simultaneously,
|
||||
as they are independent of one another.
|
||||
The same is true for the updates of the individual components of $\tilde{\boldsymbol{c}}$.
|
||||
This representation can be slightly simplified by substituting
|
||||
$\boldsymbol{\lambda}_j = \mu \cdot \boldsymbol{u}_j \,\forall\,j\in\mathcal{J}$:%
|
||||
%
|
||||
\begin{alignat*}{3}
|
||||
\tilde{c}_i &\leftarrow \frac{1}{\left| N_v\left( i \right) \right|} \left(
|
||||
\sum_{j\in N_v\left( i \right) } \Big( \left( \boldsymbol{z}_j \right)_i
|
||||
- \left( \boldsymbol{u}_j \right)_i \Big)
|
||||
- \gamma_i \right)
|
||||
\hspace{3mm} && \forall i\in\mathcal{I} \\
|
||||
\boldsymbol{z}_j &\leftarrow \Pi_{\mathcal{P}_{d_j}}\left(
|
||||
\boldsymbol{T}_j\tilde{\boldsymbol{c}} + \boldsymbol{u}_j \right)
|
||||
\hspace{3mm} && \forall j\in\mathcal{J} \\
|
||||
\boldsymbol{u}_j &\leftarrow \boldsymbol{u}_j
|
||||
+ \boldsymbol{T}_j\tilde{\boldsymbol{c}}
|
||||
- \boldsymbol{z}_j
|
||||
\hspace{3mm} && \forall j\in\mathcal{J}
|
||||
.\end{alignat*}
|
||||
%
|
||||
|
||||
|
||||
The reason \ac{ADMM} is able to perform so well is due to the relocation of the constraints
|
||||
$\boldsymbol{T}_j\tilde{\boldsymbol{c}}_j\in\mathcal{P}_{d_j}\,\forall\, j\in\mathcal{J}$
|
||||
@ -819,19 +838,19 @@ as is shown in figure \ref{fig:lp:message_passing}.%
|
||||
\begin{genericAlgorithm}[caption={}, label={},
|
||||
basicstyle=\fontsize{11}{16}\selectfont
|
||||
]
|
||||
Initialize $\tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}$ and $\boldsymbol{\lambda}_{[1:m]}$
|
||||
Initialize $\tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}$ and $\boldsymbol{u}_{[1:m]}$
|
||||
while $\sum_{j\in\mathcal{J}} \lVert \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \rVert_2 \ge \epsilon_{\text{pri}}$ or $\sum_{j\in\mathcal{J}} \lVert \boldsymbol{z}^\prime_j - \boldsymbol{z}_j \rVert_2 \ge \epsilon_{\text{dual}}$ do
|
||||
for all $j$ in $\mathcal{J}$ do
|
||||
for $j$ in $\mathcal{J}$ do
|
||||
$\boldsymbol{z}_j \leftarrow \Pi_{\mathcal{P}_{d_j}}\left(
|
||||
\boldsymbol{T}_j\tilde{\boldsymbol{c}} + \frac{\boldsymbol{\lambda}_j}{\mu} \right)$
|
||||
$\boldsymbol{\lambda}_j \leftarrow \boldsymbol{\lambda}_j
|
||||
+ \mu\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}}
|
||||
- \boldsymbol{z}_j \right)$
|
||||
\boldsymbol{T}_j\tilde{\boldsymbol{c}} + \boldsymbol{u}_j \right)$
|
||||
$\boldsymbol{u}_j \leftarrow \boldsymbol{u}_j
|
||||
+ \boldsymbol{T}_j\tilde{\boldsymbol{c}}
|
||||
- \boldsymbol{z}_j$
|
||||
end for
|
||||
for all $i$ in $\mathcal{I}$ do
|
||||
for $i$ in $\mathcal{I}$ do
|
||||
$\tilde{c}_i \leftarrow \frac{1}{\left| N_v\left( i \right) \right|} \left(
|
||||
\sum_{j\in N_v\left( i \right) } \Big(
|
||||
\left( \boldsymbol{z}_j \right)_i - \frac{1}{\mu} \left( \boldsymbol{\lambda}_j
|
||||
\left( \boldsymbol{z}_j \right)_i - \left( \boldsymbol{u}_j
|
||||
\right)_i
|
||||
\Big) - \frac{\gamma_i}{\mu} \right)$
|
||||
end for
|
||||
|
||||
Loading…
Reference in New Issue
Block a user