\section{Theoretical Background}%
\label{sec:Theoretical Background}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Motivation}%
\label{sub:Motivation}

\begin{frame}[t]
    \frametitle{Motivation}

    \todo{TODO}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Presumptions}%
\label{sub:Presumptions}

\begin{frame}[t]
    \frametitle{Presumptions: Channel \& Modulation}

    \tikzstyle{mapper} = [rectangle, minimum width=1.5cm, rounded corners=0.1cm, minimum height=0.7cm, text centered, draw=black, fill=KITgreen!80]
    \begin{figure}[htpb]
        \centering

        \begin{tikzpicture}[scale=1, transform shape]
            \node (in) {$c\left[ k \right] $};
            \node[mapper, right=0.5cm of in] (bpskmap) {Mapper};
            \node[right=1.5cm of bpskmap, draw, circle, inner sep=0pt, minimum size=0.5cm] (add) {$+$};
            \node[right=0.5cm of add] (out) {$y\left[ k \right] $};
            \node[below=0.5cm of add] (noise) {$n\left[ k \right] $};

            \node at ($(bpskmap.east)!0.5!(add.west) + (0,0.3cm)$) {$x\left[ k \right] $};

            \draw[->] (in) -- (bpskmap);
            \draw[->] (bpskmap) -- (add);
            \draw[->] (add) -- (out);
            \draw[->] (noise) -- (add);
        \end{tikzpicture}
    \end{figure}

    \begin{itemize}
        \item All simulations are performed with BPSK Modulation:
            \begin{align*}
                x\left[ k \right]  = \left( -1 \right)^{c\left[ k \right] }, \hspace{5mm} \boldsymbol{c} \in \mathbb{F}_2^n, \hspace{2mm} k\in \left\{ 1, \ldots, n \right\} 
            \end{align*}
        \item The used channel model is AWGN:
            \begin{align*}
                \boldsymbol{y} = \boldsymbol{x} + \boldsymbol{n},
                    \hspace{5mm}\boldsymbol{n}\sim \mathcal{N}
                        \left(0,\frac{1}{2}\left(\frac{k}{n}\frac{E_b}{N_0}\right)^{-1}\right),
                    \hspace{2mm} \boldsymbol{y}, \boldsymbol{n} \in \mathbb{R}^n
            \end{align*}
            \todo{Why $\frac{1}{2}$}
    \end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LP Decoding}%
\label{sub:LP Decoding}

\begin{frame}[t]
    \frametitle{LP Decoding}

    \begin{minipage}[c]{0.6\linewidth}
        \begin{itemize}
            \item Codeword Polytope:
                \begin{align*}
                    \text{poly}\left( \mathcal{C} \right) = \left\{ \sum_{\boldsymbol{y}\in\mathcal{C}} \lambda_{\boldsymbol{y}} \boldsymbol{y} : \lambda_{\boldsymbol{y}} \ge  0, \sum_{\boldsymbol{y}\in\mathcal{C}}\lambda_{\boldsymbol{y}} = 1 \right\}, \hspace{5mm} \lambda_{\boldsymbol{y}} \in \mathbb{R}
                \end{align*}
            \item Cost Function:
                \begin{align*}
                    \gamma_i = \log\left( \frac{P\left( Y=y_i | C=0 \right) }{P\left( Y=y_i | C=1 \right) } \right)
                \end{align*}
                \todo{Why is ``the cost of decoding $\hat{y} = 1$'' a valid choice for an overall cost function?}
            \item LP Formulation:
                \begin{align*}
                    &\text{minimize } \sum_{i=1}^{n} \gamma_i f_i, \hspace{5mm} f_i = \sum_{\boldsymbol{y}} \lambda_{\boldsymbol{y}}y_i\\
                    &\text{subject to } \boldsymbol{f}\in\text{poly}\left( \mathcal{C} \right) 
                \end{align*}
        \end{itemize}
    \end{minipage}%
    \hfill%
    \begin{minipage}[c]{0.4\linewidth}
        \begin{figure}[H]
            \centering

            \tikzstyle{codeword} = [color=KITblue, fill=KITblue,
                                    draw, circle, inner sep=0pt, minimum size=4pt]

            \tdplotsetmaincoords{60}{245}
            \begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
                % Cube

                \draw[dashed] (0, 0, 0) -- (2, 0, 0);
                \draw[dashed] (2, 0, 0) -- (2, 0, 2);
                \draw[] (2, 0, 2) -- (0, 0, 2);
                \draw[] (0, 0, 2) -- (0, 0, 0);

                \draw[] (0, 2, 0) -- (2, 2, 0);
                \draw[] (2, 2, 0) -- (2, 2, 2);
                \draw[] (2, 2, 2) -- (0, 2, 2);
                \draw[] (0, 2, 2) -- (0, 2, 0);

                \draw[] (0, 0, 0) -- (0, 2, 0);
                \draw[dashed] (2, 0, 0) -- (2, 2, 0);
                \draw[] (2, 0, 2) -- (2, 2, 2);
                \draw[] (0, 0, 2) -- (0, 2, 2);

                % Codeword Polytope

                \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
                \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
                \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);

                \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
                \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);

                \draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);

                % Polytope Annotations

                \node[codeword] (c000) at (0, 0, 0) {};% {$\left( 0, 0, 0 \right) $};
                \node[codeword] (c101) at (2, 0, 2) {};% {$\left( 1, 0, 1 \right) $};
                \node[codeword] (c110) at (2, 2, 0) {};% {$\left( 1, 1, 0 \right) $};
                \node[codeword] (c011) at (0, 2, 2) {};% {$\left( 0, 1, 1 \right) $};

                \node[color=KITblue, right=0cm of c000] {$\left( 0, 0, 0 \right) $};
                \node[color=KITblue, above=0cm of c101] {$\left( 1, 0, 1 \right) $};
                \node[color=KITblue, left=0cm of c110] {$\left( 1, 1, 0 \right) $};
                \node[color=KITblue, left=0cm of c011] {$\left( 0, 1, 1 \right) $};

                % f

                \node[color=KITgreen, fill=KITgreen,
                      draw, circle, inner sep=0pt, minimum size=4pt] (f) at (0.7, 0.7, 1) {};
                \node[color=KITgreen, right=0cm of f] {$\boldsymbol{f}$};
            \end{tikzpicture}
            \caption{$\text{poly}\left( \mathcal{C} \right)$ for $n=3$}
        \end{figure}
    \end{minipage}
\end{frame}

\begin{frame}[t]
    \frametitle{LP Relaxation}
   
    \todo{TODO}
\end{frame}

