Generating k -independent variables in constant time Tobias - - PowerPoint PPT Presentation

generating k independent variables in constant time
SMART_READER_LITE
LIVE PREVIEW

Generating k -independent variables in constant time Tobias - - PowerPoint PPT Presentation

Generating k -independent variables in constant time Tobias Christiani, Rasmus Pagh IT University of Copenhagen Generating k -independent variables in constant time 1 Introduction Random seed 11010100 01101101 Generator Pseudorandom output


slide-1
SLIDE 1

Generating k-independent variables in constant time

1

Generating k-independent variables in constant time

Tobias Christiani, Rasmus Pagh

IT University of Copenhagen

slide-2
SLIDE 2

Generating k-independent variables in constant time

2

Introduction 11010100 01101101 00011011 11111100 10010101 11010001 11100110 Generator Random seed Pseudorandom output sequence

slide-3
SLIDE 3

Generating k-independent variables in constant time

3

k-independent variables Generator output:

  • Sequence of k-independent variables over a finite field F
slide-4
SLIDE 4

Generating k-independent variables in constant time

3

k-independent variables Generator output:

  • Sequence of k-independent variables over a finite field F

Y1 Y2 Y3 Yp · · · Example field:

  • The set of integers modulo a prime Fp
slide-5
SLIDE 5

Generating k-independent variables in constant time

3

k-independent variables Generator output:

  • Sequence of k-independent variables over a finite field F

Y1 Y2 Y3 Yp · · · Pr[Yi1 = y1, Yi2 = y2, . . . , Yik = yk] = pk

  • k-independence:

– Yi uniformly distributed over Fp – The variables at every set of k distinct positions are independent Example field:

  • The set of integers modulo a prime Fp
slide-6
SLIDE 6

Generating k-independent variables in constant time

3

k-independent variables Generator output:

  • Sequence of k-independent variables over a finite field F

Y1 Y2 Y3 Yp · · · Pr[Yi1 = y1, Yi2 = y2, . . . , Yik = yk] = pk

  • k-independence:

– Yi uniformly distributed over Fp – The variables at every set of k distinct positions are independent Example field:

  • The set of integers modulo a prime Fp
  • Many properties of full randomness for k ⌧ p
slide-7
SLIDE 7

Generating k-independent variables in constant time

4

Model and problem Model:

  • Word-RAM model

– Elements of Fp fit in a single word – Constant time addition and multiplication in Fp

slide-8
SLIDE 8

Generating k-independent variables in constant time

4

Model and problem Problem:

  • Construct a data structure that outputs a k-independent sequence
  • ver Fp, one variable at the time

– Low time complexity of generating next element – Space usage and initialization time close to k Model:

  • Word-RAM model

– Elements of Fp fit in a single word – Constant time addition and multiplication in Fp

slide-9
SLIDE 9

Generating k-independent variables in constant time

5

Result Explicit data structure for generating the next element of a k-independent sequence in worst case constant time using space and initialization time k poly log k

Main result

slide-10
SLIDE 10

Generating k-independent variables in constant time

5

Result Explicit data structure for generating the next element of a k-independent sequence in worst case constant time using space and initialization time k poly log k

Main result

  • Constant time generation for every choice of k almost as large as p
slide-11
SLIDE 11

Generating k-independent variables in constant time

5

Result Explicit data structure for generating the next element of a k-independent sequence in worst case constant time using space and initialization time k poly log k

  • The generator always outputs a k-independent sequence

Main result

  • Constant time generation for every choice of k almost as large as p
slide-12
SLIDE 12

Generating k-independent variables in constant time

5

Result Explicit data structure for generating the next element of a k-independent sequence in worst case constant time using space and initialization time k poly log k

  • The generator always outputs a k-independent sequence

Main result

  • Constant time generation for every choice of k almost as large as p
  • Space in bits: (k poly log k) · log p

– Logarithmic dependence on length of output sequence

slide-13
SLIDE 13

Generating k-independent variables in constant time

5

Result Explicit data structure for generating the next element of a k-independent sequence in worst case constant time using space and initialization time k poly log k

  • The generator always outputs a k-independent sequence

Main result

  • Constant time generation for every choice of k almost as large as p
  • Space in bits: (k poly log k) · log p

– Logarithmic dependence on length of output sequence Reference Space Generation time Multipoint evaluation [GG’13] O(k log k) O(log2 k log log k) Expander hashing [Siegel’89] O(pε), ε > 0 O(1) Our generator O(k poly log k) O(1) COMPARISON WITH PREVIOUS RESULTS

slide-14
SLIDE 14

Generating k-independent variables in constant time

6

k-independent hash functions

  • Data structure for random access to a k-independent sequence
slide-15
SLIDE 15

Generating k-independent variables in constant time

6

k-independent hash functions

  • Data structure for random access to a k-independent sequence

Polynomial hash functions [Joffe’74, CW’81]

  • Choose k random elements from Fp and use them as coefficients of

a polynomial h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

slide-16
SLIDE 16

Generating k-independent variables in constant time

6

k-independent hash functions

  • Data structure for random access to a k-independent sequence

h(0) h(1) h(2) h(p 1) · · · Polynomial hash functions [Joffe’74, CW’81]

  • Choose k random elements from Fp and use them as coefficients of

a polynomial h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Polynomial hash function as a generator

– Space k to store coefficients – Evaluation time O(k)

  • Space usage near-optimal with respect to sequence length
slide-17
SLIDE 17

Generating k-independent variables in constant time

7

k-independent hashing: lower bound

  • What is the best time-space tradeoff we can hope for using hashing?
slide-18
SLIDE 18

Generating k-independent variables in constant time

7

k-independent hashing: lower bound

  • Cell probe lower bound [Siegel’89]

Time t < k ) Space at least p1/t words

k-independent hash function h : Fp ! Fp

  • What is the best time-space tradeoff we can hope for using hashing?
slide-19
SLIDE 19

Generating k-independent variables in constant time

7

k-independent hashing: lower bound

  • Cell probe lower bound [Siegel’89]

Time t < k ) Space at least p1/t words

  • Constructions in the word-RAM model still far from lower bound

k-independent hash function h : Fp ! Fp

  • What is the best time-space tradeoff we can hope for using hashing?
slide-20
SLIDE 20

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
slide-21
SLIDE 21

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound
slide-22
SLIDE 22

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound
  • Sequence of local hash functions evaluated over small domains
slide-23
SLIDE 23

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

? . . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . .

slide-24
SLIDE 24

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

? . . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . .

slide-25
SLIDE 25

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-26
SLIDE 26

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-27
SLIDE 27

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-28
SLIDE 28

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-29
SLIDE 29

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-30
SLIDE 30

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-31
SLIDE 31

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . .

slide-32
SLIDE 32

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . . Hash function

? . . .

slide-33
SLIDE 33

Generating k-independent variables in constant time

8

k-generators

  • Data structure for sequential access to a k-independent sequence
  • Circumvent hashing lower bound

Hash function

?

Hash function

? . . .

Y1 Y2 Yp

. . .

Y1 Y2 Yp

  • Sequence of local hash functions evaluated over small domains

. . . . . . Hash function

? . . .

slide-34
SLIDE 34

Generating k-independent variables in constant time

9

Construction overview Initialization and evaluation of local hash functions:

slide-35
SLIDE 35

Generating k-independent variables in constant time

9

Construction overview

. . . . . . Yi+1 Yi+2

. . .

Yi+b

  • 1. Multipoint evaluation
  • k-independent polynomial hash function h(x)

– Evaluate in k points using time k poly log k – poly log k time per value generated Initialization and evaluation of local hash functions:

slide-36
SLIDE 36

Generating k-independent variables in constant time

9

Construction overview

. . . . . . Yi+1 Yi+2

. . .

Yi+b . . .

P

  • 1. Multipoint evaluation
  • k-independent polynomial hash function h(x)

– Evaluate in k points using time k poly log k – poly log k time per value generated

  • 2. Expander hashing
  • Unbalanced bipartite expander, degree O(1)

– Generate k poly log k values from k values – Output is Ω(k)-independent Initialization and evaluation of local hash functions:

slide-37
SLIDE 37

Generating k-independent variables in constant time

10

Multipoint evaluation

  • Assume that Fp contains a primitive kth root of unity ωk

ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

slide-38
SLIDE 38

Generating k-independent variables in constant time

10

Multipoint evaluation

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

slide-39
SLIDE 39

Generating k-independent variables in constant time

10

Multipoint evaluation F⇤

p = {1, ω, . . . , ωk, ωωk, . . . , ωk1 k

, ωωk1

k

, . . . , ωp2}

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Let ω be a primitive element that generates F⇤

p = Fp {0}

slide-40
SLIDE 40

Generating k-independent variables in constant time

10

Multipoint evaluation F⇤

p = {1, ω, . . . , ωk, ωωk, . . . , ωk1 k

, ωωk1

k

, . . . , ωp2}

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Let ω be a primitive element that generates F⇤

p = Fp {0}

h(1) h(ωk) h(ωk1

k

) . . .

slide-41
SLIDE 41

Generating k-independent variables in constant time

10

Multipoint evaluation F⇤

p = {1, ω, . . . , ωk, ωωk, . . . , ωk1 k

, ωωk1

k

, . . . , ωp2}

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Let ω be a primitive element that generates F⇤

p = Fp {0}

h(ω) h(ωωk) h(ωωk1

k

) . . .

slide-42
SLIDE 42

Generating k-independent variables in constant time

10

Multipoint evaluation F⇤

p = {1, ω, . . . , ωk, ωωk, . . . , ωk1 k

, ωωk1

k

, . . . , ωp2}

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Let ω be a primitive element that generates F⇤

p = Fp {0}

  • Construct h0(x) = Pk1

i=0 aiωixi compute h0(1), h0(ωk), . . . , h0(ωk1 k

) h(ω) h(ωωk) h(ωωk1

k

) . . .

slide-43
SLIDE 43

Generating k-independent variables in constant time

10

Multipoint evaluation F⇤

p = {1, ω, . . . , ωk, ωωk, . . . , ωk1 k

, ωωk1

k

, . . . , ωp2}

  • Assume that Fp contains a primitive kth root of unity ωk
  • We can compute h(1), h(ωk), . . . , h(ωk1

k

) in O(k log k) operations ωk : ωk

k = 1

ωi

k 6= 1 for i = 1, . . . , k 1

h(x) = a0 + a1x + a2x2 + · · · + ak1xk1 mod p

  • Let ω be a primitive element that generates F⇤

p = Fp {0}

  • General multipoint evaluation: Time O(k log3 k) [GG’13]
  • Construct h0(x) = Pk1

i=0 aiωixi compute h0(1), h0(ωk), . . . , h0(ωk1 k

) h(ω) h(ωωk) h(ωωk1

k

) . . .

slide-44
SLIDE 44

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ

L R . . . d

slide-45
SLIDE 45

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R . . . d

slide-46
SLIDE 46

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
slide-47
SLIDE 47

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
slide-48
SLIDE 48

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
slide-49
SLIDE 49

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]
slide-50
SLIDE 50

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent

  • Example for |S| = 3

f(v1) f(v2) f(v3) f(v4) f(v5)

slide-51
SLIDE 51

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3

f(v1) f(v2) f(v3) f(v4) f(v5) g(x5)

g(x5) = f(v2) + f(v4) + f(v5) mod p

  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-52
SLIDE 52

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-53
SLIDE 53

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-54
SLIDE 54

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-55
SLIDE 55

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-56
SLIDE 56

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-57
SLIDE 57

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-58
SLIDE 58

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3
  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-59
SLIDE 59

Generating k-independent variables in constant time

11

Expander hashing

  • Left d-regular bipartite graph Γ
  • Γ is k-unique if every S ✓ L with

1  |S|  k has a unique neighbor L R

  • Example for |S| = 3

Claim:

  • There exists k-unique Γ with

– |R| = O(k log k) – |L| = (poly log k) · |R| – d = O(1)

  • Expander hashing [Siegel’89]

– Let f : R ! Fp be dk-independent – g(x) = P

v2Γ({x}) f(v) is

k-independent

slide-60
SLIDE 60

Generating k-independent variables in constant time

12

Example construction Initialization and evaluation of local hash functions:

slide-61
SLIDE 61

Generating k-independent variables in constant time

12

Example construction

. . . . . . Yi+1 Yi+2

. . .

Yi+|V |

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k) Initialization and evaluation of local hash functions:

slide-62
SLIDE 62

Generating k-independent variables in constant time

12

Example construction

. . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k) Initialization and evaluation of local hash functions: R

. . .

slide-63
SLIDE 63

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L P

. . .

slide-64
SLIDE 64

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L

  • Generation procedure

P

. . .

slide-65
SLIDE 65

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L

  • Generation procedure

P

. . .

slide-66
SLIDE 66

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L

  • Generation procedure

P

. . .

slide-67
SLIDE 67

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L

  • Generation procedure

P

. . .

slide-68
SLIDE 68

Generating k-independent variables in constant time

12

Example construction

. . . . . . . . .

  • 1. Multipoint evaluation
  • dk-independent polynomial hash function h(x)

– Generate |R| = Ω(k log k) values using time O(k log4 k)

  • 2. Expander hashing
  • Construct random Γ with:

– Constant degree d = 8 – |L| = (log4 k)|R| Initialization and evaluation of local hash functions: R L

  • Generation procedure

P

. . . . . .

slide-69
SLIDE 69

Generating k-independent variables in constant time

13

Explicit k-generator

. . . . . . Yi+1 Yi+2

. . .

Yi+b . . . . . .

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance . . . P

slide-70
SLIDE 70

Generating k-independent variables in constant time

13

Explicit k-generator

. . . . . . Yi+1 Yi+2

. . .

Yi+b . . . . . .

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1) . . . P

slide-71
SLIDE 71

Generating k-independent variables in constant time

13

Explicit k-generator

. . . . . . Yi+1 Yi+2

. . .

Yi+b . . . . . .

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1)

  • Cascading composition of

O(log log k) expanders suffices for constant time generation . . . . . . P P . . . . . . P

slide-72
SLIDE 72

Generating k-independent variables in constant time

13

Explicit k-generator

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1)

  • Cascading composition of

O(log log k) expanders suffices for constant time generation . . . . . . P

  • Generation procedure

k poly log k-ind. . . . . . . P . . .

slide-73
SLIDE 73

Generating k-independent variables in constant time

13

Explicit k-generator

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1)

  • Cascading composition of

O(log log k) expanders suffices for constant time generation . . . . . . P

  • Generation procedure

k poly log k-ind. . . . . . . P . . .

slide-74
SLIDE 74

Generating k-independent variables in constant time

13

Explicit k-generator

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1)

  • Cascading composition of

O(log log k) expanders suffices for constant time generation . . . . . . P

  • Generation procedure

k poly log k-ind. . . . . . . dk-ind. P . . .

slide-75
SLIDE 75

Generating k-independent variables in constant time

13

Explicit k-generator

  • No known explicit k-unique Γ

with constant degree and poly log k imbalance

  • Explicit k-unique Γ [CRVW’02]

– |L| = c|R| for constant c > 1 – |R| = O(k) – d = O(1)

  • Cascading composition of

O(log log k) expanders suffices for constant time generation . . . . . . P

  • Generation procedure

k poly log k-ind. . . . . . . k-ind. dk-ind. P . . .

slide-76
SLIDE 76

Generating k-independent variables in constant time

14

Experiments k Polynomial hash fct. Multipoint [GM’10] Our generator 25 5.650 4.115 66.667 210 0.169 2.227 40.000 215 0.005 1.567 14.493 220 0.000 1.157 5.714 MILLIONS OF 64-BIT VALUES GENERATED PER SECOND,

RANDOMIZED CONSTRUCTION

slide-77
SLIDE 77

Generating k-independent variables in constant time

14

Experiments k Polynomial hash fct. Multipoint [GM’10] Our generator 25 5.650 4.115 66.667 210 0.169 2.227 40.000 215 0.005 1.567 14.493 220 0.000 1.157 5.714 MILLIONS OF 64-BIT VALUES GENERATED PER SECOND,

RANDOMIZED CONSTRUCTION

  • Millions of highly independent words per second

– Potential application to Monte Carlo experiments

slide-78
SLIDE 78

Generating k-independent variables in constant time

14

Experiments k Polynomial hash fct. Multipoint [GM’10] Our generator 25 5.650 4.115 66.667 210 0.169 2.227 40.000 215 0.005 1.567 14.493 220 0.000 1.157 5.714 MILLIONS OF 64-BIT VALUES GENERATED PER SECOND,

RANDOMIZED CONSTRUCTION

  • Gao-Mateer’s additive FFT + Haswell support for F264

– Evaluate a degree 220 polynomial in 220 points in < 1 second

  • Millions of highly independent words per second

– Potential application to Monte Carlo experiments

slide-79
SLIDE 79

Generating k-independent variables in constant time

14

Experiments k Polynomial hash fct. Multipoint [GM’10] Our generator 25 5.650 4.115 66.667 210 0.169 2.227 40.000 215 0.005 1.567 14.493 220 0.000 1.157 5.714 MILLIONS OF 64-BIT VALUES GENERATED PER SECOND,

RANDOMIZED CONSTRUCTION

  • Gao-Mateer’s additive FFT + Haswell support for F264

– Evaluate a degree 220 polynomial in 220 points in < 1 second

  • Millions of highly independent words per second

– Potential application to Monte Carlo experiments

  • Slowdown of our generator as k increases is due to cache effects
slide-80
SLIDE 80

Generating k-independent variables in constant time

15

Summary Result:

  • Explicit constant time generation using space k poly log k
slide-81
SLIDE 81

Generating k-independent variables in constant time

15

Summary Result:

  • Explicit constant time generation using space k poly log k

Technique:

  • Combination of multipoint evaluation and a cascading composition
  • f explicit expanders
slide-82
SLIDE 82

Generating k-independent variables in constant time

15

Summary Result:

  • Explicit constant time generation using space k poly log k

Technique:

  • Combination of multipoint evaluation and a cascading composition
  • f explicit expanders

Open questions:

  • Explicit expanders with

– |R| = O(k poly log k) – |L| (poly log k)|R| – d = O(1)

slide-83
SLIDE 83

Generating k-independent variables in constant time

15

Summary Result:

  • Explicit constant time generation using space k poly log k

Technique:

  • Combination of multipoint evaluation and a cascading composition
  • f explicit expanders

Open questions:

  • Explicit expanders with

– |R| = O(k poly log k) – |L| (poly log k)|R| – d = O(1)

  • Constant time generation with O(k) space
slide-84
SLIDE 84

Generating k-independent variables in constant time

16

Multipoint evaluation

  • A k-independent polynomial hash function h(x)
  • Faster algorithms exist if:

– x1, x2, . . . , xk lie in arithmetic/geometric progression – F contains a highly composite kth root of unity

  • We can evaluate h(x) in k arbitrary points x1, x2, . . . , xk using

O(k log3 k) operations p1(x) = Qk/2

i=1(x xi)

p2(x) = Qk

i=(k/2)+1(x xi)

r1(x) = h(x) mod p1(x) r2(x) = h(x) mod p2(x) h(x) = q(x)p(x) + r(x) r1(xi) = h(xi) for 1  i  k/2

slide-85
SLIDE 85

Generating k-independent variables in constant time

17

New results

  • We only require sequential evaluation of Γ
  • Constant time generator for k-unique

Γ : L ! Rd using space O(k logε k)

. . . . . . Yi+1 Yi+2

. . .

Yi+b . . .

  • Tabulating Γ requires at least

|R| = Ω(k log2+ε k) words

  • New recursive constructions of k-independent

hash functions that come close to Siegel’s lower bound