Added LP Relaxation slides

This commit is contained in:
Andreas Tsouchlos 2023-04-12 01:42:10 +02:00
parent 85dc43190f
commit 6dcc43273d

View File

@ -220,6 +220,550 @@ return $\boldsymbol{\hat{c}}$
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{LP Relaxation}
\vspace*{-1cm}
\begin{gather*}
\boldsymbol{G} =
\begin{bmatrix}
0 & 1 & 1
\end{bmatrix} \hspace{1cm}
\boldsymbol{H} =
\begin{bmatrix}
1 & 1 & 1\\
0 & 1 & 1
\end{bmatrix} \\[1em]
\mathcal{C} = \left\{ \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix},
\begin{bmatrix} 0 \\ 1 \\ 1 \end{bmatrix} \right\}
\end{gather*}%
\vspace*{-1cm}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.4\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.9, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\end{tikzpicture}
\caption{Set of all codewords $\mathcal{C}$}
\label{fig:lp:poly:exact_ilp}
\end{subfigure}%
\begin{subfigure}[c]{0.16\textwidth}
\centering
\begin{tikzpicture}
\node (relaxation) at (0, 0) {Relaxation};
\draw (-1.5, 0) -- (relaxation);
\draw[->] (relaxation) -- (1.5, 0);
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.4\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.9, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
% Polytope Edges
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\end{tikzpicture}
\caption{Codeword polytope $\text{poly}\left( \mathcal{C} \right) $}
\label{fig:lp:poly:exact}
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}[t]
\frametitle{LP Relaxation}
\vspace*{-8mm}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.48\textwidth}
\centering
\begin{minipage}{\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.7, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c101) at (p101) {};
\node[codeword] (c110) at (p110) {};
\node[codeword] (c011) at (p011) {};
% Polytope Edges & Faces
\draw[line width=1pt, color=KITblue] (c000) -- (c101);
\draw[line width=1pt, color=KITblue] (c000) -- (c110);
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
\draw[line width=1pt, color=KITblue] (c101) -- (c110);
\draw[line width=1pt, color=KITblue] (c101) -- (c011);
\draw[line width=1pt, color=KITblue] (c011) -- (c110);
\fill[KITblue, opacity=0.15] (p000) -- (p101) -- (p011) -- cycle;
\fill[KITblue, opacity=0.15] (p000) -- (p110) -- (p101) -- cycle;
\fill[KITblue, opacity=0.15] (p110) -- (p011) -- (p101) -- cycle;
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, right=0.07cm of c101] {$\left( 1, 0, 1 \right) $};
\node[color=KITblue, right=0cm of c110] {$\left( 1, 1, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node[color=KITblue, align=center] at (-4,1)
{$j=1$\\ $\left( c_1 + c_2+ c_3 = 0 \right) $};
\end{tikzpicture}
\end{minipage}
\vspace{5mm}
\begin{minipage}{\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.7, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
\node[codeword] (c100) at (p100) {};
\node[codeword] (c111) at (p111) {};
% Polytope Edges & Faces
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
\draw[line width=1pt, color=KITblue] (c000) -- (c100);
\draw[line width=1pt, color=KITblue] (c100) -- (c111);
\draw[line width=1pt, color=KITblue] (c111) -- (c011);
\fill[KITblue, opacity=0.2] (p000) -- (p100) -- (p111) -- (p011) -- cycle;
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node[color=KITblue, below=0cm of c100] {$\left( 1, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c111] {$\left( 1, 1, 1 \right) $};
\node[color=KITblue, align=center] at (-4,1)
{$j=2$\\ $\left(c_2 + c_3 = 0\right)$};
\end{tikzpicture}
\end{minipage}
\caption{Local codeword polytopes of the check nodes}
\label{fig:lp:poly:local}
\end{subfigure}%
\begin{subfigure}[c]{0.18\textwidth}
\centering
\begin{tikzpicture}
\draw[densely dashed] (0, -2) -- (0, 2);
\draw[densely dashed] (-0.5, -2) -- (0, -2);
\draw[densely dashed] (-0.5, 2) -- (0, 2);
\node (intersection) at (1.5, 0) {Intersection};
\draw[densely dashed] (0, 0) -- (intersection);
\draw[densely dashed, ->] (intersection) -- (3,0);
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.32\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tikzstyle{pseudocodeword} = [color=KITred, fill=KITred,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.9, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
\node[pseudocodeword] (cpseudo) at (2, 1, 1) {};
% Polytope Edges & Faces
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
\draw[line width=1pt, color=KITred] (cpseudo) -- (c000);
\draw[line width=1pt, color=KITred] (cpseudo) -- (c011);
\fill[KITred, opacity=0.2] (p000) -- (p011) -- (2,1,1) -- cycle;
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node[color=KITred, right=0cm of cpseudo]
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
\end{tikzpicture}
\caption{Relaxed codeword polytope $\overline{Q}$}
\label{fig:lp:poly:relaxed}
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}[t]
\frametitle{LP Relaxation}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.2\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.8, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node at (3, -2) {$\mathcal{C}$};
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.18\textwidth}
\centering
\begin{tikzpicture}
\node (relaxation) at (0, 0) {Relaxation};
\draw (-1.5, 0) -- (relaxation);
\draw[->] (relaxation) -- (1.5, 0);
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.2\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.8, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
% Polytope Edges
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node at (3, -2) {$\text{poly}\left(\mathcal{C}\right)$};
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.18\textwidth}
\centering
\begin{tikzpicture}
\node (relaxation) at (0, 0) {Relaxation};
\draw (-1.5, 0) -- (relaxation);
\draw[->] (relaxation) -- (1.5, 0);
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.2\textwidth}
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tikzstyle{pseudocodeword} = [color=KITred, fill=KITred,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{25}
\begin{tikzpicture}[scale=0.8, tdplot_main_coords]
% Cube
\coordinate (p000) at (0, 0, 0);
\coordinate (p001) at (0, 0, 2);
\coordinate (p010) at (0, 2, 0);
\coordinate (p011) at (0, 2, 2);
\coordinate (p100) at (2, 0, 0);
\coordinate (p101) at (2, 0, 2);
\coordinate (p110) at (2, 2, 0);
\coordinate (p111) at (2, 2, 2);
\draw[] (p000) -- (p100);
\draw[] (p100) -- (p101);
\draw[] (p101) -- (p001);
\draw[] (p001) -- (p000);
\draw[dashed] (p010) -- (p110);
\draw[] (p110) -- (p111);
\draw[] (p111) -- (p011);
\draw[dashed] (p011) -- (p010);
\draw[dashed] (p000) -- (p010);
\draw[] (p100) -- (p110);
\draw[] (p101) -- (p111);
\draw[] (p001) -- (p011);
% Polytope Vertices
\node[codeword] (c000) at (p000) {};
\node[codeword] (c011) at (p011) {};
\node[pseudocodeword] (cpseudo) at (2, 1, 1) {};
% Polytope Edges & Faces
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
\draw[line width=1pt, color=KITred] (cpseudo) -- (c000);
\draw[line width=1pt, color=KITred] (cpseudo) -- (c011);
\fill[KITred, opacity=0.2] (p000) -- (p011) -- (2,1,1) -- cycle;
% Polytope Annotations
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
\node[color=KITred, right=0cm of cpseudo]
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
\node at (3, -2) {$\overline{Q}$};
\end{tikzpicture}
\end{subfigure}%
\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{LP Relaxation}