In this paper, we made a detail analysis for the ESAMPH algorithm, and proposed ESAMPH_D algorithm according to the insufficient of ESAMPH algorithm. The ESAMPH_D algorithm does not consider those paths that do not satisfy the delay constraint, so we can ensure that all paths be taken into account will meet the limit of delay constraint, then we find the least costly path in order to build a minimum cost multicast tree. Simulation results show that the algorithm is better than ESAMPH algorithm in performance.
Multicasting is a technique of communication that allows transmit information to multiple destination hosts at the same time. With the development of the high-performance network technology, such as video on demand, teleconferencing, online education and the increasingly widespread use of many other real-time multimedia applications, multicast technology is becoming the key to support these technologies. While the multicast routing algorithm is one of the key technologies to achieve multicast communication, to build a good performance multicast tree often become the best choice for multicast routing algorithm. Good multicast routing algorithms are often able to minimize network cost in a short time and meet certain QoS constraints so that we can make use of network resources efficiently. Because real-time multimedia applications’ demand for delay is growing higher, so the research on multicast routing algorithm that not only can meet the end to end delay constraint, but also can optimize the network resources is very important, and it is also a hot research topic [
From global point of view, optimize network resources can be seen as optimize a multicast routing tree’s total cost, finding a minimum cost multicast routing tree can be formalized as Steiner tree problem. As Steiner tree problem is NP-hard problem [
Generally, we formalized the network as an empowerment undirected graph, in which is the set of nodes of the graph, each node represents a host or a router. is the set of edges in graph and represents the number of edges (or links) of the set. represents the number of nodes in graph and. is the source node, represents the set of destination nodes. Suppose that is the set of trees that rooted with s and ended with, represents the path that from the source node to node in tree.
We defines two functions on each edge, cost function and delay function (represents a positive real number set in these functions). Here, the cost can be seen as the price of use the link or the measure of some resources on network, the delay is the total delay when a packet get through the link, including queuing delay, sending delay and transmission delay.
In the real transmission problems, it often demand to minimum the cost while meet the certain requirements of the delay constraint at the same time. So, we can get the model of the problem like this:
Here, is a positive real number, it presents the end to end delay constraint.
The basic idea of the algorithm of ESAMPH is mainly based on the MPH algorithm that can generated a low cost tree, it choose the node that has more shortest path pass through to reduce the multicast tree cost further. The algorithm calculated the minimum cost path among all multicast nodes at first, for, if the minimum cost path which satisfies the delay constraint pass through the node (except the head and the tail node), then adjustment the metric factor (increase the metric value), find the maximum metric factor and save it. Second, we treat the source node S as the multicast tree. Third, calculate the minimum cost path from the other nodes to multicast tree. If the minimum cost path include the maximum metric value node, then we let it divided by an integer (the integer is bigger than one) and then compare, we choose the minimum cost path connect to the tree after compare. Repeat the steps above, until all of the destination nodes are connected to the tree.
As we can see from the process above, the algorithm calculate the minimum cost path among all multicast nodes by using the Dijkstra algorithm at first, so that the path that not satisfy with the delay constraint may also be included, it adds extra space cost. At the same time, it may also leads to that the path is not satisfy with the delay constraint when choose the minimum cost path to join in the multicast tree.
According to the insufficient of ESAMPH algorithm, this paper proposed the algorithm named ESAMPH_D, this algorithm can be described briefly as below.
Here we use three sets, and. represents the set of minimum cost path that satisfy the delay constraint from each destination node to the other nodes. represents the set of nodes which are included by the path in. represents the set of nodes that have more shortest path get through.
Step 1. Use the improved Dijkstra algorithm seeking the minimum cost path that satisfy the delay constraint from the destination nodes to the other nodes, add the path into and add the nodes which are in these paths into.
Step 2. For, if the minimum cost path get through the node, adjustment the metric factor (increase the metric value), then find the node that has the maximum metric value, to join in the set of.
Step 3. Rooted with the source node and initial multicast tree.
Step 4. Choose a destination node from set, then find all paths from set which associated with the node that have not joined into the tree but satisfy the delay constraint. If none of the paths contains the nodes included in, choose the minimum cost path to join into. Or, we let the cost on this path multiplied by a coefficient, then make a comparison, and choose the minimum cost path link to.
Step 5. Repeat the Step 4 until all of the destination nodes are all joined into the spanning tree.
The ESAMPH_D algorithm does not calculate all the minimum cost path between every two nodes, but just calculate the minimum cost path that satisfy the delay constraint, so, this algorithm has a low spatial complexity compared with ESAMPH algorithm. On the other hand, the fourth step of this algorithm is to choose the minimum cost path from the minimum set of path that satisfy the delay constraint, and the set of nodes that have more shortest path pass through may be more likely to be selected. Thereby, the algorithm can reduce the cost of the whole tree by achieving more link sharing, and improve the performance of the whole tree, it can overcome the shortcoming of the ESAMPH algorithm when choose the next destination node to join into the tree while the cost is the minimum but the delay is not satisfy the delay constraint.
Here are the pseudo codes for the algorithm ESAMPH_D:
Theorem 1. The time complexity of ESAMPH_D is O(mn2).
Proof: Consider n represents the network nodes, s represents the source node, and m represents the destination nodes. The first step of the algorithm is use the improved Dijkstra algorithm to find the minimum cost path that satisfy delay constraint from destination nodes to the other nodes, it’s time complexity is. The second step is to calculate the weights for the nodes on each paththe complexity is, and the path like this has in total, so the complexity is. The time complexity of the third step is a constant number. The fourth step choose the minimum cost path that satisfy the delay constraint to the tree, we consider the times of comparisons: suppose the number of nodes that have added to the tree are, then we need to decide how to add the number node to the tree. The worst cast is that it has nodes added to the tree, there still have destination nodes are not added, in the selection process, if the relative path contains the node in, then we must compare times, Therefore we need to compare times before we find the best path, so, the complexity of Step 4 and Step 5 is:
Because, so the total time complexity of the algorithm is:
The time complexity of ESAMPH algorithm is O(mn2), so ESAMPH_D is equivalent to ESAMPH in the time complexity.
Theorem 2. The space complexity of ESAMPH_D is lower than (or equal to in worst) the algorithm ESAMPH.
Proof: By analysis of ESAMPH and ESAMPH_D, we can find that the space cost of the algorithm is mainly lies on Step 1 and Step 2, the ESAMPH has to store the paths with storage locations, while ESAMPH_D just needs storage locations, and represents the maximum number of paths that satisfy the delay constraint from one destination node to the other nodes, so,. Above all, the space complexity of ESAMPH_D equals to ESAMPH in worst.
In this simulation experiment part, we use the random graphs to verification the effectiveness and correctness of the improved algorithm, and the random graphs used in the simulation are constructed using the method proposed by Waxman [8,9]. The nodes of a graph are randomly placed on a Cartesian coordinate grid with unit spacing, considering all possible pairs of node, edges are placed with probability like:
where is the Manhattan distance between nodes and, L is the maximum possible distance between two nodes, and are in the range and can be selected to obtain desired characteristics in the graph. Here, we choose and.
tree cost and the delay constraint: make the other conditions remaining, change the delay constraint from 5 to 30, the increments is 5 each time. We can see that the cost of the multicast tree is lower when using the ESAMPH_D algorithm at the same delay constraint condition.
This paper proposed the ESAMPH_D algorithm based on the weak point of ESAMPH algorithm, the improved algorithm did not add any extra cost in space or time when generating the low-cost multicast tree, so it ensuring the availability of the algorithm in practical application.