Efficient data structures are the core of many algorithms and the design of data structures is a classical topic covered in most introductory text books.

Slides:



Advertisements
Similar presentations
Turning Amortized to Worst-Case Data Structures: Techniques and Results Tsichlas Kostas.
Advertisements

Master Thesis Algorithms. Algorithms – Who? Faculty Lars Arge Gerth Stølting Brodal Gudmund Skovbjerg Frandsen Kristoffer Arnsfelt Hansen Peter Bro Miltersen.
Kandidatorientering, April 20, 2012 Algorithms and Data Structures.
Master Thesis Preparation Algorithms Gerth Stølting Brodal.
Algorithms and Data Structures Group Gerth Stølting Brodal Faculty Meeting, Department of Computer Science, Aarhus University, October 3, 2014.
Gerth Stølting Brodal University of Aarhus Monday June 9, 2008, IT University of Copenhagen, Denmark International PhD School in Algorithms for Advanced.
Tight Bounds for Dynamic Convex Hull Queries (Again) Erik DemaineMihai Pătraşcu.
Kandidatorientering, November 1, 2010 Algorithms and Data Structures.
MADALGO ― Center for Massive Data Algorithmics MADALGO is a major new basic research center funded by The Danish National Research Foundation initially.
Kandidatorientering, October 28, 2011 Algorithms and Data Structures.
An Improved Succinct Dynamic k-Ary Tree Representation (work in progress) Diego Arroyuelo Department of Computer Science, Universidad de Chile.
Msb(x) in O(1) steps using 5 multiplications Word size n = g∙g, g a power of 2 [M.L. Fredman, D.E. Willard, Surpassing the information-theoretic bound.
Dynamic Matchings in Convex Bipartite Graphs
Konstantinos Tsakalidis 1 Dynamic Data Structures: Orthogonal Range Queries and Update Efficiency Konstantinos Tsakalidis PhD Defense 23 September 2011.
1 Hashing, randomness and dictionaries Rasmus Pagh PhD defense October 11, 2002.
Computing Triplet and Quartet Distances Between Trees Gerth Stølting Brodal, Morten Kragelund Holt, Jens Johansen Aarhus University Rolf Fagerberg University.
Computational Complexity 1. Time Complexity 2. Space Complexity.
Hierarchy-conscious Data Structures for String Analysis Carlo Fantozzi PhD Student (XVI ciclo) Bioinformatics Course - June 25, 2002.
Data Structures: Range Queries - Space Efficiency Pooya Davoodi Aarhus University PhD Defense July 4, 2011.
Time-Space Trade-Offs for 2D Range Minimum Queries
Dynamic Planar Range Maxima Queries (presented at ICALP 2011) Gerth Stølting Brodal Aarhus University Kostas Tsakalidis University of Primorska, October.
Binary Counters Integer Representations towards Efficient Counting in the Bit Probe Model (paper presented at TAMC 2011) Gerth Stølting Brodal (Aarhus.
Dynamic Planar Range Maxima Queries (presented at ICALP 2011) Gerth Stølting Brodal Aarhus University Kostas Tsakalidis LIAFA, Université Paris Diderot,
Binary Counters Integer Representations towards Efficient Counting in the Bit Probe Model (presented at TAMC 2011) Gerth Stølting Brodal (Aarhus University)
Computer Science Day 2008 Algorithms and Data Structures for Faulty Memory Gerth Stølting Brodal Department of Computer Science, University of Aarhus,
Update 1 Persistent Data Structures (Version Control) v0v0 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 Ephemeral query v0v0 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 Partial persistence.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
I/O-Algorithms Lars Arge Aarhus University February 16, 2006.
I/O-Algorithms Lars Arge Aarhus University February 7, 2005.
Fully Persistent B-Trees 23 rd Annual ACM-SIAM Symposium on Discrete Algorithms, Kyoto, Japan, January 18, 2012 Gerth Stølting Brodal Konstantinos Tsakalidis.
Comparison Based Dictionaries: Fault Tolerance versus I/O Efficiency Gerth Stølting Brodal Allan Grønlund Jørgensen Thomas Mølhave University of Aarhus.
Cache Oblivious Search Trees via Binary Trees of Small Height
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Cache-Oblivious Dynamic Dictionaries with Update/Query Tradeoff Gerth Stølting Brodal Erik D. Demaine Jeremy T. Fineman John Iacono Stefan Langerman J.
Algorithm Engineering, September 2013Data Structures, February-March 2010Data Structures, February-March 2006 Cache-Oblivious and Cache-Aware Algorithms,
The Encoding Complexity of Two Dimensional Range Minimum Data Structures MADALGO, October 2, 2013 (Work presented at ESA 2013) 1234  n
The Encoding Complexity of Two Dimensional Range Minimum Data Structures European Symposium on Algorithms, Inria, Sophia Antipolis, France, September 3,
Retreat Sandbjerg, November 19-20, Homework Session 16:30 Homework handout 16:40 Homework 19:00 Dinner 21:00 Homework presentations.
Algorithms and Data Structures Gerth Stølting Brodal Computer Science Day, Department of Computer Science, Aarhus University, May 25, 2012.
An Approximation Algorithm for Binary Searching in Trees Marco Molinaro Carnegie Mellon University joint work with Eduardo Laber (PUC-Rio)
Time O(log d) Exponential-search(13) Finger Search Searching in a sorted array time O(log n) Binary-search(13)
Succinct Data Structures Ian Munro University of Waterloo Joint work with David Benoit, Andrej Brodnik, D, Clark, F. Fich, M. He, J. Horton, A. López-Ortiz,
Path Minima on Dynamic Weighted Trees Pooya Davoodi Aarhus University Aarhus University, November 17, 2010 Joint work with Gerth Stølting Brodal and S.
A Worst Case, Constant Time Priority Queue: Beating a Lower Bound Ian Munro University of Waterloo Joint work with Andrej Brodnik (Ljubljana & Luleå) Svante.
On the Scalability of Computing Triplet and Quartet Distances Morten Kragelund Holt Jens Johansen Gerth Stølting Brodal 1 Aarhus University.
Succinct Dynamic Cardinal Trees with Constant Time Operations for Small Alphabet Pooya Davoodi Aarhus University May 24, 2011 S. Srinivasa Rao Seoul National.
Algorithms and Data Structures Gerth Stølting Brodal Computer Science Day, Department of Computer Science, Aarhus University, May 25, 2012.
Λίστα Εργασιών External Memory Data Structures Vitter, J. S. and Shriver, E. 1994a. Algorithms for parallel memory I: Two-level memories. Algorithmica.
Λίστα Εργασιών Data Structures for Tree Manipulation D. Harel and R.E. Tarjan. Fast Algorithms for finding nearest common ancestors. SIAM J. Computing,
1 Nearest Common Ancestors (NCA) Discrete Range Maximum Cartesian Tree [Vuillemin 1980] i j max(i, j) i.
Equivalence Between Priority Queues and Sorting in External Memory
Optimal Planar Orthogonal Skyline Counting Queries Gerth Stølting Brodal and Kasper Green Larsen Aarhus University 14th Scandinavian Workshop on Algorithm.
Sorting Integers in the RAM Model Gerth Stølting Brodal Joint work with Djamal Belazzougui and Jesper Sindal Nielsen (to be presented at the 14th Scandinavian.
Internal Memory Pointer MachineRandom Access MachineStatic Setting Data resides in records (nodes) that can be accessed via pointers (links). The priority.
Memory Hierarchies [FLPR12] Matteo Frigo, Charles E. Leiserson, Harald Prokop, Sridhar Ramachandran. Cache- Oblivious Algorithms. ACM Transactions on Algorithms,
(A Survey on) Priority Queues IanFest, University of Waterloo, Waterloo, Ontario, Canada, August 14-15, 2013 Gerth Stølting Brodal Aarhus Universty.
Computing the all-pairs quartet distance on a set of evolutionary trees Martin Stissing 1 Thomas Mailund 1,2 Christian Nørgaard Storm Pedersen 1 Gerth.
A Worst Case, Constant Time Priority Queue
Succinct Data Structures
Succinct Data Structures
List Order Maintenance
Persistent Data Structures (Version Control)
Searching in Trees Gerth Stølting Brodal Aarhus University
Space-efficient graph algorithms
STACS arxiv.org/abs/ y 3-sided x1 x2 x1 x2 top-k
Closing a Classical Data Structure Problem Gerth Stølting Brodal
Strict Fibonacci Heaps
Thesis Preparation Algorithms Gerth Stølting Brodal.
8th Workshop on Massive Data Algorithms, August 23, 2016
Discrete Range Maximum
Presentation transcript:

Efficient data structures are the core of many algorithms and the design of data structures is a classical topic covered in most introductory text books on algorithms. Most algorithmic text books assume that a good approximation of a computer is the RAM (Random Access Machine) model of computation, where it assumed that each memory access and register computation takes one time unit. The high popularity of the RAM model in algorithm and data structure design is due to the model’s simplicity while traditionally allowing for a good estimate of running time on actual computers. Unfortunately, modern computer architectures deviate from the classical RAM model in many aspects, invalidating the basic assumption of unit cost for each primitive instruction. This fact has sparked a lot of algorithmic research trying to model the essential bottlenecks in modern computer hardware and to understand the inherent trade-offs between the different limitations. This talk will provide an overview of various directions in data structures ­­­­research for various models of computation. Abstract

Data Structures and Models of Computation Gerth Stølting Brodal Inauguration talk, Department of Computer Science, Aarhus University, February 12, 2016

STACS12APBC13ISAAC02ESA10NJC96SWAT96SODA12 ESA13IPPS97SWAT00JFP96SWAT14SODA03SODA02 ISAAC10SODA00ESA06WADS95SODA98WADS15Algorithmica02 PhD97CPM99ORS08STOC12APBC07ESA07Handbook05 TAMC11ISAAC09FOCS00ISAAC10SODA13ISAAC08Encyclopedia08 ICALP01ESA06ISAAC12STOC01STACS97FOCS02STOC02 TCS11CPM06ESA12ISAAC09ICALP11WADS09BRICS-RS-96 FOCS06ESA13Biology13SWAT96SWAT04WABI03Handbook05 IPL00SOCG05SPAA07ICALP02 CPM00Algorithmica04 STACS16ISAAC01ICALP05SODA11MFCS07ISAAC09SODA99 SWAT98ALENEX14ISAAC09APBC07SODA96ALENEX05BRICS-RS-96 MFCS07WADS99SWAT02SODA06SWAT04Bioinformatics14 FOCS03SWAT98ATMOS03Survey13SOCG08Progress-Report94 SWAT00ICATPN07ALENEX04CPM96SODA10Acta-Informatica05 WADS11SWAT14WADS05WAOA11STOC03BMC-Bioinformatics06 Looking back... publications since 1994

Thanks to my co-authors Peyman Afshani, Pankaj K. Agarwal, Stephen Alstrup, Lars Arge, Djamal Belazzougui Michael A. Bender, Andrej Brodnik, Shiva Chaudhuri, Pooya Davoodi, Erik D. Demaine Rolf Fagerberg, Jeremy T. Fineman, Irene Finocchi, Dongdong Ge, Loukas Georgiadis Beat Gfeller, Fabrizio Grandoni, Mark Greve, Leszek Gasieniec, Inge Li Gørtz Kristoffer A. Hansen, Simai He, Morten Kragelund Holt, Haodong Hu, Thore Husfeldt John Iacono, Giuseppe Italiano, Riko Jacob, Jens Johansen, Allan Grønlund Jørgensen Kanela Kaligosi, Alexis Kaporis, Alexis C. Kaporis, Jyrki Katajainen, Irit Katriel Casper Kejlberg-Rasmussen, Lars Michael Kristensen, Martin Kutz Alejandro López-Ortiz, George Lagogiannis, Stefan Langerman, Kasper Green Larsen Morten Laustsen, Moshe Lewenstein, Rune Bang Lyngsø, Thomas Mailund Christos Makris, Ulrich Meyer, Gabriel Moruz, J. Ian Munro, Thomas Mølhave Andrei Negoescu, Jesper Sindahl Nielsen, Chris Okasaki, Vineet Pandey Apostolos Papadopoulos, Christian Nørgaard Storm Pedersen, Derek Phillips M. Cristina Pinotti, Jaikumar Radhakrishnan, Rajeev Raman, S. Srinivasa Rao Theis Rauhe, Andreas Sand, Peter Sanders, Spyros Sioutas, Sven Skyum Venkatesh Srinivasan, Martin Stissing, Jens Stoye, Robert E. Tarjan, Laura Toma Jakob Truelsen, Jesper Larsson Träff, Athanasios Tsakalidis, Konstantinos Tsakalidis Kostas Tsichlas, Constantinos Tsirogiannis, Elias Vicari, Kristoffer Vinther, Jeff Vitter Michael Westergaard, Christos D. Zaroliagis, Norbert Zeh, Anna Östlin

Data Structures IO Cache oblivious Implicit Parallel Functional Fault tolerant MFCS07 ISAAC08 ORS08 ISAAC09 TCS11 Progress-Report94 PhD97 SWAT04 Handbook05 STOC03 WADS05 ALENEX04 ALENEX05 ICALP05 Encyclopedia08 SWAT14 Quartets/Triplets comparison ISAAC01 Algorithmica04 APBC Biology13 SODA13 ALENEX14 Bioinformatics14 Construction : experiments, Bunemann, neighbor-joining ICALP01 WABI03 BMC-Bioinformatics06 Point location SODA99 FOCS06 S0CG08 Range searching FOCS00 STOC01 SOCG05 ISAAC09-09 SODA11 ICALP11 SWAT14 STACS16 Convex hull SWAT00 FOCS02 Distribution sweeping ICALP02 CPM96 STACS97 IPL00 SODA02 FOCS03 SODA06 ESA06 ESA07 WADS09 SODA10 ISAAC10 STACS12 SODA13 Finger search SODA98 STOC02 Handbook05 ISAAC12 WADS95 SODA96 SWAT96 STOC12 Survey13 JFP96 SWAT96 IPPS97 SWAT98 SWAT98 ISAAC02 WADS15 Matrix ESA10 ESA12 ESA13 Trees WADS11 CPM99 SODA00 CPM00 ICALP02 CPM06 WADS99 SWAT00 ATMOS03 SWAT04 MFCS07 SWAT02 Acta-Informatica05 ISAAC10 WAOA11 Persistence NJC96 SODA12 Lists ESA06 Algoritmica02 Counting ISAAC09 TAMC11 BRICS-RS-96 BRICS-RS-96 ICATPN07 SPAA07 ESA13 Phylogenetic Trees Computational Geometry Priority Queues Dictionaries Sorting Selection Range Minimum String Searching Graphs System Miscellaneous

Research Context Computational Models RAM Pointer Machine IO Cache oblivious Implicit Succinct Parallel Functional Fault tolerant Bit-probe Succinct Data Structures Priority Queues Tries Search Trees Finger Search Trees Priority Search Trees Hardware TLB Cache-faults Paging Memory hierarchies Branch mispredictions Conditional operations Theory Algorithm Engineering

Example 1 : Binary Search BSc (Algorithms and Data Structures 1)  Store data in sorted order  Binary search from the center MSc (Algorithm Engineering)  Don’t store data in sorted order  Don’t do binary search from the center ESA06 Why? cache lines and branch prediction Sorting O(n·log n) comparisons →  (n·log n) mispredictions WADS05

Binary Decimal Binary Binary Reflected Gray code Reads 4 bits Writes 4 bits Reads 4 bits Writes 1 bit Example 2 : Counting [ Bit-probe ] Question Does there exist a counter where one never needs to read all bits to increment the counter ?

Ridiculous Decimal b3b2b1b0b3b2b1b b0b0 b1b1 b1b b3b3 b3b3 b3b3 b2b2 0 1 Always reads 3 bits Always writes ≤ 2 bits General case n-bit counter n-1 reads and 3 writes lower bound log 2 n reads Redundant counters use 1 extra bit → Θ(log n) reads sufficient TAMC11 Example 2 : Counting [ Bit-probe ]

Example 3 : Integer Sorting [ RAM ] Input Output w bits n integers

Bucket sortO(n+2 w ) Radix sort; Hollerith 1887 van Emde Boas 1975 Willard 1983 superlinear space expected Kirkpatrick and Reicsh 1983 Merge sort: von Neumann 1945 comparison based optimal Thorup and Han 2002expected Andersson et al. 1998O(n) SWAT14O(n) Time per element w log 2 n·loglog nlog 2+ε n O(1) log n SWAT14 ? Example 3 : Integer Sorting [ RAM ] Open w ≤ log 2 n

Progress-Report94 Open if worst-case full persistence result exist ? Driscoll et al. STOC86 General techniques to make data structures of constant degree partial and fully persistent with constant amortized overhead. Theorem Pointer based data structures of constant degree can be made partial persistent with worst-case constant overhead. NJC96 Example 4 : Persistence [ Pointer Machine ] Fully persistent B-tree SODA12

Progress-Report94

Example 5 : Finger Search Trees [ Pointer Machine ]  Failed to solve cascaded splittings in full persistence technique  Turned towards the simpler (but related) problem of cascaded splittings in (a,b)-trees with finger search

May 1994, Finger Search Trees. BRICS Strategy Workshop. Hjarnø, Denmark Solution presented at STOC02 August 1997, Finger Search Trees with Constant Insertion Time. Oberwolfach Seminar on ``Effiziente Algoritmen'' February 2002, Optimal Finger Search Trees in the Pointer Machine. Dagstuhl Seminar on ``Data Structures''

Dagstuhl

Example 6 : Meldable Priority Queues [ RAM & Pointer Machine & Functional ] SODA96 [ RAM ] WADS95 [ Pointer ]STOC12 [ Pointer ] JFP96 [ Functional ]

Example 7 : Functional Catenable Sorted Lists [ Functional ]  Join( (1,3,9,11),(14,19,21) ) → (1,3,9,11,14,19,21) ESA06 Open Extend to Finger Search ?

Example 8 : Range Minimum Queries [ Succinct ] better upper or lower bound ? Indexing Model (input accessible) Encoding Model (input not accessable) m = 1 1D 2n+o(n) bits, O(1) time [FH07] n/c bits  Θ(c) time ESA10 ≥ 2n - O(log n) bits 2n+o(n) bits, O(1) time [F10] 1 < m < n1 < m < n O(mn  log n) bits, O(1) time [AY10] O(mn) bits, O(1) time ESA10 mn/c bits  Ω(c) time ESA10 O(c  log 2 c) time ESA10 O(c  log c  (loglog c) 2 ) time ESA12 Ω(mn  log m) bits ESA10 O(mn  log n) bits, O(1) time ESA10 O(mn  log m) bits, O(mn) time ESA13 m = n squared Θ(mn  log n) bits, O(1) time [DLW09,AY10] 1234  n  m i1i1 i2i2 j2j2 j1j1 RMQ(i 1, i 2, j 1, j 2 ) = (2,3) = position of min ≥ m Completely Ridiculous

Summary  Classic data structures – still a lot of open problems  Lesson learned – some problems take long time to solve  Future – new technologies  new models of computation ?  intrinsic trade-offs ?