We consider the problem of triangulating a polygon with $n$ vertices and $h$ holes, or relatedly the problem of computing the trapezoidal decomposition of a collection of $h$ disjoint simple polygonal chains with $n$ vertices total. Clarkson, Cole, and Tarjan (1992) and Seidel (1991) gave randomized algorithms running in $O(n\log^*n + h\log h)$ time, while Bar-Yehuda and Chazelle (1994) described deterministic algorithms running in $O(n+h\log^{1+\varepsilon}h)$ or $O((n+h\log h)\log\log h)$ time, for an arbitrarily small positive constant $\varepsilon$. No improvements have been reported since. We describe a new $O(n + h\log h)$-time algorithm, which is optimal and deterministic. More generally, when the given polygonal chains are not necessarily simple and may intersect each other, we show how to compute their trapezoidal decomposition (and in particular, compute all intersections) in optimal $O(n + h\log h)$ deterministic time when the number of intersections is at most $n^{1-\varepsilon}$. To obtain these results, Chazelle's linear-time algorithm for triangulating a simple polygon is used as a black box.
翻译:我们考虑对具有 $n$ 个顶点和 $h$ 个孔的多边形进行三角剖分的问题,或者与之相关的计算总顶点数为 $n$ 的 $h$ 条不相交简单多边形链的梯形分解问题。Clarkson、Cole 和 Tarjan (1992) 以及 Seidel (1991) 给出了运行时间为 $O(n\log^*n + h\log h)$ 的随机算法,而 Bar-Yehuda 和 Chazelle (1994) 描述了运行时间为 $O(n+h\log^{1+\varepsilon}h)$ 或 $O((n+h\log h)\log\log h)$ 的确定性算法,其中 $\varepsilon$ 为任意小的正常数。此后未见改进报道。我们描述了一种新的 $O(n + h\log h)$ 时间算法,该算法是最优且确定性的。更一般地,当给定的多边形链不一定简单且可能相互相交时,我们展示了如何在相交数量不超过 $n^{1-\varepsilon}$ 的情况下,以最优的 $O(n + h\log h)$ 确定性时间计算其梯形分解(特别是计算所有交点)。为获得这些结果,Chazelle 的简单多边形三角剖分线性时间算法被用作黑箱工具。