Re: [eclipse-clp-users] A complex Problem

From: Stephan Schiffel <stephan.schiffel_at_inf.tu-dresden.de>
Date: Wed, 10 Feb 2010 10:49:47 +0100
Hi Christian,

As far as I understand, you want to reason about the effects of actions 
without instantiating actions and/or states to ground terms. The way the 
next-rules (or in fact any gdl rule) is written this will not work by just 
calling the d_next predicate. Some potential problems with your approach that 
you might want to think about:
1. What is the semantics of variables in your State? (Are the variables 
existentially or universally quantified?)
2. What happens with facts that are not mentioned in the state? Are these 
considered as unknown, false, or true?
3. The current implementation of d_true(F) as member(F, State) will 
instantiate variables in F and in State. Besides, it probably doesn't address 
point 2 properly, it will just fail for facts that are not in the state.
4. Even with another implementation of d_true you have the problem that 
calling next(f(X)) with rules like
next(f(X)) :- p(X). p(a). p(b).
will instantiate X.

I'm really interested in what you want to achieve. However, I think further 
discussions will not be of interest to the list, therefore I suggest to take 
them offline.

Regards,
Stephan

On Tuesday 09 February 2010, Christian Wirth wrote:
> My call looks now like this:
> getunboundmove(Player,Move,Term,State),bagof(Effect,(d_next(Effect,[does(Pl
>ayer,Move)]-State)),Effects).
> [...]
> if i only call getunboundmove(Player,Move,Term,State), the solution is:
>
> Player = Player
> Move = move(north)
> Term = [d_role(Player, _219), 'd_++'(_265, _340, _219), d_cell(_264,
> _340, _219)] - Read as: role Player exists  | _340 is _264 + 1 | cell
> x=_263,y=_340 exists (the last var is State=_219, but these facts are
> state independent)
> State = [location(_73, _264, _265), \+ blockednorth(_264, _265)] -
> Player _73 is in position _264/_265 (Here _73 should be Player, but
> thats not importent) | the north of position _264/_265 is not blocked
>
> and for effect, i want to get:
>
> Effects=[location(Player,_264,_340)]
-- 
                              Stephan Schiffel
                       Technische Universitšt Dresden,
                 Fakultšt Informatik, 01062 Dresden, Germany
           Tel: [49] (351) 463-39243    Fax: [49] (351) 463-37924
                  Email: stephan.schiffel_at_inf.tu-dresden.de
Received on Wed Feb 10 2010 - 10:07:23 CET

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET