NP-complete and NP-hard problems

Slides:



Advertisements
Similar presentations
Polynomial-time reductions We have seen several reductions:
Advertisements

1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Concept of Completeness and hardness for a complexity class Definition.
The Theory of NP-Completeness
1 NP-Complete Problems. 2 We discuss some hard problems:  how hard? (computational complexity)  what makes them hard?  any solutions? Definitions 
Complexity 11-1 Complexity Andrei Bulatov NP-Completeness.
Computability and Complexity 13-1 Computability and Complexity Andrei Bulatov The Class NP.
CSE332: Data Abstractions Lecture 27: A Few Words on NP Dan Grossman Spring 2010.
Hardness Results for Problems P: Class of “easy to solve” problems Absolute hardness results Relative hardness results –Reduction technique.
NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Definition of complexity class NP –Nondeterministic computation –Problems.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
The Theory of NP-Completeness
NP-Complete Problems Problems in Computer Science are classified into
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 23 Instructor: Paul Beame.
Analysis of Algorithms CS 477/677
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Chapter 11: Limitations of Algorithmic Power
Toward NP-Completeness: Introduction Almost all the algorithms we studies so far were bounded by some polynomial in the size of the input, so we call them.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
P, NP, and NP-Complete Suzan Köknar-Tezel.
Hardness Results for Problems
1 The Theory of NP-Completeness 2 NP P NPC NP: Non-deterministic Polynomial P: Polynomial NPC: Non-deterministic Polynomial Complete P=NP? X = P.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
The Theory of NP-Completeness 1. What is NP-completeness? Consider the circuit satisfiability problem Difficult to answer the decision problem in polynomial.
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Complexity Classes (Ch. 34) The class P: class of problems that can be solved in time that is polynomial in the size of the input, n. if input size is.
Theory of Computation, Feodor F. Dragan, Kent State University 1 NP-Completeness P: is the set of decision problems (or languages) that are solvable in.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
Polynomial-time reductions We have seen several reductions:
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
1 Design and Analysis of Algorithms Yoram Moses Lecture 11 June 3, 2010
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
NP-Algorithms Tractable vs Intractable Some problems are intractable: as they grow large, we are unable to solve them in reasonable time.
NP-completeness Class of hard problems. Jaruloj ChongstitvatanaNP-complete Problems2 Outline  Introduction  Problems and Languages Turing machines and.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 30, 2014.
CSE 6311 – Spring 2009 ADVANCED COMPUTATIONAL MODELS AND ALGORITHMS Lecture Notes – Feb. 3, 2009 Instructor: Dr. Gautam Das notes by Walter Wilson.
NPC.
CSC 413/513: Intro to Algorithms
Young CS 331 D&A of Algo. NP-Completeness1 NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and.
COMPLEXITY. Satisfiability(SAT) problem Conjunctive normal form(CNF): Let S be a Boolean expression in CNF. That is, S is the product(and) of several.
1 Ch 10 - NP-completeness Tractable and intractable problems Decision/Optimization problems Deterministic/NonDeterministic algorithms Classes P and NP.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
CSCI 2670 Introduction to Theory of Computing December 7, 2005.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
1 1. Which of these sequences correspond to Hamilton cycles in the graph? (a) (b) (c) (d) (e)
COSC 3101A - Design and Analysis of Algorithms 14 NP-Completeness.
COMPLEXITY. Satisfiability(SAT) problem Conjunctive normal form(CNF): Let S be a Boolean expression in CNF. That is, S is the product(and) of several.
1 The Theory of NP-Completeness 2 Review: Finding lower bound by problem transformation Problem X reduces to problem Y (X  Y ) iff X can be solved by.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
CSE 332: NP Completeness, Part II Richard Anderson Spring 2016.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
The Theory of NP-Completeness
Chapter 10 NP-Complete Problems.
Richard Anderson Lecture 26 NP-Completeness
NP-Completeness Yin Tat Lee
ICS 353: Design and Analysis of Algorithms
NP-Complete Problems.
NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson, W.H. Freeman and Company, 1979.
The Theory of NP-Completeness
CSE 589 Applied Algorithms Spring 1999
Presentation transcript:

NP-complete and NP-hard problems Definition of complexity class NP Nondeterministic computation Problems that can be verified The P = NP Question Concept of NP-hard and NP-complete problems

Traditional definition of NP Turing machine model of computation Simple model where data is on an infinite capacity tape Only operations are reading char stored in current tape cell, writing a char to current tape cell, moving tape head left or right one square Deterministic versus nondeterministic computation Deterministic: At any point in time, next move is determined Nondeterministic: At any point in time, several next moves are possible NP: Class of problems that can be solved by a nondeterminstic turing machine in polynomial time

Turing Machines A Turing machine has a finite-state-control (its program), a two way infinite tape (its memory) and a read-write head (its program counter) Finite State Control Head …. …. 1 1 1 1 1 1 Tape

Nondeterministic Running Time Nondeterministic Computation Deterministic Computation We measure running time by looking at height of computation tree, NOT number of nodes explored Both computation have same height 4 and thus same running time

ND computation returning yes Yes Result No Result If any leaf node returns yes, we consider the input to be a yes input. If all leaf nodes return no, then we consider the input to be a no input.

Showing a problem is in NP Hamiltonian Path Input: Undirected graph G = (V,E) Y/N Question: Does G contain a HP? Nondeterministic polynomial-time solution Guess a hamiltonian path P (ordering of vertices) V! possible orderings For binary tree, V log V height to generate all guesses Verify guessed ordering is correct Return yes/no if ordering is actually a HP

Illustration 2 Guess Phase Nondeterministic 1 3 --------------- 123 132 213 231 312 321 Guess Phase Nondeterministic --------------- Verify Phase Deterministic 1 2 3 Yes input graph 123 132 213 231 312 321 Guess Phase Nondeterministic --------------- Verify Phase Deterministic 1 2 3 No input graph

Alternate definition of NP Preliminary Definitions Let P be a decision problem Let I be an input instance of P Let Y(P) be the set of yes input instances of P Let N(P) be the set of no input instances of P P belongs to NP iff For any I e Y(P), there exists a “certificate” [solution] C(I) such that a deterministic algorithm can verify I e Y(P) in polynomial time with the help of C(I) For any I e N(P), no “certificate” [solution] C(I) will convince the algorithm that I e Y(P).

Connection 2 Guess Phase Nondeterministic --------------- 1 3 123 132 213 231 312 321 Guess Phase Nondeterministic --------------- Verify Phase Deterministic 1 2 3 Yes input graph Certificate [Solution] A Hamiltonian Path C(I1): 123 or 321 C(I2): none Verification Alg: Verify certificate is a possible HP Check for edge between all adjacent nodes in path 123 132 213 231 312 321 Guess Phase Nondeterministic --------------- Verify Phase Deterministic 1 2 3 No input graph

Example: Clique Problem Input: Undirected graph G = (V,E), integer k Y/N Question: Does G contain a clique of size ≥ k? Certificate A clique C of size at least k Verification algorithm Verify this is a potential clique of size k Verify that all nodes in C are connected in E

Proving a problem is in NP You need to describe what the certificate C(I) will be for any input instance I You need to describe the verification algorithm usually trivial You need to argue that all yes input instances and only yes input instances have an appropriate certificate C(I) also usually trivial (typically do not require)

Example: Vertex Cover Vertex Cover Certificate Verification algorithm Input: Undirected graph G = (V,E), integer k Y/N Question: Does G contain a vertex cover of size ≤ k? Vertex cover: A set of vertices C such that for every edge (u,v) in E, either u is in C or v is in C (or both are in C) Certificate A vertex cover C of size at most k Verification algorithm Verify C is a potential vertex cover of size at most k Verify that all edges in E contain a node in C

Example: Satisfiability Input: Set of variables X and set of clauses C over X Y/N Question: Is there a satisfying truth assignment T for the variables in X such that all clauses in C are true? Certificate? Verification algorithm?

Example: Unsatisfiability Input: Set of variables X and set of clauses C over X Y/N Question: Is there no satisfying truth assignment T for the variables in X such that all clauses in C are true? Certificate and Verification algorithm? Negative certificate and Negative verification algorithm?

Example: Exact Vertex Cover Input: Undirected graph G = (V,E), integer k Y/N Question: Does the smallest vertex cover in G have size exactly k? Vertex cover: A set of vertices C such that for every edge (u,v) in E, either u is in C or v is in C (or both are in C) Certificate and Verification algorithm? Negative certificate and Negative verification algorithm?

NP-complete and NP-hard problems Definition of complexity class NP Nondeterministic computation Problems that can be verified The P = NP Question Concept of NP-hard and NP-complete problems

Definition of NP-hard A problem П is NP-hard if for all П’ e NP П’ ≤p П holds. Intuitively, an NP-hard problem П is at least as hard (defined by membership in P) as any problem in NP

Definition of NP-complete A problem П is NP-complete if П is NP-hard and П is in NP Intuitively, an NP-complete problem П is the hardest problem in NP That is, if П is in P, then P=NP If P ≠ NP, then П is not in P P=NP=NP-complete NP P NP-complete OR

Importance of NP-completeness Importance of “Is P=NP” Question Practitioners view There exist a large number of interesting and seemingly different problems which have been proven to be NP-complete The P=NP question represents the question of whether or not all of these interesting and different problems belong to P As the set of NP-complete problems grows, the question becomes more and more interesting

List of Problem Types from Garey & Johnson, 1979 Graph Theory Network Design Sets and Partitions Storage and Retrieval Sequencing and Scheduling Mathematical Programming Algebra and Number Theory Games and Puzzles Logic Automata and Languages Program Optimization Miscellaneous

Importance of NP-completeness Importance of “Is P=NP” Question Theoretician’s view NP is exactly the set of problems that can be “verified” in polynomial time Thus “Is P=NP?” can be rephrased as follows: Is it true that any problem that can be “verified” in polynomial time can also be “solved” in polynomial time? Hardness Implications It seems unlikely that all problems that can be verified in polynomial time also can be solved in polynomial time If so, then P≠NP Thus, proving a problem to be NP-complete is a hardness result as such a problem will not be in P if P≠NP.

Proving a problem П is NP-complete Show П is in NP (usually easy step) Prove for all П’ e NP П’ ≤p П holds. Show that П’ ≤p П for some NP-hard problemП’ This only works if we have a known NP-hard problem П’ to reduce from Also depends on transitivity property proven earlier We need to prove the existence of a first NP-hard problem Cook-Levin Thm Developing new reductions is a skill or art form Over time, it gets easier

Select the right source problem 3-SAT: The old reliable. When none of the other problems seem to work, this is the one to come back to. Integer Partition: A good choice for number problems. 3-Partition: A good choice for proving “strong” NP-completeness for number problems. Vertex Cover: A good choice for selection problems. Hamiltonian Path: A good choice for ordering problems.

Some history Cook: “The complexity of theorem-proving procedures” STOC 1971, pp. 151-158 Polynomial-time reductions NP complexity class SAT is NP-complete Levin: “Universal sorting problems”, Problemi Peredachi Informatsii 9:3 (1973), pp. 265-266 Independent discovery of many of the same ideas Karp: “Reducibility among combinatorial problems”, in Complexity of Computer Computations, 1972, pp. 85-103 Showed 21 problems from a wide variety of areas are NP-complete

P1 ≤p P2 & P2 ≤p P3 P1 ≤p P3 Let R1 be the reduction used to prove P1 ≤p P2 Let R2 be the reduction used to prove P2 ≤p P3 Let x be an input to P1 Define R3(x) to be R2(R1(x))

Answer-preserving argument Because R1 is a reduction between P1 and P2, we know that R1(x) is a yes input instance of P2 iff x is a yes input instance of P1 Because R2 is a reduction between P2 and P3, we know that R2(R1(x)) is a yes input instance of P3 iff R1(x) is a yes input instance of P2 Applying transitivity of iff, we get that R3(x) is a yes input of P3 iff x is a yes input instance of P1

Polynomial-time Argument Let R1 take time nc1 Let R2 take time nc2 Let n be the size of x Then the R1 call of R3 takes time at most nc1 Furthermore, R1(x) has size at most max(n,nc1) Therefore, the R2 call of R3 takes time at most max(nc2, (nc1)c2) = max (nc2, nc1 c2) In either case, the total time taken by R3 is polynomial in n