If two landmarks are derived predicates and one derived predicate is dependent
on the other one, lm_rhw can detect a greedy-necessary ordering between them,
even if they first become true in the same state (since the second one is
derived from the first one). For example this happens with the following derived
predicate from the psr-large domain (where unsafe is also a derived predicate):
(:derived (affected ?x - DEVICE)
(and (breaker ?x)
(exists (?sx - SIDE) (unsafe ?x ?sx))))
I think the example would even work if unsafe were not a derived predicate; the
problem is rather that the greedy-necessary ordering is detected over possible
achievers which can also be axioms:
The lm_rhw code (landmark_factory_rpg_sasp) detects landmarks with greedy
necessary orderings over shared preconditions of possible achievers, and
considers "actual" operators as well as axioms when getting all possible
achievers. While this is ok for finding new landmarks; when detecting orderings
we would need to distinguish between actual operators and axioms.
|