Computational Complexity
Lecture 5 in which we relate space and time, and see the essence of PSPACE (TQBF)
1
Computational Complexity Lecture 5 in which we relate space and - - PowerPoint PPT Presentation
Computational Complexity Lecture 5 in which we relate space and time, and see the essence of PSPACE (TQBF) 1 SPACE and TIME 2 SPACE and TIME NTIME(F) DTIME(F) 2 SPACE and TIME NTIME(F) DTIME(F) 2 SPACE and TIME NTIME(2 O(F) ) DTIME(2
1
2
DTIME(F) NTIME(F)
2
DTIME(F) NTIME(F)
2
DTIME(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
2
DTIME(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
2
DTIME(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
2
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
2
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
2
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
F=!(n) F=!(log n)
2
3
In time T(n), can use at most T(n) space
3
In time T(n), can use at most T(n) space DTIME(T) ⊆ DSPACE(T)
3
In time T(n), can use at most T(n) space DTIME(T) ⊆ DSPACE(T) In fact, NTIME(T) ⊆ DSPACE(O(T)) (try all certificates of length at most T, one after the other)
3
In time T(n), can use at most T(n) space DTIME(T) ⊆ DSPACE(T) In fact, NTIME(T) ⊆ DSPACE(O(T)) (try all certificates of length at most T, one after the other) With space S(n), only 2O(S(n)) configurations (for S(n) = !(log n)). So can take at most 2O(S(n)) time (else gets into an infinite loop)
3
In time T(n), can use at most T(n) space DTIME(T) ⊆ DSPACE(T) In fact, NTIME(T) ⊆ DSPACE(O(T)) (try all certificates of length at most T, one after the other) With space S(n), only 2O(S(n)) configurations (for S(n) = !(log n)). So can take at most 2O(S(n)) time (else gets into an infinite loop) DSPACE(S) ⊆ DTIME(2O(S))
3
In time T(n), can use at most T(n) space DTIME(T) ⊆ DSPACE(T) In fact, NTIME(T) ⊆ DSPACE(O(T)) (try all certificates of length at most T, one after the other) With space S(n), only 2O(S(n)) configurations (for S(n) = !(log n)). So can take at most 2O(S(n)) time (else gets into an infinite loop) DSPACE(S) ⊆ DTIME(2O(S)) In fact, NSPACE(S) ⊆ DTIME(2O(S))
3
4
h=2(O(S))
4
Configuration graph as a DAG is of size 2O(S)
h=2(O(S))
4
Configuration graph as a DAG is of size 2O(S) Write down all configurations and edges
h=2(O(S))
4
Configuration graph as a DAG is of size 2O(S) Write down all configurations and edges Can do it less explicitly if space were a concern (but it’ s not, here)
h=2(O(S))
4
Configuration graph as a DAG is of size 2O(S) Write down all configurations and edges Can do it less explicitly if space were a concern (but it’ s not, here) Run (in poly time) any reachability algorithm (say, breadth-first search) to see if there is a (directed) path from start config. to an accept config.
h=2(O(S))
4
Configuration graph as a DAG is of size 2O(S) Write down all configurations and edges Can do it less explicitly if space were a concern (but it’ s not, here) Run (in poly time) any reachability algorithm (say, breadth-first search) to see if there is a (directed) path from start config. to an accept config. poly(2O(S)) = 2O(S)
h=2(O(S))
4
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
F=!(n) F=!(log n)
5
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
F=!(n) F=!(log n)
5
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
F=!(n) F=!(log n)
5
6
NSPACE(S) ⊆ DSPACE(S2)
6
NSPACE(S) ⊆ DSPACE(S2)
h=2(O(S))
6
NSPACE(S) ⊆ DSPACE(S2) Naive DFS (or BFS) has stack depth h=2(O(S))
h=2(O(S))
6
NSPACE(S) ⊆ DSPACE(S2) Naive DFS (or BFS) has stack depth h=2(O(S)) Look for C s.t. Start!C in h/2 steps and C!Accept in h/2 steps
h=2(O(S))
6
NSPACE(S) ⊆ DSPACE(S2) Naive DFS (or BFS) has stack depth h=2(O(S)) Look for C s.t. Start!C in h/2 steps and C!Accept in h/2 steps Recursively! Depth of recursion only log h; at each level remember one configuration
h=2(O(S))
6
NSPACE(S) ⊆ DSPACE(S2) Naive DFS (or BFS) has stack depth h=2(O(S)) Look for C s.t. Start!C in h/2 steps and C!Accept in h/2 steps Recursively! Depth of recursion only log h; at each level remember one configuration Space needed = O(log h)*O(S) = O(S2)
h=2(O(S))
6
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F))
F=!(n) F=!(log n)
7
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F)) DSPACE(F2)
F=!(n) F=!(log n)
7
DTIME(F) DSPACE(F) NSPACE(F) DTIME(2O(F)) NTIME(F) NTIME(2O(F)) DSPACE(F2)
F=!(n) F=!(log n)
7
8
Major classes of interest (so far):
8
Major classes of interest (so far): P, EXP; NP, NEXP; L, NL; PSPACE, NPSPACE
8
P
PSPACE
EXP NP NEXP L NL
NPSPACE
Major classes of interest (so far): P, EXP; NP, NEXP; L, NL; PSPACE, NPSPACE
8
P
PSPACE
EXP NP NEXP L NL
NPSPACE
Major classes of interest (so far): P, EXP; NP, NEXP; L, NL; PSPACE, NPSPACE PSPACE = NPSPACE (by Savitch)
8
P
PSPACE
EXP NP NEXP L NL
NPSPACE
Major classes of interest (so far): P, EXP; NP, NEXP; L, NL; PSPACE, NPSPACE PSPACE = NPSPACE (by Savitch) Coming up: PSPACE-completeness
8
9
A language L is PSPACE-Complete if for all L ’ in PSPACE, L ’ !p L and L in PSPACE
9
A language L is PSPACE-Complete if for all L ’ in PSPACE, L ’ !p L and L in PSPACE Trivial PSPACE-complete problem: SPACETM = { (M,z,1n) | TM M accepts z within space n }
9
A language L is PSPACE-Complete if for all L ’ in PSPACE, L ’ !p L and L in PSPACE Trivial PSPACE-complete problem: SPACETM = { (M,z,1n) | TM M accepts z within space n } (An) essence of PSPACE: Understanding 2-player games
9
A language L is PSPACE-Complete if for all L ’ in PSPACE, L ’ !p L and L in PSPACE Trivial PSPACE-complete problem: SPACETM = { (M,z,1n) | TM M accepts z within space n } (An) essence of PSPACE: Understanding 2-player games Can the first/second player always win?
9
10
Two players: Alice and Adversary, each given n (mutually disjoint) sets of variables (sets numbered [1,n])
10
Two players: Alice and Adversary, each given n (mutually disjoint) sets of variables (sets numbered [1,n]) Given a boolean formula over these variables
10
Two players: Alice and Adversary, each given n (mutually disjoint) sets of variables (sets numbered [1,n]) Given a boolean formula over these variables In ith round players set the values of the variables in their ith sets. Say Alice moves first.
10
Two players: Alice and Adversary, each given n (mutually disjoint) sets of variables (sets numbered [1,n]) Given a boolean formula over these variables In ith round players set the values of the variables in their ith sets. Say Alice moves first. When all variables set, formula evaluated. If true Alice wins, else adversary wins
10
Two players: Alice and Adversary, each given n (mutually disjoint) sets of variables (sets numbered [1,n]) Given a boolean formula over these variables In ith round players set the values of the variables in their ith sets. Say Alice moves first. When all variables set, formula evaluated. If true Alice wins, else adversary wins Given a QBF game does Alice have a sure-to-win strategy
10
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3)
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true?
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true?
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true? Say only x1, y1 (now, that’ s more like a game):
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true? Say only x1, y1 (now, that’ s more like a game): Strategy for Alice? Is “∃x1 ∀y1 φ(x1,y1 )” true?
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true? Say only x1, y1 (now, that’ s more like a game): Strategy for Alice? Is “∃x1 ∀y1 φ(x1,y1 )” true? In general, winning strategy for Alice exists iff
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true? Say only x1, y1 (now, that’ s more like a game): Strategy for Alice? Is “∃x1 ∀y1 φ(x1,y1 )” true? In general, winning strategy for Alice exists iff ∃x1 ∀y1 ... ∃xn ∀yn φ(x1,y1,...,xn,yn ) is true
11
Vars: x1, y1, x2, y2, x3, y3. Formula: φ(x1,y1,x2,y1,x3,y3) Say, no variables for Adversary. Only x1 Strategy for Alice? Is “∃x1 φ(x1 )” true? Say, no variables for Alice. Only y1 “Strategy” for Alice? Is “∀y1 φ(y1)” true? Say only x1, y1 (now, that’ s more like a game): Strategy for Alice? Is “∃x1 ∀y1 φ(x1,y1 )” true? In general, winning strategy for Alice exists iff ∃x1 ∀y1 ... ∃xn ∀yn φ(x1,y1,...,xn,yn ) is true Else adversary has a winning strategy
11
12
True Quantified Boolean Formula:
12
True Quantified Boolean Formula: ψ := ∃x1 ∀y1 ... ∃xn ∀yn φ(x1,y1,...,xn,yn )
12
True Quantified Boolean Formula: ψ := ∃x1 ∀y1 ... ∃xn ∀yn φ(x1,y1,...,xn,yn ) TQBF = {ψ | ψ is true}
12
True Quantified Boolean Formula: ψ := ∃x1 ∀y1 ... ∃xn ∀yn φ(x1,y1,...,xn,yn ) TQBF = {ψ | ψ is true} e.g. ψ1: ∃x∀y (x=y), ψ2: ∀y∃x (x=y)
12
13
When is a QBF true?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c)
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Game-Tree
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
Winning strategy for Alice if game gets here?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Ask if winning strategy from each node ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
Winning strategy for Alice if game gets here?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Ask if winning strategy from each node Yes from ∃ node if yes from either child. Yes from ∀ node if yes from both. ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
Winning strategy for Alice if game gets here?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Ask if winning strategy from each node Yes from ∃ node if yes from either child. Yes from ∀ node if yes from both. Naive evaluation takes exponential space (and time) ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
Winning strategy for Alice if game gets here?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Ask if winning strategy from each node Yes from ∃ node if yes from either child. Yes from ∀ node if yes from both. Naive evaluation takes exponential space (and time) Can reuse left child computation space for the right child ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Game-Tree
Winning strategy for Alice if game gets here?
13
When is a QBF true? e.g. ∃a,b ∀c φ(a,b,c) Ask if winning strategy from each node Yes from ∃ node if yes from either child. Yes from ∀ node if yes from both. Naive evaluation takes exponential space (and time) Can reuse left child computation space for the right child ∃a ∃b ∀c ∃b
φ(0,0,0) φ(0,0,1)
Space needed = O(depth) + for evaluation = poly(|QBF|) Game-Tree
Winning strategy for Alice if game gets here?
13
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF Given x, output f(x) = ψ, s.t. ψ is true iff ML accepts x
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF Given x, output f(x) = ψ, s.t. ψ is true iff ML accepts x x→ψ in poly time. In particular size of ψ is poly(n)
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF Given x, output f(x) = ψ, s.t. ψ is true iff ML accepts x x→ψ in poly time. In particular size of ψ is poly(n) Note: As in Cook’ s theorem, can build an unquantified formula φ (even 3CNF) s.t. φ is true iff ML accepts x
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF Given x, output f(x) = ψ, s.t. ψ is true iff ML accepts x x→ψ in poly time. In particular size of ψ is poly(n) Note: As in Cook’ s theorem, can build an unquantified formula φ (even 3CNF) s.t. φ is true iff ML accepts x But size is poly(time bound on ML) = exp(n)
14
For L in PSPACE (i.e., TM ML decides L in space poly(n), or with configs of size S(n)=poly(n) ), show L !p TQBF Given x, output f(x) = ψ, s.t. ψ is true iff ML accepts x x→ψ in poly time. In particular size of ψ is poly(n) Note: As in Cook’ s theorem, can build an unquantified formula φ (even 3CNF) s.t. φ is true iff ML accepts x But size is poly(time bound on ML) = exp(n) Use power of quantification to write it succinctly
14
15
An exponential QBF:
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept)
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept) Here Ci are variables whose value assignments correspond to configurations. |Ci| = O(S(n)), |ψ0(C,C’)| = O(S(n)), T=2O(S(n))
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept) Here Ci are variables whose value assignments correspond to configurations. |Ci| = O(S(n)), |ψ0(C,C’)| = O(S(n)), T=2O(S(n)) ψ0(C,C’) is an unquantified formula (only variables being C,C’), s.t. it is true iff C evolves into C’ in one step
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept) Here Ci are variables whose value assignments correspond to configurations. |Ci| = O(S(n)), |ψ0(C,C’)| = O(S(n)), T=2O(S(n)) ψ0(C,C’) is an unquantified formula (only variables being C,C’), s.t. it is true iff C evolves into C’ in one step F be the (const. sized) formula to derive each bit of new config from a few bits in the previous config
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept) Here Ci are variables whose value assignments correspond to configurations. |Ci| = O(S(n)), |ψ0(C,C’)| = O(S(n)), T=2O(S(n)) ψ0(C,C’) is an unquantified formula (only variables being C,C’), s.t. it is true iff C evolves into C’ in one step F be the (const. sized) formula to derive each bit of new config from a few bits in the previous config Then, ψ0(C,C’) is ∧j(C’(j) = F(C(j-c),...,C(j+c)))
15
An exponential QBF: ∃ C1 C2 ... CT ψ0(Cstart,C1) ∧ ψ0(C1,C2) ∧ ... ψ0(CT,Caccept) Here Ci are variables whose value assignments correspond to configurations. |Ci| = O(S(n)), |ψ0(C,C’)| = O(S(n)), T=2O(S(n)) ψ0(C,C’) is an unquantified formula (only variables being C,C’), s.t. it is true iff C evolves into C’ in one step F be the (const. sized) formula to derive each bit of new config from a few bits in the previous config Then, ψ0(C,C’) is ∧j(C’(j) = F(C(j-c),...,C(j+c))) |ψ0(C,C’)| = O(|C|)
15
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept)
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0 ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’)
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0 ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’)
c.f. Savitch’ s theorem
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0 ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Can be rewritten as a QBF in “Prenex Normal form”
c.f. Savitch’ s theorem
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0 ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Can be rewritten as a QBF in “Prenex Normal form” Problem: |ψS(n)| still exponential in S(n)
c.f. Savitch’ s theorem
16
Plan for a more succinct ψ: A partially quantified boolean formula ψi s.t. ψi(C,C’) (fully quantified) is true iff C’ reachable from C in the configuration graph G(ML,x) within 2i steps. Output ψ=ψS(n)(start,accept) Base case (i=0): an unquantified formula, ψ0 ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Can be rewritten as a QBF in “Prenex Normal form” Problem: |ψS(n)| still exponential in S(n) In fact, same as naive formula!
c.f. Savitch’ s theorem
16
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’)
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n)
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula ψi+1(C,C’) := ∃C’’ ∀(D,D’) ((D,D’)=(C,C’’) ∨ (D,D’)=(C’’,C’)) ⇒ ψi(D,D’)
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula ψi+1(C,C’) := ∃C’’ ∀(D,D’) ((D,D’)=(C,C’’) ∨ (D,D’)=(C’’,C’)) ⇒ ψi(D,D’) = and ⇒ shorthands for slightly longer formulas
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula ψi+1(C,C’) := ∃C’’ ∀(D,D’) ((D,D’)=(C,C’’) ∨ (D,D’)=(C’’,C’)) ⇒ ψi(D,D’) = and ⇒ shorthands for slightly longer formulas
c.f. Savitch’ s theorem
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula ψi+1(C,C’) := ∃C’’ ∀(D,D’) ((D,D’)=(C,C’’) ∨ (D,D’)=(C’’,C’)) ⇒ ψi(D,D’) = and ⇒ shorthands for slightly longer formulas |ψS(n)| = O(S(n)) + |ψS(n)-1| = O(S(n)2) + |ψ0| = O(S(n)2)
c.f. Savitch’ s theorem
17
ψi+1(C,C’) := ∃C’’ ψi(C,C’’) ∧ ψi(C’’,C’) Problem: |ψS(n)| exponential in S(n) More variables/ quantification to “reuse” formula ψi+1(C,C’) := ∃C’’ ∀(D,D’) ((D,D’)=(C,C’’) ∨ (D,D’)=(C’’,C’)) ⇒ ψi(D,D’) = and ⇒ shorthands for slightly longer formulas |ψS(n)| = O(S(n)) + |ψS(n)-1| = O(S(n)2) + |ψ0| = O(S(n)2) “Quantification is a powerful programming language”
c.f. Savitch’ s theorem
17
18
PSPACE-complete
18
PSPACE-complete Generalizes SAT and SATc (which have only one quantifier)
18
PSPACE-complete Generalizes SAT and SATc (which have only one quantifier) How about 2, 3, 4, ... quantifier alternations?
18
PSPACE-complete Generalizes SAT and SATc (which have only one quantifier) How about 2, 3, 4, ... quantifier alternations? Coming soon!
18
19
Zoo (more later)
19
Zoo (more later) TQBF
19
Zoo (more later) TQBF PSPACE complete
19
Zoo (more later) TQBF PSPACE complete Will see more of it soon
19
Zoo (more later) TQBF PSPACE complete Will see more of it soon Next Lecture: NL
19
Zoo (more later) TQBF PSPACE complete Will see more of it soon Next Lecture: NL NL-completeness
19
Zoo (more later) TQBF PSPACE complete Will see more of it soon Next Lecture: NL NL-completeness NL = co-NL
19