From a4bbe794f22db235497b0615dfb0cf6b9aca719e Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Tue, 4 Apr 2023 18:15:56 +0200 Subject: [PATCH] Added appendix --- latex/thesis/chapters/appendix.tex | 168 +++++++++++++++++++++++++++++ latex/thesis/thesis.tex | 6 +- 2 files changed, 169 insertions(+), 5 deletions(-) create mode 100644 latex/thesis/chapters/appendix.tex diff --git a/latex/thesis/chapters/appendix.tex b/latex/thesis/chapters/appendix.tex new file mode 100644 index 0000000..1bfb7de --- /dev/null +++ b/latex/thesis/chapters/appendix.tex @@ -0,0 +1,168 @@ +\appendix + +\chapter{\acs{LP} Decoding using \acs{ADMM} as a Proximal Algorithm}% +\label{chapter:LD Decoding using ADMM as a Proximal Algorithm} + +\todo{Find out how to properly title and section appendix} + +%For problems of the form% +%\begin{align*} +% \text{minimize}\hspace{2mm} & f\left( \boldsymbol{x} \right) +% + g\left( \boldsymbol{A}\boldsymbol{x} \right) \\ +% \text{subject to}\hspace{2mm} & \boldsymbol{x} \in \mathbb{R}^n +%,\end{align*}% +%% +%a version of \ac{ADMM}, \textit{linearized \ac{ADMM}}, can be expressed +%as a proximal algorithm \cite[Sec. 4.4.2]{proximal_algorithms}: +%% +%\begin{align*} +% \boldsymbol{x} &\leftarrow \textbf{prox}_{\mu f}\left( \boldsymbol{x} +% - \frac{\mu}{\lambda}\boldsymbol{A}^\text{T}\left( \boldsymbol{A}\boldsymbol{x} +% - \boldsymbol{z} + \boldsymbol{u} \right) \right) \\ +% \boldsymbol{z} &\leftarrow \textbf{prox}_{\lambda g}\left( \boldsymbol{A}\boldsymbol{x} +% + \boldsymbol{u} \right) \\ +% \boldsymbol{u} &\leftarrow \boldsymbol{u} + \boldsymbol{A} \boldsymbol{x} - \boldsymbol{z} +%.\end{align*} + +In order to express \ac{LP} decoding using \ac{ADMM} through proximal operators, +it can be rewritten to fit the template for \textit{linearized \ac{ADMM}} given +in \cite[Sec. 4.4.2]{proximal_algorithms}. +We start with the general formulation of the \ac{LP} decoding problem:% +% +\begin{align*} + \text{minimize}\hspace{2mm} & \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} \\ + \text{subject to}\hspace{2mm} & \boldsymbol{T}_j \tilde{\boldsymbol{c}} \in \mathcal{P}_{d_j} + \hspace{5mm} \forall j \in \mathcal{J} +.\end{align*} +% +The constraints can be moved into the objective function: % +% +\begin{align} + \begin{aligned} + \text{minimize}\hspace{2mm} & \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + + \sum_{j\in \mathcal{J}} I_{P_{d_j}}\left( + \boldsymbol{T}_j\tilde{\boldsymbol{c}} \right) \\ + \text{subject to}\hspace{2mm} & \tilde{\boldsymbol{c}} \in \mathbb{R}^n, + \end{aligned} + \label{eq:app:sum_reformulated} +\end{align}% +% +using the \textit{indicator functions} +$I_{\mathcal{P}_{d_j}} : \mathbb{R}^{d_j} \rightarrow \left\{ 0, +\infty \right\}, +\hspace{3mm} j\in \mathcal{J}$, defined as% +% +\begin{align*} + I_{\mathcal{P}_{d_j}}\left( \boldsymbol{t} \right) := + \begin{cases} + 0 & \boldsymbol{t} \in \mathcal{P}_{d_j} \\ + +\infty & \boldsymbol{t} \not\in \mathcal{P}_{d_j} + \end{cases} +.\end{align*}% +% +Further defining +% +\begin{align*} + \boldsymbol{T} := \begin{bmatrix} + \boldsymbol{T}_1 \\ + \boldsymbol{T}_2 \\ + \vdots \\ + \boldsymbol{T}_m + \end{bmatrix} + \hspace{5mm}\text{and}\hspace{5mm} + g\left( \boldsymbol{t} \right) = \sum_{j\in\mathcal{J}} I_{\mathcal{P}_{d_j}}\left( + \boldsymbol{B}_j \boldsymbol{t} \right) +,\end{align*}% +% +\todo{Define $\boldsymbol{B}_j$}% +problem (\ref{eq:app:sum_reformulated}) becomes% +% +\begin{align} + \begin{aligned} + \text{minimize}\hspace{2mm} & \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + + g\left( \boldsymbol{T}\tilde{\boldsymbol{c}} \right) \\ + \text{subject to}\hspace{2mm} & \tilde{\boldsymbol{c}} \in \mathbb{R}^n. + \end{aligned} + \label{eq:app:func_reformulated} +\end{align} +% +\todo{Fix $\mu f$ and $\lambda g$ in the steps below}% +In this form, it fits the template for linearized \ac{ADMM}. +The iterative algorithm can then be expressed as% +% +\begin{align*} + \tilde{\boldsymbol{c}} &\leftarrow \textbf{prox}_{\mu f}\left( \tilde{\boldsymbol{c}} + - \frac{\mu}{\lambda}\boldsymbol{T}^\text{T}\left( \boldsymbol{T}\tilde{\boldsymbol{c}} + - \boldsymbol{z} + \boldsymbol{u} \right) \right) \\ + \boldsymbol{z} &\leftarrow \textbf{prox}_{\lambda g}\left(\boldsymbol{T}\tilde{\boldsymbol{c}} + + \boldsymbol{u} \right) \\ + \boldsymbol{u} &\leftarrow \boldsymbol{u} + \boldsymbol{T} \tilde{\boldsymbol{c}} + - \boldsymbol{z} +.\end{align*} +% + +Using the definition of the proximal operator, the $\tilde{\boldsymbol{c}}$ update step +can be rewritten to match the definition given in section \ref{sec:dec:LP Decoding using ADMM}:% +% +\begin{align*} + \tilde{\boldsymbol{c}} &\leftarrow \textbf{prox}_{\mu f}\left( \tilde{\boldsymbol{c}} + - \frac{\mu}{\lambda}\boldsymbol{T}^\text{T}\left( \boldsymbol{T}\tilde{\boldsymbol{c}} + - \boldsymbol{z} + \boldsymbol{u} \right) \right) \\ + &= \argmin_{\tilde{\boldsymbol{c}}}\left( \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + - \frac{\mu}{2} \left\Vert \boldsymbol{T}^\text{T} + \left( \boldsymbol{T}\tilde{\boldsymbol{c}} + - \boldsymbol{z} + \boldsymbol{u} \right) \right\Vert_2^2 \right) \\ + &\overset{\text{(a)}}{=} \argmin_{\tilde{\boldsymbol{c}}}\left( \boldsymbol{\gamma}^\text{T} + \tilde{\boldsymbol{c}} + - \frac{\mu}{2} \left\Vert \boldsymbol{T}\tilde{\boldsymbol{c}} + - \boldsymbol{z} + \boldsymbol{u} \right\Vert_2^2 \right) \\ + &= \argmin_{\tilde{\boldsymbol{c}}}\left( \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + - \frac{\mu}{2} \left\Vert \begin{bmatrix} + \boldsymbol{T}_1 \\ + \boldsymbol{T}_2 \\ + \vdots \\ + \boldsymbol{T}_m + \end{bmatrix} + \tilde{\boldsymbol{c}} + - \begin{bmatrix} + \boldsymbol{z}_1 \\ + \boldsymbol{z}_2 \\ + \vdots \\ + \boldsymbol{z}_m + \end{bmatrix} + + \begin{bmatrix} + \boldsymbol{u}_1 \\ + \boldsymbol{u}_2 \\ + \vdots \\ + \boldsymbol{u}_m + \end{bmatrix} \right\Vert_2^2 \right) + \hspace{5mm}\boldsymbol{z}_j,\boldsymbol{u}_j \in \mathbb{F}_2^{d_j}, + \hspace{2mm} j\in\mathcal{J}\\ + &= \argmin_{\tilde{\boldsymbol{c}}} \left( \boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}} +- \frac{\mu}{2} \sum_{j \in J} \left\Vert \boldsymbol{T}_j \tilde{\boldsymbol{c}} +- \boldsymbol{z}_j + \boldsymbol{u}_j \right\Vert_2^2 \right) +.\end{align*} +% +Step (a) can be justified by observing that multiplication with $\boldsymbol{T}^\text{T}$ +only reorders components, leaving their values unchanged. +Similarly to the $\boldsymbol{c}$ update, the $\boldsymbol{z}$ update step can be rewritten. +Since $g\left( \cdot \right)$ is separable, so is its proximal operator +\cite[Sec. 2.1]{proximal_algorithms}. The $\boldsymbol{z}$ update step can then +be expressed as a number of smaller steps:% +% +\begin{gather*} + \boldsymbol{z} \leftarrow \textbf{prox}_{\lambda g} \left(\boldsymbol{T}\tilde{\boldsymbol{c}} + + \boldsymbol{u} \right) \\[0.5em] + \iff \\[0.5em] + \begin{alignedat}{3} + \boldsymbol{z}_j &\leftarrow \textbf{prox}_{\lambda I_{\mathcal{P}_{d_j}}}\left( + \boldsymbol{T}_j \tilde{\boldsymbol{c}} + \boldsymbol{u}_j \right), + \hspace{5mm} && \forall j\in\mathcal{J} \\ + & \overset{\text{(b)}}{=} \Pi_{\mathcal{P}_{d_j}}\left( \boldsymbol{T}_j + \tilde{\boldsymbol{c}} + + \boldsymbol{u}_j \right), \hspace{5mm} && \forall j\in\mathcal{J} + ,\end{alignedat} +\end{gather*} +% +where (b) results from the fact that appying the proximal operator on the +indicator function of a convex set amounts to a projection onto the set +\cite[Sec. 1.2]{proximal_algorithms}. diff --git a/latex/thesis/thesis.tex b/latex/thesis/thesis.tex index 4e1f347..43c00b3 100644 --- a/latex/thesis/thesis.tex +++ b/latex/thesis/thesis.tex @@ -218,12 +218,8 @@ \include{chapters/analysis_of_results} \include{chapters/discussion} \include{chapters/conclusion} + \include{chapters/appendix} - % - % Appendix - % - - \appendix %\listoffigures %\listoftables