Algorithms and Data Structures Gerth Stølting Brodal Computer Science Day, Department of Computer Science, Aarhus University, May 25, 2012.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Kandidatorientering, April 20, 2012 Algorithms and Data Structures.
Priority Queues  MakeQueuecreate new empty queue  Insert(Q,k,p)insert key k with priority p  Delete(Q,k)delete key k (given a pointer)  DeleteMin(Q)delete.
Kandidatorientering, November 1, 2010 Algorithms and Data Structures.
Kandidatorientering, October 28, 2011 Algorithms and Data Structures.
Advanced Data structure
Rank-Pairing Heaps Robert Tarjan, Princeton University & HP Labs Joint work with Bernhard Haeupler and Siddhartha Sen, ESA
1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.
More sorting algorithms: Heap sort & Radix sort. Heap Data Structure and Heap Sort (Chapter 7.6)
Rank-Pairing Heaps Bernhard Haeupler, Siddhartha Sen, and Robert Tarjan, ESA
Heaps & Priority Queues Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Fully Persistent B-Trees 23 rd Annual ACM-SIAM Symposium on Discrete Algorithms, Kyoto, Japan, January 18, 2012 Gerth Stølting Brodal Konstantinos Tsakalidis.
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.
Instructors: C. Y. Tang and J. S. Roger Jang All the material are integrated from the textbook "Fundamentals of Data Structures in C" and some supplement.
Fibonacci Heaps. Single Source All Destinations Shortest Paths
Source: Muangsin / Weiss1 Priority Queue (Heap) A kind of queue Dequeue gets element with the highest priority Priority is based on a comparable value.
5.9 Heaps of optimal complexity
Prim’s Algorithm and an MST Speed-Up
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.
0 Course Outline n Introduction and Algorithm Analysis (Ch. 2) n Hash Tables: dictionary data structure (Ch. 5) n Heaps: priority queue data structures.
Fundamental Structures of Computer Science March 02, 2006 Ananda Guna Binomial Heaps.
ANALYSIS OF SOFT HEAP Varun Mishra April 16,2009.
1 Binomial heaps, Fibonacci heaps, and applications.
Strict Fibonacci Heaps Gerth Stølting Brodal Aarhus University George Lagogiannis Robert Endre Tarjan Agricultural University of Athens Princeton University.
Algorithms and Data Structures Gerth Stølting Brodal Computer Science Day, Department of Computer Science, Aarhus University, May 25, 2012.
Binomial heaps, Fibonacci heaps, and applications
Path Minima on Dynamic Weighted Trees Pooya Davoodi Aarhus University Aarhus University, November 17, 2010 Joint work with Gerth Stølting Brodal and S.
Chapter 19: Fibonacci Heap Many of the slides are from Prof. Leong Hon Wai’s resources at National University of Singapore.
Foundations of Data Structures Practical Session #8 Heaps.
1 Binomial Tree Binomial tree. n Recursive definition: B k-1 B0B0 BkBk B0B0 B1B1 B2B2 B3B3 B4B4.
Gerth stølting Brodal 1 Closing a Classical Data Structure Problem Gerth Stølting Brodal : Strict Fibonacci Heaps joint work with George Lagogiannis Robert.
Heaps & Priority Queues
1 Fat heaps (K & Tarjan 96). 2 Goal Want to achieve the performance of Fibonnaci heaps but on the worst case. Why ? Theoretical curiosity and some applications.
Two-tier relaxed heaps Presented by Claus Jensen Joint work with Amr Elmasry and Jyrki Katajainen Slides available at
CMSC 341 Binomial Queues and Fibonacci Heaps. Basic Heap Operations OpBinary Heap Leftist Heap Binomial Queue Fibonacci Heap insertO(lgN) deleteMinO(lgN)
CS6045: Advanced Algorithms Sorting Algorithms. Heap Data Structure A heap (nearly complete binary tree) can be stored as an array A –Root of tree is.
Priority Queues and Heaps Data Structures and Algorithms CS 244 Brent M. Dingle, Ph.D. Department of Mathematics, Statistics, and Computer Science University.
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.
Fibonacci Heap Fibonacci heapshave better asymptotic time bounds than binary heaps for the INSERT, UNION, and DECREASE-KEY operations, and they.
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))
Leftist Trees Linked binary tree.
Self-Adjusting Data Structures
Data Structures Binomial Heaps Fibonacci Heaps Haim Kaplan & Uri Zwick
Binomial heaps, Fibonacci heaps, and applications
Heaps 8/2/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Source: Muangsin / Weiss
Priority Queues MakeQueue create new empty queue
Fibonacci Heaps Remove arbitrary is useful in (for example) correspondence structures and may also be used to do an increase key in a min structure (remove.
A simpler implementation and analysis of Chazelle’s
ערמות בינומיות ופיבונצ'י
Fundamental Structures of Computer Science
Closing a Classical Data Structure Problem Gerth Stølting Brodal
Strict Fibonacci Heaps
Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps
Binary and Binomial Heaps
Binomial heaps, Fibonacci heaps, and applications
HEAPS.
Fibonacci Heaps.
Implementation of Dijkstra’s Algorithm
Binomial heaps, Fibonacci heaps, and applications
Priority Queues Supports the following operations. Insert element x.
CS 6310 Advanced Data Structure Wei-Shian Wang
Heaps Section 6.4, Pg. 309 (Section 9.1).
CS210- Lecture 13 June 28, 2005 Agenda Heaps Complete Binary Tree
Presentation transcript:

Algorithms and Data Structures Gerth Stølting Brodal Computer Science Day, Department of Computer Science, Aarhus University, May 25, 2012

People Researchers Brody Sandel Constantinos Tsirogiannis Wei Yu Cicimol Alexander Elad Verbin Qin Zhang Hossein Jowhari PhD Students Jungwoo YangJakob Truelsen Freek van Walderveen Morten Revsbæk Casper Kejlberg-RasmussenMark Greve Jesper Erenskjold MoeslundKasper Green Larsen Jesper Asbjørn Sindahl Nielsen Lasse Kosetski Deleuran Faculty Lars Arge Gerth Stølting Brodal Peyman Afshani

Strict Fibonacci Heaps Gerth Stølting Brodal Aarhus University George Lagogiannis Robert Endre Tarjan Agricultural University of Athens Princeton University & HP 44th Annual ACM Symposium on Theory of Computing, New Yorker Hotel, New York, May 22, 2012

The Problem — Priority Queues (A,27) (C,11) (M,36) (B,14) (X,86)  I NSERT (value, key)  F IND M IN  D ELETE M IN / D ELETE (&value)  M ELD (Q 1,Q 2 )  D ECREASE K EY (&value, Δ) (K,54) (D,24) (Z,29)(W,6) 12 A 15 Applications t s  Shortest Path Dijkstra (1956)  Minimum Spanning Tree Borůvka (1926) Jarník (1930) (n node, m edges) (m+n)∙log n m+n∙log n m∙β(m,n) MST only I NSERT /D ELETE M IN + D ECREASE K EY Fredman, Tarjan 1984

History Amortized complexity (Tarjan 1983)ArraysPointers only Binary heaps Min 8 24 Fibonacci heaps Binary heaps Binomial queues Fibonacci heaps Run-relaxed heaps one tree Williams 1964 Vuillemin 1978 Fredman Tarjan 1984 Driscoll et al Brodal 1995 Brodal 1996 STOC 2012 Insertlog n FindMin Deletelog n n Meld-log n DecreaseKeylog n n11 11

Ideas color RED WHITE color Invariants 1. white nodes share one color record 2. white children left of red 3. root is red M ELD smallest tree red + link Intuition 1. Only maintain structure for white nodes 2. Red non-root nodes never increase degree 3. D ELETE : O(1) red nodes white Definitions 1. white node rank = #white children 2. D ECREASE K EY : cut + mark parent (if white) Invariants 1. i’th rightmost white child of a white node: rank + #marks ≥ i #marks + #white roots = O(log n) Theorem max rank O(log n) white root 0

Priority Queue Operations  F IND M IN = return root  I NSERT = make single red node + M ELD  D ELETE = D ECREASE K EY to - + D ELETE M IN  M ELD = color smaller tree red + link + O(1) transformations  D ECREASE K EY = cut + link with root + O(1) transformations  D ELETE M IN = cut root + find new root + O(log n) link + O(log n) transformations root degree +1; white root (+1); marks (+1) root degree +1 root degree +O(log n); white root +O(log n) Invariant R = α ·log (3/2 · #white nodes + #red nodes) + β  degree unmarked white nodes ≤ R  degree red and marked white nodes ≤ R – 1

White root reduction Two white roots of rank r is replaced by one rank r+1; increases root degree by one One node mark reduction White node with ≥ 2 marks becomes a white root (unmarked); increases the root degree by one Two node mark reduction Two nodes of equal rank r with 1 mark become unmarked; one parent one more mark Root degree reduction Converts two red nodes to white; reduces the root degree by two; creates one new white root Transformations below root y x ≥ 2 marks z y x r/1 yx z below root r/0 x root z 0/0 1/0 xz root y y r / m = rang / #marks

singles color-record root size non-linkable-child Q-head heap record fix-list rank-list fix-list leftright transformable nodes with markswhite roots node marked rank-list pointers from unmarked white nodes with rank 1 and with white parent transformable incdec rank maximum rank white roots Representation ref-count active... Q-prev x left-child rank left right parent flag color record Q-next

Thank You Williams 1964 Vuillemin 1978 Fredman Tarjan 1984 Driscoll et al Brodal 1995 Brodal 1996 STOC 2012 Insertlog n FindMin Deletelog n n Meld-log n DecreaseKeylog n n11 11 Pointers only