The Encoding Complexity of Two Dimensional Range Minimum Data Structures European Symposium on Algorithms, Inria, Sophia Antipolis, France, September 3, n m i1i1 i2i2 j2j2 j1j1 Gerth Stølting BrodalAndrej BrodnikPooya Davoodi AarhusPrimorska & LjubljanaPolytechnic New York 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
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
Encoding m = 1 (Cartesian tree) j1j1 j2j2 RMQ(j 1, j 2 ) = NCA(j 1, j 2 ) To support RMQ queries we need... tree structure ( ) mapping between nodes and cells (inorder) n 1 min ?
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 [NEW] m = n squared Ω(mn log n) bits [DLW09] O(mn log n) bits, O(1) time [AY10] Some (Less Trivial) Results
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
Tree Representation Requirements Cells leafs Query Answer = rightmost leaf Trivial solution Sort leafs Ω(mn log n) bits
Components = 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)) C1C C3C C2C L L-adjacency Spanning tree structures Spanning tree edges Component root positions Local leaf ranks in components
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 [NEW] m = n squared Ω(mn log n) bits [DLW09] O(mn log n) bits, O(1) time [AY10] Results better upper or lower bound ? Thank you