{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

MinCostFlow

# MinCostFlow - EXTENSIONS OF THE MAXFLOW PROBLEM 10A...

This preview shows pages 1–3. Sign up to view the full content.

EXTENSIONS OF THE MAXFLOW PROBLEM. 10A. Circulations with Demands. Suppose we have multiple sources and sinks, instead of a single s-t pair. Rather than maximize the total flow (which can be tricky to agree on due to fairness among different flows), we work with a *fixed* set of demands and supplies. Each node v has an associated demand dv. If dv > 0, we say v is a demand node; if dv = 0, v is a transshipment node; if dv < 0, v is a supply node (it supplies -dv units). A circulation is a function f such that (i) Capacity Constraint: 0 <= f(e) <= c(e), for all edges e (ii) Demand Condition: fin(v) - fout(v) = dv, for all nodes v So, instead of *optimization*, we now have a feasibility problem (satisfying demands at all nodes subject to capacity constraints). Clearly, if a feasible circulation exists then \sum_v dv = 0. This is because \sum_v (dv) = \sum_v ( fin(v) - fout(v) ). In the summation on the right, each edge appears twice, once in fin and once in fout, canceling each other. Algorithm. We convert the circulation problem into a flow problem. Introduce a source s, and join it to all supply nodes, with edge capacity equal to -dv. Similarly, add a sink node t, and join each demand node to t, with edge capacity dv. Now, the circulation is feasible if and only if the maxflow has value exactly \sum_{v demand node} dv. Example. 10B. Circulation with Demands and Lower Bounds. In some applications, certain amount of flow is forced on some edges. That is, f(e) >= l(e), and so there is a lower bound on the value of flow at some edges. The conditions for the flow, with demands, now change to: (i) l(e) <= f(e) <= c(e), for all edges e (ii) fin(v) - fout(v) = dv, for all nodes v. Now, again, decide if such a circulation is feasible. We will do this in two steps. I. First, solve for the circulation *without* any lower bounds. That is, we set an initial circulation of f_0(e) = l(e), for all edges. This circulation clearly satisfies the capacity constraint (both upper and lower bounds), but perhaps violates the demands. In particular, let L(v) = f_0^in (v) - f_0^out (v) = \sum_{e into v} l(e) - \sum_{v out of v} l(e).

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
If L(v) = dv, we have satisfied the demand at v. Otherwise, we need to *superimpose* another circulation that Will clear the imbalance introduced by f_0. So, we need to find a circulation f_1, where for node v,
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

### What students are saying

• As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran Temple University Fox School of Business ‘17, Course Hero Intern

• I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana University of Pennsylvania ‘17, Course Hero Intern

• The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

Jill Tulane University ‘16, Course Hero Intern