<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2016.414005</article-id><article-id pub-id-type="publisher-id">JCC-72009</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Exact Algorithm to Solve the Minimum Cost Multi-Constrained Multicast Routing Problem
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Miklos</surname><given-names>Molnar</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>IUT, Department of Computer Science, University of Montpellier, LIRMM, Montpellier, France</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>molnar@lirmm.fr</email></corresp></author-notes><pub-date pub-type="epub"><day>11</day><month>11</month><year>2016</year></pub-date><volume>04</volume><issue>14</issue><fpage>57</fpage><lpage>79</lpage><history><date date-type="received"><day>September</day>	<month>8,</month>	<year>2016</year></date><date date-type="rev-recd"><day>Accepted:</day>	<month>November</month>	<year>12,</year>	</date><date date-type="accepted"><day>November</day>	<month>15,</month>	<year>2016</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The optimal solution of the multi-constrained QoS multicast routing problem is a tree-like hierarchical structure in the topology graph. This multicast route contains a feasible path from the source node to each of the destinations with respect to a set of QoS constraints while minimizing a cost function. Often, it is a tree. In other cases, the hierarchies can return several times to nodes and links of the topology graph. Similarly to Steiner problem, finding such a structure is an NP-hard problem. The usual tree and topology enumeration algorithms applied for the Steiner problem cannot be used to solve the addressed problem. In this paper, we propose an exact algorithm based on the Branch and Bound principle and improved by the Lookahead technique. We show relevant properties of the optimum hierarchy permitting efficient pruning of the search space. To our knowledge, our paper is the first to propose an exact algorithm for this non-trivial multi-constrained optimal multicast route computation. Simulations illustrate the efficiency of the proposed pruning operations. The analysis of the execution time shows that in simple topologies and with tight QoS constraints the exact algorithm requires relatively little execution time. With loose constraints the computation time cannot be tolerated even for off-line route computation. In these cases, the solution is close to a Steiner tree and heuristics can be applied. These results can serve as basis for the design of efficient, polynomial-time routing algorithms.
 
</p></abstract><kwd-group><kwd>Multicast Routing</kwd><kwd> Quality of Service</kwd><kwd> Multi-Constrained Steiner Problem</kwd><kwd> Hierarchy</kwd><kwd> Partial Minimum Spanning Hierarchy</kwd><kwd> Branch and Bound</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Quality of Service (QoS) multicasting needs the computation of a multi-constrained multicast route connecting a source node to a set of destinations. The objective of network operators (and transitively of users) is to minimize the network resource consumption. To find an appropriate solution within the feasible solutions, a cost function can be used. The minimum cost solution can minimize for instance the hop count or an additive cost on the links. As it is discussed in [<xref ref-type="bibr" rid="scirp.72009-ref1">1</xref>] , guaranteeing QoS and optimizing resource utilization may be two conflicting interests. We are interested in finding the best cost solution with respect to a set of QoS constraints.</p><p>Without QoS constraints, the minimum cost multicast route computation corres- ponds to the well known NP-hard Steiner problem. In our study, we consider the constrained multicast routing with multiple QoS constraints. As it is shown in [<xref ref-type="bibr" rid="scirp.72009-ref2">2</xref>] , the multi-constrained routing problems are NP-hard even if there is only one destination.</p><p>Often, in works talking about QoS aware multicast routing, authors suppose that the optimal solution is a partial spanning tree. Section 2.2 gives an overview of the most important related works. In some cases, the optimal multicast route is neither a tree, nor a set of trees, nor a set of optimal QoS paths.</p><p>In [<xref ref-type="bibr" rid="scirp.72009-ref3">3</xref>] , it has been mentioned that a feasible/optimal solution of the problem may be different from a tree. Indeed, the authors suggest that it corresponds to a sub-graph containing feasible paths and eventually minimizing a length/cost function. Unfortu- nately, the sub-graph concept is not sufficient to define the optimal solution. Paper [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] shows that a generalization of the tree concept called hierarchy defines accurately the optimum. Furthermore, hierarchies can also describe feasible solutions approaching the optimal one.</p><p>To our knowledge, there is no algorithmic solution proposed in the literature to compute the optimal route, which is a hierarchy. In this work, we investigate on finding the optimal solution (the partial minimum spanning hierarchy) of the corresponding multi-constrained partial spanning problem. The problem is NP-hard. Since hierarchies are different from trees and do not obligatory correspond to any sub-graph, the known tree computation algorithms cannot be applied to find the optimal hierarchy. Indeed, hierarchies can contain the same graph node/edge multiple times, and the algorithms based on tree and node enumeration are not suitable for hierarchy computation. Therefore, we propose a particular Branch and Bound algorithm permitting returns to the nodes several times.</p><p>Our paper is organized as follows. Section 2 presents the multi-constrained partial spanning problem for multicast QoS routing and provides an overview of the previ- ously proposed approaches to solve the routing problem. Section 3 briefly presents the hierarchy concept generalizing spanning trees as well as the relevant properties of the multi-constrained minimum cost hierarchies. These properties as well as the Look- ahead concept (cf. [<xref ref-type="bibr" rid="scirp.72009-ref2">2</xref>] ) are useful to design the exact algorithm described in Section 4. The computation results can be found in Section 5.</p></sec><sec id="s2"><title>2. The Multi-Constrained QoS Multicast Routing Problem</title><p>Often, multimedia applications require multi-constrained multicast routes. For each destination of a given multicast group, the route should meet a set of QoS requirements such as limited delay, jitter, bandwidth, loss rate etc. Indeed, generally the source based QoS multicast routing aims to compute routes by satisfying the given QoS constraints at the destinations and minimizing the network resource consumption or cost.</p><sec id="s2_1"><title>2.1. Problem Formulation</title><p>The network topology is represented by an undirected graph<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x2.png" xlink:type="simple"/></inline-formula>, with the set of nodes V (routers) and the set of edges E (links). The source corresponds to a node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x3.png" xlink:type="simple"/></inline-formula> and the destination node set is given by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x4.png" xlink:type="simple"/></inline-formula>. Each edge <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x5.png" xlink:type="simple"/></inline-formula> is associated with a positive cost <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x6.png" xlink:type="simple"/></inline-formula> and with m QoS weights given by a weight vector<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x7.png" xlink:type="simple"/></inline-formula>. We suppose that the metrics are additive. The weight of a path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x8.png" xlink:type="simple"/></inline-formula> is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x9.png" xlink:type="simple"/></inline-formula>. The end-to- end QoS requirements, expressed as constraints from the source to the destinations, are fixed by an m-dimensional constraint vector<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x10.png" xlink:type="simple"/></inline-formula>. A path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x11.png" xlink:type="simple"/></inline-formula> is feasible if:</p><disp-formula id="scirp.72009-formula213"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/5-1730444x12.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x13.png" xlink:type="simple"/></inline-formula> is the Pareto dominance.</p><p>The multicast QoS routing aims at finding a multicast route<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x15.png" xlink:type="simple"/></inline-formula>, where W is a multi-set of node occurrences (the visited nodes) and F is a multi-set of edge occurrences (the used edge occurrences) in the route<sup>1</sup>. If W and F are simple sets, the route is a sub-graph. In our constrained routing problem, M is not always a sub-graph and due to the constraints, the route can visit nodes and edges multiple times [<xref ref-type="bibr" rid="scirp.72009-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] . Consequently, a node or an edge may be present multiple times in the multi-sets W and F respectively. We propose to refer to occurrences of nodes and edges/arcs in spite of referring to nodes and edges themselves. This multicast route <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x16.png" xlink:type="simple"/></inline-formula> must contain at least one feasible path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x17.png" xlink:type="simple"/></inline-formula> from the source node s to each destination<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x18.png" xlink:type="simple"/></inline-formula>. The network resource usage can be expressed by an adequate cost function. The cost may be dependent or independent from the m QoS metrics. Without loss of generality, in the following we suppose an arbitrary additive cost. Therefore, we consider the cost of the multicast communication as the total cost of the forwarded data by using the edges of the multicast structure<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x19.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.72009-formula214"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/5-1730444x20.png"  xlink:type="simple"/></disp-formula><p>Since the structure M may be different from a sub-graph (the sets W and F are multi-sets with possible repetitions of graph elements), if an edge <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x21.png" xlink:type="simple"/></inline-formula> of G is present twice in F (because it is used twice to forward the multicast messages), its cost must be added twice to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x22.png" xlink:type="simple"/></inline-formula>.</p><p>The following formulation of the optimal QoS multicast routing has been proposed in [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] .</p><p>Multi-Constrained Minimum Cost Multicast problem (MCMCM). This problem deals with finding the structure <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x23.png" xlink:type="simple"/></inline-formula> with a minimum cost<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x24.png" xlink:type="simple"/></inline-formula>, containing at least one path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x25.png" xlink:type="simple"/></inline-formula> from the source node s to each destination <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x26.png" xlink:type="simple"/></inline-formula> that satisfies the given constraint vector<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x27.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.72009-formula215"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/5-1730444x28.png"  xlink:type="simple"/></disp-formula><p>As it has been demonstrated, the solution is a directed minimum cost partial span- ning hierarchy [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] . Section 3 recalls the definitions. Finding the optimum is NP-hard.</p></sec><sec id="s2_2"><title>2.2. Related Works</title><p>For solving the QoS multicast routing problem, several propositions aim to compute spanning trees. The reason for basing multicast structures on multicast trees is that the tree structure avoids redundancies (thus minimizes the cost for instance).</p><p>Without constraint, the basic problem is known as the Steiner problem. Two large overviews on this well known NP-hard problem are presented in [<xref ref-type="bibr" rid="scirp.72009-ref5">5</xref>] and [<xref ref-type="bibr" rid="scirp.72009-ref6">6</xref>] . The most known exact algorithms are based on the enumeration of the Steiner nodes<sup>2</sup> and Steiner trees. The solution of the Steiner problem is always a sub-graph (a tree).</p><p>If only one constraint (usually on the end-to-end delay) is given, the addressed pro- blem is the Constrained Steiner Tree (CST) problem that is also NP-hard [<xref ref-type="bibr" rid="scirp.72009-ref7">7</xref>] . To solve it, the authors propose a Branch and Bound algorithm by using the Lagrangian Re- laxation and heuristics to get lower and upper bounds in the Branch and Bound tree. A compact Mixed-Integer Program formulation with efficient reduction techniques can be found in [<xref ref-type="bibr" rid="scirp.72009-ref8">8</xref>] . In [<xref ref-type="bibr" rid="scirp.72009-ref9">9</xref>] the diameter-constrained minimum spanning tree variant (DM- STP) is defined. In this problem a natural number D is given, and the goal is to find a spanning tree of the graph with minimum total cost such that the unique path from any node i to any node j has no more than D edges. A Branch and Cut algorithm is pro- posed using heuristics to cutting plane generation. Several heuristics have also been proposed to solve approximately the problem. In [<xref ref-type="bibr" rid="scirp.72009-ref10">10</xref>] , a heuristic that constructs a low cost spanning tree, with respect to a bounded delay on each multicast destination is described. In [<xref ref-type="bibr" rid="scirp.72009-ref11">11</xref>] , an algorithm that approaches the minimum cost spanning tree solution with respect to the delay constraint has been presented. The authors in [<xref ref-type="bibr" rid="scirp.72009-ref12">12</xref>] proposed a heuristic algorithm called The Bounded Shortest Multicast Algorithm (BSMA). The BSMA algorithm always finds a delay constrained tree, if such a tree exists, since it begins with the least-delay spanning tree.</p><p>When more than one QoS constraint are considered, the problem becomes more complex, and different tree based solutions are proposed [<xref ref-type="bibr" rid="scirp.72009-ref12">12</xref>] [<xref ref-type="bibr" rid="scirp.72009-ref13">13</xref>] [<xref ref-type="bibr" rid="scirp.72009-ref14">14</xref>] [<xref ref-type="bibr" rid="scirp.72009-ref15">15</xref>] . A rendez- vous point based tree computation has been presented recently in [<xref ref-type="bibr" rid="scirp.72009-ref16">16</xref>] . Three different formulations can be found in [<xref ref-type="bibr" rid="scirp.72009-ref3">3</xref>] . The Multiple Constrained Multicast (MCM) problem aims to compute a sub-graph <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x30.png" xlink:type="simple"/></inline-formula> that contains a feasible path from the source to each destination. Since the sub-graph can be arbitrarily large and the paths are not explicitly identified in this sub-graph, this formulation is not interesting. The Multiple Parameter Steiner Tree (MPST) problem searches for a partial spanning tree minimizing an arbitrary length function. Since the solution of this problem is a tree, it can be configured and used for multicasting. The drawback of this formulation is that in some cases this kind of solution does not exist. The authors say that the MPST, although optimal in terms of resource utilization, does not always satisfy the con- straints. A third formulation is given by the combination of the two cited ones above; the Multiple Constrained Minimum Weight Multicast (MCMWC) problem searching for a sub-graph with minimum cost. Meta-heuristics have also been applied for solving QoS multicast routing. The papers in [<xref ref-type="bibr" rid="scirp.72009-ref17">17</xref>] and [<xref ref-type="bibr" rid="scirp.72009-ref18">18</xref>] propose genetic algorithm based solutions even for networks with uncertain parameters and for energy minimization respectively. The thesis work in [<xref ref-type="bibr" rid="scirp.72009-ref19">19</xref>] presents several metaheuristics (e.g., swarm opti- mization). An original computation of multicast trees based on a Chemical Reaction Optimization Algorithm for QoS Multicast Routing can be found in [<xref ref-type="bibr" rid="scirp.72009-ref20">20</xref>] . Let us notice that these algorithms compute trees and not the optimal solution presented in our pa- per.</p><p>In the literature, few proposed algorithms allow solutions that are different from spanning trees. The Multicast Adaptive Multiple Constraints Routing Algorithm (MA- MCRA) [<xref ref-type="bibr" rid="scirp.72009-ref3">3</xref>] is one of the most relevant algorithms that looks for multicast routes that are different from spanning trees. MAMCRA solves the multi-constrained mul- ticast routing problem by computing a special routing structure in two steps:</p><p>1) In the first step, the algorithm computes a set of optimal (multi-constrained) paths</p><p>2) In the second step, it tries to eliminate the useless redundancies that are produced in the first step.</p><p>The result may be a hierarchy (cf. its definition in the next section).</p><p>Instead of multiple constraints, different QoS objectives can be established on the QoS values: minimizing the delay, the jitter, the packet losses, etc. A survey on multi- objective minimum spanning tree problem is available in [<xref ref-type="bibr" rid="scirp.72009-ref21">21</xref>] . Our approach is based on multiple constrained formulation.</p></sec></sec><sec id="s3"><title>3. Hierarchies to Solve the Optimal QoS Multicast Routing</title><p>Usually, spanning trees are considered as the minimum cost solutions for partial spanning in graphs. However, they have some limitations. Trees can not always satisfy the end-to-end constraints and in some cases there is no tree solution for the problem. As it has been demonstrated in [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] the solution is a connected, graph related structure called hierarchy.</p><sec id="s3_1"><title>3.1. Hierarchies</title><p>Trees are connected (sub-) graphs without cycles. To solve our problem, a structure permitting the graph nodes to be visited several times has been proposed. A hierarchy is a graph-related structure defined as follows [<xref ref-type="bibr" rid="scirp.72009-ref22">22</xref>] .</p><p>Definition 1 (Hierarchy) Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula> be an arbitrary graph and let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x37.png" xlink:type="simple"/></inline-formula> be a connected graph without cycle (a tree). Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x38.png" xlink:type="simple"/></inline-formula> be a homomorphism which associates a node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x39.png" xlink:type="simple"/></inline-formula> to each node<sup>3<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x40.png" xlink:type="simple"/></inline-formula></sup>. The application <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x41.png" xlink:type="simple"/></inline-formula> de- fines a hierarchy in G.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref> illustrates a hierarchy. In our case, the graph G is the topology graph of the network and the tree <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x42.png" xlink:type="simple"/></inline-formula> represents the routing information (the succession of nodes in the route).</p><p>For multicast routing, the route is rooted at the source and we consider rooted hierarchies (the tree T is rooted). A non-empty rooted hierarchy can be considered as a connected route containing occurrences of the graph elements, where each node occurrence has at most one parent node.</p><p>Trivially, a hierarchy is not a sub-graph, but (similarly to walks) a graph-related stru- cture. In the example of <xref ref-type="fig" rid="fig1">Figure 1</xref>, the nodes c and d are present twice in the hierarchy. Since the different occurrences of the same element can play different roles, the distin- ction and the identification of the occurrences is substantial.</p><p>Even though a hierarchy is not a sub-graph, it generates a sub-graph in the graph G. This sub-graph is the image of the hierarchy and may contain cycles. To facilitate the use of the hierarchies, we propose to retain some tree related terms.</p><p>A sub-hierarchy of a (rooted) hierarchy H is a hierarchy only containing elements of H.</p><p>A branching node occurrence is a node occurrence having at least a degree three in the hierarchy.</p><p>A leaf is a node occurrence with a degree one in the hierarchy. In <xref ref-type="fig" rid="fig1">Figure 1</xref>, there are three leaves (one occurrence of c, e and f), the second occurrence of d is a branching node occurrence and the reader can easily detect the sub-hierarchy rooted at b.</p><p>Hierarchies can be directed or undirected. A directed hierarchy can be related to an undirected graph G. In this case, an arc relies two node occurrences in the hierarchy iff there is an edge between the corresponding nodes in the graph G. If the graph G is not directed, we suppose that each edge can be replaced by a pair of arcs. Moreover, we suppose that the weights of the edge correspond to the weights of the arcs in both directions. The directed rooted partial spanning hierarchy concept allows an accurate and exact definition of the solution of the multi-constrained partial minimum spanning problem. These rooted hierarchies are directed from the source to the destinations. As it has been proved in [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] , the optimal multicast route M, with respect to multiple constraints on positive additive metrics, is always a directed partial spanning hierarchy.</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Example of a rooted hierarchy</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x43.png"/></fig><p>In the following, we refer to this solution as the Multi-Constrained Minimum Partial Directed Spanning Hierarchy, abbreviated by MC-MPDSH. Using the hierarchy con- cept, the MCMCM problem can easily be re-formulated as follows.</p><p>The MCMCM problem consists in finding the multi-constrained minimum partial directed spanning hierarchy containing at most one directed path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x44.png" xlink:type="simple"/></inline-formula> from the source to each destination<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x45.png" xlink:type="simple"/></inline-formula>, with respect to the constraints:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x45.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x46.png" xlink:type="simple"/></inline-formula>.</p><p><xref ref-type="fig" rid="fig2">Figure 2</xref> presents the optimal directed hierarchy solution for two destinations (nodes h and i) when two weights are associated with edges and the QoS requirements correspond to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x47.png" xlink:type="simple"/></inline-formula>. The cost of all edges is equal to 1 in this example. The cost minimal hierarchy respecting the QoS constraints is drawn with bold arrows. Another feasible tree also exists (drawn with dotted arrows) but this tree is more expensive.</p><p>Trees are special hierarchies obtained by injective homomorphism. Thus, a tree is a hierarchy. Some properties of trees are true for hierarchies but not all of them, whereas all properties characterizing hierarchies are true for trees. In [<xref ref-type="bibr" rid="scirp.72009-ref4">4</xref>] , relevant properties of the MC-MPDSH have been enumerated. These properties enable to design efficient exact and heuristic algorithms. Thus, we investigate on the properties of the MC- MPDSH.</p></sec><sec id="s3_2"><title>3.2. Properties of the MC-MPDSH</title><p>We summarize properties that permit the design of our Branch and Bound algorithm by detecting infeasible “solutions” ASAP. The proofs of these properties are generally trivial and omitted in this paper.</p><p>1) The leaves in the optimal spanning hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x48.png" xlink:type="simple"/></inline-formula> are destinations. Consequen- tly, in an MC-MPDSH there are at most <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x48.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x49.png" xlink:type="simple"/></inline-formula> leaves.</p><p>2) The directed path from the source s to any arbitrary node occurrence v is a feasible path.</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> The cost optimal solution of a multi-constrained multicast routing problem</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x50.png"/></fig><p>3) The edges of the topology graph G can be used multiple times and in both direction.</p><p>4) In a directed path from the source s to an arbitrary destination <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x51.png" xlink:type="simple"/></inline-formula> in the MC- MPDSH, any node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x52.png" xlink:type="simple"/></inline-formula> has at most one occurrence (a node can not be repeated in a path, paths are elementary). This property is also true regarding the source node itself: no directed path in an MC-MPDSH can return to the source node. Consequently, the source is present only once in an MC-MPDSH.</p><p>5) Due to Properties 1 and 4, in an MC-MPDSH, the number of the occurrences of a node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x53.png" xlink:type="simple"/></inline-formula> is upper bounded by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x54.png" xlink:type="simple"/></inline-formula>.</p><p>6) If a destination corresponds to a leaf node in the optimal solution, then it has only one occurrence (the leaf occurrence).</p><p>7) A node can have at most <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x55.png" xlink:type="simple"/></inline-formula> branching node occurrences.</p><p>8) Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula> be a sub-hierarchy of an MC-MPDSH with <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula> leaves. Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x58.png" xlink:type="simple"/></inline-formula> be the <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x59.png" xlink:type="simple"/></inline-formula> occurrence of the node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x59.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x60.png" xlink:type="simple"/></inline-formula> in the sub-hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x59.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x61.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x59.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x61.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x62.png" xlink:type="simple"/></inline-formula> its out-degree. For the occurrences of the node v, the following inequality always holds:</p><disp-formula id="scirp.72009-formula216"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/5-1730444x63.png"  xlink:type="simple"/></disp-formula><p>Remember that the metrics in the graph are positive and additive. The following property enables to establish an important relation between the QoS constraints and gives a sub-optimality property.</p><p>9) Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula> be an MC-MPDSH rooted at s. It satisfies the constraints <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula> in the lea- ves. Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula> be a sub-hierarchy of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula> rooted at<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula>. Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x70.png" xlink:type="simple"/></inline-formula> be the wei- ght vector of the path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x70.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x71.png" xlink:type="simple"/></inline-formula> in<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x70.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x71.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x72.png" xlink:type="simple"/></inline-formula>. The sub-hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x70.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x71.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x72.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x73.png" xlink:type="simple"/></inline-formula> is an MC-MPDSH from v to the destination occurrences that it contains, with respect to the constraints <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x70.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x71.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x72.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x73.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x74.png" xlink:type="simple"/></inline-formula><sup>4</sup>.</p><p>10) Several paths from the source to different destinations can use an edge. We say that two paths share an edge in a hierarchy if the same occurrence of the edge belongs to both paths.</p><p>Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula> be two paths from the source to two distinct destinations both con- taining an edge a. The edge a is shared by <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x77.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x78.png" xlink:type="simple"/></inline-formula> in the MC-MPDSH, iff the pre- fix of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x79.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x80.png" xlink:type="simple"/></inline-formula> from the source to the edge a is the same:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x75.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x77.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x79.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x80.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x81.png" xlink:type="simple"/></inline-formula>.</p><p><xref ref-type="fig" rid="fig3">Figure 3</xref> illustrates a graph, that contains only one feasible path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula> and another <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula> from the source s to the destinations <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x84.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x84.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x85.png" xlink:type="simple"/></inline-formula> respectively. In the minimum cost spanning hierarchy, the two paths can share the edge <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x84.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x85.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x86.png" xlink:type="simple"/></inline-formula> (the prefixes are the same, i.e. this prefix is empty), but they cannot share the edge<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x84.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x85.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x87.png" xlink:type="simple"/></inline-formula>. (The edge <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x83.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x84.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x85.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x87.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x88.png" xlink:type="simple"/></inline-formula> is present twice in the hierarchy, as it is illustrated by the associated T in the figure).</p><p>This study of the properties of the optimal solution is very useful to design exact al- gorithms and heuristics. Our proposal for an exact Branch and Bound algorithm fo- llows.</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Shared and unshared common edges in the optimal hierarchy</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x89.png"/></fig></sec></sec><sec id="s4"><title>4. MC-MPDSH Computation by Branch and Bound Algorithm</title><p>The multi-constrained multicast routing problem is NP-hard. Unfortunately, the algo- rithms proposed to solve the Constrained Steiner Problem such as the Steiner Tree Enumeration Algorithms and the Topology Enumeration Algorithms cannot be applied here, because of the allowed multiple occurrences of the graph elements in the solution. In the following, we present a Branch and Bound algorithm that exactly solves the MCMCM problem. The efficiency of this kind of algorithms depends strongly on the applied pruning operations. In our algorithm, two ways are proposed to reduce the search space and accelerate the computation:</p><p>・ pruning based on properties of the possible optimum as presented in the previous section.</p><p>・ pruning based on the Lookahead concept.</p><p>We will demonstrate that the proposed pruning operations accelerate significantly the computation.</p><sec id="s4_1"><title>4.1. Main Algorithm</title><p>Despite the fact that there are repeated nodes and edges in a hierarchy, the Branch and Bound algorithm can easily be adapted for the spanning hierarchy computation. The proposed framework (cf. Algorithm 1) is a frontier search type Branch and Bound algorithm. It allows the enumeration of the partial spanning hierarchies, which are candidates to lead to the solution. Each node in the virtual search tree corresponds to a hierarchy rooted at the source node. Generally, these hierarchies are sub-hierarchies, potential feasible germs of the solution spanning the destinations. The frontier is the set of leaves in the search tree. It is initialized with a hierarchy that contains only the source node s. At each step of the algorithm a simple greedy strategy is applied: the hierarchy H with the best cost is selected from the frontier. The first hierarchy in the course of the enumeration, which covers all destinations and satisfies the end-to-end constraints corresponds to the optimal solution and is returned. If the destinations are not yet covered by the selected hierarchy, possible continuations of this selected hierarchy H are computed to create larger hierarchies. These successors are then added to the frontier. The particularity of the problem is that repeated elements may occur in the continuations. If there is no hierarchy in the frontier satisfying the end-to-end constraints, the problem has no solution. The first steps of the search tree exploration is illustrated in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>Let K be the frontier (the set of leaves in the search tree). The meta-code of the main algorithm for computing the MC-MPDSH is given by Algorithm 1.</p><p>The brute enumeration of all possible hierarchies is very expensive. However, the properties of the optimal solution and the Lookahead technique permit to realize pruning operations. We analyze the efficiency of these accelerations in the following section. The crucial question is how the valid successors of a selected hierarchy H are computed to continue the enumeration of hierarchies in the search tree. Duplication of spanning hierarchies should be avoided and all possible candidates should be enume- rated.</p></sec><sec id="s4_2"><title>4.2. Computation of the Successors</title><p>To enumerate the candidate hierarchies, we propose the following construction. Like trees, hierarchies can always be decomposed into layers. In our case, we consider that the source corresponds to layer 0. When new edges are added to a selected hierarchy in</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> An example for the evolution of the search tree in a simple topology</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x90.png"/></fig><p>Algorithm 1. Branch and Bound algorithm to compute the MC-MPDSH.</p><p>Requier: the weighted graph<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x91.png" xlink:type="simple"/></inline-formula>, the weight vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x92.png" xlink:type="simple"/></inline-formula> and the cost <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x92.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x93.png" xlink:type="simple"/></inline-formula> for each edge<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x92.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x93.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x94.png" xlink:type="simple"/></inline-formula>, the source node s, the destination set D and the constraint vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x92.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x93.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x94.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x95.png" xlink:type="simple"/></inline-formula></p><p>Ensure: H the MC-MPDSH if it exists</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x96.png" xlink:type="simple"/></inline-formula> {the start point containing only the source}</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x97.png" xlink:type="simple"/></inline-formula> {<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x97.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x98.png" xlink:type="simple"/></inline-formula> is the set of the leaves in the search tree}</p><p>while<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x99.png" xlink:type="simple"/></inline-formula>do</p><p>select <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x100.png" xlink:type="simple"/></inline-formula> from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x100.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x101.png" xlink:type="simple"/></inline-formula> with minimal cost <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x100.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x101.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x102.png" xlink:type="simple"/></inline-formula></p><p>if <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x103.png" xlink:type="simple"/></inline-formula> then</p><p>return<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x104.png" xlink:type="simple"/></inline-formula> {it is the optimal solution}</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x105.png" xlink:type="simple"/></inline-formula>successor_hierarchies_of(<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x105.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x106.png" xlink:type="simple"/></inline-formula>) {cf. Algorithm 2}</p><p>for all <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x107.png" xlink:type="simple"/></inline-formula> do</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x108.png" xlink:type="simple"/></inline-formula> {add <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x108.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x109.png" xlink:type="simple"/></inline-formula> to <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x108.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x109.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x110.png" xlink:type="simple"/></inline-formula>}</p><p>end for</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x111.png" xlink:type="simple"/></inline-formula> {delete <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x111.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x112.png" xlink:type="simple"/></inline-formula> from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x111.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x112.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x113.png" xlink:type="simple"/></inline-formula>}</p><p>end while</p><p>STOP without solution</p><p>the algorithm, these edges are added always at the highest layer of the hierarchy. This layer contains only leaves. If the selected minimum cost hierarchy have n layers, the new successor hierarchies will have <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x114.png" xlink:type="simple"/></inline-formula> layers. Following the example in <xref ref-type="fig" rid="fig4">Figure 4</xref>, the successors of the root hierarchy (containing only the source) are hierarchies having two layers (and never three). The successors of the hierarchy selected in the example are hierarchies having three layers and the new edges are added only to the leaves of layer 1.</p><p>Let H be the selected hierarchy and let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x115.png" xlink:type="simple"/></inline-formula> be the set of the leaves in the last layer of H. The successors of H in the search tree are the hierarchies enlarged by adjacent edges from<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x115.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x116.png" xlink:type="simple"/></inline-formula>. We call this kind of edges fringe edges, expression borrowed from [<xref ref-type="bibr" rid="scirp.72009-ref24">24</xref>] . Since a node can not be repeated in any path (Property 4), edges returning to the parent node of a leaf are not in the fringe edges. The fringe edges of a hierarchy are illustrated by <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><p>The computation of the set of successors of a given hierarchy H is described by Algorithm 2. Only the hierarchies, which correspond to the end-to-end constraints and to the properties of the optimal solution and which are not excluded by the Look- ahead (cf. Subsection 4.3) can be sub-hierarchies of any solution. To simplify, we call them valid candidate hierarchies. The algorithm proceeds in two steps.</p><p>In the first step, it selects the set of fringe edges (indicated by A) of the hierarchy H. (Non empty combinations of these edges can be added to H to create successors in the second step.) Trivially, if a fringe edge f leads to a new leaf that violates the QoS con- straints, f is not added to the set A (the QoS constraints must be respected in the new leaves of the successor hierarchies, cf. Properties 2 and 9). Moreover, a node can not be repeated twice in a path from the source in the optimal solution (Property 4). Con- sequently, a fringe edge from a given leaf a is not added to the candidate set A if its other extremity already belongs to the set of parents of a.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> The fringe edges of a hierarchy</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x117.png"/></fig><p>Algorithm 2. Computation of successor hierarchies.</p><p>Require: the weighted graph<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x118.png" xlink:type="simple"/></inline-formula>, the hierarchy H corresponding to the current node in the search tree</p><p>Ensure: <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x119.png" xlink:type="simple"/></inline-formula>the set of successor hierarchies of H with respect to the end-to-end QoS requirement and Properties</p><disp-formula id="scirp.72009-formula217"><graphic  xlink:href="http://html.scirp.org/file/5-1730444x120.png"  xlink:type="simple"/></disp-formula><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x121.png" xlink:type="simple"/></inline-formula> set of possible adjacent edges</p><p>Step 1: Selection of all possible fringe edges for <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x122.png" xlink:type="simple"/></inline-formula></p><p>for all leaf <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x123.png" xlink:type="simple"/></inline-formula> of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x123.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x124.png" xlink:type="simple"/></inline-formula> do</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x125.png" xlink:type="simple"/></inline-formula>adjacent_edges_of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x125.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x126.png" xlink:type="simple"/></inline-formula> {adjacent edges of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x125.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x126.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x127.png" xlink:type="simple"/></inline-formula> }</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x128.png" xlink:type="simple"/></inline-formula>parents_of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x128.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x129.png" xlink:type="simple"/></inline-formula> {set of parent nodes of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x128.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x129.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x130.png" xlink:type="simple"/></inline-formula> in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x128.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x129.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x130.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x131.png" xlink:type="simple"/></inline-formula> }</p><p>for all edge <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x132.png" xlink:type="simple"/></inline-formula> do</p><p>{computation of possible adjacent edges of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x133.png" xlink:type="simple"/></inline-formula> }</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x134.png" xlink:type="simple"/></inline-formula>opposite_node_of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x134.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x135.png" xlink:type="simple"/></inline-formula></p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x136.png" xlink:type="simple"/></inline-formula> {accumulated weight at <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x136.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x137.png" xlink:type="simple"/></inline-formula>}</p><p>if <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x138.png" xlink:type="simple"/></inline-formula> then</p><disp-formula id="scirp.72009-formula218"><graphic  xlink:href="http://html.scirp.org/file/5-1730444x139.png"  xlink:type="simple"/></disp-formula><p>end if</p><p>end for</p><p>end for</p><p>Step 2: Combination of the fringe edges computed in Step 1</p><p>for all combination <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x140.png" xlink:type="simple"/></inline-formula> of the edges in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x140.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x141.png" xlink:type="simple"/></inline-formula> do</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x142.png" xlink:type="simple"/></inline-formula> {add the edges of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x142.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x143.png" xlink:type="simple"/></inline-formula> to <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x142.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x143.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x144.png" xlink:type="simple"/></inline-formula>}</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x145.png" xlink:type="simple"/></inline-formula> {set of reachable destinations}</p><p>if (number_of_leaves<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x146.png" xlink:type="simple"/></inline-formula> and max-degree_of_nodes <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x146.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x147.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x146.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x147.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x148.png" xlink:type="simple"/></inline-formula>) then</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x149.png" xlink:type="simple"/></inline-formula> {add <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x149.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x150.png" xlink:type="simple"/></inline-formula> as new successor to S}</p><p>end if</p><p>end for</p><p>In the second step, the algorithm combines the selected fringe edges (enumerated in the first step) for construction of valid successors. Since the optimal hierarchy can have at most <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x151.png" xlink:type="simple"/></inline-formula> leaves, only successors corresponding to this limitation are enumerated (Property 1). Following Property 7, the branching node occurrences of a given node</p><p>cannot exceed<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x152.png" xlink:type="simple"/></inline-formula>. Property 8 permits to verify the sum of the degrees of the</p><p>occurrences of the nodes present in a new configuration. Moreover, if a new com- bination does not permit to reach all the destinations (see also in the next sub section), the combination is deleted and not added to the successor set.</p><p>In the worst case, the algorithm constructs at most <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x153.png" xlink:type="simple"/></inline-formula> valid candi- date hierarchies, where k is the number of fringe edges that are added to A in step one.</p><p>Many other not valid hierarchies (which do not match any solution) can be detected using the Lookahead technique. In the following we summarize the adaptation of the Lookahead technique in our case.</p></sec><sec id="s4_3"><title>4.3. Application of the Lookahead</title><p>The Lookahead is originally used in Artificial Intelligence [<xref ref-type="bibr" rid="scirp.72009-ref25">25</xref>] [<xref ref-type="bibr" rid="scirp.72009-ref26">26</xref>] to accelerate the computation by applying upper bounds and reducing the search space. The concept was successfully applied in the computation of optimal paths under multiple constraints [<xref ref-type="bibr" rid="scirp.72009-ref2">2</xref>] . In our case, in a node reached on a path from the source, one can con- sider the remaining information of any path toward the destinations and decide if this node can be usefull and considered for the computation or not. More precisely, the Lo- okahead concept can be applied in the computation of the optimal hierarchy as follows.</p><p>At first, we compute the m shortest path trees from each destination to all other nodes by considering the m metrics. <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x154.png" xlink:type="simple"/></inline-formula>shortest path trees (computed in poly- nomial time) are obtained. To store the different computed values at each node, two propositions can be considered:</p><p>1) All values from this node to the destinations are saved in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula> Lookahead vectors (initially <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula> values at each node). In the following, we denote by <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x157.png" xlink:type="simple"/></inline-formula> the Lookahead vector computed for the node v regarding the destination<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x157.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x158.png" xlink:type="simple"/></inline-formula>. In this construct, trivially<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x157.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x158.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x159.png" xlink:type="simple"/></inline-formula>, where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x157.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x158.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x159.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x160.png" xlink:type="simple"/></inline-formula> is the shortest path from v to <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x155.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x156.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x157.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x158.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x159.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x160.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x161.png" xlink:type="simple"/></inline-formula> regarding the metric i. When a destination is reached, the vectors are updated (one can remove the corresponding Lookahead vectors).</p><p>2) Only one m-dimensional vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x162.png" xlink:type="simple"/></inline-formula> is considered in each node v with the smallest values from this node to the closest destination concerning each metric. For this vector,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x162.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x163.png" xlink:type="simple"/></inline-formula>. This vector is constant and cannot be reconsi- dered.</p><p>Trivially, the first method consumes more memory but it is more precise and effi- cient for pruning. In this study, we implemented the simpler second solution: only one Lookahead vector per node was used.</p><p>It is important to state that the computation of the Lookahead vectors is held off-line, before the construction of the candidate hierarchies. Then these vectors can be used at the computation of valid successors. For each fringe link selection (first step of Algo- rithm 2), the following additional test can be performed.</p><p>・ Let f be a fringe edge from node a in the hierarchy to a newly examined node b. Trivially, if<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x164.png" xlink:type="simple"/></inline-formula>, there is no further destination which can be reached from b respecting the constraints. The fringe arc can not be used to create successors (there is no feasible path to any destination).</p><p>In Step 2, the algorithm combines these edges and generates new candidates. The usefulness of each combination can be tested by using the Lookahead information, if the Lookahead vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x166.png" xlink:type="simple"/></inline-formula> is available for each destination<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x166.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x167.png" xlink:type="simple"/></inline-formula>.</p><p>・ Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x168.png" xlink:type="simple"/></inline-formula> be the set of leaves of the candidate hierarchy. (B contains the extremities of the newly added fringe edges and also leaves, which are not concerned by the new fringe edges.) Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x168.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x169.png" xlink:type="simple"/></inline-formula> be the set of “reachable” destinations from<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x168.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x169.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x170.png" xlink:type="simple"/></inline-formula>. For a “reachable” destination, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x168.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x169.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x170.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x171.png" xlink:type="simple"/></inline-formula><sup>5</sup>. For each com- bination, the set of destination which can be achieved by the combination can be computed. If the set does not cover all the destinations, this new hierarchy combination is not added to the candidate set.</p><p><xref ref-type="fig" rid="fig6">Figure 6</xref> illustrates the fist Lookahead test. The source is the node s and two destinations are concerned (nodes k and m). Two metrics are used and the link values are indicated. The computed Lookahead vectors are also indicated with bold characters near the nodes. During the first iteration, there are three candidates to create eventual successors of the source<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x172.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x172.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x173.png" xlink:type="simple"/></inline-formula>and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x172.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x173.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x174.png" xlink:type="simple"/></inline-formula>. However, if we consider the remaining information <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x172.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x173.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x174.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x175.png" xlink:type="simple"/></inline-formula> stored at node g, two candidates can be removed and only the second one can be considered for the continuation.</p></sec><sec id="s4_4"><title>4.4. Exactness of the Proposed Branch and Bound Algorithm</title><p>It is important to state that Algorithm 2 computes all valid hierarchies without skipping any of these hierarchies, even if it considers the proposed pruning operations.</p><p>Lemma 1. Algorithm 2 does not create duplication.</p><p>Proof. Remember, the successors are created following the layers of the hierarchies. Starting from a hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x176.png" xlink:type="simple"/></inline-formula> selected by Algorithm 1, non-empty combinations of fringe edges are added to create successors. A given combination is added only once to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x176.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x177.png" xlink:type="simple"/></inline-formula>. Two identical successors can not be produced from the hierarchy<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x176.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x177.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x178.png" xlink:type="simple"/></inline-formula>.</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Lookahead gain when<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x180.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x179.png"/></fig><p>Let us suppose that there are two identical hierarchies <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula> produced from two different hierarchies <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x184.png" xlink:type="simple"/></inline-formula>. The last layer of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x184.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x185.png" xlink:type="simple"/></inline-formula> (and also in<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x184.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x185.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x186.png" xlink:type="simple"/></inline-formula>) contains the fringe edges. By deleting these fringe edges, the previous hierarchies can be obtained. These previous hierarchies are the same by deleting the same fringe edges both from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x184.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x185.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x186.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x187.png" xlink:type="simple"/></inline-formula> and from<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x181.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x182.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x183.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x184.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x185.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x186.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x187.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x188.png" xlink:type="simple"/></inline-formula>. The contradiction is trivial.</p><p>Lemma 2. Algorithm 2 enumerates all valid candidate hierarchies without skipping any of them.</p><p>Proof. Let us suppose that there is a hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula> with less cost than the optimum and this hierarchy is skipped. By deleting the fringe edges from<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula>, the hierarchy <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x191.png" xlink:type="simple"/></inline-formula> is obtained, which is also valid and of less cost. Since <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x191.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x192.png" xlink:type="simple"/></inline-formula> is not enumerated, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x191.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x192.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x193.png" xlink:type="simple"/></inline-formula>can not be enumerated because there is no filter from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x191.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x192.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x193.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x194.png" xlink:type="simple"/></inline-formula> to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x189.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x190.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x191.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x192.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x193.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x194.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x195.png" xlink:type="simple"/></inline-formula>. In this way, recursively we can arrive in the route hierarchy, which can not be enumerated by the algorithm. It is absurd.</p><p>Theorem 1. The proposed Branch and Bound algorithm returns the MC-MPDSH if it exists.</p><p>Proof. The algorithm enumerates all the valid candidate hierarchies before arriving at the solution (Lemma 2). The valid candidates are selected by Algorithm 1 in an increasing order of costs. If a hierarchy H is selected, then there is no solution <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x196.png" xlink:type="simple"/></inline-formula> with less cost than the cost of H (otherwise <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x196.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x197.png" xlink:type="simple"/></inline-formula> is selected to examine). The first selected hierarchy spanning all the destinations is the MC-MPDSH.</p></sec></sec><sec id="s5"><title>5. Performance Evaluation of the Branch and Bound Algorithm</title><p>To analyze its performance, the algorithm have been executed in two benchmark networks. The first is the DARPA CORONET CONUS topology with 75 nodes and 99 links (illustrated by the first topology in <xref ref-type="fig" rid="fig7">Figure 7</xref>). The second is the NTT (Nippon Telephone Telegraph of Japan) network topology. This network contains 55 nodes and 144 links (the second topology in the figure).</p><p>In the presented simulations, three or four metrics were associated with each link and the link values were randomly generated from the same integer set (for example from<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x198.png" xlink:type="simple"/></inline-formula>) for each metric. We also considered the cost as a random value (corresponding to the first metric).</p><p>Different constraint vectors are generated from tight to loose ones. For a given destination d, we can consider the tightness of constraints as follows. For each metric i, a shortest path <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x199.png" xlink:type="simple"/></inline-formula> with length <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x199.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x200.png" xlink:type="simple"/></inline-formula> can be computed. This length is a lower bound for the feasible solutions from the source to this destination regarding this metric. A vector of constraints can be considered as tight, when the constraints are close to the upper bounds but there is at least a feasible solution. Contrarily, when the constraints are far from the upper bounds, feasible solutions are easier to find, we consider the con- straint vector as loose.</p><p>The execution time of the algorithm is quasi proportional to the number of computed hierarchies in the search tree. In this study, we use this number as a funda- mental performance metric. A second metric can be the number of iterations before ob- taining the solution.</p><fig-group id="fig7"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Topology CORONET CONUS [<xref ref-type="bibr" rid="scirp.72009-ref27">27</xref>] and NTT [<xref ref-type="bibr" rid="scirp.72009-ref28">28</xref>] .</title></caption><fig id ="fig7_1"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x202.png"/></fig><fig id ="fig7_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x201.png"/></fig></fig-group><sec id="s5_1"><title>5.1. Relevance of the Pruning and Lookahead</title><p>Due to the possible repetitions of nodes and edges in the spanning hierarchies, their enumeration by the Branch and Bound exact algorithm is more expensive than the enumeration of the more restricted spanning trees. However, the presented properties of the optimal hierarchy allow to implement efficient pruning. In addition to the pruning operations, we expect that the application of the Lookahead concept will also reduce considerably the search space.</p><p>To measure the impact of both the pruning operations and the Lookahead technique, three variants of the algorithm have been executed: 1) BBB: the basic Branch and Bound algorithm without pruning and Lookahead 2) BBwP: the algorithm improved by pruning based on the properties of the solution 3) BBwPLA: the algorithm with both the pruning and Lookahead operations.</p><p>At first, we executed the three algorithms in CORONET network for a multicast group of five arbitrarily chosen members. With randomly generated link values and moderately tight constraints<sup>6</sup> ten executions were launched, and only the first 20000 iterations of the algorithms were registered. Significant differences between the performances were observed. <xref ref-type="fig" rid="fig8">Figure 8</xref> illustrates the progression of the algorithms sh- owing the average number of computed hierarchies in the ten executions and the corresponding table indicates the average number of the computed hierarchies at the end of the 20,000 iterations.</p><p>The results show the efficiency of the propositions. In the example, the proposed pruning operations and the Lookahead technique divide the number of enumerated hierarchies in the search tree by more than ten.</p></sec><sec id="s5_2"><title>5.2. The Impact of the Tightness</title><p>The value of the constraint vector influences strongly the computation time. The tight- ness of the constraints is relative to metrics and destinations. With a given constraint vector and for some destinations, one can find several QoS routes satisfying the constraints whereas it is not possible for some other destinations. Since the solution (the spanning hierarchy) should cover all the destinations, we consider that the tightness always concerns the most critical destination.</p><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> The number of computed hierarchies in the first 20,000 iterations in an example</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x204.png"/></fig><p>Intuitively, when the constraints are loose (for all destinations), the optimal solution is a route of minimum cost but practically without constraint. It converges to the mini- mum Steiner tree. We will see that our Branch and Bound algorithm (which permits largely node repetitions) is not efficient to compute usual spanning trees (which are without node repetitions).</p><p>The enumeration of the possible hierarchies with potential node repetitions becomes essential, when the constraints are tight. In these cases both the Lookahead mechanism and the pruning operations are more efficient. The following experiences illustrate this effect. Let us notice that the computation of the exact solution is expensive. We developed only a few examples but the results are qualitatively similar in these examples.</p><p>In the DARPA CORONET CONUS topology, we tested the algorithm (the proposed BBPwLA version) for an arbitrarily configured multicast session with different con- straint vectors. The (randomly selected) source was in Austin and five destinations were (also randomly) selected at nodes Abilene, Buffalo, Los Angeles, Billings and El Paso. In this computation, three metrics were associated with each link and the values were generated randomly from the integer set<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x205.png" xlink:type="simple"/></inline-formula>. The cost corresponded to the first metric.</p><p>We computed the optimal solution for several QoS requirements. Since the link values were generated from the same range, we used the same end-to-end constraint for the three metrics. <xref ref-type="table" rid="table1">Table 1</xref> resumes the results on the number of iterations and com-</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> The number of computed hierarchies for different constraints in the first example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >constraints</th><th align="center" valign="middle" >cost of the opt</th><th align="center" valign="middle" ># of iterations</th><th align="center" valign="middle" ># of computed hierarchies</th></tr></thead><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x206.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >no solution</td><td align="center" valign="middle" >776</td><td align="center" valign="middle" >1279</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x207.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >6213</td><td align="center" valign="middle" >14,334</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x208.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >6213</td><td align="center" valign="middle" >14,334</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x209.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >22,409</td><td align="center" valign="middle" >78,206</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x210.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >22,409</td><td align="center" valign="middle" >78,206</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x211.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >72,615</td><td align="center" valign="middle" >267,228</td></tr></tbody></table></table-wrap><p>puted hierarchies to obtain the optimal solution. In the observed case, there is no solution with the constraints<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x212.png" xlink:type="simple"/></inline-formula>. In this way, we can consider that the vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x212.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x213.png" xlink:type="simple"/></inline-formula> corresponds to a tight constraint vector and the higher values are looser. For instance, the solution with minimum cost for the constraint vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x212.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x213.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x214.png" xlink:type="simple"/></inline-formula> (with cost 38) was obtained after 72,615 iterations and computing 267,228 hierarchies. The solution with the same quality (with cost 38) was also obtained with the tighter constraints <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x212.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x213.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x214.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x215.png" xlink:type="simple"/></inline-formula> after 6452 steps in the Branch and Bound algorithm compu- ting only 14,334 hierarchies.</p><p>The progression of the computation is illustrated by <xref ref-type="fig" rid="fig9">Figure 9</xref>. This experience shows that the computation becomes longer with loose constraints (curves are stopped quickly in tight environment).</p><p>Why not compute the optimal solution with tighter constraints, if the computation is faster? Unfortunately, the response is negative. Tight constraints do not always implicate the same quality and cost that can be obtained with loose constraints. Intui- tively, loose constraints permit to compute a solution near the cost minimal Steiner tree but at the expense of the QoS. With tighter constraints (satisfying tighter quality requi- rement) the optimal solution can have higher cost. This phenomenon is illustrated by the following example. In the CORONET CONUS topology for the same multicast group but using differently generated random link values, the following results were obtained. In this case, there is no solution for the constraint vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x216.png" xlink:type="simple"/></inline-formula> and the vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x216.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x217.png" xlink:type="simple"/></inline-formula> can be considered as tight constraint vector. We computed the exact solution with four constraint vectors as it is shown in <xref ref-type="table" rid="table2">Table 2</xref>. <xref ref-type="fig" rid="fig1">Figure 1</xref>0 shows the progression of the algorithm in the different cases. For tight constraints, the optimal solution is obtained rapidly (computing 14,334 hierarchies) but he cost is higher (49) than the cost (37) obtained in the case of loose constraints. The solutions are different. To obtain the optimal solution for the constraint vector<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x216.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x217.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x218.png" xlink:type="simple"/></inline-formula>, the computation of 128,927 hierarchies was needed.</p><p>A third computation case study was performed in the NTT network topology. The link values were generated randomly between 1 and 5 and for four QoS metrics. A mul- ticast group of four destinations (nodes 8, 17, 25 and 28) and a source (node 14) were also randomly selected. For the constraint vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x219.png" xlink:type="simple"/></inline-formula> there is no solution in the generated case, and the tight constraints permitting a feasible solution correspond to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x219.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x220.png" xlink:type="simple"/></inline-formula>. With different feasible constraint vectors, the following solutions were obtained (cf. <xref ref-type="table" rid="table3">Table 3</xref>).</p><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> The progression of the number of computed hierarchies in the first example</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x221.png"/></fig><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> The number of computed hierarchies for different constraints in the second example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >constraints</th><th align="center" valign="middle" >cost of the opt</th><th align="center" valign="middle" ># of iterations</th><th align="center" valign="middle" ># of computed hierarchies</th></tr></thead><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x222.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >49</td><td align="center" valign="middle" >6213</td><td align="center" valign="middle" >14,334</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x223.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >17,152</td><td align="center" valign="middle" >20,907</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x224.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >47,574</td><td align="center" valign="middle" >75,064</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x225.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >71,327</td><td align="center" valign="middle" >128,927</td></tr></tbody></table></table-wrap><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> The evolution of the number of computed hierarchies in the second example</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x226.png"/></fig><p>With looser constraints the cost diminishes as it is expected. The particularity of this case is that with the constraints <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x227.png" xlink:type="simple"/></inline-formula> the number of iterations (the number of the selected hierarchies from the front of the search tree) is less (17,527) than with the constraints <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x227.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x228.png" xlink:type="simple"/></inline-formula> (24,039), but the number of computed successor hierarchies is higher. The loose constraints implicate less pruning operation and in this way, the number of computed successors increases rapidly. But, as it illustrated in this example, the computation can be terminated using less iterations. The progression is shown by <xref ref-type="fig" rid="fig1">Figure 1</xref>1. Our summary concerning the results is as follows.</p><p>The investigated simulations corroborate our intuitions. In the case of loose constraints, the exact algorithm is very expensive, even if the pruning operations limit the search space. In this case, the solution is close to the Steiner tree. The enumeration of the candidate hierarchies can not be tolerated in real route computations. Steiner heuristics can offer solutions. Contrarily, in the case of tight constraints, due to the pruning, the number of computed candidate hierarchies is lower and the proposed al- gorithm or a somewhat modified variant of this algorithm can be used.</p></sec></sec><sec id="s6"><title>6. Conclusions and Perspectives</title><p>The exact solution of the multi-constrained QoS multicast routing problem corres- ponds to a directed rooted hierarchy. However, finding feasible and/or minimum cost</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> The number of computed hierarchies for different constraints in the third example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ></th><th align="center" valign="middle" >cost of the opt</th><th align="center" valign="middle" ># of iterations</th><th align="center" valign="middle" ># of computed hierarchies</th></tr></thead><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x229.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >12,767</td><td align="center" valign="middle" >23,012</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x230.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >24,039</td><td align="center" valign="middle" >115,433</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/5-1730444x231.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >19</td><td align="center" valign="middle" >17,527</td><td align="center" valign="middle" >202,109</td></tr></tbody></table></table-wrap><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> he evolution of the number of computed hierarchies in the NTT example</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-1730444x232.png"/></fig><p>hierarchies are NP-hard problems. Exact algorithms to compute the optimum have not yet been proposed. The algorithms computing heuristic solutions manipulate trees and sets of paths rooted at the source. We argue that it is essential to identify the optimal solution of the addressed problem. It is clear that this solution does not obviously belong neither to the set of minimum cost paths nor to the set of shortest paths computed by using the earlier proposed and known non-linear length. Since hierarchies may contain multiple occurrences of a node or an edge/arc, most of the enumeration algorithms are not appropriate to compute the optimal solution. The main result of our investigations in this paper is an exact Branch and Bound algorithm to compute the optimal hierarchy. We proved that the proposed algorithm finds the optimum if it exists. To accelerate it, the design of the algorithm is based on some important pro- perties of the hierarchy-type solutions. Moreover, the Lookahead concept is applied successfully. The simulation’s results highlight the gain on the computation time, when the algorithm considers the proposed pruning operations. Due to the complexity of the problem, the exact algorithm cannot be applied for routing in large networks. Your results illustrate that in the case of loose QoS constraints, the solution can be a tree and in this manner modified Steiner heuristics can be applied. In the case of tight con- straints, the number of computed candidate hierarchies is limited and we can hop the design of efficient quasi-exact algorithms. These first results on the optimum are good start points for the future design of routing algorithms.</p></sec><sec id="s7"><title>Acknowledgements</title><p>I thank Dr. Samer Lahoud, associate professor at the University of Rennes 1, who has worked with me on an earlier version of the proposition. I thank also Dr. Fernando Kuipers, associate professor at Delft University of Technology, who proposed the app- lication of the Lookahead concept. Finally, the algorithm has been implemented by Dimitri Morere, master student at the University of Montpellier.</p></sec><sec id="s8"><title>Cite this paper</title><p>Molnar, M. (2016) Exact Algorithm to Solve the Minimum Cost Multi-Constrained Multicast Routing Problem. Journal of Computer and Communications, 4, 57-79. http://dx.doi.org/10.4236/jcc.2016.414005</p></sec><sec id="s9"><title>NOTES</title></sec></body><back><ref-list><title>References</title><ref id="scirp.72009-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Masip-Bruin, X., Yannuzzi, M., Domingo-Pascual, J., Fonte, A., Curado, M., Monteiro, E., Kuipers, F., Mieghem, P.V., Avallone, S., Ventre, G., Aranda-Gutierrez, P., Hollick, M., Steinmetz, R., Iannone, L. and Salamatian, K. (2006) Research Challenges in QoS Routing. Computer Communications, 29, 563-581. http://dx.doi.org/10.1016/j.comcom.2005.06.008</mixed-citation></ref><ref id="scirp.72009-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Mieghem, P.V. and Kuipers, F.A. (2004) Concepts of Exact QoS Routing Algorithms. IEEE/ ACM Transactions on Networking, 12, 851-864.  
http://dx.doi.org/10.1109/TNET.2004.836112</mixed-citation></ref><ref id="scirp.72009-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Kuipers, F.A. and Mieghem, P.V. (2002) MAMCRA: A Constrained-Based Multicast Routing Algorithm. Computer Communications, 25, 802-811.  
http://dx.doi.org/10.1016/S0140-3664(01)00402-9</mixed-citation></ref><ref id="scirp.72009-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Molnar, M., Bellabas, A. and Lahoud, S. (2012) The Cost Optimal Solution of the Multi-Constrained Multicast Routing Problem. Computer Networks, 56, 3136-3149.  
http://dx.doi.org/10.1016/j.comnet.2012.04.020</mixed-citation></ref><ref id="scirp.72009-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Winter, P. (1987) Steiner Problem in Networks: A Survey. Networks, 17, 129-167.  
http://dx.doi.org/10.1002/net.3230170203</mixed-citation></ref><ref id="scirp.72009-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Hwang, F.K. and Richards, D.S. (1992) Steiner Tree Problems. Networks, 22, 55-89.  
http://dx.doi.org/10.1002/net.3230220105</mixed-citation></ref><ref id="scirp.72009-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Aggarwal, V., Aneja, Y.P. and Nair, K.P.K. (1982) Minimal Spanning Tree Subject to a Side Constraint. Computers &amp; Operations Research, 9, 287-296.  
http://dx.doi.org/10.1016/0305-0548(82)90026-0</mixed-citation></ref><ref id="scirp.72009-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Leggieri, V., Haouari, M. and Triki, C. (2014) The Steiner Tree Problem with Delays: A Compact Formulation and Reduction Procedures. Discrete Applied Mathematics, 164, 178-190. http://dx.doi.org/10.1016/j.dam.2011.07.008</mixed-citation></ref><ref id="scirp.72009-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Gouveia, L., Simonetti, L. and Uchoa, E. (2011) Modeling Hop-Constrained and Diameter-Constrained Minimum Spanning Tree Problems as Steiner Tree Problems over Layered Graphs. Mathematical Programming, 128, 123-148.  
http://dx.doi.org/10.1007/s10107-009-0297-2</mixed-citation></ref><ref id="scirp.72009-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Kompella, V.P., Pasquale, J.C. and Polyzos, G.C. (1993) Multicast Routing for Multimedia Communication. IEEE/ACM Transactions on Networking, 1, 286-292.  
http://dx.doi.org/10.1109/90.234851</mixed-citation></ref><ref id="scirp.72009-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Kumar, S., Radoslavov, P., Thaler, D., Alaettinoglu, C., Estrin, D. and Handley, M. (1998) The MASC/BGMP Architecture for Inter-Domain Multicast Routing. Proceedings of the ACM SIGCOMM’98, 93-104.</mixed-citation></ref><ref id="scirp.72009-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Zhu, Q., Parsa, M. and Garcia-Luna-Aceves, J.J. (1995) A Source-Based Algorithm for Delay-Constrained Minimum-Cost Multicasting. Proceedings of the 14th Annual Joint Conference of the IEEE Computer and Communications Societies. Bringing Information to People, Boston, 2-6 April 1995, 377-385.</mixed-citation></ref><ref id="scirp.72009-ref13"><label>13</label><mixed-citation publication-type="book" xlink:type="simple">Wang, D., Ergun, F. and Xu, Z. (2005) Unicast and Multicast QoS Routing with Multiple Constraints. In: Marsan, M.A., Bianchi, G., Listanti, M. and Meo, M., Eds., Quality of Service in Multiservice IP Networks, Springer, Berlin, Heidelberg, 481-494.  
http://dx.doi.org/10.1007/978-3-540-30573-6_38</mixed-citation></ref><ref id="scirp.72009-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Feng, G. (2006) A Multi-Constrained Multicast QoS Routing Algorithm. Computer Communications, 29, 1811-1822. http://dx.doi.org/10.1016/j.comcom.2005.10.014</mixed-citation></ref><ref id="scirp.72009-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Korkmaz, T. and Krunz, M. (2001) Multi-Constrained Optimal Path Selection. Proceedings of the 20th Annual Joint Conference of the IEEE Computer and Communications Societies, Anchorage, 22-26 April 2001, 834-843. http://dx.doi.org/10.1109/infcom.2001.916274</mixed-citation></ref><ref id="scirp.72009-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Stachowiak, K. and Zwierzykowski, P. (2014) Rendezvous Point Based Approach to the Multi-Constrained Multicast Routing Problem. AEU-International Journal of Electronics and Communications, 68, 561-564. http://dx.doi.org/10.1016/j.aeue.2014.01.002</mixed-citation></ref><ref id="scirp.72009-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Sun, B., Pi, S., Gui, C., Zeng, Y., Yan, B., Wang, W. and Qin, Q. (2008) Multiple Constraints QoS Multicast Routing Optimization Algorithm in MANET Based on GA. Progress in Natural Science, 18, 331-336. http://dx.doi.org/10.1016/j.pnsc.2007.11.006</mixed-citation></ref><ref id="scirp.72009-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Lu, T. and Zhu, J. (2013) Genetic Algorithm for Energy-Efficient QoS Multicast Routing, IEEE Communications Letters, 17, 31-34.  
http://dx.doi.org/10.1109/LCOMM.2012.112012.121467</mixed-citation></ref><ref id="scirp.72009-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Xu, Y. (2011) Metaheuristic Approaches for QoS Multicast Routing Problems. PhD Thesis, University of Nottingham, Nottingham.  
http://www.cs.nott.ac.uk/~rxq/files/Thesis-Ying.pdf</mixed-citation></ref><ref id="scirp.72009-ref20"><label>20</label><mixed-citation publication-type="book" xlink:type="simple">Sahoo, S.P., Ahmed, S., Patel, M.K. and Kabat, M.R. (2013) A Tree Based Chemical Reaction Optimization Algorithm for QoS Multicast Routing. In: Panigrahi, B.K., Suganthan, P.N., Das, S. and Dash, S.S., Eds., Swarm, Evolutionary, and Memetic Computing, Springer International Publishing, Cham, 68-77. http://dx.doi.org/10.1007/978-3-319-03753-0_7</mixed-citation></ref><ref id="scirp.72009-ref21"><label>21</label><mixed-citation publication-type="book" xlink:type="simple">Ruzika, S. and Hamacher, H.W. (2009) A Survey on Multiple Objective Minimum Spanning Tree Problems. In: Lerner, J., Wagner, D. and Zweig, K.A., Eds., Algorithmics of Large and Complex Networks: Design, Analysis, and Simulation, Springer-Verlag, Berlin, Heidelberg, 104-116. http://dx.doi.org/10.1007/978-3-642-02094-0_6</mixed-citation></ref><ref id="scirp.72009-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Molnár, M. (2011) Hierarchies to Solve Constrained Connected Spanning Problems. Tech. Rep., RR-11029, 26. http://hal-lirmm.ccsd.cnrs.fr/lirmm-00619806/en/</mixed-citation></ref><ref id="scirp.72009-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Bellman, R. (1957) Dynamic Programming. Princeton University Press, Princeton.</mixed-citation></ref><ref id="scirp.72009-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, X., Wei, J. and Qiao, C. (2000) Constrained Multicast Routing in WDM Networks with Sparse Light Splitting. Journal of Lightwave Technology, 18, 1917-1927. 
http://dx.doi.org/10.1109/50.908787</mixed-citation></ref><ref id="scirp.72009-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Lin, S. (1965) Computer Solutions of the Traveling Salesman Problem. The Bell System Technical Journal, 44, 2245-2269. http://dx.doi.org/10.1002/j.1538-7305.1965.tb04146.x</mixed-citation></ref><ref id="scirp.72009-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Newell, A. and Ernest, G. (1965) The Search for Generality. IFIP Congress.</mixed-citation></ref><ref id="scirp.72009-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Chiu, A.L., Choudhury, G., Clapp, G., Doverspike, R., Gannett, J.W., Klincewicz, J.G., Li, G., Skoog, R.A., Strand, J., Lehmen, A.V. and Xu, D. (2009) Network Design and Architectures for Highly Dynamic Next-Generation IP-over-Optical Long Distance Networks. Journal of Lightwave Technology, 27, 1878-1890.  
http://dx.doi.org/10.1109/JLT.2009.2021564</mixed-citation></ref><ref id="scirp.72009-ref28"><label>28</label><mixed-citation publication-type="other" xlink:type="simple">http://mstar.unex.es/mstar documentos/tg/tg-instances.html</mixed-citation></ref></ref-list></back></article>