0

現在 pddl プロジェクトに取り組んでいますが、構文に問題があります。現在、フロア内のすべてのワーカーでエレベータを forall で満たそうとしています。これが正しい実装かどうかはわかりませんが、これが私のコードです。前もって感謝します!

(define (domain company)

(:requirements
  :strips                 
  :negative-preconditions 
  :equality               
)

(:predicates
  (worker ?x)
  (floor ?x)
  (elevator ?x)
  (controller ?x)
  (goes ?x )
  (at ?x ?y)  
  (in ?x ?y)
  (free ?x)
  (call ?x ?y)
)

****

(:action insert_elevator
  :parameters (?w ?el ?f)
  :precondition (and (worker ?w) (floor ?f) (elevator ?el) (at ?w ?f) (at ?el ?f) (free ?el))
  :effect (and(not (free ?el))(forall (?w)(in ?w ?el)))
)

****

)



(define (problem pb)
   (:domain company)

   (:objects floorg floor1 floor2
             elevator1
             elevator2
             worker1 worker2
             controller1)

   (:init
     (floor floorg)
     (floor floor1)
     (floor floor2)
     (worker worker1)
     (worker worker2)
     (elevator elevator1)
     (elevator elevator2)
     (controller controller1)
     (at elevator1 floor1)
     (at elevator2 floor2)
     (at worker1 floorg)
     (at worker2 floorg)
     (free elevator1)
     (free elevator2)
   )

   (:goal
     (and(at worker1 floor1)
     (at worker2 floor2))
   )
 )
4

1 に答える 1