【问题标题】:QuickHull worst caseQuickHull 最坏情况
【发布时间】:2013-12-25 00:24:27
【问题描述】:

QHull(可能还有QuickHull 的其他良好实现)在许多情况下运行得非常好而且很快。然而,理论上我们知道它的最坏情况可能是 O(n^2)。在实践中,我没有看到 QHull 效果不佳的任何具有多维度(即 20 或 100)的数值示例。

您是否知道 QHull 工作不佳或给出错误结果的数值示例,或者任何表明它不能在这里应用的情况。

【问题讨论】:

  • 您的意思是“许多数据点”,对吗? AFAIK quickhull 仅适用于二维数据。 – 根据维基百科,最坏的情况是 O(n²),O(n log n) 是平均值。
  • 维基百科:“在高度对称或点位于圆周上的情况下,处理通常会变慢”
  • 无论哪种方式,许多数据点和/或许多维度。实际上,最坏的情况是 O(n^2) 是正确的。谢谢。我编辑了问题。

标签: matlab convex-hull numerical-computing qhull


【解决方案1】:

对于多维情况,您必须概括 A. Donda 所说的:为 P 中的每个点 p 生成一组具有 norm(p)==1 的点 P。凸包是 P(除非两个点相同)并且会导致~O(n^2)的糟糕运行时间

对于 2D 案例,这将选择圆上的点,对于球体上的 3D 点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多