\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.