+ All Categories
Home > Documents > On Cartesian Trees, Lowest Common Ancestors, and Range...

On Cartesian Trees, Lowest Common Ancestors, and Range...

Date post: 27-Sep-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
108
On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3 5 1 7 6 min? 0 2 1 3 4 5 6 7 LCA? Parallel Computing Day Ben-Gurion University Tuesday, October 20, 2009
Transcript
Page 1: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries

2 0 4 3 5 1 7 6

min?

0

2 1

3

4 5

6

7

LCA?

Parallel Computing Day Ben-Gurion UniversityTuesday, October 20, 2009

Page 2: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

2 0 4 3 5 1 7 6

RMQ

Tuesday, October 20, 2009

Page 3: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ

2 0 4 3 5 1 7 6

min?

Tuesday, October 20, 2009

Page 4: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ

2 0 4 3 5 1 7 6

min?• Applications:

• String Processing & Computational Biology• Search Engines and Document Retrieval• Equivalence to LCA• Database Queries

Tuesday, October 20, 2009

Page 5: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 6: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 7: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 1

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 8: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 1

3

4 5

6

7

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 9: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

2 0 4 3 5 1 7 6

min?

0

2 1

3

4 5

6

7

RMQ & Cartesian Trees

LCA?

Tuesday, October 20, 2009

Page 10: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

2 0 4 3 5 1 7 6

min?

0

2 1

3

4 5

6

7

RMQ & Cartesian Trees

LCA?

O(n) [Gabow, Bentley, Tarjan 1984]

Tuesday, October 20, 2009

Page 11: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 5

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 12: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 5

1 O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 13: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 5

1 O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 14: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 51

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 15: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 51

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 16: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2 3

4 5

1

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 17: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2

4 5

31

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 18: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0

2

4 5

3

1

O(n) [Gabow, Bentley, Tarjan 1984]

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 19: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

1

O(n) [Gabow, Bentley, Tarjan 1984]

0

2

4 5

3 6

7

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 20: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

1

LCA: O(n) prep. O(1) query [Harel, Tarjan 1984]

O(n) [Gabow, Bentley, Tarjan 1984]

0

2

4 5

3 6

7

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 21: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

1

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]

0

2

4 5

3 6

7

RMQ & Cartesian Trees

2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 22: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

2

4 5

3 6

7

{Tuesday, October 20, 2009

Page 23: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

2

4 5

3 6

7

{

0 2 0 1 3 4 3 5 3 1 6 7 6 1 0

Tuesday, October 20, 2009

Page 24: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

2

4 5

3 6

7

{

0 2 0 1 3 4 3 5 3 1 6 7 6 1 0

Tuesday, October 20, 2009

Page 25: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

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, 2009

Page 26: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

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, 2009

Page 27: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

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]

0

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, 2009

Page 28: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ

• Warmup: O(n log n) prep. O(1) query:

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

Tuesday, October 20, 2009

Page 29: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Warmup: O(n log n) prep. O(1) query:• Compute min of every interval I s.t | I | is a power of two

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

RMQ

Tuesday, October 20, 2009

Page 30: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Warmup: O(n log n) prep. O(1) query:• Compute min of every interval I s.t | I | is a power of two

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min = 3

RMQ

Tuesday, October 20, 2009

Page 31: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Warmup: O(n log n) prep. O(1) query:• Compute min of every interval I s.t | I | is a power of two

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min = 3 min = 1

RMQ

Tuesday, October 20, 2009

Page 32: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Warmup: O(n log n) prep. O(1) query:• Compute min of every interval I s.t | I | is a power of two• Query is composed of two overlapping intervals

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min?

RMQ

Tuesday, October 20, 2009

Page 33: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Warmup: O(n log n) prep. O(1) query:• Compute min of every interval I s.t | I | is a power of two• Query is composed of two overlapping intervals

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min?

RMQ

Tuesday, October 20, 2009

Page 34: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0 0 1 22 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

RMQ

Tuesday, October 20, 2009

Page 35: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0 0 1 22 0 4 3 5 4 7 0 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

Page 36: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

0 0 1 2

2 0 4 3 5 4 7 0 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

Page 37: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min?

RMQ

Tuesday, October 20, 2009

Page 38: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min?

RMQ

Tuesday, October 20, 2009

Page 39: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

min?

RMQ

Tuesday, October 20, 2009

Page 40: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

RMQ 1

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Tuesday, October 20, 2009

Page 41: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

RMQ 1

• # different Blocks = # different 1 vectors = 2¼ log n = n¼• Lookup table

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Tuesday, October 20, 2009

Page 42: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Recursive Solution

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

• Use the “Warmup” solution on each block

Tuesday, October 20, 2009

Page 43: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Recursive Solution

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4{

• Use the “Warmup” solution on each block

Tuesday, October 20, 2009

Page 44: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Recursive Solution

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4{O(log n loglog n) prep.

• Use the “Warmup” solution on each block

Tuesday, October 20, 2009

Page 45: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Recursive Solution

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4{O(log n loglog n) prep.

• Use the “Warmup” solution on each block• O(n loglog n) prep. O(1) query

Tuesday, October 20, 2009

Page 46: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Use the “Warmup” solution on each block• O(n loglog n) prep. O(1) query• O(n logloglog n) prep. O(1) query

Recursive Solution

0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

¼ log n ¼ log n ¼ log n ¼ log n

Tuesday, October 20, 2009

Page 47: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Use the “Warmup” solution on each block• O(n loglog n) prep. O(1) query• O(n logloglog n) prep. O(1) query• O(n αk(n)) prep. O(k) query [Alon&Schieber 1987, Chazelle&Rosenberg 1989]

Recursive Solution

0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

¼ log n ¼ log n ¼ log n ¼ log n

Tuesday, October 20, 2009

Page 48: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Use the “Warmup” solution on each block• O(n loglog n) prep. O(1) query• O(n logloglog n) prep. O(1) query• O(n αk(n)) prep. O(k) query [Alon&Schieber 1987, Chazelle&Rosenberg 1989]

• Why? • MIN any semiring operation• RMQ generalizations• Parallel Computing

Recursive Solution

0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

¼ log n ¼ log n ¼ log n ¼ log n

Tuesday, October 20, 2009

Page 49: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Parallel RMQ

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

[Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 50: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Parallel RMQ

• Min of n elements in O(1) time using n2 processors [Valiant 1975]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

[Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 51: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Parallel RMQ

• Min of n elements in O(1) time using n2 processors [Valiant 1975]

• O(1) RMQ using n4 processors

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

[Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 52: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Parallel RMQ

• Min of n elements in O(1) time using n2 processors [Valiant 1975]

• O(1) RMQ using n4 processors• O(1) RMQ using n2.5 processors

0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

√n √n √n √n

[Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 53: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Parallel RMQ

• Min of n elements in O(1) time using n2 processors [Valiant 1975]

• O(1) RMQ using n4 processors• O(1) RMQ using n2.5 processors• O(1/ε) RMQ using n1+ε processors

0 0 1 2

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

√n √n √n √n

[Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 54: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 55: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 56: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 57: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 58: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 59: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 60: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 61: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

• n log3 n processors, O(1) time, O(1) query

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 62: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Min of n integers each between 1 and n in O(1) time using n processors [Fich, Ragde and Wigderson 1984]

• n log3 n processors, O(1) time, O(1) query• n αk(n) processors, O(k) time, O(k) query

1 0 1 2 3 2 1 0 1 2 1 2 3 4 5 4 3 2 3 4

Parallel RMQ 1 [Berkman and Vishkin 1993]

Tuesday, October 20, 2009

Page 63: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

Problems with RMQ 1

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

Tuesday, October 20, 2009

Page 64: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

• inefficient in parallel• inefficient in terms of cache-misses (can’t be done via scans)

Problems with RMQ 1

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

Tuesday, October 20, 2009

Page 65: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

• inefficient in parallel• inefficient in terms of cache-misses (can’t be done via scans)

• # different Blocks = # different Cartesian trees = 4¼ log n =[Fischer, Heun 2006]

Problems with RMQ 1

√n

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

Tuesday, October 20, 2009

Page 66: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• RMQ LCA RMQ 1

• inefficient in parallel• inefficient in terms of cache-misses (can’t be done via scans)

• # different Blocks = # different Cartesian trees = 4¼ log n =[Fischer, Heun 2006]

• Lookup table: index, construct

Problems with RMQ 1

√n

¼ log n ¼ log n ¼ log n ¼ log n0 0 1 2

2 0 4 3 5 4 7 0 5 6 1 4 8 6 7 3 4 2 5 4

Tuesday, October 20, 2009

Page 67: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Cache-Oblivious RMQ

• An optimal RMQ solution that only makes sequential scans

O(n) prep. O(1) query (serial algorithm)

[Demaine, Landau and W. 2009]

Tuesday, October 20, 2009

Page 68: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

Tuesday, October 20, 2009

Page 69: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

Tuesday, October 20, 2009

Page 70: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

• cache-oblivious stack holds rightmost path

Tuesday, October 20, 2009

Page 71: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

• cache-oblivious stack holds rightmost path• when we climb (pop) i vertices, concatenate 0111 11 ... {

i

Tuesday, October 20, 2009

Page 72: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• cache-oblivious stack holds rightmost path• when we climb (pop) i vertices, concatenate 0111 11

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

... {i

011 1011 1011 1011 1... ... ... ...{

i1

{i2

{i3

{

i4

Tuesday, October 20, 2009

Page 73: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• cache-oblivious stack holds rightmost path• when we climb (pop) i vertices, concatenate 0111 11

[ ]

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

... {i

011 1011 1011 1011 1... ... ... ...{

i1

{i2

{i3

{

i4

∈ √n

Tuesday, October 20, 2009

Page 74: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• cache-oblivious stack holds rightmost path• when we climb (pop) i vertices, concatenate 0111 11

{

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

... {i

011 1011 1011 1011 1i1 i2

{i3

{

i4

∈ √n

• ∀ binary string and ∀ query:

min?{ ... ... ...... [ ]

Tuesday, October 20, 2009

Page 75: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• cache-oblivious stack holds rightmost path• when we climb (pop) i vertices, concatenate 0111 11

{011⋄⋄⋄1011⋄⋄⋄1011⋄⋄⋄1011⋄⋄⋄1

A Cache-Oblivious Cartesian Tree

¼ log n2 0 4 3 5 1 7 6

0

2 1

3

4 5

6

7

... {i

i1 i2

{i3

{

i4

∈ √n

• ∀ binary string and ∀ query:

min?{ [ ]

Tuesday, October 20, 2009

Page 76: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization I:A Cartesian Tree of a Tree

[Demaine, Landau and W. 2009]

Tuesday, October 20, 2009

Page 77: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph

Tuesday, October 20, 2009

Page 78: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

Tuesday, October 20, 2009

Page 79: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961]

Tuesday, October 20, 2009

Page 80: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

2

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961]

6

3

5 1

6 3

Tuesday, October 20, 2009

Page 81: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

2

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961]

6

3

5 1

6 3u

v

Tuesday, October 20, 2009

Page 82: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

22

RMQ Generalization I:A Cartesian Tree of a Tree

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961]

6

3

5 1

6 3u

v

Tuesday, October 20, 2009

Page 83: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3u

v

Tuesday, October 20, 2009

Page 84: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3u

v5

Tuesday, October 20, 2009

Page 85: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3u

v5

6

Tuesday, October 20, 2009

Page 86: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v along

any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

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, 2009

Page 87: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

Tuesday, October 20, 2009

Page 88: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1

Tuesday, October 20, 2009

Page 89: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 90: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 91: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 92: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 93: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The Bottleneck Edge Query problem (RMQ on graphs\trees):• preprocess an edge-weighted graph• query asks for max flow that can be routed between u,v

along any simple path

• Undirected graphs: solve problem on the Maximum Spanning Tree [Hu 1961] •The Minimum Spanning Tree Verification problem

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 94: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 95: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:A Cartesian Tree of a Tree

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 96: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:Compared to AlonSchieber

6

3

5 1

6 3

1 1

Tuesday, October 20, 2009

Page 97: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:Compared to AlonSchieber

6

3

5 1

6 3

1 1

• Linear-time if edge-weights are sorted or integers

Tuesday, October 20, 2009

Page 98: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:Compared to AlonSchieber

6

3

5 1

6 3

1 1

• Linear-time if edge-weights are sorted or integers• Otherwise we get linear-space, O(n log[k]

n) prep. O(k) query

Tuesday, October 20, 2009

Page 99: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:Compared to AlonSchieber

6

3

5 1

6 3

1 1

• Linear-time if edge-weights are sorted or integers• Otherwise we get linear-space, O(n log[k]

n) prep. O(k) query• Maintain dynamic Cartesian tree and LCA info

Tuesday, October 20, 2009

Page 100: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• Construct Cartesian tree of an input tree in O(n + sort(edges))• Tight lower bound

2

RMQ Generalization I:Compared to AlonSchieber

6

3

5 1

6 3

1 1

• Linear-time if edge-weights are sorted or integers• Otherwise we get linear-space, O(n log[k]

n) prep. O(k) query• Maintain dynamic Cartesian tree and LCA info• Distributed: LCA labeling of the Cartesian tree

Tuesday, October 20, 2009

Page 101: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization II:2D Cartesian Tree [Demaine, Landau and W. 2009]

Tuesday, October 20, 2009

Page 102: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization II:2D Cartesian Tree

• The 2D-RMQ problem:

Tuesday, October 20, 2009

Page 103: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization II:2D Cartesian Tree

• The 2D-RMQ problem: 2 0 4 3 1 9 3 37 3 4 3 5 0 7 62 0 3 8 5 6 4 44 7 4 3 5 8 8 62 8 1 8 5 1 7 62 0 4 3 5 5 7 6

Tuesday, October 20, 2009

Page 104: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

RMQ Generalization II:2D Cartesian Tree

• The 2D-RMQ problem: 2 0 4 3 1 9 3 37 3 4 3 5 0 7 62 0 3 8 5 6 4 44 7 4 3 5 8 8 62 8 1 8 5 1 7 62 0 4 3 5 5 7 6

Tuesday, October 20, 2009

Page 105: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The 2D-RMQ problem:

• O(n2 log n) prep. O(log n) query [Gabow, Bentley,Tarjan 1984]• O(n2

αk(n)2) prep. O(k) query [Chazelle, Rosenberg 1989]• O(n2 log[k]

n) prep, O(n2) space, O(k) query [Amir, Fischer, Lewenstein 2007]

RMQ Generalization II:2D Cartesian Tree

2 0 4 3 1 9 3 37 3 4 3 5 0 7 62 0 3 8 5 6 4 44 7 4 3 5 8 8 62 8 1 8 5 1 7 62 0 4 3 5 5 7 6

Tuesday, October 20, 2009

Page 106: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The 2D-RMQ problem:

• O(n2 log n) prep. O(log n) query [Gabow, Bentley,Tarjan 1984]• O(n2

αk(n)2) prep. O(k) query [Chazelle, Rosenberg 1989]• O(n2 log[k]

n) prep, O(n2) space, O(k) query [Amir, Fischer, Lewenstein 2007]

RMQ Generalization II:2D Cartesian Tree

No 2D Cartesian tree:# different 2D-RMQ matrices ≈ n2!

2 0 4 3 1 9 3 37 3 4 3 5 0 7 62 0 3 8 5 6 4 44 7 4 3 5 8 8 62 8 1 8 5 1 7 62 0 4 3 5 5 7 6

Tuesday, October 20, 2009

Page 107: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

• The 2D-RMQ problem:

• O(n2 log n) prep. O(log n) query [Gabow, Bentley,Tarjan 1984]• O(n2

αk(n)2) prep. O(k) query [Chazelle, Rosenberg 1989]• O(n2 log[k]

n) prep, O(n2) space, O(k) query [Amir, Fischer, Lewenstein 2007] • O(n2) prep. O(1) query [Yuan, Atallah 2010]•

RMQ Generalization II:2D Cartesian Tree

No 2D Cartesian tree:# different 2D-RMQ matrices ≈ n2!

2 0 4 3 1 9 3 37 3 4 3 5 0 7 62 0 3 8 5 6 4 44 7 4 3 5 8 8 62 8 1 8 5 1 7 62 0 4 3 5 5 7 6

Tuesday, October 20, 2009

Page 108: On Cartesian Trees, Lowest Common Ancestors, and Range ...frankel/PCDay09/Slides/OrenWeinmann.pdf · On Cartesian Trees, Lowest Common Ancestors, and Range Minimum Queries 2 0 4 3

Thank You!

Tuesday, October 20, 2009


Recommended