Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (domain monkey-domain)
- (:requirements :strips :equality)
- (:predicates (location ?x)
- (on-floor)
- (at ?m ?x)
- (hasknife)
- (onbox ?x)
- (eat-banana)
- (get-key)
- (open-cage)
- (hasbanana))
- (:constants monkey box knife banana)
- ;; movement and climbing
- (:action GO-TO
- :parameters (?x ?y)
- :precondition (and (location ?x) (location ?y)
- (not (= ?y ?x)) (on-floor) (at monkey ?y))
- :effect (and (at monkey ?x) (not (at monkey ?y))))
- (:action CLIMB
- :parameters (?x)
- :precondition (and (location ?x) (at box ?x) (at monkey ?x))
- :effect (and (onbox ?x) (not (on-floor))))
- (:action PUSH-BOX
- :parameters (?x ?y)
- :precondition (and (location ?x) (location ?y)
- (not (= ?y ?x)) (at box ?y) (at monkey ?y)
- (on-floor))
- :effect (and (at monkey ?x) (not (at monkey ?y))
- (at box ?x) (not (at box ?y))))
- ;; getting banana
- (:action GET-KNIFE
- :parameters (?y)
- :precondition (and (location ?y) (at knife ?y) (at monkey ?y))
- :effect (and (hasknife) (not (at knife ?y))))
- (:action GRAB-BANANA
- :parameters (?y)
- :precondition (and (location ?y) (hasknife)
- (at banana ?y) (onbox ?y))
- :effect (hasbanana)))
- (:action EAT-BANANA
- :parameters(?y)
- :precondition (and(location ?y) (hasbanana))
- :effect (eat-banana))
- (define (problem my-problem)
- (:domain monkey-domain)
- (:objects p1 p2 p3 p4)
- (:init (location p1)
- (location p2)
- (location p3)
- (location p4)
- (at monkey p1)
- (on-floor)
- (at box p2)
- (at banana p3)
- (at knife p4))
- (:goal (AND (hasbanana)))
- (:length (:serial 20) (:parallel 10)))
Add Comment
Please, Sign In to add comment