CSC141: Assignment 3

Due date: Mon, 22nd November

Hand it in at the beginning of the lecture on Monday.

Instructor: Michalis Faloutsos.

Nine questions in total [120] and [10]: bonus. No programming part this time.
In this Assignment, you are expected to provide well written and complete
answers.  One-word answers, or vague generic arguments  will not get much
this time. Start early and spend time on providing rigorous proofs.
No extension will be granted, so start working early.

1.  [10] Exercise 25. 2-4 from the book. p.,531.

2.  [10] Exercise 25. 3-3 from the book, p. 535.
    Explanation: We want the algorithm complexity to be in O( (m+1) N^2)
     where N the number of nodes.

3.  [10]  Problem 26.1 page 576: Transitive closure of a dynamic graph.
        Do only:
        3.1 [5]  26.1.a.  Just provide *some*  polynomial algorithm and calculate
           its complexity.
        3.2  [5] 26.1.b.
           Hint: Give an example where by adding one edge you can achieve a
            many entries in your matrix. Try to think of a case where you can have
            N/2 nodes  becoming able to reach N/2 nodes.

4.  [10] Execute the transitive closure algorithm on the graph of Fig. 26.2.
       Show the matrices for all your steps, until the algorithm terminates
       (if the matrix is the same in two consecutive steps, the algorithm terminates)

5.  [10] Steiner problem:
       5.a. [5]  Does the competitive ratio of the Naive algorithm change
        when we restrict the edge weights to only two values: 1 or 2?
         Argue/prove your answer.

        5.b.  [5] What is the competitive ratio of the Naive if restrict the weight
         of the edges to 1 or 2  and we restrict the maximum number of edges
          between any nodes of the graph to be less than K?
          Prove your answer.

6. [30]  Steiner problem. Execute the Naive,  the  Greedy and KMB algorithms in the
       figure  below.  Show the execution of each step and also the approximate Steiner
        tree for each algorithm as it is being created. Don't forget to provide you KMB
        Steiner tree at the original graph G.

         Weighted undirected graph: G = (V, E, weight())
           V = {a,b,c,d,e,f,g}
            Participants:  S = {a, d, e,  f, g}
            Start building your Steiner tree from  node  "a"  (this is only for uniformity reasons)

7.  [10]   Exercise 27.2-2 from the book, p. 599.
You only have to show the series of augmenting paths,
just the Ford-Fulketson and not the Edwards-Karp. In addition,
take a look at the newly added, explanation of Ford-Fulkeron in my web-page.

8.  [10]   Exercise 27.2-3 from the book, p. 599.

9.  [10]    From the exercise 27-3.5 from the book, p. 604,
                  prove  *only* that |L|=|R|.

     Bonus [10] :  Solve exercise 27-3.5
      (you do not have to do this, unless you want the bonus points)