Finished LP Relaxation slides
This commit is contained in:
parent
6dcc43273d
commit
99008e29e8
@ -27,6 +27,7 @@
|
|||||||
\usetikzlibrary{spy}
|
\usetikzlibrary{spy}
|
||||||
\tikzexternalize[prefix=build/]
|
\tikzexternalize[prefix=build/]
|
||||||
|
|
||||||
|
\captionsetup[sub]{font=small}
|
||||||
|
|
||||||
\DeclareMathOperator*{\argmax}{arg\,max}
|
\DeclareMathOperator*{\argmax}{arg\,max}
|
||||||
\DeclareMathOperator*{\argmin}{arg\,min}
|
\DeclareMathOperator*{\argmin}{arg\,min}
|
||||||
|
|||||||
@ -129,118 +129,58 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\begin{frame}[t]
|
\begin{frame}[t]
|
||||||
\frametitle{LP Decoding \cite{feldman_paper}}
|
\frametitle{LP Decoding \cite{feldman_paper}}
|
||||||
|
|
||||||
\begin{minipage}[c]{0.6\linewidth}
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Codeword polytope:
|
\item General reformulation of ML decoding as a linear program (LP)
|
||||||
\begin{align*}
|
% \item Codeword polytope:
|
||||||
\text{poly}\left( \mathcal{C} \right) =
|
% \begin{align*}
|
||||||
\left\{
|
% \text{poly}\left( \mathcal{C} \right) =
|
||||||
\sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}}
|
% \left\{
|
||||||
\boldsymbol{c} : \alpha_{\boldsymbol{c}} \ge 0,
|
% \sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}}
|
||||||
\sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}} = 1
|
% \boldsymbol{c} : \alpha_{\boldsymbol{c}} \ge 0,
|
||||||
\right\},
|
% \sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}} = 1
|
||||||
\hspace{5mm} \alpha_{\boldsymbol{c}} \in \mathbb{R}_{\ge 0}
|
% \right\},
|
||||||
\end{align*}
|
% \hspace{5mm} \alpha_{\boldsymbol{c}} \in \mathbb{R}_{\ge 0}
|
||||||
|
% \end{align*}
|
||||||
\item Cost function:
|
\item Cost function:
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
\boldsymbol{\gamma}^{T} \tilde{\boldsymbol{c}} = \sum_{i=1}^{n}
|
\boldsymbol{\gamma}^{T} \boldsymbol{c} = \sum_{i=1}^{n}
|
||||||
\gamma_i \tilde{c}_i,
|
\gamma_i c_i,
|
||||||
\hspace{5mm}\gamma_i = \ln\left(
|
\hspace{5mm}\gamma_i = \ln\left(
|
||||||
\frac{p_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) }
|
\frac{p_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) }
|
||||||
{p_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right)
|
{p_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right)
|
||||||
\end{align*}
|
\end{align*}
|
||||||
\item Exact LP formulation of ML decoding:
|
\item Exact \textit{integer linear programming} (ILP) formulation of ML decoding:
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
&\text{minimize } \boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}}\\
|
&\text{minimize } \boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}}\\
|
||||||
&\text{subject to } \tilde{\boldsymbol{c}}\in\text{poly}
|
&\text{subject to } \boldsymbol{c}\in \mathcal{C}
|
||||||
\left( \mathcal{C} \right)
|
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
\item Goal: relaxation of constraints to make a practical solution to the problem feasible
|
||||||
\end{itemize}
|
\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] {$\tilde{\boldsymbol{c}}$};
|
|
||||||
\end{tikzpicture}
|
|
||||||
\caption{$\text{poly}\left( \mathcal{C} \right)$ for single parity-check code with
|
|
||||||
$n=3$}
|
|
||||||
\end{figure}
|
|
||||||
\end{minipage}
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\begin{frame}[t]
|
\begin{frame}[t]
|
||||||
\frametitle{LP Relaxation}
|
\frametitle{LP Relaxation: Motivation}
|
||||||
|
|
||||||
\vspace*{-1cm}
|
\vspace*{-1cm}
|
||||||
|
|
||||||
\begin{gather*}
|
\begin{gather*}
|
||||||
\boldsymbol{G} =
|
% \boldsymbol{G} =
|
||||||
\begin{bmatrix}
|
% \begin{bmatrix}
|
||||||
0 & 1 & 1
|
% 0 & 1 & 1
|
||||||
\end{bmatrix} \hspace{1cm}
|
% \end{bmatrix} \hspace{1cm}
|
||||||
\boldsymbol{H} =
|
\boldsymbol{H} =
|
||||||
\begin{bmatrix}
|
\begin{bmatrix}
|
||||||
1 & 1 & 1\\
|
1 & 1 & 1\\
|
||||||
0 & 1 & 1
|
0 & 1 & 1
|
||||||
\end{bmatrix} \\[1em]
|
\end{bmatrix} \hspace{1cm}
|
||||||
|
% \\[1em]
|
||||||
\mathcal{C} = \left\{ \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix},
|
\mathcal{C} = \left\{ \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix},
|
||||||
\begin{bmatrix} 0 \\ 1 \\ 1 \end{bmatrix} \right\}
|
\begin{bmatrix} 0 \\ 1 \\ 1 \end{bmatrix} \right\}
|
||||||
\end{gather*}%
|
\end{gather*}%
|
||||||
|
|
||||||
\vspace*{-1cm}
|
\vspace*{-5mm}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
@ -356,12 +296,23 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
% \vspace*{-5mm}
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\text{poly}\left( \mathcal{C} \right) =
|
||||||
|
\left\{
|
||||||
|
\sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}}
|
||||||
|
\boldsymbol{c} : \alpha_{\boldsymbol{c}} \ge 0,
|
||||||
|
\sum_{\boldsymbol{c}\in\mathcal{C}}\alpha_{\boldsymbol{c}} = 1
|
||||||
|
\right\},
|
||||||
|
\hspace{5mm} \alpha_{\boldsymbol{c}} \in \mathbb{R}_{\ge 0}
|
||||||
|
\end{align*}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[t]
|
\begin{frame}[t]
|
||||||
\frametitle{LP Relaxation}
|
\frametitle{LP Relaxation}
|
||||||
|
|
||||||
\vspace*{-8mm}
|
\vspace*{-1cm}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
@ -501,7 +452,7 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
|
||||||
\caption{Local codeword polytopes of the check nodes}
|
\caption{Local codeword polytopes $\mathcal{P}_{d_j}$ of the check nodes}
|
||||||
\label{fig:lp:poly:local}
|
\label{fig:lp:poly:local}
|
||||||
\end{subfigure}%
|
\end{subfigure}%
|
||||||
\begin{subfigure}[c]{0.18\textwidth}
|
\begin{subfigure}[c]{0.18\textwidth}
|
||||||
@ -520,6 +471,7 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\begin{subfigure}[c]{0.32\textwidth}
|
\begin{subfigure}[c]{0.32\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
|
\vspace*{1.5cm}
|
||||||
\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,
|
||||||
@ -575,6 +527,13 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
|
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
|
|
||||||
|
\vspace*{-5mm}
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\boldsymbol{T}_j\tilde{\boldsymbol{c}} \in \mathcal{P}_{d_j}, \hspace{2mm}
|
||||||
|
\forall j\in \mathcal{J}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
\caption{Relaxed codeword polytope $\overline{Q}$}
|
\caption{Relaxed codeword polytope $\overline{Q}$}
|
||||||
\label{fig:lp:poly:relaxed}
|
\label{fig:lp:poly:relaxed}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
@ -585,10 +544,12 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\begin{frame}[t]
|
\begin{frame}[t]
|
||||||
\frametitle{LP Relaxation}
|
\frametitle{LP Relaxation}
|
||||||
|
|
||||||
|
\vspace{-5mm}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
\begin{subfigure}[c]{0.2\textwidth}
|
\begin{subfigure}[t]{0.3\textwidth}
|
||||||
\centering
|
\centering
|
||||||
\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]
|
||||||
@ -629,20 +590,17 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
|
|
||||||
\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, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
|
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
|
||||||
|
|
||||||
\node at (3, -2) {$\mathcal{C}$};
|
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{subfigure}%
|
|
||||||
\begin{subfigure}[c]{0.18\textwidth}
|
|
||||||
\centering
|
|
||||||
\begin{tikzpicture}
|
|
||||||
\node (relaxation) at (0, 0) {Relaxation};
|
|
||||||
|
|
||||||
\draw (-1.5, 0) -- (relaxation);
|
\begin{align*}
|
||||||
\draw[->] (relaxation) -- (1.5, 0);
|
\text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \boldsymbol{c} \\
|
||||||
\end{tikzpicture}
|
\text{subject to}\hspace{2mm} &\boldsymbol{c} \in \mathcal{C}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
\caption{\textit{Integer linear program} (ILP)}
|
||||||
\end{subfigure}%
|
\end{subfigure}%
|
||||||
\begin{subfigure}[c]{0.2\textwidth}
|
\hfill%
|
||||||
|
\begin{subfigure}[t]{0.3\textwidth}
|
||||||
\centering
|
\centering
|
||||||
\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]
|
||||||
@ -687,20 +645,18 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
|
|
||||||
\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, above=0cm of c011] {$\left( 0, 1, 1 \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{tikzpicture}
|
||||||
\end{subfigure}%
|
|
||||||
\begin{subfigure}[c]{0.18\textwidth}
|
|
||||||
\centering
|
|
||||||
\begin{tikzpicture}
|
|
||||||
\node (relaxation) at (0, 0) {Relaxation};
|
|
||||||
|
|
||||||
\draw (-1.5, 0) -- (relaxation);
|
\begin{align*}
|
||||||
\draw[->] (relaxation) -- (1.5, 0);
|
\text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \boldsymbol{c} \\
|
||||||
\end{tikzpicture}
|
\text{subject to}\hspace{2mm} &\tilde{\boldsymbol{c}} \in
|
||||||
|
\text{poly}\left( \mathcal{C} \right) &\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
\caption{Motivation}
|
||||||
\end{subfigure}%
|
\end{subfigure}%
|
||||||
\begin{subfigure}[c]{0.2\textwidth}
|
\hfill%
|
||||||
|
\begin{subfigure}[t]{0.3\textwidth}
|
||||||
\centering
|
\centering
|
||||||
\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]
|
||||||
@ -754,12 +710,44 @@ return $\boldsymbol{\hat{c}}$
|
|||||||
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
|
\node[color=KITblue, above=0cm of c011] {$\left( 0, 1, 1 \right) $};
|
||||||
\node[color=KITred, right=0cm of cpseudo]
|
\node[color=KITred, right=0cm of cpseudo]
|
||||||
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
|
{$\left( 1, \frac{1}{2}, \frac{1}{2} \right) $};
|
||||||
|
\end{tikzpicture}
|
||||||
|
|
||||||
\node at (3, -2) {$\overline{Q}$};
|
\begin{align*}
|
||||||
|
\text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \boldsymbol{c} \\
|
||||||
|
\text{subject to}\hspace{2mm} &
|
||||||
|
\boldsymbol{T}_j\tilde{\boldsymbol{c}} \in \mathcal{P}_{d_j}, \hspace{2mm}
|
||||||
|
\forall j\in \mathcal{J}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
\caption{\textit{Linear code linear program} (LCLP)}
|
||||||
|
\end{subfigure}%
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\vspace*{-5.75cm}
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\begin{subfigure}[t]{0.36\textwidth}
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node (relaxation) at (0, 0) {Relaxation};
|
||||||
|
|
||||||
|
\draw[->] (-1, -0.25) -- (1, -0.25);
|
||||||
|
% \draw (-1.5, 0) -- (relaxation);
|
||||||
|
% \draw[->] (relaxation) -- (1.5, 0);
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{subfigure}%
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}[t]{0.31\textwidth}
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\node (relaxation) at (0, 0) {Relaxation};
|
||||||
|
|
||||||
|
\draw[->] (-1, -0.25) -- (1, -0.25);
|
||||||
|
% \draw (-1.5, 0) -- (relaxation);
|
||||||
|
% \draw[->] (relaxation) -- (1.5, 0);
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{subfigure}%
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user