Maximum Multi-Commodity Flow with Proportional and Flow-Dependent Capacity Sharing

: Multi-commodity ﬂow problems concerned with the transshipment of more than one commodity from respective sources to the corresponding sinks without violating the capacity constraints on the arcs. If the objective of the problem is to send the maximum amount of ﬂow within a given time horizon, then it becomes the maximum ﬂow problem. In multi-commodity ﬂow problems, the ﬂow of different commodities departing from their sources arriving at the common intermediate node have to share the capacity through the arc. The sharing of the capacity in the common arc (bundle arc) is one of the major issues in the multi-commodity ﬂow problems. In this paper, we introduce the maximum static and maximum dynamic multi-commodity ﬂow problems with proportional capacity sharing and present polynomial time algorithms to solve the problems. Similarly, we investigate the maximum dynamic multi-commodity ﬂow problems with ﬂow-dependent capacity sharing and present a pseudo-polynomial time solution strategy.


Introduction
A topological structure with links and crossings, known as arcs and nodes, respectively, is a network in which entities are transshipped from one point to another.The initial and the final points are termed as source and sink nodes, respectively.In a multi-terminal network, the transshipment of more than one commodity from the respective sources to the corresponding sinks satisfying the capacity constraints on the arcs is a multi-commodity flow (MCF) problem.Supply chain networks, message routine in telecommunication, and transportation networks are some examples of multi-commodity network topology.
Ford and Fulkerson [1] introduced the concept of the static multi-commodity flow problem, and thereafter many researchers have contributed to the different aspects of the multi-commodity flow problems [2][3][4][5].If the demand and supply of each commodity is to be maximized in the given time horizon, then the problem becomes a maximum dynamic multi-commodity flow problem.The static multi-commodity flow problem is polynomial time solvable by using the ellipsoid or interior point method, whereas the dynamic multicommodity flow problem is NP-hard [6].Kappmeier [7] provided the solution to the maximum dynamic multi-commodity flow problem using a time-expanded network in a pseudo-polynomial time complexity.Pyakurel et al. [8] presented a polynomial time algorithm for the maximum static flow problem and pseudo-polynomial algorithms for the earliest arrival transshipment and maximum dynamic flow problems with partial contraflow.A priority based multi-commodity flow problem can be found in Khanal et al. [9].Using the concept of intermediate storage introduced by Pyakurel and Dempe [10], Khanal et al. [11] presented a polynomial time algorithm for the maximum static-and a pseudo-polynomial time algorithm for the maximum dynamic-multi-commodity flow problems with intermediate storage.
The sharing of the bundle arc capacity is one of the major issues in the multi-commodity flow problems.For each commodity, if the sharing of the capacity of the bundle arc is set in proportion to the bottleneck capacity of path from their respective sources to the tail node of the bundle arc, then it is known as proportional capacity sharing.In this case, the shared capacity of the bundle arc for each commodity is fixed and the multi-commodity flow problem is reduced to an independent single commodity flow problem.To avoid the fractional flow, we can use ceiling and floor functions with an appropriate manner.Similarly, if the sharing of the capacity of the bundle arc is made according to the inflow rate of the flow of each commodity, then it is termed as flow-dependent capacity sharing.In this method, the shared capacity of the bundle arc may not always be the same as the flow on the arc may vary over the time.We investigate these two sharing techniques hereafter in Sections 2.1 and 2.2.
In this paper, we introduce the maximum multi-commodity flow problem using proportional as well as flow-dependent capacity sharing on the bundle arcs.We present the polynomial time algorithms for the static as well as the dynamic multi-commodity flow problems, using proportional capacity sharing in Section 3. Similarly, in Section 4 a pseudo-polynomial time algorithm for the dynamic multi-commodity flow problem with flow-dependent capacity sharing is presented.The paper is concluded in Section 5.

Basic Terminologies
Consider a network topology G = (N, A, K, u, τ, d i , S, D, T) with commodity i ∈ K = {1, 2, . . ., k}, set of nodes N and set of arcs A. Here, d i represents the demand/supply of each commodity i ∈ K which is routed through a unique source-sink pair s i -t i , where s i ∈ S ⊆ N and t i ∈ D ⊆ N.Each arc e = (v, w) ∈ A with head(e) = w and tail(e) = v is equipped with a capacity function u:A → R + that restricts the flow of the commodity and a non-negative transit time function τ : A → R + that measures the time to transship the flow from node v to node w.Let → δ (v) and ← δ (v) be the set of outgoing arcs from node v and the incoming arcs to node v, respectively.We denote P i as the set of all paths of the commodity i such that P ∈ P i is a s i -t i path and P [si,v] ∈ P i represents the path from s i to the intermediate node v.The time horizon is denoted by T = {0, 1, . . ., T} in discrete time settings and T = [0, T + 1) in continuous time settings.In case of static flow, the time parameters T and τ are absent.

Proportional Capacity Sharing
The multi-commodity flow problem differs from the single commodity flow problem due to the bundle constraints and the unique source-sink flow for each commodity.Our assumption is that the nature of flows inside the same commodity group are homogeneous and between the commodity groups are heterogeneous yet uniform in the occupancy rate of the arc capacity.To share the capacity of the bundle arc, we propose a proportional capacity sharing technique depending on the minimum of the arc capacity of paths P [si,v] , (that is, bottleneck capacity of path P [si,v] ) for each commodity i from their respective sources s i to the tail v of bundle arc e = (v, w) as follows: Let u e be the capacity of a bundle arc e, then proportional sharing of capacity u e for each commodity i ∈ K is, where P [si,v] is the path from s i to the tail v of bundle arc e, for all i ∈ K and a is an arc in P [si,v] with minimum capacity.Here, u i e represents the portion of the capacity of the arc e allocated for the commodity i.Clearly, the sum of the shared capacities over each commodity is equal to the original arc capacity, i.e., ∑ i ∈ K u i e = u e .
The shared capacity may be in fraction, i.e., u i e = int(u i e ) + fra(u i e ), the sum of the integral part and the fractional part, respectively.The fractional capacities can be converted into the integral capacities as follows:

•
Find the sum ∑ fra(u i e ).If ∑ fra(u i e ) = p, then the first p fractional capacities with the greatest fractional part (with descending order of the fractional part) are rounded up using the ceiling function .and the remaining capacities are rounded below by the floor function . .

•
If the same fractional part occurs in more than one commodity then priority is given to the capacity with the greatest integral part among them.

•
In case of equal integral parts, priority goes to the commodity with the higher demand among them.If the demand values are also the same, then either of them can be rounded up.
It is to be noted that if u i e < 1 and has no alternative path for commodity i, then it may block the transshipment of the flow.In such a case, the fractional capacity is to be accepted.

Flow-Dependent Capacity Sharing
In the proportional capacity sharing technique the shared capacity of each commodity remains fixed at each time step θ.In this subsection, we present the flow-dependent capacity sharing technique, where the share of the capacity for each commodity depends on the inflow rate of the flow f in the predecessor arcs.At any instance of time θ, if a bundle arc e = (v, w) with the capacity u e holds more than one commodity i ∈ K, then the flow-dependent capacity sharing of u e for each commodity i ∈ K is, where α(e) is the set of the predecessor arcs of bundle arc e so that a α(e) ⇒ head(a) = tail(e) and u i e (θ) is the portion of the capacity of arc e for the commodity i at time θ.For each time θ, the sum of the portion of the shared capacities u i e (θ) over all the commodities i ∈ K is equal to the original arc capacity, i.e., ∑ i ∈ K u i e (θ) = u e .If the shared capacities are in fraction, we can convert them into integer values as described in Section 2.1.

Maximum Static Multi-Commodity Flow
In the static network G = (N, A, K, u, d i , S, D) the multi-commodity flow ϕ with proportional capacity sharing is the sum of the non-negative flows ϕ i : A → R + for each i with demand d i satisfying the proportional capacity sharing Equation (1) together with the conditions (3) and (4).
The constraints in (3) represent the supply/demand at the source/sink nodes and the flow conservation constraints at the intermediate nodes, whereas the constraints in (4) represent the boundedness of the flow on the arcs by their capacities.By taking the sum over each commodity in the later equation, we get the bundle constraints 0 ≤ ∑ i∈K ϕ i e ≤ ∑ i∈K u i e = u e for all e ∈ A. For a maximum static multi-commodity flow problem with proportional capacity sharing the objective is to maximize the total flow value ∑ i∈K d i = |ϕ| subject to the constraints (1), ( 3) and (4).
We now introduce the maximum static multi-commodity flow problem with proportional capacity sharing as follows: Problem 1.For the given static multi-commodity network G = (N, A, K, u, d i , S, D) the maximum static multi-commodity flow problem with proportional capacity sharing is to transship the maximum flow from s i to t i , where the shared capacity for each commodity i ∈ K on the bundle arc is depending on the minimum capacity of paths from the respective source to the tail node of the bundle arc.
To solve the problem, we first reduce the multi-commodity flow problem into k independent single commodity flow problems by sharing the capacity of the bundle arc using Equation (1).For each commodity i maximum static flow ϕ i is obtained and the sum of the flows for the commodities is the maximum static flow value |ϕ|.We now present the algorithm to solve Problem 1.
Theorem 1. Algorithm 1 solves the maximum static MCF problem correctly in polynomial time complexity.N, A, K, u, d i , S, D).

1.
Construct k independent sub-problems by proportional capacity sharing (1) on bundle arcs for all i ∈ K.

2.
Compute the solution ϕ i to the static maximum flow problem for all i.
Output: Maximum static MCF on G with proportional capacity sharing.

Maximum Dynamic Multi-Commodity Flow
For a given dynamic network G with constant transit times τ on arc e, the MCF over time function f with proportional capacity sharing is the sum of the flows f i : A × T → R + , satisfying the proportional capacity sharing Equation (1) together with the constraints ( 5) and (7).
Here, the constraints in (5) represent the supply/demand at the sources/sinks and the flow conservation at the intermediate nodes on time horizon T. The non-conservation of the flow at the intermediate nodes in any time step β in T = {0, 1, . . ., T} are represented by the constraints in (6).Similarly, (7) represents that the flows on the arcs are bounded above by their capacities.With these constraints, together with Equation (1), we introduce the maximum dynamic MCF problem with proportional capacity sharing, which maximizes the total flow value ∑ i∈K d i = | f | within the given time horizon T as follows: Problem 2. For given dynamic multi-commodity network G = (N, A, K, u, τ , d i , S, D, T), the maximum multi-commodity flow problem with proportional capacity sharing is to transship the maximum amount of flow from s i to t i within the given time horizon T, where the shared capacity for each i ∈ K on the bundle arc is depending on the minimum capacity of paths from the respective source to the tail node of the bundle arc.
We now present an algorithm to solve Problem (2).A, K, u, d i , S, D).

1.
Construct k independent sub-problems by proportional capacity sharing (1) on the bundle arcs for all i ∈ K.

2.
Compute the maximum static flow ϕ i for all i using Algorithm 1.

3.
Decompose the flow ϕ i into path flows ϕ i P .

4.
Determine the maximum dynamic flow for each i ∈ K using temporally repeated flow such that Output: Maximum dynamic MCF on G with proportional capacity sharing.

Maximum MCF with Flow-Dependent Capacity Sharing
For a given dynamic network G with constant transit times τ on arc e, the multicommodity flow over time function f with flow-dependent capacity sharing is the sum of flows f i : A × T → R + , satisfying the constraints ( 8)-( 12).
Here, the constraints in ( 8) and ( 9) have the usual meanings as represented in Section 3.2.The bundle constraints bounded by the arc capacities are presented by (10).The constraints in (11) represent the flow-dependent capacity sharing and the non-negativity of flows are represented by the constraints in (12).We now present the maximum dynamic MCF problem with flow-dependent capacity sharing satisfying the above constraints as follows: Problem 3.For a given multi-commodity network G = ( N, A, K, u,τ , d i , S, D, T), the maximum multi-commodity flow problem with flow-dependent capacity sharing is to transship the maximum amount of flow from s i to t i within the given time horizon T, where shared capacity for each i ∈ K on the bundle arc is depending on the inflow of incoming arcs of the bundle arc.
To solve the problem, we use a time-expanded layer graph.

Multi-Commodity Time-Expanded Layer Graph
The multi-commodity time-expanded layer graph is a three-dimensional graph that contains the copy of nodes from the underlying static network for every discrete time step and for each commodity.It is applicable to solve the variety of flow over time problems by applying the algorithms and techniques developed for the static network flows.For a given network G with integral transit time on the arcs and the time horizon T, the T-timeexpanded layer graph G T is obtained by creating T + 1 copies of node set N, which are labeled as N(0), N(1), . . ., N(T), together with an θ th copy of node v labeled as v(θ), θ ∈ T and the commodities i ∈ K.For every arc e = (v, w) ∈ A and θ ∈ {0, 1, . . . ,T − τ e }, there is an arc e i (θ) from v i (θ) to w i (θ + τ e ) with the same capacity of arc e for a single commodity arc and the sharing capacity for bundle arc e.If intermediate storage is allowed at node v, then the arc from v i (θ) to v i (θ + 1) represents the holdover arc with infinite capacity that is used to hold the flow for the unit time interval [θ, θ + 1) for all θ ∈ {0, 1, . . . ,T}.
For the graphical representation, we present a three-dimensional layer graph G T with the set of node N, time T, and commodity K as the coordinate axes (see Figure 1).Each commodity i ∈ K preforms the layers of the graphs in a vertical line.In Figure 1, network (a) represents a two-commodity network in which commodity-1 is transshipped from s 1 to t 1 and commodity-2 from s 2 to t 2 .Arc (x, y) is the bundle arc, which carries both commodities.Figure 1b represents the time-expanded layer graph of Figure 1a with the time horizon T = 6, where parallel arcs on (x, y) share the capacity for each commodity with the flow-dependent capacity sharing technique.At time step θ = 0 and θ = 1, no flow of commodity-1 reaches arc (x, y), so only commodity-2 is transshipped on it; however, the capacity is shared after among the commodities.Similarly, the bundle arc transships only commodity-1 at time θ = 4 due to the absence of commodity-2.
The multi-commodity time-expanded layer graph is a three-dimensional graph that contains the copy of nodes from the underlying static network for every discrete time step and for each commodity.It is applicable to solve the variety of flow over time problems by applying the algorithms and techniques developed for the static network flows.For a given network G with integral transit time on the arcs and the time horizon T, the T-timeexpanded layer graph G T is obtained by creating T + 1 copies of node set N, which are labeled as N(0), N(1), …, N(T), together with an  copy of node v labeled as v(),  ∈  and the commodities  ∈ .For every arc e = (v, w) ∈ A and  ∈ 0, 1, … ,  −  , there is an arc  () from  () to  ( +  ) with the same capacity of arc e for a single commodity arc and the sharing capacity for bundle arc e.If intermediate storage is allowed at node v, then the arc from  () to  ( + 1) represents the holdover arc with infinite capacity that is used to hold the flow for the unit time interval [,  + 1) for all  ∈ 0, 1, …,T}.
For the graphical representation, we present a three-dimensional layer graph G T with the set of node N, time T, and commodity K as the coordinate axes (see Figure 1).Each commodity  ∈  preforms the layers of the graphs in a vertical line.In Figure 1, network (a) represents a two-commodity network in which commodity-1 is transshipped from s1 to t1 and commodity-2 from s2 to t2.Arc (x, y) is the bundle arc, which carries both commodities.Figure 1b represents the time-expanded layer graph of Figure 1a with the time horizon T = 6, where parallel arcs on (x, y) share the capacity for each commodity with the flow-dependent capacity sharing technique.At time step  = 0 and  = 1, no flow of commodity-1 reaches arc (x, y), so only commodity-2 is transshipped on it; however, the capacity is shared after among the commodities.Similarly, the bundle arc transships only commodity-1 at time  = 4 due to the absence of commodity-2.

1.
Construct a multi-commodity time-expanded layer graph G T .2.
Share the capacity on the bundle arcs (parallel arcs in G T ) with flow-dependent capacity sharing (2) at each θ ∈ T.

3.
Decompose the static flow ϕ i into path flows ϕ i P (θ) in G T at each time step θ.
Output: Maximum dynamic MCF on G with proportional capacity sharing.

Conclusions
The maximum MCF problem deals with the transshipment of the maximum amount of flow of more than one different commodity from respective sources to the corresponding sinks within the given time horizon.Allocation of the capacity of the bundle arc to each commodity is one of the major issues in the multi-commodity flow problem.To deal with this problem we have proposed proportional capacity sharing and flow-dependent

Algorithm 1 :
Maximum static MCF algorithm with proportional capacity sharing Input: Given static multi-commodity flow network G = (

Theorem 2 .Algorithm 2 :
Algorithm 2 provides the feasible solution to the maximum dynamic MCF problem with proportional capacity sharing in polynomial time.The maximum dynamic MCF algorithm with proportional capacity sharing Input: Given static multi-commodity flow network G = (N,

Figure 1 .Algorithm 3 :
Figure 1.(b) represents the time-expended layer graph G T of given network (a).Depending on the time-expanded layer graph, we now present the algorithm to solve Problem 3. Theorem 3. A feasible solution to the maximum dynamic MCF problem with flow-dependent capacity sharing can be obtained by using Algorithm 3 in pseudo-polynomial time.

Figure 1 .
Figure 1.(b) represents the time-expended layer graph G T of given network (a).Depending on the time-expanded layer graph, we now present the algorithm to solve Problem 3. Theorem 3. A feasible solution to the maximum dynamic MCF problem with flow-dependent capacity sharing can be obtained by using Algorithm 3 in pseudo-polynomial time.

Algorithm 3 :
Maximum dynamic MCF algorithm with flow-dependent capacity sharingInput: Given dynamic multi-commodity flow network G = (N, A, K, u, τ, d i , S, D, T).