Transcript Slide 1

P, NP and beyond
CSA Summer School 2013
Chandan Saha
What is Computational Complexity?
 Study of the amount of resources required by an
algorithm to solve a problem.
What is Computational Complexity?
 Study of the amount of resources required by an
algorithm to solve a problem.
•
•
•
•
Time (bit operations)
Space (bits)
Randomness
Communications
What is Computational Complexity?
 Study of the amount of resources required by an
algorithm to solve a problem.
• Mathematically formalized as Turing Machines
What is Computational Complexity?
 Study of the amount of resources required by an
algorithm to solve a problem.
• Language: Set of {0,1}* strings.
Turing Machines
Input : 1
0
1
…
0
1
1
Turing Machine
Input : 1
0
1
Work tape: 1 1 0
Head
…
0
…
1
1
1
1 1
Turing Machine
Input : 1
0
1
…
Work tape: 1 1 0
Output: 1
1
1
0
1
1
…
…
1
0
0
1
1 1
Turing Machine
Input : 1
0
1
…
Work tape: 1 1 0
Output: 1
1
Processor
(states)
1
0
1
1
…
…
1
0
0
1
1 1
Turing Machine
Input : 1
0
1
…
Work tape: 1 1 0
Output: 1
1
Processor
(states)
1
0
1
1
…
…
1
0
0
1 1
1
Finite set of
instructions
(transition functions)
Why Turing Machines ?
 Natural & intuitive.
Why Turing Machines ?
 Natural & intuitive.
 A formal model helps us study the power and
limitations of computation mathematically.
Why Turing Machines ?
 Natural & intuitive.
 A formal model helps us study the power and
limitations of computation mathematically.
 Church-Turing thesis: “Every physically realizable
computation device – whether it’s based on silicon, DNA,
neurons or some other alien technology – can be simulated
by a Turing machine”. --- [quote from Arora-Barak’s book]
Why Turing Machines ?
 Natural & intuitive.
 A formal model helps us study the power and
limitations of computation mathematically.
 Church-Turing thesis: “Every physically realizable
computation device – whether it’s based on silicon, DNA,
neurons or some other alien technology – can be simulated
by a Turing machine”. --- [quote from Arora-Barak’s book]
Might or might not be true!
Why Turing Machines ?
 Natural & intuitive.
 A formal model helps us study the power and
limitations of computation mathematically.
 Church-Turing thesis: “Every physically realizable
computation device – whether it’s based on silicon, DNA,
neurons or some other alien technology – can be simulated
by a Turing machine”. --- [quote from Arora-Barak’s book]
Might or might not be true!
Quantum computers ?
In support of the CT thesis
 Several other computational models like, “lamda
calculus, cellular automata, pointer machines, bouncing
billiard balls, Conway’s game of life, and so on..” are all
equivalent to the Turing machine model of
computation.
In support of the CT thesis
 Several other computational models like, “lamda
calculus, cellular automata, pointer machines, bouncing
billiard balls, Conway’s game of life, and so on..” are all
equivalent to the Turing machine model of
computation.
Can Turing machines solve any computational problem?
In support of the CT thesis
 Several other computational models like, “lamda
calculus, cellular automata, pointer machines, bouncing
billiard balls, Conway’s game of life, and so on..” are all
equivalent to the Turing machine model of
computation.
Can Turing machines solve any computational problem?
Not really!
Example: Solving Diophantine equations
Input: A system of polynomial equations in many
variables with integer coefficients.
Output: Check if the system has integer solutions .
Question: Is there an algorithm to solve this problem?
Example: Solving Diophantine equations
Input: A system of polynomial equations in many
variables with integer coefficients.
Output: Check if the system has integer solutions .
Question: Is there an algorithm to solve this problem?
x2y + 5y3 = 3
x2 + z5 – 3y2 = 0
y2 – 4z6 = 0
Integer solutions for x, y, z?
Example: Solving Diophantine equations
Input: A system of polynomial equations in many
variables with integer coefficients.
Output: Check if the system has integer solutions .
Question: Is there an algorithm to solve this problem?
x2y + 5y3 = 3
x2 + z5 – 3y2 = 0
Integer solutions for x, y, z?
y2 – 4z6 = 0
A question posed by David Hilbert in 1900
Computational limitations of TM
 The problem, Solving Diophantine equations, cannot
be solved by any Turing machines (no matter how
much time & space we allow).
Computational limitations of TM
 The problem, Solving Diophantine equations, cannot
be solved by any Turing machines (no matter how
much time & space we allow).
 Such problems are known as undecidable problems.
There are many other examples.
Computational limitations of TM
 The problem, Solving Diophantine equations, cannot
be solved by any Turing machines (no matter how
much time & space we allow).
 Such problems are known as undecidable problems.
There are many other examples.
 For the rest of this talk, we’ll restrict our attention to
computable (or decidable) problems.
Computational limitations of TM
 The problem, Solving Diophantine equations, cannot
be solved by any Turing machines (no matter how
much time & space we allow).
 Such problems are known as undecidable problems.
There are many other examples.
 For the rest of this talk, we’ll restrict our attention to
computable (or decidable) problems.
Good idea to have a list of computable problems in mind!
Problem set 1
 Multiplication: Given two integers a & b compute ab
Problem set 1
 Multiplication: Given two integers a & b compute ab
 Solving linear system: Solve a system of m linear
equations in n variables over rationals.
Problem set 1
 Multiplication: Given two integers a & b compute ab
 Solving linear system: Solve a system of m linear
equations in n variables over rationals.
1.5x +
x+
0.5y –
2y
z = 1.25
= 0.25
2x - 0.33y + 0.7z = 2
rational solutions for x, y, z?
Problem set 1 (contd.)
 Shortest path: Given a weighted graph and two vertices
s & t, find the shortest path from s to t.
Problem set 1 (contd.)
 Shortest path: Given a weighted graph and two vertices
s & t, find the shortest path from s to t.
 Maximum matching: Given a graph, find a maximum
matching.
Problem set 1 (contd.)
 Shortest path: Given a weighted graph and two vertices
s & t, find the shortest path from s to t.
 Maximum matching: Given a graph, find a maximum
matching.
Matching
Problem set 2
 Vertex cover: Given a graph G and an integer k, check
if there’s a set of k vertices that covers all the edges.
Vertex cover of size 5
Problem set 2 (contd.)
 Boolean 3-satisfiability: Given a set of m clauses in n
variables check if there’s an assignment that satisfies
all the clauses.
¬x + y + z + u = 1
x + ¬y +
x + ¬y + z
¬u = 1
=1
Boolean solution for x,y,z,u?
Problem set 2 (contd.)
 Travelling salesman problem: Given a list of pairwise
distances between n cities, is there a route of length at
most k that travels through all of them?
Problem set 3
 Smallest Boolean circuit: Find the smallest Boolean
circuit equivalent to a given Boolean circuit.
(VLSI design)
Problem set 3
 Smallest Boolean circuit: Find the smallest Boolean
circuit equivalent to a given Boolean circuit.
(VLSI design)
 Number of Cycles: Given a directed graph G, count the
number of simple cycles in G.
Which of the problems in Set 1, 2 and 3 can be
solved efficiently?
Which of the problems in Set 1, 2 and 3 can be
solved efficiently?
We need to formalize the notion of
computational efficiency.
Defining `Efficiency’: Class P
 Polynomial time computation: An algorithm runs in
polynomial time if for every input of size n the
running time of the algorithm is bounded by nc, where
c is a constant independent of the input.
c may vary from one algorithm to the other
Why `polynomial time’?
All computational models that are `equivalent’ to Turing
machines, reduce to each other in polynomial time
If you can solve one problem in one computational model, you can
also solve it any other `equivalent’ computational model with just a
polynomial slow down in the running time of the algorithm.
Problems in class P
 All the problems in Set 1:
• Integer Multiplication
• Solving linear system
• Shortest path
• Maximum matching
can be solved in polynomial time.
Problems in class P
 All the problems in Set 1:
• Integer Multiplication
• Solving linear system
• Shortest path
• Maximum matching (Edmonds 1965)
can be solved in polynomial time.
Are all computable problems in P?
Certainly not!
Are all computable problems in P?
Certainly not!
• Ideal membership problem: Given multivariate
polynomials g, f1, …., fn, check if there exist
polynomials h1, …, hn such that
g = h1f1 + … + hnfn
Are all computable problems in P?
Certainly not!
• Ideal membership problem: Given multivariate
polynomials g, f1, …., fn, check if there exist
polynomials h1, …, hn such that
g = h1f1 + … + hnfn
IM is not in class P
A simpler version of Ideal membership
A valid set of polynomials h1, …, hn is a certificate of
the fact that g = h1f1 + … + hnfn
A simpler version of Ideal membership
A valid set of polynomials h1, …, hn is a certificate of
the fact that g = h1f1 + … + hnfn
Simpler version of IM: Suppose an `alleged certificate’
h1, …, hn is given. Check if
g = h1f1 + … + hnfn
Verification version of IM
A simpler version of Ideal membership
A valid set of polynomials h1, …, hn is a certificate of
the fact that g = h1f1 + … + hnfn
Simpler version of IM: Suppose an `alleged certificate’
h1, …, hn is given. Check if
g = h1f1 + … + hnfn
Is this problem easy?
A simpler version of Ideal membership
A valid set of polynomials h1, …, hn is a certificate of
the fact that g = h1f1 + … + hnfn
Simpler version of IM: Suppose an `alleged certificate’
h1, …, hn is given. Check if
g = h1f1 + … + hnfn
Is this problem easy?
The certificate h1, …, hn can be much larger than the
original polynomials g, f1, …., fn ; implying that verification
cannot be done in time polynomial in the size of g, f1, …., fn.
Class NP
A problem is in NP if:
• its solution or certificate size is small,
• solution or certificate can be verified efficiently.
Class NP
A problem is in NP if:
• its solution or certificate size is small,
• solution or certificate can be verified efficiently.
Problems in set 2:
• Vertex cover
• Boolean 3-satisfiability
• Travelling Salesman problem
are all in class NP.
The P versus NP question
To summarize,
• P: Problems that can be solved efficiently.
• NP: Problems whose (alleged) solutions can be
verified efficiently.
must be of size at most polynomial in the input size of the problem
The P versus NP question
To summarize,
• P: Problems that can be solved efficiently.
• NP: Problems whose (alleged) solutions can be
verified efficiently.
P versus NP question:
Can problems with efficiently verifiable solutions be also
solved efficiently?
Note: P is in NP
The P versus NP question
NP problems can be solved in exponential time.
Simply go over all possible choices of certificates in
2poly(n) time.
The P versus NP question
NP problems can be solved in exponential time.
P versus NP question:
Can exponential search for solution be avoided?
Philosophical implications of P vs NP
 A proof (solution or certificate) of a mathematical
theorem is easier to verify that to actually prove (i.e
find a solution to) the theorem.
 If P = NP then in principle computers can replace
mathematicians some day!
Notion of NP-completeness
 NP-complete problems
hardest problems in NP
Notion of NP-completeness
 NP-complete problems
hardest problems in NP
 A problem L in NP is NP-complete if a polynomial
time algorithm for L implies a polynomial time
algorithm for every other problem in NP.
Notion of NP-completeness
 NP-complete problems
hardest problems in NP
 A problem L in NP is NP-complete if a polynomial
time algorithm for L implies a polynomial time
algorithm for every other problem in NP.
 All the problems in set 2 are NP-complete!
along with thousands of other problems!
Problems in NP but not in NPC U P?
 Are there problems in NP which are neither NP-complete
nor in P?
Problems in NP but not in NPC U P?
 Are there problems in NP which are neither NP-complete
nor in P?
 Yes, if P ≠ NP
NPC
NP
Ladner’s theorem
(1975)
P
Natural problems in NP / (NPC U P)?
 Are there natural examples of problems which are neither
NP-complete nor in P?
Natural problems in NP / (NPC U P)?
 Are there natural examples of problems which are neither
NP-complete nor in P?
 No one knows yet as that would imply P ≠ NP.
 Some researchers suspect that graph isomorphism,
integer factoring could be examples of such problems.
Graph Isomorphism problem
 Given two directed graphs G and H on the same vertex set
V, check if there exist a permutation л on V such that
(u,v) in EG
(л(u), л(v)) in EH
Edge set of G
Edge set of H
Graph Isomorphism problem
 Given two directed graphs G and H on the same vertex set
V, check if there exist a permutation л on V such that
(u,v) in EG
(л(u), л(v)) in EH
1
2
1
2
4
3
G ~ H
4
3
G
H
Graph Isomorphism problem
 Given two directed graphs G and H on the same vertex set
V, check if there exist a permutation л on V such that
(u,v) in EG
(л(u), л(v)) in EH
1
2
1
2
4
3
G ~ H
4
3
H
G
Note: GI is in NP
Coping with NP-hardness
Average-case
complexity
Approximation
algorithms
Boon of NP-hardness
Complexity
theory
Role of
Randomness
P vs NP
Secrecy &
security
Coping with NP-hardness
Average-case
complexity
Approximation
algorithms
Boon of NP-hardness
Complexity
theory
Role of
Randomness
P vs NP
Secrecy &
security
Role of Randomness in computation
Can randomness give additional power to computation?
Role of Randomness in computation
Can randomness give additional power to computation?
• The answer depends on how we use randomness.
• First, we need to make the model of probabilistic
computation formal & precise.
Probabilistic Turing Machine
additional
input/power
1
0
1
…
0
1
1
Turing Machine
M
r = random bits
(each bit is 1 with prob. ½ and 0 with prob. 1/2)
Probabilistic Turing Machine
additional
input/power
1
0
1
…
0
1
1
Turing Machine
M
r = random bits
(each bit is 1 with prob. ½ and 0 with prob. 1/2)
• Output of M depends on the value of r.
• Ideally, number of bits of r = poly(n), where n
is the input size.
Probabilistic Turing Machine
• A TM with the additional power of generating random bits.
Probabilistic Turing Machine
• A TM with the additional power of generating random bits.
How can we generate random bits?
Is this a realistic model?
Probabilistic Turing Machine
• A TM with the additional power of generating random bits.
How can we generate random bits?
• Practically,
using psuedo-random number generators
functions whose output behave like random numbers
Probabilistic Turing Machine
• A TM with the additional power of generating random bits.
How can we generate random bits?
• Practically,
using psuedo-random number generators
In theory, true randomness can be found in quantum physics
Example: Randomized Quicksort
 Worst-case complexity of Quick-sort on n numbers is
O(n2).
Example: Randomized Quicksort
 Worst-case complexity of Quick-sort on n numbers is
O(n2).
 In randomized QS, position of a pivot element is
chosen at random (in every iteration or level of the
recursion).
Example: Randomized Quicksort
 Worst-case complexity of Quick-sort on n numbers is
O(n2).
 In randomized QS, position of a pivot element is
chosen at random (in every iteration or level of the
recursion).
 Time complexity improves to O(n log n) with high
probability.
Randomness does help indeed!
Example: Randomized Quicksort
 Worst-case complexity of Quick-sort on n numbers is
O(n2).
 In randomized QS, position of a pivot element is
chosen at random (in every iteration or level of the
recursion).
 Time complexity improves to O(n log n) with high
probability.
Randomness does help indeed!
But how much?
Can randomness improve the efficiency of an algorithm
from exponential-time to polynomial-time?
Probabilistic polynomial-time computation
Class BPP
Probabilistic polynomial time computation: An
algorithm runs in probabilistic polynomial time if for
every input of size n:
• the algorithm uses r = poly(n) random bits.
Class BPP
Probabilistic polynomial time computation: An
algorithm runs in probabilistic polynomial time if for
every input of size n:
• the algorithm uses r = poly(n) random bits.
• outputs the right answer with probability 99%.
Class BPP
Probabilistic polynomial time computation: An
algorithm runs in probabilistic polynomial time if for
every input of size n:
• the algorithm uses r = poly(n) random bits.
• outputs the right answer with probability 99%.
• the running time of the algorithm is bounded by nc,
where c is a constant independent of the input.
Can randomness improve the efficiency of an algorithm
from exponential-time to polynomial-time?
Is NP in BPP ?
Can randomness improve the efficiency of an algorithm
from exponential-time to polynomial-time?
Is NP in BPP ?
Unlikely!
Hardness vs Randomness
• Under a widely believed complexity theoretic
assumption on existence of hard functions in
DTIME(2O(n)),
BPP = P
Hardness vs Randomness
• Under a widely believed complexity theoretic
assumption on existence of hard functions in
DTIME(2O(n)),
BPP = P
“… randomness never speeds up computation by more
than a polynomial amount unless…”.
--- (Impagliazzo, Wigderson 1997)
Redemption for Randomness?
Doesn’t randomness give any significant
computational power?
Redemption for Randomness?
Doesn’t randomness give any significant
computational power?
It does…
Redemption for Randomness?
Doesn’t randomness give any significant
computational power?
It does…
Ever wondered why most of us tend to learn faster
through interaction with an expert, as compared to
reading books by ourselves?
Interactive Protocol
Is x in L ?
Interactive Protocol
Is x in L ?
Verifier
All powerful
prover
Agrees upon a protocol
(Expert)
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
sends a query
All powerful
prover
Verifier
(Expert)
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
answers the query
All powerful
prover
Verifier
(Expert)
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
All powerful
prover
(Expert)
sends a query
Verifier
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
All powerful
prover
(Expert)
Verifier
answers the query
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
All powerful
prover
(Expert)
|x| = n
Verifier
.
.
.
poly(n) number of rounds
(Learner)
Randomized
polynomial
time
machine
Interactive Protocol
Is x in L ?
All powerful
prover
(Expert)
|x| = n
Verifier
.
.
.
(Learner)
poly(n) number of rounds
In the end, Verifier either outputs x in L, or x not in L
Randomized
polynomial
time
machine
Class IP
IP: It is set of all problems (i.e. languages L) for which
there’s an interactive protocol satisfying the following:
Class IP
IP: It is set of all problems (i.e. languages L) for which
there’s an interactive protocol satisfying the following:
• (Completeness):
If x in L, there’s an honest Prover
who convinces Verifier that x in L, with probability 1.
Class IP
IP: It is set of all problems (i.e. languages L) for which
there’s an interactive protocol satisfying the following:
• (Completeness):
If x in L, there’s an honest Prover
who convinces Verifier that x in L, with probability 1.
•(Soundness): If x not in L, there’s no Prover who can
convince Verifier that x in L, with probability higher
than 0.01
Class IP
In essence, IP captures that set of all problems whose
solutions an intelligent verifier can learn efficiently
from an expert without getting fooled by quacks!
Class IP
In essence, IP captures that set of all problems whose
solutions an intelligent verifier can learn efficiently
from an expert without getting fooled by quacks!
Needs to fix a protocol and ask
intelligent questions
Class IP
In essence, IP captures that set of all problems whose
solutions an intelligent verifier can learn efficiently
from an expert without getting fooled by quacks!
probabilistic polynomial-time
Class IP
In essence, IP captures that set of all problems whose
solutions an intelligent verifier can learn efficiently
from an expert without getting fooled by quacks!
Soundness – this is where we actually need randomness!
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
Not known to be in NP!
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
Now ponder on this….
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Verifier picks one of G1
and G2 at random – say,
Gi , and a random
permutation л on the
vertices of Gi .
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Verifier picks one of G1
and G2 at random – say,
Gi , and a random
permutation л on the
vertices of Gi .
 Verifier sends л(Gi) to
the Prover (and expects
the Prover to return i
this is the protocol)
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Prover returns some j.
 Verifier picks one of G1
and G2 at random – say,
Gi , and a random
permutation л on the
vertices of Gi .
 Verifier sends л(Gi) to
the Prover (and expects
the Prover to return i
this is the protocol)
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Prover returns some j.
 Verifier checks if i = j.
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Prover returns some j.
 Verifier checks if i = j.
 If so, outputs G1 non-
isomorphic to G2.
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Prover returns some j.
 Verifier checks if i = j.
 If so, outputs G1 non-
isomorphic to G2.
 Otherwise, outputs G1
isomorphic to G2.
Interactive Protocol for GNI
Check if G1 is non-isomorphic to G2
 Prover returns some j.
 Verifier checks if i = j.
 If so, outputs G1 non-
isomorphic to G2.
 Otherwise, outputs G1
isomorphic to G2.
Repeat this protocol a few times to reduce Verifier’s
chance of making a mistake
How big is the class IP?
IP contains problems that are seemingly not in
NP! (like GNI)
IP = PSPACE
IP = Set of all problems that can be solved
by a TM using poly(n) space =: PSPACE
IP = PSPACE
IP = Set of all problems that can be solved
by a TM using poly(n) space =: PSPACE
NP is contained in PSPACE
IP = PSPACE
IP = Set of all problems that can be solved
by a TM using poly(n) space =: PSPACE
The power of PSPACE comes from the fact that
space can be reused!
IP = PSPACE
IP = Set of all problems that can be solved
by a TM using poly(n) space =: PSPACE
• Take randomness away from the Verifier :
(deterministic) IP = NP
Randomness is absolutely essential for the Verifier!
Yet another usefulness of randomness
Ever wondered how a teacher checks so many
answer scripts so quickly, without compromising
on the fairness of the evaluation process?
Probabilistically Checkable Proofs
• Every NP problem admits a certificate (or a proof)
of polynomial length that can be verified efficiently.
Probabilistically Checkable Proofs
• Every NP problem admits a certificate (or a proof)
of polynomial length that can be verified efficiently.
• Such a proof is static, in the sense that one has to
read the entire proof to verify for correctness.
Probabilistically Checkable Proofs
• Every NP problem admits a certificate (or a proof)
of polynomial length that can be verified efficiently.
• Such a proof is static, in the sense that one has to
read the entire proof to verify for correctness.
• Can NP-proofs be written in a format that can be
verified by reading very few random bits of the
proof?
Probabilistically Checkable Proofs
• Every NP problem admits a certificate (or a proof)
of polynomial length that can be verified efficiently.
• Such a proof is static, in the sense that one has to
read the entire proof to verify for correctness.
• Can NP-proofs be written in a format that can be
verified by reading very few random bits of the
proof?
Such a proof is known as a PCP
The PCP theorem
Theorem: Every NP problem has a PCP of length
poly(n) that can be verified with high probability for
correctness, by reading only constantly many
locations of the proof.
NP = PCP (O(log n), O(1))
The PCP theorem
Theorem: Every NP problem has a PCP of length
poly(n) that can be verified with high probability for
correctness, by reading only constantly many
locations of the proof.
NP = PCP (O(log n), O(1))
Number of random bits required
The PCP theorem
Theorem: Every NP problem has a PCP of length
poly(n) that can be verified with high probability for
correctness, by reading only constantly many
locations of the proof.
NP = PCP (O(log n), O(1))
Number of locations read
Coping with NP-hardness
Average-case
complexity
Approximation
algorithms
Boon of NP-hardness
Complexity
theory
Role of
Randomness
P vs NP
Secrecy &
security
Approximation algorithms
 In practice, for many of the NP-complete problems
we would be quite happy to compute a good
approximate of the optimum solution.
Approximation algorithms
 In practice, for many of the NP-complete problems
we would be quite happy to compute a good
approximate of the optimum solution.
 Example: For TSP, even an approximately short
route might be good enough.
Approximate (Euclidean) TSP
 “For every ε, there is a poly(n (log n)O(1/ε))-time
algorithm that given Euclidean distances between n
cities, comes up with a tour that is at most a factor
(1+ε) worse than the optimal tour.”
--- Arora (1996)
Some other approximation algorithms
 Vertex cover has a factor 2 approximation
algorithm.
 MAX 3-SAT has a 7/8 approximation algorithm.
 … and many others.
MAX 3-SAT
 Given a 3-SAT formula φ, find the maximum number
of clauses that can be satisfied (simultaneously) by
any assignment .
MAX 3-SAT
 Given a 3-SAT formula φ, find the maximum number
of clauses that can be satisfied (simultaneously) by
any assignment .
Of course, the problem is NP-hard
MAX 3-SAT
 Given a 3-SAT formula φ, find the maximum number
of clauses that can be satisfied (simultaneously) by
any assignment .
 A 7/8-approximation algorithm outputs an assignment
that satisfies 7/8. (the maximum number of satisfiable
clauses).
MAX 3-SAT
 Given a 3-SAT formula φ, find the maximum number
of clauses that can be satisfied (simultaneously) by
any assignment .
 A 7/8-approximation algorithm outputs an assignment
that satisfies 7/8. (the maximum number of satisfiable
clauses).
Wonder where the 7/8 come from?
MAX 3-SAT
Ponder on this…
On expectation how many clauses does a random
assignment satisfy?
Hardness of approximation
 One cannot hope to keep optimizing these
approximation factors for ever.
Hardness of approximation
 One cannot hope to keep optimizing this
approximation factors for ever.
 How much can we optimize the approximation factor
before the problem becomes hard again?
Hardness of approximation
 One cannot hope to keep optimizing this
approximation factors for ever.
 Theorem: For every constant ε > 0, if there is a
polynomial time (7/8 + ε)-approximation algorithm for
MAX-3SAT then P=NP.
Hardness of approximation
 One cannot hope to keep optimizing this
approximation factors for ever.
 Theorem: For every constant ε > 0, if there is a
polynomial time (7/8 + ε)-approximation algorithm for
MAX-3SAT then P=NP.
Proof uses PCP theorem
Coping with NP-hardness
Average-case
complexity
Approximation
algorithms
Boon of NP-hardness
Complexity
theory
Role of
Randomness
P vs NP
Secrecy &
security
Average-case complexity
 An NP-complete problem is supposedly hard in the
worst-case, meaning that it’s unlikely there’s an
algorithm that solves it efficiently on all input instances.
Average-case complexity
 An NP-complete problem is supposedly hard in the
worst-case, meaning that it’s unlikely there’s an
algorithm that solves it efficiently on all input instances.
 This does not rule out the possibility that there’s an
efficient algorithm that solves it on most input
instances.
Class distP
 A distributional problem is a pair <L, D>, where L is a
subset of {0,1}* and D = {Dn} is a sequence of
distributions.
Distribution on {0,1}n
Class distP
 A distributional problem is a pair <L, D>, where L is a
subset of {0,1}* and D = {Dn} is a sequence of
distributions.
 A problem <L, D> is in distP if there’s an algorithm for L
such that
Ex ε D[time(x)] = nc , where c is a constant
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Clique number of a graph G: Size of the largest complete
subgraph in G.
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Clique number problem: Given G, find it’s clique
number.
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Clique number problem: Given G, find it’s clique
number.
NP-hard in the worst case
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Clique number problem: Given G, find it’s clique
number.
But easy on random graphs!
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Theorem: With very high probability, clique number of
a random n-vertex graph is about 2log n
Clique number on random graphs
 Random n-vertex graphs: Create a graph by choosing
each of the possible n(n-1)/2 edges with probability ½.
 Theorem: With very high probability, clique number of
a random n-vertex graph is about 2log n
Why?
nO(log n) algorithm for the clique number problem on
random graphs
Coping with NP-hardness
Average-case
complexity
Approximation
algorithms
Boon of NP-hardness
Complexity
theory
Role of
Randomness
P vs NP
Secrecy &
security
One-way functions
Impagliazzo’s complexity worlds
World 1: Algorithmica
 P=NP or
NP in BPP
 World is a computational Utopia.
 Computers can do the jobs that require significant
creativity in engineering, programming and
mathematics.
 Modern day cryptography collapses!
World 2: Heuristica
 P≠NP but NP in distP (average-case easy).
 Efficient algorithms for all real life problem
instances for NP-complete problems.
 Encryption gets trickier!
World 3: Pesiland
 P≠NP and
NP problems hard on average.
 One-way function does not exist.
Modern day cryptography relies on the
presumed existence of one-way functions
World 4: Minicrypt
 P≠NP; NP problems hard on average; and one-way
functions exist.
 Yet, some of the structured NP-problems like
integer factoring, discrete logarithm are in P.
 No public-key cryptography?
World 5: Cryptomania
 NP-problems like integer factoring are
exponentially hard on average.
 Most of the researchers believe that this is the
world we reside in!
World 5: Cryptomania
 NP-problems like integer factoring are
exponentially hard on average.
 Most of the researchers believe that this is the
world we reside in!
A central goal of complexity theory is to mathematically
establish in which of these possible worlds we actually
reside in.
Thank you!