;; 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 :fluents :rewards) (:types block table) (:constants table - table) (:predicates (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 (and (decrease (reward) 1) (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 (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 block5 block6 block7 block8 block9 block10 block11 block12 block13 - block) (:init (on-top-of block0 block1) (on-top-of block1 block2) (on-top-of block2 block3) (on-top-of block3 block4) (on-top-of block4 table) (on-top-of block5 block6) (on-top-of block6 block7) (on-top-of block7 block8) (on-top-of block8 block9) (on-top-of block9 block10) (on-top-of block10 table) (on-top-of block11 table) (on-top-of block12 table) (on-top-of block13 table) ) (:goal (and (on-top-of block0 block1) (on-top-of block1 block12) (on-top-of block12 block5) (on-top-of block5 block13) (on-top-of block13 block2) (on-top-of block2 block3) (on-top-of block3 block9) (on-top-of block9 block10) (on-top-of block10 block11) (on-top-of block11 block7) (on-top-of block7 table) (on-top-of block6 block8) (on-top-of block8 block4) (on-top-of block4 table) ) ) (:goal-reward 500) )