;; Generated by blocksworld generator ;; http://www.cs.rutgers.edu/~jasmuth/blocksworld.tar.gz ;; by John Asmuth (jasmuth@cs.rutgers.edu) (define (domain blocks-domain) (:requirements :adl :probabilistic-effects) (:types block table) (:constants table - table) (:predicates (is-red ?block - block) (is-blue ?block - block) (holding ?block - block) (on-top-of ?block - block ?obj) ) (:action pick-up-block-from :parameters (?top - block ?bottom) :precondition (and (not (= ?top ?bottom)) (forall (?b - block) (not (holding ?b))) (on-top-of ?top ?bottom) (forall (?b - block) (not (on-top-of ?b ?top)))) :effect (probabilistic 0.75 (and (holding ?top) (not (on-top-of ?top ?bottom))) 0.25 (when (not (= ?bottom table)) (and (not (on-top-of ?top ?bottom)) (on-top-of ?top table)))) ) (:action put-down-block-on :parameters (?top - block ?bottom) :precondition (and (not (= ?top ?bottom)) (holding ?top) (or (= ?bottom table) (forall (?b - block) (not (on-top-of ?b ?bottom))))) :effect (and (not (holding ?top)) (probabilistic 0.75 (on-top-of ?top ?bottom) 0.25 (on-top-of ?top table))) ) ) (define (problem blocks-problem) (:domain blocks-domain) (:objects block0 block1 block2 block3 block4 - block) (:init (on-top-of block0 block1) (on-top-of block1 block2) (on-top-of block2 table) (on-top-of block3 table) (on-top-of block4 table) (is-red block0) (is-blue block1) (is-red block2) (is-red block3) (is-blue block4) ) (:goal (and (exists (?fb0 - block) (and (is-red ?fb0) (exists (?fb1 - block) (and (not (= ?fb0 ?fb1)) (is-blue ?fb1) (on-top-of ?fb0 ?fb1) (exists (?fb2 - block) (and (not (= ?fb0 ?fb2)) (not (= ?fb1 ?fb2)) (is-red ?fb2) (on-top-of ?fb1 ?fb2) (exists (?fb3 - block) (and (not (= ?fb0 ?fb3)) (not (= ?fb1 ?fb3)) (not (= ?fb2 ?fb3)) (is-blue ?fb3) (on-top-of ?fb2 ?fb3) (exists (?fb4 - block) (and (not (= ?fb0 ?fb4)) (not (= ?fb1 ?fb4)) (not (= ?fb2 ?fb4)) (not (= ?fb3 ?fb4)) (is-red ?fb4) (on-top-of ?fb3 table) (on-top-of ?fb4 table) )))))))))) ) ) )