Transcript Lecture 24

CSE 326: Data Structures:
Graphs
Lecture 24:
Friday, March 7th, 2003
1
Today
• Finish NP complete problems
• Course evaluation forms
2
NP-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 don’t we prove that there is no better
algorithm ?
• Because we don’t know how to prove it
3
P and NP
Recall:
• A problem is in P (or PTIME) if we can solve it in time
O(nk), for some k > 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.
4
Another NP Problem
• SAT: Given a formula in Boolean logic, e.g.
 a  b    a  c    b  c 
determine if there is an assignment of
values to the variables that makes the
formula true (=1).
• Why is it in NP?
5
SAT is NP-Complete
• Cook (1971) showed the following:
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 !!!
•
•
•
•
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 NPcomplete
6
SAT is NP-Complete
• Proof of Cook’s 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 problem’s input
7
SAT 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 don’t know) plus all
memory bits
• Then check if this formula is satisfiable (i.e. there
exists some candidate solution)
8
SAT is NP-Complete: Proof
Program
counter
Input
Candidate
Memory
solution (unknown) (at most n5 memory words (why ?))
Time = 0
Boolean expression
size = n5  n5
Time = 1
Boolean expression
size = n5  n5
Time = n5
Answer (0 or 1)
HUGE boolean formula of size O(n5  n5  n5)
9
 check satisfiability in time O((n5  n5  n5)7)
The 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, ...
10
Directed Hamiltonean Path is
NP-Complete
Theorem Directed Hamiltonean Path (DHP) is NP Complete
• Proof: by reducing SAT to DHP:
Lemma If we can solve DHP in polynomial time, then
we can solve SAT in polynomial time
• Then use transitivity to argue than we can solve
any NP problem in polynomial time
• I’ll show you how to prove the lemma...
11
Directed Hamiltonean Path is
NP-Complete
• Suppose you are given a boolean formula in
conjunctive normal form:
 a  b    a  c    b  c 
• Construct a directed graph G s.t. it admits a
Hamiltonean cycle iff the formula is
satisfiable
12
 a  b    a  c    b  c 
c1
c2
c3
Step 1: construct this subgraph
c1
c2
c3
13
 a  b    a  c    b  c 
c1
c2
c3
Step 2: now replicate it once for each boolean variable
a
c1
c2
c3
c1
c2
c3
c1
c2
c3
b
c
14
 a  b    a  c    b  c 
c1
c2
c3
Step 3: now add a new node for each clause c1, c2, ...
c1
a
c1
c2
c3
c2
c3
b
c1
c2
c3
c1
c2
c3
c
15
 a  b    a  c    b  c 
c1
c2
c3
Step 4: now connect the variable graphs to the clause nodes in clever way
E.g. for c2:
Right-left fora
c1
a
c1
c2
c3
c2
c3
b
c1
c2
c3
Left-right for c
c
c1
c2
c3
16
 a  b    a  c    b  c 
c1
c2
c3
Step 5: finally, the formula is satisfiable iff there exists a Hamiltonean path !
E.g a=1, b=0, c=1
c1
(true because
a
of a)

c1
c2
c3
c2
(true because
of c)
b

c3
c1
c2
c3
(true because
of c)
c

c1
c2
c3
17
 a  b    a  c    b  c 
c1
c2
c3
E.g a=1, b=0, c=1
a

c1
(true because
of a)
c1
c2
c3
b

c1
c2
c3
c

c1
c2
c3
c2
(true because
of c)
c3
(true because
of c)
18
A Great Book You Should Own!
• Computers and Intractability: A Guide to
the Theory of NP-Completeness, by Michael
S. Garey and David S. Johnson
19
Your 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)
20
P, 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
21
Coping with NP-Completeness
1. Settle for algorithms that are fast on average: Worst case still
takes exponential time, but doesn’t occur very often.
But some NP-Complete problems are also average-time NP-Complete!
2. Settle for fast algorithms that give near-optimal solutions:
But finding even approximate solutions to some NPComplete problems is NP-Complete!
3. 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!
22