% $Id: motivation.tex 60607 2018-09-14 14:50:04Z torsten $
% $HeadURL: https://svn.cs.uni-potsdam.de/svn/reposWV/Lehre/ASP/trunk/Slides/motivation.tex $
% ----------------------------------------------------------------------
\lecture{Motivation}{motivation}
% ----------------------------------------------------------------------
\part{Motivation}
% ----------------------------------------------------------------------
\section{Motivation}
% ----------------------------------------------------------------------
\begin{frame}{\only<1-2>{Informatics}\only<5->{\alert<7>{Declarative problem solving}}\only<3-4>{Traditional programming}}
  \centering
  \bigskip
  \onslide<2-6>{%
  \begin{center}
    \alert<5->{\emph{``What is the problem?''}}
    \quad\structure{versus}\quad
    \alert<3-4>{\emph{``How to solve the problem?''}}
  \end{center}}
  \vfill
  \centering{%
    \begin{picture}(320,120)(-160,-60)
    \put(-80,+40){\makebox(0,0){\framebox(80,20){Problem}}}
    \put(-80,-40){\makebox(0,0){\framebox(80,20){\only<1-3,5>{Computer}\only<4>{\alert{\emph{Program}}}\only<6-7>{\alert{\emph{Representation}}}}}}
    \put(+80,+40){\makebox(0,0){\framebox(80,20){Solution}}}
    \put(+80,-40){\makebox(0,0){\framebox(80,20){Output}}}
    \put(-80,+30){\vector(0,-1){60}}
    \put(-40,-40){\vector(+1,0){80}}
    \put(+80,-30){\vector(0,+1){60}}
    \only<4>{\put(-120,  0){\makebox(0,0){\alert{\emph{Programming}}}}}
    \only<6-7>{\put(-110,  0){\makebox(0,0){\alert{\emph{Modeling}}}}}
    \put(+120,  0){\makebox(0,0){\only<4-7>{Interpreting}}}
    \put(   0,-55){\makebox(0,0){\only<4>{\alert{\emph{Executing}}}\only<6-7>{\alert{\emph{Solving}}}}}
  \end{picture}}
\end{frame}
% ----------------------------------------------------------------------
\input{\ASPSOURCE/Motivation/benefits}
% ----------------------------------------------------------------------
\section{Nutshell}
% ----------------------------------------------------------------------
\input{\ASPSOURCE/Motivation/asp}
% ----------------------------------------------------------------------
% \input{Motivation/nutshell}      % OLD MATERIAL
% \input{Motivation/hazelnutshell} % OLD MATERIAL
% ----------------------------------------------------------------------
% \input{time} % <<<<<<<<<
% ----------------------------------------------------------------------
\section{Evolution}
% ----------------------------------------------------------------------
\input{\ASPSOURCE/Motivation/moments}
% ----------------------------------------------------------------------
\input{\ASPSOURCE/Motivation/paradigms}
% ----------------------------------------------------------------------
\section{Foundation}
% ----------------------------------------------------------------------
\input{\ASPSOURCE/Motivation/tabling}
% ----------------------------------------------------------------------
\section{Workflow}
% ----------------------------------------------------------------------
\begin{frame}[c]{ASP modeling, grounding, and solving}
  \begin{center}
    \small
    \setlength{\unitlength}{.75pt}
    \begin{picture}(420,200)(-210,-35)
      \put(-200,110){\framebox(80,40){Problem}}
      \put(-200,-20){\framebox(80,40){\shortstack{Logic\\Program}}}
      \put(-80,-15){\framebox(60,30){Grounder}}
      \put(  20,-15){\framebox(60,30){Solver}}
      \put( 120,-20){\framebox(80,40){\shortstack{Stable\\Models}}}
      \put( 120,110){\framebox(80,40){Solution}}
      \put(-120,0){\vector(1,0){40}}
      \put( -20,0){\vector(1,0){40}}
      \put(  80,0){\vector(1,0){40}}
      \put(-160,110){\vector(0,-1){90}}
      \put( 160, 20){\vector(0, 1){90}}
      \put(-217, 62.5){\emph{Modeling}}
      \put( 165, 62.5){\emph{Interpreting}}
      \put(   0,-32.5){\makebox(0,0){\emph{Solving}}}
    \end{picture}
  \end{center}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}[c]{SAT solving}
  \begin{center}
    \small
    \setlength{\unitlength}{.75pt}
    \begin{picture}(420,200)(-210,-35)
      \put(-200,110){\framebox(80,40){Problem}}
      \put(-200,-20){\framebox(80,40){\shortstack{Formula\\(CNF)}}}
      \put(  20,-15){\framebox(60,30){Solver}}
      \put( 120,-20){\framebox(80,40){\shortstack{Classical\\Models}}}
      \put( 120,110){\framebox(80,40){Solution}}
      \put(-120,0){\vector(1,0){140}}
      \put(  80,0){\vector(1,0){40}}
      \put(-160,110){\vector(0,-1){90}}
      \put( 160, 20){\vector(0, 1){90}}
      \put(-240, 62.5){\emph{Programming}}
      \put( 165, 62.5){\emph{Interpreting}}
      \put(   0,-32.5){\makebox(0,0){\emph{Solving}}}
    \end{picture}
  \end{center}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}[c]{Rooting ASP solving}
  \begin{center}
    \small
    \setlength{\unitlength}{.75pt}
    \begin{picture}(420,200)(-210,-35)
      \put(-200,110){\framebox(80,40){Problem}}
      \put(-200,-20){\framebox(80,40){\shortstack{Logic\\Program}}}\put(-160,-30){\makebox(0,0){\bf\only<2->{\alert{LP}}}}
      \put(-80,-15){\framebox(60,30){Grounder}}\put(-50,-30){\makebox(0,0){\bf\only<2->{\alert{DB}}}}
      \put(  20,-15){\framebox(60,30){Solver}}\put(50,-30){\makebox(0,0){\bf\only<2->{\alert{SAT}}}}
      \put( 120,-20){\framebox(80,40){\shortstack{Stable\\Models}}}\put(160,-30){\makebox(0,0){\bf\only<2->{\alert{DB+KR+LP}}}}
      \put( 120,110){\framebox(80,40){Solution}}
      \put(-120,0){\vector(1,0){40}}
      \put( -20,0){\vector(1,0){40}}
      \put(  80,0){\vector(1,0){40}}
      \put(-160,110){\vector(0,-1){90}}
      \put( 160, 20){\vector(0, 1){90}}
      \put(-217, 62.5){\emph{Modeling}}\put(-155, 62.5){\bf\only<2->{\alert{KR}}}
      \put( 165, 62.5){\emph{Interpreting}}
      \put(   0,-32.5){\makebox(0,0){\emph{Solving}}}
    \end{picture}
  \end{center}
\end{frame}
% ----------------------------------------------------------------------
\section{Engine}
% ----------------------------------------------------------------------
\begin{frame}[c]{Multi-threaded architecture of \clasp}
\setbeamercovered{transparent}
\input{\ASPSOURCE/Systems/arch_clasp2_mt_overview}
\end{frame}
% ----------------------------------------------------------------------
\section{Usage}
% ----------------------------------------------------------------------
\begin{frame}{Two\only<5>{ and a half} sides of a coin}
  \bigskip
  \begin{itemize}
  \item \structure{ASP as \textcolor<2-3>{green}{High-level Language}}
    \begin{itemize}
    \item Express problem instance as sets of facts
    \item Encode  problem class as a set of rules
    \item Read off solutions from stable models of facts and rules
    \end{itemize}
    \bigskip
  \item \structure{ASP as \textcolor<2-3>{red}{\only<4->{``}Low-level\only<4->{''} Language}}
    \begin{itemize}
    \item \textcolor<3>{red}{Compile} a problem \only<4->{instance} into a set of facts\only<-3>{ and rules}
    \item<only@4-> Encode  problem class as a set of rules
    \item Solve the original problem by solving its compilation
    \end{itemize}
    \bigskip
  \item<5> \structure{ASP and Imperative language}
    \begin{itemize}
    \item<5> Control continuously changing logic programs
    \end{itemize}
  \end{itemize}
\end{frame}
% ----------------------------------------------------------------------
\section{Summary}
% ----------------------------------------------------------------------
\begin{frame}{Upcoming experience}
  \begin{itemize}
  \item ASP is a viable tool for Knowledge Representation and Reasoning
    \begin{itemize}
    \item Integration of DB, LP, KR, and SAT techniques
    \item Combinatorial search problems in the realm of $\mathit{NP}$ and $\mathit{NP}^\mathit{NP}$
    \item Succinct, elaboration-tolerant problem representations
      \begin{itemize}\small
      \item rapid application development tool
      \end{itemize}
%      \smallskip
    \item Easy handling of knowledge-intensive applications
      \begin{itemize}\small
      \item
        data,
        defaults,
        exceptions,
        frame axioms,
        reachability
        etc
      \end{itemize}
    \end{itemize}
%      \smallskip
  \item ASP offers efficient and versatile off-the-shelf solving technology
    \begin{itemize}
    \item \alert{\url{http://potassco.org}}
    \item winning ASP, CASC, MISC, PB, and SAT competitions
    \end{itemize}
%      \smallskip
  \item ASP has a growing range of applications, and its's good fun!
    \bigskip
  \item []
    \begin{quote}
      \visible<2->{\huge\alert{\textbf{ASP}\ $=$\ \textbf{DB}$+$\textbf{LP}$+$\textbf{KR}$+$\only<-2>{\textbf{SAT}}\only<3>{\textbf{SMT$^n$}}}}
    \end{quote}
  \end{itemize}
\end{frame}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "asp"
%%% End:
