0% found this document useful (0 votes)
71 views59 pages

Great Theoretical Ideas in Computer Science

This document discusses the P vs NP problem in computer science. It begins by introducing the problem and some examples like Sudoku puzzles. It then defines the complexity classes P and NP. P contains problems that can be solved in polynomial time, while NP contains problems where solutions can be verified in polynomial time. The document explains that P is contained within NP. It states that if certain NP-complete problems like SAT (satisfiability of Boolean formulas) could be solved in polynomial time, then P would equal NP. The document concludes by discussing how problems like 3-coloring, clique, and independent set problems are all polynomial-time reducible to SAT, making SAT a "hardest" problem in NP.

Uploaded by

surujJD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views59 pages

Great Theoretical Ideas in Computer Science

This document discusses the P vs NP problem in computer science. It begins by introducing the problem and some examples like Sudoku puzzles. It then defines the complexity classes P and NP. P contains problems that can be solved in polynomial time, while NP contains problems where solutions can be verified in polynomial time. The document explains that P is contained within NP. It states that if certain NP-complete problems like SAT (satisfiability of Boolean formulas) could be solved in polynomial time, then P would equal NP. The document concludes by discussing how problems like 3-coloring, clique, and independent set problems are all polynomial-time reducible to SAT, making SAT a "hardest" problem in NP.

Uploaded by

surujJD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 59

Some 15-251

Great Theoretical Ideas


in Computer Science
for
Complexity Theory:
The P vs NP question
Lecture 27 (Nov 23, 2010)
$$$
The $1M Questions
The Clay Mathematics Institute
Millenium Prize Problems

1. Birch and Swinnerton-Dyer Conjecture


2. Hodge Conjecture
3. Navier-Stokes Equations
4. P vs NP
5. Poincar Conjecture solved!
6. Riemann Hypothesis
7. Yang-Mills Theory
The P versus NP problem

Is perhaps the biggest open problem


in computer science (and mathematics!) today.

(Even featured in the TV show NUMB3RS)

But what is the P-NP problem?


Sudoku

3x3x3
Sudoku

3x3x3
Sudoku

4x4x4
Sudoku

4x4x4
Sudoku

Suppose it takes you S(n) to


solve n x n x n

V(n) time to verify the solution


Fact: V(n) = O(n2 x n2)

Question: is there some


...

constant c such that


S(n) nc ?
nxnxn
P vs NP problem

Does there exist an


algorithm for n x n x n
Sudoku that runs in
time p(n) for some
polynomial p( ) ?
...

nxnxn
The P versus NP problem
(informally)
Is proving a theorem much more difficult
than checking the proof of a theorem?
Lets start at the beginning
Hamilton Cycle
Given a graph G = (V,E), a cycle that visits all
the nodes exactly once
The Problem HAM

Input: Graph G = (V,E)

Output: YES if G has a Hamilton cycle


NO if G has no Hamilton cycle

The Set HAM


HAM = { graph G | G has a Hamilton cycle }
Circuit-Satisfiability
Input: A circuit C with one output

Output: YES if C is satisfiable


NO if C is not satisfiable

AND NOT

AND
The Set SAT
SAT = { all satisfiable circuits C }
Bipartite Matching
Input: A bipartite graph G = (U,V,E)

Output: YES if G has a perfect matching


NO if G does not
The Set BI-MATCH
BI-MATCH = { all bipartite graphs that have a
perfect matching }
Sudoku
Input: n x n x n sudoku instance

Output: YES if this sudoku has a solution


NO if it does not

The Set SUDOKU


SUDOKU = { All solvable sudoku instances }
Decision Versus Search Problems

Decision Problem Search Problem


YES/NO answers
Find a Hamilton cycle
Does G have a in G if one exists,
Hamilton cycle? else return NO

Find a 3-coloring of
Can G be
G if one exists, else
3-colored ?
return NO
Reducing Search to Decision

Given an algorithm for decision Sudoku,


devise an algorithm to find a solution

Idea:
Fill in one-by-one and
use decision algorithm
Reducing Search to Decision

Given an algorithm for decision HAM,


devise an algorithm to find a solution

Idea:
Find the edges of the
cycle one by one
Decision/Search Problems
Well study decision problems because
they are almost the same (asymptotically)
as their search counterparts
Polynomial Time and
The Class P of
Decision Problems
What is an efficient algorithm?

Is an O(n) algorithm efficient?


polynomial time
How about O(n log n)?
O(n2) ? O(nc) for some
constant c
O(n10) ?
O(nlog n) ?
non-polynomial
O(2n) ? time
O(n!) ?
Does an algorithm
running in O(n100) time
count as efficient?

We consider non-polynomial time


algorithms to be inefficient.

And hence a necessary condition for an


algorithm to be efficient is that it should
run in poly-time.
Asking for a poly-time algorithm for a
problem sets a (very) low bar when asking
for efficient algorithms.

The question is: can we achieve even this


for 3-coloring?
SAT?
Sudoku?
HAM?
The Class P
We say a set L * is in P if there is
a program A and
a polynomial p( )

such that for any x in *,

A(x) runs for at most p(|x|) time


and answers question is x in L? correctly.
The Class P

The class of all sets L that can be


recognized in polynomial time.

The class of all decision problems that


can be decided in polynomial time.
Why are we looking only at sets *?

What if we want to work with graphs or


boolean formulas?
Languages/Functions in P?
Example 1:
CONN = {graph G: G is a connected graph}

Algorithm A1:
If G has n nodes, then run depth first search
from any node, and count number of distinct
nodes you see. If you see n nodes, G CONN,
else not.

Time: p1(|x|) = (|x|).


Languages/Functions in P?

HAM, SUDOKU, SAT are not known to be in P

CO-HAM = { G | G does NOT have a


Hamilton cycle}

CO-HAM P if and only if HAM P


Onto the new class, NP
Verifying Membership

Is there a short proof I can give you for:

G HAM?

G BI-MATCH?

C SAT?

G CO-HAM?
NP
A set L NP
if there exists an algorithm A and a
polynomial p( )

For all x L For all x L

there exists y with For all y with


|y| p(|x|) |y| p(|x|)

such that A(x,y) = YES we have A(x,y) = NO

in p(|x|) time in p(|x|) time


Recall the Class P

We say a set L * is in P if there is


a program A and
a polynomial p()
such that for any x in *,

A(x) runs for at most p(|x|) time


and answers question is x in L? correctly.

can think of A as proving that x is in L


NP
A set L NP
if there exists an algorithm A and a
polynomial p( )

For all x L For all x L

there exists a y with For all y with


|y| p(|x|) |y| p(|x|)

such that A(x,y) = YES Such that A(x,y) = NO

in p(|x|) time in p(|x|) time


Example: HAM NP
Let A(x,y) be a program that takes two
strings x and y, and returns YES if the
following conditions hold otherwise it
returns NO.
y is a representation of a labeled graph
x is a representation of a cycle with the
same labeled vertices as y
every edge of the cycle x is in the graph y
(All of these conditions can be easily checked in linear time)

By our definition, this proves HAM NP


The Class NP

The class of sets L for which there exist


short proofs of membership
(of polynomial length)
that can be quickly verified
(in polynomial time).

Recall: A doesnt have to find these proofs y; it just needs to be


able to verify that y is a correct proof.
P NP
For any L in P, we can just take y to be the
empty string and satisfy the requirements.

Hence, every language in P is also in NP.


Languages/Functions in NP?

G HAM? (Yes, already saw)

G BI-MATCH? (is in P)

G SAT? (Yes. explain it)

G CO-HAM? (not clear)

Proof that something is in NP is often trivial.


Summary: P versus NP
Set L is in P if membership in L can be
decided in poly-time.

Set L is in NP if each x in L has a short proof


of membership that can be verified in poly-
time.

Fact: P NP

Question: Is NP P ?
Why Care?
NP Contains Lots of Problems
We Dont Know to be in P

Classroom Scheduling
Packing objects into bins
Scheduling jobs on machines
Finding cheap tours visiting a subset of cities
Allocating variables to registers
Finding good packet routings in networks
Decryption

OK, OK, I care...

But where do I begin


if I want to reason about
the P=NP problem?
How can we prove that
NP P?

I would have to show that


every set in NP has a
polynomial time algorithm

How do I do that?
It may take a long time!
Also, what if I forgot one of
the sets in NP?
We can describe
just one problem L in NP,
such that
if this problem L is in P,
then NP P.

It is a problem that can


capture all other problems
in NP.
The Hardest Set in NP
Sudoku

Sudoku has a
polynomial time
algorithm

if and only if

P = NP
...

nxnxn
The Hardest Sets in NP
Sudoku Clique

SAT Independent-Set

3-Colorability HAM

These problems are all


polynomial-time equivalent.

I.e., each of these can be reduced to any


of the others in poly-time
Poly-time reducible to each other

Reducing problem Y to problem X in poly-time

F is poly-time
computable
Answer
Instance IY of Instance
IX = F(IY ) of
problem Y problem X

Answer

Oracle for Oracle for


problem Y problem X
How do you prove these
are the hardest?
Theorem [Cook/Levin]:

SAT is one language in NP, such that if we


can show SAT is in P, then we have shown
NP P.

SAT is a language in NP that can capture all


other languages in NP.

We say SAT is NP-complete.


Last lecture
3-colorability Circuit Satisfiability

AND NOT

AND
Last lecture
SAT and 3COLOR: Two problems that seem
quite different, but are substantially the
same.

Also substantially the same as CLIQUE and


INDEPENDENT SET.

If you get a polynomial-time algorithm for one,


you get a polynomial-time algorithm for ALL.
Proving a problem Q is NP-Complete

1. Prove that Q is in NP.

2. Give a reduction that allows an


instance of a known NP-complete
problem to be reduced to an instance
of Q.

Examples of such reductions were given


in the last lecture e.g. reducing SAT to
3-coloring.
Any language in NP
can be reduced
(in polytime to)
an instance of

SAT hence SAT is NP-complete

can be reduced
(in polytime to)
an instance of

3COLOR hence 3COLOR is NP-complete


Definition of P and NP

Definition of problems
SAT, 3-COLOR, HAM,
SUDOKU, BI-MATCH

SAT, 3-COLOR, HAM, SUDOKU


all essentially equivalent.

Heres What
Solve any one in poly-time
You Need to solve all of them in poly-time
Know

You might also like