A backward search can be conducted by incrementally growing a plan
outward from by using backprojections. A complete algorithm for
computing feasible plans under nondeterministic uncertainty is
outlined in Figure 10.6. Let
denote the set of
states for which the plan has been computed. Initially,
and, if possible,
may grow until
. The plan definition
starts with
for each
and is incrementally
extended to new states during execution.
![]() |
Step 2 takes every state that is not already in
and checks
whether it should be added. This requires determining whether some
action,
, can be applied from
, with the next state guaranteed to
lie in
, as shown in Figure 10.7. If so, then
is assigned and
is extended to include
. If no
such progress can be made, then the algorithm must terminate.
Otherwise, every state is checked again by returning to Step 2. This
is necessary because
has grown, and in the next iteration new
states may lie in its strong backprojection.
For efficiency reasons, the
set in Step 2 may be
safely replaced with the smaller set,
, because it
is impossible for other states in
to be affected. Depending on
the problem, this condition may provide a quick way to prune many
hopeless states from consideration. As an example, consider a
grid-like environment in which a maximum of two steps in any direction
is possible at a given time. A simple distance test can be
implemented to eliminate many states from possible inclusion into
in Step 2.
As long as the consideration of states to include in is
systematic, as considered in Section 2.2, numerous
variations of the algorithm in Figure 10.6 are possible.
One possibility is to keep track of the cost-to-go and grow
based
on incrementally inserting minimal-cost states. This leads to a
nondeterministic version of Dijkstra's algorithm, which is covered
next.
Steven M LaValle 2020-08-14