Problem Set 7 Solutions



Similar documents
Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Cpt S 223. School of EECS, WSU

CMPSCI611: Approximating MAX-CUT Lecture 20

Lecture 7: NP-Complete Problems

Near Optimal Solutions

5.1 Bipartite Matching

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

Algorithm Design and Analysis

NP-complete? NP-hard? Some Foundations of Complexity. Prof. Sven Hartmann Clausthal University of Technology Department of Informatics

Minimum cost maximum flow, Minimum cost circulation, Cost/Capacity scaling

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

Why? A central concept in Computer Science. Algorithms are ubiquitous.

Linear Programming. March 14, 2014

Approximation Algorithms

Guessing Game: NP-Complete?

Applied Algorithm Design Lecture 5

Reductions & NP-completeness as part of Foundations of Computer Science undergraduate course

Introduction to Algorithms March 10, 2004 Massachusetts Institute of Technology Professors Erik Demaine and Shafi Goldwasser Quiz 1.

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

Data Structures and Algorithms Written Examination

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

Linear Programming. April 12, 2005

The Goldberg Rao Algorithm for the Maximum Flow Problem

Midterm Practice Problems

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Single machine parallel batch scheduling with unbounded capacity

Fairness in Routing and Load Balancing

Introduction to Algorithms. Part 3: P, NP Hard Problems

Definition Given a graph G on n vertices, we define the following quantities:

1 Definitions. Supplementary Material for: Digraphs. Concept graphs

Answer Key for California State Standards: Algebra I

On the Unique Games Conjecture

Lecture 1: Course overview, circuits, and formulas

One last point: we started off this book by introducing another famously hard search problem:

Graph Theory Problems and Solutions

Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

Part 2: Community Detection

Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, Chapter 7: Digraphs

Discuss the size of the instance for the minimum spanning tree problem.

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Analysis of Algorithms, I

A simpler and better derandomization of an approximation algorithm for Single Source Rent-or-Buy

Welcome to... Problem Analysis and Complexity Theory , 3 VU

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

Social Media Mining. Graph Essentials

Exponential time algorithms for graph coloring

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

Scheduling to Minimize Power Consumption using Submodular Functions

8.1 Min Degree Spanning Tree

Lecture 3: Finding integer solutions to systems of linear equations

CSC 373: Algorithm Design and Analysis Lecture 16

3. Mathematical Induction

Dynamic programming. Doctoral course Optimization on graphs - Lecture 4.1. Giovanni Righini. January 17 th, 2013

Mining Social Network Graphs

6.852: Distributed Algorithms Fall, Class 2

Discrete Mathematics Problems

A Review And Evaluations Of Shortest Path Algorithms

2.8 An application of Dynamic Programming to machine renewal

Introduction to computer science

Scheduling Shop Scheduling. Tim Nieberg

Page 1. CSCE 310J Data Structures & Algorithms. CSCE 310J Data Structures & Algorithms. P, NP, and NP-Complete. Polynomial-Time Algorithms

GRAPH THEORY LECTURE 4: TREES

Dynamic Programming. Lecture Overview Introduction

Polytope Examples (PolyComp Fukuda) Matching Polytope 1

Network Flow I. Lecture Overview The Network Flow Problem

Institut für Informatik Lehrstuhl Theoretische Informatik I / Komplexitätstheorie. An Iterative Compression Algorithm for Vertex Cover

How To Solve A Minimum Set Covering Problem (Mcp)

ARTICLE IN PRESS. European Journal of Operational Research xxx (2004) xxx xxx. Discrete Optimization. Nan Kong, Andrew J.

Max Flow, Min Cut, and Matchings (Solution)

A Note on Maximum Independent Sets in Rectangle Intersection Graphs

Nan Kong, Andrew J. Schaefer. Department of Industrial Engineering, Univeristy of Pittsburgh, PA 15261, USA

1 Solving LPs: The Simplex Algorithm of George Dantzig

3.1 Solving Systems Using Tables and Graphs

The Basics of Graphical Models

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

14.1 Rent-or-buy problem

NP-Completeness and Cook s Theorem

Practice with Proofs

Cycles and clique-minors in expanders

FRACTIONAL COLORINGS AND THE MYCIELSKI GRAPHS

3 Some Integer Functions

HOMEWORK 5 SOLUTIONS. n!f n (1) lim. ln x n! + xn x. 1 = G n 1 (x). (2) k + 1 n. (n 1)!

Simple Graphs Degrees, Isomorphism, Paths

SEMITOTAL AND TOTAL BLOCK-CUTVERTEX GRAPH

Lecture 17 : Equivalence and Order Relations DRAFT

P versus NP, and More

CSC2420 Fall 2012: Algorithm Design, Analysis and Theory

Notes on Complexity Theory Last updated: August, Lecture 1

11. APPROXIMATION ALGORITHMS

Network Algorithms for Homeland Security

On the independence number of graphs with maximum degree 3

Lecture 19: Introduction to NP-Completeness Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

1 Approximating Set Cover

The Trip Scheduling Problem

Transcription:

8 8 Introduction to Algorithms May 7, 2004 Massachusetts Institute of Technology 6.046J/18.410J Professors Erik Demaine and Shafi Goldwasser Handout 25 Problem Set 7 Solutions This problem set is due in recitation on Friday, May 7. Reading: Chapter 22, 24, 25.1-25.2, Chapters 34, 35 There are five problems. Each problem is to be done on a separate sheet (or sheets) of paper. Mark the top of each sheet with your name, the course number, the problem number, your recitation section, the date, and the names of any students with whom you collaborated. As on previous assignments, give an algorithm entails providing a description, proof, and runtime analysis. Problem 7-1. Arbitrage Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. Suppose, U.S. dollar bought Euro, Euro bought Japanese Yen, Japanese Yen bought Turkish Lira, and one Turkish Lira bought U.S. dollars. Then, by converting currencies, a trader can start with U.S. dollar and buy U.S. dollars, thus turning a profit. Suppose that we are given currencies and an! table " of exchange rates, such that one unit of currency $ buys "&%(' *)+ units of currency -,. (a) Give an efficient algorithm to determine whether or not there exists a sequence of currencies. 0/213 $ 5436 such that: "&%(' ' 7+98 "&%(' ';: + 888 "&%<';=3> ';= +98 "&%('?= ' *+A@ Solution: We can use the Bellman-Ford algorithm on a suitable weighted, directed graph B C D;E FHG, which we form as follows. There is one vertex in E for each currency, and for each pair of currencies 3 and -,, there are directed edges DJI K I,3G and DJI,L I JG. (Thus, M ENMCO and M F M CQP 7R.) To determine edge weights, we start by observing that "&%(' ' 7+S8 "&%(' ';: +888 "&%<';=3> ';= +S8 "&%('?= ' *+A@ if and only if "&%(' T ' -+ "&%(' ';: + 888 "&%<';=3> ';= + "&%('?= ' *+VU

C 2 Handout 25: Problem Set 7 Solutions Taking logs of both sides of the inequality above, we express this condition as "&%<' T ' + "&%(' ';: + "&%<';=3> ';= + Therefore, if we define the weight of edge DJI * I,TG as D I K I,3G "&%<' *)+ C "&%<' K) + 888 "&%<';= ' + U then we want to find whether there exists a negative-weight cycle in B with these edge weights. We can determine whether there exists a negative-weight cycle in B by adding an extra vertex I with -weight edges DJI I G for all I E, running BELLMAN-FORD from I, and using the boolean result of BELLMAN-FORD (which is TRUE if there are no negative-weight cycles and FALSE if there is a negative-weight cycle) to guide our answer. That is, we invert the boolean result of BELLMAN-FORD. This method works because adding the new vertex I with -weight edges from I to all other vertices cannot introduce any new cycles, yet it ensures that all negativeweight cycles are reachable from I. It takes &D G time to create B, which has DJ G edges. Then it takes DJ : G time to run BELLMAN-FORD. Thus, the total time is D : G. Another way to determine whether a negative-weight cycle exists is to create B and, without adding I and its incident edges, run either of the all-pairs shortest-paths algorithms. If the resulting shortest-path distance matrix has any negative values on the diagonal, then there is a negative-weight cycle. (b) Give an efficient algorithm to print out such a sequence if one exists. Analyze the running time of your algorithm. Solution: Assuming that we ran BELLMAN-FORD to solve part (a), we only need to find the vertices of a negative-weight cycle. We can do so as follows. First, relax all the edges once more. Since there is a negative-weight cycle, the value of some vertex will change. We just need to repeatedly follow the values until we get back to. In other words, we can use the recursive method given by the PRINT-PATH procedure of Section 22.2 in CLRS, but stop it when it returns to vertex. The running time is D : G to run BELLMAN-FORD, plus D G to print the vertices of the cycle, for a total of D : G time. Problem 7-2. Bicycle Tour Planning

C Handout 25: Problem Set 7 Solutions 3 You are in charge of planning cycling vacations for a travel agent. You have a map of cities connected by direct bike routes. A bike route connecting cities I and has distance D I G. Additionally, it costs D I G to stay in city I for a single night. A customer will provide you with the following data: G % + - A starting city. - A destination city. - A trip length. - A daily maximum biking distance D, where. Your job is to plan a tour that takes exactly days, such that the customer does not stay in the same city two consecutive nights and does not bike more than D G on day. Your customer can bike through several cities on a given day, i.e. there doesn t have to be a direct route between the cities you assign on day and day. You also want to minimize the total cost of staying at the cities on your tour. Give an DJ D G-G time algorithm to produce an -city tour D C I I minimum cost DJI G, such that D I > I JG D ' G. I G with Solution: First, compute the all-pairs shortest path distances DJ' *) G among every pair of cities ' and ). Store the values in a table. Then construct a directed acyclic graph with D G nodes. The nodes are labeled as I, for ' $- and $. Each node I corresponds to the option of staying at city ' on day. For any ' *) $- where ' C ) and, add the edge DJI > I,LG in the graph if D ' K)G D G. This means that the customer can bike from city ' to city ) without exceeding the daily limit. Also, for each node I, assign a node cost T to the node. The lowest cost tour is simply the path from I! to I"$ where the total node cost is minimum. If I "$ is not reachable from I!, no tour satisfying the requirements exists. We can transform the minimum node cost path problem into a shortest path problem easily. Since the graph is directed, for every edge D I G we can assign the cost of node I as its edge weight. This reduces the problem to a shortest path problem, which can be computed using the shortest path algorithm on DAGs (see Section 24.2 in CLRS). Correctness: A path on the graph from I! to I"$ corresponds to a bicycle tour for the days. Specifically, each edge D I % > I,LG along the path specifies a day trip from city ' to city ) on day. Note that the edge is present in if and only if the corresponding day trip does not violate daily mileage constraint. Also, since there is no edge between D I > * I G for any ' in the graph, the customer will not stay at the same city on consecutive nights. The transformation of the minimum node-cost path problem into the shortest path problem preserves the cost of corresponding paths (with an offest of the cost of the source node). Therefore the shortest path algorithm on the transformed graph will compute the tour with the lowest cost.

U U U : 4 Handout 25: Problem Set 7 Solutions Running Time: The all-pairs shortest paths distances can be computed in D : G time using the Floyd-Warshall algorithm. The graph contains D G nodes and DJ G edges, so it takes DJ G time to construct the graph. Since is a DAG, the shortest path on can be computed in DJ G time. Therefore the overall running time is DJ G C D D G G. Problem 7-3. P vs. NP Suppose that T and that. For each of the following statements, determine whether it is true, false, or an open problem. Prove your answers. (a) If, then. Solution: If C, then this is true. Otherwise, this is false: can be NPcomplete. Therefore this is an open question. (b) If, then. Solution: True. Proof presented in lecture. (c) is either NP-complete or is in P. Solution: Open. There exist problems that are in NP, but are not known NP-complete. If C this is true. If C then it is false. (d) If, then both and are NP-complete. Solution: If C, then this is true, since then any problem in is -complete. Otherwise, it is false: we can take T, and they are not NP-complete. Therefore, this is an open problem. (e) If and are both NP-complete, then. Solution: True by definition of NP-completeness. (f) Suppose there is a linear time algorithm that recognizes. Then there exists a linear time algorithm to recognize. Solution: False. The reduction from to, although polynomial, may take more than linear time. Subtle Point: This does not necessarily imply that no linear time reduction from to exists. Essentially, this problem is equivalent to asking whether there exist any

Handout 25: Problem Set 7 Solutions 5 problems with superlinear lower bounds in P. That happens to be true: there do exist problems in P that cannot be solved in linear time. This is beyond the context of 6.046. Students will get full credit for the correct answer with incomplete justification. Problem 7-4. NP-Completeness (a) Suppose you are given an algorithm to solve the CLIQUE decision problem. That is, D?B G will decide whether graph B has a clique of size. Give an algorithm to find the vertices of a -clique in a graph B using only calls to, if any such -clique exists. Solution: Run D?B G. If returns false, then exit. Otherwise if returns true, remove an arbitrary vertex I from the graph. Run D B I G. If now returns false, then I must be in all remaining -cliques. If returns true, there exists some -clique without I. Continue this process until vertices are found that must necessarily be in the -clique. (b) Prove that the following decision problem is NP-complete. LARGEST-COMMON-SUBGRAPH: Given two graphs B and B and an integer, determine whether there is a graph B with edges which is a subgraph of both B and B. (Hint: reduce from CLIQUE.) Solution: The problem is in NP: to prove that B C D?E F G and B C D;E FVG share a subgraph of size at least, one can exhibit a graph C D?E F G with at least edges, and 1-1 mappings E E and E E. Thus the certificate has size M M M M M M. If is the size of the input M MC D G, since is a subgraph of the given graphs, and M M C D G since each of them is just a list of vertices. Therefore, the size of the certificate is polynomial. To verify this certificate, check that has at least edges ( DJ G time), check that and are 1-1 ( DJ G time), and check whether for any edge D I G F, D D GT DJI G-G F and D D GT D I G-G FV ( D G time). Therefore the certificate takes polynomial time to verify. Reduction: Given a graph B and an integer, to determine whether B has a clique of size, ask whether B and = have a common subgraph with D G edges, where = is the complete graph on nodes. (c) Suppose you are given an algorithm to solve the LARGEST-COMMON-SUBGRAPH decision problem. Give an algorithm to find a subgraph of size that appears in both graphs B and B, using only calls to, if any such subgraph exists.

6 Handout 25: Problem Set 7 Solutions Solution: Use an approach similar to the reduction from Decisional-Clique to Search- Clique. Run D?B T B G. If says a subgraph exists, try removing an edge from either B or B and re-running. If s output has changed, that edge must appear in all remaining subgraphs. Otherwise, it can be excluded. Problem 7-5. Maximum Coverage Approximation Suppose you are given a set of size M MCO, a collection of distinct subsets T where, and a number as input. We would like to pick subsets from the collection that cover the maximum number of elements in. Give a greedy, polynomial-time approx-, where imiation algorithm for this maximum coverage problem with ratio bound of C M M. Analyze the approximation ratio achieved by your algorithm. Solution: The following greedy algorithm achieves the ratio bound. GREEDY-MAXIMUM-COVERAGE( ): 1 2 3 for ' to 4 select a that maximizes M M 5 6 7 return The algorithm works as follows. At each stage, the algorithm picks a subset A and store it in the collection. The set contains, at each stage, the set of uncovered elements. The greedy approach at line 4 picks the subset that covers as many uncovered elements as possible. The algorithm can easily be implemented in time polynomial in, and. The number of iterations on lines 3-6 is. Each iteration can be implemented in D G time. Therefore there is G. an implementation that runs in time DJ The algorithm has a ratio bound. Let be the solution given by the algorithm, and be the optimal solution. If covers the entire set, then is the optimal solution and we are done. Therefore, we consider the case where does not cover the entire. At the first iteration, the algorithm will pick the largest subset with size. Therefore the number of elements covered by will be at least. Also, at each stage, the algorithm will pick at subset that covers at least one element that has not been previously covered. Therefore, the number of elements covered by will also be at least. To sum up, the solution will cover at least elements. Now consider the optimal solution. The optimcal solution contains subsets, and each subset contains at most elements. Therefore the maximum number of elements covered by is. It follows that the ratio bound of the greedy algorithm is:

C Handout 25: Problem Set 7 Solutions 7