[Toss-devel-svn] SF.net SVN: toss:[1557] trunk/Toss
Status: Beta
Brought to you by:
lukaszkaiser
|
From: <luk...@us...> - 2011-09-03 08:52:13
|
Revision: 1557
http://toss.svn.sourceforge.net/toss/?rev=1557&view=rev
Author: lukstafi
Date: 2011-09-03 08:52:07 +0000 (Sat, 03 Sep 2011)
Log Message:
-----------
Minor commit (specifying new approach to fluent paths).
Modified Paths:
--------------
trunk/Toss/GGP/TranslateGameTest.ml
trunk/Toss/www/reference/reference.tex
Modified: trunk/Toss/GGP/TranslateGameTest.ml
===================================================================
--- trunk/Toss/GGP/TranslateGameTest.ml 2011-09-03 00:16:24 UTC (rev 1556)
+++ trunk/Toss/GGP/TranslateGameTest.ml 2011-09-03 08:52:07 UTC (rev 1557)
@@ -332,7 +332,7 @@
and discreterule_dl = !DiscreteRule.debug_level in
if debug then (
GameSimpl.debug_level := 4;
- GDL.debug_level := 4;
+ GDL.debug_level := 2;
TranslateFormula.debug_level := 4;
TranslateGame.debug_level := 4;
DiscreteRule.debug_level := 4);
@@ -353,8 +353,9 @@
(* regenerate ~debug:false ~game_name:"breakthrough" ~player:"white"; *)
(* regenerate ~debug:true ~game_name:"pawn_whopping" ~player:"x"; *)
(* regenerate ~debug:false ~game_name:"connect4" ~player:"white"; *)
- regenerate ~debug:false ~game_name:"2player_normal_form_2010" ~player:"row";
- (* failwith "generated"; *)
+ (* regenerate ~debug:false ~game_name:"2player_normal_form_2010" ~player:"row"; *)
+ regenerate ~debug:true ~game_name:"pacman3p" ~player:"pacman";
+ failwith "generated";
()
let exec () =
Modified: trunk/Toss/www/reference/reference.tex
===================================================================
--- trunk/Toss/www/reference/reference.tex 2011-09-03 00:16:24 UTC (rev 1556)
+++ trunk/Toss/www/reference/reference.tex 2011-09-03 08:52:07 UTC (rev 1557)
@@ -1364,8 +1364,34 @@
$d\calP(s,t)$.
-\paragraph{Wave Clauses and Fluent Paths}
+\paragraph{Fluent Paths}
+We need to decide which parts of the state description will provide
+the fixed ``coordinate system'', and which will provide labels over
+coordinates (predicates ranging over the points spanned by the
+coordinates). The labels-predicates will be the only means accounting
+for game state changes, directly translating into Toss fluents, we
+will therefore call the state term paths containing them the
+\emph{fluent paths}. We need to have at least one fluent for each
+\texttt{next} clause that leads to state change, but first we need to
+determine which \texttt{next} clauses change state.
+
+We say that a \texttt{next} clause $\calC$ is a \emph{frame clause}
+when, for each state transition, each state term it generates is
+already present in the prior state. If possible (\ie when the clause
+is not a wave clause) we find a frame clause by checking whether it
+contains a \texttt{true} relation applied to a term equal to the
+\texttt{next} argument. Otherwies, we approximate by checking on
+states generated by a few random playouts.
+
+For each non-frame \texttt{next} clause \texttt{(<= (next $s_\calC$)
+ $\ldots$)}, a fluent path is a path $s_\calC\tpos_p$ such that the
+set $\{t\ |\ t=s\tpos_p, s\in\calS \}$ is clearly the smallest, where
+$\calS$ is the set of all state terms. When the next-smallest set
+$\{t\ |\ t=s\tpos_{p'}, s\in\calS \}$ is less than twice as big as
+$\{t\ |\ t=s\tpos_p, s\in\calS \}$, we resort to changeability in the
+GDL state transitions to determine the fluent path for $\calC$.
+
Let \emph{wave clauses} $\mathrm{Next}_{W}$ be defined as follows:
$\calC \in \mathrm{Next}_{W}$ if there is $\calC' \in
\mathrm{Next}_{e}$ derived from $\calC$ such that the set of subterms
@@ -1820,14 +1846,10 @@
So far, we have not accounted for the fact that rewrite rules of Toss
only affect the matched part of the structure, while the GDL game
definition explicitly describes the construction of the whole
-successive structure. We say that a \texttt{next} clause $\calC$ is a
-\emph{frame clause} when $d\calP(s^{sem}_\calC,t^{sem}_\calC) =
-\emptyset$ (if possible, \ie when the clause is not a wave clause,
-approximated by checking whether it contains a \texttt{true} relation
-applied to a term equal to the \texttt{next} argument). Negating the
-frame clauses from the tuple $\ol{\calN}$ and transforming them into
-\emph{erasure clauses} will keep track of the elements that possibly
-lose fluents and ensure correct translation.
+successive structure. Negating the frame clauses from the tuple
+$\ol{\calN}$ and transforming them into \emph{erasure clauses} will
+keep track of the elements that possibly lose fluents and ensure
+correct translation.
We determine which clauses are frame clauses prior to partitioning
into the rule clauses and computing the substitution
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|