Notes:

Problem : Suppose that to build a single electric car we need a three-person team consisting of a machinist, a welder, and an electrician. We have a pool of $k$ machinists, $m$ welders, and $n$ electricians. Each tradesperson can be assigned to at most one team. Some pairs of machinists and welders refuse to work together, and some pairs of welders and electricians refuse to work together (the machinists and electricians do not work on the cars at the same time, so their personal squabbles are irrelevant). Describe a polynomial-time algorithm to determine the maximum number of teams we can form given the constraints on who will work with whom and prove that it is correct (hint: if you can solve the problem by creating an appropriate input to a standard algorithm then you need only prove that input correctly models the problem). Explain why the running time of your algorithm is polynomial in $k$, $n$, and $m$.

Problem : Consider the problem of computing the maximum flow in a graph with integer capacities where there are edges $(u, v)$ and $(v, u)$ between every pair of vertices (with $c(u, s) = 0$ and $c(t, v) = 0$ for all $u$ and $v$ and possibly with $c(u, v) = 0$ and/or $c(v, u) = 0$ for other pairs of vertices as well). Show how to update the augment procedure in the Ford-Fulkerson method in such a way that the following invariant is maintained:

Write the updates that happen in the loop in augment for both the flow $f$ and the residual capacities $c_r$.

Problem : Tardos and Kleinberg, Ch. 7, Ex. 11. Be sure to include