在 PDDL 中对可变数量的副作用进行建模

问题描述

为了激发我的问题,考虑一个网格世界,它有一个可以推动石头的可移动代理。到现在为止还挺好。我们可能有一个看起来像这样的推送操作(从推箱子 pddl 借来):

    (:action push
    :parameters (?p - thing ?s - thing ?ppos - location ?from - location ?to - location ?dir - direction)
    :precondition (and (move ?dir)
        (is-player ?p)
        (is-stone ?s)
        (at ?p ?ppos)
        (at ?s ?from)
        (clear ?to)
        (move-dir ?ppos ?from ?dir)
        (move-dir ?from ?to ?dir)
        (is-nongoal ?to))
    :effect (and
        (not (at ?p ?ppos))
        (not (at ?s ?from))
        (not (clear ?to))
        (at ?p ?from)
        (at ?s ?to)
        (clear ?ppos)
        (not (at-goal ?s)))
)

现在假设我们要允许代理推动一块石头,即使它后面有任意数量块石头。效果是所有这些石头都会在推动方向上移动 1 个位置(前提是它们不会从网格上掉下来或占据与墙壁相同的位置)。

你会如何建模?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)