Lecture X Fibonacci Heaps

Slides:



Advertisements
Similar presentations
Chapter 13. Red-Black Trees
Advertisements

Fibonacci Heaps Especially desirable when the number of calls to Extract-Min & Delete is small (note that all other operations run in O(1) This arises.
Fibonacci Heap BH&FH. Why BH&FH -- 程式目的 MinPQ Mergeable MinPQ MaxPQ DEPQ Min-LeftistMin-Skew Min-B-Heap Min-F-Heap Min Heap DeapMinMax Symmetric Max Data.
Chapter 4: Trees Part II - AVL Tree
Advanced Data structure
Jan Binary Search Trees What is a search binary tree? Inorder search of a binary search tree Find Min & Max Predecessor and successor BST insertion.
Introduction to Algorithms Jiafen Liu Sept
ALGORITHMS THIRD YEAR BANHA UNIVERSITY FACULTY OF COMPUTERS AND INFORMATIC Lecture six Dr. Hamdy M. Mousa.
Fibonacci Heaps CS 252: Algorithms Geetika Tewari 252a-al Smith College December, 2000.
CS 473Lecture X1 CS473-Algorithms I Lecture X Augmenting Data Structures.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 10.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 12.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 11.
Analysis of Algorithms CS 477/677 Red-Black Trees Instructor: George Bebis (Chapter 14)
Dijkstra/Prim 1 make-heap |V| insert |V| delete-min |E| decrease-key Priority Queues make-heap Operation insert find-min delete-min union decrease-key.
Fibonacci Heaps. Single Source All Destinations Shortest Paths
Fibonacci Heap.
Binomial Heaps Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University.
Princeton University COS 423 Theory of Algorithms Spring 2002 Kevin Wayne Fibonacci Heaps These lecture slides are adapted from CLRS, Chapter 20.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 11 Tuesday, 12/4/01 Advanced Data Structures Chapters.
Princeton University COS 423 Theory of Algorithms Spring 2002 Kevin Wayne Binary and Binomial Heaps These lecture slides are adapted from CLRS, Chapters.
Design & Analysis of Algorithms Unit 2 ADVANCED DATA STRUCTURE.
1 Binomial heaps, Fibonacci heaps, and applications.
PRIORITY QUEUES (HEAPS). Queues are a standard mechanism for ordering tasks on a first-come, first-served basis However, some tasks may be more important.
Binomial Heaps Melalite Ayenew Dec 14, 2000.
Chapter 9 Heap Structures
Franklin University 1 COMP 620 Algorithm Analysis Module 3: Advanced Data Structures Trees, Heap, Binomial Heap, Fibonacci Heap.
Binomial Heaps Referred to “MIT Press: Introduction to Algorithms 2 nd Edition”
Chapter 21 Priority Queue: Binary Heap Saurav Karmakar.
CS 473Lecture X1 CS473-Algorithms I Lecture X1 Properties of Ranks.
2IL50 Data Structures Fall 2015 Lecture 7: Binary Search Trees.
CS 473Lecture X1 CS473-Algorithms Lecture BINOMIAL HEAPS.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 9.
Chapter 19: Fibonacci Heap Many of the slides are from Prof. Leong Hon Wai’s resources at National University of Singapore.
1 Binomial Tree Binomial tree. n Recursive definition: B k-1 B0B0 BkBk B0B0 B1B1 B2B2 B3B3 B4B4.
CMSC 341 Binomial Queues and Fibonacci Heaps. Basic Heap Operations OpBinary Heap Leftist Heap Binomial Queue Fibonacci Heap insertO(lgN) deleteMinO(lgN)
Analysis of Algorithms CS 477/677 Red-Black Trees Instructor: George Bebis (Chapter 14)
Fibonacci Heaps.
Fibonacci Heaps. Analysis FibonacciAnalysis.ppt Video  iew/cop5536sahni
1 Chapter 6 Heapsort. 2 About this lecture Introduce Heap – Shape Property and Heap Property – Heap Operations Heapsort: Use Heap to Sort Fixing heap.
1 Fibonacci heaps: idea List of multiway trees which are all heap-ordered. Definition: A tree is called heap-ordered if the key of each node is greater.
Data structures Binomial Heaps - Binomial Trees B0B0 BkBk B k-1.
Fibonacci Heap. p2. Procedure Binary heap (worst-case) Fibonacci heap (amortized) MAKE-HEAP  (1) INSERT  (lg n)  (1) MINIMUM  (1) EXTRACT-MIN  (lg.
Fibonacci Heap Fibonacci heapshave better asymptotic time bounds than binary heaps for the INSERT, UNION, and DECREASE-KEY operations, and they.
DATA STRUCTURES II UNIT 4 – Heaps SUYASH BHARDWAJ FACULTY OF ENGINEERING AND TECHNOLOGY GURUKUL KANGRI VISHWAVIDYALAYA, HARIDWAR.
Fibonacci Heaps. Fibonacci Binary insert O(1) O(log(n)) find O(1) N/A union O(1) N/A minimum O(1) O(1) decrease key O(1) O(log(n)) delete O(log(n) O(log(n))
Analysis of Algorithms
Binary Search Trees What is a binary search tree?
Data Structures Binomial Heaps Fibonacci Heaps Haim Kaplan & Uri Zwick
Binomial heaps, Fibonacci heaps, and applications
Binomial Heaps Chapter 19.
Priority Queues MakeQueue create new empty queue
Red-Black Trees.
CMSC 341 (Data Structures)
Lecture 29 Heaps Chapter 12 of textbook Concept of heaps Binary heaps
Binomial Heap.
Chapter 20 Binomial Heaps
Fibonacci Heap.
ערמות בינומיות ופיבונצ'י
CS 583 Analysis of Algorithms
Binary Search Trees (13.1/12.1)
CS 583 Analysis of Algorithms
CS 583 Analysis of Algorithms
21장. Fibonacci Heaps 숭실대학교 인공지능 연구실 석사 2학기 김완섭.
Binomial heaps, Fibonacci heaps, and applications
Fibonacci Heaps.
Binomial heaps, Fibonacci heaps, and applications
Analysis of Algorithms CS 477/677
Chapter 12&13: Binary Search Trees (BSTs)
Red-Black Trees CS302 Data Structures
Presentation transcript:

Lecture X Fibonacci Heaps CSXXX-Algorithms X Lecture X Fibonacci Heaps

Fibonacci Heaps • Binomial heaps support the mergeable heap operations (INSERT, MINIMUM, EXTRACT_MIN, UNION plus, DECREASE_KEY and DELETE) in O(lgn) worst-case time. Fibonacci heaps support the mergeable heap operations that do not involve deleting an element in O(1) amortized time. CS XXX Lecture X

Fibonacci Heaps Fibonacci heaps are especially desirable when the number of EXTRACT-MIN and DELETE operations is small relative to the number of other operations. Fibonacci heaps are loosely based on binomial heaps. A collection of trees if neither DECREASE-KEY nor DELETE is ever invoked. Each tree is like a binomial tree. CS XXX Lecture X

Fibonacci Heaps Fibonacci heaps differ from binomial-heaps, however, in that they have more more relaxed structure allowing for improved asymptotic time bounds work that maintains the structure is delayed until it is convenient to perform. Like a binomial heap, a fibonacci heap is a collection of heap-ordered trees however, trees are not constrained to be binomial trees. Trees within fibonacci heaps are rooted but unordered. CS XXX Lecture X

Structure of Fibonacci Heaps Each node x contains: A pointer p[x]to its parent A pointer child[x] to one of its children The children of x are linked together in a circular, doubly-linked list which is called the child-list. CS XXX Lecture X

Structure of Fibonacci Heaps Each child y in a child list has pointers left[y] & right[y] that point to y’s left & right siblings respectively. If y is an only child, then left[y] = right[y] = y. CS XXX Lecture X

Structure of Fibonacci Heaps The roots of all trees are also linked together using their left & right pointers into a circular, doubly-linked list which is called the root list. CS XXX Lecture X

Structure of Fibonacci Heaps Circular, doubly-linked lists have two advantages for use in fib-heaps: we can remove a node in O(1) time given two such lists, we can concatenate them in O(1) time. CS XXX Lecture X

Structure of Fibonacci Heaps Two other fields in each node x degreee[x]: the number of children in the child list of x mark[x]: a boolean-valued field indicates whether node x has lost a child since the last time x was made the child of another one newly created nodes are unmarked A node x becomes unmarked whenever it is made the child of another node CS XXX Lecture X

Structure of Fibonacci Heaps CS XXX Lecture X

Structure of Fibonacci Heaps CS XXX Lecture X

Concetenation of Two Circular, Doubly – Linked Lists CS XXX Lecture X

Concetenation of Two Circular, Doubly – Linked Lists CS XXX Lecture X

Concetenation of Two Circular, Doubly – Linked Lists CONCATENATE (H1, H2) x ← left[min[H1]] y ← left[min[H2]] right[x] ← min[H2] left[min[H2]] ← x right[y] ← min[H1] left[min[H1]] ← y end Running time is O(1) CS XXX Lecture X

the initial potential = 0 Potential Function A given fibonacci heap H t(H): the number of trees in root list of H m(H): the number of marked nodes in H The potential of fibonacci heap H is: Φ(H) = t(H) + 2 m(H) A fibonacci heap application begins with an empty heap: the initial potential = 0 The potential is non-negative at all subsequent times. CS XXX Lecture X

Maximum Degree We will assume that there is aknown upper bound D(n) on the maximum degree of any node in an n node heap If only mergeable-heap operations are supported If decrease key & delete operations are supported D(n) = O(lg n) CS XXX Lecture X

Mergeable Heap Operations MAKE-HEAP, INSERT, MINIMUM, EXTRACT-MIN, UNION If only these operations are to be supported, each fibonacci-heap is a collection of unordered binomial trees. CS XXX Lecture X

Mergeable Heap Operations An unordered binomial tree Uk is like a binomial tree defined recursively: U0 consists of a single node Uk consists of two Uk-1’s for which the root of one is made into any child of the root of the other CS XXX Lecture X

Mergeable Heap Operations Lemma which gives properties of binomial trees holds for unordered binomial trees as well but with the following variation on property 4 Property 4’: For the unordered binomial tree Uk: The root has degree k > the degree of any other node The children of the root are the roots of subtrees U0, U1, ..........,Uk-1 in some order CS XXX Lecture X

Mergeable Heap Operations The key idea in the mergeable heap operations on fibonacci heaps is to delay work as long as possible. Performance trade-off among implementations of the various operations: If the number of trees is small we can quickly determine the new min node during EXTRACT-MIN However we pay a price for ensuring that the number of trees is small CS XXX Lecture X

Mergeable Heap Operations However we pay a price for ensuring that the number of trees is small However it can take up to Ω(lg n) time to insert a node into a binomial heap or to unite two binomial heaps We do not consolidate trees in a fibonacci heap when we insert a new node or unite two heaps We delay the consolidation for the EXTRACT-MIN operation when we really need to find the new minimum node. CS XXX Lecture X

Mergeable Heap Operations Creating a new fibonacci heap: MAKE-FIB-HEAP procedure allocates and returns the fibonacci heap object H Where n[H] = 0 and min[H] = NIL There are no trees in the heap because t(H) = 0 and m(H) = 0 => Φ(H) = 0 the amortized cost = O(1) = the actual cost CS XXX Lecture X

Mergeable Heap Operations Inserting a node FIB-HEAP-INSERT(H, x) degree[x] ← 0 p[x] ← NIL child[x] ← NIL left[x] ← x right[x] ← x mark[x] ← FALSE concatenate the root list containing x with root list H if key[x] < key[min[H]] then min[H] ← x endif n[H] ← n[H] + 1 end CS XXX Lecture X

Mergeable Heap Operations CS XXX Lecture X

Mergeable Heap Operations CS XXX Lecture X

Mergeable Heap Operations t(H’) = t(H) + 1 Increase in potential: Φ(H’) - Φ(H) = [t(H) + 1 + 2m(H)] – [t(H) + 2m(H)] = 1 The actual cost = O(1) The amortized cost = O(1) + 1 = O(1) CS XXX Lecture X

Mergeable Heap Operations Finding the minimum node: Given by pointer min[H] actual cost = O(1) amortized cost = actual cost = O(1) since the potential of H does not change CS XXX Lecture X

Uniting Two Fibonacci Heaps FIB-HEAP-UNION(H1, H2) H = MAKE-FIB-HEAP() if key[min[H1]] ≤ key[min[H2]] then min[H] ← min[H1] else min[H] ← min[H2] endif concatenate the root lists of H1 and H2 n[H] ← n[H1] + n[H2] Free the objects H1 and H2 return H end CS XXX Lecture X

Uniting Two Fibonacci Heaps No consolidation of trees Actual cost = O(1) Change in potential Φ(H) – (Φ(H1) + Φ(H2)) = = (t(H) + 2m(H)) – ((t(H1) + 2m(H1)) + (t(H2) + 2m(H2))) = 0 since t(H) = t(H1) + t(H2) m(H) = m(H1) + m(H2) Therefore amortized cost = actual cost = O(1) CS XXX Lecture X

Extracting the Minimum Node The most complicated operation the delayed work of consolidating the trees in the root list occurs FIB-HEAP-EXTRACT-MIN(H) z = min[H] for each child x of z add x to the root list of H p[x] ← NIL endfor remove z from the root list of H min[H] ← right[z] CONSOLIDATE(H) end CS XXX Lecture X

Extracting the Minimum Node Repeatedly execute the following steps until every root in the root list has a distinct degree value (1) Find two roots x and y in the root list with the same degree where key[x] ≤ key[y] (2) Link y to x : Remove y from the root list and make y a child of x This operation is performed by procedure FIB-HEAP-LINK Procedure CONSOLIDATE uses an auxiliary pointer array A[0......D(n)] A[i] = y : y is currently a root with degree[y] = i CS XXX Lecture X

Extracting the Minimum Node CONSOLIDATE(H) for i← 0 to D(n) do A[i] ← N IL endfor for each node w in the root list of H do x ← w d ← degree[x] while A[d] ≠ NIL do y ← A[d] if key[x] > key[y] then exchange x ↔ y endif FIB-HEAP-LINK(H,y,x) A[d] ← NIL d ← d + 1 endwhile A[d] ← x min[H] ← +∞ for i ← 0 to D(n[H]) do if A[i] ≠ NIL then add A[i] to the root list of H if key[A[i]] < key[min[H]] then min[H] ← A[i] endif endfor end CS XXX Lecture X

Extracting the Minimum Node FIB-HEAP-LINK(H,y,x) remove y from the root list of H make y a child of x, incrementing degree[x] mark[y] ← FALSE end CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Extracting the Minimum Node CS XXX Lecture X

Analysis of the FIB-HEAP-EXTRACT-MIN Procedure If all trees in the fib-heap are unordered binomial trees before the execution of the EXTRACT-MIN operation then they are all unordered binomial trees afterward. There are two ways in which trees are changed: (1) each child of the extracted root node becomes a child, each new tree is itself an unordered binomial tree. (2) trees are linked by FIB-HEAP-LINK procedure only if they have the same degree hence Uk is linked to Uk to form a Uk+1 CS XXX Lecture X

Complexity Analysis of the FIB-HEAP-EXTRACT-MIN Procedure Actual Cost 1-st for loop: Contributes O(D(n)) 3-rd for loop: Contributes O(D(n)) 2-nd for loop: Size of the root-list upon calling CONSOLIDATE is at most: D(n) + t(H) - 1 D(n): upper bound on the number of children of the extracted node t(H) – 1: original t(H) root list nodes – the extracted node CS XXX Lecture X

Complexity Analysis of the FIB-HEAP-EXTRACT-MIN Procedure Each iteration of the inner while-loop links one root to another thus reducing the size of the root list by 1 Therefore the total amount work performed in the 2-nd for loop is at most proportional to D(n) + t(H) Thus, the total actual cost is O(D(n) + t(H)) CS XXX Lecture X

Complexity Analysis of the FIB-HEAP-EXTRACT-MIN Procedure Amortized Cost Potential before: t(H) + 2m(H) Potential after: at most (D(n) + 1)+2m(H) since at most D(n)+1 roots remain & no nodes marked Amortized cost = O(D(n) + t(H)) + [(D(n) + 1) + 2m(H)] – [t(H) + 2m(H)] = O(D(n)) + O(t(H)) – D(n) – t(H) = O(D(n)) CS XXX Lecture X

Complexity Analysis of the FIB-HEAP-EXTRACT-MIN Procedure The cost of performing each link is paid for by the reduction in potential due to the link reducing the number of roots by one CS XXX Lecture X

EXTRACT-MIN Procedure for Fibonacci Heaps FIB-HEAP-EXTRACT-MIN (H) z  min[ H ] if z ≠ NIL then for each child x of z do add x to the root list of H p [ x ]  NIL endfor remove z from the root list of H if right [ z ] = z then min [ H ]  NIL else min [ H ]  right [ z ] CONSOLIDATE (H) endif n [ H ]  n [ H ] – 1 return z end CS XXX Lecture X

EXTRACT-MIN Procedure for Fibonacci Heaps FIB-HEAP-LINK ( H, y, x ) remove y from the root list of H make y a child of x, incrementing degree [x] mark [ y ]  FALSE end CS XXX Lecture X

EXTRACT-MIN Procedure for Fibonacci Heaps CONSOLIDATE ( H ) for i  0 to D ( n ( H ) ) A[ i ]  NIL endfor for each node w in the root list of H do x  w d  degree [ x ] while A [ d ] ≠ NIL do y  A [ d ] if key [ x ] > key [ y ] then exchange x ↔ y endif FIB-HEAP-LINK ( H , y, x ) A [ d ]  NIL d  d + 1 endwhile A [ d ]  x min [ H ]  NIL for i  0 to D ( n [ H ] ) do if A [ i ] ≠ NIL then Add A [ i ] to the root list of H if min [ H ] = NIL or key [ A [ i ] ] < key [ min [ H ] ] then min [ H ]  A [ i ] endif endfor end CS XXX Lecture X

Bounding the Maximum Degree For each node x within a fibonacci heap, define size(x): the number of nodes, including itself, in the subtree rooted at x NOTE: x need not to be in the root list, it can be any node at all. We shall show that size(x) is exponential in degree[x] CS XXX Lecture X

Bounding the Maximum Degree Lemma 1: Let x be a node with degree[x]=k Let y1,y2,....,yk denote the children of x in the order in which they are linked to x, from earliest to the latest, then degree[y1] ≥ 0 and degree[yi] ≥ i-2 for i = 2,3,...,k CS XXX Lecture X

Bounding the Maximum Degree Proof: degree[y1] ≥ 0 => obvious For i ≥ 2: CS XXX Lecture X

Bounding the Maximum Degree When yi is linked to x: at least y1,y2,....,yi-1 were all children of x so we must have had degree[x] ≥ i – 1 NOTE: z node(s) denotes the node(s) that were children of x just before the link of yi that are lost after the link of yi When yi is linked to x: degree[yi] = degree[x] ≥ i – 1 since then, node yi has lost at most one child, we conclude that degree[yi] ≥ i-2 CS XXX Lecture X

Bounding the Maximum Degree Fibonacci Numbers CS XXX Lecture X

Bounding the Maximum Degree Lemma 2: For all integers k ≥ 0 Proof: By induction on k When k = 0: CS XXX Lecture X

Bounding the Maximum Degree Inductive Hypothesis: Recall that where is the golden ratio CS XXX Lecture X

Bounding the Maximum Degree Lemma 3: Let x be any node in a fibonacci heap with degree[x] = k then size(x) ≥ Fk+2 ≥ Φk, where Φ = (1+√5)/2 Proof: Let Sk denote the lower bound on size(z) over all nodes z such that degree[z] = k Trivially, S0 = 1, S1 = 2, S2 = 3 Note that,Sk ≤ size(z) for any node z with degree[z] = k CS XXX Lecture X

Bounding the Maximum Degree As in Lemma-1, let y1,y2,....,yk denote the children of node x in the order in which they were linked to x CS XXX Lecture X

Bounding the Maximum Degree Inductive Hypothesis: Si ≥ Fi+2 for i=0,1,...,k-1 Due to Lemma-2, thus we have shown that: size(x) ≥ Sk ≥ Fk+2 ≥ Φk CS XXX Lecture X

Bounding the Maximum Degree Corollary: Max. degree D(n) in an n node fib-heap is O(lg n) Proof: Let x be any node with degree[x] = k in an n-node fib-heap by Lemma-3 we have n ≥ size(x) ≥ Φk taking base-Φ log => k ≤ logΦn therefore D(n) = O(lg n) CS XXX Lecture X

Decreasing a Key FIB-HEAP-DECREASE-KEY(H, x, k) key[x] ← k y ← p[x] if y ≠ NIL and key[x] < key[y] then CUT(H, x, y) CASCADING-CUT(H,y) endif /* else no structural change */ if key[x] < key[min[H]] then min[H] ← x endif end CS XXX Lecture X

Decreasing a Key CUT(H, x, y) remove x from the child list of y, decrementing degree y add x to the root list of H p[x] ← NIL mark[x] ← FALSE end CS XXX Lecture X

Decreasing a Key CASCADING-CUT(H, y) z ← p[y] if z ≠ NIL then if mark[y] = FALSE then mark[y] = TRUE else CUT(H, y, z) CASCADING-CUT(H, z) endif end CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Decreasing a Key CS XXX Lecture X

Amortized Cost of FIB-HEAP-DECREASE-KEY Procedure Actual Cost O(1) time + the time required to perform the cascading cuts, suppose that CASCADING-CUT is recursively called c times each call takes O(1) time exclusive of recursive calls therefore, the actual cost = O(1) + O(c) = O(c) CS XXX Lecture X

Amortized Cost of FIB-HEAP-DECREASE-KEY Procedure Let H denote the fib-heap prior to the DECREASE-KEY operation. Each recursive call of CASCADING-CUT, except for the last one, cuts a marked node and last call of cascading cut may mark a node. CS XXX Lecture X

Amortized Cost of FIB-HEAP-DECREASE-KEY Procedure Hence, after the DECREASE-KEY operation CS XXX Lecture X

Amortized Cost of FIB-HEAP-DECREASE-KEY Procedure Potential Difference = [(t(H) + c) + 2(m(H)-c+2)]-[t(H)+2m(H)] = 4 – c Amortized Cost = O(c) + 4 – c = O(1) CS XXX Lecture X

Deleting a Node FIB-HEAP-DELETE(H, x) FIB-HEAP-DECREASE-KEY(H, x, -∞) => O(1) FIB-HEAP-EXTRACT-MIN(H) => O(D(n)) end Amortized Cost = O(1) + O(D(n)) = O(D(n)) CS XXX Lecture X

Analysis of the Potential Function Why the potential function includes the term t(H)?: Each INSERT operation increases the potential by one unit such that its amortized cost = O(1) + 1(increase in potential) = O(1) CS XXX Lecture X

Analysis of the Potential Function Consider an EXTRACT-MIN operation: Let T(H) denote the trees just priori to the execution of EXTRACT-MIN the root-list, just before the CONSOLIDATE operation, T(H) – {x} U {children of x} where x is the extracted node with the minimum key The root node of each tree in T(H) – {x} carries a unit potential to pay for the link operation during the CONSOLIDATE CS XXX Lecture X

Analysis of the Potential Function Let T1&T2 Є T(H) - {x} of the same degree = k The root node with smaller key pays for the potential The root node of the resulting tree still carries a unit potential to pay for a further link during the consolidate operation. CS XXX Lecture X

Analysis of the Potential Function Why the potential function includes the term 2m(H)?: When a marked node y is cut by a cascading cut its mark bit is cleared so the potential is reduced by 2 One unit pays for the cut and clearing the mark field The other unit compensates for the unit increase in potential due to node y becoming a root CS XXX Lecture X

Analysis of the Potential Function That is, when a marked node is cleared by a CASCADING-CUT This unit decrease in potential pays for the cascading cut. Note that, the original cut (of node x) is paid for by the actual cut. CS XXX Lecture X

Bounding the Maximum Degree Why do we apply CASCADING-CUT during DECREASE-KEY operation? To maintain the size of any tree/subtree exponential in the degree of its root node. e.g.: to prevent cases where size[x] = degree[x] + 1 CS XXX Lecture X

Bounding the Maximum Degree size[x] = 7 = degree[x] + 1 CS XXX Lecture X

Bounding the Maximum Degree size[x] = 24 = 16 CS XXX Lecture X

Bounding the Maximum Degree size(x) = 8 ≥ Φ4 ≈ 6.5 CS XXX Lecture X