Computing Non-Obtuse Triangulations with Few Steiner Points
Mikkel Abrahamsen, Florestan Brunck, Jacobus Conradi, Benedikt Kolbe, André Nusser
TL;DR
The paper tackles computing non-obtuse triangulations of a PSLG within a polygon while minimizing Steiner points. It introduces a constrained Delaunay triangulation-based local search framework that iteratively inserts, relocates, or deletes Steiner points guided by a two-tier evaluation and a merging strategy. Key contributions include a set of geometric primitives (altitudeDrop, polygonCenter, visibilityVoronoi, clippedCircumcircle, circleArrangement), explicit action-generation rules, and a probabilistic evaluation scheme that balances solution quality with runtime, plus a merging technique to further reduce Steiner points. The approach achieves winning performance on CG:SHOP 2025, producing competitive Steiner-point counts across diverse instance types and demonstrating scalability and practical impact for constrained non-obtuse triangulations.
Abstract
We present the winning implementation of the Seventh Computational Geometry Challenge (CG:SHOP 2025). The task in this challenge was to find non-obtuse triangulations for given planar regions, respecting a given set of constraints consisting of extra vertices and edges that must be part of the triangulation. The goal was to minimize the number of introduced Steiner points. Our approach is to maintain a constrained Delaunay triangulation, for which we repeatedly remove, relocate, or add Steiner points. We use local search to choose the action that improves the triangulation the most, until the resulting triangulation is non-obtuse.
