SLIDE 1 Simple Optimal Hitting Sets for Small-Success RL
William M. Hoza1 David Zuckerman2 The University of Texas at Austin October 7 FOCS 2018
1Supported by the NSF GRFP under Grant DGE-1610403 and by a Harrington Fellowship from UT Austin 2Supported by NSF Grant CCF-1526952, NSF Grant CCF-1705028, and a Simons Investigator Award (#409864)
SLIDE 2
Randomized log-space complexity classes
◮ Let L be a language
SLIDE 3
Randomized log-space complexity classes
◮ Let L be a language ◮ L ∈ BPL if there is a randomized log-space algorithm A that always halts such that x ∈ L = ⇒ Pr[A(x) accepts] ≥ 2/3 x ∈ L = ⇒ Pr[A(x) accepts] ≤ 1/3.
SLIDE 4
Randomized log-space complexity classes
◮ Let L be a language ◮ L ∈ BPL if there is a randomized log-space algorithm A that always halts such that x ∈ L = ⇒ Pr[A(x) accepts] ≥ 2/3 x ∈ L = ⇒ Pr[A(x) accepts] ≤ 1/3. ◮ L ∈ RL if there is a randomized log-space algorithm A that always halts such that x ∈ L = ⇒ Pr[A(x) accepts] ≥ 1/2 x ∈ L = ⇒ Pr[A(x) accepts] = 0.
SLIDE 5
The power of randomness for small-space algorithms
◮ L ⊆ RL ⊆ BPL
SLIDE 6
The power of randomness for small-space algorithms
◮ L ⊆ RL ⊆ BPL ◮ Conjecture: L = RL = BPL
SLIDE 7
The power of randomness for small-space algorithms
◮ L ⊆ RL ⊆ BPL ◮ Conjecture: L = RL = BPL
SLIDE 8
The power of randomness for small-space algorithms
◮ L ⊆ RL ⊆ BPL ◮ Conjecture: L = RL = BPL
SLIDE 9
Read-once branching programs
start acc n + 1 layers width n
SLIDE 10
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1
SLIDE 11
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x =
SLIDE 12
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1
SLIDE 13
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1
SLIDE 14
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1
SLIDE 15
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1 1
SLIDE 16
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1 1 1
SLIDE 17
Read-once branching programs
start acc n + 1 layers width n 1 1 1 1 1 1 x = 1 1 1 ◮ Computes function f : {0, 1}n → {0, 1}
SLIDE 18
Fooling / Hitting ROBPs
s bits Gen n bits
SLIDE 19
Fooling / Hitting ROBPs
s bits Gen n bits Pseudorandom generator: For every width-n ROBP, | Pr
x [f (x) = 1] − Pr z [f (Gen(z)) = 1]| ≤ ε
SLIDE 20
Fooling / Hitting ROBPs
s bits Gen n bits Pseudorandom generator: For every width-n ROBP, | Pr
x [f (x) = 1] − Pr z [f (Gen(z)) = 1]| ≤ ε
Suitable for derandomizing BPL
SLIDE 21
Fooling / Hitting ROBPs
s bits Gen n bits Pseudorandom generator: For every width-n ROBP, | Pr
x [f (x) = 1] − Pr z [f (Gen(z)) = 1]| ≤ ε
Suitable for derandomizing BPL Hitting set generator: For every width-n ROBP, Pr
x [f (x) = 1] ≥ ε =
⇒ ∃z, f (Gen(z)) = 1
SLIDE 22
Fooling / Hitting ROBPs
s bits Gen n bits Pseudorandom generator: For every width-n ROBP, | Pr
x [f (x) = 1] − Pr z [f (Gen(z)) = 1]| ≤ ε
Suitable for derandomizing BPL Hitting set generator: For every width-n ROBP, Pr
x [f (x) = 1] ≥ ε =
⇒ ∃z, f (Gen(z)) = 1 Suitable for derandomizing RL
SLIDE 23
Prior generators and main result
◮ Nonconstructive: PRG with seed length O(log n + log(1/ε))
SLIDE 24
Prior generators and main result
◮ Nonconstructive: PRG with seed length O(log n + log(1/ε)) ◮ Babai, Nisan, Szegedy 1989: PRG with seed length 2O(√log n) · log(1/ε)
SLIDE 25
Prior generators and main result
◮ Nonconstructive: PRG with seed length O(log n + log(1/ε)) ◮ Babai, Nisan, Szegedy 1989: PRG with seed length 2O(√log n) · log(1/ε) ◮ Nisan 1990: PRG with seed length O(log2 n + log(1/ε) log n)
SLIDE 26 Prior generators and main result
◮ Nonconstructive: PRG with seed length O(log n + log(1/ε)) ◮ Babai, Nisan, Szegedy 1989: PRG with seed length 2O(√log n) · log(1/ε) ◮ Nisan 1990: PRG with seed length O(log2 n + log(1/ε) log n) ◮ Braverman, Cohen, Garg 2018: HSG with seed length
SLIDE 27 Prior generators and main result
◮ Nonconstructive: PRG with seed length O(log n + log(1/ε)) ◮ Babai, Nisan, Szegedy 1989: PRG with seed length 2O(√log n) · log(1/ε) ◮ Nisan 1990: PRG with seed length O(log2 n + log(1/ε) log n) ◮ Braverman, Cohen, Garg 2018: HSG with seed length
◮ This work: HSG with seed length O(log2 n + log(1/ε))
SLIDE 28
Comparison with [BCG ’18]
◮ Our construction and analysis are simple
SLIDE 29
Comparison with [BCG ’18]
◮ Our construction and analysis are simple Hitting Set Generator
This work Suitable for RL
SLIDE 30
Comparison with [BCG ’18]
◮ Our construction and analysis are simple Pseudorandom Generator
Nisan ’90 Suitable for BPL
Hitting Set Generator
This work Suitable for RL
= ⇒
SLIDE 31
Comparison with [BCG ’18]
◮ Our construction and analysis are simple Pseudorandom Generator
Nisan ’90 Suitable for BPL
“Pseudorandom Pseudodistribution”
BCG ’18 Suitable for BPL
= ⇒ = ⇒ Hitting Set Generator
This work Suitable for RL
SLIDE 32
Structural lemma for ROBPs
◮ Let f be a width-n, length-n ROBP
SLIDE 33
Structural lemma for ROBPs
◮ Let f be a width-n, length-n ROBP ◮ Assume Pr[accept] = ε ≪ 1/n3
SLIDE 34
Structural lemma for ROBPs
◮ Let f be a width-n, length-n ROBP ◮ Assume Pr[accept] = ε ≪ 1/n3 ◮ Lemma: There is a vertex u so that Pr[reach u] ≥ 1 2n3 and Pr[accept | reach u] ≥ εn.
SLIDE 35
Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn]
SLIDE 36
Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
SLIDE 37
Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
◮ Proof: Probability of acceptance at most doubles in each step
SLIDE 38
Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
◮ Proof: Probability of acceptance at most doubles in each step
3% chance of accept 0% chance of accept 6% chance of accept 1
SLIDE 39 Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
◮ Proof: Probability of acceptance at most doubles in each step
3% chance of accept 0% chance of accept 6% chance of accept 1 ◮ ε = Pr[accept] ≤
Pr[reach u and accept]
SLIDE 40 Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
◮ Proof: Probability of acceptance at most doubles in each step
3% chance of accept 0% chance of accept 6% chance of accept 1 ◮ ε = Pr[accept] ≤
Pr[reach u and accept] ≤
Pr[reach u] · 2εn
SLIDE 41 Proof of lemma (∃u, Pr[u] ≥
1 2n3 ∧ Pr[acc | u] ≥ εn)
◮ Say u is a milestone if Pr[accept | reach u] ∈ [εn, 2εn] ◮ Claim: Every accepting path passes through a milestone
◮ Proof: Probability of acceptance at most doubles in each step
3% chance of accept 0% chance of accept 6% chance of accept 1 ◮ ε = Pr[accept] ≤
Pr[reach u and accept] ≤
Pr[reach u] · 2εn ◮ # milestones ≤ n2, so for some milestone u, Pr[reach u] ≥
1 2n3
SLIDE 42
Iterating the structural lemma
u0 = start Pr[accept] = ε acc
SLIDE 43
Iterating the structural lemma
u0 = start Pr[accept] = ε acc u1 nε
SLIDE 44
Iterating the structural lemma
u0 = start Pr[accept] = ε acc u1 nε u2 n2ε
SLIDE 45
Iterating the structural lemma
u0 = start Pr[accept] = ε acc u1 nε u2 n2ε u3 n3ε
SLIDE 46
Iterating the structural lemma
u0 = start Pr[accept] = ε u1 nε u2 n2ε u3 n3ε acc = ut ntε = 1
SLIDE 47
Idea of our HSG
◮ Use Nisan’s generator for each individual hop ui → ui+1
SLIDE 48
Idea of our HSG
◮ Use Nisan’s generator for each individual hop ui → ui+1 ◮ Use a “hitter” to recycle the seed of Nisan’s generator from one hop to the next
SLIDE 49
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ
SLIDE 50
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ ◮ Theorem (BGG ’93): Algorithm that outputs some z ∈ E with probability 1 − δ
SLIDE 51
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ ◮ Theorem (BGG ’93): Algorithm that outputs some z ∈ E with probability 1 − δ
◮ # queries: O(θ−1 · log(1/δ))
SLIDE 52
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ ◮ Theorem (BGG ’93): Algorithm that outputs some z ∈ E with probability 1 − δ
◮ # queries: O(θ−1 · log(1/δ)) ◮ # random bits: O(m + log(1/δ))
SLIDE 53
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ ◮ Theorem (BGG ’93): Algorithm that outputs some z ∈ E with probability 1 − δ
◮ # queries: O(θ−1 · log(1/δ)) ◮ # random bits: O(m + log(1/δ))
Hit O(m) coins query string query #
SLIDE 54
Hitters (equivalent to dispersers)
◮ Assume query access to unknown E ⊆ {0, 1}m with density(E) ≥ θ ◮ Theorem (BGG ’93): Algorithm that outputs some z ∈ E with probability 1 − δ
◮ # queries: O(θ−1 · log(1/δ)) ◮ # random bits: O(m + log(1/δ))
Hit O(m) coins query string query # ◮ For any E with density(E) ≥ θ, Pr
x [∃y, Hit(x, y) ∈ E] ≥ 1 − δ
SLIDE 55
Our HSG
x
SLIDE 56
Our HSG
x y1 y2 y3 yt
SLIDE 57
Our HSG
x y1 y2 y3 yt n n1 n2 n3 nt
SLIDE 58
Our HSG
x y1 y2 y3 yt n n1 n2 n3 nt Hit Hit Hit Hit
SLIDE 59
Our HSG
x y1 y2 y3 yt n n1 n2 n3 nt Hit Hit Hit Hit NisGen NisGen NisGen NisGen
SLIDE 60
Our HSG
x y1 y2 y3 yt n n1 n2 n3 nt Hit Hit Hit Hit NisGen NisGen NisGen NisGen
SLIDE 61
Our HSG
x y1 y2 y3 yt n Hit Hit Hit Hit NisGen NisGen NisGen NisGen n1 n2 n3 nt
SLIDE 62
Our HSG
x y1 y2 y3 yt n Hit Hit Hit Hit NisGen NisGen NisGen NisGen n1 n2 n3 nt
SLIDE 63
Our HSG
x y1 y2 y3 yt n Hit Hit Hit Hit NisGen NisGen NisGen NisGen n1 n2 n3 nt Output =
SLIDE 64
Our HSG in symbols
◮ For numbers n1, . . . , nt with n1 + · · · + nt = n: Gen(x, y1, . . . , yt, n1, . . . , nt) = NisGen(Hit(x, y1))|n1 ◦ · · · ◦ NisGen(Hit(x, yt))|nt ∈ {0, 1}n
SLIDE 65
Our HSG in symbols
◮ For numbers n1, . . . , nt with n1 + · · · + nt = n: Gen(x, y1, . . . , yt, n1, . . . , nt) = NisGen(Hit(x, y1))|n1 ◦ · · · ◦ NisGen(Hit(x, yt))|nt ∈ {0, 1}n ◮ Here ◦ = concatenation, |r = first r bits
SLIDE 66
Our HSG in symbols
◮ For numbers n1, . . . , nt with n1 + · · · + nt = n: Gen(x, y1, . . . , yt, n1, . . . , nt) = NisGen(Hit(x, y1))|n1 ◦ · · · ◦ NisGen(Hit(x, yt))|nt ∈ {0, 1}n ◮ Here ◦ = concatenation, |r = first r bits ◮ |x| = O(log2 n), |yi| = O(log n), t = log(1/ε)
log n
SLIDE 67
Our HSG in symbols
◮ For numbers n1, . . . , nt with n1 + · · · + nt = n: Gen(x, y1, . . . , yt, n1, . . . , nt) = NisGen(Hit(x, y1))|n1 ◦ · · · ◦ NisGen(Hit(x, yt))|nt ∈ {0, 1}n ◮ Here ◦ = concatenation, |r = first r bits ◮ |x| = O(log2 n), |yi| = O(log n), t = log(1/ε)
log n
◮ So seed length = O(log2 n + log(1/ε))
SLIDE 68
Proof of correctness of our HSG
u0 = start Pr[accept] = ε acc
SLIDE 69
Proof of correctness of our HSG
u0 = start Pr[accept] = ε acc u1 nε n1
SLIDE 70
Proof of correctness of our HSG
u0 = start Pr[accept] = ε acc u1 nε n1 u2 n2ε n2
SLIDE 71
Proof of correctness of our HSG
u0 = start Pr[accept] = ε acc u1 nε n1 u2 n2ε n2 u3 n3ε n3
SLIDE 72
Proof of correctness of our HSG
u0 = start Pr[accept] = ε u1 nε n1 u2 n2ε n2 u3 n3ε n3 acc = ut ntε = 1 nt
SLIDE 73
Proof of correctness of our HSG (continued)
◮ Define Ei ⊆ {0, 1}m by Ei = {z | start at ui−1, read NisGen(z) = ⇒ reach ui}
SLIDE 74
Proof of correctness of our HSG (continued)
◮ Define Ei ⊆ {0, 1}m by Ei = {z | start at ui−1, read NisGen(z) = ⇒ reach ui} ◮ Pr[reach ui | reach ui−1] ≥
1 2n3 =
⇒ density(Ei) >
1 4n3
SLIDE 75
Proof of correctness of our HSG (continued)
◮ Define Ei ⊆ {0, 1}m by Ei = {z | start at ui−1, read NisGen(z) = ⇒ reach ui} ◮ Pr[reach ui | reach ui−1] ≥
1 2n3 =
⇒ density(Ei) >
1 4n3
◮ Hitter property: Prx[∃y, Hit(x, y) ∈ Ei] > 1 − 1
t
SLIDE 76
Proof of correctness of our HSG (continued)
◮ Define Ei ⊆ {0, 1}m by Ei = {z | start at ui−1, read NisGen(z) = ⇒ reach ui} ◮ Pr[reach ui | reach ui−1] ≥
1 2n3 =
⇒ density(Ei) >
1 4n3
◮ Hitter property: Prx[∃y, Hit(x, y) ∈ Ei] > 1 − 1
t
◮ Union bound: There is one x so that for all i, ∃yi, Hit(x, yi) ∈ Ei.
SLIDE 77
Proof of correctness of our HSG (continued)
◮ Define Ei ⊆ {0, 1}m by Ei = {z | start at ui−1, read NisGen(z) = ⇒ reach ui} ◮ Pr[reach ui | reach ui−1] ≥
1 2n3 =
⇒ density(Ei) >
1 4n3
◮ Hitter property: Prx[∃y, Hit(x, y) ∈ Ei] > 1 − 1
t
◮ Union bound: There is one x so that for all i, ∃yi, Hit(x, yi) ∈ Ei. ◮ f (Gen(x, y1, . . . , yt, n1, . . . , nt)) = 1
SLIDE 78
Additional results
◮ Theorem: (ε-success RL) ⊆ DSPACE(log3/2 n + log n log log(1/ε))
SLIDE 79
Additional results
◮ Theorem: (ε-success RL) ⊆ DSPACE(log3/2 n + log n log log(1/ε)) ◮ Theorem: For ROBPs with width n and length polylog n, HSG with seed length O(log(n/ε))
SLIDE 80 Additional results
◮ Theorem: (ε-success RL) ⊆ DSPACE(log3/2 n + log n log log(1/ε)) ◮ Theorem: For ROBPs with width n and length polylog n, HSG with seed length O(log(n/ε)) ◮ Theorem: For any r = r(n), for any constant c, (RL with r coins) ⊆
r logc n nondeterministic bits
SLIDE 81 Open questions
◮ Conjecture: For any r = r(n), for any constant c, (BPL with r coins) =
r logc n coins
SLIDE 82 Open questions
◮ Conjecture: For any r = r(n), for any constant c, (BPL with r coins) =
r logc n coins
- ◮ True for r ≤ 2log0.99 n by Nisan-Zuckerman
SLIDE 83 Open questions
◮ Conjecture: For any r = r(n), for any constant c, (BPL with r coins) =
r logc n coins
- ◮ True for r ≤ 2log0.99 n by Nisan-Zuckerman
◮ ACR ’96: Explicit HSG for circuits = ⇒ P = BPP. Similar theorem for BPL?
SLIDE 84 Open questions
◮ Conjecture: For any r = r(n), for any constant c, (BPL with r coins) =
r logc n coins
- ◮ True for r ≤ 2log0.99 n by Nisan-Zuckerman
◮ ACR ’96: Explicit HSG for circuits = ⇒ P = BPP. Similar theorem for BPL? ◮ Thanks! Questions?