There are several alternatives for maintaining the cells. The main
operation that needs to be performed efficiently is point
location [264]:
determine which cell contains a given state. The original method in
[73] preallocates an -dimensional array. The
collision-checking is even performed in advance. Any cell that
contains at least one point in
can be labeled as occupied. This allows cells that contain collision configurations to
be avoided without having to call the collision detection module. For
a fixed dimension, this scheme finds the correct cell and updates the
labels in constant time. Unfortunately, the space requirement is
exponential in dimension.
An alternative is to use a hash table to maintain the collection of cells that are labeled as visited. This may be particularly valuable if optimality is not important and if it is expected that solutions will be found before most of the cells are reached. The point location problem can be solved efficiently without explicitly storing a multi-dimensional array.
Suppose that the cubical decomposition is not necessarily used. One
general approach is to define as the Voronoi regions of a
collection
of
samples
in
. The
``name'' of each cell corresponds uniquely to a sample in
. The
cell that contains some
is defined as the nearest sample in
, using some predetermined metric on
. As a special case, the
cubical decomposition defines the cells based on a Sukharev grid
(recall Figure 5.5a). If the dimension of
is not
too high, then efficient nearest-neighbor schemes can be used to
determine the appropriate cell in near-logarithmic time in the number
of points in
(in practice, Kd-trees, mentioned in
Section 5.5.2, should perform well). For maintaining a
cubical decomposition, this approach would be cumbersome; however, it
works for any sample set
. If no solution is found for a
given
, then the partition could be improved by adding more
samples. This allows any dense sequence to be used to guide the
exploration of
while ensuring resolution completeness, which is
discussed next.
Steven M LaValle 2020-08-14