覆盖2D平面上给定点的最小圆

时间:2011-02-04 18:24:33

标签: algorithm computational-geometry

问题:在2D平面上覆盖给定N个点的圆的最小可能直径是多少?

解决此问题的最有效算法是什么?它是如何工作的?

3 个答案:

答案 0 :(得分:7)

这是smallest circle problem。请参阅参考资料以获取建议算法的链接。

  

E.Welzl,最小的封闭磁盘   (球和椭圆体),在H. Maurer   (编辑),新成果和新趋势   计算机科学,讲义   计算机科学,Vol。 555,   Springer-Verlag,359-37(1991)

是对“最快”算法的引用。

答案 1 :(得分:5)

最小的封闭球问题有几种算法和实现。

  • 对于2D和3D,Gärtner's implementation可能是最快的。

  • 对于更高的尺寸(比如说高达10,000),请查看https://github.com/hbf/miniball,这是Gärtner,Kutz和Fischer的算法实现(注意:我是其中一个-authors)。

  • 对于非常非常高的维度,核心集(近似)算法会更快。

注意:如果您正在寻找计算球体的最小封闭球的算法,您将在Computational Geometry Algorithms Library (CGAL)中找到C ++实现。 (您不需要使用所有CGAL;只需提取所需的头文件和源文件。)

答案 2 :(得分:1)

最远点voronoi图方法

http://www.dma.fi.upm.es/mabellanas/tfcs/fvd/algorithm.html

对于2 d问题非常有效。它是非迭代的,并且(非常肯定)保证完全正确。我怀疑它不会延伸到更高的尺寸,这就是为什么在文献中很少关注它。

如果有兴趣我会在这里描述 - 我认为以上链接有点难以理解。

修改其他链接:http://ojs.statsbiblioteket.dk/index.php/daimipb/article/view/6704