From 9ca69da4794f62a9b66c8814fba15d4f194eed7c Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Thu, 26 Jan 2023 00:13:16 +0100 Subject: [PATCH] Changed pseudocode to not use indexing, double return instead of loop break --- latex/presentations/midterm/presentation.tex | 2 +- .../midterm/sections/decoding_algorithms.tex | 15 +++-- .../midterm/sections/examination_results.tex | 63 ++++++++----------- 3 files changed, 35 insertions(+), 45 deletions(-) diff --git a/latex/presentations/midterm/presentation.tex b/latex/presentations/midterm/presentation.tex index 8449d46..3566de2 100644 --- a/latex/presentations/midterm/presentation.tex +++ b/latex/presentations/midterm/presentation.tex @@ -195,7 +195,7 @@ basicstyle=\normalfont, columns=fullflexible, keywordstyle=\color{black}\bfseries, - keywords={a, for, end, do, b} % add the keywords you want, or load + keywords={a, for, end, do, return, b} % add the keywords you want, or load % a language as Rubens explains in his comment above. numbers=left, xleftmargin=.04\textwidth, diff --git a/latex/presentations/midterm/sections/decoding_algorithms.tex b/latex/presentations/midterm/sections/decoding_algorithms.tex index c16cce3..6ff7555 100644 --- a/latex/presentations/midterm/sections/decoding_algorithms.tex +++ b/latex/presentations/midterm/sections/decoding_algorithms.tex @@ -94,15 +94,14 @@ \vspace{2mm} \begin{algorithm}[caption={}, label={}] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. +$\boldsymbol{s} \leftarrow \boldsymbol{0}$ +for $K$ iterations do + $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ + $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ + $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ + If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$ end for -Output $\boldsymbol{\hat{x}}$ +return $\boldsymbol{\hat{c}}$ \end{algorithm} \end{frame} diff --git a/latex/presentations/midterm/sections/examination_results.tex b/latex/presentations/midterm/sections/examination_results.tex index 9890a0c..0e7f7f9 100644 --- a/latex/presentations/midterm/sections/examination_results.tex +++ b/latex/presentations/midterm/sections/examination_results.tex @@ -379,18 +379,15 @@ \begin{figure}[htpb] \centering - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{7.5}{9.5}\selectfont - ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. + \begin{algorithm}[caption={}, label={}] +$\boldsymbol{s} \leftarrow \boldsymbol{0}$ +for $K$ iterations do + $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ + $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ + $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ + If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$ end for -Output $\boldsymbol{\hat{x}}$ +return $\boldsymbol{\hat{c}}$ \end{algorithm} \caption{Proximal decoding algorithm \cite{proximal_paper}} @@ -862,18 +859,15 @@ Output $\boldsymbol{\hat{x}}$ \begin{figure} \centering - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{7.5}{9.5}\selectfont - ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. + \begin{algorithm}[caption={}, label={}] +$\boldsymbol{s} \leftarrow \boldsymbol{0}$ +for $K$ iterations do + $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ + $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ + $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ + If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$ end for -Output $\boldsymbol{\hat{x}}$ +return $\boldsymbol{\hat{c}}$ \end{algorithm} \caption{Proximal decoding algorithm \cite{proximal_paper}} @@ -884,22 +878,19 @@ Output $\boldsymbol{\hat{x}}$ \centering \begin{figure} \centering - - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{7.5}{9.5}\selectfont - ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - $\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$ + + \begin{algorithm}[caption={}, label={}] +$\boldsymbol{s} \leftarrow \boldsymbol{0}$ +for $K$ iterations do + $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ + $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ + $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ + If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$ end for $\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ -$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ -$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right]}$ -$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)}$ +$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_n\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$ +$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right) \forall n \in \left[ 1 : N-1 \right]}$ +$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right)}$ \end{algorithm} \caption{Hybrid proximal \& ML decoding algorithm}