Circulation problem: Difference between revisions

Content deleted Content added
m clean up using AWB
OAbot (talk | contribs)
m Open access bot: url-access updated in citation with #oabot.
 
(26 intermediate revisions by 24 users not shown)
Line 1:
{{Short description|Generalization of network flow problems}}
The '''circulation problem''' and its variants isare a generalisation of [[flow network|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, youthere haveare multiple commodities flowing through the network, and a cost on the flow.
 
== Definition ==
Given is a flow network <math>G(V,E)</math> with:
 
:<math>l(v,w)</math>, lower bound on flow from node <math>v</math> to node <math>w</math>,
Line 15 ⟶ 16:
Finding a flow assignment satisfying the constraints gives a solution to the given circulation problem.
 
In the minimum cost variant of the problem, minimiseminimize
 
: <math>\sum_{(v,w) \in E} c(v,w) \cdot f(v,w).</math>
Line 28 ⟶ 29:
|}
 
There is also a lower bound on each flow of commodity.
The conservation constraint must be upheld for individually for the commodities:
 
:{|
| <math>\,l_i(v,w) \leq f_i(v,w)</math>
|}
 
The conservation constraint must be upheld for individually for the commodities:
 
:<math>\ \sum_{w \in V} f_i(u,w) = 0.</math>
 
== Solution ==
For the circulation problem, many polynomial algorithms have been developed (e.g., [[Edmonds-KarpEdmonds–Karp algorithm|Edmonds and Karp]], 1972; Tarjan 1987-1988). Tardos found the first strongly polynomial algorithm.<!--ref whichname="Ta85">{{cite articles?journal --| author = Éva Tardos | title = A strongly polynomial minimum cost circulation algorithm | journal = Combinatorica | date = 1985 | volume = 5 | issue = 3 | pages = 247–255 | doi = 10.1007/BF02579369}}</ref>
<!-- which articles? -->
 
For the case of multiple commodities, the problem is [[NP-complete]] for integer flows.<ref name="EIS76">{{cite journal | author = S. Even and A. Itai and A. Shamir | title = On the Complexitycomplexity of Timetabletimetable and Multicommoditymulti-commodity Flowflow Problemsproblems | publisher = SIAM | year = 1976 | journal = SIAM Journal on Computing | volume = 5 | pages = 691–703 | url = http://link.aip.org/link/?SMJ/5/691/1 | doi = 10.1137/0205048 | issue = 4 | url-status = dead | archiveurl = https://archive.today/20130112133748/http://link.aip.org/link/?SMJ/5/691/1 | archivedate = 2013-01-12 | url-access = subscription }}</ref> For fractional flows, it is solvable in [[polynomial time]], as one can formulate the problem as a [[linear programming|linear program]].
 
== Related problems ==
Line 45 ⟶ 53:
* Multi-commodity circulation - Solve without optimising cost.
* Simple circulation - Just use one commodity, and no cost.
* [[Multi-commodity flow problem|Multi-commodity flow]] - If <math>K_i(s_i,t_i,d_i)</math> denotes a demand of <math>d_i</math> for commodity <math>i</math> from <math>s_i</math> to <math>t_i</math>, create an edge <math>(t_i,s_i)</math> with <math>ll_i(t_i,s_i) = cu(t_i,s_i) = d_i</math> for all commodities <math>i</math>. Let <math>ll_i(u,v)=0</math> for all other edges.
* [[Minimum cost multi-commodity flow problem]] - As above, but minimiseminimize the cost.
* [[Minimum cost flow problem]] - As above, with 1 commodity.
* [[Maximum flow problem]] - Set all costs to 0, and add an edge from the sink <math>t</math> to the source <math>s</math> with <math>l(t,s)=0</math>, <math>cu(t,s)=</math>∞ and <math>ac(t,s)=-1</math>.
* [[Minimum cost maximum flow problem]] - First find the maximum flow amount <math>m</math>. Then solve with <math>l(t,s)=cu(t,s)=m</math> and <math>ac(t,s)=0</math>.
* [[Shortest path problem|Single-source shortest path]] - Let <math>l(u,v)=0</math> and <math>c(u,v)=1</math> for all edges in the graph, and add an edge <math>(t,s)</math> with <math>l(t,s)=cu(t,s)=1</math> and <math>ac(t,s)=0</math>.
* [[Shortest path problem|All-pairs shortest path]] - Let all capacities be unlimited, and find a flow of 1 for <math>v(v-1)/2</math> commodities, one for each pair of nodes.
 
Line 56 ⟶ 64:
<references/>
 
[[Category:Network flow problem]]
[[Category:Mathematical problems]]