\begin{itemize}
\item{Q1}\\
We describe the connections using the four main directional words,
- namely: $north,south,east,west$. We only define the connection for the
- $north$ and $east$ directions because we can infer the $south$ and
- $west$ directions from it.
+ namely: $north,south,east,west$ and the predicate $connected(From, To,
+ Direction)$. In this way the push possibility axiom can check in the
+ direction of the crate to see if the push is a valid move. In this way we
+ don't have to do anything fancy with arithmetics.
\item{Q2}\\
We use the functions $agent(X, S_i), crate(cratename, X, S_i)$ and
- $target(cratename, X)$ to easily represent the information.
+ $target(cratename, X)$ to easily represent the information. We chose to
+ hardcode the locations of the crates because then the resolution will be
+ much faster.
\item{Q3}\\
$\begin{array}{llllll}
connected(loc11, loc21, east) & \wedge &
crate(cratec, loc21, s0) & \wedge &
crate(crateb, loc22, s0) & \wedge &
crate(cratea, loc23, s0) & \wedge\\
- target(cratea, loc12) & \wedge &
- target(crateb, loc13) & \wedge &
- target(cratec, loc11) & \wedge\\
agent(loc32, s0) & \wedge\\
\end{array}$
\item{Q4}\\
\subsubsection{Task 11: Related work}
Zhou, N. (2013). A Tabled Prolog Program for Solving Sokoban, 124, 561–575. doi:10.3233/FI-2013-849
+
+The paper treats the sokoban problem as a general shortest path problem. And it
+also uses lookup tables to speed up the search. This was used in a competition
+on certain sokoban problems.
\prologcode{./src/hs.pl}
\end{listing}
-\tikzstyle{level 1}=[level distance=1cm, sibling distance=1cm]
-\tikzstyle{level 2}=[level distance=1cm, sibling distance=1cm]
-\tikzstyle{bag} = [text width=4em, text centered]
-\tikzstyle{end} = [minimum width=3pt, inner sep=0pt]
\begin{figure}[H]
\caption{Examples of good hitting set trees}
\begin{tikzpicture} [grow=down]
\usepackage[hidelinks]{hyperref}
\usepackage{tikz}
-\usetikzlibrary{trees}
-
\author{Mart Lubbers\and Caspar Safarlou}
\title{Knowledge Representation and Reasoning.\\Assignment 1}
\date{\today}
+\usetikzlibrary{trees}
+\tikzstyle{level 1}=[level distance=1cm, sibling distance=1cm]
+\tikzstyle{level 2}=[level distance=1cm, sibling distance=1cm]
+\tikzstyle{bag} = [text width=4em, text centered]
+\tikzstyle{end} = [minimum width=3pt, inner sep=0pt]
+
\everymath{\displaystyle}
\floatsetup[listing]{style=Plaintop}