cs4311 design and analysis of algorithmswkhon/algo09/lectures/lecture18.pdfdesign and analysis of...

29
1 CS4311 Design and Analysis of Algorithms Lecture 18: Fibonacci Heap I

Upload: others

Post on 19-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

1

CS4311Design and Analysis of

Algorithms

Lecture 18: Fibonacci Heap I

Page 2: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

2

About this lecture

•Introduce Fibonacci Heap•another example of mergeable heap•no good worst-case guarantee for any

operation (except Insert/Make-Heap)

•excellent amortized cost to performeach operation

Page 3: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

3

Fibonacci Heap•Like binomial heap, Fibonacci heap

consists of a set of min-heap orderedcomponent trees

•However, unlike binomial heap, it has• no limit on #trees (up to O(n)), and• no limit on height of a tree (up to O(n))

Page 4: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

4

Fibonacci Heap•Consequently,

Find-Min, Extract-Min, Union,Decrease-Key, Delete

all have worst-case O(n) running time

•However, in the amortized sense, eachoperation performs very quickly …

Page 5: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

5

Comparison of Three Heaps

(log n)

(log n)

(log n)

(log n)

(log n)

(log n)

(1)

Binomial(worst-case)

(1)(1)Make-Heap

(1)(1)Find-Min

(log n)(log n)Delete

(1)(log n)Insert

(1)(n)Union

(1)(log n)Decrease-Key

(log n)(log n)Extract-Min

Fibonacci(amortized)

Binary(worst-case)

Page 6: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

6

Fibonacci Heap•If we never perform Decrease-Key or

Delete, each component tree of Fibonacciheap will be an unordered binomial tree•An order-k unordered binomial tree Uk

is a tree whose root is connected toUk-1, Uk-2, …, U0, in any order

in this case, height = O(log n)

•In general, the tree can be very skew

Page 7: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

7

Unordered Binomial Tree

U0 U1 U2 U2

U3 U3 U3

Page 8: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

8

Properties of Uk

Lemma: For an unordered binomial tree Uk,1. There are 2k nodes2. height = k3. deg(root) = k ; deg(other node) k4. Children of root are Uk-1, Uk-2, …, U0

in any order5. Exactly C(k,i) nodes at depth i

How to prove? (By induction on k)

Page 9: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

9

Potential Function•To help the running time analysis, we may

mark a tree node from time to time• Roughly, we mark a node if it has lost a child

•For a heap H, lett(H) = #trees, m(H) = #marked nodes

•The potential function for H is simply:

(H) = t(H) + 2 m(H)

[ Here, we assume a unit of potential is large enoughto pay for any constant amount of work ]

Page 10: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

10

Remark•Let i = potential after ith operation 0 = 0, i 0 for all iSo, if each operation sets its amortizedcost i by the formula (i = ci + i - i-1) total amortized total actual

•We claim that we can compute MaxDeg(n),which can bound max degree of any node.Also, MaxDeg(n) = O(log n) This claim will be proven later

Page 11: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

11

Fibonacci Heap Operation

•Make-Heap( ):

It just creates an empty heap no trees and no nodes at all !! amortized cost = O(1)

Page 12: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

12

Fibonacci Heap Operation

•Find-Min(H):

The heap H always maintain a pointermin(H) which points at the node withminimum key actual cost = 1 no change in t(H) and m(H) amortized cost = O(1)

Page 13: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

13

Fibonacci Heap Operation

•Insert(H,x,k):

It adds a tree with a single node to H,storing the item x with key kAlso, update min(H) if necessary t(H) increased by 1, m(H) unchanged amortized cost = 2 + 1 = O(1)

Add a node, andupdate min(H)

Page 14: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

14

Before Insertion

8

1325

15

19

21

32 16

52

12H

15

?? Marked node

min(H)

Insertion (Example)

Page 15: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

15

Inserting an item with key = 17

8

1325

15

19

21

32 16

52

H

15

?? Marked node

min(H)

Insertion (Example)

17

12

Page 16: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

16

Inserting an item with key = 6

8

1325

15

19

21

32 16

52

H

15

?? Marked node

min(H)

Insertion (Example)

17 6

Question: What will happenafter k consecutive Insert?

12

Page 17: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

17

Fibonacci Heap Operation•Union(H1,H2):

It puts the trees in H1 and H2 together,forming a new heap H•does not merge any trees into oneSet min(H) accordingly t(H) and m(H) unchanged amortized cost = 2 + 0 = O(1)

Put trees together,and set min(H)

Page 18: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

18

Before Union

8

1325

15

19

21

32 16

52

H1

15

min(H1)

Union (Example)

12

3

13

H214

29 min(H2)

Page 19: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

19

After Union

8

1325

15

19

21

32 16

52

H

15

Union (Example)

12

3

13

14

29min(H)

Page 20: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

20

Fibonacci Heap Operations• Insert and Union are both very lazy…

• Extract-Min is a hardworking operation It reduces the #trees by joining

them together

•What if Extract-Min is also lazy ??•a sequence of n/2 Insert and n/2

Extract-Min has worst-case O(n2) time

Page 21: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

21

Extract-Min•Two major steps:

1. Remove node with minimum key itschildren form roots of new trees in H

2. Consolidation: Repeatedly joiningroots of two trees with same degree in the end, the roots of any two

trees do not have same degree** During consolidation, if a marked node

receives a parent we unmark the node

Page 22: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

22

Before Extract-Min

8

1325

15

19

21

32 16

52

H

15

?? Marked node

min(H)

Extract-Min (Example)

17

12

Page 23: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

23

Step 1: Remove node with min-key

1325

15

19

21

32 16

52

H

15

?? Marked node

Extract-Min (Example)

17

12

Page 24: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

24

Step 2: Consolidation

1325

15

19

21

32 16

52

H

15

?? Marked node

Extract-Min (Example)

17

12

Page 25: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

25

Step 2: Consolidation

13

25

15

19

21

32 16

52

H

15

?? Marked node

Extract-Min (Example)

17

12

Page 26: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

26

Step 2: Consolidation

13

25

15

19

21

32 16

52

H

15

?? Marked node

Extract-Min (Example)

17

12

Page 27: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

27

Step 3: After consolidation, update min(H)

13

25

15

19

21

32 16

52

H

15

?? Marked node

Extract-Min (Example)

17

12 min(H)

Page 28: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

28

More on Consolidation•The consolidation step will examine each

tree in H one by one, in arbitrary order•To facilitate the step, we use an array of

size MaxDeg(n)[ Recall: MaxDeg(n) max deg of a node in final heap ]

•At any time, we keep track of at mostone tree of a particular degree If there are two, we join their roots

Page 29: CS4311 Design and Analysis of Algorithmswkhon/algo09/lectures/lecture18.pdfDesign and Analysis of Algorithms Lecture 18: Fibonacci Heap I. 2 About this lecture •Introduce Fibonacci

29

Amortized Cost•Let H’denote the heap just before the

Extract-Min operation actual cost: t(H’) + MaxDeg(n)

potential before: t(H’) + 2m(H’)potential after:

at most MaxDeg(n) + 1 + 2m(H’)[ since #trees MaxDeg(n) +1, and no new marked nodes ]

amortized cost 2MaxDeg(n) + 1 = O(log n)