Table of Contents
Fetching ...

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.

Computing Non-Obtuse Triangulations with Few Steiner Points

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.

Paper Structure

This paper contains 12 sections, 2 equations, 15 figures.

Figures (15)

  • Figure 1: A non-obtuse triangulation produced by our implementation. Here, as in the rest of the paper, the region to be triangulated is enclosed by the fat curve, the given vertices are black, and the constraint edges are green. The Steiner points are red.
  • Figure 2: left: CDT with obtuse triangles marked in red; middle: its circleArrangement; right: the two altitudeDrop points of the two upper obtuse triangles and its resulting CDT.
  • Figure 3: Illustration of the computation of the polygonCenter primitive.
  • Figure 4: Center identification in the style of Erten and Ungör ungörerten1ungörerten2erten-not, from the visibility-constrained Voronoi diagram pslgBoundedVoronoiDiagram.
  • Figure 5: Center identification by choosing a cell $C$ from the circleArrangement and computing the polygonCenter of its corresponding polygon $P_C$.
  • ...and 10 more figures