On minimizing coding operations in network coding based multicast: an evolutionary algorithm

In telecommunications networks, to enable a valid data transmission based on network coding, any intermediate node within a given network is allowed, if necessary, to perform coding operations. The more coding operations needed, the more coding resources consumed and thus the more computational overhead and transmission delay incurred. This paper investigates an efficient evolutionary algorithm to minimize the amount of coding operations required in network coding based multicast. Based on genetic algorithms, we adapt two extensions in the proposed evolutionary algorithm, namely a new crossover operator and a neighbourhood search operator, to effectively solve the highly complex problem being concerned. The new crossover is based on logic OR operations to each pair of selected parent individuals, and the resulting offspring are more likely to become feasible. The aim of this operator is to intensify the search in regions with plenty of feasible individuals. The neighbourhood search consists of two moves which are based on greedy link removal and path reconstruction, respectively. Due to the specific problem feature, it is possible that each feasible individual corresponds to a number of, rather than a single, valid network coding based routing subgraphs. The neighbourhood search is applied to each feasible individual to find a better routing subgraph that consumes less coding resource. This operator not only improves solution quality but also accelerates the convergence. Experiments have been carried out on a number of fixed and randomly generated benchmark networks. The results demonstrate that with the two extensions, our evolutionary algorithm is effective and outperforms a number of state-of-the-art algorithms in terms of the ability of finding optimal solutions.


Introduction
Multicast is a one-to-many communication technique that simultaneously delivers information from the source to a group of destinations (receivers) within the same network so that in a single transmission any receiver of the group is able to obtain the original information sent from the source [1].With the emergence of increasingly more multimedia applications such as video conferencing and IPTV, multicast has become one of the key supporting technologies in modern communication networks [2,3].
Network coding, as a new communication paradigm, has received an increasing amount of research attention since 2000 [4].It is superior to the traditional routing protocol in many aspects, including an increased multicast throughput, a balanced network payload, transmitting energy savings, and so on [5][6][7][8].It is well known that traditional routing transmits information in the same way as fluids share pipes [8].Different data streams (data information) transmitted share the limited network resources; however, they are separately processed at the network-layer.In traditional routing, each intermediate node simply forwards the incoming data packets to its downstream node(s), adopting store-andforward data forwarding scheme.However, the theoretical maximum throughput of a multicast may not be achieved by using such scheme [4,5].In contrast, with code-andforward data forwarding scheme at the network-layer, network coding allows any intermediate node to perform mathematical operations to data packets received from different incoming links if necessary, always achieving the maximized multicast throughput according to the MAX-FLOW MIN-CUT theorem [5].
In the current literature, the majority of the research in network coding assumes that coding operations should be carried out at all coding-possible nodes.However, to obtain an expected throughput, coding may only be necessary at a subset of these nodes [9][10][11].Since coding operation consumes computational overhead and increases data processing complexity, it is of great interest to minimize the amount of coding operations.Such problem is proven to be NP-Hard [9][10][11].
Evolutionary algorithms (EAs) are a class of populationbased meta-heuristic optimization techniques based on the mechanics of natural selection and reproduction [12].EAs often perform well on approximating solutions to many types of optimization problems because there is no need for users to make any assumption about the underlying fitness landscape.It is well known that genetic algorithm (GA) is one of the mostly investigated evolutionary algorithms and has been successfully and widely applied in operations research, engineering, economics, and so on.Although GA is a general bio-inspired algorithm, care should be taken in designing effective operators to the given optimization problem to avoid potential problems such as pre-maturity and slow convergence.In addition, the local exploitation ability in standard GAs cannot usually be fully achieved, motivating the advanced research in developing hybrid evolutionary algorithms including memetic algorithms [13,14].
In this paper, we present an efficient evolutionary algorithm with two new schemes to minimize the amount of coding operations required in network coding based multicast.In the first scheme, a new crossover operator is devised to intensify the exploration in the regions of solution space where the majority of individuals are feasible.Different from the standard crossover that swaps a subset of the selected parent individuals, the new crossover performs the logic OR operation on the selected parent individuals and thus can effectively produce feasible individuals.Our experimental results show that the global exploration has been improved by integrating the new crossover and simple mutation compared with using the uniform crossover and simple mutation.In the problem concerned, each feasible individual may correspond to several valid network coding based routing schemes which consume different amounts of coding resources.We design a neighborhood search operator, by using two moves, to select a better routing scheme for the feasible individual.The experimental results also show that, with the neighbourhood search and the new crossover, the proposed algorithm is able to find an optimal solution in all instances, including x-copies and random networks.

Problem formulation
A communication network can be modeled as a directed graph G = (V , E), where V and E denote the set of nodes and links, respectively [5].We assume that each link e ∈ E has a unit capacity.Only integer flows are allowed in G so a link is either idle or occupied by a flow of unit rate [10,11].In this paper, we only consider the multicasting function in telecommunications networks by using the network coding technology.A single-source network coding based multicast scenario can be defined as a 4-tuple set (G, s, T , R), where the information needs to be transmitted at data rate R from the source node s ∈ V to a set of sinks T = {t 1 ,. . .,t d }⊂ V in the graph G(V , E).The data rate R is achievable if there is a transmission scheme that enables each sink t k , k = 1, . . ., d, to receive the information at rate R [10,11].As each link has a unit capacity, any single path connecting s and t k (k = 1, . . ., d) has a unit capacity.If we manage to set up R link-disjoint paths from s to each receiver t k , i.e.P 1 (s, t k ),. . .,P R (s, t k ), data rate R is achievable.
We refer to a connected subgraph in G, including s and all sinks in T , as a network coding based routing subgraph G s→T if the data rate from s to each t k ∈ T is of R units within this subgraph.In a routing subgraph, there are R link-disjoint paths from s to each receiver.To find a routing subgraph, we first find R link-disjoint paths for each t k ∈ T from G, i.e.P 1 (s, t k ),. . .,P R (s, t k ).There are R • d paths in total.We then mark those links and nodes in G which are being occupied by at least one of the R •d paths.The routing subgraph is the union of marked nodes and links in G.Note that in a routing subgraph, paths to the same receiver never join together since they are link-disjoint.Hence, only those paths to different receivers are possible to be involved in coding.In routing subgraph, a node is called coding node if data streams from different incoming links of it are recombined together.An outgoing link of a coding node is called a coding link if the coded data stream is sent out via this link.
In a network G, no coding occurs at a node with a single incoming link.We refer to a non-sink intermediate node with multiple incoming links as a merging node [10,11].Consider a merging node v with In(v) incoming links and Out(v) outgoing links, where In(v) ≥ 2 and Out(v) ≥ 1.We use a decision variable A j = {a ij |i = 1,. . .,In(v), j = 1,. . .,Out(v)}, where A j is a block of length In(v), to represent the information of how many incoming links of v contributing to the output over the j -th outgoing link of v [10,11].For each i ∈{1,. . .,In(v)} and each j ∈{1,. . .,Out(v)}, if the information from the i-th incoming link contributes to the coded output over the j -th outgoing link, a ij = 1, otherwise a ij = 0. We refer to the states of '1' and '0' as active and inactive states, respectively [10,11].Network coding is performed at node v and the coded output is transmitted over link j only if at least two incoming link states of link j are active simultaneously.Figure 1 shows an example of a merging node and a possible set of link states, respectively [15].The individual representation in our evolutionary algorithm consists of blocks of all potential coding links (refer to Section 3).We refer to each outgoing link of a merging node as a potential coding link.To determine if a potential coding link serves as a coding link, we need to check if the information via this link is dependent on a number of incoming links of the merging node.We only consider linear network coding which is sufficient for multicast [5].
The number of coding links (rather than coding nodes) is more accurate to indicate the total amount of coding operations involved [16].We hereafter investigate on finding a routing subgraph G s→T with minimized coding links.The following notations are defined: σ ij : a binary variable associated with the j -th outgoing link of the i-th merging node, i = 1,. . .,M, j = 1,. . .,Z i , where M is the total number of merging nodes and the i-th node has Z i outgoing links.σ ij = 1 if the j -th outgoing link of the i-th node serves as a coding link; σ ij = 0 otherwise.λ (s, t k ): the achievable rate between s and t k in G s→T p i (s, t k ): the i-th link-disjoint path found between s and t k in G s→T , i = 1,2,. . .,R. W i (s, t k ): the link set of P i (s, t k ), i.e.W i (s, t k ) ={e |e ∈ P i (s, t k )}.
Based on the above notations, we define in this paper the problem of finding a routing subgraph G s→T where the number of coding links, (G s→T ), is minimized while the desired data rate R is achieved, shown as follows: Objective (1) defines our problem as to find a routing subgraph G s→T with the minimum number of coding links; Constraint (2) defines that in G s→T , the achievable data rate between s and each sink is R; Constraint (3) indicates that for an arbitrary t k the R constructed paths P i (s, t k ), i = 1,. . .,R, have no common link.

Related work
In the past decade, a considerable amount of research has been dedicated to encoding-and-decoding approaches for network coding based data transmission [5,[17][18][19][20].However, the minimization on coding resources in network coding based multicast has not received enough attention.The first seminal work on the minimization problem concerns two greedy approaches proposed, respectively.In [21], information flows are decomposed into a number of subtrees, where the same information is transported in the same subtree.Besides, a greedy algorithm is presented to construct a subtree graph involving minimal coding operations while supporting a valid network coding based data transmission.In [16], a given network is transformed into a new network first, where the degree of each node is at most three.After that, the authors remove links which make no contribution to the achievable data rate from the new graph to reduce the coding operations involved.However, the performance of the above two algorithms depends on the traversal order of links, e.g. an inappropriate link traversal order may significantly weaken the optimization performance.
From then on, a number of evolutionary algorithms (EAs) were proposed.Kim et al. use genetic algorithms (GAs) to optimize the required network coding resource [9][10][11].In 2006, they proposed a GA on an algebraic framework [9].Given a network G, they construct the corresponding labeled line graph G by using the information flow decomposition method [21].Then each link e ∈ G is associated with a link coefficient.All the coefficients result into a specific solution based on which the consumed network coding resource can be calculated.The algebraic framework is the first method which maps the network coding problem to a GA framework.However, this GA is only applicable to acyclic networks.After that, Kim et al. extend their work in [9] to a distributed GA to significantly reduce the computational time [10].Besides, a graph decomposition method is proposed for both acyclic and cyclic networks.It decomposes each merging node in G into a number of auxiliary nodes to show explicitly how a flow passes through the merging node.This method then becomes a popular way to map the network coding problem to an EA framework.After that, Kim et al. compare and analyse GAs with two different genotype encoding approaches, i.e. the binary link state (BLS) and the block transmission state (BTS), and their associated genetic operators [11].Compared with BLS encoding, BTS encoding has a much smaller solution space and usually leads to better solutions.Besides, their GAbased algorithms perform outstandingly better than the two greedy algorithms in [16] and [21] in terms of the best solutions achieved.However, as we observed in this paper, the major genetic operator, i.e. the uniform crossover, has a limited contribution to produce promising solutions.Recently, a path-oriented encoding, which leads to a completely feasible search space, is also designed for EAs for tackling the network coding problem [22].Nevertheless, this encoding is complex (e.g.two-dimensional) and its size grows with the number of receivers.Hence EAs with the path-oriented encoding are limited to applications with relatively small multicast group.
In addition to GAs, estimation of distribution algorithms (EDAs) are also used to solve the problem concerned.Two quantum-inspired evolutionary algorithms (QEAs) are proposed to minimize the coding operations involved [15,23].QEAs maintain a population of quantum-bit individuals, each representing a linear superposition of all solutions in the search space.Simulation results demonstrate that the improved QEA outperforms a standard GA in some instances, however at the cost of additional computational time.Xing and Qu present a population based incremental learning algorithm (PBIL) which integrates GA with competitive learning [24].PBIL maintains a real-valued probability vector which, when sampled, generates better solutions with a higher probability during the evolution.With a restart scheme, the PBIL usually finds decent solutions; however, it consumes a considerable amount of computational time.Another PBIL is introduced to mainly consider how to adapt network coding in delay sensitive applications, where delay bound is concerned [25].Later on, a compact genetic algorithm is proposed for minimizing the amount of coding operations in the network coding based multicast, where at each generation only one solution is sampled from the probability vector.It competes with the best solution of previous generations and the winner is used to update the probability vector [26].
Some researchers study the minimum-cost network coding problem using evolutionary approaches with entropybased evaluation relaxation techniques in order to reduce the computational cost incurred during the evolution [27,28].By making use of the inherent randomness feature of the individuals, the proposed EAs can rapidly recognize promising solutions with much fewer individuals to be evaluated.Recently, a multi-objective EA has been adopted to balance the consumed resource and user experience during the network coding based multicast [29].
In general, standard EAs may be directly applied to a range of optimization problems.However, in some applications of EAs, its genetic operators are too general to warrant an efficient and effective evolution.Our motivation in this paper is to investigate an effective EA with problemspecific genetic operators devised to solve the problem concerned based on the domain knowledge and characteristics obtained from the problem.

The proposed algorithm
Our evolutionary algorithm is based on GA and extended by employing an OR-based crossover and a neighborhood search operator.This section first introduces the individual representation and fitness evaluation.After that, the two extensions are described in details.Finally, we provide the overall procedure of our algorithm.

Individual representation and evaluation
When designing EAs, chromosome representation is one of the most important issues.In this paper, we adopt the binary link state (BLS) encoding to represent solutions, because it has been successfully used in a number of network coding resource minimization problems [10,11,[24][25][26].
As mentioned in Section 2, only merging nodes can perform coding if necessary.To explicitly show all possible ways of how information flows via a particular merging node, the graph decomposition method is employed to decompose each merging node in G into a number of nodes connected by links [10,11].As a result, a secondary graph G D is created.The detailed procedure is shown below.For the i-th merging node, let In(i) be the number of incoming links and Out(i) be the number of outgoing links, respectively.The original i-th merging node is decomposed into two sets of nodes: (1) In(i) nodes, u 1 ,. . .,u I n(i) , referred to as incoming auxiliary nodes, and ( 2) Out(i) nodes, w 1 ,. . .,w Out (i) , referred to as outgoing auxiliary nodes.The j -th incoming link of the i-th original merging node is redirected to node u j ; and the k-th outgoing link of the i-th merging node is redirected to node w k .Besides, a directed link e(u j , w k ) is inserted between u j and w k , j = 1,. . .,In(i), k = 1,. . .,Out(i).The graph decomposition method is widely adopted in the literature [10,11,[24][25][26].
In the BLS encoding, an individual (solution) X = {x 1 , x 2 ,. . ., x m } is represented by a string of binary bits, where each bit x i is associated with one of the newly inserted links between auxiliary nodes, e.g.e(u j , w k ) in G D .Value '1' at bit x i means its corresponding link exists in G D , and value '0' otherwise.Hence, each individual corresponds to an explicit secondary graph G D which may or may not support a valid network coding based multicast routing solution.
To evaluate a given individual X, we first check if X is feasible.Each individual corresponds to a unique secondary graph G D .We compute the max-flow between the source s and an arbitrary receiver t k ∈ T in G D using the max-flow algorithm introduced in [30].As mentioned in Section 2, we assume each link in G has a unit capacity.The maxflow between s and t k is thus equivalent to the number of link-disjoint paths between s and t k found by the max-flow algorithm.If all d max-flows are at least R, where d is the number of receivers, rate R is achievable and the individual X is feasible.Otherwise, X is infeasible.
For each infeasible individual X, we set f (X) = , where f (X) is the fitness value of X and is a sufficiently large integer (in this paper, = 50).If X is feasible, we first find a routing subgraph G s→T from G D and then calculate its fitness.For each sink t k ∈ T , we select R paths from the obtained link-disjoint paths from s to t k .We therefore obtain in total R • d paths, e.g.p i (s, t k ), i = 1,. . .,R, k = 1,. . .,d. G s→T is a subgraph of G D that only contains all these R • d paths.In G s→T , coding operation happens at those outgoing auxiliary nodes with two or more incoming links.The fitness value f (X) is set to the number of coding links in G s→T .Figure 2 shows an example of the graph decomposition and an obtained routing subgraph.Figure 2a is an original network where source s expects to transmit the information to two sinks t 1 and t 2 at a data rate of 2, i.e.R = 2.The graph has two merging nodes, i.e. v 1 and v 2 .By using the graph decomposition method, the original graph is transformed into a decomposed graph, as shown in

The OR-based crossover (ORX)
As the problem concerned is highly constrained, infeasible solutions take up a considerable part of the solution space.The performance of GA could be seriously weakened if it cannot generate sufficient feasible individuals.
Crossover is regarded as a major genetic operator [12].To help GA to achieve a decent performance, when applied to a specific problem, crossover needs to be defined properly.Kim et al. adopt uniform crossover (UX) where each allele is exchanged between the selected pair of parent individuals with a given swapping probability (mixing ratio) typically set to 0.5 [12].However, this crossover is too general and may not be appropriate to create feasible offspring for the problem concerned in this paper.Kim et al. noticed the lack of feasible individuals in GA and inserted an all-one vector into the initial population to make sure that their algorithm starts with at least one feasible individual [10,11].
Concerning the aforementioned individual representation, it can be seen that the more 1s in an individual, the more newly inserted links exist in the corresponding G D , and thus the higher possibility this individual is feasible.This is the reason why Kim et al. use an all-one vector to warrantee at least one feasible individual in the evolution.
Motivated by the idea that individuals containing more 1s have higher probabilities to be feasible, we propose a novel crossover operator based on the logic OR operation.Similar to the single-point crossover, our crossover is performed at a crossover probability p c , and at a crossover point to the selected pairs of individuals.However, the way the two offspring inherit genes from their parents in our crossover is based on the bitwise logic OR operation.Assume the length of each individual is L. The steps of the proposed crossover are as follows: 1) Given a population {X 1 , X 2 ,. . ., X 2N }, the 2N individuals are randomly divided into N pairs, where N is an integer and 2N is the population size.2) For the i-th pair (X j , X k ), we generate a random number r i and compare it with the crossover probability p c .If r i ≤ p c , we choose the i-th pair to perform crossover and go to step 3; otherwise, the i-th pair remains in the population.3) Randomly select a crossover point from {2,. . .,L} for the i-th pair, e.g. .We denote by X(m:n) the substring from the m-th bit to the n-th bit of an individual X.Then, the crossover to the i-th pair (X j ,X k ) is performed as follows.The first offspring directly inherits X j (1: -1) as its 1 to -1 bits.Its to L bits are obtained by performing a bit-wise logic OR operation to X j ( :L) and X k ( :L).Similarly, the second offspring directly inherits X k ( :L) as its to L bits.The 1 to -1 bits of the second offspring are obtained by performing a bitwise logic OR operation to X j (1: -1) and X k (1: -1).4) After crossover, the population is updated by replacing parent individuals with their offspring.
To show how the OR-based crossover (ORX) is performed, we use the same problem in Fig. 2a as an example.The ith bit of an individual is associated with the i-th inserted link, e i , i = 1,. . .,8 (see Fig. 2b).Suppose a pair of individuals, parent1 = '11001001' and parent2 = '00110110', are chosen for crossover.It is easy to see that these two individuals are both infeasible (for feasibility verification, see Section 3.1).Assume the crossover point = 5. Figure 3 shows an example of the OR-based crossover on the two parent individuals to generate the two offspring, i.e. '11001111' and '11110110', which are both feasible.It is obvious that the bitwise logic OR operator can help to increase the proportion of 1s in each offspring, while preserving characteristics of the parent individuals.The number of feasible individuals is potentially increasing after the crossover based on the OR operator.
The OR-based crossover (ORX), on the one hand, is designed to intensify the search in a region with plenty of feasible individuals.It should usually find such a region within a small number of generations due to that the logic OR helps to produce increasingly more feasible individuals.On the other hand, however, different from the uniform crossover, the OR-based crossover will not help much to explore new regions in the solution space once feasible individuals are sufficient in the population.What the OR-based crossover does is to iteratively confine the search in a smaller and smaller region, and thus leading to pre-maturity.We therefore also employ mutation in

The neighbourhood search operator
As mentioned in Section 3.1, each feasible individual corresponds to a secondary graph G D based on which a routing subgraph G s→T can be found.However, one issue to be addressed is that, it is possible that more than one feasible routing subgraph exists in the given G D , although by using the method in fitness evaluation we can only obtain one.For the example problem in Fig. 2a, the corresponding secondary graph and two possible feasible routing subgraphs obtained for an individual '11011110' are shown in Fig. 4, where the subgraph in Fig. 4c has less coding links than in Fig. 4b.The better the routing subgraph found (i.e. the subgraph requires less coding operations), the higher the quality of the corresponding solution to the problem, and the faster the convergence of the algorithm.So, an interesting research question arises: shall we explore each secondary graph of each feasible individual to find better routing subgraph?
Inspired by the issue and question above, we design a neighborhood search operator to enhance the global exploration of our algorithm.Given a feasible individual X, we denote by G s→T (start) the routing subgraph obtained by fitness evaluation (see Section 3.1).Starting from G s→T (start), our neighborhood search, by using two moves, explores G D to find a new routing subgraph which requires less coding operations.The two moves, i.e. the link removal based move (M1) and the path reconstruction based move (M2), are cascaded to find better routing subgraphs.We denote the incumbent routing subgraph found by M1 and M2 as G s→T (M1) and G s→T (M2), respectively.We hereafter call a routing subgraph as a coding-free routing subgraph if this subgraph does not require any coding operation.
M1 aims to remove those incoming links in G D which contribute to coding operations yet are redundant to the data rate R. Figure 5 shows the procedure of M1.
After M1, the routing subgraph obtained, i.e.G s→T (M1), may be substantially improved compared with G s→T (start).However, it is still possible that some coding nodes remain in G s→T (M1).This is because M1 operates in a greedy Fig. 5 Procedure of the link removal based move (M1) 2) If G s T (M1) is coding-free, stop the procedure and output G s T (M1).
3) Mark all coding nodes in G s T (M1) as untraversed.fashion.Although it is simple to implement, M1's performance may vary with the structure of G D (start) and different traversal order of incoming links.Especially when G D (start) does not contain enough incoming links for deletion, M1 may not be able to eliminate all coding nodes in G s→T (M1).Hence, using M1 does not guarantee a result in a coding-free routing subgraph.To optimize the structure of G s→T (M1), we design M2 to further reduce the number of coding nodes.Set G s→T (M2) = G s→T (M1), and then M2 starts from G s→T (M2).
As mentioned in Section 2, each routing subgraph consists of R • d paths, where R is the data rate and d is the number of sinks.Only those paths to different sinks may contribute to a coding operation.M2 aims to avoid each coding node by reconstructing some paths in G s→T (M2) that contribute to the coding at the node.
For each coding node, path reconstruction includes four steps: (1) Determine which paths in G s→T (M2) are involved in the coding at the node.(2) For each involved path, select the start and end points of a subpath that needs to be reconstructed.(3) Find an alternative subpath between the start and end points that do not contribute to any coding node.( 4) Update the structure of G s→T (M2).
For convenience, we number all paths in G s→T (M2), i.e. p i (s, t k ), i = 1, 2, . . ., R, k = 1,2,. . .,d, as path 1, 2, . . ., R • d.We identify how many paths occupy a link e ∈ G s→T (M2), and label each e with the indices of the paths that occupy e.For example, we number the four the paths of the routing subgraph in Fig. 4b, where R = 2 and d = 2, i.e.
as path 1, 2, 3 and 4, respectively, with labels on each link as shown in Table 1.We hereafter use paths 1,2,. . .,R •d to represent all paths in G s→T (M2).Let SubPath(i, u, v) denote the subpath of path i from node u to node v. Figure 6 illustrates an example of path reconstruction within G s→T (M2) by using M2.Note that number(s) attached to each link is the path label of the link.We see that four subpaths, i.e.SubPath(1,u 1 , v 1 ), SubPath(4,u 2 , v 2 ), SubPath(6,u 3 , v 3 ) andSubPath(8,u 3 , v 3 ), form the coding node n c .Due to SubPath(6,u 3 , v 3 ) = SubPath(8,u 3 , v 3 ), M2 treats them the same when reconstructing subpath from u 3 to v 3 .After path reconstruction, subpaths SubPath(1,u 1 , v 1 ), SubPath(6,u 3 , v 3 ) and SubPath(8,u 3 , v 3 ) are reconstructed and the original coding operation at node n c is avoided.Besides, G s→T (M2) with these new subpaths is still feasible as each sink can still receive a data rate of R. In this way, M2 can reduce the number of coding nodes in G s→T (M2) while keeping the feasibility of G s→T (M2).
The determination of which paths contribute to a given coding node n c is easy.To identify them, we only need to check path labels of the incoming links of n c .Some the incoming links of n c are occupied by multiple paths (e.g.u 3 → n c in Fig. 6a) while others are occupied by a single path (e.g.u 1 → n c in Fig. 6a).
The following steps are to determine the start point and end point of a subpath for path reconstruction (e.g.u 1 and v 1 in Fig. 6 (e in (n c ,PathA)).We stop the upstream search once such n 1 is found.If n 1 cannot be found from the search, we set the source s as the start point.Similarly, when searching downstream, we refer to a node n 2 as an end point for path reconstruction if n 2 satisfies the following conditions: (e in (n 2 ,PathA)) = (e in (n c ,PathA)) and (e out (n 2 ,PathA)) = (e in (n c ,PathA)).We stop the downstream search once n 2 is found.Otherwise, we set the sink of PathA as the end point.Based on the pair of start and end points, the subpath occupied by multiple paths between them needs to be reconstructed to avoid the coding at n c .It is not difficult to understand that the On minimizing coding operations in network coding To remove the coding operation at n c from G s→T (M2), we need to find alternative subpaths (from start point to end point) to replace the conflicting subpaths (see Fig. 6b).
Assume n c has In(n c ) incoming links in G s→T (M2), where In(n c ) ≥ 2. We have In(n c ) pairs of start and end points.Let u i and v i , i = 1, 2, . . ., h, be the i-th pair of start point and end point, respectively.Among these pairs of nodes, we can avoid the coding at n c if we successfully reconstruct In(n c ) -1 subpaths by using arbitrary In(n c ) -1 pairs of nodes.In other words, one of the In(n c ) original subpaths can remain.As shown in Fig. 6, the original subpath SubPath(4,u 2 , v 2 ) does not need to be reconstructed.We define the maximum graph G MAX as the secondary graph G D corresponding to the individual '11. . .1', where each newly introduced link exists in the graph.G MAX is the most likely secondary graph to find alternative paths for reconstruction.
The steps of reconstructing a subpath from u i to v i is illustrated in Fig. 7.Note that if the original subpath is occupied by multiple paths, update must be made to each of the relevant paths.Take Fig. 6b as an example, the new subpath from u 3 to v 3 is occupied by paths 6 and 8, so the two paths must be updated by using the new subpath.
Figure 8 shows the procedure of the path reconstruction based move (M2).M2 only operates on some subpaths so only the involved subpaths are changed while the remaining structure of G s→T (M2) is not affected.It is not difficult to understand that (1) the initial routing subgraph, i.e G s→T (M1), influences the performance of M2, and (2) M2 Fig. 7 Steps for reconstructing a subpath 1) Delete G s T (M2) completely from G MAX .Denote the newly obtained subgraph as G NEW .
2) Insert the subpath that needs to be reconstructed into G NEW .
3) Delete the corresponding incoming link of n c from G NEW .4) Find a subpath from u i to v i from G NEW by using Dijkstra algorithm, a classical shortest path algorithm [32].If it is successful, update G s T (M2) by replacing the original subpath in G s T (M2) with the reconstructed subpath.Otherwise, G s T (M2) remains unchanged.
Fig. 8 Procedure of the path reconstruction based move (M2) 2) If G s T (M2) is coding-free, stop the procedure and output G s T (M2).
3) Mark all coding nodes in G s T (M2) as untraversed.is more effective to avoid coding at a coding node with less incoming links.
After the neighbourhood search, the newly obtained routing subgraph G s→T (M2) is returned as the corresponding routing subgraph of the given individual X.Instead of (G s→T (start)), the fitness value f (X) of X is set to (G s→T (M2)), i.e. the number of coding links in G s→T (M2).

The structure of the proposed algorithm
The pseudo-code of the proposed EA is shown in Fig. 9 with the following two extensions for solving the problem concerned: (1) an OR-based crossover adopted as the recombination operator, and (2) a neighborhood search operator embedded.
Note that the selection and mutation in this paper is the tournament selection and simple mutation, respectively.The tournament selection repeatedly selects the best individual of a randomly chosen subset of the population, where the subset size is referred to as tournament size [12].In the simple mutation, each bit of an individual is flipped at a given mutation probability.
The genotype encoding approach used in the proposed EA is the binary link state (BLS) encoding.For any outgoing link of an arbitrary merging node with k incoming links, an alphabet of cardinality 2 in the BLS encoding is sufficient to represent all possible 2 k states of k links [11] to the outgoing link.
Before initialization, the parameters of the EA, i.e. the population size 2N , the tournament size, the crossover Fig. 9 The pseudo-code of the proposed algorithm On minimizing coding operations in network coding probability p c and the mutation probability p m need to be defined.In the initialization, a population {X 1 , X 2 ,. . ., X 2N }is randomly generated and then evaluated.In the evaluation, we check the feasibility of each individual X i , i.e. verify if the individual corresponds to a secondary graph G D where a feasible routing subgraph G s→T (start) can be found.If X i is feasible, its corresponding G D and G s→T (start) are passed on to the neighborhood search where the two moves, i.e.M1 and M2 are executed to find a new and better routing subgraph from the neighbors of G s→T (start).After that, the fitness of X i is set to the number of coding links in the new routing subgraph, i.e. (G s→T (M2)).On the other hand, if X i is an infeasible individual, we assign a sufficiently large number to X i as its fitness value (in this paper, = 50).
In the loop, the tournament selection selects fitter individuals from the old population to form a new population.Then, the OR-based crossover is performed to each selected pair of individuals to create new and fitter offspring.Later, simple mutation is applied to diversify the population.After mutation, evaluation is performed in the same way as in the initialization.The selection, OR-based crossover and mutation are repeated iteratively to evolve the population until the evolution stops.
The termination conditions can be: (1) finding a codingfree routing subgraph, or (2) reaching a predefined number of generations.

Performance evaluation
We first investigate the effectiveness of the two extensions in EA, i.e. the OR-based crossover and the neighbourhood search operator, respectively.Experiments were conducted on four testing networks, 3-copies, 7-copies, 15-copies, and 31-copies which are usually used to test the performance of algorithms on the network coding resource minimization problem [11,24,26].The n-copies networks are generated based on the network shown in Fig. 4a by cascading ncopies of it, where each sink of the upper copy is a source of the lower copy.The n-copies network has n+ 1 sinks, to which the maximum data transmission rate from the source is 2. The length of each individual is 32 bits in 3-copies network, 80 bits in 7-copies network, 176 bits in 15-copies network, and 368 bits in 31-copies network, respectively.All experimental results are collected by running each algorithm 50 times.

The effectiveness of the OR-based crossover
As mentioned in Section 3.2, the OR-based crossover (ORX) helps to produce feasible individuals during the evolution.We examine the effectiveness of this operator by comparing the performance of the following three algorithms on 3-copies, 7-copies, 15-copies and 31-copies networks: -GA-UX-M: GA with tournament selection, uniform crossover (UX) and simple mutation.Uniform crossover decides which parent individual will contribute to each position in the offspring individual, with a mixing ratio [12].In simple mutation, each bit is flipped independently at a mutation probability p m .GA-UX-M is used to solve the problem concerned in this paper [11].-GA-M: GA with tournament selection and simple mutation.Crossover is excluded.-GA-ORX-M: GA with tournament selection, ORX and simple mutation.
As we see, the differences among these algorithms lie in whether they have crossover and if so which crossover they use.For the three algorithms, the initial population is randomly generated with an all-one vector inserted.This is to ensure each algorithm begins with at least one feasible individual [10,11].The population size in the three experiments is set to 20.The termination condition is 100 generations of evolution.The tournament size for selection is fixed at 2, which is a typical setting for tournament selection [12].The mutation probability is set to 0.006 [11].As to the crossover probability p c , we set 0.25, 0.50, and 0.75 to GA-UX-M and GA-ORX-M.
For each algorithm, the mean and standard deviation (std) of the best solutions obtained over 50 runs are shown in Table 2. First, we can see that GA-ORX-M significantly outperforms GA-UX-M and GA-M in each instance.This evidence demonstrates that the adoption of ORX can effectively improve the performance of GA.Besides, if we look at GA-ORX-M with different crossover probabilities, it is easily seen that p c = 0.25 leads to the best performance.As aforementioned, ORX can increase the number of feasible individuals in the population.A larger p c is more likely to result into a faster growing of feasible individuals.If p c is sufficiently large, ORX will restrict the search around a small region (where all-one vector is the centre) in the solution space and harm the population diversity.On the contrary, ORX with a smaller p c not only slowly compensates for the loss of feasible individuals in the population during the evolution, but also has a lower impact on the diversification of GA.This is why GA-ORX-M with a smaller p c performs better.Regarding the performance of GA-UX-M and GA-M, one may find that the former only performs slightly better except for the 7-copies network.This evidence shows that using UX may not be appropriate for the GA regarding the optimization problem in this paper.3. First, it can be seen that AFT is always smaller than BEF and the difference between them is sometimes significant especially in the 15-copies and 31-copies networks, demonstrating the effect of the neighbourhood search.With respect to the power of each move, we see that (1) M1 and M2 are both feasible and effective.(2) For the 3-copies and 7copies networks, M1 sometimes performs worse than M2.
(3) For the 15-copies and 31-copies networks, M1 is more likely to obtain a routing subgraph containing less number of coding links than M2.As mentioned before, M1 is to delete redundant links from a secondary graph G D (M1).If G D (M1) does not have enough links for deletion, the performance of M1 is deteriorated.In addition, the uncertainty of link traversal order also affects the results of M1.On the other hand, M2 only focuses on reconstructing a part of G s→T (M2) each time.So, M2 is mainly affected by the input routing subgraph.Last but not least, the results obtained by cascading M1 and M2 also illustrate M2 is a useful complement to M1 as M2 can further optimize the routing subgraph obtained by M1.We therefore conclude that the neighbourhood search operator helps to improve the performance of our algorithm as long as enough feasible individuals are generated.

Overall performance evaluation
In order to thoroughly analyse the overall performance of the proposed EA, we compare it with six state-of-the-art algorithms in the literature.The objectives are to minimize coding operations involved while meeting the expected data rate: -GA1: BLS encoding based GA [11].Different from GA-UX-M used in Section 4.1, GA1 employs a greedy sweep operator after the evolution to improve the quality of the best solution found by flipping each of the remaining 1's to 0 if it results into a feasible solution.-GA2: GA with the block transmission state encoding and operators [11].The same greedy sweep operator is applied at the end of evolution as in GA1.-QEA1: the quantum-inspired evolutionary algorithm (QEA) proposed in [15].This QEA is featured with a multi-granularity evolution mechanism, an adaptive quantum mutation and a penalty-function-based fitness function.-QEA2: QEA proposed in [23].The evolutionary parameters of QEA2 are adaptively adjusted according to the current and previous fitness values of the individual.
are relatively small in size and may not be able to precisely reflect the real-world problems.All experiments were run on a Windows XP computer with Intel(R) Core(TM)2 Duo CPU E8400 3.0GHz, 2G RAM.The results are achieved by running each algorithm 50 times.
Table 5 illustrates the mean and standard deviation (std) of the best solutions obtained over 50 runs by the eight algorithms.The mean value of 0.00 indicates an algorithm can obtain an optimal solution (which corresponds to a coding-free routing subgraph) at each run.The results show that EA and pEA can always find an optimal solution for each instance while the others in some instances cannot guarantee an optimal solution.To further support this observation, the statistical results of comparing algorithms by two-tailed t-test [31] with 98 degrees of freedom at a 0.05 level of significance are given in Table 6.The result of Algorithm-1↔Algorthm-2 is shown as "+", "-", or "˜" when Algorithm-1 is significantly better than, significantly worse than, or statistically equivalent to Algorithm-2, respectively.It can be seen that EA performs no worse but usually better than the other algorithms, indicating positive contributions of the OR-based crossover and neighbourhood search.
On the other hand, pEA also performs well in each instance.This is because the test problems are relatively small in size, i.e. the number of receivers is limited.As aforementioned, pEA maintains a population of pathoriented chromosomes which are two-dimensional.With a small set of receivers, pEA could gain decent performance.However, with the number of receivers growing, the structure of the chromosome becomes increasingly larger and more complex, which would lead to a weakened optimization performance.
The average computational time consumed by each algorithm is shown in Table 7.Compared with other algorithms, EA usually spends less computational time.In particular, the saving of time by using EA is sometimes significant, e.g. in 15-copies and 31-copies networks.This is interesting as the neighbourhood search usually needs a considerable amount of time when applied to each feasible individual.In fact, the reason that EA consumes less computational time is, as examined in Section 4.2, is that the neighbourhood search is powerful and makes full use of each feasible individual.So, neighbourhood search is only applied to a small number of feasible individuals before an optimal solution is found.EA stops whenever an optimal solution is found.
To summarize, the proposed EA has similar performance with pEA and outperforms other existing algorithms with respect to the statistical results.

Conclusion and future work
In this paper, we investigate an improved evolutionary algorithm (EA) to solve the problem of minimizing coding resource in network coding based multicast.Two extensions have been made to improve the performance of our EA.The first extension is an OR-based crossover which performs OR operations to each selected pair of parents.It shows to be able to constantly produce feasible individuals during the evolution.The proposed crossover operator shows to be crucial in designing an effective EA for the highly contained problem concerned.The other extension is a neighborhood search with two moves applied to each feasible secondary graph, leading to an improved routing subgraph.The intensification of search around promising local regions of the search space further improves the effectiveness of the proposed EA.The effectiveness and efficiency of the EA, which is adapted with specific characteristics of the highly constrained problem, have been evaluated via a large amount of systematic simulations.The experimental results show that the proposed EA outperforms other existing algorithms in the literature in terms of high-quality solution and low computational time, which undoubtedly deserves the best algorithm to date.In a word, the proposed EA is a suitable algorithm to solve the problem concerned.
In nature, a telecommunications network is a dynamic environment and full of uncertainty.The network environment is changing all the time.In the future, we will extend the coding operations minimization problem by considering the dynamic environment features, such as, the changing topology, nodes/links failures, and dynamic multicast group.In the meanwhile, we will develop more efficient online search algorithms to rapidly trace the optimal (near optimal) solution and respond to the environment change.As in the real world the network scale is relatively large, centralized search algorithms would be inefficient to handle the dynamics and uncertainties in the networks.Hence, we plan to study and develop decentralized online search algorithm(s) which can be implemented in a distributed real world network environment.Besides, to evaluate the performance of the proposed decentralized algorithm, the test problems used in the paper will be extended so as to reflect the dynamic features of the real world networks.
The optimization problem studied in the paper has a single objective, i.e. to minimize the amount of coding operations incurred during the NCM.In this problem, the expected data rate is regarded as a constraint that must be satisfied.Nevertheless, the expected data rate could be considered as an objective as well since it is also interesting to maximize the achievable data rate for the NCM.Hence, in the future, we will extend the original single-objective optimization problem to a bi-objective optimization problem, where the coding cost is minimized and the achievable data rate is maximized simultaneously.The two objectives may conflict with each other, meaning that to improve one objective may weaken the other.There is no such solution which is optimized in both objectives [33][34][35][36].The optimal solution set for the bi-objective optimization problem is known as the Pareto-optimal set.We plan to investigate the problem by using MOEAs, such as NSGA-II, epsilon-NSGA-II, SPEA2, etc.The outcome of the research could provide an insightful view on how to balance between the coding cost and the achievable data rate for decision makers.

Fig. 1
Fig. 1 Node v with two incoming and two outgoing links, described by input variables A 1 = (a 11 , a 21 ) and A 2 = (a 12 , a 22 ).(a) Merging node v. (b) Two blocks for outgoing links Fig. 2 An example of the graph decomposition and an obtained routing subgraph (a) The original network (b) The decomposed network (c) The corresponding G D (d) The obtained routing subgraph

Fig. 3 Fig. 4
Fig. 3 An example of generating offspring using the OR-based crossover

4 )
Randomly select an untraversed coding node in G s T (M1), e.g.node n c .Assume n c has In(n c ) incoming links in G s T (M1), where In(n c ) 2. Number these incoming links in any order.5) For i = 1 to In(n c ) a) Delete the i-th incoming link of n c from G D (M1).b) Check if a new feasible routing subgraph G s T (new) can be obtained from G D (M1) by using the method in fitness evaluation in section 3.2.If G s T (new) is found and (G s T (new)) (G s T (M1)), set G s T (M1) = G s T (new) and go to step 2; Otherwise, reinsert the i-th incoming link to G D (M1).6) Mark n c as a traversed coding node in G s T (M1).If all coding nodes in G s T (M1) are traversed, stop the procedure and output G s T (M1); otherwise, go to step 4.
): -For any incoming link of n c occupied by multiple paths, we randomly choose one path (e.g.PathA) and check the upstream and downstream nodes of n c along the path (PathA).Given a node n along PathA, we denote the incoming link of n along PathA by e in (n,PathA) and the outgoing link of n along PathA by e out (n,PathA).Let (e in (n,PathA)) and (e out (n,PathA)) denote the labels of e in (n,PathA) and e out (n,PathA), respectively.When searching upstream, we refer to a node n 1 as a start point for path reconstruction if n 1 satisfies the following conditions: (e out (n 1 ,PathA)) = (e in (n c ,PathA)) and (e in (n 1 ,PathA)) =

Fig. 6
Fig. 6 An example of path reconstruction.(a) target subpath in G s→T (M1) that forms a coding node n c (b) subgraph obtained after reconstruction

4 )
Randomly select an untraversed coding node in G s T (M2), e.g.node n c .Assume n c has In(n c ) incoming links in G s T (M2).Number these incoming links in any order.Set counter c = 0. 5) For i = 1 to In(n c ) a) Determine the i-th pair of start and end points (u i ,v i ).// see steps of determining start and end points.b) Find an alternative subpath from u i to v i .If the subpath is successfully reconstructed, update the relevant paths in G s T (M2) and set c = c + 1. // see Fig.7 for detail.d) If c = In(n c )-1 or i = In(n c ), go to step 6. 6) Mark n c as a traversed coding node in G s T (M2).If all coding nodes in G s T (M2) are traversed, stop the procedure and output G s T (M2); otherwise, go to step 4.

Table 2
Results of GA-UX-M, GA-M and GA-ORX-M (The Best Results are in Bold)

Table 3
Experimental Results of The Neighbourhood Search

Table 6
The t-Test Results of Comparing Different Algorithms on 14 Instances

Table 7
Computational Time Obtained by Different Algorithms (seconds)