凸包:Akl-Toussaint启发式算法的增量变体 简单、最优和节省空间的凸包算法

摘要:凸包在许多算法中被广泛使用,1978年Akl和Toussaint的一篇著名论文描述了一种减少计算中涉及的点数的方法,即Akl-Toussaint启发式算法。本文首先研究了这种启发式算法在点数减少方面的实际效果,并证明通过使用八边形作为剩余点数,剩余点数可以达到O(sqrt(N)),而不是通常的O(N)。然后,本文着重优化凸包计算的整体计算效率。尽管这种启发式算法通常被用作计算的第一步,在基于启发式算法的基础上可以直接得到凸包。首先,描述了一个简单的增量实现方法,如果将Akl-Toussaint启发式算法的特征点数p作为参数,则可以在O(N(p+h/p))的平均复杂度或O(Nh)的渐进复杂度下计算凸包。然而,实验结果表明,考虑到相对常数因子1/p,该算法在平均情况下可以被认为是线性的。最坏情况下的复杂度为O(N^2),空间复杂度为O(h),但如果所需输出是凸顶点索引数组,则空间复杂度可以为O(1)。接着,本文指出了为什么在平均情况下应该优先选择基本的增量方法。最后,本文提出了一种最优的线性算法,无论是在平均情况下还是最坏情况下,都能够使用最小的空间复杂度O(sqrt(N))(如果允许原地计算,则可以为O(1))。

作者:Jean Souviron

论文ID:1304.2676

分类:Computational Geometry

分类简称:cs.CG

提交时间:2013-04-10

PDF 下载: 英文版 中文版pdf翻译中