230 likes | 394 Views
Star Splaying: An algorithm for Repairing Delaunay Triangulations and Convex Hulls. Jonathan Richard Shewchuk. Outline. Background and motivation Central Idea Star Splaying Star Flipping Implementation Conclusion. Outline. Background and motivation. Flipping algorithm
E N D
Star Splaying: An algorithm for Repairing Delaunay Triangulations and Convex Hulls Jonathan Richard Shewchuk
Outline • Background and motivation • Central Idea • Star Splaying • Star Flipping • Implementation • Conclusion Outline
Background and motivation • Flipping algorithm • A combinatorial optimization procedure, of which the objective function maps a triangulation to a scalar value. • Flip a non-locally-Delaunay edge one by one, Each flipping increases the objective value. • Flipping is a hill climbing algorithm. Background and motivation
Background and motivation • Flipping algorithm • E.g. In 2D triangulation, the objective value can be seen as the volume of the 3D projected polytope. Background and motivation
Background and motivation • Flipping algorithm • In 3D or higher dimension, flipping algorithm on triangulation can get stuck in a local optimum objective value, but Delaunay. Background and motivation
Background and motivation • Star splaying • Solve the “stuck” problem • Efficient when the triangulation is near to Delaunay or the polytope is nearly convex. • Star flipping • A recursive variant Background and motivation
Central Idea • 3D convex hull -> 2D stars Central Idea
Central Idea • 2D star -> 1D link Central Idea
Central Idea • The three problems below are equivalent: • Computing (d+1)-dimensional convex hull H • Computing (d+1)-dimensional convex hull of rays HV(the cone of vertices star) • Computing d-dimensional convex hull P of points (intersected by a plane) Central Idea
Central Idea • The idea of star splaying and star flipping • Every vertex maintains its own star-link structure, which is the opinion of the vertex about what the global triangulation is like. • The stars of different vertices may be inconsistent: Central Idea
Central Idea • The idea of star splaying and star flipping • By iteratively communicate with neighbors, the star of a vertex splays gradually, as an umbrella. Central Idea
Star Splaying • Every vertex has a link triangulation, which represents both the star and the link of the vertex. • Initially, every vertex links some others, with inconsistency. The initial star of a vertex may be random created, or based on the existing polytope. • Use consistency enforcement algorithm to fix inconsistencies, like opening umbrella. • When there is no inconsistency, star splaying has constructed convex hull. Star Splaying
Star Splaying • Consistency enforcement algorithm • Reconciling an asymmetric edge • Reconciling conflicting edge stars A B C Star Splaying -> consistency enforcement algorithm
Star Splaying • Consistency enforcement algorithm • Reconciling an asymmetric edge • Reconciling conflicting edge stars Q R P S Star Splaying -> consistency enforcement algorithm
Star Splaying • It is possible to get several small convex hull in a set of vertices. • The initial star of every vertex v contains at least one vertex that lexicographically precedes v. Star Splaying
Star Splaying • for vertex v is all vertices that are on or outside the initial cone of v. • Thus, if the initial estimation is near the final result, star splaying consumes linear time. Star Splaying
Star Flipping • Assume that we have gotten a polytope, star flipping helps to make the polytope convex. • Star Flipping: Making each starting cone convex by applying flipping to its link triangulation- and if that gets stuck, by calling star splaying recursively with the dimension d reduced by one. Star Flipping
Star Flipping • Process of star flipping FL SS DT FL SS DT FL SS FL SS FL SS FL DT: Delaunay Triangulation; FL: Flipping; CEA: Consistency Enforcement Algorithm Star Flipping
Implementation • Data structure Implementation
Implementation • Making star of vertices convex orientation determinant Implementation
Implementation • Finding inconsistencies • Use a triple <f, v, w>, in which f is a facet and v, w is its vertices, to denote f is in w’s star. • Initially, for every vertex w, enqueue <f, v, w> for each v in the star of w. • When the consistency algorithm insert v into w’s star, enqueue <f, v, w> • Every time dequeue a <f, v, w> and use consistency algorithm on it. Implementation
Conclusion • Star splaying can compute convex hull and Delaunay triangulation for arbitrary dimension. • Star splaying and star flipping is a good optimization tool, more suitable for repairing. • It supports parallel execution. Conclusion