Binomial Heaps Supports the Following Operations

Binomial Heaps Supports the Following Operations

Priority Queues (heaps) Heaps in Action Dijkstra's Shortest Path Algorithm Binomial Heaps Supports the following operations. Insert element x. HeapInit () /*Initialized Priority Queue */ Return min element. for each v ∈∈∈ V Return and delete minimum element. d[v] ←←←∞∞∞ ; Decrease key of element x to k. HeapInsert (v) CLRS, Chapters 6, 19 Applications. d[s] ←←← 0 Dijkstra's shortest path algorithm. while (! HeapIsEmpty ()) u = Heap_Extract_Min () Thanks to Kevin Wayne for Prim's MST algorithm. the slides. for each v ∈∈∈ V(G) s.t (u,v) ∈∈∈ E(G) Event-driven simulation. if d[v] > d[u] + w(u,v) Huffman encoding. Heap_Decrease (v, d[u] + w(v,w)) Heapsort. . 2 3 Priority Queues Binomial Tree Binomial Tree Binomial tree - definition. Heaps B Useful properties of order k binomial tree B k. Recursive definition: 0 Bi Operation Linked List Binary Binomial Fibonacci * Relaxed k Number of nodes = 2 . make-heap 1 1 1 1 1 Bi is created from two Bi-1 by Bk connect the root of the Height = k. insert 1 log N log N 1 1 Bi-1 +1 find-min N 1 log N 1 1 larger key is a child of the Degree of root = k. Bi-1 delete-min N log N log N log N log N second. Deleting root yields binomial B1 B B0 union 1 N log N 1 1 2 So the degree could be trees Bk-1, … , B 0. Bk decrease-key 1 log N log N 1 1 rather large. delete N log N log N log N log N Proof. is-empty 1 1 1 1 1 By induction on k. Dijkstra/Prim 2 1 make-heap O(|V| ) O(|E| log |V|) O(|E| + |V| log |V|) |V| insert |V| delete-min |E| decrease-key B B B B B 0 1 2 3 4 B0 B1 B2 B3 B4 4 5 6 Binomial Tree Binomial Heap Binomial Heap: Implementation Implementation. Binomial heap. Vuillemin, 1978. A property useful for naming the data structure. Represent trees using pointers to k Sequence of binomial trees that satisfy binomial Bk has nodes at depth i. –left-sibling, right-sibling, parent, a child. i heap property. –each tree is min-heap ordered (parent ≤≤≤ each (need a pointer only to one child) All siblings are in a doubly connected list, called sibling 4 child) === 6 list (so it is enough to point to only one of them) 2 –0 or 1 binomial tree of order k depth 0 6 3 18 Roots of trees connected with linked list. –degrees of trees strictly decreasing from left to right depth 1 8 29 10 44 37 6 3 18 depth 2 30 23 22 48 31 17 29 10 44 37 depth 3 45 32 24 50 48 31 17 depth 4 B4 55 B4 B1 B0 50 7 8 9 Binomial Heap: Properties Binomial Heap: Union Binomial Heap: Union Properties of N-node binomial heap. Create heap H that is union of heaps H' and H'' . Min key contained in root of B0, B 1, . , B k. "Mergeable heaps." ⋅ 6 3 18 Contains binomial tree Bi iff bi = 1 where bn b2b1b0 is Easy if H' and H'' are each order k binomial trees. binary representation of N. –connect roots of H' and H'' 8 29 10 44 37 At most log 2 N + 1 binomial trees. –choose smaller key to be root of H 30 23 22 48 31 17 ≤ 15 7 12 Height log 2 N. 6 3 18 6 45 32 24 50 55 28 33 25 8 29 10 44 37 8 29 10 44 + 41 30 23 22 48 31 17 N = 19 30 23 22 48 31 17 # trees = 3 1 1 1 1 0 0 1 1 45 32 24 50 height = 4 45 32 24 50 binary = 10011 19 + 7 = 26 + 0 0 1 1 1 55 55 1 1 0 1 0 B B B H' H'' 4 1 0 10 11 12 Binomial Heap: Union Binomial Heap: Union 12 3 12 18 7 37 18 25 6 3 18 6 3 18 6 3 18 8 29 10 44 37 8 29 10 44 37 8 29 10 44 37 30 23 22 48 31 17 30 23 22 48 31 17 30 23 22 48 31 17 15 7 12 15 7 12 15 7 12 45 32 24 50 45 32 24 50 45 32 24 50 55 28 33 25 55 28 33 25 55 28 33 25 + 41 + 41 + 41 12 18 13 14 15 3 3 12 3 3 12 3 3 12 15 7 37 7 37 18 15 7 37 7 37 18 15 7 37 7 37 18 28 33 25 25 28 33 25 25 28 33 25 25 41 41 41 6 3 18 6 3 18 6 3 18 8 29 10 44 37 8 29 10 44 37 8 29 10 44 37 30 23 22 48 31 17 30 23 22 48 31 17 30 23 22 48 31 17 15 7 12 15 7 12 15 7 12 45 32 24 50 45 32 24 50 45 32 24 50 28 33 25 28 33 25 28 33 25 55 + 55 55 + 41 41 + 41 12 3 12 6 3 12 18 15 7 37 18 8 29 10 44 15 7 37 18 28 33 25 30 23 22 48 31 17 28 33 25 41 45 32 24 50 41 16 17 55 18 Binomial Heap: Union Binomial Heap: Delete Min Binomial Heap: Delete Min Create heap H that is union of heaps H' and H'' . Delete node with minimum key in binomial heap H. Delete node with minimum key in binomial heap H. Analogous to binary addition. Find root x with min key in root list of H, and delete Find root x with min key in root list of H, and delete H' ← broken binomial trees H' ← broken binomial trees Running time. O(log N) H ← Union( H', H ) H ← Union( H', H ) Proportional to number of trees in root lists ≤≤≤ 2( log 2 N + 1 ). Running time. O(log N) Running time. O(log N) 3 6 18 6 18 8 29 10 44 37 8 29 10 44 37 1 1 1 30 23 22 48 31 17 H 30 23 22 48 31 17 H 1 0 0 1 1 45 32 24 50 45 32 24 50 19 + 7 = 26 + 0 0 1 1 1 1 1 0 1 0 55 55 19 20 H' 21 Binomial Heap: Decrease Key Binomial Heap: Delete Binomial Heap: Insert Decrease key of node x in binomial heap H. Delete node x in binomial heap H. Insert a new node x into binomial heap H. ∞∞∞ ←←← Suppose x is in binomial tree Bk. Decrease key of x to - . H' MakeHeap(x) Bubble node x up the tree if x is too small. Delete min. H ←←← Union( H', H ) Running time: O(log N) ≤ Proportional to depth of node x log 2 N . Running time. O(log N) Running time. O(log N) 3 6 18 3 6 18 x depth = 3 8 29 10 44 37 8 29 10 44 37 30 23 22 48 31 17 H 30 23 22 48 31 17 H H' x 32 24 50 45 32 24 50 55 55 22 23 24 Binomial Heap: Sequence of Inserts Priority Queues Insert a new node x into binomial heap H. If N = .......0 , then only 1 steps. 3 6 x If N = ......01 , then only 2 steps. 29 10 44 37 Heaps If N = .....011 , then only 3 steps. Operation Linked List Binary Binomial Fibonacci * Relaxed 48 31 17 If N = ....0111 , then only 4 steps. make-heap 1 1 1 1 1 50 insert 1 log N log N 1 1 Inserting 1 item can take Ω(log N) time. find-min N 1 log N 1 1 If N = 11...111 , then log 2 N steps. delete-min N log N log N log N log N But, inserting sequence of N items takes O( N) time! union 1 N log N 1 1 (N/2)(1) + (N/4)(2) + (N/8)(3) + . ≤ 2N decrease-key 1 log N log N 1 1 Amortized analysis. delete N log N log N log N log N Basis for getting most operations is-empty 1 1 1 1 1 N down to constant time. ∑∑∑ n === −−− N −−− 1 n 2 N N−−−1 n===1 2 2 2 ≤≤≤ 2 just did this 25 26.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us