diff --git a/latex/presentations/final/sections/comparison.tex b/latex/presentations/final/sections/comparison.tex index c04c33e..40b447c 100644 --- a/latex/presentations/final/sections/comparison.tex +++ b/latex/presentations/final/sections/comparison.tex @@ -37,7 +37,7 @@ discard if not={mu}{3.0}, discard if gt={SNR}{4.0}] {res/admm/ber_2d_20433484.csv}; - \addlegendentry{LP Decoding} + \addlegendentry{ADMM} \addplot[PineGreen, line width=1pt, mark=triangle, solid] table [col sep=comma, x=SNR, y=FER, discard if gt={SNR}{3.0}] @@ -306,7 +306,7 @@ \addplot[RoyalPurple, only marks, mark=triangle*] table [col sep=comma, x=n, y=spf] {res/admm/fps_vs_n.csv}; - \addlegendentry{LP decoding} + \addlegendentry{ADMM} \end{axis} \end{tikzpicture} @@ -377,7 +377,7 @@ return $\boldsymbol{s}$ g_j\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} \right)}_{\text{Constraints}}} \\ \text{subject to}\hspace{5mm} & - \tilde{\boldsymbol{c}} \in \mathbb{R}^n + \tilde{\boldsymbol{c}} \in \left[ 0, 1 \right]^n \end{align*} \vspace*{-5mm} @@ -422,14 +422,14 @@ Initialize $\boldsymbol{r}, \boldsymbol{s}, \omega, \gamma$ while stopping critierion unfulfilled do for j in $\mathcal{J}$ do $p_j \leftarrow \prod_{i\in N_c\left( j \right) } r_i $ - $\textcolor{KITblue}{M_{j\to} \leftarrow p_j^2 - p_j}$|\Suppressnumber| + $\textcolor{KITblue}{M_{j\to i} \leftarrow p_j^2 - p_j}$|\Suppressnumber| |\vspace{0.7mm}\Reactivatenumber| end for for i in $\mathcal{I}$ do $s_i \leftarrow s_i + \gamma \left[ 4\left( s_i^2 - 1 \right)s_i \phantom{\frac{4}{s_i}}\right.$|\Suppressnumber| |\Reactivatenumber|$\left.+ \frac{4}{s_i}\sum_{j\in N_v\left( i \right) } - M_{j\to} \right] $ + M_{j\to i} \right] $ $r_i \leftarrow r_i + \omega \left( s_i - y_i \right)$ end for end while @@ -470,7 +470,7 @@ return $\tilde{\boldsymbol{c}}$ \begin{itemize} \item Analysis of the general behavior of the two decoding algorithms \begin{itemize} - \item Parameter choice + \item Parameter choice based on decoding performance and time complexity \item Verification of theoretical considerations with simulation results \end{itemize} \item Suggestion for improvement of proximal decoding diff --git a/latex/presentations/final/sections/decoding_algorithms.tex b/latex/presentations/final/sections/decoding_algorithms.tex index b8faa7a..784baaf 100644 --- a/latex/presentations/final/sections/decoding_algorithms.tex +++ b/latex/presentations/final/sections/decoding_algorithms.tex @@ -12,7 +12,7 @@ \vspace*{-0.3cm} \begin{itemize} - \item MAP rule: + \item MAP rule as continuous maximization problem: \begin{align*} \hat{\boldsymbol{x}} &= \argmax_{\tilde{\boldsymbol{x}}\in\mathbb{R}^n} @@ -77,9 +77,9 @@ \item Proximal operator \cite{proximal_algorithms}: \begin{align*} \text{prox}_{\gamma h} \left( \tilde{\boldsymbol{x}} \right) &\equiv - \argmin_{\boldsymbol{t}\in\mathbb{R}^n} \left( - \gamma h\left( \boldsymbol{t} \right) + \frac{1}{2} \lVert \boldsymbol{t} - - \tilde{\boldsymbol{x}} \rVert^2 \right)\\ + \argmin_{\boldsymbol{t}\in\mathbb{R}^n} + \gamma h\left( \boldsymbol{t} \right) + \frac{1}{2} \lVert \boldsymbol{t} + - \tilde{\boldsymbol{x}} \rVert^2 \\ &\approx \tilde{\boldsymbol{x}} - \gamma \nabla h\left( \tilde{\boldsymbol{x}} \right), \hspace{5mm} \gamma \text{ small} @@ -146,12 +146,12 @@ return $\boldsymbol{\hat{c}}$ \boldsymbol{\gamma}^{T} \boldsymbol{c} = \sum_{i=1}^{n} \gamma_i c_i, \hspace{5mm}\gamma_i = \ln\left( - \frac{p_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) } - {p_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right) + \frac{f_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) } + {f_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right) \end{align*} \item Exact \textit{integer linear programming} (ILP) formulation of ML decoding: \begin{align*} - &\text{minimize } \boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}}\\ + &\text{minimize } \boldsymbol{\gamma}^\text{T} \boldsymbol{c}\\ &\text{subject to } \boldsymbol{c}\in \mathcal{C} \end{align*} \item Goal: relaxation of constraints to make a practical solution to the problem feasible @@ -665,7 +665,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} &\tilde{\boldsymbol{c}} \in \text{poly}\left( \mathcal{C} \right) &\ \end{align*} @@ -822,6 +822,7 @@ return $\boldsymbol{\hat{c}}$ \vspace*{-7mm} \begin{itemize} + \item Convergence properties enhanced by over-relaxation with parameter $\rho$ \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 @@ -843,13 +844,11 @@ return $\boldsymbol{\hat{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 projections $\Pi_{\mathcal{P}_{d_j}}, \hspace{1mm} j\in\mathcal{J}$ + are the main computational effort + \item Many approaches exist \cite{original_admm}, \cite{efficient_lp_dec_admm}, + \cite{lautern} \item The approach chosen here is the one described in \cite{original_admm} - \item The convergence properties can be enhanced by performing an - \textit{over-relaxation}, introducing the parameter $\rho$ \end{itemize} \end{frame} diff --git a/latex/presentations/final/sections/examination_results.tex b/latex/presentations/final/sections/examination_results.tex index 96b767f..ec87c55 100644 --- a/latex/presentations/final/sections/examination_results.tex +++ b/latex/presentations/final/sections/examination_results.tex @@ -75,21 +75,20 @@ \label{fig:sim_results_prox} \end{figure} - \vspace*{-0.5cm} - \begin{itemize} - \item $\mathcal{O}\left(n \right) $ time complexity - same as BP; - only multiplication and addition necessary \cite{proximal_paper} - \item Measured performance: $\sim\SI{10000}{}$ frames/s - on Intel Core i7-7700HQ @ 2.80GHz; $n=204$ - \end{itemize} - \vspace{3mm} +% \vspace*{-0.5cm} +% \begin{itemize} +% \item $\mathcal{O}\left(n \right) $ time complexity - same as BP; +% only multiplication and addition necessary \cite{proximal_paper} +% \item Measured performance: $\sim\SI{10000}{}$ frames/s +% on Intel Core i7-7700HQ @ 2.80GHz; $n=204$ +% \end{itemize} +% \vspace{3mm} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Choice of $\gamma$} - \setcounter{footnote}{0} \begin{itemize} \item Simulation% @@ -100,14 +99,14 @@ \begin{figure}[H] \centering - - \begin{subfigure}[c]{0.5\textwidth} + \hspace*{-3.5cm} + \begin{subfigure}[c]{0.4\textwidth} \centering \begin{tikzpicture} \begin{semilogyaxis}[xlabel={$E_b / N_0$ (dB)}, ylabel={BER}, grid=both, grid style={line width=.1pt}, - width=0.8\textwidth, - height=0.6\textwidth, + width=\textwidth, + height=0.75\textwidth, legend style={at={(0.05,0.05)},anchor=south west}, ymin=3e-7, ymax=1.5,] \addplot [ForestGreen, mark=*] table [x=SNR, y=BER, @@ -125,7 +124,8 @@ \end{semilogyaxis} \end{tikzpicture} \end{subfigure}% - \begin{subfigure}[c]{0.5\textwidth} + \hspace{5mm} + \begin{subfigure}[c]{0.4\textwidth} \centering \begin{tikzpicture} @@ -134,8 +134,8 @@ xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, - width=0.8\textwidth, - height=0.6\textwidth, + width=\textwidth, + height=0.75\textwidth, legend pos=outer north east,] \addplot3[surf, @@ -392,7 +392,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Frame Error Rate} - \setcounter{footnote}{0} \begin{itemize} \item Analysis of simulated% @@ -514,7 +513,6 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Oscillation of Estimate} - \setcounter{footnote}{0} \begin{itemize} \item $\nabla L \left( \boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right) $ @@ -724,7 +722,6 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Visualization of Gradients} - \setcounter{footnote}{0} \begin{figure}[H] \centering @@ -809,11 +806,10 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoder: Oscillation of $\nabla h\left( \tilde{\boldsymbol{x}} \right) $} - \setcounter{footnote}{0} \begin{itemize} \item For larger $n$, the gradient itself starts to oscillate - \item The amplitude of the oscillation seems to be highly correlated + \item The dynamic range of the oscillation is highly correlated with the probability of a bit error \end{itemize} @@ -873,7 +869,7 @@ return $\boldsymbol{\hat{c}}$ \end{axis} \end{tikzpicture} - \caption{Correlation between bit error and amplitude of oscillation} + \caption{Correlation between bit error and dynamic range of oscillation} \end{subfigure} \end{figure} @@ -899,7 +895,6 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{frame}[t, fragile] % \frametitle{Proximal Decoding: Improvement using ``ML-on-List''} -% \setcounter{footnote}{0} % % \begin{itemize} % \item Comparison of proximal \& hybrid-proximal-ML\\ @@ -1000,9 +995,8 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Improvement using \\``ML-in-the-List''} - \setcounter{footnote}{0} - \vspace*{-0.7cm} + \vspace*{-0.5cm} \begin{itemize} \item Improvement of proximal decoding by adding an ``ML-in-the-List'' step after @@ -1027,12 +1021,11 @@ for $K$ iterations do return $\boldsymbol{\hat{c}}$ end if end for -return $\boldsymbol{\hat{c}}$ +return $\boldsymbol{\hat{c}}$ |\Suppressnumber| + + +|\phantom{a}||\Reactivatenumber| \end{algorithm} - - \vspace*{-5mm} - - \caption{Proximal decoding algorithm \cite{proximal_paper}} \end{figure} \end{minipage}% @@ -1052,14 +1045,10 @@ for $K$ iterations do end if end for $\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ -$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$ -$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right) \text{ for all valid codewords } \boldsymbol{\tilde{c}}_l}$ -$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right)}$ +$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\hat{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$ +$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \hat{c}}_l, \boldsymbol{\hat{c}} \right) \text{ for all valid codewords } \boldsymbol{\hat{c}}_l}$ +$\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with lowest }d_H\left( \boldsymbol{ \hat{c}}_l, \boldsymbol{\hat{c}} \right)}$ \end{algorithm} - - \vspace*{-5mm} - - \caption{Improved proximal decoding algorithm} \end{figure} \end{minipage} \end{frame} @@ -1506,7 +1495,6 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Average Error} - \setcounter{footnote}{0} \begin{figure}[H] \centering diff --git a/latex/presentations/final/sections/theoretical_background.tex b/latex/presentations/final/sections/theoretical_background.tex index b4003bf..9afb728 100644 --- a/latex/presentations/final/sections/theoretical_background.tex +++ b/latex/presentations/final/sections/theoretical_background.tex @@ -93,7 +93,7 @@ \begin{align*} \boldsymbol{x} = \left( -1 \right)^{\boldsymbol{c}}, \hspace{5mm} \boldsymbol{c} \in \mathbb{F}_2^n, - \hspace{2mm} \boldsymbol{x} \in \mathbb{R}^n + \hspace{2mm} \boldsymbol{x} \in \left\{ -1, 1 \right\}^n \end{align*} \item The channel model is AWGN: \begin{align*} @@ -194,7 +194,7 @@ \node[color=KITgreen, right=0cm of f] {$\tilde{\boldsymbol{c}}$}; \end{tikzpicture} - \caption{Hypercube ($n=3$) with valid codewords for single parity-check} + \caption{Hypercube ($n=3$) with valid codewords for single parity-check code} \end{figure} \end{minipage} \end{frame}