首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDDL forall语法

PDDL forall语法
EN

Stack Overflow用户
提问于 2020-05-14 07:40:22
回答 1查看 514关注 0票数 0

我目前正在做一个pddl项目,我在语法方面有一些困难。现在,我正试着让电梯里所有的工人都在一层楼里。我不确定这是否是正确的实现,但以下是我的代码。提前谢谢你!

代码语言:javascript
复制
(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))
   )
 )
EN

回答 1

Stack Overflow用户

发布于 2020-05-14 08:03:17

显然,你在here too...the上发布了仍然有效的评论:

  • 你可以使用editor.planning.domains和一个保存的“会话”来更好地分享你的代码。(使用只读链接)对于这样的域,您真的应该使用类型。
  • insert_elevator操作有点混乱:
    • forall可能需要包含一个条件效果,该效果建议“如果一个工人在场上,那么他们在elevator".
    • You中不应该在parameters.

中的forall子句中使用相同的变量

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61786747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档