This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Homework #3 Solutions 1. You are given a weighted directed acyclic graph G = ( V,E ). You want to find the longest path in G . (a) (3) Split the problem up into a list of ordered decisions. What is the first decision your algorithm must make? Solution: At each point, we must decide what is the next node we visit. Our first decision is figuring out what node to start at. (b) (10) Define OPT ( x ) to be the length of the longest path in G that starts at node x . Give the recursive procedure to solve this problem (don’t forget the base case!) Solution: If x has no outgoing edges, then OPT ( x ) = 0. Otherwise, OPT ( x ) = max ( x,y ) ∈ E [ c xy + OPT ( y )]. If you consider the case where there can be negative edge weights, then OPT ( x ) = max (0 ,max ( x,y ) ∈ E [ c xy + OPT ( y )]) (c) (3) What order do you need to fill the array in to transform this into an iterative procedure? Solution: Fill the array in reverse topological order (start with a node with no outgoing edges, end with a node with no incoming edges). (d) (3) Specify where the answer is stored in your array. Solution: Answer = max x OPT ( x ), where x is any node with no incoming edges. If you consider the case where there can be negative edge weights, you have to consider x to be any node. (e) (3) Analyze the running time of your iterative procedure. Solution: A first glance tells us that there are n nodes, and each takes m time to fill. But we can improve this by noting we look at each edge once, so the actual runtime is θ ( n + m ). (f) (3) Explain how to reconstruct the actual path, instead of just stating the length of the path. Solution: Starting at the node where our answer is stored ( max x OPT ( x )), determine which edge was the next visited by checking all edges ( x,y ) ∈ E , and seeing if OPT ( x ) = c xy + OPT ( y ). Once we find the y we visit next, repeat until we find OPT ( z ) = 0. This is the longest path. 2. (25) Given a ribbon strip of length k , a tailor will cut it once, in any place you choose, for the price of k dollars. Suppose you are given a strip of length L , marked to be cut in n different locations labeled 1 , 2 ,...,n . For simplicity, let indices 0 and n + 1 denote the left and right endpoints of the original ribbon strip of length...
View Full Document
- Fall '06
- Dynamic Programming, op