The Immerman-Szelepcesnyi Theorem and a hard problem for EXPSPACE
Outline for today A new complexity class: co-nl Immerman-Szelepcesnyi: NoPATH is complete for NL Introduction to Vector Addition System Reachability: An old problem that is complete for EXPSPACE
NL and co-nl Recall: co-np = { L the complement of L is in NP} New class: co-nl = { L the complement of L is in NL} Note: Be careful with wording: co-np is not defined as the complement of NP, and co- NL is not the complement of NL What is the the complement of NP?
NL and co-nl It s widely conjectured that NP conp Things are different with space bounded complexity classes: in fact, NL = co-nl
Immerman-Szelepcesnyi Theorem Recall: PATH (previously called DGR) PATH = { (G,x,y) y is reachable from x in G } PATH is complete for NL Let NoPATH = { (G,x,y) y is not reachable from x in G } NoPATH is complete for co-nl Immerman-Szelepcesnyi: NoPATH is in NL Corollary: NL = co-nl
NoPATH = {(G,x,y) x y in G} is in NL Notation: for an instance (G,x,y) of NoPATH let the nodes of G be 1, 2, n Let C i denote the set of nodes of G that are reachable from x via a path of length at most i If y is reachable from x, then y is in C n-1
NoPATH = {(G,x,y) x y in G} is in NL We ll build up to the proof by developing nondeterministic algorithms for several handy checks Check0(v,i): is v in C j? Nondeterministic algorithm correctness: Some algorithm execution returns true if the answer is yes, and there is no such execution if the answer is no
NoPATH = {(G,x,y) x y in G} is in NL Check0(v,i): is v in Cj? p = x for k = 1 to j guess a node p' if (p,p') is not in G return false if p' = v return true p = p return false
NoPATH = {(G,x,y) x y in G} is in NL We ll build up to the proof by developing nondeterministic algorithms for several handy checks Check0(v, j): is v in C j? Check1(v, j, c j ): is v is not in C j, given that c j = C j?
NoPATH = {(G,x,y) x y in G} is in NL Check1(v, j, c j ): is v is not in C j, given that c j = C j? Idea: find c j nodes that are in C j, and make sure none is v
NoPATH = {(G,x,y) x y in G} is in NL Check1(v, j, c j ): is v is not in C j, given that c j = C j? Idea: find c j nodes that are in C j, and make sure none is v count = 0 //the number of nodes found in C j so far for k = 1 to n if k v if Check0(k,j) // is k in C_j? { count = count + 1 } if count = c j return true return false
NoPATH = {(G,x,y) x y in G} is in NL Check1(v, j, c j ): is v is not in C j, given that c j = C j? Correctness: If v is not in C j there is an accepting execution, when on each iteration of the for loop when k is in C j, Check0(k,j) returns true. In this case, count is incremented exactly c j times. If v is in C j then there is no accepting execution: count can be incremented at most c j -1 times and so the algorithm returns false.
NoPATH = {(G,x,y) x y in G} is in NL We ll build up to the proof by developing nondeterministic algorithms for several handy checks Check0(v, j): is v in C j? Check1(v, j, c j ): is v is not in C j given c j = C j? Check2(v, j, c j-1 ): is v is not in C j given c j-1 = C j-1? Not hard to modify Check1
NoPATH = {(G,x,y) x y in G} is in NL We ll build up to the proof by developing nondeterministic algorithms for several handy checks Check0(v, j): is v in C j? Check1(v, j, c j ): is v is not in C j given c j = C j? Check2(v, j, c j-1 ): is v is not in C j given c j-1 = C j-1? Check3(j, c j, c j-1 ): is c j = C j given c j-1 = C j-1?
NoPATH = {(G,x,y) x y in G} is in NL Check3(j, cj, cj-1): is c j = C j given c j-1 = C j-1? count = 0 //the number of nodes found in C j so far for k = 1 to n if Check0(k,j) count = count + 1 elseif not Check2(k, j, cj-1) return false if count = c j return true return false
NoPATH = {(G,x,y) x y in G} is in NL Check3(j, cj, cj-1): is c j = C j given c j-1 = C j-1? Correctness: If c j = C j there is an accepting execution, when exactly c j of the Check0(v,j) tests return true and the remaining tests to Check2(v, j, cj-1) also return true. On this execution, the for loop terminates and count = c j If c j C j either one of the Check0(v,j) tests return false or at the end, count c j
co-np Decidable NP P NL= co-nl PATH NLcomplete NoPATH L
Exercise Which problem is known to be complete for which class? N x N Checkers PATH Periodic Graph Colouring Succinct SAT Tautology TQBF NEXP EXP PSPACE NP co-np NL co-nl
Exercise Which of these do you think is true, false, or an open question? If NP conp then P NP co-np is the complement of the class NP Generalized Checkers is in P Path is in NP NoPath is in NP Path is complete for PSPACE
A hard problem for EXPSPACE
A hard problem for EXPSPACE Vector Addition System (VAS): a tuple (S, V 1, V 2, V n ) where S is a k-dimensional vectors of natural numbers the V i are k-dimensional vectors of integers
Vector Addition Systems One motivation for VAS Reachability: can a particular chemical species be produced by a chemical reaction network from given initial counts of species? Suppose initial vector S is (0,2,2,0,0) Illustration from Cook et al., Programmability of Chemical Reaction Networks
Vector Addition System Reachability Chemical Reaction Network Initial counts: (0,2,2,0,0) Vector addition system S = (0,2,2,0,0) Illustration from Cook et al., Programmability of Chemical Reaction Networks
Vector Addition System Reachability Chemical Reaction Network Initial counts: (0,2,2,0,0) Petri net Illustration from Cook et al., Programmability of Chemical Reaction Networks
A hard problem for EXPSPACE Vector Addition System (VAS): a tuple (S, V 1, V 2, V n ) where S is k-dimensional vectors of natural numbers the V i are k-dimensional vectors of integers VAS Reachability: Given a VAS and k-tuple F of natural numbers, do there exist vectors W 1, W m of natural numbers such that S = W 1, F = W m and for each i, W i+1 = W i + V i for some j
Next Class Vector Addition System Reachability is hard for EXPSPACE, continued Randomized computation Reading: Lipton s paper (see link on webpage) and Arora-Barak 7.1-7.3