Introduction Fibonacci Heap Time Complexity...

51
Introduction Fibonacci Heap Time Complexity Analysis Fibonacci Heap Group Minus One Second December 6, 2016 Group Minus One Second Fibonacci Heap

Transcript of Introduction Fibonacci Heap Time Complexity...

Page 1: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Fibonacci Heap

Group Minus One Second

December 6, 2016

Group Minus One Second Fibonacci Heap

Page 2: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Outline

IntroductionMotivationPerformance Goal

Fibonacci HeapStructureRankInsertDelete MinDecrease Key

Time Complexity AnalysisAmortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Group Minus One Second Fibonacci Heap

Page 3: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

MotivationPerformance Goal

Motivation

I Design a data structure that supports the following operationsI Insert(x)I DeleteMin()I DecreaseKey(u, v)

12

57

3

15

2 9

21

30

Group Minus One Second Fibonacci Heap

Page 4: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

MotivationPerformance Goal

Motivation

I Design a data structure that supports the following operationsI Insert(x)I DeleteMin()I DecreaseKey(u, v)

12

57

3

15

2 9

21

30

Insert(10)

10

Group Minus One Second Fibonacci Heap

Page 5: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

MotivationPerformance Goal

Motivation

I Design a data structure that supports the following operationsI Insert(x)I DeleteMin()I DecreaseKey(u, v)

12

57

3

15

2 9

21

30

DeleteMin()

10

Group Minus One Second Fibonacci Heap

Page 6: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

MotivationPerformance Goal

Motivation

I Design a data structure that supports the following operationsI Insert(x)I DeleteMin()I DecreaseKey(u, v)

12

57

3

15

9

21

30

DecreaseKey(21, 17)

10

17

Group Minus One Second Fibonacci Heap

Page 7: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

MotivationPerformance Goal

Performance Goal

I Our performance goals of this data structureI Insert(x): O(1)I DeleteMin(): O(log n)I DecreaseKey(u, v): O(1)

Group Minus One Second Fibonacci Heap

Page 8: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Structure

I Fibonacci heap is essentially a set of heap-ordered trees.

17

24

30

26

46

35

23

7 3

18

52 41

44

39

roots

heap-ordered tree

Group Minus One Second Fibonacci Heap

Page 9: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Rank

I The rank of a tree in a Fibonacci heap is the number ofchildren of the root.

17 24

30 26 46

35

23 7 3

18 52 41

4439

rank = 1 rank = 2 rank = 0 rank = 0 rank = 3

Group Minus One Second Fibonacci Heap

Page 10: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Insert

I To insert a new value x into Fibonacci Heap H, simply createa new tree that contains only x and add it to H.

I Example: Insert(21)

17 24

30 26 46

35

23 7 3

18 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 11: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Insert

I To insert a new value x into Fibonacci Heap H, simply createa new tree that contains only x and add it to H.

I Example: Insert(21)

17 24

30 26 46

35

23 7 3

18 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 12: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I The minimum must be one of the roots.I But there can be too many(⌦(n)) roots!I Example: DeleteMin() for the heap below

17 24 23 7 32146

Group Minus One Second Fibonacci Heap

Page 13: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I We introduce consolidation, a process of merging trees of thesame rank.

17 24

30 26 46

35

23 7 3

18 52 41

4439

21

merge

Group Minus One Second Fibonacci Heap

Page 14: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I We introduce consolidation, a process of merging trees of thesame rank.

17 24

30 26 46

35

23

7 3

18 52 41

4439

21

merge

Group Minus One Second Fibonacci Heap

Page 15: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I We introduce consolidation, a process of merging trees of thesame rank.

17

24

30

26 46

35

23

7 3

18 52 41

4439

21

merge

Group Minus One Second Fibonacci Heap

Page 16: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I We introduce consolidation, a process of merging trees of thesame rank.

17 24

30 26 46

35

23

7 3

18 52 41

4439

21

merge

Group Minus One Second Fibonacci Heap

Page 17: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I We introduce consolidation, a process of merging trees of thesame rank.

17 24

30 26 46

35

23

7

3

18 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 18: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Delete Min

I After consolidation, we simply remove the minimum value andleave the remaining trees in the heap.

17 24

30 26 46

35

23

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 19: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I Case 1: we can finish the operation immediatelyI Example: decreaseKey(46, 36)

17 24

30 26 46

35

23

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 20: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I Case 1: we can finish the operation immediatelyI Example: decreaseKey(46, 36)

17 24

30 26 36

35

23

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 21: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I Case 2: we have to cut the whole subtree rooted at uI Example: DecreaseKey(26, 16)

17 24

30 26 46

35

23

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 22: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I Case 2: we have to cut the whole subtree rooted at uI Example: DecreaseKey(26, 16)

17 24

30 16 46

35

23

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 23: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I Case 2: we have to cut the whole subtree rooted at uI Example: DecreaseKey(26, 16)

17 24

30

16

46

3523

718 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 24: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key

I But wait! Under this strategy, something undesirable mighthappen.

I The example below shows that this strategy can hurt theperformance of DeleteMin operation.

I Example:

Group Minus One Second Fibonacci Heap

Page 25: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

One node is marked if it has lost one of its children.

Group Minus One Second Fibonacci Heap

Page 26: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 1: no violation of heap property, finish.

Group Minus One Second Fibonacci Heap

Page 27: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 2: simply remove the subtree and mark the parent node.

Group Minus One Second Fibonacci Heap

Page 28: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 2: simply remove the subtree and mark the parent node.

Group Minus One Second Fibonacci Heap

Page 29: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 2: simply remove the subtree and mark the parent node.

Group Minus One Second Fibonacci Heap

Page 30: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 3: recursively remove all subtrees whose parent is marked.

Group Minus One Second Fibonacci Heap

Page 31: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 3: recursively remove all subtrees whose parent is marked.

Group Minus One Second Fibonacci Heap

Page 32: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 3: recursively remove all subtrees whose parent is marked.

Group Minus One Second Fibonacci Heap

Page 33: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 3: recursively remove all subtrees whose parent is marked.

Group Minus One Second Fibonacci Heap

Page 34: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

StructureRankInsertDelete MinDecrease Key

Decrease Key with Marks

Case 3: recursively remove all subtrees whose parent is marked.

Group Minus One Second Fibonacci Heap

Page 35: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Amortized Analysis

I We need a new technique to analyze the time complexity ofFibonacci heap

I Consider the following question:I Drop: Dropping a single coin onto a table costs 1 unit of timeI Clean: Collecting each coin into a bag costs 1 unit of time.

Emptying the bag costs 1 unit of time.I Question: What is the amortized time complexity of Clean

operation?

Group Minus One Second Fibonacci Heap

Page 36: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Amortized Analysis

I Observation: A coin that is cleaned must have been droppedbefore.

I So why not prepay the cost of clean of each coin as the costof drop?

I Drop: Dropping a single coin onto a table costs 2 units oftime

I Clean: Collecting each coin into a bag costs no time.Emptying the bag costs 1 unit of time.

I The amortized time complexity of Clean operation is O(1).

Group Minus One Second Fibonacci Heap

Page 37: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Insert Complexity

I In addition to the cost of creating a tree($1), we also add amerge credit (a prepaid constant cost,$1) to each new tree.

I Since no other operations are needed, each Insert operationstill takes $2 = O(1) time.

17 24 23 7 32146

$1 $1 $1 $1 $1 $1 $1

Group Minus One Second Fibonacci Heap

Page 38: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I Recall that DeleteMin opeartion consists of two parts:I Consolidate the heap: for each rank i 2 [0, k], merge two

trees of the same rank i .I Linearly search for the minimum: traverse all k + 1 roots.I k is the largest rank in the heap.

I We will make and prove a few claims.

Group Minus One Second Fibonacci Heap

Page 39: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I Claim 1: Merge operations are free.I Proof: Their costs are paid by merge credits.

17 46

$1 $1

17

46

$1

The other $ 1 is usd to pay for the cost of merge

Group Minus One Second Fibonacci Heap

Page 40: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I Claim 2: Consolidation operations are of O(k) where k is thelargest rank.

I Proof: For each rank i 2 [0, k], consolidation calls merge togenerate new trees, which is free. So the only cost is the timeconsumed while travsering k + 1 ranks.

Group Minus One Second Fibonacci Heap

Page 41: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I Claim 3: Searching for minimum is of O(k) where k is thelargest rank.

I Proof: After consolidation there are at most k + 1 roots. Soa linear traversal will take O(k) time.

17 24

30 26 46

35

23

7

3

18 52 41

4439

21

Group Minus One Second Fibonacci Heap

Page 42: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I Combining all three claims, we can see that the complexity ofDeleteMin is O(k) where k is the largest rank.

I One last question: why k = O(log n)?I This is equivalent to ”what is the smallest number of nodes in

a tree of rank i?”

Group Minus One Second Fibonacci Heap

Page 43: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

Some results for di↵erent ranks. Let Si be the smallest number ofnodes in a tree of rank i . We can see that

S0 = 1, S1 = 2, S2 = 3, S3 = 5, S4 = 8, ...

rank = 0

Group Minus One Second Fibonacci Heap

Page 44: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

Some results for di↵erent ranks. Let Si be the smallest number ofnodes in a tree of rank i . We can see that

S0 = 1, S1 = 2, S2 = 3, S3 = 5, S4 = 8, ...

rank = 1

Group Minus One Second Fibonacci Heap

Page 45: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

Some results for di↵erent ranks. Let Si be the smallest number ofnodes in a tree of rank i . We can see that

S0 = 1, S1 = 2, S2 = 3, S3 = 5, S4 = 8, ...

rank = 2

Group Minus One Second Fibonacci Heap

Page 46: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

Some results for di↵erent ranks. Let Si be the smallest number ofnodes in a tree of rank i . We can see that

S0 = 1, S1 = 2, S2 = 3, S3 = 5, S4 = 8, ...

rank = 3

Group Minus One Second Fibonacci Heap

Page 47: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

Some results for di↵erent ranks. Let Si be the smallest number ofnodes in a tree of rank i . We can see that

S0 = 1, S1 = 2, S2 = 3, S3 = 5, S4 = 8, ...

rank = 4

Group Minus One Second Fibonacci Heap

Page 48: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Delete Min Complexity

I We can get a recurrence relation from the above observation:

Si = Si�1 + Si�2, S0 = 1, S1 = 2

which is exactly the Fibonacci sequence, and hence the heap’sname.

I Since Si � c i where c = 1+p5

2 , the number of nodes in eachtree grows expoentially with the tree’s rank.

I Therefore, there can be at most O(log n) ranks in a Fibonacciheap.

Group Minus One Second Fibonacci Heap

Page 49: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

IntroductionFibonacci Heap

Time Complexity Analysis

Amortized AnalysisInsert ComplexityDelete Min ComplexityDecrease Key Complexity

Decrease Key Complexity

I By similar argument (using the amortized analysis), we canprove that the time complexity of DecreaseKey(u, v) isO(1).

I We will omit this part due to time limit.

I You can refer to the lecture note on the course website.

Group Minus One Second Fibonacci Heap

Page 50: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

Q& A

Page 51: Introduction Fibonacci Heap Time Complexity Analysisbasics.sjtu.edu.cn/.../2016-12-08-fibonacci-heaps-Minus-One-Second.… · Fibonacci Heap Time Complexity Analysis Amortized Analysis

Thankyou