! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.

Similar documents
! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.

Chapter 8. NP and Computational Intractability. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

8.1 Polynomial-Time Reductions

8.1 Polynomial-Time Reductions

CS 580: Algorithm Design and Analysis

3/7/2018. CS 580: Algorithm Design and Analysis. 8.1 Polynomial-Time Reductions. Chapter 8. NP and Computational Intractability

NP and computational intractability. Kleinberg and Tardos, chapter 8

Chapter 10 Part 1: Reduction

Reductions. Linear Time Reductions. Desiderata. Reduction. Desiderata. Classify problems according to their computational requirements.

10. EXTENDING TRACTABILITY

Copyright 2000, Kevin Wayne 1

10. EXTENDING TRACTABILITY

Unit 8: Coping with NP-Completeness. Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems. Y.-W.

Reductions. designing algorithms establishing lower bounds establishing intractability classifying problems. Bird s-eye view

8 NP-complete problem Hard problems: demo

Example of a Demonstration that a Problem is NP-Complete by reduction from CNF-SAT

NP-complete Reductions

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.

Reductions and Satisfiability

P and NP CISC5835, Algorithms for Big Data CIS, Fordham Univ. Instructor: X. Zhang

Best known solution time is Ω(V!) Check every permutation of vertices to see if there is a graph edge between adjacent vertices

1 Definition of Reduction

NP Completeness. Andreas Klappenecker [partially based on slides by Jennifer Welch]

P and NP CISC4080, Computer Algorithms CIS, Fordham Univ. Instructor: X. Zhang

NP-Completeness. Algorithms

1 Introduction. 1. Prove the problem lies in the class NP. 2. Find an NP-complete problem that reduces to it.

Algorithms. Algorithms 6.5 REDUCTIONS. introduction designing algorithms establishing lower bounds classifying problems intractability

CS 580: Algorithm Design and Analysis

arxiv: v2 [cs.cc] 29 Mar 2010

CMPSCI611: The SUBSET-SUM Problem Lecture 18

NP-Complete Reductions 2

P and NP (Millenium problem)

Computational problems. Lecture 2: Combinatorial search and optimisation problems. Computational problems. Examples. Example

Exercises Computational Complexity

P -vs- NP. NP Problems. P = polynomial time. NP = non-deterministic polynomial time

Lecture 24: More Reductions (1997) Steven Skiena. skiena

The Satisfiability Problem [HMU06,Chp.10b] Satisfiability (SAT) Problem Cook s Theorem: An NP-Complete Problem Restricted SAT: CSAT, k-sat, 3SAT

Complexity Classes and Polynomial-time Reductions

NP-Completeness of 3SAT, 1-IN-3SAT and MAX 2SAT

9.1 Cook-Levin Theorem

Computability Theory

Chapter 8. NP-complete problems

6.006 Introduction to Algorithms. Lecture 25: Complexity Prof. Erik Demaine

Some Hardness Proofs

Homework 4 Solutions

W4231: Analysis of Algorithms

SAT-CNF Is N P-complete

NP versus PSPACE. Frank Vega. To cite this version: HAL Id: hal

(p 300) Theorem 7.27 SAT is in P iff P=NP

W[1]-hardness. Dániel Marx 1. Hungarian Academy of Sciences (MTA SZTAKI) Budapest, Hungary

Where Can We Draw The Line?

W[1]-hardness. Dániel Marx. Recent Advances in Parameterized Complexity Tel Aviv, Israel, December 3, 2017

Questions? You are given the complete graph of Facebook. What questions would you ask? (What questions could we hope to answer?)

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18

2SAT Andreas Klappenecker

Reference Sheet for CO142.2 Discrete Mathematics II

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018

COMP260 Spring 2014 Notes: February 4th

Chapter 9 Graph Algorithms

CS521 \ Notes for the Final Exam

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

Lecture 7: Counting classes

Chapter 9 Graph Algorithms

Parameterized Reductions

Mixed Integer Linear Programming

Chapter 9 Graph Algorithms

Conflict-free Covering

11. APPROXIMATION ALGORITHMS

Lecture 2: NP-Completeness

Algorithms. Algorithms ALGORITHM DESIGN

Lecture 14: Lower Bounds for Tree Resolution

Logic and Computation

Final Exam May 8, 2018

CS483 Design and Analysis of Algorithms

Implementation of a Sudoku Solver Using Reduction to SAT

Hardness of Approximation for the TSP. Michael Lampis LAMSADE Université Paris Dauphine

Lecture 20: Satisfiability Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

Copyright 2000, Kevin Wayne 1

ALGORITHMS EXAMINATION Department of Computer Science New York University December 17, 2007

CSCE750 Analysis of Algorithms Fall 2017 NP-Complete Problems

CS154, Lecture 18: PCPs, Hardness of Approximation, Approximation-Preserving Reductions, Interactive Proofs, Zero-Knowledge, Cold Fusion, Peace in

Graph Theory S 1 I 2 I 1 S 2 I 1 I 2

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Finding a winning strategy in variations of Kayles

Engineering 9867 Advanced Computing Concepts

Chapter 8. NP-complete problems. Search problems. cient algorithms. Exponential search space

Approximation Algorithms

Lecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29

1. [5 points each] True or False. If the question is currently open, write O or Open.

Chapter 8. NP-complete problems

A New Reduction from 3-SAT to Graph K- Colorability for Frequency Assignment Problem

The Resolution Algorithm

Slides on Approximation algorithms, part 2: Basic approximation algorithms

Introduction to Parameterized Complexity

ACO Comprehensive Exam October 12 and 13, Computability, Complexity and Algorithms

Online Appendix: A Stackelberg Game Model for Botnet Data Exfiltration

CSE101: Design and Analysis of Algorithms. Ragesh Jaiswal, CSE, UCSD

Polynomial time approximation algorithms

Solution for Homework set 3

Basic Approximation algorithms

Transcription:

Algorithm Design Patterns and Anti-Patterns 8. NP and Computational Intractability Algorithm design patterns. Ex.! Greed. O(n log n) interval scheduling.! Divide-and-conquer. O(n log n) FFT.! Dynamic programming. O(n 2 ) edit distance.! Duality. O(n 3 ) bipartite matching.! Reductions.! Randomization. Algorithm design anti-patterns.! NP-completeness. O(n k ) algorithm unlikely.! PSPACE-completeness. O(n k ) certification algorithm unlikely.! Undecidability. No algorithm possible. Algorithm Design by Éva Tardos and Jon Kleinberg Copyright 2005 Addison Wesley Slides by Kevin Wayne 2 Classify Problems According to Computational Requirements 8.1. s Q. Which problems will we be able to solve in practice? A working definition. [Cobham 1964, Edmonds 1965, Rabin 1966] Those with polynomial-time algorithms. Yes Shortest path Euler cycle Min cut 2-SAT Planar 4-color Bipartite vertex cover Matching Primality testing Probably no Longest path Hamiltonian cycle Max cut 3-SAT Planar 3-color Vertex cover 3D-matching Factoring Algorithm Design by Éva Tardos and Jon Kleinberg Copyright 2005 Addison Wesley Slides by Kevin Wayne 4

Classify Problems Desiderata. Classify problems according to those that can be solved in polynomial-time and those that cannot. Provably requires exponential-time.! Given a Turing machine, does it halt in at most k steps?! Given a board position in an n-by-n generalization of chess, can black guarantee a win? Desiderata'. Suppose we could solve X in polynomial-time. What else could we solve in polynomial time? don't confuse with reduces from Reduction. Problem X polynomial reduces to problem Y if arbitrary instances of problem X can be solved using:! Polynomial number of standard computational steps, plus! Polynomial number of calls to oracle that solves problem Y. Bad news. Huge number of fundamental problems have defied classification for decades. Notation. X! P Y. computational model supplemented by special piece of hardware that solves instances of Y in a single step Worse news. Many were shown to be "computationally equivalent" and intractable for all practical purposes. Remarks.! We pay for time to write down instances sent to black box " instances of Y must be of polynomial size.! Note: Cook reducibility. in contrast to Karp reductions 5 6 Purpose. Classify problems according to relative difficulty. Design algorithms. If X! P Y and Y can be solved in polynomial-time, then X can also be solved in polynomial time. Basic strategies.! Reduction by simple equivalence.! Reduction from special case to general case.! Reduction by encoding with gadgets. Establish intractability. If X! P Y and X cannot be solved in polynomial-time, then Y cannot be solved in polynomial time. Establish equivalence. If X! P Y and Y! P X, we use notation X # P Y. up to cost of reduction 7 8

Independent Set Vertex Cover INDEPENDENT SET: Given a graph G = (V, E) and an integer k, is there a subset of vertices S ( V such that S ) k, and for each edge at most one of its endpoints is in S? VERTEX COVER: Given a graph G = (V, E) and an integer k, is there a subset of vertices S ( V such that S! k, and for each edge, at least one of its endpoints is in S? Ex. Is there an independent set of size ) 6? Yes. Ex. Is there an independent set of size ) 7? No. Ex. Is there a vertex cover of size! 4? Yes. Ex. Is there a vertex cover of size! 3? No. independent set vertex cover 9 10 Vertex Cover and Independent Set Vertex Cover and Independent Set Claim. VERTEX-COVER # P INDEPENDENT-SET. Pf. We show S is an independent set iff V $ S is a vertex cover. Claim. VERTEX-COVER # P INDEPENDENT-SET. Pf. We show S is an independent set iff V $ S is a vertex cover. "! Let S be any independent set.! Consider an arbitrary edge (u, v).! S independent " u % S or v % S " u & V $ S or v & V $ S.! Thus, V $ S covers (u, v). independent set vertex cover '! Let V $ S be any vertex cover.! Consider two nodes u & S and v & S.! Observe that (u, v) % E since V $ S is a vertex cover.! Thus, no two nodes in S are joined by an edge " S independent set.! 11 12

Set Cover Basic strategies.! Reduction by simple equivalence.! Reduction from special case to general case.! Reduction by encoding with gadgets. SET COVER: Given a set U of elements, a collection S 1, S 2,..., S m of subsets of U, and an integer k, does there exist a collection of! k of these sets whose union is equal to U? Sample application.! m available pieces of software.! Set U of n capabilities that we would like our system to have.! The ith piece of software provides the set S i ( U of capabilities.! Goal: achieve all n capabilities using fewest pieces of software. Ex: U = { 1, 2, 3, 4, 5, 6, 7 } k = 2 S 1 = {3, 7} S 4 = {2, 4} S 2 = {3, 4, 5, 6} S 5 = {5} S 3 = {1} S 6 = {1, 2, 6, 7} 13 14 Vertex Cover Reduces to Set Cover Integer Programming Claim. VERTEX-COVER! P SET-COVER. Pf. Given a VERTEX-COVER instance G = (V, E), k, we construct a set cover instance whose size equals the size of the vertex cover instance. Construction.! Create SET-COVER instance: k = k, U = E, S v = {e & E : e incident to v }! Set-cover of size! k iff vertex cover of size! k.! INTEGER-PROGRAMMING: Given integers a ij and b i, find integers x j that satisfy: n " a ij x j # b i 1$ i $ m j=1 x j # 0 1$ j $ n x j integral 1$ j $ n VERTEX COVER e 7 f k = 2 e 1 a b e 2 e 3 e 6 e d e 4 e 5 c SET COVER U = { 1, 2, 3, 4, 5, 6, 7 } k = 2 S a = {3, 7} S b = {2, 4} S c = {3, 4, 5, 6} S d = {5} S e = {1} S f = {1, 2, 6, 7} Claim. VERTEX-COVER! P INTEGER-PROGRAMMING. # x u $ k u " V x u + x v % 1 (u, v) " E x u % 0 u " V x u integral u " V 15 16

Satisfiability Basic strategies.! Reduction by simple equivalence.! Reduction from special case to general case.! Reduction by encoding with gadgets. Literal: A Boolean variable or its negation. Clause: A disjunction of literals. Conjunctive normal form: A propositional formula * that is the conjunction of clauses. x i or x i C j = " x 2 " x 3 " = C 1 # C 2 # C 3 # C 4 SAT: Given CNF formula *, does it have a satisfying truth assignment? 3-SAT: SAT where each clause contains exactly 3 literals. each corresponding to different variables Ex: ( " x 2 " x 3 ) # ( " x 2 " x 3 ) # ( x 2 " x 3 ) # ( " x 2 " x 3 ) Yes: = true, x 2 = true x 3 = false. 17 18 3 Satisfiability Reduces to Independent Set 3 Satisfiability Reduces to Independent Set Claim. 3-SAT! P INDEPENDENT-SET. Pf. Given an instance * of 3-SAT, we construct an instance (G, k) of INDEPENDENT-SET that has an independent set of size k iff * is satisfiable. Construction.! G contains 3 vertices for each clause, one for each literal.! Connect 3 literals in a clause in a triangle.! Connect literal to each of its negations. Claim. G contains independent set of size k = * iff * is satisfiable. Pf. " Let S be independent set of size k.! S must contain exactly one vertex in each triangle.! Set these literals to true. and any other variables in a consistent way! Truth assignment is consistent and all clauses are satisfied. Pf ' Given satisfying assignment, select one true literal from each triangle. This is an independent set of size k.! x 2 x 2 G G x 2 x 3 x 3 x 2 x 4 x 2 x 3 x 3 x 2 x 4 k = 3 " = ( # x 2 # x 3 ) $ ( # x 2 # x 3 ) $ ( # x 2 # x 4 ) k = 3 " = ( # x 2 # x 3 ) $ ( # x 2 # x 3 ) $ ( # x 2 # x 4 ) 19 20

Review Self-Reducibility Basic reduction strategies.! Simple equivalence: INDEPENDENT-SET # P VERTEX-COVER.! Special case to general case: VERTEX-COVER! P SET-COVER.! Encoding with gadgets: 3-SAT! P INDEPENDENT-SET. Transitivity. If X! P Y and Y! P Z, then X! P Z. Pf idea. Compose the two algorithms. Ex: 3-SAT! P INDEPENDENT-SET! P VERTEX-COVER! P SET-COVER. Decision problem. Does there exist a vertex cover of size! k? Search problem. Find vertex cover of minimum cardinality. Self-reducibility. Search problem! P decision version.! Applies to all (NP-complete) problems in this chapter.! Justifies our focus on decision problems. Ex: to find min cardinality vertex cover.! (Binary) search for cardinality k* of min vertex cover.! Find a vertex v such that G $ { v } has a vertex cover of size! k* - 1. any vertex in any min vertex cover will have this property! Include v in the vertex cover.! Recursively find a min vertex cover in G $ { v }. delete v and all incident edges 21 22