diff options
-rw-r--r-- | domain.pddl | 30 | ||||
-rw-r--r-- | example_problem.pddl | 7 |
2 files changed, 37 insertions, 0 deletions
diff --git a/domain.pddl b/domain.pddl new file mode 100644 index 0000000..6250683 --- /dev/null +++ b/domain.pddl @@ -0,0 +1,30 @@ +(define (domain METRO) + (:requirements :strips :typing) + (:types person + station + train) + (:predicates (at ?x - train ?y - station) + (in ?x - person ?y - train) + (on ?x - person ?y - station) + (connected ?x - station ?y - station)) + + (:action goto + :parameters (?origin - station ?destination - station ?x - train ?y - person) + :precondition (and (connected ?origin ?destination) (at ?x ?origin) (in ?y ?x)) + :effect + (and (not (in ?x ?origin)) + (at ?x ?destination) + (in ?y ?x))) ;; Person in train. + + (:action exit + :parameters (?x - train ?y - person ?destination - station) + :precondition (and (in ?y ?x) (at ?x ?destination)) + :effect + (and (not (in ?y ?x)) + (on ?y ?destination))) + + (:action getin + :parameters (?x - train ?y - person) + :precondition (and (not (in ?y ?x))) + :effect + (and (in ?y ?x))))
\ No newline at end of file diff --git a/example_problem.pddl b/example_problem.pddl new file mode 100644 index 0000000..2eede06 --- /dev/null +++ b/example_problem.pddl @@ -0,0 +1,7 @@ +(define (problem EXAMPLE) + (:domain METRO) + (:objects A B C D - station + T - train + M - person) + (:INIT (connected A B) (connected B C) (connected C D) (at T A) (in M T)) + (:goal (on M D)))
\ No newline at end of file |