2011-09-22 69 views

回答

6

效率解决

用更具体的语言来表达您的问题能够更明确的算法来解决这些问题。

从理论角度来看,FOL是不可判定的,而大多数PDDL仍然是可判定的,因为PDDL只能表达规划问题。并且例如具有参数化操作的经典计划与EXPSPACE-complete一样是“仅”。

当然,EXPSPACE完整的问题在更普遍/表达的FOL中表达,如果您知道,则可以在EXPSPACE中解决,。但是想出一个通用的FOL求解器有多难?它能保证只用指数空间来解决EXPSPACE中的所有问题?

效率建模

在实际方面,表达使用设计的造型规划问题,语言规划问题比FOL把它写下来更为方便。

难道你不想写C++而不是汇编语言?尽管你可以用C++编写的所有东西都可以用汇编语言表达。

+0

只是为了正确:在其“典型形式”(即“具有参数化行为的经典计划”)中不是EXPTIME完整的,而是EXPSPACE完整的。但是,如果没有负面的先决条件和负面影响,它会变成EXPTIME完整的(参见Erol等人,1995年的文章“复杂性,决定性和不可计算性结果)”。 –

1

ziggystar没有明确提到的另一点是 - 除了使用PDDL比FOL更方便这一事实 - 即规划问题与FOL完全不同的语义。

虽然汇编和C++都用于描述计算机程序(用汇编为比C更一般++因为后者被转换成汇编语言),FOL用于完全不同的目的比PDDL(而FOL,如ziggystar指出,比PDDL更普遍)。 “所有人都可以思考”。FOL旨在表达对象之间的陈述,主张和关系,例如引用ziggystar的例子,来自类似问题Reason for the development of First Order Logic and PDDL。通常,在使用FOL时,我们只关心一个公式是否成立(或者,例如,是否有另一个提议)。最显着的例子是以下一组命题(在FOL中正式确定):(1)“所有人都是凡人。” (2)“苏格拉底是男人。”当使用FOL对此进行形式化时,我们可以问“(1)和(2)”是否(3)“苏格拉底是致命的”。任何完整的FOL推理者都会回答这个问题。

规划(因此依赖于PDDL描述的问题)是关于询问是否存在变换初始状态的一系列动作(即,实例化的PDDL操作符模式)的问题(对事件的先前执行的描述)到一些理想的目标状态。因此,计划是关于行为的执行和推理是否存在这样一个序列。这基本上与FOL无关。由于FOL比大多数标准规划形式(例如,“PDDL的风味”)更具表现力,因此也可以使用FOL来描述规划问题。然而,由于计划和FOL语义的完全不同,人们不得不“滥用”FOL来表达计划问题 - 实际上,这是一个复杂的研究问题,人们可以这样做。如果你有兴趣:谷歌“计划为SAT”。

相关问题