- About this Journal ·
- Abstracting and Indexing ·
- Aims and Scope ·
- Annual Issues ·
- Article Processing Charges ·
- Author Guidelines ·
- Bibliographic Information ·
- Citations to this Journal ·
- Contact Information ·
- Editorial Board ·
- Editorial Workflow ·
- Free eTOC Alerts ·
- Publication Ethics ·
- Recently Accepted Articles ·
- Reviewers Acknowledgment ·
- Submit a Manuscript ·
- Subscription Information ·
- Table of Contents

The Scientific World Journal

Volume 2013 (2013), Article ID 718152, 11 pages

http://dx.doi.org/10.1155/2013/718152

## Many-to-Many Multicast Routing Schemes under a Fixed Topology

^{1}Zhejiang Water Conservancy and Hydropower College, Hangzhou, Zhejiang 310018, China^{2}Department of Mathematics, Shaoxing University, Shaoxing, Zhejiang 312000, China

Received 11 January 2013; Accepted 31 January 2013

Academic Editors: A. Bogliolo and J. Zheng

Copyright © 2013 Wei Ding et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

Many-to-many multicast routing can be extensively applied in computer or communication networks supporting various continuous multimedia applications. The paper focuses on the case where all users share a common communication channel while each user is both a sender and a receiver of messages in multicasting as well as an end user. In this case, the multicast tree appears as a terminal Steiner tree (TeST). The problem of finding a TeST with a quality-of-service (QoS) optimization is frequently NP-hard. However, we discover that it is a good idea to find a many-to-many multicast tree with QoS optimization under a fixed topology. In this paper, we are concerned with three kinds of QoS optimization objectives of multicast tree, that is, the minimum cost, minimum diameter, and maximum reliability. All of three optimization problems are distributed into two types, the centralized and decentralized version. This paper uses the dynamic programming method to devise an exact algorithm, respectively, for the centralized and decentralized versions of each optimization problem.

#### 1. Introduction

Multicast routing has been increasingly used in computer or communication networks supporting various multimedia applications, such as real-time audio and video conferences, entertainment, and distance learning, [1, 2]. Multicast routing is known as a *multicast tree* [3], which can reduce the usage of network resource, such as network cost and bandwidth. Multicast tree can be reduced to be a *Steiner tree* in mathematics [4].

In a real world, a large number of continuous multimedia applications drive the consumers to advance their *quality of service* (QoS) requirements [2, 5, 6] (e.g., cost, delay, and bandwidth). As we all know, the minimum cost multicast tree (Steiner tree) problem is NP-hard [7] and the minimum diameter multicast tree (Steiner tree) problem is polynomial solvable [8]. Furthermore, the multicast tree problem with additional QoS requirements is frequently harder to solve. For example, in past decade, a number of heuristics [9, 10] and distributed algorithms [11, 12] have been devised for finding a minimum cost delay-constrained multicast tree. Surprisingly, the *fixed topology* version of this problem, in which the configuration of multicast tree is given in advance with a tree topology, is easier than the classic version. Wang and Jia [13] designed a pseudo-polynomial-time algorithm, and Xue and Xiao [14] devised a full polynomial time approximation scheme. Not only that, we believe the idea of under a fixed topology will play an important role in exploring a desired multicast routing with a variety of QoS requirements.

In many practical settings, each destination is a *terminal*. A terminal means an end user, who takes charge of receiving and sending data but not branching them, that is, it can not serve as a *relay node* in charge of copying and branching data to other terminals. In a word, a terminal is a source, a receiver, or both. For instance, a member in video conference not only receives all the others’ real-time images but also sends its real-time images to all the others. In fact, this is a type of general paradigm of *many-to-many* multicast routing. Provided that all terminals share a common communication channel, one many-to-many multicast tree can be reduced to a *terminal Steiner tree* (TeST) [15]. The minimum cost TeST problem is known to be NP-hard [15] and the minimum diameter TeST problem is polynomial solvable [8]. Many-to- many multicast tree includes two types, the *centralized* and *decentralized*. In the former, a network node with a bootstrap serves as a server in charge of receiving a terminal’s data and then copying and branching them to all the other terminals by using multicast, resulting in a centralized multicast tree, essentially a rooted TeST (with the root at the server node). The centralized multicast tree problem is in fact *one-to-many* multicast tree problem [13, 14, 16]. In the latter, a terminal sends its data directly to all the others using a common channel, resulting in a decentralized one, an unrooted TeST in essence.

To the best of our knowledge, there have been a number of studies on the unrestricted many-to-many multicast tree mentioned above (terminal Steiner tree) [8, 15, 17–19]; however few studies on the QoS restricted version [16] due to its vast difficulty. Fortunately, we discover that the idea of under a fixed topology could provide us with a new way of studying the restricted version. In this paper, we will study the unrestricted many-to-many multicast tree problem with the objective of cost minimized or delay minimized and/or reliability maximized under a fixed topology, respectively. The approaches and results presented in the rest of the paper will contribute to study the many-to-many multicast tree with QoS restrictions under a fixed topology in the recent future.

The rest of this paper is organized as follows. In Section 2, we introduce the architecture of many-to-many multicast tree under a fixed topology. In Section 3, we make preliminaries, including defining three kinds of metrics of QoS of multicast tree, three QoS optimization problems, and two Euclidean graphs. We present an exact algorithm, respectively, for the centralized and decentralized version of the minimum cost problem in Section 4, the minimum delay problem in Section 5, and maximum reliability problem in Section 6. In Section 7, we give an example to illustrate all the algorithms. In Section 8, we conclude the paper with some research topics.

#### 2. Architecture of Many-to-Many Multicast Tree under a Fixed Topology

A computer or communication network is frequently modeled as an undirected graph [20]. Let be an undirected edge-weighted graph with a subset of terminals and be a sample TeST. Here, and denote the node set and edge set of , and denote the node set and edge set of , and denotes the weight on for every . For any edge , we say that is realized in once its two endpoints and are mapped to two different nodes and in . Note that and are not allowed to be mapped to a same node of . In essence, is mapped to a simple path in connecting and , often a so-called optimal path with respect to some optimization objective, for example, a shortest path if represents the length of . Also, we use to denote a realization of in , and use to denote an optimal path in between and for any a pair of nodes and .

Given any two different nodes and of , there is a unique path in between them. Specially, if and are both leaves, we call the path a *leaf-to-leaf path* of , denoted as . In addition, the path in between the root node and a leaf is called a *root-to-leaf path* of , denoted as . Let denote a realization of in and a realization of . It is clear that (resp. ) is composed of all the realizations of edges on (resp. ) respectively. Furthermore, all the realizations of the edges on form a realization of in , denoted as . A realization of in forms a many-to-may multicast tree under a fixed topology in essentially.

In this paper, we are concerned with the centralized and decentralized multicast trees under a fixed topology, namely, the realization of a given rooted and unrooted TeST topology; see Figure 1. On the top subfigure, the left graph shows a network with each edge having a weight denoting its length and the right graph shows a given rooted TeST topology. A realization of the rooted TeST in the network is distinguished by dashed edges. Considering that every leaf of the TeST is required to be mapped to a fixed node (terminal) and its root is required to be mapped to the server node, the essential work of realizing the TeST in the network is to map all the nonleaves except the root of the TeST to some nonterminals. If we arrange all the nonleaves in the order of from the 2nd level to top and from left to right on a level and label them by numbers in sequence, we can denote all the nonleaves by an ordering , and then use another ordering to record all the selected nonterminals in the graph. Likewise, on the bottom subfigure, the left shows a same network as above and the right shows an unrooted TeST topology. A realization of the TeST is distinguished by dashed edges. Since each leaf of the TeST is required to be mapped to a fixed node (terminal), the essence of realizing the TeST in the network is to map all the nonleaves of the TeST to some nonterminals. We can transform an unrooted tree into a rooted tree by assigning any a nonleaf as the root, and similarly use to denote all the nonleaves and to record all the selected nonterminals in the graph. In general, we can use an ordering , to denote all the nonleaves of a given TeST and use another ordering , to record all the selected nonterminal nodes in sequence, that is, a multicast tree under a fixed topology. In this paper, we always use to denote the cardinality of a set.

Let be a rooted tree, the subtree of rooted at , and a realization of . When is a nonleaf node, we let be the set of all the children of , and then immediately obtain that

#### 3. Fundamental Preliminaries

In the section, we make some fundamental preliminaries, which will help us to analyze the problems and understand the algorithms proposed in the following.

##### 3.1. Metrics

First of all, we define three kinds of metrics of QoS of tree, including the* cost, delay*,and *reliability* of tree.

###### 3.1.1. Cost

We are given an undirected graph where represents the cost on for every . Let be a path in . The cost of is equal to the sum of all the costs of edges on , that is, . Hence, the cost of edge realization of in which and are mapped to two different nodes and in , respectively, is denoted as where is a shortest path in between and .

The *cost* of is defined as the sum of all the costs of edge realizations of , that is,

Let denote a minimum cost realization of . Thus,

###### 3.1.2. Delay

We are given an undirected graph where every edge has a weight representing the delay on . The delay of is equal to the sum of all the delays of edges on , that is, . Then, the delay of edge realization is denoted as in which is a minimum delay path in between and .

The delay of is equal to the sum of all the delays of edge realizations of , that is,

Similarly, we have

The maximum delay of leaf-to-leaf path realization of is called the *diameter* of , that is,

Let denote a minimum delay realization of . So,

The maximum delay of root-to-leaf path realization of is called the *radius* of , that is,

Likewise,

Note that realizations with a minimum diameter or radius are both denoted by . We can differentiate according to the context where it appears.

###### 3.1.3. Reliability

We are given an undirected graph where every edge has an independent working probability while all the nodes are immune to failures. The working probability of is equal to the product of all the working probabilities of edges on , that is, . Then, the working probability of edge realization is denoted as where is a maximum reliability path in between and .

The working probability of , named its *reliability*, is equal to the product of all the working probabilities of edge realizations of , that is,

Likewise,

The minimum reliability of leaf-to-leaf path realization of is called the *diameter reliability* of , that is,

Let denote a maximum reliability realization of . Thus,

The minimum reliability of root-to-leaf path realization of is called the *radius reliability* of , that is,

Similarly,

Note that realizations with a maximum diameter or radius reliability are both denoted by . We can differentiate according to the context where it appears.

##### 3.2. Problem Definitions

The focus of this paper is three optimization problems of many-to-many multicast tree under a fixed topology from the perspective of three metrics above, which are formally defined as follows.

First of all, we use an INPUT (abbreviated to ) to simplify the statements of problems: an undirected graph , a subset of terminals, and a sample TeST topology as (see Figure 1). Let Moreover, we define .

*Problem 1. *Given an INPUT with every edge having a nonnegative weight representing the cost on , the *minimum cost many-to-many multicast tree under a fixed TeST topology problem *(MCMP) aims to find an ordering , with a minimum cost.

*Problem 2. *Given an INPUT with every edge having a positive weight denoting the delay on , the *minimum delay many-to-many multicast tree under a fixed TeST topology problem *(MDMP) aims to find an ordering , with a minimum delay.

*Problem 3. *Given an INPUT with every edge having a weight representing the working probability on , the *maximum reliability many-to-many multicast tree under a fixed TeST topology problem *(MRMP) aims to find an ordering , with a maximum reliability.

##### 3.3. Euclidean Graphs

Given an undirected graph with every edge having a weight , we construct two types of *Euclidean graphs* based on in the following.

###### 3.3.1. Shortest-Path Graph

When , in represents the cost or delay on , the path between and with a minimum weight (e.g., cost or delay) is called a *shortest path* (SP), denoted as . So,
All-pairs SPs in form a set, denoted as , that is,

Next we construct a new graph from such that the edge between and just represents an SP in . We call as a *Shortest-Path Graph* (SPG). Evidently, is a complete graph.

###### 3.3.2. Maximum-Reliability-Path Graph

When , in represents the working probability on , the path between and with a maximum working probability is called a *maximum reliability path* (MRP), denoted as . So,
All-pairs MRPs in form a set, denoted as , that is,

Next, we construct a complete graph from such that the edge between and just represents an MRP . We call a *Maximum- Reliability-Path Graph* (MRPG).

#### 4. Minimum Cost Many-to-Many Multicast Tree under a Fixed Topology

In this section, we study the centralized and decentralized MCMP, respectively.

##### 4.1. Centralized MCMP

According to discussions above in Section 2, the essence of finding a minimum cost multicast tree under a given TeST in the centralized MCMP is to find a minimum cost realization of the rooted TeST topology. In this subsection, we devise a polynomial-time exact algorithm for the centralized MCMP.

Let be a realization of with mapped to in the centralized MCMP. Let denote the cost of . When is a leaf of , considering that contains a single node, we set . Otherwise, for every , we can use (21) to compute for all , where denotes the cost of . We use (21) to compute all of by the dynamic programming method until is obtained, and then we can trace out an exact solution of the centralized MRMP easily if some bookkeeping information is saved during the computation.

Above analysis leads to algorithm MCCT that can find a minimum cost centralized multicast tree under a TeST, which is denoted as , in a polynomial time, see Theorem 1. We can use the approach in [21] to implement algorithm MCCT. So as to compute all , we need to get all-pairs shortest paths in beforehand, namely, where denotes (18) with a cost on each edge of . For the purpose, we can use the Floyd’s algorithm, times Dijkstra’s algorithm, and so forth.

Theorem 1. *Given an INPUT as , algorithm MCCT can find an optimal solution of the centralized MCMP correctly in time. *

*Proof. *Step_1 takes time to find all-pairs shortest paths by using the Floyd’s algorithm. Step_2 first spends time to initialize for all and , and then uses (21) to compute for all , whose time complexity is at most

Step_3 only takes time if we save some book-keepings information during the computation in Step_2.

##### 4.2. Decentralized MCMP

By the discussions above in Section 2, to find a minimum cost multicast tree under a given TeST in the decentralized MCMP is essentially to find a minimum cost realization of the unrooted TeST topology. Since an unrooted TeST can be transformed into a rooted TeST by assigning it any nonleaf as its root, we can adapt the algorithm MCCT for finding a minimum cost decentralized multicast tree under an unrooted TeST, which is denoted as . The resultant algorithm is named as MCDT. The main differences between MCDT and MCCT are that in (21) is changed to in and MCDT removes the restriction of mapped to from MCCT. Based on Theorem 1., we calculate the time complexity of algorithm MCDT, shown in Theorem 2.

Theorem 2. *Given an INPUT as , algorithm MCDT can find an optimal solution of the decentralized MCMP correctly in time.*

*Proof. *It is similar to the proof of Theorem 1.

#### 5. Minimum Delay Many-to-Many Multicast Tree under a Fixed Topology

In this section, we study the centralized and decentralized MDMP, respectively.

##### 5.1. Centralized MDMP

In the centralized MDMP, to find a minimum delay multicast tree under a given TeST topology is to find a minimum delay realization of the rooted TeST. In this subsection, we design a polynomial-time exact algorithm for the centralized MDMP.

Let be a realization of with mapped to in the centralized MDMP. The delay of is equal to the radius of . We let denote the radius of . When is a leaf of , we set . Otherwise, for each , we can use (24) to compute for all , where denotes the delay of . We use (24) to compute recursively until is achieved, and then we can trace out an exact solution of the centralized MDMP easily if some bookkeeping information is saved during the whole computation.

Based on above analysis, we devise algorithm MDCT to find a minimum delay centralized multicast tree under a TeST, which is denoted as , in a polynomial time; see Theorem 3. We also can use the way in [21] to execute algorithm MDCT. In order to compute all , we need to get all-pairs shortest paths in beforehand, namely, in which denotes (18) with a delay on every edge of . Here, we can use the Floyd’s algorithm to get .

Theorem 3. *Given an INPUT as , algorithm MDCT can find an optimal solution of the centralized MDMP correctly in time. *

*Proof. *It is similar to the proof of Theorem 1.

##### 5.2. Decentralized MDMP

The essence of finding a minimum delay multicast tree under a given TeST in the decentralized MDMP is to find a minimum delay realization of the unrooted TeST topology.

First of all, we can always use the method in [22] to transform an unrooted tree into a rooted tree and further into a binary tree, denoted as . Clearly, . For any nonleaf , let and denote its left and right child, respectively. Let be a realization of with mapped to in the decentralized MDMP. The delay of is equal to the diameter of and denoted by . When is a leaf of , we set since has a single node. Otherwise, for each , we can use (25) to compute for all , where is mapped to and is mapped to , and denote the delay of and , respectively, and both of , can be derived from

We can use (25) to compute recursively, and then we can trace out an exact solution of the decentralized MDMP, denoted as , if some bookkeeping information are is during the whole computation. The resulting algorithm is called MDDT, whose time complexity is presented in Theorem 4.

Theorem 4. *Given an INPUT as , algorithm MDDT can find an optimal solution of the decentralized MDMP correctly in time. *

*Proof. *It is similar to the proofs of Theorems 1 and 2. Step_2 takes time to initialize and for all and and then computes and for all and , whose time complexity is at most
Therefore the time complexity of algorithm MDDT is no more than .

#### 6. Maximum Reliability Many-to-Many Multicast Tree under a Fixed Topology

In this section, we study the centralized and decentralized MRMP, respectively.

##### 6.1. Constructing an MRPG

MRPG based on will play an important role in the design of algorithm for MRMP in . According to the discussions in Section 3, MRPG based on is an Euclidean graph comprising all-pairs MRPs in . So the key work of constructing MRPG is to devise an efficient algorithm for finding all-pairs MRPs. In this section, we present such an algorithm with a cubic time.

Firstly, we introduce a fundamental Lemma 5.

Lemma 5. *Given an undirected graph with every edge having an independent working probability, for any path composed of two subpaths and , is an MRP in if and only if both and are MRPs in . *

*Proof. * On one hand, if is an MRP, we can verify that the combination of and forms a more reliable path than provided that is a more reliable path than or the combination of and forms a more reliable path than provided that is a more reliable path than . This causes a contradiction. On the other hand, if and are both MRP’s, we can verify that either is more reliable than or is more reliable than provided that consisting of and is a more reliable path than . This causes a contradiction.

From Lemma 5, we claim that the most reliable paths in satisfy the* triangle inequality*, based on which we can design a dynamic programming algorithm for finding all- pairs MRP’s.

For any edge , we rewrite to be . We can use (28) to construct a probability matrix ,

We use to denote the working probability of a current MRP between and after is introduced. We set initially and then use (29) to compute for from 1 to .

Finally, is the working probability of the MRP in between and .

In essence, above idea of using (29) recursively forms our dynamic programming algorithm for finding all-pairs MRP’s, namely, constructing , which is described as procedure CMRP (Procedure 1). The time complexity of CMRP is shown in Lemma 6.

Lemma 6. *Given an undirected edge-weighted graph with nodes and edges in which every edge has an independent working probability, procedure CMRP can find all-pairs maximum reliability paths in time. *

*Proof. * Step_1 spends time to initialize for and . For each , Step_2 spends time to compute for and . Therefore, the time complexity of CMRP is .

##### 6.2. Algorithms

In this section, we present an exact algorithm for the centralized and decentralized MRMP, respectively.

###### 6.2.1. Centralized MRMP

The essence of finding a maximum reliability multicast tree under a TeST topology in the centralized MRMP is to find a maximum reliability realization of the rooted TeST.

Let be a realization of with mapped to in the centralized MRMP. The reliability of refers to its radius reliability, which is denoted as . When is a leaf of , we set . Otherwise, for each , we can use (30) to compute for all , where denotes the reliability of . We use (30) to compute recursively until is got, and then we can trace out an exact solution of the centralized MRMP if some bookkeeping information is saved during the whole computation.

Above analysis can be described as algorithm MRCT. It can find a maximum reliability centralized multicast tree under a TeST, denoted as , in a polynomial time; see Theorem 7. We use the method in [21] to perform algorithm MRCT. In order to compute , we need to get all-pairs maximum reliability paths in beforehand, namely, . This work can be accomplished by procedure CMRP.

Theorem 7. *Given an INPUT as , algorithm MRCT can find an optimal solution of the centralized MRMP correctly in time. *

*Proof. *It is similar to the proof of Theorem 1.

###### 6.2.2. Decentralized MRMP

To find a maximum reliability multicast tree under a TeST in the decentralized MDMP is essentially to find a maximum reliability realization of the unrooted TeST. We can use the way in [22] to transform an unrooted tree into a rooted tree and further into a binary tree . And some definitions and notations therein are still used here. Let be a realization of with mapped to in the decentralized MRMP. The reliability of refers to its diameter reliability, which is denoted as . When is a leaf of , we set . Otherwise, for each , we can use (31) to compute for all , where is mapped to and is mapped to , and denote the reliability of and , respectively, and both of , can be obtained by using

We can use (31) to compute recursively, and then we can trace out an exact solution of the decentralized MRMP, denoted as , if some bookkeeping information is saved during the whole computation. This leads to algorithm MRDT, whose time complexity is shown in Theorem 8.

Theorem 8. *Given an INPUT as , algorithm MRDT can find an optimal solution of the decentralized MRMP correctly in time. *

*Proof. *It is similar to the proof of Theorem 4.

#### 7. Illustrative Examples

In this section, we take the network and the binary tree topology shown in Figure 1 as an example to illustrate the six algorithms proposed above (Algorithms 1–6).

Suppose the integer on every link of the network in Figure 1 represents the quantity of cost on the link. For instance, each unit of cost is 0.8 dollar; then the cost on edge is 3.2 dollars. We apply algorithm MCCT to solve the centralized MCMP. MCCT first uses the Floyd’s algorithm to find all-pairs minimum cost paths in the given network, that is, constructing the SPG with respect to the link costs of network then computes the values of (21) recursively, and finally terminates with an optimal ordering of the centralized MCMP. So we know that , , are mapped to , , , respectively, and then derive an optimal solution from distinguished by bold dashed edges on the top subfigure of Figure 2; for example, the communication between and is established by the minimum cost path and the communication between and is established by the minimum cost path . Similarly we can apply algorithm MCDT to solve the decentralized MCMP. MCDT first constructs , then computes the values of (23) recursively, and finally ends with . Hence we can derive an optimal solution to the decentralized MCMP from , distinguished by bold dashed edges on the bottom subfigure of Figure 2.

Suppose the integer on every link of the network in Figure 1 represents its amount of delay. For example, every unit of delay is 1 ms, then the delay on link is 3 ms. We apply algorithm MDCT to solve the centralized MDMP. MDCT first uses the Floyd’s algorithm to find all-pairs minimum delay paths in the given network, that is, constructing the SPG with respect to the link delays of network, then computes the values of (24) recursively, finally ends with an optimal ordering of the centralized MDMP. So we know that , , are mapped to , , , respectively, then derive an optimal solution from distinguished by dashed edges on the top subfigure of Figure 3. Similarly, we apply MDDT to the decentralized MDMP. MDDT first constructs , and then computes the values of (25) and (26) recursively, finally terminates with . We can derive an optimal solution to the decentralized MDMP from , which is distinguished by bold dashed edges on the bottom subfigure of Figure 3 and equal to the optimal solution to the decentralized MCMP.

Suppose that every link of the network given in Figure 1 has an independent working probability whose value is a linear function in the integer on , formulated as . For instance, the working probability of is 0.98. We apply algorithm MRCT to solve the centralized MRMP. MRCT first uses procedure CMRP to find all-pairs maximum reliability paths in the network, that is, constructing the MRPG with respect to the link probabilities of the given network, then computes the values of (30) recursively, finally terminates with an optimal ordering of the centralized MRMP. We can get an optimal solution from distinguished by bold dashed edges on the top subfigure of Figure 4. Similarly, we can apply algorithm MRDT to solve the decentralized MRMP. MRDT first constructs , then computes the values of (31) and (32) recursively, and finally ends with . Hence we can derive an optimal solution to the decentralized MRMP from , distinguished by bold dashed edges on the bottom subfigure of Figure 4. Evidently, the optimal solution to the centralized MRMP is same as that to the centralized MCMP as well as the optimal solution to the decentralized MRMP is same as that to the decentralized MCMP.

#### 8. Conclusions

This paper introduces the architecture of a many-to-many multicast tree with fixed topology, reduces it to a realization of the given TeST topology, and applies the idea of under a fixed topology to deal with three optimization problems, that is, the minimum cost, minimum delay, and maximum reliability multicast tree under a fixed topology problem. Each problem includes the centralized and decentralized versions. For the both versions of each problem, an exact algorithm is devised using the dynamic programming approach, respectively. On the condition that we are given a collection of alternative tree topologies, it is of interests to explore a best topology from all the alternative tree topologies.

Moreover, if we consider two or more weights on every link of a network, it is an interesting and important research topic how to devise an efficient algorithm for the multicast tree problem under a fixed topology with multiple objectives or with a single objective and at least one constraint.

#### Acknowledgments

This research was supported in part by the Key Research Grant xkyzd201207 (Ding) and the 2010 Excellent Young Teacher Grant 19093-88 (Ding) of Zhejiang Water Conservancy and Hydropower College.

#### References

- F. Kuo, W. Effelsberg, and J. J. Garcia-Luna-Aceves,
*Multimedia Communications: Protocols and Applications*, Prentice Hall, Englewood Cliffs, NJ, USA, 1998. - Z. Wang and J. Crowcroft, “Quality-of-service routing for supporting multimedia applications,”
*IEEE Journal on Selected Areas in Communications*, vol. 14, pp. 1228–1234, 1996. View at Publisher · View at Google Scholar - K. Bharath-Kumar and J. M. Jaffe, “Routing to multiple destinations in computer networks,”
*IEEE Transactions on Communications*, vol. 31, pp. 343–351, 1983. View at Publisher · View at Google Scholar - D. Z. Du, J. M. Smith, and J. H. Rubinstein,
*Advances in Steiner Trees*, Kluwer Academic Publishers, Dordrecht, Netherlands, 2000. - G. Apostolopoulos, R. Guerin, S. Kamat, and S. Tripathi, “Quality of service based routing: a performance perspective,” in
*Proceedings of the Applications, Technologies, Architectures, and Protocols for Computer Communication (ACM SIGCOMM '98)*, vol. 98, pp. 17–28, 1998. - B. Wang and J. C. Hou, “Multicast routing and its QoS extension problems,”
*IEEE Network Algorithms, and Protocols*, vol. 14, pp. 22–36, 2000. - M. R. Garey and D. S. Johnson,
*Computers and Intractability: A Guide to the Theory of NP-Completeness.*, Freeman, San Francisco, Calif, USA, 1979. - W. Ding and K. Qiu, “Algorithms for the minimum diameter terminal steiner tree problem,”
*Journal of Combinatorial Optimization*, 2013. View at Publisher · View at Google Scholar - V. P. Kompella, J. C. Pasquale, and G. C. Polyzo, “Multicast routing for multimedia communication,”
*IEEE/ACM Transactions on Networking*, vol. 1, pp. 286–292, 1993. View at Publisher · View at Google Scholar - Q. Zhu, M. Parsa, and J. Garcia-Luna-Aceves, “A source-based algorithm for delay-constrained minimal-cost multicasting,” in
*Proceedings of the IEEE International Conference on Computer Communications (INFOCOM '95)*, pp. 377–384, 1995. - X. Jia, “A distributed algorithm of delay-bounded multicast routing for multimedia applications in wide area networks,”
*IEEE/ACM Transactions on Networking*, vol. 6, no. 6, pp. 828–837, 1998. View at Publisher · View at Google Scholar · View at Scopus - V. P. Kompella, J. C. Pasquale, and G. C. Polyzos, “Two distributed algorithms for multicasting multimedia information,” in
*Proceedings of the IEEE Computer Communications and Networks (ICCCN '93)*, pp. 343–349, 1993. - L. Wang and X. Jia, “Note fixed topology steiner trees and spanning forests,”
*Theoretical Computer Science*, vol. 215, pp. 359–370, 1999. View at Publisher · View at Google Scholar - G. Xue and W. Xiao, “A polynomial time approximation scheme for minimum cost delay-constrained multicast tree under a steiner topology,”
*Algorithmica*, vol. 41, no. 1, pp. 53–72, 2004. View at Publisher · View at Google Scholar · View at Scopus - G. Lin and G. Xue, “On the terminal steiner problem,”
*Information Processing Letters*, vol. 84, pp. 103–107, 2002. View at Publisher · View at Google Scholar - M. Moh and B. Nguyen, “QoS-guaranteed one-to-many and many-to-many multicast routing,”
*Computer Communications*, vol. 26, pp. 652–669, 2003. View at Publisher · View at Google Scholar - Y. H. Chen, “An improved approximation algorithm for the terminal steiner tree problem,” in
*Computational Science and Its Applications (ICCSA '11)*, B. Murgante, et al., Ed., vol. 6784 of*Lecture Notes in Computer Science*, pp. 141–151, 2011. - D. E. Drake and S. Hougrady, “On approximation algorithms for the terminal steiner tree problem,”
*Information Processing Letters*, vol. 89, pp. 15–18, 2004. View at Publisher · View at Google Scholar - F. V. Martineza, J. C. D. Pinab, and J. Soares, “Algorithm for terminal steiner trees,”
*Theoretical Computer Science*, vol. 389, pp. 133–142, 2007. - J. A. Bondy and U. S. R. Murty,
*Graph Theory with Application.*, Macmillan, London, UK, 1976. - W. Ding and G. Xue, “A linear time algorithm for computing a most reliable source on a tree network with faulty nodes,”
*Theoretical Computer Science*, vol. 412, no. 3, pp. 225–232, 2011. View at Publisher · View at Google Scholar - A. Tamir, “An O(pn
^{2}) algorithm for the p-median and related problems on tree graphs,”*Operations Research Letters*, vol. 19, pp. 59–64, 1996. View at Publisher · View at Google Scholar