Computational Support for RRTs David Johnson
Basic Extend
Example in holonomic empty space
Computational Bottlenecks Collision detection –Not much different here than for PRMs Any differences? Finding the nearest neighbor to a vertex –Linear search O(n) time. –May have >10K points.
Kd-trees The kd-tree is a powerful data structure that is based on recursively subdividing a set of points with alternating axis- aligned hyperplanes. The classical kd-tree answers queries in time logarithmic in n, but exponential in d.
Construction Given –[(2,3), (5,4), (9,6), (4,7), (8,1), (7,2)] Split by median along axis –For big point sets might use median of a few random samples Switch axis Based on wikipedia article
Kd-trees. Construction l5l5 l1l1 l9l9 l6l6 l3l3 l 10 l7l7 l4l4 l8l8 l2l2 l1l1 l8l8 1 l2l2 l3l3 l4l4 l5l5 l7l7 l6l6 l9l Split Heuristics Median Point Median Value Clustering
Kd-trees. Query For Point Existence l5l5 l1l1 l9l9 l6l6 l3l3 l 10 l7l7 l4l4 l8l8 l2l2 l1l1 l8l8 1 l2l2 l3l3 l4l4 l5l5 l7l7 l6l6 l9l q
Another Example
Find Nearest Neighbor
Check Neighbor Cells
Can Be Efficient
Might Not Be Efficient
k-d Trees in High Dimensions Rule of thumb –Need num points >> 2^d for k-d trees to give much efficiency. Suggests that approximate answers may be worthwhile
ANN – Approximate Nearest Neighbor Approximate nearest neighbor (ANN) problem: –Find a point p P that is an –approximate nearest neighbor of the query q in that for all p' P, d ( p, q ) (1+ ) d ( p', q ).
Visualization of ANN