VHPOP uses the A* algorithm
(Hart, Nilsson, & Raphael, 1968) to search
through plan space. The A* algorithm requires a search node
evaluation function
f (n) = g(n) + h(n), where g(n) is the cost of
getting to n from the start node (initial plan) and h(n) is the
estimated remaining cost of reaching a goal node (complete plan). We
want to find plans containing few actions, so we take the cost of a
plan to be the number of actions in it. For a plan
=
,
,
,
we
therefore have
g(
) = |
|.
The original implementations of SNLP and UCPOP used
hf() = |
(
)| as the heuristic cost
function, i.e. the number of flaws in a plan.
Schubert and Gerevini (1995) consider
alternatives for
hf(
), and present empirical data
showing that just counting the open conditions (
hoc(
) = |
(
)|) often gives better results. A big problem,
however, with using the number of open conditions as an estimate of
the number of actions that needs to be added is that it assumes a
uniform cost per open condition. It ignores the fact that some open
conditions can be linked to existing actions (thus requiring no
additional actions), while other open conditions can be resolved only
by adding a whole chain of actions (thus requiring more than one
action).
Recent work in heuristic search planning has resulted in more informed heuristic cost functions for state space planners. We have in previous work (Younes & Simmons, 2002) adapted the additive heuristic--first proposed by Bonet et al. (1997) and subsequently used in HSP (Bonet & Geffner, 2001b)--for plan space search and also extended it to handle negated and disjunctive preconditions of actions as well as actions with conditional effects and lifted actions. The heuristic cost function used by VHPOP at IPC3 was a variation of the additive heuristic where some reuse of actions is taken into account, coupled with the tie-breaking rank (introduced in Younes & Simmons, 2002) based on estimated remaining planning effort.