Circulation problem

This is an old revision of this page, as edited by Nils Grimsmo (talk | contribs) at 10:42, 2 September 2006 (Adding variants). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The circulation problem and its variants is a generalisation of network flow problems, with the added constraint of a lower bound on edge flows, and with flow conservation also being required for the source and sink (i.e. there are no special nodes). In variants of the problem, you have multiplem commodities flowing through the network, and a cost on the flow.

Definition

Given a flow network   with

  Lower bound on flow from   to  .
  Upper bound (often denoted   instead of  )
  Cost of a unit of flow on  
  The source, sink, and demand of commodity  
  The flow of commodity   from   to  
 

You have the constraints

  Skew symmetry
  Capacity constraints
  Flow conservation

Minimise

 

Solution

The only known solution to this problem is linear programming[1].

Below are given some problems, and how to solve them with the general circulation setup given above.

  • Minimum cost multi-commodity circulation problem - Using all constraints given above.
  • Minimum cost circulation problem - Use a single commodity
  • Minimum cost multi-commodity flow problem. Set all lower bounds to 0. Add an edge from the sink to the source with cost less that the negative sum of all other edges. Control the amount of flow by adjusting  .
  • Minimum cost flow problem. As above, with 1 commodity.
  • Maximum flow problem. Set all costs to 0, and add an edge from the sink to the source with negative cost.
  • Single-source shortest path. Set all capacities to 1, and find the cheapest flow of 1.
  • Multi-commodity flow. Set all costs to 0. Back-edges with  .
  • Maximum flow. Solve with 1 commodity, and maximize the flow by adding   with negative cost.
  • All-pairs shortest path. Let all capacities be unlimited, and find a flow of 1 for   commodities, one for each pair of nodes.
  1. ^ Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (2001) [1990]. "29". Introduction to Algorithms (2nd edition ed.). MIT Press and McGraw-Hill. pp. 788–789. ISBN 0-262-03293-7. {{cite book}}: |edition= has extra text (help)CS1 maint: multiple names: authors list (link)