From: Mart Lubbers Date: Tue, 11 Nov 2014 12:47:25 +0000 (+0100) Subject: finished last tasks from ass1 X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=8c6fbbbf0bfcfc13f1ad1a7ba151a1758d8dd499;p=ker1415-1.git finished last tasks from ass1 --- diff --git a/report/ass1.tex b/report/ass1.tex index e08ff45..670bdcf 100644 --- a/report/ass1.tex +++ b/report/ass1.tex @@ -10,21 +10,60 @@ We use the functions $agent(X, S_i), crate(cratename, X, S_i)$ and $target(cratename, X)$ to easily represent the information. \item{Q3}\\ + $\begin{array}{lll} + connected(loc11, loc21, east)\wedge & + connected(loc11, loc12, north)\wedge & + connected(loc12, loc22, east)\wedge\\ + connected(loc12, loc13, north)\wedge & + connected(loc13, loc23, east)\wedge & + connected(loc13, loc14, north)\wedge\\ + connected(loc14, loc24, east)\wedge & + connected(loc21, loc31, east)\wedge & + connected(loc21, loc22, north)\wedge\\ + connected(loc22, loc32, east)\wedge & + connected(loc22, loc23, north)\wedge & + connected(loc23, loc33, east)\wedge\\ + connected(loc23, loc24, north)\wedge & + connected(loc31, loc32, north)\wedge & + connected(loc32, loc33, north)\wedge\\ + connected(loc21, loc11, west)\wedge & + connected(loc12, loc11, south)\wedge & + connected(loc22, loc12, west)\wedge\\ + connected(loc13, loc12, south)\wedge & + connected(loc23, loc13, west)\wedge & + connected(loc14, loc13, south)\wedge\\ + connected(loc24, loc14, west)\wedge & + connected(loc31, loc21, west)\wedge & + connected(loc22, loc21, south)\wedge\\ + connected(loc32, loc22, west)\wedge & + connected(loc23, loc22, south)\wedge & + connected(loc33, loc23, west)\wedge\\ + connected(loc24, loc23, south)\wedge & + connected(loc32, loc31, south)\wedge & + connected(loc33, loc32, south)\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}\\ + $goal(s)\rightarrow\\ + crate(cratea, loc12, s) \wedge + crate(crateb, loc13, s) \wedge + crate(cratec, loc11, s)$ + \end{itemize} \subsubsection{Task 2: Actions} \begin{itemize} \item{Q5}\\ - \begin{equation} - \begin{split} - Poss(move(x, y), s) \equiv &\\ - & (\exists z: connected(x, y, z)) \wedge\\ - & \neg(crate(x, y, s)) \wedge - \end{split} - \end{equation} - + $Poss(move(x, y), s) \equiv \\ + (\exists z: connected(x, y, z)) \wedge\\ + \neg(crate(x, y, s))$ \item{Q6}\\ $Poss(push(x, y), s) \equiv\\ agent(x, s) \wedge\\ @@ -34,7 +73,7 @@ \wedge\\ (\exists \alpha: connected(z, \alpha, y) \wedge - \neg (\exists \beta: crate(\beta, \alpha, s))))$ + (\nexists \beta: crate(\beta, \alpha, s))))$ \item{Q7}\\ $agent(x, result(z, s)) \rightarrow\\ (\exists y: z = move(y, x)) \vee\\ @@ -42,11 +81,11 @@ z = push(\beta, \alpha) \wedge connected(\beta, x, \alpha)) \vee\\ (\exists \epsilon, \gamma: - not(z = move(x, \epsilon)) \wedge - not(z = push(x, \gamma)) \wedge + z \neq move(x, \epsilon) \wedge + z \neq push(x, \gamma) \wedge agent(x, s))\\ crate(x, y, result(A, s)) \rightarrow\\ - (\exists z,alpha: + (\exists z,\alpha: A = push(z, \alpha), (\exists \beta: connected(z, \beta, \alpha), @@ -55,8 +94,8 @@ ) ) \vee\\ (\exists z,\alpha: - not(A = push(z, \alpha)), - connected(z, y, \alpha), + A \neq push(z, \alpha)\wedge + connected(z, y, \alpha)\wedge crate(x, y, s) ) $ @@ -78,12 +117,17 @@ disallowing the agent to reverse a move immediatly. \subsection{Part 3: Extending the domain} -\subsection{Evaluation} -\begin{itemize} - \item{How much time did it take?}\\ - p1t1: 45m - \item{What would you like to see changed?}\\ - p1t1: There is an ambiguity in p1t1Q3, it's not clear if the starred - locations should be included in the initial state(therefore not only in - the goal state).\\ -\end{itemize} +\subsection{Part 4: General questions} +\subsubsection{Task 10: Sitcalc expressivity} +Situation calculus(sitcalc from now on) is very expressive because you can +express yourself very detailed without encountering the frame problem. When the +problem space expands the computational strength needed explodes. Sitcalc is +therefore not very usefull when you want to plan far behind. For comparison, +calculating a sokoban path 10 steps in the future already takes hours on a +normal computer. + +The model is easy to extend to bigger and more complex problems, it doesn't +scale that well however... + +\subsubsection{Task 11: Related work} +Zhou, N. (2013). A Tabled Prolog Program for Solving Sokoban, 124, 561–575. doi:10.3233/FI-2013-849 diff --git a/report/report.pyg b/report/report.pyg new file mode 100644 index 0000000..579d9a4 --- /dev/null +++ b/report/report.pyg @@ -0,0 +1,88 @@ + +\makeatletter +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% + \let\PY@ul=\relax \let\PY@tc=\relax% + \let\PY@bc=\relax \let\PY@ff=\relax} +\def\PY@tok#1{\csname PY@tok@#1\endcsname} +\def\PY@toks#1+{\ifx\relax#1\empty\else% + \PY@tok{#1}\expandafter\PY@toks\fi} +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} + +\def\PY@tok@gd{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\def\PY@tok@gu{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\def\PY@tok@gt{\def\PY@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}} +\def\PY@tok@gs{\let\PY@bf=\textbf} +\def\PY@tok@gr{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\def\PY@tok@cm{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\def\PY@tok@vg{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\def\PY@tok@m{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@mh{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@go{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}} +\def\PY@tok@ge{\let\PY@it=\textit} +\def\PY@tok@vc{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\def\PY@tok@il{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@cs{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\def\PY@tok@cp{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\def\PY@tok@gi{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\def\PY@tok@gh{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\def\PY@tok@ni{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\def\PY@tok@nl{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\def\PY@tok@nn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\def\PY@tok@no{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\def\PY@tok@na{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\def\PY@tok@nb{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@nc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\def\PY@tok@nd{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\def\PY@tok@ne{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\def\PY@tok@nf{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\def\PY@tok@si{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\def\PY@tok@s2{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@vi{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\def\PY@tok@nt{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@nv{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\def\PY@tok@s1{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@sh{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@sc{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@sx{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@bp{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@c1{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\def\PY@tok@kc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@c{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\def\PY@tok@mf{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@err{\def\PY@bc##1{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{##1}}} +\def\PY@tok@kd{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@ss{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\def\PY@tok@sr{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\def\PY@tok@mo{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@kn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@mi{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@gp{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\def\PY@tok@o{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PY@tok@kr{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@s{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@kp{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@w{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\def\PY@tok@kt{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\def\PY@tok@ow{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\def\PY@tok@sb{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\def\PY@tok@k{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\def\PY@tok@se{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\def\PY@tok@sd{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYZbs{\char`\\} +\def\PYZus{\char`\_} +\def\PYZob{\char`\{} +\def\PYZcb{\char`\}} +\def\PYZca{\char`\^} +\def\PYZsh{\char`\#} +\def\PYZpc{\char`\%} +\def\PYZdl{\char`\$} +\def\PYZti{\char`\~} +% for compatibility with earlier versions +\def\PYZat{@} +\def\PYZlb{[} +\def\PYZrb{]} +\makeatother +