On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries
2 4 3 5 1 7 6
min?
2 1 3 4 5 6 7
LCA?
Parallel Computing Day Ben-Gurion University
Tuesday, October 20, 2009
On Cartesian Trees, Lowest Common Ancestors, and Range Minimum - - PowerPoint PPT Presentation
On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 0 2 0 4 3 5 1 7 6 1 2 min? 3 6 4 5 7 LCA? Parallel Computing Day Ben-Gurion University Tuesday, October 20, 2009 RMQ 2 0 4 3 5 1 7 6 Tuesday,
On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries
2 4 3 5 1 7 6
min?
2 1 3 4 5 6 7
LCA?
Parallel Computing Day Ben-Gurion University
Tuesday, October 20, 20092 4 3 5 1 7 6
RMQ
Tuesday, October 20, 2009RMQ
2 4 3 5 1 7 6
min?
Tuesday, October 20, 2009RMQ
2 4 3 5 1 7 6
min?
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 2009RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 1
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 1 3 4 5 6 7
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 4 3 5 1 7 6
min?
2 1 3 4 5 6 7
RMQ & Cartesian Trees
LCA?
Tuesday, October 20, 20092 4 3 5 1 7 6
min?
2 1 3 4 5 6 7
RMQ & Cartesian Trees
LCA? O(n) [Gabow, Bentley, Tarjan 1984]
Tuesday, October 20, 20092 3 4 5
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 3 4 5 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 3 4 5 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 3 4 5 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 3 4 5 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 3 4 5 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 4 5 3 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20092 4 5 3 1
O(n) [Gabow, Bentley, Tarjan 1984]
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20091
O(n) [Gabow, Bentley, Tarjan 1984]
2 4 5 3 6 7
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20091
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n) [Gabow, Bentley, Tarjan 1984]
2 4 5 3 6 7
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 20091
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n) [Gabow, Bentley, Tarjan 1984]
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
RMQ & Cartesian Trees
2 4 3 5 1 7 6
Tuesday, October 20, 2009RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
0 2 0 1 3 4 3 5 3 1 6 7 6 1 0
Tuesday, October 20, 2009RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
0 2 0 1 3 4 3 5 3 1 6 7 6 1 0
Tuesday, October 20, 2009RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
0 1 0 1 2 3 2 3 2 1 2 3 2 1 0 0 2 0 1 3 4 3 5 3 1 6 7 6 1 0
Tuesday, October 20, 2009RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
0 1 0 1 2 3 2 3 2 1 2 3 2 1 0 0 2 0 1 3 4 3 5 3 1 6 7 6 1 0
Tuesday, October 20, 2009RMQ & Cartesian Trees
1
LCA: O(n) prep. O(1) query [Harel, Tarjan 1984] O(n)
[Schieber, Vishkin 1988] [Berkman, Vishkin 1993] [Bender et al. 2005] [Fischer, Heun 2006]
2 4 5 3 6 7
min?
0 1 0 1 2 3 2 3 2 1 2 3 2 1 0 0 2 0 1 3 4 3 5 3 1 6 7 6 1 0 0 1 0 1 2 3 2 3 2 1 2 3 2 1 0
Tuesday, October 20, 2009RMQ
2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
Tuesday, October 20, 20092 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
RMQ
Tuesday, October 20, 20092 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min = 3
RMQ
Tuesday, October 20, 20092 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min = 3 min = 1
RMQ
Tuesday, October 20, 20092 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min?
RMQ
Tuesday, October 20, 20092 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min?
RMQ
Tuesday, October 20, 20091 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
RMQ
Tuesday, October 20, 20091 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
¼ log n ¼ log n ¼ log n ¼ log n
RMQ
Tuesday, October 20, 20091 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
¼ log n ¼ log n ¼ log n ¼ log n
RMQ
Tuesday, October 20, 2009¼ log n ¼ log n ¼ log n ¼ log n
1 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min?
RMQ
Tuesday, October 20, 2009¼ log n ¼ log n ¼ log n ¼ log n
1 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min?
RMQ
Tuesday, October 20, 2009¼ log n ¼ log n ¼ log n ¼ log n
1 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
min?
RMQ
Tuesday, October 20, 2009RMQ 1
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Tuesday, October 20, 2009RMQ 1
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Tuesday, October 20, 2009Recursive Solution
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Recursive Solution
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Recursive Solution
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
O(log n loglog n) prep.
Recursive Solution
¼ log n ¼ log n ¼ log n ¼ log n
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
O(log n loglog n) prep.
Recursive Solution
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
¼ log n ¼ log n ¼ log n ¼ log n
Tuesday, October 20, 2009Recursive Solution
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
¼ log n ¼ log n ¼ log n ¼ log n
Tuesday, October 20, 2009Recursive Solution
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
¼ log n ¼ log n ¼ log n ¼ log n
Tuesday, October 20, 2009Parallel RMQ
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009Parallel RMQ
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009Parallel RMQ
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009Parallel RMQ
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
√n √n √n √n
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009Parallel RMQ
1 2 1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
√n √n √n √n
[Berkman and Vishkin 1993]
Tuesday, October 20, 20091 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009in O(1) time using n processors [Fich, Ragde and Wigderson 1984]
1 1 2 3 2 1 1 2 1 2 3 4 5 4 3 2 3 4
Parallel RMQ 1
[Berkman and Vishkin 1993]
Tuesday, October 20, 2009Problems with RMQ 1
2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
Tuesday, October 20, 2009Problems with RMQ 1
2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
Tuesday, October 20, 2009[Fischer, Heun 2006]
Problems with RMQ 1
√n
¼ log n ¼ log n ¼ log n ¼ log n
1 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
Tuesday, October 20, 2009[Fischer, Heun 2006]
Problems with RMQ 1
√n
¼ log n ¼ log n ¼ log n ¼ log n
1 2 2 4 3 5 4 7 5 6 1 4 8 6 7 3 4 2 5 4
Tuesday, October 20, 2009Cache-Oblivious RMQ
O(n) prep. O(1) query (serial algorithm)
[Demaine, Landau and W. 2009]
Tuesday, October 20, 2009A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6
Tuesday, October 20, 2009A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
Tuesday, October 20, 2009A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
...
i
Tuesday, October 20, 2009A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
...
i
011 1011 1011 1011 1 ... ... ... ...
{
i1
{
i2
{
i3
{
i4
Tuesday, October 20, 2009[ ]
A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
...
i
011 1011 1011 1011 1 ... ... ... ...
{
i1
{
i2
{
i3
{
i4 ∈
√n
Tuesday, October 20, 2009{ A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
...
i
011 1011 1011 1011 1
i1 i2
{
i3
{
i4 ∈
√n
min?
{
... ... ... ...
[ ]
Tuesday, October 20, 2009{
011⋄⋄⋄1011⋄⋄⋄1011⋄⋄⋄1011⋄⋄⋄1
A Cache-Oblivious Cartesian Tree
¼ log n
2 4 3 5 1 7 6 2 1 3 4 5 6 7
...
i i1 i2
{
i3
{
i4 ∈
√n
min?
{
[ ]
Tuesday, October 20, 2009RMQ Generalization I: A Cartesian Tree of a Tree
[Demaine, Landau and W. 2009]
Tuesday, October 20, 2009RMQ Generalization I: A Cartesian Tree of a Tree
RMQ Generalization I: A Cartesian Tree of a Tree
along any simple path
Tuesday, October 20, 2009RMQ Generalization I: A Cartesian Tree of a Tree
along any simple path
Tree [Hu 1961]
Tuesday, October 20, 20092
RMQ Generalization I: A Cartesian Tree of a Tree
along any simple path
Tree [Hu 1961]
6 3 5 1 6 3
Tuesday, October 20, 20092
RMQ Generalization I: A Cartesian Tree of a Tree
along any simple path
Tree [Hu 1961]
6 3 5 1 6 3
u v
Tuesday, October 20, 20092
RMQ Generalization I: A Cartesian Tree of a Tree
along any simple path
Tree [Hu 1961]
6 3 5 1 6 3
u v
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3
u v
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3
u v
5
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3
u v
5 6
Tuesday, October 20, 2009any simple path
Tree [Hu 1961]
O(n αk(n)) prep. O(k) query [Alon and Schieber 1987]
Ω(n αk(n)) prep. for O(k) query [Pettie 2002]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 2009along any simple path
Tree [Hu 1961]
2
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 20092
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 20092
RMQ Generalization I: A Cartesian Tree of a Tree
6 3 5 1 6 3 1 1
Tuesday, October 20, 20092
RMQ Generalization I: Compared to AlonSchieber
6 3 5 1 6 3 1 1
Tuesday, October 20, 20092
RMQ Generalization I: Compared to AlonSchieber
6 3 5 1 6 3 1 1
2
RMQ Generalization I: Compared to AlonSchieber
6 3 5 1 6 3 1 1
2
RMQ Generalization I: Compared to AlonSchieber
6 3 5 1 6 3 1 1
2
RMQ Generalization I: Compared to AlonSchieber
6 3 5 1 6 3 1 1
RMQ Generalization II: 2D Cartesian Tree
[Demaine, Landau and W. 2009]
Tuesday, October 20, 2009RMQ Generalization II: 2D Cartesian Tree
RMQ Generalization II: 2D Cartesian Tree
2 4 3 1 9 3 3 7 3 4 3 5 7 6 2 3 8 5 6 4 4 4 7 4 3 5 8 8 6 2 8 1 8 5 1 7 6 2 4 3 5 5 7 6
Tuesday, October 20, 2009RMQ Generalization II: 2D Cartesian Tree
2 4 3 1 9 3 3 7 3 4 3 5 7 6 2 3 8 5 6 4 4 4 7 4 3 5 8 8 6 2 8 1 8 5 1 7 6 2 4 3 5 5 7 6
Tuesday, October 20, 2009Lewenstein 2007]
RMQ Generalization II: 2D Cartesian Tree
2 4 3 1 9 3 3 7 3 4 3 5 7 6 2 3 8 5 6 4 4 4 7 4 3 5 8 8 6 2 8 1 8 5 1 7 6 2 4 3 5 5 7 6
Tuesday, October 20, 2009Lewenstein 2007]
RMQ Generalization II: 2D Cartesian Tree
No 2D Cartesian tree: # different 2D-RMQ matrices ≈ n2!
2 4 3 1 9 3 3 7 3 4 3 5 7 6 2 3 8 5 6 4 4 4 7 4 3 5 8 8 6 2 8 1 8 5 1 7 6 2 4 3 5 5 7 6
Tuesday, October 20, 2009Lewenstein 2007]
2D Cartesian Tree
No 2D Cartesian tree: # different 2D-RMQ matrices ≈ n2!
2 4 3 1 9 3 3 7 3 4 3 5 7 6 2 3 8 5 6 4 4 4 7 4 3 5 8 8 6 2 8 1 8 5 1 7 6 2 4 3 5 5 7 6
Tuesday, October 20, 2009