Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do we need PDDL, when we already have first order logic?

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?

like image 385
TimeToCodeTheRoad Avatar asked Feb 23 '23 22:02

TimeToCodeTheRoad


2 Answers

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.

like image 91
ziggystar Avatar answered May 01 '23 08:05

ziggystar


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".

like image 44
Prof.Chaos Avatar answered May 01 '23 09:05

Prof.Chaos