是否可以在PDDL中进行类型比较?

时间:2017-10-29 20:21:34

标签: pddl

例如,如果我声明类型:

:types
   bag
   light heavy - bag

也就是说有两种类型的包, light heavy 。是否可以在操作中检查 bag 类型的变量是否为 light 类型而没有 light 的实例进行比较?

我知道可以进行相等比较:

(when ( = ?light ?bag))

但是这会检查两个变量是否具有相同的值,而不是相同的类型。

我尝试了(when ( = light ?bag)),即使规划人员没有提出错误,但它似乎无效。

1 个答案:

答案 0 :(得分:2)

回应Chaos教授'如果他们说明这是不可能的,那么我已经推导出一种解决方法,我们在操作中创建谓词(is_light ?x - light)并使用(when (is_light ?lightobj) (dosomething))。初始化 light 对象时,在问题文件中使用谓词。