For the last 5 years I have focused on a new fusion of symbolic model
checking and artificial intelligence (AI). The idea is to depart from
an explicit representation of planning domains and instead use an
implicit state-space representation and search technique developed in
symbolic model checking based on reduced ordered Binary Decision
Diagrams (BDDs).
The size of a BDD does not depend on the size of the state-space it
represents. For regularly structured domains, it may be exponentially
smaller. Since BDD manipulation is polynomial, this compactness
translates directly into speed of the BDD-based planning algorithms.
BDD-based planning currently dominates non-deterministic planning
since non-sequential conditional plans can be efficiently represented
by BDDs. I have developed a specification language NADL and a planning
system UMOP for synthesizing plans for non-deterministic domains. UMOP
includes all current BDD-based planning algorithms (strong, strong
cyclic, and weak). In contrast to previous domain specification
languages, NADL defines the behavior of the environment explicitly as
a set of uncontrollable agents. An interesting advantage of this
approach is that it has made it possible to extend UMOP with
algorithms that reason about the actions of the environment to handle
situations where the environment is assumed to be adversarial. I am
currently working a temporal version of NADL called ASynchronous
Evolving Tasks (ASET). ASET seems to be the first planning language
for defining durative actions that are non-deterministic both with
respect to temporal extension and effects. ASET is targeted towards
mission planning, but fits equally well in a discrete event system
setting e.g. for manufacturing or embedded control.
Non-deterministic planning and decision theoretic planning are closely
related. Basically a non-deterministic planning domain is a Markov
Decision Process (MDP) where the transition probabilities have been
removed. For this reason, BDD-based non-deterministic planning
algorithms typically can handle much larger domains than MDP solvers
even when these are based on Algebraic Decision Diagrams (ADDs). The
lack of probabilities, however, makes it impossible for
non-deterministic planners to identify very unlikely execution
paths. To address this problem, I have introduced fault tolerant
planning for non-deterministic domains. The idea is to divide actions
effects into likely primary effects (success) and unlikely secondary
effects (failure) and thus take transition probabilities into account
without modeling these directly. In this way, we can recast a plan
with high probability of success as a plan with high tolerance for
failures occurring during execution. Fault tolerant planning has been
demonstrated in a variety of control domains and it has successfully
been applied to reconfiguration planning in the Livingstone model of
NASA's Deep Space One (DS1) probe used for the Remote Agent
Experiment.
Heuristic BDD-Based Search
My thesis introduces a general approach called state-set branching for
combining heuristic and BDD-based search. The key idea is to use the
image and preimage computation of a disjunctive or conjunctive
transition relation partitioning not only to compute the search
frontier but also to split it into sets of states associated with
identical heuristic search information. Even though partitioning is
widely used in model checking, the idea of using a partitioning for
propagating heuristic search information is novel. A detailed
investigation of state-set branching has been conducted via an
implementation of A* called SetA*. SetA* dominates A* when the
heuristic is weak. This is a powerful property, since weak heuristics
often are easy to define, while strong heuristics can take years or
decades to develop (as for the (n-1)^2 - puzzles). In addition to
AI-search, state-set branching can be applied to symbolic model
checking for fast counter example generation. More interestingly,
however, it also applies to strong, strong cyclic, weak, and fault
tolerant non-deterministic planning.
Configuration
Lately I have been working on BDD-based configuration. The idea is to
compile a BDD representing the solution space of a Constraint
Satisfaction Problem (CSP). The approach is particularly useful for
interactive configuration where a specialized polynomial BDD operation
can be used to compute the possible values of unassigned
variables. This enables fast backtrack-free configuration suitable for
the internet. An interactive configuration process may also, however,
be viewed as an interactive execution of non-deterministic plan for
reaching a complete configuration. For some planning problems this
approach may suffice and since it only is needed to compute the set of
valid states of the domain, it may scale to larger domains than
non-deterministic planning.