On monotone paths among obstacles with applications to planning assemblies

We study the class of problems associated with the detection and computation of monotone paths among a set of disjoint obstacles. We give an <italic>&Ogr;</italic>(<italic>nE</italic>) algorithm for finding a monotone path (if one exists) between two points in the plane in the presence of polygonal obstacles. (Here, <italic>E</italic> is the size of the visibility graph defined by the <italic>n</italic> vertices of the obstacles.) If all of the obstacles are convex, we prove that there always exists a monotone path between any two points <italic>s</italic> and <italic>t</italic>. We give an <italic>&Ogr;</italic>(<italic>n</italic> log <italic>n</italic>) algorithm for finding such a path for any <italic>s</italic> and <italic>t</italic>, after an initial <italic>&Ogr;</italic>(<italic>E</italic> + <italic>n</italic> log <italic>n</italic>) preprocesing. We introduce the notions of “monotone path map”, and “shortest monotone path map” and give algorithms to compute them. We apply our results to a class of separation and assembly problems, yielding polynomial-time algorithms for planning an assembly sequence (based on separations by single translations) of arbitrary polygonal parts in two dimensions.