68 lines
1.2 KiB
Text
68 lines
1.2 KiB
Text
(define (domain transport-strips)
|
|
(:requirements :typing :action-costs)
|
|
|
|
(:types location fuellevel locatable - object
|
|
package truck - locatable
|
|
)
|
|
|
|
(:predicates
|
|
(connected ?l1 ?l2 - location)
|
|
(at ?o - locatable ?l - location)
|
|
(in ?p - package ?t - truck)
|
|
(fuel ?t - truck ?level - fuellevel)
|
|
(fuelcost ?level - fuellevel ?l1 ?l2 - location)
|
|
(sum ?a ?b ?c - fuellevel)
|
|
)
|
|
|
|
(:functions
|
|
(total-cost) - number)
|
|
|
|
(:action LOAD
|
|
:parameters
|
|
(?p - package
|
|
?t - truck
|
|
?l - location)
|
|
:precondition
|
|
(and (at ?t ?l) (at ?p ?l))
|
|
:effect
|
|
(and (not (at ?p ?l)) (in ?p ?t) (increase (total-cost) 1))
|
|
)
|
|
|
|
(:action UNLOAD
|
|
:parameters
|
|
(?p - package
|
|
?t - truck
|
|
?l - location)
|
|
:precondition
|
|
(and (at ?t ?l) (in ?p ?t))
|
|
:effect
|
|
(and (at ?p ?l) (not (in ?p ?t)) (increase (total-cost) 1))
|
|
)
|
|
|
|
(:action DRIVE
|
|
:parameters
|
|
(?t - truck
|
|
?l1 - location
|
|
?l2 - location
|
|
?fuelpost - fuellevel
|
|
?fueldelta - fuellevel
|
|
?fuelpre - fuellevel)
|
|
:precondition
|
|
(and
|
|
(connected ?l1 ?l2)
|
|
(fuelcost ?fueldelta ?l1 ?l2)
|
|
(fuel ?t ?fuelpre)
|
|
(sum ?fuelpost ?fueldelta ?fuelpre)
|
|
(at ?t ?l1)
|
|
)
|
|
:effect
|
|
(and (not (at ?t ?l1))
|
|
(at ?t ?l2)
|
|
(not (fuel ?t ?fuelpre))
|
|
(fuel ?t ?fuelpost)
|
|
(increase (total-cost) 1))
|
|
)
|
|
|
|
)
|
|
|
|
|