PDDL的组成部分
- Objects:对象,世界上我们感兴趣的事物。
- Predicates:谓词,我们感兴趣的事实(例如对象的属性),可以为真,也可以为假。
- An initial state:初始化状态,我们开始所处的世界状态,即开始时为真的事物。
- Goal specification:目标状态,我们想要结束的世界的状态,即我们希望最终成为真实的事情。
- Actions/Operators:动作/操作,改变世界状态的方式,即发生的事情改变了事实。
PDDL语法
PDDL 文件的扩展名通常是.pddl
要素:一份完整的PDDL程序是由domain文件和problem文件
The Domain File:域文件建立了世界的上下文。它决定了状态可以包含哪些类型的细节(Predicates),以及我们可以做什么在世界中的状态之间移动(actions)。
domain file的基础语法:
(define (domain <domain name>)
(:predicates
<predicate-list>
)
(:action
<action-details>
)
)
其中,<domain-name>
是世界的名称。
The Problem File:问题文件代表着我们在域中建立一个世界的实例,它决定了在计划开始时什么是真的(初始状态),以及我们希望在计划结束时什么是真的(目标状态)。
problem file的基础语法:
(define (problem <title>)
(:domain <domain-name>)
(:objects
<object-list>
)
(:init
<predicates>
)
(:goal
<predicates>
)
)
<title>
是problem file 的标题,<domain-name>
是指相应域文件的名称。