Professional Documents
Culture Documents
Nabil Mustafa
Computational Complexity
1 / 204
Review of Definitions
Definition of NP
A language L is in NP if for any x {0, 1} , TM M and p()
2 / 204
Review of Definitions
Definition of NP
A language L is in NP if for any x {0, 1} , TM M and p()
Definition of coNP
A language L is in coNP if for any x {0, 1} , TM M and p()
x
/ L u {0, 1}p(|x|) s.t. M(x, u) = 1
3 / 204
Review of Definitions
Definition of NP
A language L is in NP if for any x {0, 1} , TM M and p()
Definition of coNP
A language L is in coNP if for any x {0, 1} , TM M and p()
x
/ L u {0, 1}p(|x|) s.t. M(x, u) = 1
4 / 204
Example: INDSET
INDSET
INDSET : Given a graph G = (V , E ) and integer k, does G have an
independent set of size k?
The independent set problem (INDSET ) is in NP
5 / 204
Example: INDSET
INDSET
INDSET : Given a graph G = (V , E ) and integer k, does G have an
independent set of size k?
The independent set problem (INDSET ) is in NP
If G has independent set of size k, then this set is the certificate for it, and
there exists TM M that will verify that.
6 / 204
Example: INDSET
INDSET
INDSET : Given a graph G = (V , E ) and integer k, does G have an
independent set of size k?
The independent set problem (INDSET ) is in NP
If G has independent set of size k, then this set is the certificate for it, and
there exists TM M that will verify that.
INDSET
INDSET: Given a graph G = (V , E ) and integer k, does G have no
independent set of size k?
The co-independent set problem (INDSET) is in coNP
7 / 204
Example: INDSET
INDSET
INDSET : Given a graph G = (V , E ) and integer k, does G have an
independent set of size k?
The independent set problem (INDSET ) is in NP
If G has independent set of size k, then this set is the certificate for it, and
there exists TM M that will verify that.
INDSET
INDSET: Given a graph G = (V , E ) and integer k, does G have no
independent set of size k?
The co-independent set problem (INDSET) is in coNP
1 1
0 0 1
0 0
9 / 204
Rejection Tree for NP
0 0
0 0 0
0 0
10 / 204
Acceptance Tree for coNP
0 0
0 0 0
0 0
11 / 204
Rejection Tree for coNP
0 0
0 0 0
1 0
12 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
13 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
Question: Is MAX-INDSET in NP ?
14 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
15 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
16 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
17 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
18 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
19 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
20 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
21 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
22 / 204
Another Problem: MAX-INDSET
MAX-INDSET
MAX-INDSET : Given a graph G = (V , E ) and integer k, is the maximum
independent set in G of size k?
23 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
24 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
25 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
26 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
27 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
28 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
29 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
30 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
31 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
32 / 204
Pp
The Class 2
Pp
Defining 2
P
A language L is in p2 if for any x {0, 1} , TM M and two
polynomials p() and q()
33 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L 2
34 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
35 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
36 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1
37 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
38 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores v and simply works as before on u
39 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores v and simply works as before on u
L coNP :
40 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores v and simply works as before on u
L coNP :
I x L TM M s.t. v , M(x, v ) = 0
41 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores v and simply works as before on u
L coNP :
I x L TM M s.t. v , M(x, v ) = 0 Pp
I Have to construct the machine M 0 as in the definition for 2
42 / 204
Pp
Properties of 2
Claim
Pp
If L NP , then L P2
If L coNP , then L p2
L NP :
I x L u and TM M s.t. M(x, u) = 1 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores v and simply works as before on u
L coNP :
I x L TM M s.t. v , M(x, v ) = 0 Pp
I Have to construct the machine M 0 as in the definition for 2
I M 0 = M ignores u and simply works as before on v
43 / 204
Pp
Generalizing 2
Pp
Defining i
P
For every i 1, a language L is in pi if there exists a polynomial-time
TM M and a polynomial p() such that:
x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
44 / 204
Pp
Generalizing 2
Pp
Defining i
P
For every i 1, a language L is in pi if there exists a polynomial-time
TM M and a polynomial p() such that:
x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
45 / 204
Pp
Generalizing 2
Pp
Defining i
P
For every i 1, a language L is in pi if there exists a polynomial-time
TM M and a polynomial p() such that:
x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
47 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
48 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
Qp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
49 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
Qp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
50 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
Qp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
51 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
Qp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
52 / 204
Defining Polynomial Hierarchy PH
Pp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
Qp
i : x L u1 u2 . . . Qi ui M(x, u1 , . . . , ui ) = 1
53 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
54 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
55 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
56 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
57 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
58 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
59 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
60 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
61 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
62 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
63 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
64 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
65 / 204
A Collapsing Result
Claim
If P = NP then PH = P (the hierarchy collapses to P )
67 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
68 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
69 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
70 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
71 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
72 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
73 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
74 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
75 / 204
Another Collapsing Result
Claim
Pp Qp Pp Qp Pp
If i = i for some i 1, then for any j i, j = j = i
77 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
78 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
79 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
Basically can capture the working of the TM step-by-step
80 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
Basically can capture the working of the TM step-by-step
The existence of certificate for NP language becomes existence of
SAT variables
81 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
Basically can capture the working of the TM step-by-step
The existence of certificate for NP language becomes existence of
SAT variables
P
Exactly same way, can construct a pi -complete problem:
i SAT : u1 u2 . . . Qi ui (u1 , . . . , ui ) = 1
82 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
Basically can capture the working of the TM step-by-step
The existence of certificate for NP language becomes existence of
SAT variables
P
Exactly same way, can construct a pi -complete problem:
i SAT : u1 u2 . . . Qi ui (u1 , . . . , ui ) = 1
83 / 204
Complete Problems for Levels of PH
What about complete problems for each level of the hierarchy?
NP : u = hx1 , . . . , xn i such that (u) satisfiable?
For NP , complete problem: u such that satisfiable
Basically can capture the working of the TM step-by-step
The existence of certificate for NP language becomes existence of
SAT variables
P
Exactly same way, can construct a pi -complete problem:
i SAT : u1 u2 . . . Qi ui (u1 , . . . , ui ) = 1
84 / 204
Polynomial Hierarchy
85 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
86 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
87 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
88 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
89 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
90 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
91 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
Definition
An Oracle Turing machine M O has
An extra oracle tape, and access to oracle O
Three extra states qquery , qyes , qno .
92 / 204
Oracle Turing Machine (OTM )
Define an Oracle Turing Machine (OTM ) M O as:
Definition
An Oracle Turing machine M O has
An extra oracle tape, and access to oracle O
Three extra states qquery , qyes , qno .
When M enters qquery , control goes to state qyes if q O where q is
question on the oracle tape, otherwise state qno .
93 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
94 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
95 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
96 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
97 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
98 / 204
New Complexity Classes
Claim: If M is a TM , M is a reduction from M O to O
99 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
100 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
101 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
102 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
103 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ?
104 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
105 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
I Clearly NP NP NP
106 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
I Clearly NP NP NP
I So why is NP NP NP false?
107 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
I Clearly NP NP NP
I So why is NP NP NP false?
108 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
I Clearly NP NP NP
I So why is NP NP NP false?
109 / 204
Some Properties
Define C1C2 : M is a TM that is in complexity class C1
Is NP = NP NP ? No!
I Clearly NP NP NP
I So why is NP NP NP false?
110 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
111 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
112 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
113 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
NP
2 = NP
114 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
NP
2 = NP
Y
NP
= coNP
2
115 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
NP
2 = NP
Y
NP
= coNP
2
pi = NP i 1
116 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
NP
2 = NP
Y
NP
= coNP
2
pi = NP i 1
Y
p
i 1
= coNP
i
117 / 204
Polynomial Hierarchy via OTM
Can now define the polynomial heirarchy another way!
1 = NP
Y
= coNP
1
NP
2 = NP
Y
NP
= coNP
2
pi = NP i 1
Y
p
i 1
= coNP
i
Claim: The above relations are correct
118 / 204
Defining the hierarchy via Oracle Machines
Theorem
P
For every i 2, pi = NP i 1 , where the latter class denotes the set of
languages decided by the polynomial-time NTM s with access to the
oracle i1 .
119 / 204
Defining the hierarchy via Oracle Machines
Theorem
P
For every i 2, pi = NP i 1 , where the latter class denotes the set of
languages decided by the polynomial-time NTM s with access to the
oracle i1 .
120 / 204
Defining the hierarchy via Oracle Machines
Theorem
P
For every i 2, pi = NP i 1 , where the latter class denotes the set of
languages decided by the polynomial-time NTM s with access to the
oracle i1 .
121 / 204
Defining the hierarchy via Oracle Machines
Theorem
P
For every i 2, pi = NP i 1 , where the latter class denotes the set of
languages decided by the polynomial-time NTM s with access to the
oracle i1 .
L NP SAT
= L p2
122 / 204
First direction
L p2 = L NP SAT
123 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
124 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
125 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
126 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
127 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
128 / 204
First direction
L p2 = L NP SAT
x L u1 u2 M(x, u1 , u2 ) = 1
129 / 204
Other direction
L NP SAT
= L p2
130 / 204
Other direction
L NP SAT
= L p2
131 / 204
Other direction
L NP SAT
= L p2
132 / 204
Other direction
L NP SAT
= L p2
133 / 204
Other direction
L NP SAT
= L p2
134 / 204
Other direction
L NP SAT
= L p2
135 / 204
Other direction
L NP SAT
= L p2
136 / 204
Other direction
L NP SAT
= L p2
137 / 204
Other direction
L NP SAT
= L p2
138 / 204
Other direction
L NP SAT
= L p2
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
140 / 204
Final Formula
SAT SAT SAT SAT
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
141 / 204
Final Formula
SAT SAT SAT SAT
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
c1 , . . . , cn , a1 , . . . , ak , u1 , . . . , uk v1 , . . . , vk
142 / 204
Final Formula
SAT SAT SAT SAT
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
c1 , . . . , cn , a1 , . . . , ak , u1 , . . . , uk v1 , . . . , vk
143 / 204
Final Formula
SAT SAT SAT SAT
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
c1 , . . . , cn , a1 , . . . , ak , u1 , . . . , uk v1 , . . . , vk
144 / 204
Final Formula
SAT SAT SAT SAT
a1 = 0 a2 = 1 a3 = 0 ai = 1
C1 C2 C3 Caccept
Guesses: 0 1 0 1
c1 , . . . , cn , a1 , . . . , ak , u1 , . . . , uk v1 , . . . , vk
146 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
147 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
148 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
149 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
150 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
151 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
Define Alternating Turing Machine (ATM ) such that
152 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
Define Alternating Turing Machine (ATM ) such that
I Each configuration node v labelled with either or
153 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
Define Alternating Turing Machine (ATM ) such that
I Each configuration node v labelled with either or
I -type node: returns 1 iff both its children return 1
154 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
Define Alternating Turing Machine (ATM ) such that
I Each configuration node v labelled with either or
I -type node: returns 1 iff both its children return 1
I -type node: returns 1 iff one of its children returns 1
155 / 204
Alternating Turing Machines
NTM : Graph of computation G . Input accepted iff there exists a
path ending in an accepting state.
I There is an equivalent way to recursively formulate it
I v G returns 1 to parent if an accepting path from v
NTM returns 1 iff the root returns 1
I If root returns 1, one of children return 1
I So trace this path till we reach the accepting state node
Define Alternating Turing Machine (ATM ) such that
I Each configuration node v labelled with either or
I -type node: returns 1 iff both its children return 1
I -type node: returns 1 iff one of its children returns 1
Bounding Alternations
P
L i TIME (T (n)) : ATM M on which every input and sequence of
choices leads M to change at most (i 1) times from states with one label
to another.
156 / 204
Examples of ATM
V
W
V
W
W
1 1
W
0 0 1
0 0
157 / 204
Examples of ATM
V
W
V
W
W
1 1
W
0 0 1
0 0
Accept.
158 / 204
Examples of ATM
V
W
V
W
W
1 0
W
0 1 1
0 0
159 / 204
Examples of ATM
V
W
V
W
W
1 0
W
0 1 1
0 0
Reject.
160 / 204
Equivalence of the two definitions
An Equivalence
Pp S P
i = c i TIME (nc )
Qp S Q
i = c i TIME (nc )
161 / 204
Equivalence of the two definitions
An Equivalence
Pp S P
i = c i TIME (nc )
Qp S Q
i = c i TIME (nc )
162 / 204
Equivalence of the two definitions
An Equivalence
Pp S P
i = c i TIME (nc )
Qp S Q
i = c i TIME (nc )
163 / 204
Summary So Far
164 / 204
Summary So Far
165 / 204
Summary So Far
166 / 204
Summary So Far
167 / 204
Summary So Far
168 / 204
Summary So Far
169 / 204
Summary So Far
170 / 204
Summary So Far
171 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
172 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
173 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
174 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
Defining TISP
For every two functions S, T : N N, define TISP (T (n), S(n))
(TIME-SPACE) as set of languages decided by TM M that uses T (|x|)
time and S(|x|) space.
175 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
Defining TISP
For every two functions S, T : N N, define TISP (T (n), S(n))
(TIME-SPACE) as set of languages decided by TM M that uses T (|x|)
time and S(|x|) space.
176 / 204
Defining the class TISP
Claim
There does not exist an algorithm for SAT that uses n1.1 time and n0.1
space.
Defining TISP
For every two functions S, T : N N, define TISP (T (n), S(n))
(TIME-SPACE) as set of languages decided by TM M that uses T (|x|)
time and S(|x|) space.
NTIME (n)
/ TISP (n1.2 , n0.2 )
177 / 204
Proof Structure
P
TISP(n12 , n2 ) 8
2 TIME(n )
178 / 204
Proof Structure
Assume
12 2 P 8
TISP(n , n ) 2 TIME(n ) NTIME(n10 ) TISP(n12 , n2 )
179 / 204
Proof Structure
Assume
12 2 P 8
TISP(n , n ) 2 TIME(n ) NTIME(n10 ) TISP(n12 , n2 )
P 8
2 TIME(n ) TIME(n9.6 )
180 / 204
Proof Structure
Assume
12 2 P 8
TISP(n , n ) 2 TIME(n ) NTIME(n10 ) TISP(n12 , n2 )
P 8
2 TIME(n ) TIME(n9.6 )
NTIME(n10 ) TISP(n12 , n2 )
P
TISP(n12 , n2 ) 8
2 TIME(n )
P 8
2 TIME(n ) TIME(n9.6 )
181 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
182 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
183 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
184 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
185 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
186 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
187 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
188 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
189 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
190 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
191 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
192 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
193 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
194 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
195 / 204
Proof of First Claim
Claim
TISP (n12 , n2 ) 2 TIME(n8 )
196 / 204
The Alternating Turing Machine
Checking two paths Cstart to Cmid
Cstart to Cmid
197 / 204
Proof of Second Claim
Claim
198 / 204
Proof of Second Claim
Claim
199 / 204
Proof of Second Claim
Claim
8
Note that L0 = v {0, 1}d|x| M(x; u, v ) = 1 is in coNP
200 / 204
Proof of Second Claim
Claim
8
Note that L0 = v {0, 1}d|x| M(x; u, v ) = 1 is in coNP
NTIME (n) DTIME (n1.2 ) = coNTIME(n) DTIME (n1.2 )
201 / 204
Proof of Second Claim
Claim
8
Note that L0 = v {0, 1}d|x| M(x; u, v ) = 1 is in coNP
NTIME (n) DTIME (n1.2 ) = coNTIME(n) DTIME (n1.2 )
202 / 204
Proof of Second Claim
Claim
8
Note that L0 = v {0, 1}d|x| M(x; u, v ) = 1 is in coNP
NTIME (n) DTIME (n1.2 ) = coNTIME(n) DTIME (n1.2 )
203 / 204
Proof of Second Claim
Claim
8
Note that L0 = v {0, 1}d|x| M(x; u, v ) = 1 is in coNP
NTIME (n) DTIME (n1.2 ) = coNTIME(n) DTIME (n1.2 )