繁体   English   中英

如何证明并行算法的上限/下限?

[英]How does one prove an upper/lower bound of a parallel algorithm?

假设斐波那契算法:

在此处输入图片说明

我们要求证明该算法的上限/下限。

我该如何进行?

更新

因此,我将解释自己所做的事情,并说明遇到的困难。

我不知道为什么,但是我决定在这里使用递归关系来查看在哪里可以获得最终结果。 但是我怀疑我的工作的原因是上限/下限是根据资源确定算法的“无限”。

因此,并行算法具有:

功(n)= W(n-1)+ W(n-2)+Θ(1)

在这一点上,我决定使用递归关系-不知道-

Work(n) = [W(n - 1) + W(n - 2) + Θ(1)] + W(n - 2) + Θ(1)
        = W(n - 2) + W(n - 2) + 2Θ(1)
        = 2W(n - 2) + 2
        = Stuck here

老实说,即使这样我也不知道。

给出了一个正式的解决方案: 在此处输入图片说明

但是我不太明白上面采取的步骤

我要说的是,处理器几乎没有问题,因为循环是一棵树,并且该树的节点数是指数的。 这些节点表示在每个步骤中必须完成的合并。 因此,即使处理器数量是无限的,它也无助于解决这种重复问题,因为它们只能在最后一行中独立地计算某些东西,即W(1)和W(0)。

我仅在评论中看到提供了示例解决方案,并进行了部分解释:这里是一些进一步的“见解”:想法是扩大重复率,并寻找一种收集因素的方法。 在这里,他们以应用不等式的方式收集2:W(n-1)+ W(n-2)> = 2 W(n-2)。 因此,现在您有W(n)> = 2 W(n-2)。 我们多久减去2一次,直到右边有W(0)为止? n / 2次。 然后以Omega(2 ^(n / 2))下界结束。 您可以使用大致相同的方法来显示上限。

就像一个小小的注解,这些界限并不严格: 相关文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM