PDDL-1.2
参考:
PDDL ——The Planning Domain Definition Language
(Version1.2, manual produced by the AIPS-98 Planning Competition Committee)
wiki:
Requirements
- 在domain中定义
- 因为只有很少的planner可以handle全部的pddl语言,所以将语言分成了subset,这样就需要进行提前声明。总之就是要使用什么功能就要声明什么requirements
- 应用形式为 (:requirements :xxxxx)
语法标记
- 角括号<> 表述名字
- 圆括号()元素名字
- 方括号[]围绕着option
- An asterisk(*)means “zero or more of”
- a plus(+)means“one or more of”
- ……
另外,pddl只能描述domain中的physics,所以需要一定扩展,扩展的表达可以是基本的描述加上一些次级描述,例如“↑↑”
Domain
- 定义问题宇宙,在1.2中主要为被允许存在的 object types, predicates and actions等
- extends项可以进行扩展到另一个“parent domain”
- types allows us to create basic and subtypes to which we can apply predicates;将action的参数和objects连接起来(用“-”)
- constants语法类似于types(-),但语义不同
- predicates也可以使用-
- timeless:a predicate which is always true and cannot be changed by any action in the domain.
- action 包括parameters,precondition和effect,其中后两者必须为 逻辑表述
- and :之后圆括号都为true
- or:至少一个为true
- not:取消/否定一个逻辑表述
- forall:一些逻辑描述整体而言为true,可以和not等连用,但不能用于effect
- action部分可以拓展(需在domain里定义requirement:action-expansions),通过扩展可以给在action定义后添加额外的choices。没有扩展的action分类为primitive
- axiom 公理,逻辑描述的最终结果
- 需要requirement:domain-axioms.
- 例:墙建好,窗户装好,电线搞定 意味着 这个地点搞定。
(:axiom
:vars (?s - site)
:context (and
(walls-built ?s)
(windows-fitted ?s)
(cables-installed ?s)
)
:implies (site-built ?s)
)
- 可以随时向已存在的domain里添加axiom和action扩展
Problem
- 需要定义 世界的起初(init)和终结(goal)。需要阐述存在(objects)。
- 需要和domain进行对应
- init只描述了世界的起初哪些predicates是true的,不涉及逻辑
- 在init中没有明确表明的predicates都是假定为fasle的,除非domain申明了requirement:open-world
- objects部分可以使用整体定义,即“-”
- goal部分,世界的终极,描述一些逻辑语言
其他
- 存在难点:需要分清各个“名字”应用的范围,特别是同一个“名字”应用的范围
- 注意到两个适合(需要后续验证)game分析的planner(但带有二元论)
- 线上编辑器
- 和vs配合的编辑器
编辑于 2020-03-12 03:54