Introduction to NP

advertisement
MCS312: NP-completeness and
Approximation Algorithms
Instructor: Neelima Gupta
http://people.du.ac.in/~ngupta/
1
Table of Contents
Class NP and Co-NP revisited
Problem discussed
Shortest Path Problem
So far you must have seen…
•
•
•
•
Polynomial time algorithms
Exponential time algorithms
Parallel algorithms
Randomized algorithms
Optimization Problems you must
have seen
•
•
•
•
•
•
Longest Common Subsequence
Matrix Chain Multiplication
Optimal Binary Search Tree
Activity Selection Problem
Minimum Spanning Tree
Shortest Path
- Solvable in Polynomial Time by Dynamic
Programming or Greedy Approach.
Optimization Vs Decision
Problems
• In case of Optimization problems, each feasible
solution has an associated value, and we want
the feasible solution with the ‘best’ value.
• Eg: Shortest path problem-Given an undirected graph (G,s,t), we want to
compute the shortest path from vertex s to
vertex t (path using fewest edges).
Optimization & Decision
Problems
• In case of Decision problems, the answer to the
problem is a simple ‘yes’ or a ‘no’ (more formally, 1 or 0).
• We can obtain a related decision problem for a given
optimization problem by bounding the value to be
optimized.
• Eg: Shortest path problem (decision version 1)
-Given an undirected graph (G,s,t,k), is there a path from
vertex s to vertex t consisting of exactly k edges?
• Shortest path problem (decision version 2)
-Given an undirected graph (G,s,t,k), is there a path from
vertex s to vertex t consisting of at most k edges?
Assignment 1
•
Give the decision versions(both) for the
following problems :
i.
ii.
iii.
iv.
v.
Longest Common Subsequence
Matrix Chain Multiplication
Optimal Binary Search Tree
Activity Selection Problem
Minimum Spanning Tree
Class NP
• The class of decision problems for which there is a
polynomially bounded nondeterministic algorithm.
• NP-completeness does not apply directly to optimization
problems, but to decision problems.
• We can obtain a decision version of an optimization
problem, which will be “easier” or at least, “no harder”
than the optimization problem.
• Optimization problem is the harder of the two.
Verification
• A Verification algorithm takes as an input, a
problem instance, and a certificate and
decides whether it is a yes-instance.
• A(x,y) = 1; iff, y is a valid certificate.
input
certificate
instance
• Eg: Shortest path (verification version)
– Given an undirected graph (G,s,t,k,c), is c a
path from vertex s to vertex t of length = (or
<= for version 2) k?
– Here, c will be a sequence of edges (path)
from s to t.
Verification
• Let L1- SP = {<G,s,t,k>: Э a path from s to
of length = k}
• Let x  SP, then we claim that Э a certificate y
such that, <G,s,t,k,y> can be verified in
polynomial time.
– What is that?
– Ans: Since x  SP, Э a path from s to of length = k.
This path itself serves as the certificate.
– What does the verification algorithm do?
– Ans: Check that the given sequence of vertices u1 , u2 ,
… um indeed forms a path in G and,
– That its length is k i.e. m-1 = k.
Verification Algorithm
• For every ui,
– check if ui+1 is adjacent to it ….takes O(V) time
Overall time for this step is O(V2 )
• Checking that m – 1 <= k can be done in O(1)
time.
• Hence, we can verify the certificate in
polynomial time.
Complement of Shortest Path
Problem
• Let L2- SPC = {<G,s,t,k>: !Э a path from
s to t of length <=k}
i.e. Is G a graph with no path between s and t of length <=k?
• Big Q: Does there exist a certificate which
can be verified for SPC in polynomial
time?
• Existence of one path satisfying the
condition (yes) does not imply it is the only
path i.e. we cannot confirm non-existence
of other certificates.
Verification of SPC
• In case of SP problem which is polynomial time solvable,
this certificate exists
–
–
–
–
–
–
–
What is that?
The shortest path itself.
Can you verify it in polynomial time?
yes
What should the verification algorithm do?
1. Verify that given sequence of edges indeed form a path in G.
2. Verify that it is indeed the shortest (Important!! How? SP
algorithm like Djikstra’s)
– 3. Verify that its length is greater than k (the shortest path of
length > k iff every path is of length > k i.e. iff there is no path of
length <= k)
• Hence SPC can also be verified in polynomial time.
Class ℕℙ & ℙ
• ℙ : Set of problems which can be solved in
polynomial time using deterministic algorithms.
• ℕℙ : Set of problems which we can be verified in
polynomial time.
Eg: Shortest-path problem, even
optimization problem belongs to class ℙ.
NP
P
-P is a small part of NP.
-Problems which cannot be verified in polynomial
time are harder, and are outside NP.
CLASS Co- ℕℙ
• Co- ℕℙ : Set of problems whose
complement can be verified in polynomial
time.
• Q: Does SP belong to Co - ℕℙ?
– Ans: Yes
SP belongs to NP ∩ Co-NP
Co-NP
NP ∩ Co-NP
SP
NP
Is every polynomial time solvable problem in NP ∩ CoNP ?
Assignment 2
• Show that P is contained in NP ∩ Co-NP.
i.e. All polynomial time solvable problems
and their complements are verifiable in
polynomial time.
Open Questions?
• Is P = NP?
(Unlikely)
• Is NP = Co-NP? (Unlikely)
• Is P = NP ∩ Co-NP?
The Class NP ∩ co-NP
A problem that belongs to NP ∩ co-NP is said to
have a Good Characterization
 It has short proofs for both “yes” and “no”
instances.
 An example problem belonging to NP ∩ co-NP
The graph isomorphism problem
Computational problem of determining whether
two finite graphs are isomorphic.
Status of GI problem is
unknown.
It is neither known to be NP-Complete nor
known to be in P, we’ll talk about NPCompleteness a little while later.
The generalization of GI namely Subgraph
Isomorphism is known to be NPC.
More NP Problems
•
•
•
•
•
•
•
Satisfiability
Independent Set
Clique
Vertex Cover
Hamiltonian Cycle
Subset Sum
Set Cover
Download