Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| courses:cs211:winter2014:journals:deirdre:chapter6 [2014/04/02 02:45] – [7.ONE - The Max-Flow Problem and the Ford-Fulkerson alg] tobind | courses:cs211:winter2014:journals:deirdre:chapter6 [2014/04/02 03:16] (current) – [7.7 - Extensions to the Max-Flow Problem] tobind | ||
|---|---|---|---|
| Line 230: | Line 230: | ||
| ======7.5 - Bipartite Matching Problem ====== | ======7.5 - Bipartite Matching Problem ====== | ||
| + | **The Problem** | ||
| + | We want to find a matching in //G// of largest possible size. | ||
| + | **Designing the alg** | ||
| + | The graph defining a matching problem is undirected, but we can make it work. | ||
| + | |||
| + | Beginning with a graph //G//, we construct a flow network // | ||
| + | |||
| + | **analyzing the alg** | ||
| + | Here are three simple facts about the set // | ||
| + | * //M'// contains //k// edges. | ||
| + | * Each node in //X// is the tail of at most one edge in // | ||
| + | * Each node in //Y// is the head of at most one edge in // | ||
| + | |||
| + | The size of the maximum matching in G is equal to teh value of the max flow in G'; | ||
| + | and the edges in such a matching in G are the edges that carry flow from X to Y in G'. | ||
| + | |||
| + | The FF alg can be used to find a max matching in a bipartite graph in //O(mn)// time. | ||
| + | |||
| + | I give this section an 8. | ||
| + | |||
| + | ======7.7 - Extensions to the Max-Flow Problem ====== | ||
| + | **Circulations with Demands** | ||
| + | Suppose there is now a set //S// of sources generating flow and a set //t// of sinks. Instead of maximizing the flow values, we will consdier a problem where sources have fixed supply values and sinks have fixed demand values. given a flow network with capacities on the edges, each node //v// has a demand //dv//. If //dv// > 0, the node is a sink. If //dv// < 0, it is a source. //S// denotes the nodes with negative; //T// is the set of nodes with positive demands. | ||
| + | |||
| + | In this setting we say that a circulation with demands {//dv//} is a function //f// satisfies the capacity and demand conditions. | ||
| + | |||
| + | So now we just have a feasibility problem. | ||
| + | |||
| + | (7.49) If there exists a feasible circulation with demands {dv}, then Σdv = 0. | ||
| + | | ||
| + | |||
| + | See p 382 for proof of: | ||
| + | |||
| + | There is a feasible circulation with demands {//dv//} in //G// iff the max //s*-t*// flow in //G'// has value //D//. If all capacities and demands in //G// are integers and there is a feasible circulation, | ||
| + | |||
| + | **Circulations with Demands and Lower Bounds** | ||
| + | Consider a flow network with a capacity //ce// and a lwoer bound //le// on each edge // | ||
| + | |||
| + | We simply reduce this problem to the one above. See p383 for proof that | ||
| + | |||
| + | There is a feasible circulation in //G// iff there is a feasible circulation in // | ||
| + | |||
| + | This section wasn't very interesting for me, so only a 6. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
