A Fast Heuristic Algorithm for Minimizing Congestion in the MPLS Networks

In the multiple protocol label-switched (MPLS) networks, the commodities are transmitted by the label-switched paths (LSPs). For the sake of reducing the total cost and strengthening the central management, the MPLS networks restrict the number of paths that a commodity can use, for maintaining the quality of service (QoS) of the users, the demand of each commodity must be sa-tisfied. Under the above conditions, some links in the network may be too much loaded, affecting the performance of the whole network drastically. For this problem, in [1], we proposed two mathematical models to describe it and a heuristic algorithm which quickly finds transmitting paths for each commodity are also presented. In this paper, we propose a new heuristic algorithm which finds a feasible path set for each commodity, and then select some paths from the path set through a mixed integer linear programming to transmit the demand of each commodity. This strategy reduces the scale of the original problem to a large extent. We test 50 instances and the results show the effectiveness of the new heuristic algorithm.


Introduction
In the modern broadband communication networks, namely the multiple protocol label-switched networks (MPLS), data packets are transmitted through the label-switched paths (LSPs).An important feature of MPLS is its ability to set up traffic engineering mechanism (MPLS-TE).It can control the structure of the traffic for each customer by setting restrictions on the number of routes the customer used.In order to preserve the QoS re-quirement, the demand of each customer must be satisfied.Using a single path would possibly increase the congestion of the network, while, on the other hand, a huge number of LSPs would decrease the performance of the protocol, and the intermediate situation is considered in the MPLS network.When limiting the number of supporting LSPs, we should try to minimize the congestion of the network under the condition that all data are transmitted.
This problem can be described formal as follows: Given a directed graph ( ) , which denotes the MPLS network, Vertex set V and edge set E denote the nodes and the links of the network, respectively.Each edge e E ∈ has a positive capacity e u , denoting the bandwidth of the corresponding link in the network.A set of commodities is denoted by L , each commodity l L ∈ has a source node l s , a destination node l t , an amount l d to be delivered and a maximal number of directed paths that the commodity can use l k .Limit- ing the number of paths that a commodity can use is in fact the k-splittable multi-commodity flow problem which is introduced by Baier [2].When 1 l k = for all l L ∈ , the problem collapses to the multi-commodity unsplittable flow problem, and when l k E ≥ for all l L ∈ , the problem is an ordinary multi-commodity flow problem.In this paper, we focus on minimizing congestion of the MPLS network under the condition that l k E < for all l L ∈ .Kleinberg [3] introduced several optimization versions of the unsplittable flow problem.In the "minimum congestion" version, the task is to find the smallest value 0 λ > such that there exists an unsplittable flow that uses at most a λ -fraction of the capacity of any edge.The "minimum number of rounds" version asks for a partition the set of commodities into a minimum number of subsets (rounds) and a feasible unsplittable flow for each subset.The "maximum routable demands" problem is to find a feasible unsplittable flow for a subset of demands maximizing the sum of demands in the subset.
As for the k-splittable flow problem, researchers generalize the above optimization versions and there is a lot of study on the related problems.Baier et al. [2], who solved the Maximum Budget-Constrained Singe-and Multi-commodity k-splittable flow problem using approximation algorithms.The authors proved that the maximum single-commodity k-splittable flow problem is NP-hard in the strong sense for directed graphs.Koch et al. [4] proved that the maximum multi-commodity flow problem was NP-hard in the strong sense for directed as well as undirected graphs, and showed that when P NP ≠ , the best possible approximation factor is 5 6 .Kollipoulous [5] considered the single-source Minimum Cost 2-splittable flow problem with budget constraints and with the assumption that the minimum edge capacity was larger than the maximum commodity demand.The author presented an approximation algorithm with factor (2, 1) for minimum congestion and cost.The result was generalized to the k-splittable problem by Salazar and Skutella [6] with a resulting approximation factor of ( ) References [7]- [11] are part of the researches solving the related single-and multi-commodity k-splittable flow problems exactly.The authors design algorithms that are based on branch-and-price strategy.Branch-andprice is usually used to solve large scale mixed integer linear programs.It combines column generation and branching strategies.In spite of this, the running time of the branch-and-price algorithm cannot obtain exact solutions in short time, and is not suitable for the high speed networks.
In the MPLS networks, the number of paths that a commodity can use is limited due to the reduction of the total cost, and we need to satisfy all demands of the commodities in a relative low congestion network.We aim to minimize the congestion as much as possible.Since this problem is NP-hard and obtaining exact solutions is impossible in short time, we must arrange the data on some paths quickly, hence the fast and good heuristic algorithms are badly needed.In this paper, we consider a special case that all the commodities in L have a common source node.
The main contribution of this paper is as follows: for the single-source multi-commodity k-splittable flow problem, we propose a new heuristic algorithm, different from the old algorithm that is proposed in [1].The new algorithm reduces the original problem to a small scale of mixed-integer linear programming.And in the last section, we test 50 instances, and the performance of the new algorithm outperforms the old one.
This paper is organized as follows: Section 2 describes the problem and two mathematical formulations are also given.In Section 3 we present a heuristic algorithm and the computational results are shown in Section 4. Section 5 concludes the paper.

Problem Description and Mathematical Models
We describe the problem in a more general case.In the minimum congestion k-splittable multi-commodity flow problem, a directed graph ( ) and E m = , with arc capacities 0 e u > , e E ∀ ∈ .A set of commodities is denoted by L , each commodity l L ∈ has a certain amount of demand l d to transmit, a source node l s and a destination node l t , and the number of paths that commodity l can use l k .The goal is to find a flow f that satisfies all demands of the commodities and minimize the congestion: Find the smallest α such that there exists a feasible flow satisfying the demands and the path restrictions if all capacities are multiplied by α .In [1], we first propose two different mathematical models, namely the arc-path and arc-flow model.In this paper, we also use the two models to describe our problem.

The Arc-Path Model
Let l P denotes the set of all paths of commodity l , l p x denotes the flow value on path , { } 0,1 , The objective function is to minimize the factor that each edge can multiply.The first constraints (1) ensure that the flow value on an edge e is at most α of its capacity, The constraints (2) ensure that each commodity's demand is satisfied, and constraints (3) in- dicate that only path p is used by commodity l , that is 1 ∈ .Constraints (4) limit the number of paths that a commodity can use.Constraints ( 5)-( 7) force the variables to take on feasible values.

The Arc-Flow Model
The variable hl e x refers to the flow value of the h -th path of commodity l L  , and binary variable hl e y denotes whether or not edge e is used by the h -th path of commodity l .We use ( ) , , 1, , , Constraints (8) ensure that each commodity's demand is satisfied, and constraints (9) ensure the flow on each edge is at most α times of its capacity, constraints (10) indicate that only if edge e is used by the h -th path of commodity l can the variable hl e x be positive.Constraints (11) are the flow conservation constraints and ( 12) are used to prevent cycles connecting to the h -th path of commodity l for each l L ∈ , 1, , l h k =  .Constraints (13)-( 15) force the variables to take on feasible values.
The main difference of the two mathematical models is that in the arc-path model each commodity has a feasible path set which contains all the paths for the commodity in the network and we only need to select some paths from the path set to transmit the demand.Sometimes, determining all the feasible paths for a commodity is not an easy thing.While in the arc-flow model, the transmitting paths for each commodity are found in the network directly.We know that both of the above two formulations are mixed integer linear problems which are NP-hard to solve, especially when the size of the network increases, the number of paths in l P grows expo- nentially, and it is impossible to obtain the exact solutions in short time.
We also note that the multi-source k-splittable problem cannot equally transform to the single-source k-splittable problem.If we add a super source node s , connecting it to each source node l s for l L ∈ , each edge ( ) , l s s has capacity l d , then a feasible flow in the new graph with flow value may not transform to a feasible flow satisfying all demands in the original graph.For example, a graph with five nodes 1 2 1 2 , , , , s s t t v , five edges ( ) ( ) ( ) ( ) ( ) , s t have demands 5 and 4, respectively.We add a super source node s as men- tioned above and a super sink node t .Add two edges ( ) 1 , t t and ( ) 2 , t t with capacity 5 and 4, respectively.Applying a maximum flow algorithm, such as the Edmonds-Karp Algorithm in [12], we obtain a maximum flow f from s to t and edge flow values are as follows: ( ) .We can note that f cannot transform to a flow in the original graph that satisfies the two commodities, since in f there is no path with positive flow value from 2 s to 2 t and the flow value from 1 s to 1 t is only 1.In this paper, for simplicity, we only consider the single-source multi-commodity k-splittable flow problem, denote the common source node by s .We propose a heuristic algorithm which largely reduce the size of the path set l P for each commodity l to a small path set l R , and solve the arc-path model with l P replaced by l R for l L ∈ .

The Heuristic Algorithm
In this paper, we assume that there is a feasible splittable flow f that satisfies all the demands of the commod- ities.We know that f may not meet all the path number restrictions of the commodities.In [1], we find at most l k paths for commodity l from f , and then reallocate flow to the unsatisfied commodities by solving a series of linear programming.In this paper, we also find paths for commodity l from f .On the one hand, we finds paths for each commodity until the total path value is equal to its demand, on the other hand, for sake of fairness of different commodities, we find at most one path for each commodity in a round.The steps of the algorithm are as follows and the flow chart of the algorithm is presented in Figure 1.
Step 1: Find a feasible splittable flow f in G that satisfies all the demands; Initialize : l R = ∅ for all l L ∈ , denoting the paths found from f for commodity l ; Step 2: For 1, , l L =  , if the total path value of the paths in l R is less than l d , find a path from the cur- rent flow f for commodity l that carry the largest flow value.Add the new path with its flow value to l R .Once a path is found, delete its flow from f , update the edge flow values in f ; Step 3: If there is some edge in f with positive flow value, go to step 2; otherwise, solve the arc-path model In the process of the algorithm, when the total path value already found for some commodity equals to its demand, we will not find paths for it in the next round.
with l P replaced by l R .Remarks: • In step 1, we can add a super sink node t to G , each sink node l t , l L ∈ is connected to t with capac- ity l d , denote the new graph by * G .Finding f that satisfies all the demands of the commodities is equivalent to find the maximum s t − flow in * G , since we assume the existence of f , the maximum and we can use any maximum flow algorithm to obtain the maximum s t − flow.• For each commodity l , the number of paths found is at most m and so the size of l R is largely smaller than l P .Since the existence of a feasible splittable flow f satisfying all demands, at the end of step 2 we have that 0 f = and the total path value of l R is l d for each l L ∈ .• The new algorithm applies the Round Robin strategy to find paths.In each round, each commodity finds at most one path in the current flow f , this strategy guarantees some fairness in certain degree.To show the effectiveness of the Round Robin strategy, we compare our algorithm to the one that does not use the strategy in the next section.The computational results show that this strategy does have some advantages for this problem.

Computational Results
The testing instances are generated by the Transit Grid generator developed by G.Waissi [13].The topology of those instances (see Table 1) looks close to the transportation networks and may be well-suited for the MPLS networks.In this paper, we propose some results for the multi-commodity case.Tests were performed on an Intel Core 2.4 GHz processor, 4 GB of RAM.We use CPLEX 12.5.1 to solve the arc-flow model.The running time of the CPLEX-solver is restricted to 50 seconds for each instance.The testing results are reported on Table 2 and Table 3.
In our testing, the total demands of the commodities in each instance are taken as the largest.While in practice, the demand of each commodity may be much less than the amount we take, hence the congestions we obtained may be larger than 1.For simplicity, we denote the algorithm in [1] by H1.In this section, we also compare our algorithm to the one that not using the Round Robin strategy.That is the one which find paths from f for each commodity until the total path values is its demand, and then go to the next commodity, denote the algorithm by H2.The new algorithm proposed in this paper is denoted by H3.In Table 2, for each instance name, the first column followed is the number of commodities, and then followed the number of paths each commodity can use, and the next four columns are the congestions obtained by H1, H2, H3 and the CPLEX-solver in 50 seconds, and the last three columns followed are the ratios between the congestions of each of the three heuristic algorithms and the CPLEX-solver for each instance.The empty positions in Table 2 and Table 3 are because of the size of the instance runs out of memory, and hence no results are given.In Table 3, the last four columns are the corresponding running times for each instance.
From Table 3, we can note that the time spent for H1, H2 and H3 has little differences, all of the three heuristic algorithms run faster than the CPLEX-solver, and when the size of the instance or the number of paths that a commodity can use increases, the time spent for the CPLEX-solver has a big fluctuation, and most of the instances cannot obtain the exact solutions in the given time, we list the congestions obtained by the CPLEXsolver in 50 seconds.From column 4 and column 6 in Table 2, we can see that in the 50 test instances, 64% of the congestion values obtained by H3 is less than H1, and 30% have the same congestion values, and H1 has only 6% of the 50 congestion values that is less than H3.From column 5 and column 6 in Table 2, we note that 34% of the congestion values obtained by H3 are less than H2, and only 16% of the congestion values obtained by H2 are less than H3, this shows that the Round Robin strategy is useful in the heuristic algorithm.From the last three columns of Table 2, we can note that for all the 40 sets of gaps, H1 has 24 instances that have gaps less than or equal to 1.5, while H3 has 31 instances with this property and H2 has 30.We can also note that H1 has 5 instances with gaps larger than 2 and H2 has 2 instances with this property, while H3 has no instance with gaps larger than 2. Hence we conclude that the performance of H3 outperforms H1 and H2.We know that increasing the size of path set for each commodity can minimize the congestion, but too large path set may also increasing the running time.So how to find paths for each commodity efficiently is a big challenge for this problem.

Conclusion
In this paper, we consider the problem of minimizing congestion in the MPLS networks.We propose a new heuristic algorithm.This algorithm is based on the strategy that reduces the whole feasible path set for each commodity, and a Round Robin strategy is also used.The computational results show that the new algorithm is Table 1.Sizes of testing instances.For each instance name, the first column followed is the number of vertices, and then the number of edges and finally the maximum capacity of the edges in the instance.much better than the algorithm that we proposed before.One main limitation of the new algorithm is that it needs to solve a mixed integer linear programming, when the number of commodities is sufficiently large, the running time of the algorithm may be large.However, the idea of the algorithm provides a good feasible direction for solving this problem.In the future, we will continue to do research on how to find better feasible path set for each commodity, not only this, we will design effective strategies to solve the mixed integer linear programming more quickly.
the flow value l p x can be non-negative.The notation M is any upper bound of the objective value, which can be selected by

−
to denote the outgoing arcs and ingoing arcs of node v V ∈ , respectively.Then the arc-flow model is stated as follows:

Figure 1 .
Figure1.The flow chart of the heuristic algorithm.In the process of the algorithm, when the total path value already found for some commodity equals to its demand, we will not find paths for it in the next round. 1

Table 2 .
The congestions obtained by the 3 testing heuristic algorithms and the CPLEX solver.The last three columns are the gaps between each of the 3 algorithms and the CPLEX-solver.

Table 3 .
Running times of the 3 test algorithms and the CPLEX solver.