Goal-based problems #115
-
Hi, I was wondering if SHOP3 allows goal-based planning, i.e. similarly to how classical planning problems are phrased (like PDDL). (defdomain basic-example (
(:operator (!pickup ?a) () () ((have ?a)))
(:operator (!drop ?a) ((have ?a)) ((have ?a)) ())
(:method (swap ?x ?y)
((have ?x))
((!drop ?x) (!pickup ?y))
((have ?y))
((!drop ?y) (!pickup ?x)))))
(defproblem problem1 basic-example
((have banjo)) ((swap banjo kiwi))) This explicitly tells the planner that we want to do Other examples (e.g. blockworld) has a list of goals that needs to be achieved, but the high-level goal captures the skeleton of the solution: ;; The method for the top-layer task
(:method (achieve-goals ?goals)
()
((assert-goals ?goals nil)
(find-nomove)
(add-new-goals)
(find-movable)
(move-block)
(verify-solution)
)) Can that be done, or is that out of scope of SHOP3? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 6 replies
-
You can solve this problem with a goal operator that has the original goal as preconditions and no effects, and include it as the last task.
|
Beta Was this translation helpful? Give feedback.
You can solve this problem with a goal operator that has the original goal as preconditions and no effects, and include it as the last task.
(:operator (!!goal) ((have kiwi)) () ())