Maximizing the Minimum Angle with the Insertion of Steiner Vertices
Shankar P. Sastry · Canadian Conference on Computational Geometry · 2015
We consider the problem of inserting a vertex inside a star-shaped input polygon at the location that maximizes the minimum angle in the resulting triangulation. An existing polynomial-time algorithm solves for the intersection of three polynomial surfaces (a prior paper indicates that these are eighth-degree polynomials) and computes the maxima of the curve of intersection of two such surfaces to solve the problem. We developed a similar technique through the geometric insight that at least two angles (typically, three) of the triangulation have to be identical at the optimal location. We combinatorially process the angles to compute the optimal location in each case. The worst-case complexity of the algorithm remains O(n 3 logn), but it is much easier to implement partly because our algorithm requires the solutions of an (at most) eighth-degree, univariate polynomial for each combination of the angles. We also modied the algorithm to lower the expected running time to O(n 2 ) using a recursive, randomized algorithm for LP-type problems. We extend the algorithm by imposing constraints on the location of the Steiner vertex and solving the constrained optimization problem in a similar manner. We also extend the algorithm to simultaneously insert two vertices by considering all possible topologies and ensuring that the necessary conditions for local maxima are satised.