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

如何让PDDL中的load-ship动作支持船舶装载无限数量包裹?

解决船舶无限装载包裹的PDDL方案

你的load-ship动作本身已经支持船舶装载无限数量的包裹,核心原因是:PDDL中如果没有为船舶添加容量限制类的前置条件,就默认允许无限制装载不同包裹。

具体说明

这个动作每次针对单个包裹执行,只要满足以下前提,就可以重复调用它来装载多个包裹:

  • 船舶和目标包裹在同一港口
  • 目标包裹尚未被装载(not (loaded ?package))

不过你当前的动作定义有一个小问题:effect里的(not (loaded ?package))是错误的,包裹被装载后应该标记为已装载,避免被重复装载。修正后的动作定义如下:

(:action load-ship
  :parameters (?ship - ship ?package - package ?port - port)
  :precondition (and 
    (at ?ship ?port)
    (at ?package ?port)
    (not (loaded ?package))
  )
  :effect (and 
    (carrying ?ship ?package)
    (not (at ?package ?port))
    (loaded ?package)  ; 标记包裹已被装载,防止重复操作
  )
)

为什么能支持无限装载

因为这个动作没有任何限制船舶承载数量的逻辑(比如没有引入remaining-capacity ?ship ?num这类谓词来限制剩余容量),所以只要有符合条件的包裹,就可以反复执行load-ship动作,把任意多个包裹装上船。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:09:59