phd defense - aarhus universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · phd...

215
AARHUS UNIVERSITY PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Upload: others

Post on 06-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

AARHUSUNIVERSITY

PhD Defense

Jesper Sindahl Nielsen

Implicit Data Structures,Sorting, and Text Indexing

Page 2: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

Page 3: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 4: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 5: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 6: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 7: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 8: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

1/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 9: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Page 10: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithm

Page 11: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput

Page 12: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

Page 13: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

x + yAddition

Page 14: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

x=5y=7 x + y

Addition

Page 15: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

Page 16: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

Sort L

Page 17: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

L=5,1,3,2,4,6 Sort L

Page 18: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

L=1,2,3,4,5,6L=5,1,3,2,4,6 Sort L

We want to design fast algorithms

Page 19: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Page 20: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data

Page 21: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

DataData

Structure

Page 22: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

DataData

Structure

Data organized insome clever manner

Page 23: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Page 24: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

Page 25: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Page 26: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

Page 27: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

input

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

Page 28: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

Page 29: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

Page 30: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

Arnold

Page 31: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

find phone number

Arnold

Page 32: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

find phone number

Arnold 123456

Page 33: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

find phone number

Mom 375874

Arnold 123456

Page 34: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

DataStructure

Queryinput

answer to query on data

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123

find phone number

Mom 375874

Arnold 123456

efficient when data is organized

Page 35: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Page 36: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Dad,357951

Page 37: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Dad,357951

Page 38: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Dad,357951

Advisor,359617Arnold,123456Brother,681958Dad,357951Jean,456321Mom,375874Sylvester,987654Wesley,789123

Change phone number

Page 39: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Dad,357951

Advisor,359617Arnold,123456Brother,681958Dad,357951Jean,456321Mom,375874Sylvester,987654Wesley,789123

Change phone number

Page 40: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Mom,375874Dad,278393Brother,681958Advisor,359617Arnold,123456Sylvester,987654Jean-Claude,456321Wesley,789123

create sorted phonebook

Advisor,359617Arnold,123456Brother,681958Dad,278393Jean,456321Mom,375874Sylvester,987654Wesley,789123Data

StructureUpdate

inputUpd. DataStructure

Dad,357951

Advisor,359617Arnold,123456Brother,681958Dad,357951Jean,456321Mom,375874Sylvester,987654Wesley,789123

Change phone number

We want space efficient structures,fast queries, and fast updates

Page 41: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Outline

4/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 42: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Outline

4/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 43: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Page 44: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

Page 45: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

Data Structure has n comparable elements, laid out in an array of size n.

Page 46: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Page 47: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Page 48: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Page 49: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

Page 50: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

We work with the strict implicit model

Page 51: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

We work with the strict implicit model

Fundamental trick: pair encoding bits.

Page 52: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

We work with the strict implicit model

Fundamental trick: pair encoding bits. x yx<y ⇒1

x>y ⇒0

Page 53: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

We work with the strict implicit model

Fundamental trick: pair encoding bits. x yx<y ⇒1

x>y ⇒0Requires distinct elements.

Page 54: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

0 1 2

Data Structure has n comparable elements, laid out in an array of size n.

n− 1

Only the array and n is maintained between operations.

Strict implicit model: Nothing but elements and n stored

Weak implicit model: Allow a constant number of extra memory cells

We work with the strict implicit model

Fundamental trick: pair encoding bits. x yx<y ⇒1

x>y ⇒0Requires distinct elements.

Procedures can use a constant number of working memory/registers

Page 55: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Page 56: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Maintain a (dynamic) set of n keys, while supporting:

Page 57: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 58: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 59: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 60: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 61: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 62: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 63: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Page 64: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

Page 65: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

Page 66: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

n=11

Page 67: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

finger

n=11

Page 68: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

finger

n=11

Find(m)

Page 69: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

finger

n=11

Find(m)

Distance: t = 3

Page 70: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

Find(k)

Predecessor(k)

Only in dynamic structures

Time: O(log n)

Successor(k)

Maintain a (dynamic) set of n keys, while supporting:

Special element: the finger element

a c d g j ` m o q s z0 1 2 3 4 5 6 7 8 9 10

finger

n=11

Find(m)

Distance: t = 3

Time: O(log t) forFind, Predecessor, and Successor

Page 71: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

Page 72: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

Page 73: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

22`

· · · · · · · · ·

Page 74: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

D0

22`

· · · · · · · · ·

Page 75: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

D0 D1

22`

· · · · · · · · ·

Page 76: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

22`

· · · · · · · · ·

Page 77: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

22`

· · ·

Elements in sorted order

· · · · · ·

Page 78: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 79: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 80: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 81: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 82: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 83: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 84: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · · · · ·

Page 85: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · ·

· · · · · ·

· · ·

Page 86: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · ·

· · · · · ·

· · ·

Operation Time

Insert

Delete

Find O(log t)

Change-Finger

O(logn)

O(logn)

O(nε)

Page 87: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

f

22`

· · ·

Elements in sorted order

· · ·

· · · · · ·

· · ·

Operation Time

Insert

Delete

Find O(log t)

Change-Finger

O(logn)

O(logn)

O(nε)

optimal trade-off

Page 88: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Page 89: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Page 90: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Page 91: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Page 92: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Page 93: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

Page 94: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

Page 95: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Carlsson et al.

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

Page 96: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Carlsson et al.

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

log n1 log n no yesEdelkamp et al.

Page 97: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Carlsson et al.

Harvey & Zatloukal

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

log n1 log n no yesEdelkamp et al.

? log n? 1 ? log n yes yes

Page 98: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Franceschini & Munro

Carlsson et al.

Harvey & Zatloukal

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

log n1 log n no yesEdelkamp et al.

? log n? 1 ? log n yes yes

? log n? log n ? 1 yes no

Page 99: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Franceschini & Munro

Carlsson et al.

Harvey & Zatloukal

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

log n1 log n no yesEdelkamp et al.

? log n? 1 ? log n yes yes

? log n? log n ? 1 yes no

? log n? 1 ? 1 yes yesNew

Page 100: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Priority Queues

8/24

Jesper Sindahl Nielsen

Maintain a set of n keys and support:

• FindMin: Return the minimum element• ExtractMin: Remove the minimum element from the set• Insert(k): Add the key k to the set

Williams

Franceschini & Munro

Carlsson et al.

Harvey & Zatloukal

Insert ExtractMin Moves StrictIdenticalElements

Amortized bounds are marked with ?

log nlog n log n yes yes

log n1 log n no yes

log n1 log n no yesEdelkamp et al.

? log n? 1 ? log n yes yes

? log n? log n ? 1 yes no

? log n? 1 ? 1 yes yes

log n1 log n yes no

New

New

Page 101: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Outline

9/24

Jesper Sindahl Nielsen

Page 102: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Outline

9/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 103: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Outline

9/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 104: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

Page 105: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

Page 106: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

Page 107: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

Page 108: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

Page 109: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

Page 110: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

A B

287315

Page 111: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

A B

287315

Question: Can we sort faster ifwe have access to a digital scale?

Page 112: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

A B

287315

Question: Can we sort faster ifwe have access to a digital scale?

Answer: Yes.

Page 113: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

A B

287315

Question: Can we sort faster ifwe have access to a digital scale?

Answer: Yes.

Question: How much faster?

Page 114: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

To sort n gold pieces we needΘ(n log n) scalings/comparisons

A B

287315

Question: Can we sort faster ifwe have access to a digital scale?

Answer: Yes.

Depends on accuracy of the scale

Question: How much faster?

Page 115: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Page 116: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

w is the number of bits per word.

Page 117: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

w is the number of bits per word.

Page 118: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

w is the number of bits per word.

Page 119: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

Kirkpatrick &Reisch (1984)

O(n log wlogn

) Only asymptotically better thanvEB when w = O(log n)

w is the number of bits per word.

Page 120: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

Kirkpatrick &Reisch (1984)

O(n log wlogn

) Only asymptotically better thanvEB when w = O(log n)

Signature sort(1995)

O(n) O(n) Only for w = Ω(log2+ε n)

w is the number of bits per word.

Page 121: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

Kirkpatrick &Reisch (1984)

O(n log wlogn

) Only asymptotically better thanvEB when w = O(log n)

Signature sort(1995)

O(n) O(n) Only for w = Ω(log2+ε n)

Han & Thorup(2002) O(n

√log(w/ log n)) Randomized with mulitplicationO(n)

w is the number of bits per word.

Page 122: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

Kirkpatrick &Reisch (1984)

O(n log wlogn

) Only asymptotically better thanvEB when w = O(log n)

Signature sort(1995)

O(n) O(n) Only for w = Ω(log2+ε n)

Han & Thorup(2002) O(n

√log(w/ log n)) Randomized with mulitplication

Thorup (2002) O(n log log n) O(n) Randomized, AC0

O(n)

w is the number of bits per word.

Page 123: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) O(n) optimal for w = O(log n)

vEB sort (1975) O(n log w) O(2w) Only O(n) space with Y-fast trie

Kirkpatrick &Reisch (1984)

O(n log wlogn

) Only asymptotically better thanvEB when w = O(log n)

Signature sort(1995)

O(n) O(n) Only for w = Ω(log2+ε n)

Han & Thorup(2002) O(n

√log(w/ log n)) Randomized with mulitplication

Thorup (2002) O(n log log n) O(n) Randomized, AC0

O(n)

Han (2004) O(n log log n) O(n) Deterministic, with multiplication

w is the number of bits per word.

Page 124: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Integer Sorting

12/24

Jesper Sindahl Nielsen

Time NotesAlgorithm

Radix sort (1887?) O(n · wlogn

) Optimal for w = O(log n)

Signature sort (1995) O(n) Only for w = Ω(log2+ε n)

Han & Thorup (2002) O(n√log(w/ log n)

)Randomized with mulitplication

Time per element

w

log n

O(1)

O(√log log n)

log2 n log log n log2+ε n

NEW1

2

3

1

2

3

Page 125: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

13/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 126: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

13/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 127: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Page 128: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Most of us daily use services like Google, Bing, etc.

Page 129: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Most of us daily use services like Google, Bing, etc.

Page 130: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Most of us daily use services like Google, Bing, etc.

We want documents that contain both terms

Page 131: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Most of us daily use services like Google, Bing, etc.

We want documents that contain both terms

Page 132: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing

14/24

Jesper Sindahl Nielsen

Most of us daily use services like Google, Bing, etc.

We want documents that contain both terms

Find all emails sent to madalgo that are not seminars

Page 133: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Page 134: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Page 135: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

Page 136: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

Page 137: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

when given two text strings P1, P2 (online)

Page 138: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

when given two text strings P1, P2 (online)

we can report all di where both P1 and P2 occur

Page 139: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

when given two text strings P1, P2 (online)

we can report all di where both P1 and P2 occur(The two-pattern problem)

Page 140: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

when given two text strings P1, P2 (online)

we can report all di where both P1 and P2 occur

we can report all di where both P1 occurs but P2

does not occur

(The two-pattern problem)

Page 141: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Given documents D = d1, d2, . . . , dD

preprocess and store D such that

when given two text strings P1, P2 (online)

we can report all di where both P1 and P2 occur

we can report all di where both P1 occurs but P2

does not occur

(The two-pattern problem)

(The forbidden pattern problem)

Page 142: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Page 143: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Page 144: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t Cohen and Porat ’10

Page 145: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t

Two-Pattern n√nt log n log n + t

Cohen and Porat ’10

Hon et al. ’10

Page 146: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t

Two-Pattern n√nt log n log n + t

Cohen and Porat ’10

Hon et al. ’10

Forbidden Pattern (FP) n3/2/ logn√n + t Fischer et al. ’12

Page 147: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t

Two-Pattern n√nt log n log n + t

Cohen and Porat ’10

Hon et al. ’10

Forbidden Pattern (FP) n3/2/ logn√n + t Fischer et al. ’12

Forbidden Pattern Hon et al. ’12n√nt log n log2 n + t

Page 148: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t

Two-Pattern n√nt log n log n + t

Cohen and Porat ’10

Hon et al. ’10

Forbidden Pattern (FP) n3/2/ logn√n + t Fischer et al. ’12

Forbidden Pattern Hon et al. ’12n√nt log n log2 n + t

Both 2P and FP n√nt log n logε n + t New

Page 149: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Two-Pattern (2P) n2−α logc n nα + t Ferragina et al. ’03

Two-Pattern n logn√nt log n log2 n + t

Two-Pattern n√nt log n log n + t

Cohen and Porat ’10

Hon et al. ’10

Forbidden Pattern (FP) n3/2/ logn√n + t Fischer et al. ’12

Forbidden Pattern Hon et al. ’12n√nt log n log2 n + t

Both 2P and FP n√nt log n logε n + t New

Is√n query time really necessary?

Page 150: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Page 151: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

Page 152: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Page 153: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Page 154: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

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

Page 155: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

Page 156: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

Page 157: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

P1P2

Page 158: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

A

P1P2

Page 159: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

A B

P1P2

Page 160: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

A B

Report: A B∩

P1P2

Page 161: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

A B

Report: A B∩

P1P2

= 4

Page 162: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

S = d1$d2$ · · · $dD$

Annotate each leaf with thedocument id the suffx starts in

4 5 4 7 6 4 8 9 9 1 2 3Query: P1 P2and

A B

Report: A B∩

P1P2

= 4set intersection is usually hard

Page 163: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Page 164: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Page 165: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)P (n) + nQ(n) = Ω(nω)

Page 166: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)P (n) + nQ(n) = Ω(nω)

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1)) Kopelowitz et al (3SUM)

Page 167: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)P (n) + nQ(n) = Ω(nω)

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1))

Two-Pattern P (n) + n3/4+εQ(n) = Ω(n4/3−ε)

Kopelowitz et al (3SUM)

Kopelowitz et al (3SUM)

Page 168: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)P (n) + nQ(n) = Ω(nω)

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1))

Two-Pattern P (n) + n3/4+εQ(n) = Ω(n4/3−ε)

Kopelowitz et al (3SUM)

Kopelowitz et al (3SUM)

Page 169: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)

Both 2P and FP Pointer Machine Model (new)

P (n) + nQ(n) = Ω(nω)

S(n)Q(n) = Ω(n2−o(1))

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1))

Two-Pattern P (n) + n3/4+εQ(n) = Ω(n4/3−ε)

Kopelowitz et al (3SUM)

Kopelowitz et al (3SUM)

Page 170: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)

Both 2P and FP Pointer Machine Model (new)

Semi group model (new)

P (n) + nQ(n) = Ω(nω)

S(n)Q(n) = Ω(n2−o(1))

S(n)Q(n)2 = Ω(n2−o(1))Both 2P and FP

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1))

Two-Pattern P (n) + n3/4+εQ(n) = Ω(n4/3−ε)

Kopelowitz et al (3SUM)

Kopelowitz et al (3SUM)

Page 171: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Both 2P and FP ω is matrix multiplication constant (new)

Both 2P and FP Pointer Machine Model (new)

Semi group model (new)

P (n) + nQ(n) = Ω(nω)

S(n)Q(n) = Ω(n2−o(1))

S(n)Q(n)2 = Ω(n2−o(1))Both 2P and FP

Two-Pattern P (n) + n1+εQ(n) = Ω(n4/3−o(1))

Two-Pattern P (n) + n3/4+εQ(n) = Ω(n4/3−ε)

Kopelowitz et al (3SUM)

Kopelowitz et al (3SUM)

Q(n) = (nt)12−α ⇒

Both 2P and FPS(n) = Ω(n

1+6α1+2α

−o(1))

Pointer Machine Modelt is the output size (new)

Page 172: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - How to prove the lower bounds?

19/24

Jesper Sindahl Nielsen

We use two different techniques:

1) Reduction from Matrix Multiplication

2) Find a hard input for a Pointer Machine Data Structure

1) Given two matrices, produce a set of documentsand queries such that the product of the twomatrices can be found

Page 173: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 174: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 175: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 176: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 177: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 178: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

123

4 5 6 Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 179: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 180: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 181: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6#

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 182: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 183: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

P1 = 1 P2 = 4Jesper Sindahl Nielsen

Query:

Page 184: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

P1 = 1 P2 = 4Jesper Sindahl Nielsen

Query:

Page 185: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

1 5P1 = 1 P2 =Jesper Sindahl Nielsen

Query:

Page 186: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

1 5P1 = 1 P2 =Jesper Sindahl Nielsen

Query:

Page 187: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

1 5P1 = 1 P2 =Jesper Sindahl Nielsen

Query:

Page 188: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F TF F TT

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Query:

Page 189: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F TF F TT

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

3 5P1 = P2 =Jesper Sindahl Nielsen

Query:

Page 190: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F TF F TT T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

3 5P1 = P2 =Jesper Sindahl Nielsen

Query:

Page 191: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F TF F TT T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

3 6P1 = P2 =Query:

Page 192: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

× =T F TT F FT T T

F F TF T TT F T

T F TF F TT T T

A B C

dA1 = 1#2#3#

dA2 = 3#

dA3 = 1#3#

dB1 = 6#

dB2 = 5#6#

dB3 = 4#6#

d1 = 1#2#3#6#

d2 = 3#5#6#

d3 = 1#3#4#6# D

123

Ci,j = T ⇔ ∃` s.t.

Ai,` = B`,j = T

i ∈ d` ⇔ Ai,` = Tj + 3 ∈ d` ⇔ B`,j = T

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

3 6P1 = P2 =Query:

Page 193: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

21/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 194: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

Overview

21/24

Jesper Sindahl Nielsen

1. Algorithms and Data Structures(a) Abstract description(b) Example

2. Implicit Data Structures(a) Finger Search(b) Priority Queues

3. Integer Sorting4. Text Indexing5. State and University Library

Page 195: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

Page 196: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

Page 197: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

Page 198: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

Page 199: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 200: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 201: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 202: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 203: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 204: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 205: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 206: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

LOTS of data

Page 207: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Page 208: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started

Page 209: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Page 210: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Annoying for customers

Page 211: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Annoying for customers

Task: find overlap and eliminate it

Page 212: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Annoying for customers

Task: find overlap and eliminate it

Page 213: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Annoying for customers

Task: find overlap and eliminate it

Page 214: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Danish Radio collection 2 hour chunks

Before one runs out another is started⇒ overlap

Annoying for customers

Task: find overlap and eliminate it

Use Cross Correlation.

Page 215: PhD Defense - Aarhus Universitetgerth/advising/slides/jesper-sindahl... · 2015. 10. 2. · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing

24/24

Thank You

Jesper Sindahl Nielsen