Presentation is loading. Please wait.

Presentation is loading. Please wait.

Algorithm Engineering, September 2013Data Structures, February-March 2010Data Structures, February-March 2006 Cache-Oblivious and Cache-Aware Algorithms,

Similar presentations


Presentation on theme: "Algorithm Engineering, September 2013Data Structures, February-March 2010Data Structures, February-March 2006 Cache-Oblivious and Cache-Aware Algorithms,"— Presentation transcript:

1 Algorithm Engineering, September 2013Data Structures, February-March 2010Data Structures, February-March 2006 Cache-Oblivious and Cache-Aware Algorithms, July 2004Data Structures, February-March 2002Experimental Algorithmics, September 2000 Data Structures, February-March 2000Data Structures, March 1998Data Structures, February-March 1996 Cache-Oblivious Data Structures and Algorithms for Undirected BFS and SSSP Rolf Fagerberg University of Southern Denmark - Odense with G.S. Brodal, U. Meyer, N. Zeh

2 Range Minimum Queries (Part II) Gerth Stølting Brodal Aarhus University Dagstuhl Seminar on Data Structures and Advanced Models of Computation on Big Data, February 23-28, 2014 Join work with Andrej Brodnik and Pooya Davoodi (ESA 2013)

3 1234  n 131342128 27146111537 3139921274416  2328513447 m34241 911 i1i1 i2i2 j2j2 j1j1 Cost Space (bits) Query time Preprocessing time Models Indexing (input accessible) Encoding (input not accessible) RMQ(i 1, i 2, j 1, j 2 ) = (2,3) = position of min Assumption m ≤ n The Problem

4 Indexing Model (input accessible) Encoding Model (input not accessable) m ≤ n Preprocessing: Do nothing ! Very fast preprocessing Very space efficient Queries O(mn) Tabulate the answer to all ~ m 2 n 2 possible queries Preprocessing & space O(m 2 n 2  log n) bits Queries O(1) Store rank of all elements Preprocessing & space O(mn  log n) bits Queries O(mn) Some (Trivial) Results

5 Encoding m = 1 (Cartesian tree) 352104116719148 3 5 2 10 4 11 6 7 1 9 14 8 j1j1 j2j2 RMQ(j 1, j 2 ) = NCA(j 1, j 2 ) To support RMQ queries we need... tree structure (111101001100110000100100) mapping between nodes and cells (inorder) n 1 min ?

6 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 [BDS10] n/c bits, O(c) time [BDS10] ≥ 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 [BDS10] mn/c bits  Ω(c) time [BDS10] O(c  log 2 c) time [BDS10] O(c  log c  (loglog c) 2 ) time [BDLRR12] Ω(mn  log m) bits [BDS10] O(mn  log n) bits, O(1) time [BDS10] O(mn  log m) bits, ? time [BBD13] m = n squared Ω(mn  log n) bits [DLW09] O(mn  log n) bits, O(1) time [AY10] Some (Less Trivial) Results

7 New Results 1. O(nm  (log m+loglog n)) bits – tree representation – component decomposition 2. O(nm  log m  log* n)) bits – bootstrapping 3. O(nm  log m) bits – relative positions of roots – refined component construction

8 Tree Representation 11413 96128 52107 12108119675432 1 Requirements Cells  leafs Query  Answer = rightmost leaf 11413 96128 52107 12108672 121110987654321 Trivial solution Sort leafs Ω(mn  log n) bits

9 Components  = 3 11413 96128 52107 12108119675432 1 Construction Consider elements in decreasing order Find connected components with size ≥  L-adjacency  |C 1 |≤ 4  -3, |C i |≤ 2m  Representation O(mn + mn/  log n + mn  log m + mn  log(m  ))  = log n  O(mn  (log m+loglog n)) 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 1 12108 C1C1 75432 C3C3 1196 C2C2 413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 11413 96128 52107 L L-adjacency Spanning tree structures Spanning tree edges Component root positions Local leaf ranks in components

10 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 [BDS10] n/c bits, O(c) time [BDS10] ≥ 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 [BDS10] mn/c bits  Ω(c) time [BDS10] O(c  log 2 c) time [BDS10] O(c  log c  (loglog c) 2 ) time [BDLRR12] Ω(mn  log m) bits [BDS10] O(mn  log n) bits, O(1) time [BDS10] O(mn  log m) bits, ? time [BBD13] m = n squared Ω(mn  log n) bits [DLW09] O(mn  log n) bits, O(1) time [AY10] Results better upper or lower bound ?

11 1D Range Minimum Queues O(n log n) words O(n) words Fischer Kasper Nielsen, Mathieu Dehouck, Sarfraz Raza 2013

12 1D Range Minimum Queues Kasper Nielsen, Mathieu Dehouck, Sarfraz Raza 2013

13 1D Range Minimum Queues Kasper Nielsen, Mathieu Dehouck, Sarfraz Raza 2013

14 1D Range Minimum Queues Kasper Nielsen, Mathieu Dehouck, Sarfraz Raza 2013


Download ppt "Algorithm Engineering, September 2013Data Structures, February-March 2010Data Structures, February-March 2006 Cache-Oblivious and Cache-Aware Algorithms,"

Similar presentations


Ads by Google