AI planning: a prospectus on theory and applications

In this brief article, I will attempt to summarize the status of research and applications of domain-independent planning in AI. Developing automated methods for generating and reasoning about plans and schedules, whether in aid of autonomous or human agents, has been part and parcel of AI research from the very beginning. The need for planning arises naturally when an agent is interested in controlling the evolution of its environment. Algorithmically, a planning problem has as input a set of possible courses of actions, a predictive model for the underlying dynamics, and a performance measure for evaluating the courses of action. The output or solution is one or more courses of action that satisfy the specified requirements for performance. A planning problem thus involves deciding ‘‘what’’ actions to do, and ‘‘when’’ to do them. The ‘‘when’’ part of the problem has traditionally been called the ‘‘scheduling’’ problem. This separation is motivated as much by computational considerations as it is by the fact that algorithms for automating scheduling have been around longer (e.g. in the Operations Research community) than those for automating the complete planning problem. The simplest case of the planning problem, where the environment is static and deterministic, and the planner has complete information about the current state of the world, has come to be known as the classical planning problem. Classical planners face two important issues: modeling actions and change, and organizing the search for plans (action sequences) capable of achieving the goals. Although the representation problem continues to receive significant attention from the logic programming and non-monotonic reasoning communities, most implemented planners settle on some variant of the STRIPS action model, where the state of the world is represented in terms of a set of state variables and their values, and actions are represented as deterministic state-transforming functions. The organization of search in classical planning turned out to be more controversial. The early planners modeled the search in terms of exploration of the space of world states, with the transitions between states being effected by the actions. Soon, the need, as well as the utility, of manipulating partial plans during search became clear, and this lead to the design of algorithms that search in the space of partial plans. The search proceeds by refining the partial plans through the addition of actions and orderings (called partial order planning), or by replacing abstract actions by plan fragments that are capable of carrying out those actions (called hierarchical planning). It is now understood that even the state space approaches can seen as another way of refining partial plans (by growing the prefix or suffix of the plan), and that the different ways of refining a partial plan can be fruitfully interleaved. In the case of scheduling, the problem has received significant attention from the operations research community. The classical scheduling methods considered situations where the resource constraints are static and pre-specified in numeric form. In contrast, the AI methods to scheduling allow declarative specification of both symbolic and numeric resource