\documentclass{cel-thesis/cel-thesis}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document Parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\thesisTitle{Application of Optimization Algorithms for Channel Decoding}
\thesisType{Bachelor's Thesis}
\thesisAuthor{Andreas Tsouchlos}
%\thesisAdvisor{Prof. Dr.-Ing. Laurent Schmalen}
%\thesisHeadOfInstitute{Prof. Dr.-Ing. Laurent Schmalen}
\thesisSupervisor{Name of assistant}
\thesisStartDate{24.10.2022}
\thesisEndDate{24.04.2023}
\thesisSignatureDate{Signature date} % TODO: Signature date
\thesisLanguage{english}
\setlanguage


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Packages, Settings and Definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
% Tikz related packages
%

\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}

\usetikzlibrary{external}
\usetikzlibrary{spy}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows.meta,arrows}

\pgfplotsset{compat=newest}
\usepgfplotslibrary{colorbrewer}

\tikzexternalize[prefix=build/]

%
% Generic packages
%

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[normalem]{ulem}  % Without 'normalem' this breaks the bibliography
\usepackage{amsmath}
\usepackage{amssymb, amsfonts, latexsym}
\usepackage{float}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{bm}
\usepackage{ifthen}
\usepackage{scalerel}

\usepackage{todonotes}
% Make tikz ignore '\todo' in the externalization process
\makeatletter
\renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
\makeatother

\usepackage{acro}
\usepackage{longtable}
\usepackage{mfirstuc}
\acsetup{
  uppercase/list,
  make-links,
  format/first-long=\itshape,
  list/template = longtable,
  list/name = List of Abbreviations,
}

\usepackage{caption}
\DeclareCaptionLabelFormat{bf-nodot}{\textbf{#1}~\textbf{#2}}
\captionsetup{labelformat=bf-nodot,labelsep=colon}

\usepackage{csquotes}
\usepackage[style=alphabetic, backend=biber,
            doi=false,url=false,isbn=false]{biblatex}
\addbibresource{bibliography.bib}

%
% Include useful commands and definitions
%

\input{common.tex}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\input{abbreviations.tex}

\setcounter{tocdepth}{1}

\begin{document}

    %
    % Preliminaries
    %

    \pagenumbering{roman}

    \maketitle
    \makestatutorydeclaration
    %\makeCCdeclaration

    %\include{chapters/abstract}

    %
    % Main Document
    %

    \cleardoublepage
    \pagenumbering{arabic}


    % 1. Introduction
    %   - Problem definition
    %   - Motivation
    %   - Results summary
    %
    % 2. Theoretical Background
    %   2.2 Notation
    %       - General remarks on notation (matrices, ...)
    %       - Probabilistic quantities(random variables, PDFs, ...)
    %   2.1 Preliminaries: Channel Model and Modulation
    %       - AWGN
    %       - BPSK
    %   2.3 Channel Coding with LDPC Codes
    %       - Introduction
    %       - Binary linear codes
    %       - LDPC codes
    %   2.4 Decoding LDPC Codes using Belief Propagation
    %       - Introduction to message passing
    %       - Overview of BP algorithm
    %   2.5 Optimization Methods
    %       - ADMM
    %       - Proximal gradient method
    %   
    % 3. Decoding Techniques
    %   3.1 Decoding using Optimization Methods
    %       - General methodology
    %   3.2 LP Decoding using ADMM
    %       - Equivalent ML optimization problem
    %       - LP relaxation
    %       - ADMM as a solver
    %   3.3 Proximal Decoding
    %       - Formulation of optimization problem
    %       - Proximal gradient method as a solver
    %
    % 4. Methodology and implementation
    %   4.1 General implementation process
    %       - First python using numpy
    %       - Then C++ using Eigen
    %   4.1 LP Decoding using ADMM
    %       - Choice of parameters
    %       - Selected projection algorithm
    %       - Adaptive linear programming decoding?
    %   4.2 Proximal Decoding
    %       - Choice of parameters
    %       - Road to improved implementation
    %
    % 5. Analysis of Results
    %   5.1 LP Decoding using ADMM
    %   5.2 Proximal Decoding
    %       - Parameter choice
    %       - FER
    %       - Improved implementation
    %   5.3 Comparison of BP, Proximal Decoding and LP Decoding using ADMM
    %       - Decoding performance
    %       - Complexity & runtime (mention difficulty in reaching conclusive
    %           results when comparing implementations)
    %
    % 6. Discussion
    %   - Proximal decoding improvement limitations
    %
    % 7. Conclusion
    %   - Summary of results
    %   - Future work
   

    % Proposed new structure:
    %
    % 1. Introduction
    %
    % 2. Theoretical Background
    %   \ldots
    %
    % 3. Proximal Decoding
    %   3.1 Theory
    %   3.2 Implementation details
    %   3.3 Results
    %   3.x Improved implementation
    %
    % 4. LP Decoding using ADMM
    %   4.1 Theory
    %   4.2 Implementation details
    %   4.3 Results and comparison with proximal
    %
    % 5. Discussion
    %
    % 6. Conclusion


    \tableofcontents
    \cleardoublepage % make sure multipage TOCs are numbered correctly

    \include{chapters/introduction}
    \include{chapters/theoretical_background}
    \include{chapters/proximal_decoding}
    \include{chapters/lp_dec_using_admm}
    \include{chapters/comparison}
    \include{chapters/discussion}
    \include{chapters/conclusion}
    \include{chapters/appendix}


    %\listoffigures
    %\listoftables

    \cleardoublepage
    \phantomsection
    \addcontentsline{toc}{chapter}{List of Abbreviations}
    \printacronyms

    \printbibliography[heading=bibintoc]

\end{document}

