Today s Outline. CS 362, Lecture 24. The Reduction. Hamiltonian Cycle. Reduction Wrapup Approximation algorithms for NP-Hard Problems

Similar documents
CS 561, Lecture 12. Jared Saia University of New Mexico

Today s Outline. CS 362, Lecture 23. Classes of Problems. NP-Hard. Review NP-Hardness and three more reductions. Jared Saia University of New Mexico

Classes of Problems. CS 461, Lecture 23. NP-Hard. Today s Outline. We can characterize many problems into three classes:

July 18, Approximation Algorithms (Travelling Salesman Problem)

VIII. NP-completeness

Decision Problems TSP. Instance: A complete graph G with non-negative edge costs, and an integer

SAT, Coloring, Hamiltonian Cycle, TSP

NP-Complete Problems and Approximation Algorithms

ECS122A Handout on NP-Completeness March 12, 2018

Algorithms, Lecture 3 on NP : Nondeterminis7c Polynomial Time

Algorithms Design & Analysis. Approximation Algorithm

NP and Computational Intractability

Polynomial-Time Reductions

CS 320, Fall Dr. Geri Georg, Instructor 320 NP 1

CS 583: Algorithms. NP Completeness Ch 34. Intractability

Graduate Algorithms CS F-21 NP & Approximation Algorithms

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

ABHELSINKI UNIVERSITY OF TECHNOLOGY

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

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

Polynomial-time reductions. We have seen several reductions:

NP-Complete Reductions 2

CS21 Decidability and Tractability

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

NP-Completeness. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

1. Introduction Recap

NP-completeness. Chapter 34. Sergey Bereg

Design and Analysis of Algorithms

Algorithms: COMP3121/3821/9101/9801

Show that the following problems are NP-complete

CS/COE

NP-complete problems. CSE 101: Design and Analysis of Algorithms Lecture 20

1.1 P, NP, and NP-complete

NP Complete Problems. COMP 215 Lecture 20

Lecture 4: NP and computational intractability

NP Completeness and Approximation Algorithms

Algorithms and Theory of Computation. Lecture 22: NP-Completeness (2)

Approximation Algorithms for Re-optimization

CSCI3390-Lecture 17: A sampler of NP-complete problems

Chapter 34: NP-Completeness

Combinatorial Optimization

A New Approximation Algorithm for the Asymmetric TSP with Triangle Inequality By Markus Bläser

More NP-Complete Problems

Tractable & Intractable Problems

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

Hamiltonian Cycle. Hamiltonian Cycle

Topics in Complexity Theory

Introduction to Computational Complexity

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

Automata Theory CS Complexity Theory I: Polynomial Time

Limitations of Algorithm Power

NP-Complete Problems. More reductions

8. INTRACTABILITY I. Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley. Last updated on 2/6/18 2:16 AM

Some Algebra Problems (Algorithmic) CSE 417 Introduction to Algorithms Winter Some Problems. A Brief History of Ideas

Polynomial-time Reductions

Algorithm Design and Analysis

Lecturer: Shuchi Chawla Topic: Inapproximability Date: 4/27/2007

CS 301: Complexity of Algorithms (Term I 2008) Alex Tiskin Harald Räcke. Hamiltonian Cycle. 8.5 Sequencing Problems. Directed Hamiltonian Cycle

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

8.5 Sequencing Problems

Algorithm Design and Analysis

NP Completeness and Approximation Algorithms

COP 4531 Complexity & Analysis of Data Structures & Algorithms

Bounds on the Traveling Salesman Problem

Graph Theory and Optimization Computational Complexity (in brief)

NP-Completeness. ch34 Hewett. Problem. Tractable Intractable Non-computable computationally infeasible super poly-time alg. sol. E.g.

DAA Unit IV Complexity Theory Overview

Computer Science 385 Analysis of Algorithms Siena College Spring Topic Notes: Limitations of Algorithms

1 Primals and Duals: Zero Sum Games

Lecture 13, Fall 04/05

Chapter 11. Approximation Algorithms. Slides by Kevin Wayne Pearson-Addison Wesley. All rights reserved.

NP-COMPLETE PROBLEMS. 1. Characterizing NP. Proof

1 More finite deterministic automata

NP-Complete Reductions 1

NP-problems continued

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

1. (a) Explain the asymptotic notations used in algorithm analysis. (b) Prove that f(n)=0(h(n)) where f(n)=0(g(n)) and g(n)=0(h(n)).

Limits to Approximability: When Algorithms Won't Help You. Note: Contents of today s lecture won t be on the exam

Today: NP-Completeness (con t.)

Computational Intractability 2010/4/15. Lecture 2

from notes written mostly by Dr. Matt Stallmann: All Rights Reserved

Correctness of Dijkstra s algorithm

Notes for Lecture 21

Algorithm Design and Analysis

Hamiltonian Graphs Graphs

Lecture 24 : Even more reductions

Lecture 18: More NP-Complete Problems

Intro to Theory of Computation

Preliminaries. Graphs. E : set of edges (arcs) (Undirected) Graph : (i, j) = (j, i) (edges) V = {1, 2, 3, 4, 5}, E = {(1, 3), (3, 2), (2, 4)}

Some Algebra Problems (Algorithmic) CSE 417 Introduction to Algorithms Winter Some Problems. A Brief History of Ideas

NP-Hardness reductions

Data Structures in Java

Discrete Wiskunde II. Lecture 5: Shortest Paths & Spanning Trees

NP and Computational Intractability

Data Structures and Algorithms

Algorithm Design Strategies V

NP-complete Problems

Chapter 3: Proving NP-completeness Results

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

Transcription:

Today s Outline CS 362, Lecture 24 Jared Saia University of New Mexico Reduction Wrapup Approximation algorithms for NP-Hard Problems 1 Hamiltonian Cycle The Reduction A Hamiltonian Cycle in a graph is a cycle that visits every vertex exactly once (note that this is very different from an Eulerian cycle which visits every edge exactly once) The Hamiltonian Cycle problem is to determine if a given graph G has a Hamiltonian Cycle We will show that this problem is NP-Hard by a reduction from the vertex cover problem. To do the reduction, we need to show that we can solve Vertex Cover in polynomial time if we have a polynomial time solution to Hamiltonian Cycle. Given a graph G and an integer k, we will create another graph G such that G has a Hamiltonian cycle iff G has a vertex cover of size k As for the last reduction, our transformation will consist of putting together several gadgets 2 3

Edge Gadget and Cover Vertices Edge Edge Gadget Gadget and and Cover Cover Vertices Vertices Cover Vertices Cover Edge Vertices Gadget For each edge (u, v) in G, we have an edge gadget in For Foreach eachedge edge (u, (u, v) v) in in G, G, we have an an edge edge gadget gadgetining G G consisting of twelve vertices and fourteen edges, as shown consistingof of twelve vertices and fourteen edges, as asshown shown below below below (u,v,1) (u,v,2) (u,v,3) (u,v,4) (u,v,5) (u,v,6) (u,v,1) (u,v,2) (u,v,3) (u,v,4) (u,v,5) (u,v,6) (v,u,1) (v,u,1) (v,u,2) (v,u,2) (v,u,3) (v,u,3) (v,u,4) (v,u,4) (v,u,5) (v,u,5) (v,u,6) An edge gadget for (u, v) and the only possible Hamiltonian paths An An edge gadget for (u, v) and the only possible Hamiltonian paths through it. throughit. it. The four corner vertices (u, v, 1), (u, v, 6), (v, u, 1), and (v, u, 6) each G also G contains have an edge leaving the gadget A Hamiltonian also contains k cover cyclek vertices, can cover only vertices, simply pass numbered through simplyan numbered 1 through edge gadget 1 through k in one k of the three ways shown in the figure These paths through the edge gadget will correspond to one or both of the vertices u and v being in the vertex cover. 25 4 25 27 5 27 Cover Vertices Vertex Chains G also contains k cover vertices, simply numbered 1 through k For each vertex u in G, we string together all the edge gadgets for edges (u, v) into a single vertex chain and then connect the ends of the chain to all the cover vertices Specifically, suppose u has d neighbors v 1, v 2,..., v d. Then G has the following edges: d 1 edges between (u, v i, 6) and (u, v i+1, 1) (for all i between 1 and d 1) k edges between the cover vertices and (u, v 1, 1) k edges between the cover vertices and (u, v d, 6) 6 7

The Reduction The Reduction The Reduction It s not hard to prove that if {v 1, v 2,..., v k } is a vertex cover of G, then G has a Hamiltonian cycle To get this Hamiltonian cycle, we start at cover vertex 1, traverse through the vertex chain for v 1, then visit cover vertex 2, then traverse the vertex chain for v 2 and so forth, until we eventually return to cover vertex 1 Conversely, The transformation one can from proveg that to G any takeshamiltonian at most O( V cycle 2 ) time, in G alternates so the Hamiltonian between cover cyclevertices problem and is NP-Hard vertex chains, and that the Moreover vertex chains we can correspond easily verify to a Hamiltonian the k vertices cycleinin alinear vertex cover time, ofthus G Hamiltonian cycle is also in NP Thus Hamiltonian Cycle is NP-Complete The transformation from G to G takes at most O( V 2 ) time, so the Hamiltonian cycle problem is NP-Hard Moreover we can easily verify a Hamiltonian cycle in linear time, thus Hamiltonian cycle is also in NP Thus Hamiltonian Cycle is NP-Complete Thus, G has a vertex cover of size k iff G has a Hamiltonian cycle 30 8 9 Example Example The Reduction (u,v) 1 (v,u) u w v x (u,w) (w,u) (v,w) (w,v) (w,x) (v,x) (x,v) graph G = (V, E), k O( V 2 ) graph G Hamiltonian Cycle True or False O(1) True or False 2 (x,w) The The original original graph graphg Gwith withvertex cover {v, w}, andthe the transformed graph graph G G with witha acorresponding Hamiltonian cycle cycle (bold (boldedges). edges). Vertex chains are colored to match their corresponding vertices. Vertex chains are colored to match their corresponding vertices. 31 10 11

Traveling Sales Person NP-Hard Games A problem closely related to Hamiltonian cycle is the famous Traveling Salesperson Problem(TSP) The TSP problem is: Given a weighted graph G, find the shortest cycle that visits every vertex. Finding the shortest cycle is obviously harder than determining if a cycle exists at all, so since Hamiltonian Cycle is NP-hard, TSP is also NP-hard! In 1999, Richard Kaye proved that the solitaire game Minesweeper is NP-Hard, using a reduction from Circuit Satifiability. Also in the last few years, Eric Demaine, et. al., proved that the game Tetris is NP-Hard 12 13 Challenge Problem Challenge Problem Consider the optimization version of, say, the graph coloring problem: Given a graph G, what is the smallest number of colors needed to color the graph? (Note that unlike the decision version of this problem, this is not a yes/no question) Show that the optimization version of graph coloring is also NP-Hard by a reduction from the decision version of graph coloring. Is the optimization version of graph coloring also NP-Complete? Consider the problem 4Sat which is: Is there any assignment of variables to a 4CNF formula that makes the formula evaluate to true? Is this problem NP-Hard? If so, give a reduction from 3Sat that shows this. If not, give a polynomial time algorithm which solves it. 14 15

Challenge Problem Vertex Cover Consider the following problem: Does there exist a clique of size 5 in some input graph G? Is this problem NP-Hard? If so, prove it by giving a reduction from some known NP-Hard problem. If not, give a polynomial time algorithm which solves it. A vertex cover of a graph is a set of vertices that touches every edge in the graph The decision version of Vertex Cover is: Does there exist a vertex cover of size k in a graph G?. We ve proven this problem is NP-Hard by an easy reduction from Independent Set The optimization version of Vertex Cover is: What is the minimum size vertex cover of a graph G? We can prove this problem is NP-Hard by a reduction from the decision version of Vertex Cover (left as an exercise). 16 17 Approximating Vertex Cover Approximation Algorithm Even though the optimization version of Vertex Cover is NP- Hard, it s possible to approximate the answer efficiently In particular, in polynomial time, we can find a vertex cover which is no more than 2 times as large as the minimal vertex cover The approximation algorithm does the following until G has no more edges: It chooses an arbitrary edge (u, v) in G and includes both u and v in the cover It then removes from G all edges which are incident to either u or v 18 19

Approximation Algorithm Approx-Vertex-Cover(G){ C = {}; E = Edges of G; while(e is not empty){ let (u,v) be an arbitrary edge in E ; add both u and v to C; remove from E every edge incident to u or v; } return C; } If we implement the graph with adjacency lists, each edge need be touched at most once Hence the run time of the algorithm will be O( V + E ), which is polynomial time First, note that this algorithm does in fact return a vertex cover since it ensures that every edge in G is incident to some vertex in C Q: Is the vertex cover actually no more than twice the optimal size? 20 21 TSP Let A be the set of edges which are chosen in the first line of the while loop Note that no two edges of A share an endpoint Thus, any vertex cover must contain at least one endpoint of each edge in A Thus if C is an optimal cover then we can say that C A Further, we know that C = 2 A This implies that C 2 C An optimization version of the TSP problem is: Given a weighted graph G, what is the shortest Hamiltonian Cycle of G? This problem is NP-Hard by a reduction from Hamiltonian Cycle However, there is a 2-approximation algorithm for this problem if the edge weights obey the triangle inequality Which means that the vertex cover found by the algorithm is no more than twice the size of an optimal vertex cover. 22 23

Triangle Inequality Triangle Inequality Approximation Algorithm Approximation Algorithm In many practical problems, it s reasonable to make the assumption that the weights, c, of the edges obey the triangle In many practical problems, it s reasonable to make the assumption that the weights, c, of the edges obey the triangle inequality The triangle inequality says that for all vertices u, v, w V : inequality The trianglec(u, inequality w) c(u, saysv) that + c(v, forw) all vertices u, v, w V : In other words, the cheapest c(u, w) way c(u, tov) get + from c(v, w) u to w is always to just Intake other the words, edge the (u, cheapest w) way to get from u to w is always In the to real just world, take this the edge is usually (u, w) a pretty natural assumption. For example In the real it holds world, if this the is usually vertices a pretty are points natural inassumption. a plane and the Forcost example of traveling it holds between if the vertices two vertices are points is just in a the plane euclidean anddistance the costbetween of traveling them. between two vertices is just the euclidean distance between them. Given a weighted graph G, the algorithm first computes a Approx-TSP(G){ MST for G, T, and then arbitrarily selects a root node r of T T =. MST(G); L It= then list letsofl vertices be the list visited of the in avertices depth first visited traversal in a depth first oftraversal T, starting of Tat starting some arbitrary at r. node in T; H Finally, = the Hamiltonian it returns Cycle the Hamiltonian that visits Cycle, the vertices H, that in the visits the order L; vertices in the order L. return H; } 24 24 26 25 Approximation Approximation Algorithm Algorithm Example Run a b d f e g a b d f e g c h c h Approx-TSP(G){ Given a weighted graph G, the algorithm first computes a T = MST(G); MST for G, T, and then arbitrarily selects a root node r of L = the T list. of vertices visited in a depth first traversal of T, It then starting lets Latbe some thearbitrary list of thenode vertices in T; visited in a depth H = the first Hamiltonian traversal Cycle of T starting that visits at r. the vertices in the order Finally, L; it returns the Hamiltonian Cycle, H, that visits the return H; vertices in the order L. } 25 26 a d a d e e b f g b f g c c h h The top left figure shows the graph G (edge weights are just The the Euclidean top left figure distances shows between the graph vertices); G (edge the top weights right figure are just the shows Euclidean the MSTdistances T. Thebetween bottom left vertices); figure the shows topthe right depth figure shows first walk theon MST T, W T =. (a, The b, c, b, bottom h, b, a, d, e, left f, e, figure g, e, d, a); shows the bottom the depth first rightwalk figure onshows T, W the = (a, Hamiltonian b, c, b, h, b, a, cycle d, e, Hf, obtained e, g, e, d, a); by the deleting bottom right repeat figure visitsshows from W the, H Hamiltonian = (a, b, c, h, d, cycle e, f, g). H obtained by deleting repeat visits from W, H = (a, b, c, h, d, e, f, g). 27 27

The first step of the algorithm takes O( E + V log V ) (if we use Prim s algorithm) The second step is O( V ) The third step is O( V ). Hence the run time of the entire algorithm is polynomial An important fact about this algorithm is that: the cost of the MST is less than the cost of the shortest Hamiltonian cycle. To see this, let T be the MST and let H be the shortest Hamiltonian cycle. Note that if we remove one edge from H, we have a spanning tree, T Finally, note that w(h ) w(t ) w(t ) Hence w(h ) w(t ) 28 29 Now let W be a depth first walk of T which traverses each edge exactly twice (similar to what you did in the hw) In our example, W = (a, b, c, b, h, b, a, d, e, f, e, g, e, d, a) Note that c(w ) = 2c(T ) This implies that c(w ) 2c(H ) Unfortunately, W is not a Hamiltonian cycle since it visits some vertices more than once However, we can delete a visit to any vertex and the cost will not increase because of the triangle inequality. (The path without an intermediate vertex can only be shorter) By repeatedly applying this operation, we can remove from W all but the first visit to each vertex, without increasing the cost of W. In our example, this will give us the ordering H = (a, b, c, h, d, e, f, g) 30 31

Take Away By the last slide, c(h) c(w ). So c(h) c(w ) = 2c(T ) 2c(H ) Thus, c(h) 2c(H ) In other words, the Hamiltonian cycle found by the algorithm has cost no more than twice the shortest Hamiltonian cycle. Many real-world problems can be shown to not have an efficient solution unless P = NP (these are the NP-Hard problems) However, if a problem is shown to be NP-Hard, all hope is not lost! In many cases, we can come up with an provably good approximation algorithm for the NP-Hard problem. 32 33