【问题标题】:Median of median algorithms understanding中位数算法理解的中位数
【发布时间】:2012-01-18 03:26:20
【问题描述】:

我在网上搜索并访问了中位数算法的 wiki 页面。但似乎找不到对我的问题的明确陈述:

如果一个人有一个非常大的整数列表(大小为 TB),并且希望以分布式方式找到该列表的中位数,那么会将列表分解为不同大小的子列表(或相等并不真的问题),然后继续计算那些较小子列表的中位数,然后计算这些中位数的中位数导致原始大列表的中位数?

此外,对于任何第 k 个统计数据,此陈述是否也正确?我会对这个领域的研究等链接感兴趣。

【问题讨论】:

  • 为什么这个问题被否决了?
  • 这个问题对于即将到来的Computer Science Stack Exchange 来说是完美的。所以,如果你想有一个地方来回答这样的问题,请继续帮助这个提案起飞!

标签: algorithm computer-science complexity-theory median-of-medians


【解决方案1】:

您的问题的答案是否定的。

如果您想了解如何在并行设置中实际选择第 k 阶统计信息(当然包括中位数)(分布式设置当然没有真正的不同),看看在最近的这篇论文中,我提出了一种新算法,改进了之前用于并行选择的最先进算法:

Deterministic parallel selection algorithms on coarse-grained multicomputers

在这里,我们使用两个加权 3 中值作为枢轴,并使用五向分区围绕这些枢轴进行分区。我们还使用 MPI 实现并测试了该算法。考虑到这是一种利用最坏情况 O(n) 选择算法的确定性算法,结果非常好。使用随机 O(n) QuickSelect 算法提供了一种极其快速的并行算法。

【讨论】:

  • 您是否有指向不需要付款的网站的链接?因为我真的很想读你的论文。
【解决方案2】:

如果一个人有一个非常大的整数列表(大小为 TB),并且希望以分布式方式找到该列表的中位数,那么会将列表分解为不同大小的子列表(或实际上并不相等)问题),然后继续计算那些较小的子列表的中位数,然后计算这些中位数的中位数结果是原始大列表的中位数?

没有。整个列表的实际中位数不一定是任何子列表的中位数。

Median-of-medians 可以为您提供一个很好的快速选择枢轴选择,因为它比随机选择的元素更接近实际中值,但您必须执行其余的快速选择算法才能找到实际中值更大的列表。

【讨论】:

  • 所以快速选择部分必须是在每个节点上运行的计算,我的绊脚石是如果可能的话,应该如何合并结果。
猜你喜欢
  • 2012-09-14
  • 1970-01-01
  • 2012-03-18
  • 2019-02-26
  • 2016-03-10
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2021-11-14
相关资源
最近更新 更多