输入:一组在点- [R 3,和一个整数ķ ≤ Ñ。
输出:最小体积轴对齐的边界框,至少包含这n个点中的个。
我想知道是否有任何算法可以解决此问题。我能想到的最好的时间是时间,大致如下:在三个维度中的两个维度上,所有可能的上限和下限都将受到蛮力作用;对于每种O (n 4)可能性,我们都可以使用滑动窗口算法在O (n )时间内解决问题的一维形式。
输入:一组在点- [R 3,和一个整数ķ ≤ Ñ。
输出:最小体积轴对齐的边界框,至少包含这n个点中的个。
我想知道是否有任何算法可以解决此问题。我能想到的最好的时间是时间,大致如下:在三个维度中的两个维度上,所有可能的上限和下限都将受到蛮力作用;对于每种O (n 4)可能性,我们都可以使用滑动窗口算法在O (n )时间内解决问题的一维形式。
Answers:
对于个点,有O (n 3)个空框,请参见本文介绍http://www.cs.uwm.edu/faculty/ad/maximal.pdf。大约可以在这个时候计算这些盒子(参见参考资料中的参考资料)。
对于您的问题,请随机抽取一些点,并以可拾取性挑选每个点。这样的随机样本的大小(预期值)为n / k [(为了矛盾起见,假设为)。上面有O ((n / k )3)个空盒子,它们的侧面都是R的点。对于每个此类框,请使用正交范围搜索数据结构来计算其确切包含多少个点。重复此过程O (k 6 log n )次。您尝试使用的框之一很有可能是所需的框。
总的来说,在此运行时间为。
要了解为什么这样做有效,请考虑使用最佳包装盒。它的边界上有6个P点。随机样本选择这六个点且框内没有一个点的概率至少为。因此,如果您重复过程O((1/p)logn)次,则概率很高,其中一个随机样本会导致所需的框为空框。
由于对于空盒的数量来说是紧密的(有关参考文献请参见上面的论文介绍),因此似乎不可能有明显更快的算法。
[在我提供的参考文献中,他们提到[17]提供了一种算法,该算法枚举了时间的,这是上面需要的黑盒子。