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

PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

AARHUSUNIVERSITY

PhD Defense

Jesper Sindahl Nielsen

Implicit Data Structures,Sorting, and Text Indexing

Page 2: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Overview

1/24

Jesper Sindahl Nielsen

Page 3: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Page 10: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithm

Page 11: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput

Page 12: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

Page 13: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

x + yAddition

Page 14: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

x=5y=7 x + y

Addition

Page 15: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

Page 16: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Algorithms

2/24

Jesper Sindahl Nielsen

Algorithminput output

12x=5y=7 x + y

Addition

Sort L

Page 17: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Data Structures

3/24

Jesper Sindahl Nielsen

Page 20: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Data Structures

3/24

Jesper Sindahl Nielsen

Data

Page 21: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Data Structures

3/24

Jesper Sindahl Nielsen

DataData

Structure

Page 22: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Data Structures

3/24

Jesper Sindahl Nielsen

DataData

Structure

Data organized insome clever manner

Page 23: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Data Structures

3/24

Jesper Sindahl Nielsen

Data BuildData

Structure

Data organized insome clever manner

Page 24: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Page 44: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Data Structures

5/24

Jesper Sindahl Nielsen

Primary goal: space efficiency

Page 45: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Page 56: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

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

Page 57: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

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

Page 58: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Dictionary and Fingersearch

6/24

Jesper Sindahl Nielsen

Insert(k)

Delete(k)

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

Page 59: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

Page 72: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

Page 73: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

22`

· · · · · · · · ·

Page 74: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

D0

22`

· · · · · · · · ·

Page 75: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

220

221

222

D0 D1

22`

· · · · · · · · ·

Page 76: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

22`

· · · · · · · · ·

Page 77: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Implicit Finger Search Idea

7/24

Jesper Sindahl Nielsen

· · ·

· · ·

220

221

222

D0 D1 D2 D`

22`

· · ·

Elements in sorted order

· · · · · ·

Page 78: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Priority Queues

8/24

Jesper Sindahl Nielsen

Page 89: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Outline

9/24

Jesper Sindahl Nielsen

Page 102: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

Page 105: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

Page 106: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

Page 107: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

Page 108: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

10/24

Jesper Sindahl Nielsen

Comparison based sorting: only allowed operation ≤

A B

conclude A > B

Page 109: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

11/24

Jesper Sindahl Nielsen

Page 116: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Integer Sorting

11/24

Jesper Sindahl Nielsen

Time Space NotesAlgorithm

w is the number of bits per word.

Page 117: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing

14/24

Jesper Sindahl Nielsen

Page 128: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing

14/24

Jesper Sindahl Nielsen

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

Page 129: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing

14/24

Jesper Sindahl Nielsen

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

Page 130: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Page 134: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

Page 135: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

15/24

Jesper Sindahl Nielsen

Problem definition:

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

Page 136: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

16/24

Jesper Sindahl Nielsen

Space Query Time AuthorsProblem

Page 143: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Page 151: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

Page 152: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

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

Page 153: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

17/24

Jesper Sindahl Nielsen

Build suffix tree on concatenation of the documents

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

Page 154: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Page 164: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - Two Patterns

18/24

Jesper Sindahl Nielsen

Lower Bound NotesProblem

Page 165: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

Text Indexing - How to prove the lower bounds?

20/24

Jesper Sindahl Nielsen

Page 174: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

× =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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

Page 196: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

Page 197: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

Page 198: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

Page 199: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 200: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 201: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 202: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 203: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 204: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 205: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

Page 206: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

State and University Library

22/24

Jesper Sindahl Nielsen

”Old Days”

LOTS of data

Page 207: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

A nuisance in a collection

23/24

Jesper Sindahl Nielsen

Page 208: PhD Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

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 Defensetildeweb.au.dk/au121/advising/slides/jesper-sindahl-nielsen.pdf · PhD Defense Jesper Sindahl Nielsen Implicit Data Structures, Sorting, and Text Indexing. Overview 1/24

24/24

Thank You

Jesper Sindahl Nielsen