PDDL变量添加类型后报错排查及类型正确使用方法
PDDL域文件类型定义解析错误排查
- 问题现象:为PDDL域文件中的变量添加类型后出现解析错误,移除类型元素则无错误
- 报错信息:
...... ->Parsing 1. group of typed list Expected item to be a variable Got: -element translate exit code: 31 .........
域文件中的类型定义(错误写法)
(:types element -ele door - dor location - loc room - rm )
错误原因及修正方案
错误根源是类型定义的语法顺序完全写反了。PDDL规定类型定义的格式是「子类型列表 - 父类型」,也就是先写属于该父类型的子类型,再用-连接父类型。你当前的写法把父类型和子类型的位置颠倒,导致解析器误将-element这类内容当成变量处理,触发报错。
正确写法示例
如果ele、dor等是子类型,对应父类型是element、door,则修正为:
(:types ele - element dor - door loc - location rm - room )
如果element、door等是无父类型的顶层类型,可直接定义:
(:types element door location room )
内容的提问来源于stack exchange,提问作者Melina
相关产品推荐
相关产品推荐

