NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson, W.H. Freeman and Company, 1979.

Slides:



Advertisements
Similar presentations
Time Complexity P vs NP.
Advertisements

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 
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
Analysis of Algorithms CS 477/677
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Chapter 11: Limitations of Algorithmic Power
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
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.
Chapter 11 Limitations of Algorithm Power. Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples:
CSCE350 Algorithms and Data Structure
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.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 8: Complexity Theory.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
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.
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.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
1 Chapter 34: NP-Completeness. 2 About this Tutorial What is NP ? How to check if a problem is in NP ? Cook-Levin Theorem Showing one of the most difficult.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
Design and Analysis of Algorithms - Chapter 101 Our old list of problems b Sorting b Searching b Shortest paths in a graph b Minimum spanning tree b Primality.
NP-Complete Problems Algorithm : Design & Analysis [23]
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
Costas Busch - LSU1 Time Complexity. Costas Busch - LSU2 Consider a deterministic Turing Machine which decides a language.
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.
1 Ch 10 - NP-completeness Tractable and intractable problems Decision/Optimization problems Deterministic/NonDeterministic algorithms Classes P and NP.
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)
Prof. Busch - LSU1 Time Complexity. Prof. Busch - LSU2 Consider a deterministic Turing Machine which decides a language.
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.
CS 154 Formal Languages and Computability May 10 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
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.
Advanced Algorithms NP-hard and NP-Complete Problems Instructor: Saeid Abrishami Ferdowsi University of Mashhad.
Young CS 530 Ad. Algo. D&A NP-Completeness1 NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey.
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
The NP class. NP-completeness
Chapter 10 NP-Complete Problems.
Richard Anderson Lecture 26 NP-Completeness
Time Complexity Costas Busch - LSU.
Richard Anderson Lecture 26 NP-Completeness
Hard Problems Introduction to NP
Richard Anderson Lecture 25 Min Cut Applications and NP-Completeness
NP-Completeness Yin Tat Lee
CS154, Lecture 16: More NP-Complete Problems; PCPs
Analysis and design of algorithm
ICS 353: Design and Analysis of Algorithms
Richard Anderson Lecture 25 NP-Completeness
Computational Complexity
Time Complexity We use a multitape Turing machine
1. for (i=0; i < n; i+=2) if (A[i] > A[i+1]) swap(A[i], A[i+1])
Chapter 11 Limitations of Algorithm Power
NP-Complete Problems.
CS 3343: Analysis of Algorithms
NP-Completeness Yin Tat Lee
P, NP and NP-Complete Problems
The Theory of NP-Completeness
CSE 589 Applied Algorithms Spring 1999
P, NP and NP-Complete Problems
Our old list of problems
RAIK 283 Data Structures & Algorithms
Hamiltonian Circuit (HC) problem
Presentation transcript:

NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson, W.H. Freeman and Company, 1979. Young CS 530 Ad. Algo. D&A NP-Completeness

General Problems, Input Size and Time Complexity Time complexity of algorithms : polynomial time algorithm ("efficient algorithm") v.s. exponential time algorithm ("inefficient algorithm") f(n) \ n 10 30 50 n 0.00001 sec 0.00003 sec 0.00005 sec n5 0.1 sec 24.3 sec 5.2 mins 2n 0.001 sec 17.9 mins 35.7 yrs Young CS 530 Ad. Algo. D&A NP-Completeness

“Hard” and “easy’ Problems Sometimes the dividing line between “easy” and “hard” problems is a fine one. For example Find the shortest path in a graph from X to Y. (easy) Find the longest path in a graph from X to Y. (with no cycles) (hard) View another way – as “yes/no” problems Is there a simple path from X to Y with weight <= M? (easy) Is there a simple path from X to Y with weight >= M? (hard) First problem can be solved in polynomial time. All known algorithms for the second problem (could) take exponential time . Young CS 530 Ad. Algo. D&A NP-Completeness

Decision problem: The solution to the problem is "yes" or "no" Decision problem: The solution to the problem is "yes" or "no". Most optimization problems can be phrased as decision problems (still have the same time complexity). Example : Assume we have a decision algorithm X for 0/1 Knapsack problem with capacity M, i.e. Algorithm X returns “Yes” or “No” to the question “is there a solution with profit  P subject to knapsack capacity  M?” Young CS 530 Ad. Algo. D&A NP-Completeness

Min Bound Optimal Profit Max Bound 0 pi We can repeatedly run algorithm X for various profits(P values) to find an optimal solution. Example : Use binary search to get the optimal profit, maximum of lg pi runs. (where M is the capacity of the knapsack optimization problem)    Min Bound Optimal Profit Max Bound 0 pi |___________________|_________________| Search for the optimal solution Young CS 530 Ad. Algo. D&A NP-Completeness

The Classes of P and NP The class P and Deterministic Turing Machine Given a decision problem X, if there is a polynomial time Deterministic Turing Machine program that solves X, then X is belong to P Informally, there is a polynomial time algorithm to solve the problem Young CS 530 Ad. Algo. D&A NP-Completeness

The class NP and Non-deterministic Turing Machine Given a decision problem X, if there is a polynomial time Non-deterministic Turing machine program that solves X, then X belongs to NP Given a decision problem X. For every instance I of X, (a) guess solution S for I, and (b) check “is S a solution to I?”. If (a) and (b) can be done in polynomial time, then X belongs to NP. Young CS 530 Ad. Algo. D&A NP-Completeness

Some problems which are in NP, but may not in P : Obvious : P  NP, i.e. A problem in P does not need “guess solution”. The correct solution can be computed in polynomial time. NP P Some problems which are in NP, but may not in P : 0/1 Knapsack Problem PARTITION Problem : Given a finite set of positive integers Z. Question : Is there a subset Z' of Z such that Sum of all numbers in Z' = Sum of all numbers in Z-Z' ? i.e.  Z' =  (Z-Z') Young CS 530 Ad. Algo. D&A NP-Completeness

One of the most important open problem in theoretical compute science : Is P=NP ? Most likely “No”. Currently, there are many known problems in NP, and there is no solution to show anyone of them in P. Young CS 530 Ad. Algo. D&A NP-Completeness

NP-Complete Problems Stephen Cook introduced the notion of NP-Complete Problems. This makes the problem “P = NP ?” much more interesting to study. The following are several important things presented by Cook : Young CS 530 Ad. Algo. D&A NP-Completeness

Polynomial Transformation ("  ") L1  L2 : There is a polynomial time transformation that transforms arbitrary instance of L1 to some instance of L2. If L1  L2 then L2 is in P implies L1 is in P (or L1 is not in P implies L2 is not in P) If L1  L2 and L2  L3 then L1  L3 Young CS 530 Ad. Algo. D&A NP-Completeness

Note that an NP-complete problem is Focus on the class of NP – decision problems only. Many intractable problems, when phrased as decision problems, belong to this class. L is NP-Complete if L NP and for all other L'  NP, L'  L If a problem in NP-complete can be solved in polynomial time then all problems in NP can be solved in polynomial time. If a problem in NP cannot be solved in polynomial time then all problems in NP-complete cannot be solved in polynomial time. Note that an NP-complete problem is one of those hardest problems in NP. L NP Young CS 530 Ad. Algo. D&A NP-Completeness

So, if an NP-complete problem is in P then P = NP if P != NP then all NP-complete problems are in NP-P NP-Complete P NP NP-Complete P NP Young CS 530 Ad. Algo. D&A NP-Completeness

Question : how can we obtain the first NP-complete problem L? Cook Theorem : SATISFIABILITY is NP-Complete. (The first NP-Complete problem) Instance : Given a set of variables, U, and a collection of clauses, C, over U. Question : Is there a truth assignment for U that satisfies all clauses in C? Young CS 530 Ad. Algo. D&A NP-Completeness

C2 = (x1, x2) (x1, ¬ x2) (¬ x1)  not satisfiable Example :   U = {x1, x2} C1 = {(x1, ¬ x2), (¬ x1, x2)} = (x1 OR ¬ x2) AND (¬ x1 OR x2) if x1 = x2 = True  C1 = True C2 = (x1, x2) (x1, ¬ x2) (¬ x1)  not satisfiable “¬ xi ” = “not xi ” “OR” = “logical or ” “AND” = “logical and ” This problem is also called “CNF-Satisfiability” since the expression is in CNF – Conjunctive Normal Form (the product of sums). Young CS 530 Ad. Algo. D&A NP-Completeness

With the Cook Theorem, we have the following property : Lemma : If L1 and L2 belong to NP, L1 is NP-complete, and L1  L2 then L2 is NP-complete. i.e. L1, L2 NP and for all other L'  NP, L'  L1 and L1  L2  L'  L2 Young CS 530 Ad. Algo. D&A NP-Completeness

So now, to prove a problem L to be NP-complete problem , we need to (#1) show L is in NP (#2) select a known NP-complete problem L' construct a polynomial time transformation f from L' to L prove the correctness of f (i.e. L’ has a solution if and only if L has a solution) and that f is a polynomial transformation Young CS 530 Ad. Algo. D&A NP-Completeness

If any of them can be solved in polynomial time, then they all can! P: Decision problems solvable by deterministic algorithms in polynomial time NP: Decision problems solved by non-deterministic algorithms in polynomial time A group of problems, including all of the ones we have discussed (Satisfiability, 0/1 Knapsack, Longest Path, Partition) have an additional important property: If any of them can be solved in polynomial time, then they all can! NP-Complete NP P These problems are called NP-complete problems. Young CS 530 Ad. Algo. D&A NP-Completeness

Some NP-complete problems : SATISFIABILITY 0/1 Knapsack Decision problem PARTITION Two-Processor Non-Preemptive Schedule Length Decision Problem CLIQUE : An undirected graph G=(V, E) and a positive integer J  |V| Question : Does G contain a clique (complete subgraph) of size J or more? Young CS 530 Ad. Algo. D&A NP-Completeness