当我们已经有了一阶逻辑时,为什么我们需要PDDL? [英] Why do we need PDDL, when we already have first order logic?

查看:143
本文介绍了当我们已经有了一阶逻辑时,为什么我们需要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?

推荐答案

解决效率

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

Efficiency In Solving

Using a more specific language to express your problem makes it possible to apply more specific algorithms to solve them.

从理论上讲,FOL是不可确定的,而大多数PDDL仍可确定,因为PDDL只能表达计划问题.还有具有参数化动作的经典计划是唯一的".像EXPSPACE-complete.

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.

当然,用更一般/更具表现力的FOL表示的EXPSPACE完全问题仍然可以在EXPSPACE中解决,如果您知道的话.但是,想出一个普通的FOL求解器来保证仅使用指数空间来解决EXPSPACE中的所有问题有多么困难?

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?

从实践的角度来看,使用一种用于为计划问题建模的语言来表达计划问题比在FOL中将其写下来要方便得多.

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.

您是否愿意编写C ++而不是汇编器?即使您可以用C ++编写的所有内容都可以用汇编程序表达.

Wouldn't you prefer to write C++ instead of Assembler? Even though everything you can write in C++ can be expressed in Assembler.

这篇关于当我们已经有了一阶逻辑时,为什么我们需要PDDL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆