当我们已经有一阶逻辑时,为什么还需要 PDDL?
这可能是一个完全天真的问题,但我有兴趣知道具体原因。最初为什么要开发 PDDL?为什么我们不能使用一阶逻辑进行推理?
This might be a totally naive question, but i am interested to know the particular reasons. Why was PDDL developed in the first place? Why could we not do the reasoning using First Order Logic?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决问题的效率
使用更具体的语言来表达您的问题可以应用更具体的算法来解决问题。
从理论上来看,FOL 是不可判定的,而大多数 PDDL 风格仍然是可判定的,因为 PDDL 只能表达规划问题。例如,具有参数化操作的经典规划“仅”类似于 EXPSPACE 完整的。
当然,用更一般/更具表现力的 FOL 表示的 EXPSPACE 完全问题仍然可以在 EXPSPACE 中解决,如果您了解的话。但是,想出一个通用的 FOL 求解器来保证仅使用指数空间解决 EXPSPACE 中的所有问题有多难?
建模效率
在实践方面,使用专为规划问题建模而设计的语言表达规划问题比用 FOL 编写要方便得多。
您难道不想编写 C++ 而不是汇编程序吗?尽管用 C++ 编写的所有内容都可以用汇编器表达。
Efficiency In Solving
Using a more specific language to express your problem makes it possible to apply more specific algorithms to solve them.
From a theoretic point of view FOL is undecidable while most flavors of PDDL are still decidable, because PDDL can only express planning problems. And e.g. classical planning with parameterized actions is "only" like EXPSPACE-complete.
Of course an EXPSPACE-complete problem expressed in more general/expressive FOL is still solvable in EXPSPACE, if you know about it. But how hard is it to come up with a general FOL solver that guarantees to solve all problems that are in EXPSPACE using only exponential space?
Efficiency In Modeling
On the practical side, expressing a planning problem using a language designed for modeling planning problems is far more convenient than writing it down in FOL.
Wouldn't you prefer to write C++ instead of Assembler? Even though everything you can write in C++ can be expressed in Assembler.
ziggystar 没有明确提到的另一点是——除了使用 PDDL 比 FOL 更方便之外——规划问题背后的语义与 FOL 完全不同。
虽然汇编程序和 C++ 都用于描述计算机程序(汇编程序比 C++ 更通用,因为后者被翻译为汇编程序),但 FOL 的用途与 PDDL 完全不同(而 FOL,正如 ziggystar 所指出的那样) out,比 PDDL 更通用)。
FOL 旨在表达陈述、命题和对象之间的关系,例如(引用类似问题中 ziggystar 的示例 一阶逻辑和 PDDL 发展的原因)“所有人类都可以思考”。通常,当使用 FOL 时,我们只关心公式是否成立(或者,例如,一个命题是否可以推导出另一个命题)。最突出的例子是以下一组命题(在 FOL 中形式化):(1)“所有人都会死”。 (2)“苏格拉底是一个人。”当使用 FOL 将其形式化时,我们可以问(3)“苏格拉底是凡人”是否可以从“(1)和(2)”得出。任何完整的 FOL 推理者都会回答“是”。
规划(以及因此依赖 PDDL 描述的问题)是关于询问是否存在将初始状态(动作之前执行的世界的描述)转换为某个期望目标的一系列动作(即实例化的 PDDL 运算符模式)的问题状态。因此,规划是关于行动的执行以及推理这样的序列是否存在。这基本上与FOL无关。
由于 FOL 比大多数标准规划形式(例如“PDDL 风格”)更具表现力,因此也可以使用 FOL 来描述规划问题。然而,由于规划与FOL的语义完全不同,人们不得不“误用”FOL来表达规划问题,而如何做到这一点实际上是一个复杂的研究问题。如果您有兴趣:谷歌搜索“planning as SAT”。
Another point not explicitly mentioned by ziggystar is -- in addition to the fact that using PDDL is more convenient than FOL -- that planning problems underly a completely different semantics than FOL.
While assembler and C++ are both used to describe computer programs (with assembler being more general than C++ since the latter is translated into assembler), FOL serves a completely different purpose than PDDL (while FOL, as ziggystar pointed out, is more general than PDDL).
FOL was designed to express statements, propositions, and relations between objects like (to quote ziggystar's example from the similar question Reason for the development of First Order Logic and PDDL) "All humans can think". Ordinarily, when using FOL, we are just interested in whether a formula holds or not (or, e.g., whether one proposition follows from another). The most prominent example would be the following set of propositions (formalized in FOL): (1) "All men are mortal." (2) "Socrates is a man." When formalizing this using FOL, we can ask whether (3) "Socrates is mortal" follows from "(1) and (2)". Any complete FOL reasoner will answer this with yes.
Planning (and hence problems described relying on PDDL) is about asking the question whether there exists a sequence of actions (i.e., instantiated PDDL operator schemata) that transform the initial state (description of a world prior execution of an action) to some desired goal state. Thus, planning is about the execution of actions and reasoning whether such a sequence exists. This has basically nothing to do with FOL.
Since FOL is more expressive than most standard planning formalisms (e.g., "flavors of PDDL"), one can also use FOL to describe planning problems. However, due to the complete difference of the semantics of planning and FOL, one would have to "misuse" FOL to express planning problems - and it is actually a complicated research question how one can do so. In case you are interested: google for "planning as SAT".