;; ======================================================================================= ;; Problem 3: When the destination is far away from locations with taps and buckets, ;; a sensible plan is to utilize all taps and buckets with the shorest walking. ;; ;; A possible plan is ;; 1. turn on tap 1 for bucket 2 (wait for 10 unit time) ;; 2. pick up bucket 1, 2 and 3 ;; 3. go to L1 ;; 4. arrive at L1 ;; 5. put down bucket 1 and 3 ;; 6. tunn on tap 2 for bucket 1; turn on tap 3 for bucket 3 (wait for 10 unit time) ;; 7. pick up bucekt 1 and 3 ;; 8. go to DL ;; 9. arrive at DL ;; 10. deliver ;; ======================================================================================= (define (problem p-3-bucket) (:domain Buckets) (:requirements :adl :time :fluents :continuous-effects) (:objects SL - location L1 - location DL - location TAP1 - tap TAP2 - tap TAP3 - tap BUCKET1 - bucket BUCKET2 - bucket BUCKET3 - bucket AGENT1 - agent ) (:init (at AGENT1 SL) (at BUCKET1 SL) (at BUCKET2 SL) (at BUCKET3 SL) (at TAP1 SL) (at TAP2 L1) (at TAP3 L1) (= (flow_rate TAP1) 0.2) (= (flow_rate TAP2) 0.1) (= (flow_rate TAP3) 0.4) (= (capacity BUCKET1) 1) (= (capacity BUCKET2) 2) (= (capacity BUCKET3) 4) (= (walking_speed AGENT1) 5) (= (distance SL L1) 25) (= (distance L1 SL) 25) (= (distance L1 DL) 400) (= (distance DL L1) 400) (= (distance SL DL) 500) (= (distance DL SL) 500) (= (amount_of_water SL) 0) (= (amount_of_water L1) 0) (= (amount_of_water DL) 0) (= (distance_to_walk AGENT1 SL) 0) (= (distance_to_walk AGENT1 L1) 0) (= (distance_to_walk AGENT1 DL) 0) (= (level BUCKET1) 0) (= (level BUCKET2) 0) (= (level BUCKET3) 0) (connected SL L1) (connected L1 SL) (connected L1 DL) (connected DL L1) (connected SL DL) (connected DL SL) ) (:goal (and (= (amount_of_water DL) 7) (<= ?total-time 105)) ) )