Title: CSE 326: Data Structures: Graphs
1CSE 326 Data Structures Graphs
- Lecture 24Friday, March 7th, 2003
2Today
- Finish NP complete problems
- Course evaluation forms
3NP-Complete Problems
- Recall
- A Hamiltonean path a paths that goes through
each node exactly once - How to find one ? Try out all paths.
- Exponential time, and nobody knows better
- Why dont we prove that there is no better
algorithm ? - Because we dont know how to prove it
4P and NP
- Recall
- A problem is in P (or PTIME) if we can solve it
in time O(nk), for some k gt 0 - A problem is in NP if we can check a candidate
solution in P - Hamiltonean cycle (HC) is in NP
- In fact, P ? NP
- But what about NP ? P or NP ? P ? Nobody knows.
5Another NP Problem
- SAT Given a formula in Boolean logic, e.g.
- determine if there is an assignment of values to
the variables that makes the formula true (1). - Why is it in NP?
6SAT is NP-Complete
- Cook (1971) showed the following
- Including Hamiltonean Cycle (HC)
- In some sense, SAT is the hardest problem in NP
- We say that SAT is NP-Hard
- A problem that is NP-Hard and in NP is called
NP-complete
Theorem Suppose that we can solve the SAT problem
in polynomial time. Then there is a way to solve
ANY NP problem in polynomial time !!!
7SAT is NP-Complete
- Proof of Cooks theorem
- Suppose we can solve SAT in time O(m7), where m
is the size of the formula - Let some other problem in NP we can check a
candidate solution in, say, time O(n5), where n
is the size of the problems input
8SAT is NP-Complete Proof
- To solve that other problem, do the following
- We have a program A that checks some candidate
solution in time O(n5) - Construct a HUGE boolean formula that represents
the execution of A its variables are the
candidate solution (which we dont know) plus all
memory bits - Then check if this formula is satisfiable (i.e.
there exists some candidate solution)
9SAT is NP-Complete Proof
Programcounter
Memory(at most n5 memory words (why ?))
Candidatesolution (unknown)
Input
Time 0
Time 1
Time n5
Answer (0 or 1)
HUGE boolean formula of size O(n5 ? n5 ? n5) ?
check satisfiability in time O((n5 ? n5 ? n5)7)
10The Graph of NP-Completeness
- What is special about SAT ?
- Nothing ! There are hundreds of NP-complete
problems - Directed Hamiltonean Path (DHP)
- Vertex Cover
- Clique
- etc, etc, ...
11Directed Hamiltonean Path is NP-Complete
- Proof by reducing SAT to DHP
- Then use transitivity to argue than we can solve
any NP problem in polynomial time - Ill show you how to prove the lemma...
Theorem Directed Hamiltonean Path (DHP) is NP
Complete
Lemma If we can solve DHP in polynomial time,
thenwe can solve SAT in polynomial time
12Directed Hamiltonean Path is NP-Complete
- Suppose you are given a boolean formula in
conjunctive normal form - Construct a directed graph G s.t. it admits a
Hamiltonean cycle iff the formula is satisfiable
13 c1
c2
c3
Step 1 construct this subgraph
14Step 2 now replicate it once for each boolean
variable
a
b
c
15Step 3 now add a new node for each clause c1,
c2, ...
c1
a
c2
c3
b
c
16Step 4 now connect the variable graphs to the
clause nodes in clever wayE.g. for c2
Right-left for?a
c1
a
c2
c3
b
Left-right for c
c
17 c1
c2
c3
Step 5 finally, the formula is satisfiable iff
there exists a Hamiltonean path ! E.g a1, b0,
c1
c1 (true becauseof a)
a?
c1
c2
c3
c2(true becauseof c)
b ?
c1
c2
c3
c3(true becauseof c)
c ?
c1
c2
c3
18 c1
c2
c3
E.g a1, b0, c1
c1 (true becauseof a)
a?
c1
c2
c3
c2(true becauseof c)
b ?
c1
c2
c3
c3(true becauseof c)
c ?
c1
c2
c3
19A Great Book You Should Own!
- Computers and Intractability A Guide to the
Theory of NP-Completeness, by Michael S. Garey
and David S. Johnson -
20Your Chance to Win a Turing Award P NP?
- Nobody knows whether NP ? P
- Proving or disproving this will bring you instant
fame! - It is generally believed that P ? NP, i.e. there
are problems in NP that are not in P - But no one has been able to show even one such
problem! - Practically all of modern complexity theory is
premised on the assumption that P ? NP - A very large number of useful problems are in NP
Alan Turing(1912-1954)
21P, NP, and Exponential Time Problems
- All currently known algorithms for NP-complete
problems run in exponential worst case time - Finding a polynomial time algorithm for any NPC
problem would mean - Diagram depicts relationship between P, NP, and
EXPTIME (class of problems that provably require
exponential time to solve)
EXPTIME
NPC
NP
P
It is believed that P ? NP ? EXPTIME
22Coping with NP-Completeness
- Settle for algorithms that are fast on average
Worst case still takes exponential time, but
doesnt occur very often. - But some NP-Complete problems are also
average-time NP-Complete! - Settle for fast algorithms that give near-optimal
solutions But finding even approximate solutions
to some NP-Complete problems is NP-Complete! - Just get the exponent as low as possible! Much
work on exponential algorithms for Boolean
satisfiability in practice can often solve
problems with 1,000 variables - But even 2n/100 will eventual hit the exponential
curve!