问题:在二维平面上给定N个点,覆盖这些点的最小可能圆的直径是多少?
解决此问题的最有效算法是什么,它是如何工作的?
解决此问题的最有效算法是什么,它是如何工作的?
对于“最小包围球”问题,有几种算法和实现方法可供选择。
对于二维和三维,Gärtner的实现可能是最快的。
对于更高的维度(比如10,000维),可以看一下https://github.com/hbf/miniball,这是一个由Gärtner、Kutz和Fischer提出的算法的实现(注意:我是其中的合著者之一)。
对于非常高的维度,使用核心集(近似)算法效果更好。
注意:如果您正在寻找计算“球之间的最小包围球”的算法,可以在计算几何算法库(CGAL)中找到一个C++实现。(您不需要使用CGAL的所有功能,只需提取所需的头文件和源代码即可。)
最远点沃罗诺伊图方法
http://www.dma.fi.upm.es/mabellanas/tfcs/fvd/algorithm.html