Generated by GPT-5-mini| Douglas–Peucker algorithm | |
|---|---|
| Name | Douglas–Peucker algorithm |
| Type | Line simplification |
| Input | Polyline |
| Output | Simplified polyline |
| Invented | 1973 |
| Authors | David Douglas; Thomas Peucker |
Douglas–Peucker algorithm
The Douglas–Peucker algorithm is a line simplification method developed to reduce the number of points in a polyline while preserving overall shape. It was introduced by David Douglas and Thomas Peucker in 1973 and has been influential in fields such as cartography, computer graphics, geographic information system, and robotics. The algorithm iteratively selects key vertices to approximate an original curve within a user-specified tolerance, balancing fidelity and data compactness.
The algorithm operates on an ordered sequence of points from sources such as United States Geological Survey contour data, Ordnance Survey maps, or GPS traces from devices by Garmin and TomTom. In contexts like National Aeronautics and Space Administration telemetry or European Space Agency mapping projects, it serves to reduce transmission bandwidth and storage while retaining critical geometric features. The technique complements other simplification approaches by authors such as Hershberger and Imai, and is commonly used alongside spatial indexing structures like R-tree and k-d tree for preprocessing.
Begin with the first and last points of a polyline, a strategy akin to divide-and-conquer paradigms used by John von Neumann and Donald Knuth. Compute the perpendicular distance from each intermediate point to the line segment joining the endpoints; this geometric test relates to work by Gustav Kirchhoff and analytic geometry methods utilized by René Descartes. Identify the point with maximum distance: if that distance exceeds a tolerance ε, recursively apply the process to the subsegments defined by that point; otherwise, discard intermediate points and retain only endpoints. The recursion depth resembles strategies in algorithms by Robert Tarjan and Edgar Dijkstra for graph decomposition, and termination conditions mirror criteria used in Claude Shannon's information theory for lossy compression.
Naive implementations exhibit worst-case time complexity O(n^2) for n points due to repeated distance computations, a characteristic shared with other geometric algorithms studied by Michael Shamos and Godfried Toussaint. With acceleration via spatial indexes such as R-tree or plane sweep techniques attributed to Bentley–Ottmann algorithm researchers, average performance approaches O(n log n). Memory overhead is linear O(n), compatible with streaming contexts in projects like Apache Hadoop or Apache Spark when combined with map-reduce patterns popularized by Google engineers. Practical performance depends on input characteristics observed in datasets from OpenStreetMap and national mapping agencies such as Ordnance Survey and USGS.
Variants extend the core idea to address issues like angular preservation, topology, and multi-resolution representations. The Reumann–Witkam algorithm and the Visvalingam–Whyatt algorithm offer alternative heuristics introduced by Wolfgang Reumann and Mark Visvalingam respectively, while topology-preserving modifications draw on work from Hanan Samet and Herbert Edelsbrunner. Multi-scale and streaming adaptations have been proposed to integrate with frameworks by Donnelly and to interoperate with formats like GeoJSON, Shapefile, and KML used by Google Earth and Esri. Extensions for three-dimensional polylines appear in studies from MIT and Stanford University researchers addressing simplification for LiDAR point clouds and photogrammetry outputs.
The algorithm finds application in cartographic generalization for products by National Geographic Society, route simplification for navigation systems from TomTom and Garmin, and feature extraction in remote sensing projects from NASA and ESA. It is used in web mapping stacks such as Leaflet (software) and OpenLayers to reduce client-side rendering costs and in mobile development for Apple and Google map integrations to save bandwidth. In computer graphics, it assists in model simplification tasks explored by teams at Pixar and Industrial Light & Magic, while in robotics it aids path planning research in labs at Carnegie Mellon University and ETH Zurich.
Implementers must choose a distance metric—Euclidean perpendicular distance is standard, but alternatives include Hausdorff distance and angular metrics used in research by Pavel Shor and Jitendra Malik. Numeric robustness issues require attention to floating-point semantics defined by standards from IEEE and optimizations leveraging CPU features from Intel and ARM. Integration with data formats and libraries such as GDAL, PROJ, and GEOS eases adoption, and careful parameter selection for ε is advised based on scale conventions from agencies like USGS or Ordnance Survey. Parallelization strategies can follow paradigms by Leslie Lamport and Tony Hoare to handle very large trajectories common in datasets from Strava and Fitbit.
Category:Algorithms