PDDL-1.2

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)
部分高频requirement
其他requirements

语法标记

  • 角括号<> 表述名字
  • 圆括号()元素名字
  • 方括号[]围绕着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部分,世界的终极,描述一些逻辑语言

其他

  • 存在难点:需要分清各个“名字”应用的范围,特别是同一个“名字”应用的范围
name &amp;amp;amp;amp; scope
  • 注意到两个适合(需要后续验证)game分析的planner(但带有二元论)


  • 线上编辑器
  • 和vs配合的编辑器


编辑于 2020-03-12 03:54