簡體   English   中英

斐波那契堆的潛在法攤銷分析

[英]Amortized Analysis of Fibonacci Heap with Potential Method

我正在嘗試使用潛在方法對斐波那契堆進行攤銷分析。 我正在努力理解 pop min / delete min 操作的分析。

在教程中,我可以找到限制“pop min”操作的攤銷復雜度,例如這個,教程作者將潛力設置為“phi(fib heap) = 根節點數 + 2 * 失敗者節點數”。 然后,他們分兩步分析 popmin 操作:

  1. 在第一步中,它刪除最小節點並將最小節點的子節點放在根列表中。 通過對樹的分析(不允許節點丟失超過一個子節點這一事實),您知道這將只需要 O(log n) 次操作。 這部分我理解。

  2. 在第二步中,您通過迭代合並所有相同大小的樹來執行清理。 對我來說,這就是分析變得混亂的地方:

在攤銷分析中,成本總是“實際成本+潛力變化”。 他們分析實際成本為 O(t + m + d) —— m 數字是合並的數量,d 數字是合並后的樹數,而 t 數字是合並之前的節點數當您對根列表進行線性掃描時進行清理。 電位的變化受 -m 以上的約束——根列表大小隨着合並次數的減少而減小。 t = m + d,所以操作是 O(m + d)。 到目前為止,我正在關注。

然后,在鏈接的教程中,他將電位變化添加到 O(m + d) 以獲得 O(m + d) - m = O(d) ......這沒有任何意義! 我相當肯定,根據大 O 的定義,這是不可能的。 盡管如此,這仍然是他對視頻中 popmin 操作的攤銷成本的理由。

任何人都可以通過 O(m + d) - m 來解釋他的意思,或者如果不是,則是一種分析斐波那契堆中的 popmin 操作以獲得 O(log n) 的攤銷運行時間的方法嗎?

我在 30 點 35 分左右的這段視頻中找到了答案。 他指出,您只需取隱藏在大 O 中的攤銷運算的所有常數的最大值,並將其乘以勢函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM