The multi-commodity flow problem is a network flow problem with multiple commodities (flow demands) between different source and sink nodes.
G(V,E)
(u,v)\inE
c(u,v)
k
K1,K2,...,Kk
Ki=(si,ti,di)
si
ti
i
di
fi(u,v)
i
(u,v)
fi(u,v)\in[0,1]
fi(u,v)\in\{0,1\}
(1) Link capacity: The sum of all flows routed over a link does not exceed its capacity.
\forall(u,v)\in
k | |
E:\sum | |
i=1 |
fi(u,v) ⋅ di\leqc(u,v)
(2) Flow conservation on transit nodes: The amount of a flow entering an intermediate node
u
\foralli\in\{1,\ldots,k\}:\sumwfi(u,w)-\sumwfi(w,u)=0 when u ≠ si,ti
(3) Flow conservation at the source: A flow must exit its source node completely.
\foralli\in\{1,\ldots,k\}:\sumwfi(si,w)-\sumwfi(w,si)=1
(4) Flow conservation at the destination: A flow must enter its sink node completely.
\foralli\in\{1,\ldots,k\}:\sumwfi(w,ti)-\sumwfi(ti,w)=1
Load balancing is the attempt to route flows such that the utilization
U(u,v)
(u,v)\inE
U(u,v)= |
| |||||||||
c(u,v) |
The problem can be solved e.g. by minimizing
\sumu,v\in(U(u,v))2
Umax
\forall(u,v)\inE:Umax\geqU(u,v)
In the minimum cost multi-commodity flow problem, there is a cost
a(u,v) ⋅ f(u,v)
(u,v)
\sum(u,v)\left(a(u,v)
k | |
\sum | |
i=1 |
fi(u,v) ⋅ di\right)
In the maximum multi-commodity flow problem, the demand of each commodity is not fixed, and the total throughput is maximized by maximizing the sum of all demands
k | |
\sum | |
i=1 |
di
The minimum cost variant of the multi-commodity flow problem is a generalization of the minimum cost flow problem (in which there is merely one source
s
t
Routing and wavelength assignment (RWA) in optical burst switching of Optical Network would be approached via multi-commodity flow formulas.
Register allocation can be modeled as an integer minimum cost multi-commodity flow problem: Values produced by instructions are source nodes, values consumed by instructions are sink nodes and registers as well as stack slots are edges.[2]
In the decision version of problems, the problem of producing an integer flow satisfying all demands is NP-complete,[3] even for only two commodities and unit capacities (making the problem strongly NP-complete in this case).
If fractional flows are allowed, the problem can be solved in polynomial time through linear programming,[4] or through (typically much faster) fully polynomial time approximation schemes.[5]
Multicommodity flow is applied in the overlay routing in content delivery.[6]
Add: Jean-Patrice Netter, Flow Augmenting Meshings: a primal type of approach to the maximum integer flow in a multi-commodity network, Ph.D dissertation Johns Hopkins University, 1971