Top Banner
Pseudo-random graphs and bit probe schemes with one-sided error Andrei Romashchenko CNRS, LIF de Marseille & IITP of RAS (Moscow) CSR 2011, June 14
52

Csr2011 june14 15_15_romashchenko

Oct 21, 2014

Download

Documents

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Csr2011 june14 15_15_romashchenko

Pseudo-random graphs and bit probe schemeswith one-sided error

Andrei RomashchenkoCNRS, LIF de Marseille & IITP of RAS (Moscow)

CSR 2011, June 14

Page 2: Csr2011 june14 15_15_romashchenko

The problem under consideration:bit probe scheme with one-sided error

Our technique:pseudo-random graphs

Page 3: Csr2011 june14 15_15_romashchenko

The problem under consideration:bit probe scheme with one-sided error

Our technique:pseudo-random graphs

Page 4: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|Remark: s = Ω(n logm)

Page 5: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|Remark: s = Ω(n logm)

Page 6: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|Remark: s = Ω(n logm)

Page 7: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|Remark: s = Ω(n logm)

Page 8: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|

Remark: s = Ω(n logm)

Page 9: Csr2011 june14 15_15_romashchenko

Bit probe scheme with one-sided error

Given: a set A from universe U

n = |A| m = |U|,e.g., n = m0.01, n = poly logm, etc.

To construct: a database B of size s such that

to answer a query

x ∈ A ?

we need to read one bit from the database

Goal: minimize s = |B|Remark: s = Ω(n logm)

Page 10: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?

1. bit vector of size mI good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 11: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 12: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 13: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elements

I good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 14: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 15: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):

I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 16: Csr2011 june14 15_15_romashchenko

static structures for a set: standard solutionsGiven: a set A from universe UHow to encode A?1. bit vector of size m

I good news: read one bit for a query “x ∈ A ?”I good news: no randomizationI bad news: too much memory

2. list of elementsI good news: memory n logmI good news: no randomizationI bad news: read too many bits to answer a query

3. Fredman–Komlos–Szemeredi (double hashing):I good news: database of size O(n logm) bitsI good news: randomization only to constructe the databaseI bad news: need to read O(logm) bits to answer a query

Page 17: Csr2011 june14 15_15_romashchenko

Buhrman–Miltersen–Radhakrishnan–Venkatesh [2001]Two features:1. a randomized algorithm answers a query “x ∈ A?”2. a scheme based on a highly unbalanced expander

I good news: read one bit to answer a query

I good news: memory = O(n logm)

I bad news: exponential computations

I some news: two-sided errors

I bad news: need Ω(n2 log mlog n ) for a one-sided error

Page 18: Csr2011 june14 15_15_romashchenko

Buhrman–Miltersen–Radhakrishnan–Venkatesh [2001]Two features:1. a randomized algorithm answers a query “x ∈ A?”2. a scheme based on a highly unbalanced expander

I good news: read one bit to answer a query

I good news: memory = O(n logm)

I bad news: exponential computations

I some news: two-sided errors

I bad news: need Ω(n2 log mlog n ) for a one-sided error

Page 19: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m)

vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 20: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m)

vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 21: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error

vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 22: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]

I memory = O(n log2 m) better than Ω(n2 logmlog n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 23: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 24: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ?

Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 25: Csr2011 june14 15_15_romashchenko

Bit-probe scheme in this paper:

I read one bit to answer a queryI memory = O(n log2 m) vs O(n logm) in [BMRV]I computations in poly(m) vs expm in [BMRV]I one-sided error vs two-sided in [BMRV]I memory = O(n log2 m) better than Ω(n2 logm

log n ) !

Do we cheat ? Yes, we have changed the model !We allow cached memory of size poly(logm).

Page 26: Csr2011 june14 15_15_romashchenko

RandomizedProcessor of Queries

2nd level memory(database)

query: x?∈ A answer: yes/no

1st level memory(cache)

read 1 bitread all bits

Theorem. For any n-element set A from anm-element universe there exists a randomizedbit-probe scheme with one-sided error, withcache of size O(logc m) and database of sizeO(n log2 m).

Page 27: Csr2011 june14 15_15_romashchenko

RandomizedProcessor of Queries

2nd level memory(database)

query: x?∈ A answer: yes/no

1st level memory(cache)

read 1 bitread all bits

Theorem. For any n-element set A from anm-element universe there exists a randomizedbit-probe scheme with one-sided error, withcache of size O(logc m) and database of sizeO(n log2 m).

Page 28: Csr2011 june14 15_15_romashchenko

the left part: m vertices; degree d = O(logm)the right part: s = O(n log2 m) vertices

universe database

123

m

12346

s

Page 29: Csr2011 june14 15_15_romashchenko

in the left part: set A of n verticesthe right part: s = O(n log2 m) vertices

subset A database

123

m

12346

s

1

3

m

Page 30: Csr2011 june14 15_15_romashchenko

A graph is suitable for A iffor every x 6∈ A most neighbors of x are blue

subset Aneighbors ofA are red

123

m

12346

s

1

3

m

1

3

m

1

3

6

s

Page 31: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 32: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 33: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 34: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 35: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 36: Csr2011 june14 15_15_romashchenko

A graph is called suitable for A if for every x 6∈ Amost neighbors of x are blue

Good news: for every A most graphs are suitable.

Bad news: there is no graph suitable for every sets A.

1st idea: take a random graph and cache it

we cannot, a random graph is too large!

2nd idea: take a pseudo-random graph, cache the seed

We need a good PRG...

Page 37: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 38: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 39: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 40: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.

I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 41: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is valid

I Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 42: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 43: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 44: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 45: Csr2011 june14 15_15_romashchenko

Fix a set A.Testgraph G yes, if G is suitable for A

no, otherwise

Testrandomgraph yes with probability > 0.99

Testpseudo-randomgraph

yes with probability > 0.98 ?

Test is an AC0-circuit.I Nisan–Wigderson generator is validI Braverman: every (poly logm)-independentfunction is valid

Test is a FSM with small memory.I Nisan’s generator is valid

Size of the seed = poly(logm).

Page 46: Csr2011 june14 15_15_romashchenko

Conclusion: a bit-probe scheme:I read one bit to answer a queryI one-sided errorI 1-st level “cached” memory = poly logmI 2-nd level memory = O(n log2 m)

I database is prepared in time poly(m)

Beyond this talk: combine our construction withGuruswami–Umans–Vadhan

I read two bit to answer a queryI one-sided errorI 1-st level “cache” memory = poly logmI 2-nd level memory = n1+δpoly logmI computations in time poly(n, logm)

Page 47: Csr2011 june14 15_15_romashchenko

Conclusion: a bit-probe scheme:I read one bit to answer a queryI one-sided errorI 1-st level “cached” memory = poly logmI 2-nd level memory = O(n log2 m)I database is prepared in time poly(m)

Beyond this talk: combine our construction withGuruswami–Umans–Vadhan

I read two bit to answer a queryI one-sided errorI 1-st level “cache” memory = poly logmI 2-nd level memory = n1+δpoly logmI computations in time poly(n, logm)

Page 48: Csr2011 june14 15_15_romashchenko

Conclusion: a bit-probe scheme:I read one bit to answer a queryI one-sided errorI 1-st level “cached” memory = poly logmI 2-nd level memory = O(n log2 m)I database is prepared in time poly(m)

Beyond this talk: combine our construction withGuruswami–Umans–Vadhan

I read two bit to answer a queryI one-sided errorI 1-st level “cache” memory = poly logmI 2-nd level memory = n1+δpoly logmI computations in time poly(n, logm)

Page 49: Csr2011 june14 15_15_romashchenko

What this talk is about:

I a pseudo-random graph can be better than anexplicit one (better expansion parameters, etc.)

I a pseudo-random graph can be better than a“truly random” graph (shorter description)

I a small “cache” may be useful in static structures

Thank you! Questions?

Page 50: Csr2011 june14 15_15_romashchenko

What this talk is about:

I a pseudo-random graph can be better than anexplicit one (better expansion parameters, etc.)

I a pseudo-random graph can be better than a“truly random” graph (shorter description)

I a small “cache” may be useful in static structures

Thank you! Questions?

Page 51: Csr2011 june14 15_15_romashchenko

What this talk is about:

I a pseudo-random graph can be better than anexplicit one (better expansion parameters, etc.)

I a pseudo-random graph can be better than a“truly random” graph (shorter description)

I a small “cache” may be useful in static structures

Thank you! Questions?

Page 52: Csr2011 june14 15_15_romashchenko

What this talk is about:

I a pseudo-random graph can be better than anexplicit one (better expansion parameters, etc.)

I a pseudo-random graph can be better than a“truly random” graph (shorter description)

I a small “cache” may be useful in static structures

Thank you! Questions?