You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PDDL中正确指定空前置条件?

PDDL无前置条件动作的正确写法

你之前尝试的几种写法都不符合PDDL语法规范,以下是两种可正常运行的正确实现方式:

方式1:直接省略:precondition字段

如果动作不需要任何前置条件,完全可以不声明:precondition这一项,示例代码:

(:action doSomething
    :parameters (?t - t1)
    :effect (donesomething ?t)
)

方式2:使用合法的空前置条件表达式

如果需要显式声明无前置条件,需使用PDDL标准支持的空合取(and)或小写布尔常量(true)(必须用括号包裹),示例:

(:action doSomething
    :parameters (?t - t1)
    :precondition (and)
    :effect (donesomething ?t)
)

或者:

(:action doSomething
    :parameters (?t - t1)
    :precondition (true)
    :effect (donesomething ?t)
)

错误写法的原因

  • 仅写:precondition无后续内容:属于语法缺失,解析器会判定前置条件未完整定义,直接报错。
  • 写:precondition():PDDL不允许空括号表达式,属于非法语法。
  • 写:precondition True:PDDL的布尔常量要求小写true且必须用括号包裹,大写True不符合规范。

内容的提问来源于stack exchange,提问作者user84209

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 13:02:03