complexity classes: p and np

26
Complexity Classes: P and NP CS 130 Theory of Computation HMU Textbook: Chap 10

Upload: akira

Post on 15-Jan-2016

129 views

Category:

Documents


0 download

DESCRIPTION

Complexity Classes: P and NP. CS 130 Theory of Computation HMU Textbook: Chap 10. Turing machines and complexity. Time and space complexity The class P Non-determinism The class NP Reduction and NP-Completeness. Time and space complexity. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Complexity Classes: P and NP

Complexity Classes: P and NP

CS 130 Theory of Computation

HMU Textbook: Chap 10

Page 2: Complexity Classes: P and NP

Turing machines and complexity

Time and space complexity The class P Non-determinism The class NP Reduction and NP-Completeness

Page 3: Complexity Classes: P and NP

Time and space complexity Running time (or time complexity) for a TM

is f(n), where n is the length of the input tape f(n) maximum number of steps/transitions the

TM makes before halting Could be infinite if the TM does not halt on

some inputs Space complexity is the maximum number

of cells on the tape used/encountered by the TM during execution

Page 4: Complexity Classes: P and NP

The class P The class P describes all languages

(or problems) described by a Turing Machine decider, whose time complexity is bounded by a polynomial on n

Examples: Divisibility of a number by another number Recognizing palindromes Matching symbols in a string Many other more complex problems (e.g.,

searching, shortest paths, min-cost spanning tree)

Page 5: Complexity Classes: P and NP

The class P

recursivesolvable(decidable)problems

Psolvable withinpolynomial time

Page 6: Complexity Classes: P and NP

Extensions to the basic TM Multi-tape turing machine

multiple tapes, input placed on first tape, other tapes filled with blanks

multiple heads, moving independently Nondeterminism:

allow several possible transitions, given a state and symbol

Alternatives to TMs Counter machines, stack machines, etc…

None of these extensions extend the capability of TMs, but may impact on time/space complexity

Page 7: Complexity Classes: P and NP

Non-deterministic Turing Machine An non-deterministic turing machine, or NDTM,

is a tuple M = (Q, , , , q0, B, F), where Q is a set of states is the input alphabet is the tape alphabet = {B} other tape symbols : Q (Q D)* is the state transition function

mapping (state, symbol) to(state, symbol, direction) possibilities; D = {,}; may be empty/undefined for some pairs

q0 is the start state of M B is the blank symbol (default symbol on input tape) F Q is the set of accepting states or final states of M

(if applicable)

Page 8: Complexity Classes: P and NP

Non-deterministic Turing Machine Difference from a regular TM:

: Q (Q D)* Multiple transitions, given a state and a symbol,

are now possible Impact on the turing machine as a

recognizer String is acceptable as long as at least one path

of transitions leads to a final state Impact on the turing machine as a decider

String is acceptable as long as at least one path of transitions leaves a YES on the tape;not acceptable if all paths leave a NO on the tape

Page 9: Complexity Classes: P and NP

The class NP The class NP describes all languages

(or problems) described by an NDTM decider, whose time complexity is bounded by a polynomial on n

Clearly P NP, but it is not yet known or proven that P NP(though many believe this is true)

Page 10: Complexity Classes: P and NP

The classes P and NP

recursivesolvable(decidable)problems

solvable withinpolynomial time

NP

not yet proventhat this regionis empty,but it likely isn’t

P

Page 11: Complexity Classes: P and NP

Some problems in NP Independent set Hamiltonian cycle Satisfiability Vertex cover “Student Reps”

Page 12: Complexity Classes: P and NP

Independent set Given a graph G = (V,E) and an integer K,

is there a subset S of K vertices in Vsuch that no two vertices in S are connected by an edge?

There is an easy brute-force method to solve this problem: for each possible subset S of V (2n such

subsets): check if S contains K vertices and then check if each pair in S is connected by an edge

Answer yes if there is an S that satisfies the condition, answer no if all subsets do not

Page 13: Complexity Classes: P and NP

Independent set and TMs A vertex subset can be represented by an n-bit

string (string of 0’s and 1’s: 1 means a vertex is part of the subset)

Deterministic TM solution Loop that generates each subset on the tape and then

checks if a subset satisfies the condition Exponential time complexity because there are 2n

subsets NDTM solution

Non-deterministically write a subset on the tape,then check if the subset satisfies the condition

Polynomial-time complexity because there is no exponential loop involved

Page 14: Complexity Classes: P and NP

NDTM and possibilities

q1 q2

B,1,B,0,

q3

B,1,B,0,

q4

B,1,B,0,

writes one of the following 3-bit strings on the tape:000,001,010,011,100,101,110,111

Page 15: Complexity Classes: P and NP

Hamiltonian cycle Given a graph G = (V,E), is there a

simple cycle containing all vertices in V? Easy brute-force method to solve this

problem: for each possible permutation P of V

(n! possibilities): check if the appropriate edges implied by the permutation exist, forming the cycle

Answer yes if there is a P that forms a cycle, answer no if all permutations do not

Page 16: Complexity Classes: P and NP

Alternative characterization of NP A problem is in NP if a feasible solution to

the problem can be verified in polynomial time

A problem is in NP if it can be solved by the following “framework”: for each possibility P:

check (in polynomial time) if the possibility P satisfies the condition stated in the problem

Answer yes if there is a P that satisfies the condition, answer no if all possibilities do not

Page 17: Complexity Classes: P and NP

Satisfiability Given a set V of variables, and a boolean expression

E over V, consisting of a conjunction of clauses of disjunctions of literals (conjunctive normal form),is there a truth assignment for V that satisfies E(E evaluates to true under the assignment)?

Example: V = {a,b,c}, E = (a+b)(b+c)(c)Assignment that satisfies E: A=true, B=true, c=false

Easy brute-force method to solve this problem: for each possible truth assignment A (2n possibilities):

evaluate E under A Answer yes if there is an A that satisfies E,

answer no if all assignments do not

Page 18: Complexity Classes: P and NP

Vertex cover Given a graph G = (V,E) and an integer K,

is there a subset S of K vertices in Vsuch that every edge in E has at least one endpoint in S?

There is an easy brute-force method to solve this problem: for each possible subset S of V (2n such

subsets): check if S contains K vertices and then check if edges in E have an incident vertex in S

Answer yes if there is an S that satisfies the condition, answer no if all subsets do not

Page 19: Complexity Classes: P and NP

Student reps Given:

A set S of all students in a university A set O of student organizations,

each having members that comprise a subset of S An integer K

Question: Can I find K students from S such that all

organizations are represented? Exercise: Formulate a brute-force solution to

this problem following the framework mentioned, thereby showing that this problem is in NP

Page 20: Complexity Classes: P and NP

NP-complete problems The problems we have identified so far

are “hard” in the sense that there are no known polynomial-time solutions using a regular TM but there are “easy” exponential-time solutions (or, polynomial solutions in an NDTM)

Some of these problems have been shown “complete” in the sense that all problems in NP reduce to these problems

Page 21: Complexity Classes: P and NP

Reduction Reduction entails converting an instance of one

problem into an equivalent instance of another If a problem A reduces to a problem B, then a

solution to B can be used to solve A Means that B is at least as hard as A Remember HP and HPA?

Cook’s Theorem: Satisfiability (SAT) is NP-complete; all problems in NP reduce to SAT

What does this mean? If someone discovers a polynomial-time solution for SAT, all other problems are solved

Page 22: Complexity Classes: P and NP

Reduction Important condition: the reduction has to be

carried out in polynomial-time How does one show that a problem P is

NP-complete? Use a proof similar to Cook’s theorem

(too hard, and too much work!) Easier option: reduce a known NP-complete problem

(such as SAT) to P, so that P is NP-complete by transitivity

Thousands of problems in NP have already been shown NP-complete

If any one of these problems turns out to be solvable in polynomial time, it is a proof that P=NP! ($1M prize)

Page 23: Complexity Classes: P and NP

Reduction and NP-completeness SAT is NP-complete by Cook’s theorem

Proof is beyond the scope of this course SAT reduces to Vertex Cover (VC)

Convert variables and clauses to a graph and an integer such that a truth assignment corresponds to a vertex cover in the converted graph

With a successful polynomial-time reduction, this shows that VC is NP-complete

VC reduces to Independent Set (IS) andto Student Reps (SR) Which means IS and SR are NP-complete

Page 24: Complexity Classes: P and NP

SAT to VC

V = {a,b,c,d} E = (c)(a+b)(b+c+d)

+- +-+- +-a cb d

bac dc

b

(c) (a+b) (b+c+d)

K = 4 +0+1+2= 7

G

Page 25: Complexity Classes: P and NP

Reduction and NP-completeness

NP

SAT

VC HC

SRIS

all other NPproblems

All other NPproblems

Page 26: Complexity Classes: P and NP

Summary Turing machines model computability The class P: problems (languages) that can be

solved in polynomial time using a TM decider The class NP: problems that can be solved in

polynomial time using a NDTM (they can be solved in exponential time using a regular TM)

Not yet proven whether P NP There are problems in NP that are NP-complete;

i.e., all other NP problems reduce to it Saying that a problem is NP-complete is a statement

of “hardness” of that problem Proving NP-completeness: reduce from a known NP-

complete problem