Planning is a kind of problems we solve every day, e.g., finding the path from one place to another or making a delicious dinner from raw ingredients. For centuries (yes centuries, not decades), automated planning by a machine (e.g., a computer) has been one of the dreams under the banner of artificial intelligence. Now automated planning has many awesome applications, including operating Hubble telescope and Mars rovers.
For studying planning, AI researchers model the problem first. To me, planning is about state transitions over a world by actions.
Note that an action can have more than one conditions or none. So are for effects.
There are still two big challenges in automated planning:
An HTML version of the PDDL2.1 paper
The first step of automated planning is to represent planning problems to computers via a programming language. The de facto language for this purpose is PDDL, introduced in 1998. A new version PDDL2.1, debuted in 2002, allows users to define durative actions and numerical expressions.
The next step is to build a solver which is a computer program whose input is a planning problem and the output is a valid plan. Some solvers for PDDL2.1 have been proposed soon after the introduction of PDDL2.1. But as Cushing et al. pointed out, those solvers cannot solve temporally expressive planning problems [3]. The search for a ``real’’ temporal planner started after that.
Since planning is about satisfaction, many researchers adopt the idea of translating a PDDL2.1 program into a constraint programming problem, such as CSP and SAT. In this way, a PDDL solver is modularized into two parts: a translator and a constraint solver. This approach has a huge benefit that the development in constraint solving can be ported for planning easily to build a faster planner. However, those pioneering works have some drawbacks. The PDDL2.1-to-SAT approach [1] needs to discretize time and all time-dependent continuous variables. The solver may be slow because of large search space. The PDDL2.1-to-CSP approach [2] cannot solve problems with continuous effects, where values of variables change proportionally to time as actions elapse. Besides, all existing solvers, except PDDL2.1-to-SAT, cannot easily support PDDL extensions, e.g., PDDL axioms.
The idea of this type of solvers can be illustrated by the flowchart below.
________________________________________ | Input: PDDL2.1 program | | | | | V | | __________________________________ | | | PDDL2.1-to-SAT/CSP translator | | | | | | | | | V |--+------- SAT/CSP-based PDDL2.1 solver | | SAT/CSP solver | | | +----------------------------------+ | | | | | V | | Output: Plan as SAT/CSP solution | +----------------------------------------+
My PhD thesis, specifically, is solving PDDL2.1 planning by translating PDDL2.1 programs into programs in a newly developed constraint and logic programming language AC(C) [4]. In this way, we can hopefully resolve the drawbacks of previous works. The language AC(C) combines logical reasoning (e.g., i haven’t worked out yet so i will jog. ) and constraint solving (e.g., 75 > 70, so i can jog). In contrast, SAT is good at logical reasoning while CSP is good at constraint solving. Since planning involves both logical reasoning and constraint solving , AC(C) sounds a better choice.
Major advantages of this approach are:
I host the PDFs above at Google Docs and Ubuntu One. Please let me know if you cannot open any of them.
Jia-Huai You, Introduction to Answer Set Programming, http://webdocs.cs.ualberta.ca/~you/courses/621-2010/Lecture-Notes/intro-...
Aarati Parmar, Answer Set Programming,: http://www-cs-students.stanford.edu/~aarati/slides/answersets/ans-1.html, 2000, Stanford Formal Reasoning Group
Prolog: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html
Vladimir Lifschitz, What is Answer Set Programming, http://www.cs.utexas.edu/users/vl/papers/wiasp.pdf
Agostino Dovier and Enrico Pontelli, Present and Future Challenges for ASP Systems, http://www.springerlink.com/content/l7581u1515553756/fulltext.pdf