Made polytope example figure more understandable
This commit is contained in:
parent
8880423d1e
commit
047e4f4009
@ -270,8 +270,8 @@ Figure \ref{fig:dec:poly:exact} shows the codeword polytope
|
|||||||
$\text{poly}\left( \mathcal{C} \right) $, i.e. the constraints for the
|
$\text{poly}\left( \mathcal{C} \right) $, i.e. the constraints for the
|
||||||
equivalent linear program to exact \ac{ML} decoding - only valid codewords are
|
equivalent linear program to exact \ac{ML} decoding - only valid codewords are
|
||||||
feasible solutions.
|
feasible solutions.
|
||||||
Figures \ref{fig:dec:poly:local1} and \ref{fig:dec:poly:local2} show the local
|
Figure \ref{fig:dec:poly:local} shows the local codeword polytope of each check
|
||||||
codeword polytopes of each check node.
|
node.
|
||||||
Their intersection, the relaxed codeword polytope $\overline{Q}$, is shown in
|
Their intersection, the relaxed codeword polytope $\overline{Q}$, is shown in
|
||||||
figure \ref{fig:dec:poly:relaxed}.
|
figure \ref{fig:dec:poly:relaxed}.
|
||||||
It can be seen that the relaxed codeword polytope $\overline{Q}$ introduces
|
It can be seen that the relaxed codeword polytope $\overline{Q}$ introduces
|
||||||
@ -302,35 +302,9 @@ The resulting formulation of the relaxed optimization problem is the following:%
|
|||||||
% Left side - codeword polytope
|
% Left side - codeword polytope
|
||||||
%
|
%
|
||||||
|
|
||||||
\begin{subfigure}[c]{0.45\textwidth}
|
\begin{subfigure}[b]{0.49\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
\begin{subfigure}{\textwidth}
|
|
||||||
\centering
|
|
||||||
|
|
||||||
\begin{align*}
|
|
||||||
\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{align*}
|
|
||||||
|
|
||||||
\caption{Definition of the visualized code}
|
|
||||||
\label{fig:dec:poly:code_def}
|
|
||||||
\end{subfigure} \\[7em]
|
|
||||||
\begin{subfigure}{\textwidth}
|
\begin{subfigure}{\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
@ -338,7 +312,7 @@ The resulting formulation of the relaxed optimization problem is the following:%
|
|||||||
draw, circle, inner sep=0pt, minimum size=4pt]
|
draw, circle, inner sep=0pt, minimum size=4pt]
|
||||||
|
|
||||||
\tdplotsetmaincoords{60}{25}
|
\tdplotsetmaincoords{60}{25}
|
||||||
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
|
\begin{tikzpicture}[scale=0.8, transform shape, tdplot_main_coords]
|
||||||
% Cube
|
% Cube
|
||||||
|
|
||||||
\coordinate (p000) at (0, 0, 0);
|
\coordinate (p000) at (0, 0, 0);
|
||||||
@ -389,143 +363,162 @@ The resulting formulation of the relaxed optimization problem is the following:%
|
|||||||
% Right side - relaxed polytope
|
% Right side - relaxed polytope
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
\begin{subfigure}[c]{0.45\textwidth}
|
\begin{subfigure}[b]{0.49\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
\begin{subfigure}{\textwidth}
|
\begin{subfigure}{\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
\begin{minipage}{0.5\textwidth}
|
||||||
draw, circle, inner sep=0pt, minimum size=4pt]
|
\centering
|
||||||
|
|
||||||
|
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
||||||
|
draw, circle, inner sep=0pt, minimum size=4pt]
|
||||||
|
|
||||||
\tdplotsetmaincoords{60}{25}
|
\tdplotsetmaincoords{60}{25}
|
||||||
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
|
\begin{tikzpicture}[scale=0.8, transform shape, tdplot_main_coords]
|
||||||
% Cube
|
% Cube
|
||||||
|
|
||||||
\coordinate (p000) at (0, 0, 0);
|
\coordinate (p000) at (0, 0, 0);
|
||||||
\coordinate (p001) at (0, 0, 2);
|
\coordinate (p001) at (0, 0, 2);
|
||||||
\coordinate (p010) at (0, 2, 0);
|
\coordinate (p010) at (0, 2, 0);
|
||||||
\coordinate (p011) at (0, 2, 2);
|
\coordinate (p011) at (0, 2, 2);
|
||||||
\coordinate (p100) at (2, 0, 0);
|
\coordinate (p100) at (2, 0, 0);
|
||||||
\coordinate (p101) at (2, 0, 2);
|
\coordinate (p101) at (2, 0, 2);
|
||||||
\coordinate (p110) at (2, 2, 0);
|
\coordinate (p110) at (2, 2, 0);
|
||||||
\coordinate (p111) at (2, 2, 2);
|
\coordinate (p111) at (2, 2, 2);
|
||||||
|
|
||||||
\draw[] (p000) -- (p100);
|
\draw[] (p000) -- (p100);
|
||||||
\draw[] (p100) -- (p101);
|
\draw[] (p100) -- (p101);
|
||||||
\draw[] (p101) -- (p001);
|
\draw[] (p101) -- (p001);
|
||||||
\draw[] (p001) -- (p000);
|
\draw[] (p001) -- (p000);
|
||||||
|
|
||||||
\draw[dashed] (p010) -- (p110);
|
\draw[dashed] (p010) -- (p110);
|
||||||
\draw[] (p110) -- (p111);
|
\draw[] (p110) -- (p111);
|
||||||
\draw[] (p111) -- (p011);
|
\draw[] (p111) -- (p011);
|
||||||
\draw[dashed] (p011) -- (p010);
|
\draw[dashed] (p011) -- (p010);
|
||||||
|
|
||||||
\draw[dashed] (p000) -- (p010);
|
\draw[dashed] (p000) -- (p010);
|
||||||
\draw[] (p100) -- (p110);
|
\draw[] (p100) -- (p110);
|
||||||
\draw[] (p101) -- (p111);
|
\draw[] (p101) -- (p111);
|
||||||
\draw[] (p001) -- (p011);
|
\draw[] (p001) -- (p011);
|
||||||
|
|
||||||
% Polytope Vertices
|
% Polytope Vertices
|
||||||
|
|
||||||
\node[codeword] (c000) at (p000) {};
|
\node[codeword] (c000) at (p000) {};
|
||||||
\node[codeword] (c101) at (p101) {};
|
\node[codeword] (c101) at (p101) {};
|
||||||
\node[codeword] (c110) at (p110) {};
|
\node[codeword] (c110) at (p110) {};
|
||||||
\node[codeword] (c011) at (p011) {};
|
\node[codeword] (c011) at (p011) {};
|
||||||
|
|
||||||
% Polytope Edges
|
% Polytope Edges
|
||||||
|
|
||||||
\draw[line width=1pt, color=KITblue] (c000) -- (c101);
|
\draw[line width=1pt, color=KITblue] (c000) -- (c101);
|
||||||
\draw[line width=1pt, color=KITblue] (c000) -- (c110);
|
\draw[line width=1pt, color=KITblue] (c000) -- (c110);
|
||||||
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
|
\draw[line width=1pt, color=KITblue] (c000) -- (c011);
|
||||||
|
|
||||||
\draw[line width=1pt, color=KITblue] (c101) -- (c110);
|
\draw[line width=1pt, color=KITblue] (c101) -- (c110);
|
||||||
\draw[line width=1pt, color=KITblue] (c101) -- (c011);
|
\draw[line width=1pt, color=KITblue] (c101) -- (c011);
|
||||||
|
|
||||||
\draw[line width=1pt, color=KITblue] (c011) -- (c110);
|
\draw[line width=1pt, color=KITblue] (c011) -- (c110);
|
||||||
|
|
||||||
% Polytope Annotations
|
% Polytope Annotations
|
||||||
|
|
||||||
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
|
\node[color=KITblue, below=0cm of c000] {$\left( 0, 0, 0 \right) $};
|
||||||
\node[color=KITblue, right=0.17cm of c101] {$\left( 1, 0, 1 \right) $};
|
\node[color=KITblue, right=0.17cm of c101] {$\left( 1, 0, 1 \right) $};
|
||||||
\node[color=KITblue, right=0cm of c110] {$\left( 1, 1, 0 \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, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{minipage}%
|
||||||
|
\begin{minipage}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
||||||
|
draw, circle, inner sep=0pt, minimum size=4pt]
|
||||||
|
|
||||||
|
\tdplotsetmaincoords{60}{25}
|
||||||
|
\begin{tikzpicture}[scale=0.8, transform shape, 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
|
||||||
|
|
||||||
|
\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);
|
||||||
|
|
||||||
|
% 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) $};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{minipage}
|
||||||
|
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node[color=KITblue, align=center] at (-2,0)
|
||||||
|
{$j=1$\\ $\left( c_1 + c_2+ c_3 = 0 \right) $};
|
||||||
|
\node[color=KITblue, align=center] at (2,0)
|
||||||
|
{$j=2$\\ $\left(c_2 + c_3 = 0\right)$};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
|
|
||||||
\caption{Local codeword polytope of check node\\ $j=1$
|
|
||||||
$\left( c_1 + c_2 + c_3 = 0 \right)$}
|
|
||||||
\label{fig:dec:poly:local1}
|
|
||||||
\end{subfigure} \\[1em]
|
|
||||||
\begin{subfigure}{\textwidth}
|
|
||||||
\centering
|
|
||||||
|
|
||||||
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
|
||||||
draw, circle, inner sep=0pt, minimum size=4pt]
|
|
||||||
|
|
||||||
\tdplotsetmaincoords{60}{25}
|
\caption{Local codeword polytopes of the check nodes}
|
||||||
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
|
\label{fig:dec:poly:local}
|
||||||
% 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
|
|
||||||
|
|
||||||
\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);
|
|
||||||
|
|
||||||
% 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) $};
|
|
||||||
\end{tikzpicture}
|
|
||||||
|
|
||||||
\caption{Local codeword polytope of check node\\ $j=2$
|
|
||||||
$\left( c_2 + c_3 = 0\right)$}
|
|
||||||
\label{fig:dec:poly:local2}
|
|
||||||
\end{subfigure}\\[1em]
|
\end{subfigure}\\[1em]
|
||||||
\begin{subfigure}{\textwidth}
|
\begin{subfigure}{\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\draw (-2, 0) -- (2, 0);
|
||||||
|
\draw (-2, 0.5) -- (-2, 0);
|
||||||
|
\draw (2, 0.5) -- (2, 0);
|
||||||
|
|
||||||
|
\node (intersection) at (0, -0.5) {Intersection};
|
||||||
|
|
||||||
|
\draw (0, 0) -- (intersection);
|
||||||
|
\draw[->] (intersection) -- (0, -1);
|
||||||
|
\end{tikzpicture}
|
||||||
|
|
||||||
|
\vspace{2mm}
|
||||||
|
|
||||||
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
|
||||||
draw, circle, inner sep=0pt, minimum size=4pt]
|
draw, circle, inner sep=0pt, minimum size=4pt]
|
||||||
\tikzstyle{pseudocodeword} = [color=KITred, fill=KITred,
|
\tikzstyle{pseudocodeword} = [color=KITred, fill=KITred,
|
||||||
draw, circle, inner sep=0pt, minimum size=4pt]
|
draw, circle, inner sep=0pt, minimum size=4pt]
|
||||||
|
|
||||||
\tdplotsetmaincoords{60}{25}
|
\tdplotsetmaincoords{60}{25}
|
||||||
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
|
\begin{tikzpicture}[scale=0.8, transform shape, tdplot_main_coords]
|
||||||
% Cube
|
% Cube
|
||||||
|
|
||||||
\coordinate (p000) at (0, 0, 0);
|
\coordinate (p000) at (0, 0, 0);
|
||||||
@ -578,7 +571,11 @@ The resulting formulation of the relaxed optimization problem is the following:%
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
|
|
||||||
\caption{Visualization of the codeword polytope and the relaxed codeword
|
\caption{Visualization of the codeword polytope and the relaxed codeword
|
||||||
polytope}
|
polytope for the code defined by the parity check matrix $\boldsymbol{H} =
|
||||||
|
\begin{bmatrix}
|
||||||
|
1 & 1 & 1\\
|
||||||
|
0 & 1 & 1
|
||||||
|
\end{bmatrix}$}
|
||||||
\label{fig:dec:poly}
|
\label{fig:dec:poly}
|
||||||
\end{figure}%
|
\end{figure}%
|
||||||
%
|
%
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user