Background: Ch. 23.1, 23.4, 23.5, 27.2, 27.3
Due November 13th:
- 9.1: CLR Exercise 23.1-3 (pg. 468).
- 9.2: Extra credit. CLR Exercise 23.1-6 (pg. 468).
- 9.3: CLR Exercise 23.4-1 (pg. 487).
- 9.4: CLR Exercise 23.5-1 (pg. 494).
- 9.5: CLR Exercise 23.5-5 (pg. 494).
- 9.6: Extra credit. In class, we came up with an alternate
algorithm for strongly connected components. The algorithm went
something like this: Start with a graph. Find a cycle in the graph.
If there is no cycle, we're done. If there is, mark all nodes in the
cycle as being in the same strongly connected component. Now collapse
all those nodes into a single node and repeat. Describe an efficient
implementation of this procedure and give its running time.
- 9.7: Give a O(|V|+|E|) (linear time) algorithm for maximal (not
maximum) bipartite matching.
- 9.8: Give an example bipartite graph with 2k left nodes and 2k
right nodes with a maximal matching of size k and a maximum matching
of size 2k.
- 9.9: Extra credit. In the previous question, the ratio of the
size of the maximum matching to the maximal matching is 2:1. Prove
that this is the largest possible ratio. We can conclude from this
that a maximal matching is an approximation (to within a factor of 2)
of the maximum matching.
- 9.10: Book gives a
algorithm for network flow. When
applied to bipartite matching, is this better or worse than the
O(|V||E|) algorithm we discussed?
Next: Homework 10 (incomplete)
Up: HOMEWORK
Previous: HOMEWORK