aig-upf / tarski

Tarski - An AI Planning Modeling Framework
Apache License 2.0
59 stars 19 forks source link

Provide reachability analysis for simple FSTRIPS problems #85

Closed gfrances closed 10 months ago

gfrances commented 4 years ago

For FSTRIPS problems that make a simple use of function symbols, it might be worth extending a bit our ReachabilityLPCompiler to support them. For instance, a precondition loc(b1)=b2 in a functional version of blocksworld can be dealt with by using a predicate symbol loc'(b1, b2), and so on. An FSTRIPS action

pick-up(b: block)
    PRE: clear(b)
    EFF: holding(b), clear(loc(b))

would translate to LP rules:

pick-up(B) :- clear(B).
holding(B) :- pick-up(B).
clear(X) :- pick-up(B), loc(B, X).

I'm not sure the tightness of the reachability approximation would be the same, but this is an interesting thing to explore.

This is related to #61, but we might want to tackle it separately.