CS 5114: Theory of Algorithms

Similar documents
CS 5114: Theory of Algorithms. Tractable Problems. Tractable Problems (cont) Decision Problems. Clifford A. Shaffer. Spring 2014

Computational Complexity and Intractability: An Introduction to the Theory of NP. Chapter 9

NP Completeness and Approximation Algorithms

NP Complete Problems. COMP 215 Lecture 20

Essential facts about NP-completeness:

Easy Problems vs. Hard Problems. CSE 421 Introduction to Algorithms Winter Is P a good definition of efficient? The class P

Introduction to Complexity Theory

1. Introduction Recap

Summer School on Introduction to Algorithms and Optimization Techniques July 4-12, 2017 Organized by ACMU, ISI and IEEE CEDA.

CSE 3500 Algorithms and Complexity Fall 2016 Lecture 25: November 29, 2016

1.1 P, NP, and NP-complete

Correctness of Dijkstra s algorithm

SAT, NP, NP-Completeness

Chapter 2. Reductions and NP. 2.1 Reductions Continued The Satisfiability Problem (SAT) SAT 3SAT. CS 573: Algorithms, Fall 2013 August 29, 2013

More on NP and Reductions

Design and Analysis of Algorithms

Theory of Computation CS3102 Spring 2014 A tale of computers, math, problem solving, life, love and tragic death

Automata Theory CS Complexity Theory I: Polynomial Time

NP-Completeness. Andreas Klappenecker. [based on slides by Prof. Welch]

Limitations of Algorithm Power

NP-Completeness. Subhash Suri. May 15, 2018

NP-Completeness and Boolean Satisfiability

NP-Completeness. f(n) \ n n sec sec sec. n sec 24.3 sec 5.2 mins. 2 n sec 17.9 mins 35.

NP-COMPLETE PROBLEMS. 1. Characterizing NP. Proof

NP and NP Completeness

NP Completeness. CS 374: Algorithms & Models of Computation, Spring Lecture 23. November 19, 2015

P P P NP-Hard: L is NP-hard if for all L NP, L L. Thus, if we could solve L in polynomial. Cook's Theorem and Reductions

1 Computational problems

Algorithms. NP -Complete Problems. Dong Kyue Kim Hanyang University

Announcements. Friday Four Square! Problem Set 8 due right now. Problem Set 9 out, due next Friday at 2:15PM. Did you lose a phone in my office?

Introduction to Computational Complexity

CS Lecture 29 P, NP, and NP-Completeness. k ) for all k. Fall The class P. The class NP

NP-Completeness Part II

CSE 421 NP-Completeness

Tractability. Some problems are intractable: as they grow large, we are unable to solve them in reasonable time What constitutes reasonable time?

P is the class of problems for which there are algorithms that solve the problem in time O(n k ) for some constant k.

CS 583: Algorithms. NP Completeness Ch 34. Intractability

NP-Completeness. Dr. B. S. Panda Professor, Department of Mathematics IIT Delhi, Hauz Khas, ND-16

NP-Hardness reductions

UC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 22 Lecturer: David Wagner April 24, Notes 22 for CS 170

BBM402-Lecture 11: The Class NP

NP-Complete Reductions 1

Complexity, P and NP

There are two types of problems:

NP-Completeness Part II

Intro to Theory of Computation

Computability and Complexity Theory: An Introduction

Instructor N.Sadagopan Scribe: P.Renjith. Lecture- Complexity Class- P and NP

CS311 Computational Structures. NP-completeness. Lecture 18. Andrew P. Black Andrew Tolmach. Thursday, 2 December 2010

Show that the following problems are NP-complete

NP-Complete Reductions 2

Reductions. Reduction. Linear Time Reduction: Examples. Linear Time Reductions

U.C. Berkeley CS278: Computational Complexity Professor Luca Trevisan August 30, Notes for Lecture 1

Algorithms and Complexity Theory. Chapter 8: Introduction to Complexity. Computer Science - Durban - September 2005

More NP-Complete Problems

COP 4531 Complexity & Analysis of Data Structures & Algorithms

Introduction. Pvs.NPExample

Theory of Computation Chapter 9

Agenda. What is a complexity class? What are the important complexity classes? How do you prove an algorithm is in a certain class

P, NP, NP-Complete, and NPhard

Lecture 19: Finish NP-Completeness, conp and Friends

DAA 8 TH UNIT DETAILS

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler

NP Completeness and Approximation Algorithms

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181.

Part V. Intractable Problems

NP-Completeness. NP-Completeness 1

Polynomial-time Reductions

CS21 Decidability and Tractability

CSI 4105 MIDTERM SOLUTION

Algebraic Dynamic Programming. Solving Satisfiability with ADP

Algorithm Design and Analysis

NP-Completeness Part II

A difficult problem. ! Given: A set of N cities and $M for gas. Problem: Does a traveling salesperson have enough $ for gas to visit all the cities?

Intractability. A difficult problem. Exponential Growth. A Reasonable Question about Algorithms !!!!!!!!!! Traveling salesperson problem (TSP)

CS154, Lecture 15: Cook-Levin Theorem SAT, 3SAT

Lecture Notes 4. Issued 8 March 2018

CS 350 Algorithms and Complexity

ECS122A Handout on NP-Completeness March 12, 2018

INTRO TO COMPUTATIONAL COMPLEXITY

Non-Deterministic Time

1 Non-deterministic Turing Machine

Recap from Last Time

CSCI3390-Second Test with Solutions

The Class NP. NP is the problems that can be solved in polynomial time by a nondeterministic machine.

Automata Theory CS S-18 Complexity Theory II: Class NP

CS 350 Algorithms and Complexity

6.045: Automata, Computability, and Complexity (GITCS) Class 15 Nancy Lynch

Computational Complexity. IE 496 Lecture 6. Dr. Ted Ralphs

Admin NP-COMPLETE PROBLEMS. Run-time analysis. Tractable vs. intractable problems 5/2/13. What is a tractable problem?

Turing Machines and Time Complexity

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

Lecture 18: P & NP. Revised, May 1, CLRS, pp

CSE 548: (Design and) Analysis of Algorithms

NP-completeness. Chapter 34. Sergey Bereg

CS21 Decidability and Tractability

Computational Complexity

Notes for Lecture 21

Transcription:

CS 5114: Theory of Algorithms Clifford A. Shaffer Department of Computer Science Virginia Tech Blacksburg, Virginia Spring 2014 Copyright c 2014 by Clifford A. Shaffer CS 5114: Theory of Algorithms Spring 2014 1 / 1

Tractable Problems We would like some convention for distinguishing tractable from intractable problems. A problem is said to be tractable if an algorithm exists to solve it with polynomial time complexity: O(p(n)). It is said to be intractable if the best known algorithm requires exponential time. Examples: Sorting: O(n 2 ) Convex Hull: O(n 2 ) Single source shortest path: O(n 2 ) All pairs shortest path: O(n 3 ) Matrix multiplication: O(n 3 ) CS 5114: Theory of Algorithms Spring 2014 2 / 1

Tractable Problems (cont) The technique we will use to classify one group of algorithms is based on two concepts: 1 A special kind of reduction. 2 Nondeterminism. CS 5114: Theory of Algorithms Spring 2014 3 / 1

Decision Problems (I, S) such that S(X) is always either yes or no. Usually formulated as a question. Example: Instance: A weighted graph G = (V, E), two vertices s and t, and an integer K. Question: Is there a path from s to t of length K? In this example, the answer is yes. CS 5114: Theory of Algorithms Spring 2014 4 / 1

Decision Problems (cont) Can also be formulated as a language recognition problem: Let L be the subset of I consisting of instances whose answer is yes. Can we recognize L? The class of tractable problems P is the class of languages or decision problems recognizable in polynomial time. CS 5114: Theory of Algorithms Spring 2014 5 / 1

Polynomial Reducibility Reduction of one language to another language. Let L 1 I 1 and L 2 I 2 be languages. L 1 is polynomially reducible to L 2 if there exists a transformation f : I 1 I 2, computable in polynomial time, such that f (x) L 2 if and only if x L 1. We write: L 1 p L 2 or L 1 L 2. CS 5114: Theory of Algorithms Spring 2014 6 / 1

Examples CLIQUE p INDEPENDENT SET. An instance I of CLIQUE is a graph G = (V, E) and an integer K. The instance I = f (I) of INDEPENDENT SET is the graph G = (V, E ) and the integer K, were an edge (u, v) E iff (u, v) / E. f is computable in polynomial time. CS 5114: Theory of Algorithms Spring 2014 7 / 1

Transformation Example G has a clique of size K iff G has an independent set of size K. Therefore, CLIQUE p INDEPENDENT SET. IMPORTANT WARNING: The reduction does not solve either INDEPENDENT SET or CLIQUE, it merely transforms one into the other. CS 5114: Theory of Algorithms Spring 2014 8 / 1

Nondeterminism Nondeterminism allows an algorithm to make an arbitrary choice among a finite number of possibilities. Implemented by the nd-choice primitive: nd-choice(ch 1, ch 2,..., ch j ) returns one of the choices ch 1, ch 2,... arbitrarily. Nondeterministic algorithms can be thought of as correctly guessing (choosing nondeterministically) a solution. CS 5114: Theory of Algorithms Spring 2014 9 / 1

Nondeterminism Nondeterminism allows an algorithm to make an arbitrary choice among a finite number of possibilities. Implemented by the nd-choice primitive: nd-choice(ch 1, ch 2,..., ch j ) returns one of the choices ch 1, ch 2,... arbitrarily. Nondeterministic algorithms can be thought of as correctly guessing (choosing nondeterministically) a solution. Alternatively, nondeterminsitic algorithms can be thought of as running on super-parallel machines that make all choices simultaneously and then reports the right solution. CS 5114: Theory of Algorithms Spring 2014 9 / 1

Nondeterministic CLIQUE Algorithm procedure nd-clique(graph G, int K) { VertexSet S = EMPTY; int size = 0; for (v in G.V) if (nd-choice(yes, NO) == YES) then { S = union(s, v); size = size + 1; } if (size < K) then REJECT; // S is too small for (u in S) for (v in S) if ((u <> v) && ((u, v) not in E)) REJECT; // S is missing an edge ACCEPT; } CS 5114: Theory of Algorithms Spring 2014 10 / 1

Nondeterministic Acceptance (G, K ) is in the language CLIQUE iff there exists a sequence of nd-choice guesses that causes nd-clique to accept. Definition of acceptance by a nondeterministic algorithm: An instance is accepted iff there exists a sequence of nondeterministic choices that causes the algorithm to accept. CS 5114: Theory of Algorithms Spring 2014 11 / 1

Nondeterministic Acceptance (G, K ) is in the language CLIQUE iff there exists a sequence of nd-choice guesses that causes nd-clique to accept. Definition of acceptance by a nondeterministic algorithm: An instance is accepted iff there exists a sequence of nondeterministic choices that causes the algorithm to accept. An unrealistic model of computation. There are an exponential number of possible choices, but only one must accept for the instance to be accepted. CS 5114: Theory of Algorithms Spring 2014 11 / 1

Nondeterministic Acceptance (G, K ) is in the language CLIQUE iff there exists a sequence of nd-choice guesses that causes nd-clique to accept. Definition of acceptance by a nondeterministic algorithm: An instance is accepted iff there exists a sequence of nondeterministic choices that causes the algorithm to accept. An unrealistic model of computation. There are an exponential number of possible choices, but only one must accept for the instance to be accepted. Nondeterminism is a useful concept It provides insight into the nature of certain hard problems. CS 5114: Theory of Algorithms Spring 2014 11 / 1

Class N P The class of languages accepted by a nondeterministic algorithm in polynomial time is called N P. There are an exponential number of different executions of nd-clique on a single instance, but any one execution requires only polynomial time in the size of that instance. Time complexity of nondeterministic algorithm is greatest amount of time required by any one of its executions. CS 5114: Theory of Algorithms Spring 2014 12 / 1

Class N P(cont) Alternative Interpretation: N P is the class of algorithms that never mind how we got the answer can check if the answer is correct in polynomial time. If you cannot verify an answer in polynomial time, you cannot hope to find the right answer in polynomial time! CS 5114: Theory of Algorithms Spring 2014 13 / 1

How to Get Famous Clearly, P N P. Extra Credit Problem: Prove or disprove: P = N P. This is important because there are many natural decision problems in N P for which no P (tractable) algorithm is known. CS 5114: Theory of Algorithms Spring 2014 14 / 1

N P-completeness A theory based on identifying problems that are as hard as any problems in N P. The next best thing to knowing whether P= N P or not. A decision problem A is N P-hard if every problem in N P is polynomially reducible to A, that is, for all B N P, B p A. A decision problem A is N P-complete if A N P and A is N P-hard. CS 5114: Theory of Algorithms Spring 2014 15 / 1

Satisfiability Let E be a Boolean expression over variables x 1, x 2,, x n in conjunctive normal form (CNF), that is, an AND of ORs. E = (x 5 + x 7 + x 8 + x 10 ) (x 2 + x 3 ) (x 1 + x 3 + x 6 ). A variable or its negation is called a literal. Each sum is called a clause. SATISFIABILITY (SAT): Instance: A Boolean expression E over variables x 1, x 2,, x n in CNF. Question: Is E satisfiable? CS 5114: Theory of Algorithms Spring 2014 16 / 1

Satisfiability Let E be a Boolean expression over variables x 1, x 2,, x n in conjunctive normal form (CNF), that is, an AND of ORs. E = (x 5 + x 7 + x 8 + x 10 ) (x 2 + x 3 ) (x 1 + x 3 + x 6 ). A variable or its negation is called a literal. Each sum is called a clause. SATISFIABILITY (SAT): Instance: A Boolean expression E over variables x 1, x 2,, x n in CNF. Question: Is E satisfiable? Cook s Theorem: SAT is N P-complete. CS 5114: Theory of Algorithms Spring 2014 16 / 1

Proof Sketch SAT N P: A non-deterministic algorithm guesses a truth assignment for x 1, x 2,, x n and checks whether E is true in polynomial time. It accepts iff there is a satisfying assignment for E. CS 5114: Theory of Algorithms Spring 2014 17 / 1

Proof Sketch SAT N P: A non-deterministic algorithm guesses a truth assignment for x 1, x 2,, x n and checks whether E is true in polynomial time. It accepts iff there is a satisfying assignment for E. SAT is N P-hard: Start with an arbitrary problem B N P. We know there is a polynomial-time, nondeterministic algorithm to accept B. Cook showed how to transform an instance X of B into a Boolean expression E that is satisfiable if the algorithm for B accepts X. CS 5114: Theory of Algorithms Spring 2014 17 / 1

Implications (1) Since SAT is N P-complete, we have not defined an empty concept. CS 5114: Theory of Algorithms Spring 2014 18 / 1

Implications (1) Since SAT is N P-complete, we have not defined an empty concept. (2) If SAT P, then P= N P. CS 5114: Theory of Algorithms Spring 2014 18 / 1

Implications (1) Since SAT is N P-complete, we have not defined an empty concept. (2) If SAT P, then P= N P. (3) If P= N P, then SAT P. CS 5114: Theory of Algorithms Spring 2014 18 / 1

Implications (1) Since SAT is N P-complete, we have not defined an empty concept. (2) If SAT P, then P= N P. (3) If P= N P, then SAT P. (4) If A N P and B is N P-complete, then B p A implies A is N P-complete. CS 5114: Theory of Algorithms Spring 2014 18 / 1

Implications (1) Since SAT is N P-complete, we have not defined an empty concept. (2) If SAT P, then P= N P. (3) If P= N P, then SAT P. (4) If A N P and B is N P-complete, then B p A implies A is N P-complete. Proof: Let C N P. Then C p B since B is N P-complete. Since B p A and p is transitive, C p A. Therefore, A is N P-hard and, finally, N P-complete. CS 5114: Theory of Algorithms Spring 2014 18 / 1

Implications (cont) (5) This gives a simple two-part strategy for showing a decision problem A is N P-complete. (a) Show A N P. (b) Pick an N P-complete problem B and show B p A. CS 5114: Theory of Algorithms Spring 2014 19 / 1

N P-completeness Proof Template To show that decision problem B is N P-complete: 1 B N P Give a polynomial time, non-deterministic algorithm that accepts B. 1 Given an instance X of B, guess evidence Y. 2 Check whether Y is evidence that X B. If so, accept X. CS 5114: Theory of Algorithms Spring 2014 20 / 1

N P-completeness Proof Template To show that decision problem B is N P-complete: 1 B N P Give a polynomial time, non-deterministic algorithm that accepts B. 1 Given an instance X of B, guess evidence Y. 2 Check whether Y is evidence that X B. If so, accept X. 2 B is N P-hard. Choose a known N P-complete problem, A. Describe a polynomial-time transformation T of an arbitrary instance of A to a [not necessarily arbitrary] instance of B. Show that X A if and only if T (X) B. CS 5114: Theory of Algorithms Spring 2014 20 / 1

3-SATISFIABILITY (3SAT) Instance: A Boolean expression E in CNF such that each clause contains exactly 3 literals. Question: Is there a satisfying assignment for E? A special case of SAT. One might hope that 3SAT is easier than SAT. CS 5114: Theory of Algorithms Spring 2014 21 / 1

3SAT is N P-complete (1) 3SAT N P. procedure nd-3sat(e) { for (i = 1 to n) x[i] = nd-choice(true, FALSE); Evaluate E for the guessed truth assignment. if (E evaluates to TRUE) ACCEPT; else REJECT; } nd-3sat is a polynomial-time nondeterministic algorithm that accepts 3SAT. CS 5114: Theory of Algorithms Spring 2014 22 / 1

Proving 3SAT N P-hard 1 Choose SAT to be the known N P-complete problem. We need to show that SAT p 3SAT. 2 Let E = C 1 C 2 C k be any instance of SAT. Strategy: Replace any clause C i that does not have exactly 3 literals with two or more clauses having exactly 3 literals. Let C i = y 1 + y 2 + + y j where y 1,, y j are literals. (a) j = 1 Replace (y 1 ) with (y 1 + v + w) (y 1 + v + w) (y 1 + v + w) (y 1 + v + w) where v and w are new variables. CS 5114: Theory of Algorithms Spring 2014 23 / 1

Proving 3SAT N P-hard (cont) (b) j = 2 Replace (y 1 + y 2 ) with (y 1 + y 2 + z) (y 1 + y 2 + z) where z is a new variable. (c) j > 3 Relace (y 1 + y 2 + + y j ) with (y 1 + y 2 + z 1 ) (y 3 + z 1 + z 2 ) (y 4 + z 2 + z 3 ) (y j 2 + z j 4 + z j 3 ) (y j 1 + y j + z j 3 ) where z 1, z 2,, z j 3 are new variables. After replacements made for each C i, a Boolean expression E results that is an instance of 3SAT. The replacement clearly can be done by a polynomial-time deterministic algorithm. CS 5114: Theory of Algorithms Spring 2014 24 / 1

Proving 3SAT N P-hard (cont) (3) Show E is satisfiable iff E is satisfiable. Assume E has a satisfying truth assignment. Then that extends to a satisfying truth assignment for cases (a) and (b). In case (c), assume y m is assigned true. Then assign z t, t m 2, true and z k, t m 1, false. Then all the clauses in case (c) are satisfied. CS 5114: Theory of Algorithms Spring 2014 25 / 1

Proving 3SAT N P-hard (cont) Assume E has a satisfying assignment. By restriction, we have truth assignment for E. (a) y 1 is necessarily true. (b) y 1 + y 2 is necessarily true. (c) Proof by contradiction: If y1, y 2,, y j are all false, then z 1, z 2,, z j 3 are all true. But then (yj 1 + y j 2 + z j 3 ) is false, a contradiction. We conclude SAT 3SAT and 3SAT is N P-complete. CS 5114: Theory of Algorithms Spring 2014 26 / 1

Tree of Reductions GJ CLIQUE done HAM_CIR will do IND_SET Manber VERTEX COVER SAT Manber Manber done 3SAT 3COLOR DOMINATING SET Reductions go down the tree. GJ X3C GJ 3DM GJ PARITION will do KNAPSACK Proofs that each problem N P are straightforward. CS 5114: Theory of Algorithms Spring 2014 27 / 1

Perspective The reduction tree gives us a collection of 12 diverse N P-complete problems. The complexity of all these problems depends on the complexity of any one: If any N P-complete problem is tractable, then they all are. This collection is a good place to start when attempting to show a decision problem is N P-complete. Observation: If we find a problem is N P-complete, then we should do something other than try to find a P-time algorithm. CS 5114: Theory of Algorithms Spring 2014 28 / 1

SAT p CLIQUE (1) Easy to show CLIQUE in N P. (2) An instance of SAT is a Boolean expression where B = C 1 C 2 C m, C i = y[i, 1] + y[i, 2] + + y[i, k i ]. Transform this to an instance of CLIQUE G = (V, E) and K. V = {v[i, j] 1 i m, 1 j k i } Two vertices v[i 1, j 1 ] and v[i 2, j 2 ] are adjacent in G if i 1 i 2 AND EITHER y[i 1, j 1 ] and y[i 2, j 2 ] are the same literal OR y[i 1, j 1 ] and y[i 2, j 2 ] have different underlying variables. K = m. CS 5114: Theory of Algorithms Spring 2014 29 / 1

SAT p CLIQUE (cont) Example: B = (x + y + (z)) (x + y + z) (y + z). K = 3. (3) B is satisfiable iff G has clique of size K. B is satisfiable implies there is a truth assignment such that y[i, j i ] is true for each i. But then v[i, j i ] must be in a clique of size K = m. If G has a clique of size K, then the clique must have size exactly K and there is one vertex v[i, j i ] in the clique for each i. There is a truth assignment making each y[i, j i ] true. That truth assignment satisfies B. We conclude that CLIQUE is N P-hard, therefore N P-complete. CS 5114: Theory of Algorithms Spring 2014 30 / 1

Co-N P Note the asymmetry in the definition of N P. The non-determinism can identify a clique, and you can verify it. But what if the correct answer is NO? How do you verify that? Co-N P: The complements of problems in N P. Is a boolean expression always false? Is there no clique of size k? It seems unlikely that N P= co-n P. CS 5114: Theory of Algorithms Spring 2014 31 / 1

Is N P-complete = N P? It has been proved that if P N P, then N P-complete N P. The following problems are not known to be in P or N P, but seem to be of a type that makes them unlikely to be in N P. GRAPH ISOMORPHISM: Are two graphs isomorphic? COMPOSITE NUMBERS: For positive integer K, are there integers m, n > 1 such that K = mn? LINEAR PROGRAMMING CS 5114: Theory of Algorithms Spring 2014 32 / 1

PARTITION p KNAPSACK PARTITION is a special case of KNAPSACK in which assuming s(a) is even. K = 1 s(a) 2 a A Assuming PARTITION is N P-complete, KNAPSACK is N P-complete. CS 5114: Theory of Algorithms Spring 2014 33 / 1

Practical Exponential Problems What about our O(KN) dynamic prog algorithm? CS 5114: Theory of Algorithms Spring 2014 34 / 1

Practical Exponential Problems What about our O(KN) dynamic prog algorithm? Input size for KNAPSACK is O(N log K ) Thus O(KN) is exponential in N log K. The dynamic programming algorithm counts through numbers 1,, K. Takes exponential time when measured by number of bits to represent K. CS 5114: Theory of Algorithms Spring 2014 34 / 1

Practical Exponential Problems What about our O(KN) dynamic prog algorithm? Input size for KNAPSACK is O(N log K ) Thus O(KN) is exponential in N log K. The dynamic programming algorithm counts through numbers 1,, K. Takes exponential time when measured by number of bits to represent K. If K is small (K = O(p(N))), then algorithm has complexity polynomial in N and is truly polynomial in input size. An algorithm that is polynomial-time if the numbers IN the input are small (as opposed to number OF inputs) is called a pseudo-polynomial time algorithm. CS 5114: Theory of Algorithms Spring 2014 34 / 1

Practical Problems (cont) Lesson: While KNAPSACK is N P-complete, it is often not that hard. Many N P-complete problems have no pseudopolynomial time algorithm unless P= N P. CS 5114: Theory of Algorithms Spring 2014 35 / 1