26 views

Uploaded by Diana Arun

NP-completeness

- Traveling STraveling Salesman Problem.docalesman Problem
- Biological Uncertainty Principle
- 19b
- DAA_UNIT5.pdf
- UNIT - V
- LSAT LSAC Analytical Analysis Pascal's Calculus Cube Nobel
- lecture38.ppt
- An Incompleteness Theorem for Calculating the Future
- Slide Test
- Techinical Terms
- Deolalikar
- Complexity ret
- pnp12pt
- C analysis
- L01
- euclid.bams.1183547848
- PIDM-1
- Complexity of Algorithms
- kari
- Computer Science Book

You are on page 1of 46

Siddhartha Sen

Questions: sssix@cs.princeton.edu

Some figures obtained from Introduction to Algorithms, 2

nd

ed., by CLRS

Tractability

Polynomial time (p-time) = O(n

k

), where n is the

input size and k is a constant

Problems solvable in p-time are considered

tractable

NP-complete problems have no known p-time

solution, considered intractable

Tractability

Difference between tractability and intractability

can be slight

Can find shortest path in graph in O(m+ nlgn) time,

but finding longest simple path is NP-complete

Can find satisfiable assignment for 2-CNF formula in

O(n) time, but for 3-CNF is NP-complete:

(x

1

v ÷x

2

) . (÷x

1

v x

3

) . (÷x

2

v ÷x

3

)

Outline

• Complexity classes P, NP

– Formal-language framework

• NP-completeness

– Hardest problems in NP

• Reductions: A s B

– NP-completeness reductions

Formal-language framework

Alphabet E = finite set of symbols

Language L over E is any subset of strings in E*

We’ll focus on E = {0, 1}

L = {10, 11, 101, 111, 1011, …} is language of primes

Decision problems

A decision problem has a yes/no answer

Different, but related to optimization problem,

where trying to maximize/minimize a value

Any decision problem Q can be viewed as

language: L = {x e {0,1}* : Q(x) = 1}

Q decides L: every string in L accepted by Q,

every string not in L rejected

Example of a decision problem

PATH = {(G, u, v, k) : G = (V, E) is an undirected

graph, u,v ∈ V, k ≥ 0 is an integer, and - a path

from u to v in G with s k edges}

Encoding of input (G, u, v, k) is important! We

express running times as function of input size

Corresponding optimization problem is

SHORTEST-PATH

Complexity class P

P = {L _ {0, 1}* : - an algorithm A that

decides L in p-time}

PATH e P

Polynomial-time verification

Algorithm A verifies language L if

L = {x e {0, 1}* : - y e {0, 1}* s.t. A(x, y) = 1}

Can verify PATH given input (G, u, v, k) and path

from u to v

PATH e P, so verifying and deciding take p-time

For some languages, however, verifying much easier

than deciding

SUBSET-SUM: Given finite set S of integers, is there a

subset whose sum is exactly t?

Complexity class NP

Let A be a p-time algorithm and k a constant:

NP = {L e {0, 1}* : - a certificate y, |y| = O(|x|

k

),

and an algorithm A s.t. A(x, y) = 1}

SUBSET-SUM e NP

P vs. NP

Not much is known, unfortunately

Can think of NP as the ability to appreciate a

solution, P as the ability to produce one

P _ NP

Don’t even know if NP closed under

complement, i.e. NP = co-NP?

Does L e NP imply Ḹ e NP?

P vs. NP

Comparing hardness

NP-complete problems are the “hardest” in NP:

if any NP-complete problem is p-time solvable,

then all problems in NP are p-time solvable

How to formally compare easiness/hardness of

problems?

Reductions

Reduce language L

1

to L

2

via function f:

1. Convert input x of L

1

to instance f(x) of L

2

2. Apply decision algorithm for L

2

to f(x)

Running time = time to compute f + time to

apply decision algorithm for L

2

Write as L

1

s L

2

Reductions show easiness/hardness

To show L

1

is easy, reduce it to something we know

is easy (e.g., matrix mult., network flow, etc.)

L

1

s easy

Use algorithm for easy language to decide L

1

To show L

1

is hard, reduce something we know is

hard to it (e.g., NP-complete problem):

hard s L

1

If L

1

was easy, hard would be easy too

Polynomial-time reducibility

L

1

is p-time reducible to L

2

, or L

1

s

p

L

2

, if - a p-

time computable function f : {0, 1}* ÷{0, 1}*

s.t. for all x e {0, 1}*, x e L

1

iff f(x) e L

2

Lemma. If L

1

s

p

L

2

and L

2

e P, then L

1

e P

Complexity class NPC

A language L _ {0, 1}* is NP-complete if:

1. L e NP, and

2. L’ s

p

L for every L’ e NP, i.e. L is NP-hard

Lemma. If L is language s.t. L’ s

p

L where L’ e

NPC, then L is NP-hard. If L e NP, then L e NPC.

Theorem. If any NPC problem is p-time solvable,

then P = NP.

P, NP, and NPC

NPC reductions

Lemma. If L is language s.t. L’ s

p

L where L’ e NPC,

then L is NP-hard. If L e NP, then L e NPC.

This gives us a recipe for proving any L e NPC:

1. Prove L e NP

2. Select L’ e NPC

3. Describe algorithm to compute f mapping every input

x of L’ to input f(x) of L

4. Prove f satisfies x e L’ iff f(x) e L, for all x e {0, 1}*

5. Prove computing f takes p-time

Bootstrapping

Need one language in NPC to get started

SAT = {(|) : | is a satisfiable boolean formula}

Can the variables of | be assigned values in {0, 1} s.t.

| evaluates to 1?

Cook-Levin theorem

Theorem. SAT e NPC.

Proof. SAT e NP since certificate is satisfying

assignment of variables. To show SAT is NP-hard,

must show every L e NP is p-time reducible to it.

Idea: Use p-time verifier A(x,y) of L to construct

input | of SAT s.t. verifier says “yes” iff | satisfiable

Verifier: Turing Machine

Church-Turing thesis: Everything computable is

computable by a Turing machine

/ / / / / / b \ \ \ \ \ \ · · · · · ·

· · · -3 -2 -1 0 1 2 3 · · ·

Finite Control

certificate input

blank blank

read/write head

unbounded tape

In one step, can write a symbol, move head one

position, change state

What to do is based on state and symbol read

Fixed # of states: start state, “yes” state, (“no”

state); fixed # of tape symbols, including blank

Explicit worst-case p-time bound p(n)

Proof plan

Given L e NP we have Turing machine that

implements verifier A(x,y)

Input x, |x| = n, is “yes” instance iff for some

certificate y, machine reaches “yes” state within

p(n) steps from start state

Loops in “yes” state if gets there earlier

Construct | = f(x) that is satisfiable iff this happens

x is fixed and used to construct f(x), but y is unspecified

Variables in |

States: 1,…, w // 1 = start, w = “yes”

Symbols: 1,…, z // 1 = blank, rest input

// symbols like ‘0’ and ‘1’

Tape cells: -p(n),..., 0,…, p(n)

Time: 0, 1,…, p(n)

Variables:

h

it

: true if head on tape cell i at time t,

÷p(n) s i s p(n), 0 s t s p(n)

s

jt

: true if state j at time t,

1 s j s w, 0 s t s p(n)

c

ikt

: true if tape cell i holds symbol k at time t,

÷p(n) s i s p(n), 1 s k s z, 0 s t s p(n)

What does | need to say?

At most one state, head position, and symbol

per cell at each time:

÷h

it

v ÷h

i’t

, i = i’, all t

÷s

jt

v ÷s

j’t

, j = j’, all t

÷c

ikt

v ÷c

ik’t

, k = k’, all i, all t

Correct initial state, head position, and tape

contents:

h

00

. s

10

. c

010

. c

1k

1

0

. c

2k

2

0

. … . c

nk

n

0

. c

(n+1)10

.

… . c

p(n)10

Input is k

1

,…, k

n

, followed by blanks to right

Correct final state:

s

wp(n)

Correct transitions: e.g., if machine in state j

reads k, it then writes k’, moves head right,

and changes to state j’:

s

jt

. h

it

. c

ikt

¬s

j’(t+1)

. h

(i+1)(t+1)

. c

ik’(t+1)

, all i, t

Unread tape cells are unaffected:

h

it

. c

i’kt

¬c

i’k(t+1)

, i = i’, all k, t

Wrapping up

Any proof that gives “yes” execution gives

satisfying assignment, and vice versa

Also | contains O(p(n)

2

) variables, O(p(n)

2

) clauses

¬SAT e NPC

Now that we are bootstrapped, much easier to

prove other L e NPC

Recall recipe for NPC proofs

1. Prove L e NP

2. Select L’ e NPC

3. Describe algorithm to compute f mapping

every input x of L’ to input f(x) of L

4. Prove f satisfies x e L’ iff f(x) e L, for all x e

{0, 1}*

5. Prove computing f takes p-time

3-CNF-SAT e NPC

3-CNF-SAT = {(|) : | is a satisfiable 3-CNF

boolean formula}

| is 3-CNF if it is AND of clauses, each of which is

OR of three literals (variable or negation)

(x

1

v ÷x

1

v ÷x

2

) . (x

3

v x

2

v x

4

) . (÷x

1

v ÷x

3

v ÷x

4

)

Proof. Show SAT s

p

3-CNF-SAT

Given input of SAT, construct binary parse tree,

introduce variable y

i

for each internal node

E.g., | = ((x

1

¬x

2

) . ÷((÷x

1

·x

3

) v x

4

)) v ÷x

2

Rewrite as AND of root and clauses describing

operation of each node:

Each clause has at most three literals

Write truth table for each clause, e.g. for

|’

1

= (y

1

·(y

2

. ÷x

2

)):

Write DNF (OR of ANDs) for ÷|’

1

:

÷|’

1

= (y

1

. y

2

. x

2

) v (y

1

. ÷y

2

. x

2

) v …

Use DeMorgan’s laws to convert to CNF:

|’’

1

= (÷y

1

v ÷y

2

v ÷x

2

) . (÷y

1

v y

2

v ÷x

2

) . …

If any clause has < three literals, augment with

dummy variables p, q

(l

1

v l

2

) ·(l

1

v l

2

v p) . (l

1

v l

2

v ÷p)

Resulting 3-CNF formula is satisfiable iff original

SAT formula is satisfiable

CLIQUE e NPC

CLIQUE = {(G, k) : graph G = (V, E) has clique of

size k}

Naïve algorithm runs in O(k

2

×

|V|

C

k

))

Proof. Show 3-CNF-SAT s

p

CLIQUE

Given formula | = c

1

. c

2

. … . c

k

, construct input

of CLIQUE:

For each c

r

= (l

1

r

v l

2

r

v l

3

r

), place v

1

r

, v

2

r

, v

3

r

in V

Add edge between v

i

r

and v

j

s

if r = s and corresponding

literals are consistent

If | is satisfiable, at least one literal in each c

r

is 1 ¬

set of k vertices that are completely connected

If G has clique of size k, contains exactly one vertex

per clause ¬| satisfied by assigning 1 to

corresponding literals

VERTEX-COVER e NPC

VERTEX-COVER = {(G, k) : graph G = (V, E) has

vertex cover of size k}

Vertex cover is V’ _ V s.t. if (u, v) e E, then u e

V’ or v e V’ or both

Proof. Show CLIQUE s

p

VERTEX-COVER

Given input (G, k) of CLIQUE, construct input of

VERTEX-COVER:

(Ḡ, |V| ÷ k), where Ḡ = (V, Ē)

If G has clique V’, |V’| = k, then V ÷ V’ is vertex

cover of Ḡ:

(u, v) e Ē ¬either u or v not in V’, since (u, v) e E

¬at least one of u or v in V – V’, so covered

If Ḡ has vertex cover V’ _ V, |V’| = |V| ÷ k, then V –

V’ is clique of G of size k

(u, v) e Ē ¬u e V’ or v e V’ or both

if u e V’ and v e V’, then (u, v) e E

SUBSET-SUM e NPC

SUBSET-SUM = {(S, t) : S c N, t e N and - a

subset S’ ⊆S s.t. t = E

seS’

s}

Integers encoded in binary! If t encoded in

unary, can solve SUBSET-SUM in p-time, i.e.

weakly NPC (vs. strongly NPC)

Proof. Show 3-CNF-SAT s

p

SUBSET-SUM

Given formula |, assume w.l.o.g. each variable

appears in at least one clause, and variable and

negation don’t appear in same clause

Construct input of SUBSET-SUM:

2 numbers per variable x

i

, 1 s i s n, indicates if

variable or negation is in a clause

2 numbers per clause c

j

, 1 s j s k, slack variables

Each digit labeled by variable/clause, total n + k digits

t is 1 for each variable digit, 4 for each clause digit

| = C

1

. C

2

. C

3

. C

4

, C

1

= (x

1

v ÷x

2

v ÷x

3

), C

2

=

(÷x

1

v ÷x

2

v ÷x

3

), C

3

= (÷x

1

v ÷x

2

v x

3

), and C

4

=

(x

1

v x

2

v x

3

)

Max digit sum is 6, interpret numbers in base > 7

Reduction takes p-time: set S has 2n + 2k values of n + k

digits each; each digit takes O(n + k) time to compute

If | has satisfying assignment

Sum of variable digits is 1, matching t

Each clause digit at least 1 since at least 1 literal satisfied

Fill rest with slack variables s

j

, s

j

’

If - S’ _ S that sums to t

Includes either v

i

or v

i

’ for each i = 1,…, n; if v

i

e S’, set x

i

= 1

Each clause c

j

has at least one v

i

or v

i

’ set to 1 since slacks

add up to only 3; by above clause is satisfied

Implications of P = NP

Ability to verify a solution ¬ability to produce one!

Can automate search of solutions, i.e. creativity!

Can use a p-time algorithm for SAT to find formal

proof of any theorem that has a concise proof,

because formal proofs can be verified in p-time

¬P = NP could very well imply solutions to all the

other CMI million-dollar problems!

“If P = NP, then the world would be a profoundly different

place than we usually assume it to be. There would be no

special value in "creative leaps," no fundamental gap

between solving a problem and recognizing the solution once

it's found. Everyone who could appreciate a symphony would

be Mozart; everyone who could follow a step-by-step

argument would be Gauss...”

—Scott Aaronson, MIT

- Traveling STraveling Salesman Problem.docalesman ProblemUploaded byFarahin Zolkafli
- Biological Uncertainty PrincipleUploaded byAnirbanab
- 19bUploaded byDeepakGupta
- DAA_UNIT5.pdfUploaded byVasantha Kumari
- UNIT - VUploaded byJit Agg
- LSAT LSAC Analytical Analysis Pascal's Calculus Cube NobelUploaded byMark Richard Hilbert(Mark Richard Rossetti)
- lecture38.pptUploaded byAhmed Khazal
- An Incompleteness Theorem for Calculating the FutureUploaded bysuwailem
- Slide TestUploaded byPAVITHRAN SRIDHAR
- Techinical TermsUploaded byramesh_508
- DeolalikarUploaded bykostabongo
- Complexity retUploaded byjoaquinedes
- pnp12ptUploaded byangelica_lim
- C analysisUploaded byKritika Khanna
- L01Uploaded byRonak Chaudhary
- euclid.bams.1183547848Uploaded byshekhawatmahaveer
- PIDM-1Uploaded byArunkumar
- Complexity of AlgorithmsUploaded byviratbansal001
- kariUploaded byShweta Chaudhari
- Computer Science BookUploaded byaseemgoyal92
- Kruskal_s2009Uploaded byMohamad Zamri Ibrahim
- Berkeley-FSMUploaded byVS
- Tablenotes GateUploaded bynivi_09
- Quantum Algortithms via Linear AlgebraUploaded byITS3000
- CisUploaded byMike Equality Sha
- GATE Syllabus - Computer Science and EngineeringUploaded byekam13korn

- Here's How to Undo a Sent Email in GmailUploaded byDiana Arun
- Computer Organization Question BankUploaded byDiana Arun
- English 11Uploaded byDiana Arun
- Q_bank_OS.docUploaded byDiana Arun
- 每個女人都漂亮Uploaded byMike Lin
- MID II CO-QB-final.docxUploaded byDiana Arun
- ONE DAY AT A TIME.docxUploaded byDiana Arun
- The Battle Belongs to the Lord (Em)Uploaded byrodney18
- Mary Did You KnowUploaded byDiana Arun
- Operating System 2 Marks and 16 Marks - AnswersUploaded byDiana Arun
- How to Paint Realistic Watercolor RosesUploaded byDiana Arun
- Run With TorchesUploaded byDiana Arun
- The Triad Tree _ Dreamscaping With June Rollins®Uploaded byDiana Arun
- Extended AsciUploaded byDiana Arun
- Travel grants CSIRUploaded byDiana Arun
- Precious moments colouring page2.pdfUploaded byDiana Arun
- Precious moments colouring page 3.pdfUploaded byDiana Arun
- HP ProLiant DL320 G4 server.docxUploaded byDiana Arun
- Introduction to Pattern Recognition.docxUploaded byDiana Arun
- ONE DAY AT A TIME.docxUploaded byDiana Arun
- Precious moments colouring page 4.pdfUploaded byDiana Arun
- Dinosaur Finger Puppets 1Uploaded byDiana Arun
- Blood Group DatabaseUploaded byDiana Arun
- Dengue - Awareness.pptUploaded byDiana Arun
- What i PossessUploaded byDiana Arun
- mltr - paint my love.txtUploaded byDiana Arun
- Extended AsciUploaded byDiana Arun
- Brooklyn Limestone_ Forget Me Not (John Derian Inspired) Reminder TrayUploaded byDiana Arun
- mark antony-u sang to me.txtUploaded byDiana Arun
- After installing the BrowserLockdown3.docxUploaded byDiana Arun

- 21113 M-00-D05 URS CHILLER ( -0 C ) - R1Uploaded bydhanu_lagwankar
- TamingChina'sWildWestUploaded byTina Joseph Jacob
- Accounts PayableUploaded byw_umali1802
- One-Variable Calculus, with an Introduction to Linear Algebra SECOND EDITION vol I - Apostol.pdfUploaded byحكيم الفيلسوف الضائع
- S10 Networking - 4upUploaded byeduardogico
- Bibliography, What is CSR?Uploaded byFah Sriwannavit
- Journal.pone.0150447Uploaded byisma
- Lewis Pericles Modernism, Nationalism, And the NovelUploaded byekrem79
- Printing _Creating a Macro - HM-8000Uploaded byapi-19817003
- Recent Advances in Empirical Microeconomic Research InUploaded byFrida Hutabarat
- Chapter 07Uploaded byOwl
- Anaya Science 2 Worksheets - JPR504Uploaded byDavid Ricardo Huaman Quispe
- 06-supplementbUploaded bydoug119
- Man of SteelUploaded bykinblob
- Read 9781455728756 Lookingbill and Marks x27 Principles of DermatolUploaded bybilly
- handbook titasUploaded byHaliza Azmi
- Cyber Motion Presentation on MechtronicsUploaded byseenumurar
- Curriculum Vitae of MpolokengUploaded by909774563
- equations handout.docUploaded byEmpud Mahpudin
- First Group AssignmentUploaded bycimdin
- Design and Implementation of an EPROM ProgrammerUploaded byChidozie Ijeomah
- turbocharger appliationUploaded byJun GWan Park
- biotech4 agricultural.pdfUploaded bylaura_st_18
- Xcos BeginnersUploaded byMatheus Rodrigues
- Matlab Code for Sorted Real Schur FormsUploaded byOhwil
- Building Services ProcurementUploaded byDanut Calugar
- Hidden Voices: Including Ethnic Minority Women in Policy MakingUploaded byOxfam
- Defense_Aluminum-Alustar_engl_PV_2012-11-07.pdfUploaded byjavier.garcia6281
- Digital AccountingUploaded byCosmin Cristescu
- GUIDE Hacking AndroidUploaded byhomesman