凸包:Akl-Toussaint算法的增量变化简单、最佳且节省空间的凸包算法
Convex hull: Incremental variations on the Akl-Toussaint heuristics Simple, optimal and space-saving convex hull algorithms
摘要:
凸包是一种基本的几何工具,用于许多算法。Akl和Toussaint在1978年的一篇著名论文中描述了一种减少计算中涉及的点数的方法,该方法被称为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)).
英文摘要:
Convex hulls are a fundamental geometric tool used in a number of algorithms. A famous paper by Akl and Toussaint in 1978 described a way to reduce the number of points involved in the computation, which is since known as the Akl-Toussaint heuristics. This paper first studies what this heurstics really represents in terms of reduction of points and demonstrates that the optimum selection is reached using an octogon as the remaining number of points is in O(sqrt(N)) rather than the usual O(N). Then it focuses on optimising the overall computational efficiency in a convex hull computation. Although the heuristics is usually used as a first step in computations one can obtain the convex hull directly from the heuristics's basis. First a simple incremental implementation is described, and if the number of characteristic points of the Akl-Toussaint heuristics p is taken as a parametre the convex hull is then computed in a O(N(p+h/p)) average complexity or O(Nh) asymptotic complexity. Given the relative constant factor of 1/p however experimental results show that this algorithm should be considered linear in average. Worst-case complexity is in O(N^2) and space complexity is O(h) but could be O(1) if the required output is the array of convex vertices's indexes. Then a remark on why the basic incremental method should be preferred for average cases is made. Finally an optimal linear algorithm both in average and worst-case and using a minimal space complexity in O(sqrt(N)) in average (or O(1) if in-place computation is allowed) is presented.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。