【问题标题】:PDDL forall effect with durative actions具有持续作用的 PDDL forall 效果
【发布时间】:2020-10-12 18:58:01
【问题描述】:

我既使用了持续性动作,又试图能够清除某个类型的所有元素的谓词。见下文。这可能吗?如果是这样,有人知道正确的语法吗?谢谢!

    (:durative-action init
      :parameters (?r - robot)
      :duration ( = ?duration 1)
      :condition (and
             (at start (robot_uninitialized ?r))
             (at start (robot_free ?r))
                 )
      :effect (and
          (at start(not(robot_free ?r)))
          (at end (assign (robot_on_fastener_number_in_sequence) 1))
          (at end (not(robot_uninitialized ?r)))
          (at end (robot_free ?r))
          (at end (forall (?f - fastener) (not(fastener_selected ?f))))
          )
    )

我正在运行 popf 规划器,提供的错误是:Syntax error in timed effect

【问题讨论】:

  • 乍一看应该可以。你遇到了什么错误,使用哪个规划器?你用的是哪个requirements
  • 我正在运行 popf 规划器,提供的错误是:定时效果中的语法错误。任何具有 forall 效果(或先决条件)的持续动作示例都将不胜感激。如果它与 popf 一起使用会更好。
  • 你使用哪个requirements
  • (:requirements :strips :typing :fluents :disjunctive-preconditions :durative-actions :negative-preconditions)
  • 我不确定它是否会有所帮助,但您可以尝试使用:universal-preconditions 甚至:adl 吗?

标签: forall pddl


【解决方案1】:

VAL 解析器确实显示了Syntax error in timed effect 错误。我试图颠倒at endforall 的顺序,它停止了抱怨。由于 popf 使用相同的解析器,它也应该对这种语法感到满意。

  :effect (and
      (forall (?f - fastener) 
          (at end (not (fastener_selected ?f)))
      )
  )

但在条件中,VAL以相反的顺序接受语法:

    :condition (and
        (at end (forall (?f - fastener) 
            (fastener_selected ?f))
        )
    )

完整示例:http://editor.planning.domains/#read_session=BCBDpV4YQE

【讨论】:

  • 谢谢!这解决了我的问题。试图给它加分,但没有足够的积分。
  • 还有一个问题……是否可以在条件子句中使用“forall”语句?将上述内容复制到条件会导致语法错误(即使没有“not”)。
  • 当然可以。您可以在此处找到语法示例:planning.wiki/ref/pddl/domain
  • 这是一个完整的例子。 editor.planning.domains/#read_session=BCBDpV4YQE 有趣的是,VAL 和 Popf 接受 forall 条件,但顺序相反:``` (at end (forall (?f - 紧固件) (fastener_selected ?f)) ) ``
  • 谢谢!这对我帮助很大。奇怪的是条件和效果子句之间的语法如何变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多