【问题标题】:Efficiently finding all points dominated by a point in 2D有效地找到由 2D 中的一个点支配的所有点
【发布时间】:2016-11-11 15:51:48
【问题描述】:

在 OCW Advanced Data Structures course 中,E. Demaine 教授提到了一种数据结构,它能够找到由查询点(b2、b3 sub>) 使用 O(n) 空间和 O(k) 时间,前提是已经完成对点 b3 的搜索,其中 k 是输出的大小。

解决方案是将上述问题转化为光线刺伤问题,并使用类似于分数级联的技术,如下面image from the lecture notes所示:

虽然这个概念本身很直观,但实现实际的数据结构并不简单。

Chazelle 在一篇论文中将此描述为Filtering Search (pp712)

我想查找描述和解释此数据结构和算法的其他文献或答案(可能带有伪代码和更多图像,重点是实现)。

此外,我还想进一步了解这种结构是否可以以非“静态”的方式实现。也就是说,我希望能够尽可能高效地从结构中插入和删除点。

【问题讨论】:

  • 什么是“主宰”?
  • 如果(非正式地)(a_2,a_3)可以在点(b_2,b_3)左下角的象限中找到,则点(a_2,a_3)由(b_2,b_3)支配.更正式地说,如果 a_2

标签: algorithm data-structures computational-geometry


【解决方案1】:

"Computational Geometry: Algorithms and Applications" 这本书涵盖了此类问题的数据结构。每章都有一个很好的部分描述了在哪里学习更多,包括更复杂的结构来回答书中未涉及的相同问题。图表够多,伪代码不多。

可以使用“动态数据结构的设计”一书中讨论的技术来动态化许多类似的结构。 Jeff Erickson has some nice notes on the topic. 讨论使用分数级联是Cache-Oblivious Streaming B-trees" - 请参阅有关“缓存忽略前瞻数组”的部分。

【讨论】:

  • 谢谢,+1 有用的链接!通读一遍肯定需要很多时间——而且我还在阅读。我特别喜欢描述另一种处理可分解搜索问题的方法的注释。我不确定我是否遇到了上面描述的确切问题(尽管我可能错过了)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 2018-07-16
  • 2019-06-06
相关资源
最近更新 更多