67 lines
1.5 KiB
Plaintext
67 lines
1.5 KiB
Plaintext
|
(define (domain miconic)
|
||
|
(:requirements :strips)
|
||
|
(:types passenger - object
|
||
|
floor - object
|
||
|
)
|
||
|
|
||
|
(:predicates
|
||
|
(origin ?person - passenger ?floor - floor)
|
||
|
;; entry of ?person is ?floor
|
||
|
;; inertia
|
||
|
|
||
|
(destin ?person - passenger ?floor - floor)
|
||
|
;; exit of ?person is ?floor
|
||
|
;; inertia
|
||
|
|
||
|
(above ?floor1 - floor ?floor2 - floor)
|
||
|
;; ?floor2 is located above of ?floor1
|
||
|
|
||
|
(boarded ?person - passenger)
|
||
|
;; true if ?person has boarded the lift
|
||
|
|
||
|
(not-boarded ?person - passenger)
|
||
|
;; true if ?person has not boarded the lift
|
||
|
|
||
|
(served ?person - passenger)
|
||
|
;; true if ?person has alighted as her destination
|
||
|
|
||
|
(not-served ?person - passenger)
|
||
|
;; true if ?person is not at their destination
|
||
|
|
||
|
(lift-at ?floor - floor)
|
||
|
;; current position of the lift is at ?floor
|
||
|
)
|
||
|
|
||
|
|
||
|
;;stop and allow boarding
|
||
|
|
||
|
(:action board
|
||
|
:parameters (?f - floor ?p - passenger)
|
||
|
:precondition (and (lift-at ?f) (origin ?p ?f))
|
||
|
:effect (boarded ?p))
|
||
|
|
||
|
(:action depart
|
||
|
:parameters (?f - floor ?p - passenger)
|
||
|
:precondition (and (lift-at ?f) (destin ?p ?f)
|
||
|
(boarded ?p))
|
||
|
:effect (and (not (boarded ?p))
|
||
|
(served ?p)))
|
||
|
;;drive up
|
||
|
|
||
|
(:action up
|
||
|
:parameters (?f1 - floor ?f2 - floor)
|
||
|
:precondition (and (lift-at ?f1) (above ?f1 ?f2))
|
||
|
:effect (and (lift-at ?f2) (not (lift-at ?f1))))
|
||
|
|
||
|
|
||
|
;;drive down
|
||
|
|
||
|
(:action down
|
||
|
:parameters (?f1 - floor ?f2 - floor)
|
||
|
:precondition (and (lift-at ?f1) (above ?f2 ?f1))
|
||
|
:effect (and (lift-at ?f2) (not (lift-at ?f1))))
|
||
|
)
|
||
|
|
||
|
|
||
|
|