NP Complete

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 22

NP-Complete

Problems
CIT 596, Spring 2012
Problems that
• What if a Cross
problem has: the Line
o An exponential upper bound
o A polynomial lower bound

• We have only found exponential algorithms, so it


appears to be intractable.

• But... we can’t prove that an exponential solution is


needed, we can’t prove that a polynomial algorithm
cannot be developed, so we can’t say the problem is
intractable...
NP-Complete
• Problems
The upper bound
intractable
suggests the problem is

• The lower bound suggests the problem is


tractable
• The lower bound is linear: O(N)
• They are all reducible to each other
o If we find a reasonable algorithm (or
prove intractability) for one, then we
can do it for all of them!
Traveling Salesman
5-Clique
Hamiltonian Path
Map Coloring
Vertex Cover (VC)
• Given a graph and an integer k, is there a collection of k
vertices such that each edge is connected to one of the vertices
in the collection?
Class
• Scheduling
With N teachers with certain hour restrictions

Problem
M classes to be scheduled, can we:
o Schedule all the classes
o Make sure that no two teachers teach the
same class at the same time
o No teacher is scheduled to teach two classes
at once
Pair Programming Problem
• With N students and K projects, where N is
even, can we:
o Assign pairs of students to each project
o Every student works on every project
o No student has the same partner more than
once
• Is this an NP-complete problem?
Graph isomorphism
• Graph isomorphism is NP-hard; is it NP-complete?
NP and P
• What is NP?
• NP is the set of all decision problems (question with yes-or-no
answer) for which the 'yes'-answers can be verified in polynomial
time (O(n^k) where n is the problem size, and k is a constant) by a
deterministic Turing machine. Polynomial time is sometimes used as
the definition of fast or quickly.
• What is P?
• P is the set of all decision problems which can be solved in
polynomial time by a deterministic Turing machine. Since it can
solve in polynomial time, it can also be verified in polynomial time.
Therefore P is a subset of NP.
NP-Complete
• What is NP-Complete?
• A problem x that is in NP is also in NP-Complete if and only
if every other problem in NP can be quickly (ie. in polynomial
time) transformed into x. In other words:
• x is in NP, and
• Every problem in NP is reducible to x
• So what makes NP-Complete so interesting is that if any one
of the NP-Complete problems was to be solved quickly then
all NP problems can be solved quickly
NP-Hard
• What is NP-Hard?
• NP-Hard are problems that are at least as hard as the hardest
problems in NP. Note that NP-Complete problems are also
NP-hard. However not all NP-hard problems are NP (or even a
decision problem), despite having 'NP' as a prefix. That is the
NP in NP-hard does not mean 'non-deterministic polynomial
time'. Yes this is confusing but its usage is entrenched and
unlikely to change.
Certifi
cates
• Returning true: in order to show that the
schedule can be made, we only have to show
one schedule that works
o This is called a certificate.

• Returning false: in order to show that the


schedule cannot be made, we must test all
schedules.
Oracles
• If we could make the ‘right decision’ at all decision
points, then we can determine whether a solution is
possible very quickly!
o If the found solution is valid, then True
o If the found solution is invalid, then False

• If we could find the certificates quickly, NP-complete


problems would become tractable – O(N)
• This (magic) process that can always make the right
guess is called an Oracle.
Determinism vs.
Nondeterminism
• Nondeterministic algorithms produce an answer
by a series of “correct guesses”

• Deterministic algorithms (like those that a


computer executes) make decisions based on
information.
NP-Complete
“NP-Complete” comes from:
o Nondeterministic Polynomial
o Complete - “Solve one, Solve them all”

There are more NP-Complete problems than


provably intractable problems.
Proving NP-
Completeness
• Show that the problem is in NP. (i.e. Show that a
certificate can be verified in polynomial time.)
• Assume it is not NP complete
• Show how to convert an existing NPC problem into the
problem that we are trying to show is NP Complete (in
polynomial time).

• If we can do it we’ve done the proof!


• Why?
• If we can turn an exisiting NP-complete problem into
our problem in polynomial time... 
Become Famous!
To get famous in a hurry, for any NP-
Complete problem:
o Raise the lower bound
(via a stronger proof)
o Lower the upper bound
(via a better algorithm)

They’ll be naming buildings after you


before you are dead!
http://xkcd.com/287/
End
• http://www.coursehero.com/file/3292647/cs1311lecture29wdl/
• http://www.cs.uky.edu/~lewis/cs-heuristic/text/class/more-
np.html
• http://stackoverflow.com/questions/210829/what-is-an-np-
complete-problem
• Wikipedia

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy