Circulation problem
Appearance
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 multiple 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 polynomial solution to this problem is linear programming[1].
Related problems
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
- Multi-commodity circulation - Solve without optimising cost.
- Simple circulation - Just use one commodity, and no cost.
- 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.
- Minimum cost maximum flow problem - Let the back edge have unlimited capacity.
- 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 - 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 an edge 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.
References
- ^ 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)