[英]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.