Fibonacci Heap Group Paradox December 21, 2016
Contents 1. Introduction 2. Operations 3. Why it called Fibonacci (the proof)
Priority Queue in Dijkstra
Fibonacci Heap Operation Binary Heap Fibonacci Heap Find-Min O (1) O (1) Insert O ( lg ( n )) O (1) Extract-Min O ( lg ( n )) O ( lg ( n )) Decrease-Key O ( lg ( n )) O (1) Merge O ( n ) O (1)
Structure root list minimum link a bunch of trees pointer
Insert Just add them into the root list
Extract-Min 1. extract the minimum X 2. add the children of X to the root list 3. consolidate (make the degree of nodes unique) 4. find the new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Amortized Analysis ◮ we pay one coin for every re-link operation. ◮ a coin takes O (1) time ◮ requirement : every root has a coin ◮ deposit a coin on new node when we insert it to meet the requirement ◮ we can use these coins during the consolidation, so consolidation costs no new coin ◮ Extract-Min only needs at most O ( max degree ) coins for re-linking children and finding new minimum
Note that one coin takes O (1) amortized cost Operation Coin Needed at most Amortized Cost Insert 2 O (1) Extract-Min (2 + 1) · maxdegree O ( lg ( n )) Lemma The maximum degree of nodes in a Fibonacci heap is O ( lg ( n ))
The Idea of Amortized Analysis Running Time Running Time ... ... ... ... insert insert insert insert insert insert insert insert extract-min extract-min
Decrease-Key 1. cut it to the root list 2. make the cascading cut
Coin Analysis Cut a node to root costs 2 coin, mark a node costs 2 coins. Operation Coin Needed at most Amortized Cost Insert 2 O (1) Extract-Min (2 + 1) · maxdegree O ( lg ( n )) Decrease-Key 4 O (1)
Delete 1. decrease it to −∞ 2. extract the minimum ◮ amortized cost is O (1) + O ( lg ( n )) = O ( lg ( n ))
Why it called Fibonacci Lemma : Bounding the Maximum Degree Let x be any node in a Fibonacci heap, and let k = x . degree . Then size ( x ) ≥ F k +2 Proof recall two lemmas about the Fibonacci number F k +2 ≤ φ k and F k = � k − 2 F i + 1 0 Let S k be the possible minimum size of any nodes of degree k , we can derive k − 2 � S k ≥ S i + 1 0 thus, S k ≥ F k +2
Why it called Fibonacci Lemma : Bounding the Maximum Degree Let x be any node in a Fibonacci heap, and let k = x . degree . Then size ( x ) ≥ F k +2 Proof recall two lemmas about the Fibonacci number F k +2 ≤ φ k and F k = � k − 2 F i + 1 0 Let S k be the possible minimum size of any nodes of degree k , we can derive k − 2 � S k ≥ S i + 1 0 thus, S k ≥ F k +2
Why it called Fibonacci Lemma : Bounding the Maximum Degree Let x be any node in a Fibonacci heap, and let k = x . degree . Then size ( x ) ≥ F k +2 Proof recall two lemmas about the Fibonacci number F k +2 ≤ φ k and F k = � k − 2 F i + 1 0 Let S k be the possible minimum size of any nodes of degree k , we can derive k − 2 � S k ≥ S i + 1 0 thus, S k ≥ F k +2
Recommend
More recommend