IEOR 6614, Spring 2007 : Homework 3

Assigned: Thursday, February 1, 2007
Due: Thursday, February 8, 2007

General Instructions

  1. Please review the course information.
  2. You must write down with whom you worked on the assignment. If this changes from problem to problem, then you should write down this information separately with each problem.
  3. Numbered problems are all from the textbook Network Flows .

Problems

  1. Problem 4.6. Cluster Analysis.
  2. Problem 4.26. Most vital arc.
  3. Problem 4.34, Problem 4.36. K-shortest paths.
  4. Suppose that we order the edge relaxations in each pass of the Bellman-Ford algorithm as follows. Before the first pass, we assign an arbitrary linear order v1,v2,...,vn to the vertices of the input graph. Then, we partition the edge set E into Ef and Eb, where Ef are the forward edges, i.e. the ones of the form (vi,vj) with i < j and Eb, the backwards edges, i.e. the ones of the form (vi,vj) with i> j. Define Gf=(V,Ef) and Gb=(V,Eb).
    1. Prove that Gf is acyclic with topological sort v1,v2,...,vn and that Gb is acyclic with topological sort vn,vn-1,...,v1
    2. Suppose that we implement each pass of the Bellman-Ford algorithm in the following way. We visit each vertex in the order v1, v2, ... , vn, relaxing edges of Ef that leave the vertex. We then visit each vertex in the order vn, vn-1, ..., v1, relaxing edges of Eb that leave the vertex. Prove that with this scheme, if G contains no negative-weight cycles that are reachable from the source vertex s then after only ceiling(n/2) passes over the edges, d(v) is the correct shortest path distance for each vertex v.
    3. Does this scheme improve the asymptotic running time of the Bellman-Ford algorithm?
  5. Given a directed acyclic graph G, with source c let ct(v) be the number of distinct paths from s to v. Give an efficient algorithm to compute ct(v) for all vertices v.


Switch to:


cliff@ieor.columbia.edu