Sweep line algorithm

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Animation of Fortune's algorithm, a sweep line technique for constructing Voronoi diagrams.

In computational geometry, a sweep line algorithm or plane sweep algorithm is a type of algorithm that uses a conceptual sweep line or sweep surface to solve various problems in Euclidean space. It is one of the key techniques in computational geometry.

The idea behind algorithms of this type is to imagine that a line (often a vertical line) is swept or moved across the plane, stopping at some points. Geometric operations are restricted to geometric objects that either intersect or are in the immediate vicinity of the sweep line whenever it stops, and the complete solution is available once the line has passed over all objects.

History[edit]

This approach may be traced to scanline algorithms of rendering in computer graphics, followed by exploiting this approach in early algorithms of integrated circuit layout design, in which geometric description of an IC was processed in parallel strips, because the entire description could not fit into memory.[citation needed]

Applications[edit]

Application of this approach led to a breakthrough in the computational complexity of geometric algorithms when Shamos and Hoey presented algorithms for line segment intersection in the plane, and in particular, they described how a combination of the scanline approach with efficient data structures (self-balancing binary search trees) makes it possible to detect whether there are intersections among N segments in the plane in time complexity of O(N log N).[1] The closely related Bentley–Ottmann algorithm uses a sweep line technique to report all K intersections among any N segments in the plane in time complexity of O((N + K) log N) and space complexity of O(N).[2]

Since then, this approach has been used to design efficient algorithms for a number of problems, such as construction of the Voronoi diagram (Fortune's algorithm) and the Delaunay triangulation or Boolean operations on polygons.

Generalizations and extensions[edit]

Topological sweeping is a form of the plane sweep with a relaxed ordering of processing points, that avoids the necessity of completely sorting the points; it allows some sweep line algorithms to be performed more efficiently.

The rotating calipers technique for designing geometric algorithms may also be interpreted as a form of plane sweep, in the projective dual of the input plane: a form of projective duality transforms the slope of a line in one plane into the x-coordinate of a point in the dual plane, so the progression through lines in sorted order by their slope as performed by a rotating calipers algorithm is dual to the progression through points sorted by their x-coordinates in a plane sweep algorithm.

The sweeping approach may be generalised to higher dimensions.

References[edit]

  1. ^ Shamos, Michael I.; Hoey, Dan (1976), "Geometric intersection problems", Proc. 17th IEEE Symp. Foundations of Computer Science (FOCS '76), pp. 208–215, doi:10.1109/SFCS.1976.16 .
  2. ^ Souvaine, Diane (2008), Line Segment Intersection Using a Sweep Line Algorithm .