\begin{frame}{Table of contents}
  \setbeamertemplate{section in toc}[sections numbered]
  \setbeamertemplate{subsection in toc}[square]
  \tableofcontents[sections={2}]
\end{frame}


\subsection{Idea}

\begin{frame}{Idea}
  \setbeamercolor{block title}{fg=RoyalBlue!70}
  \begin{block}{Theorem {\normalfont \small \color{black} \cite{bodlaender2010, gavril1974}}}
    Equivalent:
    \begin{enumerate}[(i)]
    \item $G$ has a treewidth at most k.
    \item There is an elimination ordering $\pi$, such that no vertex $v\in V$ has more than $k$ neighbours with a higher number in $\pi$ in $G^+_\pi$
    \end{enumerate}
  \end{block}

  \setbeamercolor{block title}{fg=ForestGreen!70}
  \begin{block}{Application}
    \begin{enumerate}
    \item Take \emph{some} elimination ordering $\pi$ of $G$
    \item Construct $G^+_\pi$, calculate $k$
    \item $\xrightarrow{(i)~\equiv~(ii)}$ Upper Bound for treewidth
    \end{enumerate}
  \end{block}
\end{frame}

\begin{frame}{What is $\bf G^+_\pi$ ?}
  \metroset{block=transparent}
  \begin{columns}[c]
    \begin{column}{0.5\textwidth}

      \begin{block}{}\centering
      \begin{tikzpicture}
        \node[shape=circle,draw=black] (A) at (0,0) {A};
        \only<2>{\node[shape=circle,fill=mLightGreen] (A) at (0,0) {A};}
        \only<3->{\node[shape=circle,fill=mDarkTeal,text=white] (A) at (0,0) {A};}

        \node[shape=circle,draw=black] (B) at (3,0) {B};
        \only<2>{\node[shape=circle,fill=mLightBrown]  (B) at (3,0) {B};}
        \only<3>{\node[shape=circle,fill=mLightGreen]  (B) at (3,0) {B};}
        \only<4->{\node[shape=circle,fill=mDarkTeal,text=white]  (B) at (3,0) {B};}

        \node[shape=circle,draw=black] (C) at (0,3) {C};
        \only<2>{\node[shape=circle,fill=mLightBrown] (C) at (0,3) {C};}
        \only<3>{\node[shape=circle,fill=mLightBrown] (C) at (0,3) {C};}
        \only<4>{\node[shape=circle,fill=mLightGreen] (C) at (0,3) {C};}
        \only<5->{\node[shape=circle,fill=mDarkTeal,text=white] (C) at (0,3) {C};}

        \node[shape=circle,draw=black] (D) at (3,3) {D};
        \only<3>{\node[shape=circle,fill=mLightBrown] (D) at (3,3) {D};}
        \only<4>{\node[shape=circle,fill=mLightBrown] (D) at (3,3) {D};}
        \only<5>{\node[shape=circle,fill=mLightGreen] (D) at (3,3) {D};}
        \only<6->{\node[shape=circle,fill=mDarkTeal,text=white] (D) at (3,3) {D};}

        \node[shape=circle,draw=black] (E) at (1.5,5) {E};
        \only<4,5>{\node[shape=circle,fill=mLightBrown] (E) at (1.5,5) {E};}
        \only<6>{\node[shape=circle,fill=mLightGreen]  (E) at (1.5,5) {E};}
        \only<7>{\node[shape=circle,fill=mDarkTeal,text=white] (E) at (1.5,5) {E};}

        \path (A) edge (B);
        \path (A) edge (C);
        \path (B) edge (D);
        \path (C) edge (D);
        \path (C) edge (E);


        \path[style=dashed, color=mLightBrown]<2> (B) edge (C);
        \only<3->{\path[style=dashed, color=mDarkTeal] (B) edge (C);}

        \path[style=dashed, color=mLightBrown]<4> (E) edge (D);
        \only<5->{\path[style=dashed, color=mDarkTeal] (E) edge (D);}
      \end{tikzpicture}
      \end{block}{}

      \begin{block}{}\centering
        $\pi = [\textcolor<2>{mLightGreen}{A}
        \textcolor<3>{mLightGreen}{,B}
        \textcolor<4>{mLightGreen}{,C}
        \textcolor<5>{mLightGreen}{,D}
        \textcolor<6>{mLightGreen}{,E}]$
      \end{block}{}
    \end{column}

    \begin{column}{0.5\textwidth}
      \only<1-6>{
        \begin{algorithm}[H]
          \label{alg:fill}
          \KwIn{$G, \pi$}
          \KwOut{$G^+_{\pi}$}
          $H=G$\\
          \ForEach{$v\in V_G$}{
            \ForEach{$w, x$ of N$_H$($v$)}{
              \If{$\pi(w), \pi(x)>\pi(v)$}{
                \alert<2->{add \{w,x\} to E$_H$}
              }
            }
          }
          \KwRet{H}
        \end{algorithm}
      }

      \only<7>{
        \begin{itemize}
        \item $G^+_\pi$ is chordal
        \item $G$ is a subgraph of $G^+_\pi$
        \item $\pi$ is a perfect elimination ordering of $G^+_\pi$
        \item $width$ of \emph{subtree graph} (also a tree decomposition) of $G^+_\pi$ is $\text{MAXCLIQUE}(G^+_\pi)-1$ ~\cite{gavril1974}
        \item There is a tree decomposition algorithm for $G$ with $width = \text{MAXCLIQUE}(G^+_\pi)-1$, polynomial in n ~\cite{bodlaender2010}
        \end{itemize}
      }
      
    \end{column}
\end{columns}
\end{frame}

\begin{frame}[c]
  \centering
  \alert{How to find \only<1,2>{the best}\only<3>{\sout{the best} a good} elimination ordering?}\\

  \bigskip

  \only<2>{
    \begin{align*}
      \text{Best} &= G^+_\pi~\text{with Min(MAXCLIQUE}(G^+_\pi))\\
                  &= \text{Computational Infeasible}\\
                  &= \text{see}~\cite{heggernes2006}
    \end{align*}
  }

  \only<3>{
    \small 
    No best. But the smaller the triangulation the better.\\
    For minimal (not minimum): $\mathcal{O}(n^{2.376})$~\cite{heggernes2006}
  }
\end{frame}

\subsection{Greedy Triangulation}
\begin{frame}{Greedy Triangulation - Algorithm}
  \begin{algorithm}[H]
    \label{alg:greedy}
    \KwIn{$G(V,E)$}
    \KwOut{$\pi$}
    $H=G$\\
    \For{$i=1$ \KwTo $n$}{
      Choose $v \in H$ by criteria \alert<2>{X}\\
      Set $\pi^{-1}(i) = v$\\
      Eliminate $v$ from $H$ (make $N_H(v)$ a clique and remove $v$)
    }
    \KwRet{H}
  \end{algorithm}
  \bigskip

  \uncover<2>{\centering \alert{How to choose X?}}
\end{frame}

\begin{frame}{Greedy Triangulation - Criteria X}
  \metroset{block=transparent}  
  \begin{block}{Minimum Degree/Greedy Degree}
    X = $v$ with smallest degree in $H$\\
    \medskip

    {\small Performs well in practice}
  \end{block}

  \begin{block}{Greedy Fill In}
    X = $v$ which causes smallest number of fill edges in $G^+_\pi$\\
    \hspace{1.8mm} = $v$ with smallest number of pairs of non-adjacent neighbours\\
    \medskip

    {\small Slightly slower, slightly better bounds than MD/GD on average}
  \end{block}

\end{frame}

\begin{frame}{Greedy Triangulation - Advanced Criteria}
  \metroset{block=transparent}  
  \begin{block}{Lower Bound Based}
    Eliminate $v$ from $H$, compute lower bound (LB) of treewidth\\
    Choose $v$ with Min($2*LB+\deg_H(v))$
  \end{block}

  \begin{block}{Enhanced Minimum Fill In}
    Compute LB of $G$\\
    Choose simplical or almost simplical $v$ with $\deg(v)$ at most LB\\
    otherwise: Greedy Fill In
  \end{block}

  \dots{}
\end{frame}

\subsection{Local Search (Tabu Search)}

\begin{frame}[shrink]{Tabu Search}
    \begin{block}{General Approach}
      \begin{enumerate}[(i)]
      \item Keep list of $\alpha$ last solutions to avoid cycling
      \item Find inital solution [= some elimination ordering] 
      \item Make small change to get \emph{Neighbourhood} 
      \item Select neighbouring solution $\not\in \alpha$ with smallest cost
      \item Repeat (iii), (iv) some time $\rightarrow$ return best solution
      \end{enumerate}
    \end{block}

    \metroset{block=transparent}  
    \begin{block}{Neighbourhood Generation}
      Swap two vertices in elminiation ordering
    \end{block}
    \begin{block}{Step Cost}
      \begin{enumerate}[(i)]
      \item Width of generated neighbour
      \item But many neighbours with equal width, better:
      $\rightarrow w_\pi * n^2 + \sum{v\in V}\vert N^+_\pi(v) \vert{}^2$
      \end{enumerate}
    \end{block}

\end{frame}


\subsection{Chordal Graph Recognition}

\begin{frame}{Chordal Graph Recognition Heuristics}
  If it's chordal already, find perfect elminiation ordering (i.e. recognize it):
  \begin{itemize}
  \item Maximum Cardinality Search
  \item Lexicographical Breadth First Search
  \end{itemize}
  \dots{} tree decomposition depends on (perfect) elimination ordering found. Mostly determined by algorithms, except for first chosen $v_n$ (from right to left).

  $\rightarrow$ try for all $v$

  $\rightarrow$ adds factor $\mathcal{O}(n)$
\end{frame}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../upperbounds"
%%% End:
