diff --git a/latex/presentations/final/presentation.bib b/latex/presentations/final/presentation.bib index 485bc10..098f154 100644 --- a/latex/presentations/final/presentation.bib +++ b/latex/presentations/final/presentation.bib @@ -121,3 +121,14 @@ doi={10.1109/TIT.2020.2984247} } +@ARTICLE{original_admm, + author={Barman, Siddharth and Liu, Xishuo and Draper, Stark C. and Recht, Benjamin}, + journal={IEEE Transactions on Information Theory}, + title={Decomposition Methods for Large Scale LP Decoding}, + year={2013}, + volume={59}, + number={12}, + pages={7870-7886}, + doi={10.1109/TIT.2013.2281372} +} + diff --git a/latex/presentations/final/sections/decoding_algorithms.tex b/latex/presentations/final/sections/decoding_algorithms.tex index e6408da..c5cbfd1 100644 --- a/latex/presentations/final/sections/decoding_algorithms.tex +++ b/latex/presentations/final/sections/decoding_algorithms.tex @@ -713,7 +713,7 @@ return $\boldsymbol{\hat{c}}$ \end{tikzpicture} \begin{align*} - \text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \boldsymbol{c} \\ + \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{2mm} \forall j\in \mathcal{J} @@ -752,6 +752,87 @@ return $\boldsymbol{\hat{c}}$ \end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LP Decoding using ADMM}% +\label{sub:LP Decoding using ADMM} + + +\begin{frame}[t] + \frametitle{LP Decoding using ADMM} + + \begin{itemize} + \item Slight reformulation of the LCLP: + \begin{align*} + \begin{aligned} + \text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + + \sum_{j\in\mathcal{J}} g_j\left( \boldsymbol{z}_j \right) \\ + \text{subject to}\hspace{2mm} & + \boldsymbol{T}_j\tilde{\boldsymbol{c}} = \boldsymbol{z}_j, \hspace{2mm} + \forall j\in \mathcal{J} + \end{aligned}\hspace{2mm},\hspace{1cm} + g_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*} + \item Iterative algorithm: + \begin{alignat*}{3} + \tilde{\boldsymbol{c}} &\leftarrow \argmin_{\tilde{\boldsymbol{c}}} + \left( \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + + \frac{\rho}{2}\sum_{j\in\mathcal{J}} \left\Vert + \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j + + \boldsymbol{u}_j \right\Vert \right) \\ + \boldsymbol{z}_j &\leftarrow \argmin_{\boldsymbol{z}_j} + \left( g\left( \boldsymbol{z}_j \right) + + \frac{\rho}{2} \left\Vert \boldsymbol{T}_j \tilde{\boldsymbol{c}} + - \boldsymbol{z}_j + \boldsymbol{u}_j \right\Vert \right), + \hspace{5mm} &&\forall j\in\mathcal{J} \\ + \boldsymbol{u}_j &\leftarrow \boldsymbol{u}_j + + \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j, + \hspace{5mm} &&\forall j\in\mathcal{J} +% \left( g\left( \boldsymbol{\boldsymbol{z}_j} \right) +% + \frac{\rho}{2} \left\Vert \boldsymbol{T}_j\tilde{\boldsymbol{c}} +% - \boldsymbol{z}_j + \boldsymbol{u}_j\right\Vert \right) + \end{alignat*} + \end{itemize} +\end{frame} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{LP Decoding using ADMM} + + \begin{itemize} + \item Simplified rules% + \footnote{$\left( \boldsymbol{z}_j \right)_i $ is a slight abuse of notation. + What is actually meant is the component of $\boldsymbol{z}_j$ that is associated + with the VN $i$, i.e., $\left( \boldsymbol{T}_j^\text{T} \boldsymbol{z}_j \right)_i$.\\ + The same is true for $\left( \boldsymbol{u}_j \right)_i$}% + : + + \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) + - \frac{\gamma_i}{\mu} \right) + \hspace{5mm} && \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{5mm} && \forall j\in\mathcal{J} \\ + \boldsymbol{u}_j &\leftarrow \boldsymbol{u}_j + + \boldsymbol{T}_j\tilde{\boldsymbol{c}} + - \boldsymbol{z}_j + \hspace{5mm} && \forall j\in\mathcal{J} + \end{alignat*} + \item The main computational effort are the projections + $\Pi_{\mathcal{P}_{d_j}}, \hspace{1mm} j\in\mathcal{J}$. Many + different approaches exist, e.g., \cite{original_admm}, + \cite{efficient_lp_dec_admm}, \cite{lautern}. + \item The approach chosen here is the one described in \cite{lautern} + \end{itemize} +\end{frame} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{frame}[t] % \frametitle{LP Relaxation}