Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
courses:cs211:winter2011:journals:charles:chapter7 [2011/04/06 07:03] – [7.1 The Maximum-Flow Problem and the Ford-Fulkerson Algorithm] gouldc | courses:cs211:winter2011:journals:charles:chapter7 [2011/04/06 08:16] (current) – [7.3 Choosing Good Augmenting Paths] gouldc | ||
---|---|---|---|
Line 2: | Line 2: | ||
Essentially a return to bipartite matching, this chapter extends the special case of the Bipartite Matching Problem to other matching problems such as the mapping of customers to stores. We recall the definitions of matching and perfect matching, which are, respectively, | Essentially a return to bipartite matching, this chapter extends the special case of the Bipartite Matching Problem to other matching problems such as the mapping of customers to stores. We recall the definitions of matching and perfect matching, which are, respectively, | ||
===== 7.1 The Maximum-Flow Problem and the Ford-Fulkerson Algorithm ===== | ===== 7.1 The Maximum-Flow Problem and the Ford-Fulkerson Algorithm ===== | ||
- | Set-up: Explains the terminology for flow problems. Describes the two conditions that define flow. | + | Set-up: Explains the terminology for flow problems. Describes the two conditions that define flow (capacity and conservation). The structure of a flow network determines its maximum value (value = flow generated at source) of a flow. |
+ | |||
+ | Problem outline: Find a maximum flow in a network. Sometimes single s-t paths don't support maximum flow...in these cases we might want to "push forward" | ||
+ | |||
+ | Solution: Function that augments the flow by making use of the various forward edges and backward edges in the residual graph. The Ford-Fulkerson Algorithm, as it's called, builds up the solution from zero flow to maximum flow by augmenting and updating the residual graph until there are no more s-t paths in it. The running time O(mC) because the upper bounds on the number of edges in the residual graph is O(m), and the algorithm can run in at most O(C) iterations, where C is the sum of the capacities out of the source node. | ||
===== 7.2 Maximum Flows and Minimum Cuts in a Network ===== | ===== 7.2 Maximum Flows and Minimum Cuts in a Network ===== | ||
+ | This section takes a deeper look at the Ford-Furkelson (lol) Algorithm from the last section and proves a bunch of things about it. Furthermore, | ||
+ | |||
+ | (7.10) FF Algorithm returns a max-flow. | ||
+ | |||
+ | (7.11) Given a max-flow, min-cut can be computed in O(m) time. | ||
+ | |||
+ | (7.13) //In every flow network, the maximum value of an s-t flow is equal to the minimum capacity of an s-t cut.// | ||
===== 7.3 Choosing Good Augmenting Paths ===== | ===== 7.3 Choosing Good Augmenting Paths ===== | ||
+ | Much research is and has been devoted to improving the method by which we choose good augmenting paths, especially in the hope of minimizing the number of iterations for the Maximum-Flow Problem. The authors depict a worse case scenario where the FF Algorithm performs its upper bound number of iterations. The idea behind a solution is to pick large augmenting paths rather than smaller ones, because that improves the flow better. This will reduce the number of iterations, but increase the cost per iteration. To lessen this increase, the new algorithm avoids having to pick the maximum augmentation each time and instead comes with a scaling parameter that picks an augmentation that is deemed large enough. This way the solution will be reached more quickly (in fewer iterations) but without increasing the per-iteration cost too much. |