CSCE 221: Data Structures and Algorithms

Sections: 507, 508, 509
Fall 2015



Homework 10


Due Date: Dec. 4th (before class)


Assignment

  1. C13.17 (Pg. 659)

    Show that if all the weights in a connected weighted graph G are distinct, then there is exactly one minimum spanning tree for G.
    Hint: Use proof by contradiction.

  2. C13.21 (Pg. 660)

    NASA wants to link n stations spread over the country using communication channels. Each pair of stations has a different bandwidth available, which is known a priori. NASA wants to select n-1 channels (the minimum possible) in such a way that all the stations are linked by the channels and the total bandwidth (defined as the sum of the individual bandwidths of the channels) is maximum. Give an efficient algorithm for this problem and determine its worst-case time complexity. Justify the correctness of the algorithm and its time complexity. Consider the weighted graph G = (V,E), where V is the set of stations and E is the set of channels between the stations. Define the weight w(e) of an edge e in E as the bandwidth of the corresponding channel.

  3. C13.27 (Pg. 661)

    An old MST method, called Barůvka's algorithm , works as follows on a graph G having n vertices and m edges with distinct weights.
         Let T be a subgraph of G initially containing just the vertices in V .
         while T has fewer than n- 1 edges do
             for each connected component Ci of T do
                 Find the lowest-weight edge (v,u) in E with v in Ci and u not in Ci.
                 Add (v,u) to T (unless it is already in T ).
         return T
    Argue why this algorithm is correct and why it runs in O(mlogn) time.


Bonus

    C13.26 (Pg. 661)

    A graph G is bipartite if its vertices can be partitioned into two sets X and Y such that every edge in G has one end vertex in X and the other in Y . Design and analyze an efficient algorithm for determining if an undirected graph G is bipartite (without knowing the sets X and Y in advance). State the correctness, complexity and its justification.


Grading Rubric

Each homework composes 2% of your final grade. Each homework will be graded out of 100 possible points. In any problem asking you to design an algorithm please also provide proper pseudocode (mathematical notation), complexity analysis (both space and time), and brief justification of complexity and correctness.

All assignments must be turned in with a signed coverpage. If no coverpage is provided, the assignment will not be graded.

If there are any discrepancies in grades please see Jory Denny during his office hours (not the TA or Grader).