The method explained so far will nicely find the solution to many problems when provided with the correct resolution. If the number of points per axis is too high, then the search may be too slow. This motivates selecting fewer points per axis, but then solutions might be missed. This trade-off is fundamental to sampling-based motion planning. In a more general setting, if other forms of sampling and neighborhoods are used, then enough samples have to be generated to yield a sufficiently small dispersion.
There are two general ways to avoid having to select this resolution (or more generally, dispersion):
The most straightforward approach is to iteratively improve the grid
resolution. Suppose that initially a standard grid with points
total and
points per axis is searched using one of the discrete
search algorithms, such as best-first or
.
If the search fails, what should be done? One possibility is to
double the resolution, which yields a grid with
points. Many of
the edges can be reused from the first grid; however, the savings
diminish rapidly in higher dimensions. Once the resolution is
doubled, the search can be applied again. If it fails again, then the
resolution can be doubled again to yield
points. In general,
there would be a full grid for
points, for each
. The
problem is that if
is large, then the rate of growth is too large.
For example, if
, then there would initially be
points;
however, when this fails, the search is not performed again until
there are over one million points! If this also fails, then it might
take a very long time to reach the next level of resolution, which has
points.
A method similar to iterative deepening from Section
2.2.2 would be preferable. Simply discard the efforts
of the previous resolution and make grids that have points per
axis for each iteration
. This yields grids of sizes
,
,
, and so on, which is much better. The amount of effort involved
in searching a larger grid is insignificant compared to the time
wasted on lower resolution grids. Therefore, it seems harmless to
discard previous work.
A better solution is not to require that a complete grid exists before
it can be searched. For example, the resolution can be increased for
one axis at a time before attempting to search again. Even better yet
may be to tightly interleave searching and sampling. For example,
imagine that the samples appear as an infinite, dense sequence
. The graph can be searched after every
points are
added, assuming that neighborhoods can be defined or constructed even
though the grid is only partially completed. If the search is
performed too frequently, then searching would dominate the running
time. An easy way make this efficient is to apply the
union-find algorithm [243,823] to
iteratively keep track of connected components in
instead of
performing explicit searching. If
and
become part
of the same connected component, then a solution path has been found.
Every time a new point in the sequence
is added, the
``search'' is performed in nearly5.11constant time by the union-find algorithm. This is the tightest
interleaving of the sampling and searching, and results in a nice
sampling-based algorithm that requires no resolution parameter. It is
perhaps best to select a sequence
that contains some lattice
structure to facilitate the determination of neighborhoods in each
iteration.
What if we simply declare the resolution to be outrageously high at
the outset? Imagine there are points in the grid. This
places all of the burden on the search algorithm. If the search
algorithm itself is good at avoiding local minima and has built-in
multi-resolution qualities, then it may perform well without the
iterative refinement of the sampling. The method of Section
5.4.3 is based on this idea by performing best-first search on
a high-resolution grid, combined with random walks to avoid local
minima. The algorithms of Section 5.5 go one step further
and search in a multi-resolution way without requiring resolutions and
neighborhoods to be explicitly determined. This can be considered as
the limiting case as the number of points per axis approaches
infinity.
Although this section has focused on grids, it is also possible to use
other forms of sampling from Section 5.2. This requires
defining the neighborhoods in a suitable way that generalizes the
-neighborhoods of this section. In every case, an infinite, dense
sample sequence must be defined to obtain resolution
completeness by reducing the dispersion to zero in the limit.
Methods for obtaining neighborhoods for irregular sample sets have
been developed in the context of sampling-based roadmaps; see Section
5.6. The notion of improving resolution becomes
generalized to adding samples that improve dispersion (or even
discrepancy).
Steven M LaValle 2020-08-14