Artificial intelligence 既然我们已经有了一阶逻辑,为什么还需要PDDL?

Artificial intelligence 既然我们已经有了一阶逻辑,为什么还需要PDDL?,artificial-intelligence,pddl,Artificial Intelligence,Pddl,这可能是一个完全幼稚的问题,但我想知道具体的原因。最初为什么要开发PDDL?为什么我们不能使用一阶逻辑进行推理?解决问题的效率 使用更具体的语言来表达您的问题,可以应用更具体的算法来解决问题 从理论角度来看,FOL是不可判定的,而PDDL的大多数风格仍然是可判定的,因为PDDL只能表示规划问题。例如,带有参数化动作的经典规划“仅”像EXPSPACE complete一样 当然,如果您知道的话,用更一般/表达性的FOL表示的EXPSPACE完整问题仍然可以在EXPSPACE中解决。但是,要想出一个

这可能是一个完全幼稚的问题,但我想知道具体的原因。最初为什么要开发PDDL?为什么我们不能使用一阶逻辑进行推理?

解决问题的效率 使用更具体的语言来表达您的问题,可以应用更具体的算法来解决问题

从理论角度来看,FOL是不可判定的,而PDDL的大多数风格仍然是可判定的,因为PDDL只能表示规划问题。例如,带有参数化动作的经典规划“仅”像EXPSPACE complete一样

当然,如果您知道的话,用更一般/表达性的FOL表示的EXPSPACE完整问题仍然可以在EXPSPACE中解决。但是,要想出一个通用的FOL解算器来保证只使用指数空间来解决EXPSPACE中的所有问题有多难呢

建模效率 在实践方面,使用为规划问题建模而设计的语言表达规划问题要比用FOL写下来方便得多


<>你不喜欢写C++而不是汇编程序吗?即使你可以用C++编写的所有东西都可以用汇编语言来表达。

ZigGISAR没有明确提到的另一点是——除了使用PDDL比FOL更方便——规划问题的语义完全不同于FOL。< /P> 虽然汇编语言和C++语言都是用来描述计算机程序(汇编程序比C++更通用,因为后者被翻译成汇编程序),但FoL的服务与PDDL完全不同,而Fig.Ziggistar指出,比PDDL更通用。 FOL被设计用来表达陈述、命题和对象之间的关系,比如(引用ziggystar在类似问题中的例子)“所有人都能思考”。通常,当使用FOL时,我们只关心公式是否成立(或者,例如,一个命题是否遵循另一个命题)。最突出的例子是以下一组命题(用FOL形式化):(1)“所有的人都是凡人。”(2)“苏格拉底是人。”当用FOL形式化这一命题时,我们可以问(3)“苏格拉底是凡人”是否源自(1)和(2)”。任何完整的FOL reasoner都会回答“是”

规划(以及依赖PDDL描述的问题)是询问是否存在将初始状态(操作执行前的世界描述)转换为某个期望目标状态的操作序列(即,实例化的PDDL运算符模式)。因此,计划是关于行动的执行和推理是否存在这样的序列。这基本上与FOL无关


由于FOL比大多数标准规划形式(如“PDDL风格”)更具表现力,因此也可以使用FOL来描述规划问题。然而,由于规划和FOL的语义完全不同,人们不得不“误用”FOL来表达规划问题——实际上,如何做到这一点是一个复杂的研究问题。如果您感兴趣,请使用谷歌搜索“按SAT进行规划”。

为了正确起见,可能会复制:在其“典型形式”(即“带参数化动作的经典规划”)中,不是EXPTIME complete,而是EXPSPACE complete。但是,如果既没有负面的先决条件,也没有负面的影响(参见Erol等人1995年发表的文章“独立于领域的规划的复杂性、可判定性和不可判定性结果”),它将在一段时间内完成。