A non-self-intersection Douglas-Peucker algorithm

The classical Douglas-Peucker line-simplification algorithm is recognized as the one that delivers the best perceptual representations of the original lines. It is used extensively for both computer graphics and geographic information systems. There are two variants of this algorithm, the original O(nm) method, where n denotes the number of input vertices and m the number of output segments, that works in any dimension, and the O(nlogn) one, which only works for simple 2D planar polylines. In the both variants, a self-intersecting simplified line may be yielded if the accepted approximation is not sufficiently fine. Based on star-shaped subsets, we present yet another O(mn) variant of Douglas-Peucker algorithm which preserves the nonself-intersection property for any predefined tolerance.