of the uncertainties between two nodes: this evolu-
tion follows a given function and this function is the
same for every uncertainty. If the uncertainties of a
given extended node include the uncertainties of an-
other extended node (those extended nodes must be
based on the same node), then the pattern ensures that
this property will be kept in the following nodes of the
paths (when the paths follow the exact same nodes).
Constraint 2: If the function (collision-detection) giv-
ing the configuration-space where the path belongs
(
X
free
or
X
collision
) declares the path in
X
collision
for
a given uncertainty, then it will declare a new path
following the same (non-extended) nodes with wider
uncertainties in
X
collision
too.
When the AUCS* searches the graph, it generates
various beginning of paths. Given that numerous ex-
tended nodes can be at the same position (see prop-
erty 4 above), it is perfectly possible to have two or
more different paths reaching the same position (same
node, but different extended nodes).
Without knowing what comes in the future, could not
we already discard some of those paths?
The criteria of optimality we want to minimize is the
length of the path. What we search is the smallest
path. However, some paths expanded at some step
of the algorithm may not reach the goal (for exam-
ple, every path built from this path does not belong
to
X
e
free
). Thus, the current smallest path could be in
X
e
collision
without the algorithm knowing it (the part
being in collision with the environment having not
been reached by the algorithm yet) and a longer path
could be in
X
e
free
. The immediate consequence is that
we should keep both of them during the search.
What about if the longer path has also wider uncer-
tainties? Then it is clear that if the smallest path does
belong to
G
goal
, the longer path belongs to
G
goal
too
(this is ensured by constraint 2 presented above, in
section 4.1, as from this node on, the exact same paths
will be tried by both of the paths). In this case, we
could discard the longer path. On the other hand, if
the smallest path is in
G
free
, then we do not need the
longer path anymore, even if it is in
G
free
too, as its
length is by definition longer. We could also discard
it in this case.
Consequently, we can always discard the longer path
with the wide uncertainties.
This property considerably reduces the complexity of
the algorithm, as it detects earlier useless paths. In
order to make the detection of the useless paths the
quicker possible, (Lambert and Gruyer, 2003) pro-
poses the use of towers of uncertainties in an algo-
rithm we call SATU* (Safe A* with Towers of Un-
certainties).
Each extended node is divided in two entities:
• A base : Given by the node of the extended node
(the n first parameters).
• A level : The uncertainties associated to the node
and function of the path leading up there (the m
following parameters).
So, we can now dynamically (while the algorithm per-
forms) build a tower of uncertainties, with a common
base, and as many levels as the number of extended
nodes (with the same common base) opened at this
point. The levels are placed following some rules:
• The levels are placed in an increasing order of
their length.
• Given a level, if another level under it has uncer-
tainties that completely fits in its own, then the
given level is removed (its length is bigger and its
uncertainties are wider than the level’s under it).
A direct consequence of the description above is
that the memory needed for the SATU* is lower than
for the AUCS*, even if we consider that the AUCS*
build the graph dynamically too: for a given number
n of extended nodes which have the same base, the
needed memory will be (n+ m)n in the AUCS* and
only n+ n.m in the the SATU*.
4.2 Description of the Algorithm
SATU* is given in algorithm 2. The first part of the
algorithm is the same as algorithm 1: two lists are cre-
ated and initialized, a loop allows to expand extended
node after extended node (selecting the extended node
with the smallest f), a test verify if the goal extended
node has been reached, otherwise the successors of
the current extended node are selected and opened.
For each of those successors, a first test (line 12)
checks if the base of the successor is already in
CLOSE or OPEN. If it is not, then when can create
a new tower on this base, add a first level with the un-
certainties associated with the successor and add the
base of the node in OPEN (without forgetting to cal-
culate f and to store the parent of the node in order
to be able to find the path when the algorithm is fin-
ished).
If the base of the successor belongs either to CLOSE
or OPEN, we need to check if the successor may enter
the tower or not.
In order to do that, the algorithm must compare each
one of the levels of the tower with the successor’s
uncertainties and g. Line 20 and 21, the algorithm
selects the tower and initialized an index which will
represent the value of the current level being checked.
Line 22 begins the loop that will compare the current
level extracted and the successor.
Line 25, the current level to compare is extracted from
MINIMUM COST PATH SEARCH IN AN UNCERTAIN-CONFIGURATION SPACE
107