PDDL在线规划器与POPF规划器的区别



我需要一些与http://solver.planning.domains/和KCL规划组(主要是POPF)的规划者相关的在线PDDL规划器的帮助/指导。我用这两种计划测试了一个简单的捡放示例(从某个地方移动物体)。域和POPF规划者(也是来自KCL的MARVIN),所有规划者都在生成有效的计划。

计划。域规划器正在生成如下计划:

(move bot startloc loc1)
(pick bot ball loc1)
(move bot loc1 dropzone)
(drop bot ball dropzone)

但另一方面,来自KCL计划组的POPF和MARVIN都产生了计划:

(move bot startloc dropzone)
(move bot dropzone loc1)
(pick bot ball loc1)
(move bot loc1 dropzone)
(drop bot ball dropzone)

由POPF和MARVIN生成的方案仍然是逻辑上有效的方案,但不是最优解。最优解由在线规划服务在solver.planning.domains生成。

我需要帮助来弄清楚为什么POPF计划器正在计划额外的move行动,导致绕道到达loc1,即通过dropZone的项目位置。另外,我想知道在线规划服务http://solver.planning.domains/使用的规划策略/规划师来解决这个问题。

这里我附加了域和问题使用:

domain.pddl


(define (domain drop)
(:requirements :strips :typing)
(:types 
robot
location
item
)
(:predicates 
(robotAt ?r - robot ?l - location)
(gripperEmpty ?r - robot)
(itemAt ?i - item ?l - location)
(itemPicked ?r - robot ?i - item)    
)
;define actions here
(:action move
:parameters (?r - robot ?from ?to - location)
:precondition (and (robotAt ?r ?from))
:effect (and (robotAt ?r ?to)
(not (robotAt ?r ?from)))
)
(:action pick
:parameters (?r - robot ?item - item ?itemLocation - location)
:precondition (and (gripperEmpty ?r)                       
(robotAt ?r ?itemLocation)
(itemAt ?item ?itemLocation))
:effect (and (itemPicked ?r ?item)
(not (gripperEmpty ?r))
)
)
(:action drop
:parameters (?r - robot ?item - item ?dropLocation - location)
:precondition (and (itemPicked ?r ?item)
(robotAt ?r ?dropLocation) )
:effect (and (not (itemPicked ?r ?item))
(gripperEmpty ?r)
(itemAt ?item ?dropLocation))
)

)

problem.pddl

(define (problem single_drop) (:domain drop)
(:objects 
bot - robot
startLoc - location
loc1 - location
dropZone - location
ball - item
)
(:init
(robotAt bot startLoc)
(gripperEmpty bot)
(itemAt ball loc1)
)
(:goal (and (itemAt ball dropZone)
))
)

我相信使用的在线计划表是某种版本的Fast down。我认为你可以从输出日志中得到一些提示,你可以通过点击输出链接看到。

POPF不保证最优性。它只是一个令人满意的计划。也就是说,它生成的计划保证是健全的,但不一定是最好的计划。

POPF是一个时间数字规划器,而Fast向下不是。在内部,它使用了一种稍微不同的启发式方法,称为时间放松规划图(Temporal relax Planning Graph),这是《MetricFF》RPG的一个版本,但具有时间戳层和额外的时间和数字逻辑,并使用强制爬坡。它还会更积极地剔除无益的行为。快速向下使用了一种稍微不同的方法,除了删除放松和迭代宽度搜索之外,还有地标。

POPF更喜欢通过dropzone1而不是loc1可能有多种原因。它可能是一些非常简单和巧合的事情,例如"dropzone1"在词典编纂上出现在"loc1"之前,因此在搜索中首先探索它。可能是放松的计划提取以某种方式(任意)选择了该路径。

POPF有一些选项来调试它的搜索树和生成点格式的graphviz可视化,如果我没记错的话。因为你的问题非常小,你可能能够找出它正在探索的搜索空间,以及为什么它没有沿着最优路线前进。

最新更新