Fibonacci Heap - SJTUbasics.sjtu.edu.cn/.../2016-12-21-fibonacci-heap-Paradox.pdf2016/12/21  · Why...

Post on 09-Oct-2020

0 views 0 download

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