fibonacci heap - sjtudominik/teaching/2016-cs217/...2016/12/21 · let x be any node in a fibonacci...
TRANSCRIPT
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 listlink 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
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-linking children and finding new minimum
Amortized Analysis
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-linking children and finding new minimum
Amortized Analysis
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-linking children and finding new minimum
Amortized Analysis
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-linking children and finding new minimum
Amortized Analysis
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-linking children and finding new minimum
Amortized Analysis
I we pay one coin for every re-link operation.
I a coin takes O(1) time
I requirement : every root has a coin
I deposit a coin on new node when we insert it to meet therequirement
I we can use these coins during the consolidation,so consolidation costs no new coin
I Extract-Min only needs at most O(max degree) coins forre-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))
LemmaThe 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-mininsert 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
I amortized cost is O(1) + O(lg(n)) = O(lg(n))
Why it called Fibonacci
Lemma : Bounding the Maximum DegreeLet x be any node in a Fibonacci heap, and let k = x .degree.Then size(x) ≥ Fk+2
Proofrecall two lemmas about the Fibonacci number
Fk+2 ≤ φk and Fk =∑k−2
0 Fi + 1Let Sk be the possible minimum size of any nodes of degree k ,
we can derive
Sk ≥k−2∑0
Si + 1
thus, Sk ≥ Fk+2
Why it called Fibonacci
Lemma : Bounding the Maximum DegreeLet x be any node in a Fibonacci heap, and let k = x .degree.Then size(x) ≥ Fk+2
Proofrecall two lemmas about the Fibonacci number
Fk+2 ≤ φk and Fk =∑k−2
0 Fi + 1Let Sk be the possible minimum size of any nodes of degree k ,
we can derive
Sk ≥k−2∑0
Si + 1
thus, Sk ≥ Fk+2
Why it called Fibonacci
Lemma : Bounding the Maximum DegreeLet x be any node in a Fibonacci heap, and let k = x .degree.Then size(x) ≥ Fk+2
Proofrecall two lemmas about the Fibonacci number
Fk+2 ≤ φk and Fk =∑k−2
0 Fi + 1Let Sk be the possible minimum size of any nodes of degree k ,
we can derive
Sk ≥k−2∑0
Si + 1
thus, Sk ≥ Fk+2