performanceoptimizationpddl

Some criteria when it comes to defining a PDDL domain


I have recently started working with PDDL, specifically using PDDL and Fast-downward to solve problems.

However, there is a problem that I encountered while working with PDDL. Defining a domain and a problem that is solvable is not challenging, the big issue is the running time of the solver.

A problem that can be solved within seconds with a well-defined domain is solved within minutes with a poorly defined domain.

I want to ask about which criteria I should look into when defining a PDDL domain. (Ex: fewer predicates, minimal use of "forall" or "exists", etc...)

I have been looking around on the internet about optimizing the domain definition for PDDL, however there has been no answers.


Solution

  • It's kind of an impossible question to answer crisply. General rules of thumb:

    Beyond that, it really depends on what's happening with the solving process to diagnose what you could change.