§Wrote ADMM in proximal form

This commit is contained in:
Andreas Tsouchlos 2023-04-02 01:02:26 +02:00
parent d8646a2741
commit 1beb8c484e

View File

@ -63,14 +63,14 @@ proximal operator form.%
\end{align*} \end{align*}
\begin{genericAlgorithm}[caption={}, label={}, \begin{genericAlgorithm}[caption={}, label={},
basicstyle=\fontsize{10.5}{15}\selectfont basicstyle=\fontsize{11}{17}\selectfont
] ]
Initialize variables Initialize variables
while stopping critierion not satisfied do while stopping critierion not satisfied do
$\boldsymbol{r} \leftarrow \boldsymbol{r} $\boldsymbol{r} \leftarrow \boldsymbol{r}
+ \omega \nabla L\left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ + \omega \nabla L\left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
$\boldsymbol{s} \leftarrow $\boldsymbol{s} \leftarrow
\text{prox}_{\gamma h}\left( \boldsymbol{r} \right) $|\Suppressnumber| \textbf{prox}_{\scaleto{\gamma h}{7.5pt}}\left( \boldsymbol{r} \right) $|\Suppressnumber|
|\Reactivatenumber| |\Reactivatenumber|
end while end while
return $\boldsymbol{s}$ return $\boldsymbol{s}$
@ -86,24 +86,28 @@ return $\boldsymbol{s}$
\text{minimize}\hspace{5mm} & \text{minimize}\hspace{5mm} &
\underbrace{\boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}}} \underbrace{\boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}}}
_{\text{Likelihood}} _{\text{Likelihood}}
+ \underbrace{\text{TODO}}_{\text{Constraints}} \\ + \underbrace{\sum_{j\in\mathcal{J}} g_j\left(
% + \sum_{j\in\mathcal{J}} \boldsymbol{\lambda}^\text{T}_j \boldsymbol{T}_j\tilde{\boldsymbol{c}} \right) }
% \left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \right) _{\text{Constraints}} \\
% + \frac{\mu}{2}\sum_{j\in\mathcal{J}} \text{subject to}\hspace{5mm} &
% \lVert \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \rVert^2_2 \\ \tilde{\boldsymbol{c}} \in \mathbb{R}^n
\text{subject to}\hspace{5mm} & \text{TODO} % \boldsymbol{T}_j\tilde{\boldsymbol{c}} = \boldsymbol{z}_j\hspace{3mm}
% \forall j\in\mathcal{J}
\end{align*} \end{align*}
\begin{genericAlgorithm}[caption={}, label={}, \begin{genericAlgorithm}[caption={}, label={},
basicstyle=\fontsize{10.5}{15}\selectfont basicstyle=\fontsize{11}{17}\selectfont
] ]
Initialize variables Initialize variables
while stopping criterion not satisfied do while stopping criterion not satisfied do
$\tilde{\boldsymbol{c}} \leftarrow \text{prox}_{\text{TODO}}\left( \text{TODO} \right) $ $\tilde{\boldsymbol{c}} \leftarrow \textbf{prox}_{
$\boldsymbol{z} \leftarrow \text{prox}_{\text{TODO}}\left( \text{TODO} \right) $ \scaleto{\nu \cdot \boldsymbol{\gamma}^{\text{T}}\tilde{\boldsymbol{c}}}{8.5pt}}
$\boldsymbol{u}_j \leftarrow \boldsymbol{u}_j \left( \boldsymbol{z} - \boldsymbol{u} \right) $
+ \boldsymbol{T}_j\tilde{\boldsymbol{c}} $\boldsymbol{z}_j \leftarrow \textbf{prox}_{\scaleto{g_j}{7pt}}
- \boldsymbol{z}_j$ \left( \boldsymbol{T}_j\tilde{\boldsymbol{c}}
+ \boldsymbol{T}_j\boldsymbol{u} \right) \hspace{5mm}\forall j\in\mathcal{J}$
$\boldsymbol{u} \leftarrow \boldsymbol{u}
+ \tilde{\boldsymbol{c}} - \boldsymbol{z}$
end while end while
return $\tilde{\boldsymbol{c}}$ return $\tilde{\boldsymbol{c}}$
\end{genericAlgorithm} \end{genericAlgorithm}
@ -117,6 +121,16 @@ return $\tilde{\boldsymbol{c}}$
\label{fig:ana:theo_comp_alg} \label{fig:ana:theo_comp_alg}
\end{figure}% \end{figure}%
% %
\todo{Show how $\tilde{\boldsymbol{c}} \leftarrow \textbf{prox}
_{1 / \mu \cdot \boldsymbol{\gamma}^{\text{T}}\tilde{\boldsymbol{c}}}
\left( \boldsymbol{z} - \boldsymbol{u} \right) $
is the same as
$\boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}}
+ \sum_{j\in\mathcal{J}} \boldsymbol{\lambda}^\text{T}_j
\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \right)
+ \frac{\mu}{2}\sum_{j\in\mathcal{J}}
\lVert \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \rVert^2_2$}%
%
\noindent The objective functions of both problems are similar in that they \noindent The objective functions of both problems are similar in that they
both comprise two parts: one associated to the likelihood that a given both comprise two parts: one associated to the likelihood that a given
codeword was sent and one associated to the constraints the codeword is codeword was sent and one associated to the constraints the codeword is
@ -124,7 +138,7 @@ subjected to.
Their major difference is that the two parts of the objective minimized with Their major difference is that the two parts of the objective minimized with
proximal decoding are both functions of the same variable proximal decoding are both functions of the same variable
$\tilde{\boldsymbol{x}}$, whereas with \ac{ADMM} the two parts are functions $\tilde{\boldsymbol{x}}$, whereas with \ac{ADMM} the two parts are functions
of different variables: $\tilde{\boldsymbol{c}}$ and $\boldsymbol{z}$. of different variables: $\tilde{\boldsymbol{c}}$ and $\boldsymbol{z}_{[1:m]}$.
This difference means that while with proximal decoding the alternating This difference means that while with proximal decoding the alternating
minimization of the two parts of the objective function inevitably leads to minimization of the two parts of the objective function inevitably leads to
oscillatory behaviour (as explained in section (TODO)), this is not the oscillatory behaviour (as explained in section (TODO)), this is not the