Fibonacci Heap Group Paradox December 21, 2016 Contents 1. - - PowerPoint PPT Presentation
Fibonacci Heap Group Paradox December 21, 2016 Contents 1. - - PowerPoint PPT Presentation
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 (
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 link a bunch of trees minimum 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
... ... ... ...
insert extract-min
Running Time Running Time
insert insert insert insert extract-min insert insert insert
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) ≥ Fk+2
Proof
recall two lemmas about the Fibonacci number Fk+2 ≤ φk and Fk = k−2 Fi + 1 Let Sk be the possible minimum size of any nodes of degree k, we can derive Sk ≥
k−2
- Si + 1
thus, Sk ≥ Fk+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) ≥ Fk+2
Proof
recall two lemmas about the Fibonacci number Fk+2 ≤ φk and Fk = k−2 Fi + 1 Let Sk be the possible minimum size of any nodes of degree k, we can derive Sk ≥
k−2
- Si + 1
thus, Sk ≥ Fk+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) ≥ Fk+2
Proof
recall two lemmas about the Fibonacci number Fk+2 ≤ φk and Fk = k−2 Fi + 1 Let Sk be the possible minimum size of any nodes of degree k, we can derive Sk ≥
k−2
- Si + 1