Convolutional Network Codes for Cyclic Networks Elona Erez and Meir Feder Dept. of Electrical Engineering-Systems, Tel Aviv University, Tel Aviv, 69978, Israel, E-mail:{elona, meir}@eng.tau.ac.il

I. I NTRODUCTION Most data networks contain cycles, but so far most attention in the literature of network coding has been addressed to multicast in acyclic networks. The original paper on network coding [1] did consider cyclic networks but there it was suggested to transform the cyclic network into an acyclic network using the idea of unrolling the network into a layered network. This approach has many drawbacks: it achieves the optimal rate only asymptotically, it leads to time-variant schemes, it has high encoding and decoding complexities and it induces large delay. In [2] it was shown that if each edge in the network has delay, then there exists a time-invariant linear network code that achieves the optimal rate. This approach may, again, introduce large delay since each edge has delay and an efficient construction algorithm is not given. In [3] a heuristic code construction is given for a linear time-invariant code, but the construction is not given explicitly and it is not necessarily efficient. In this work we give an explicit polynomial time code construction of an optimal multicast linear network code for cyclic networks. As it turns out, it is not necessary for every edge in the network to have delay, as long as we ensure that in each cycle in the network at least one edge has delay. Since delay elements are anyway inserted into the network it seems more natural to focus on convolutional codes for cyclic networks. Nevertheless, our results in this paper are directly applicable for block codes. II. N OTATIONS AND P RECODING Consider a cyclic, unit capacity network G = (V, E) where parallel edges are allowed. There is a single source node s and a set of d sinks T = {t1 , · · · , td }. Denote by h the size of the minimal individual min-cut between s and any of the sinks. Let F (D) denote the ring of polynomials over the binary field with variable D. The variable D is a unit time shift. For convenience, as in [6], we add a dummy source s0 connected to source s with h edges {e01 , . . . , e0h }. Similarly to [2], we define the directed line graph of G = (V, E) as L(V, E) with vertex set V = E ∪ s ∪ s0 ∪ T ∪ {e01 , . . . , e0h } and edge set E = {(e, e0 ) ∈ E 2 : head(e) = tail(e0 )} ∪ {(s, e) : e outgoing from s} ∪ {(e, ti ) : e incoming to ti , 1 ≤ i ≤ d} ∪ {(s0 , e01 ), . . . , (s0 , e0h )} ∪ {(e01 , s), . . . , (e0h , s)}. We consider in the rest of the paper the line graph L(V, E). We denote nodes of L as e ∈ V, and the edges as (e, e0 ) ∈ E. If there are h edge-disjoint paths between s and t in G, there are corresponding h node-disjoint paths in L. Node e ∈ L is associated with an h-dimensional vector global coding vector v(e), with elements from F (D). The set

of edges incoming into node e is Γin (e) and m(ei , e) is the coding coefficient of edge (ei , e). Denote by F [D] the field of rational functions over the binary field with variable D. The code can be used for multicasting from s to T = {t1 , · · · , td } if and only if for all t ∈ T , the global coding vectors at the nodes incoming into t span the space F [D]h . It is assumed that prior to the code construction, all the coding coefficients in the network are set to zero. We have to choose a set of edges ED in G, such that if we eliminate them from the network G there will be no directed cycles. The nodes corresponding to ED in L(V, E) are denoted by ED . For edges outgoing from nodes not in ED we draw the coding coefficients among polynomials with degree at most M , for some M we will later determine. For edges outgoing from nodes in ED we draw the coding coefficients among polynomials with degree at most M , and multiply the result by D. Therefore the set of polynomials we can draw from has the same size for edges outgoing from either nodes in ED or nodes not in ED , but edges outgoing from nodes in ED always introduce at least a single delay. Thus we are guaranteed that each cycle contains at least a single delay. In order to minimize the delay, it is desired to minimize |ED |, or equivalently |ED | in the original network G. Finding the minimal set ED is essentially the known, long standing problem of finding the minimal arc feedback set. This problem is NP-hard [4]. The best known approximation algorithm with polynomial complexity achieves performance ratio O(log |V | log log |V |) [5]. For our purposes, we can use approximate solutions and insert enough delays in the cycles, before we begin our design algorithm. III. C ODE C ONSTRUCTION The code construction algorithm goes in steps over the terminals. In the l-th step of the algorithm we consider a subgraph Ll of L that consists only of the nodes and edges that participate in the flow from s to the sink tl . Without loss of generality, we assume that L is given by: L = ∪l=1,...,d Ll

(1)

We can make this assumption, because if there were in the original line graph L nodes that do not participate in any of the flows, we can remove them from the network, and still achieve the same optimal rate. For each node e ∈ Ll the algorithm will eventually define a coding coefficient m(e, e0 ) ∈ F (D) for the edge (e, e0 ) that connects this node to the node e0 that follows it in the flow. At the beginning of the l-step some of the edges may already have coding coefficients assigned at the previous steps. These coefficients are updated during the l-step, in a manner given in the following.

The algorithm goes over the nodes e ∈ Ll in a topological order. This is possible since Ll is acyclic as it can be decomposed into h paths and cycles can be eliminated from each path. The algorithm maintains a list of h nodes Cl , each belongs to a different path and this list includes the current node. Initially, Cl = {e01 , . . . , e0h }. Suppose the algorithm reaches a node ei,l (the subscript i indicates that the node belongs to the i-th path in the flow). Denote by Pj,l , j = 1, . . . , h the jth path of the flow from s to tl . Denote by pj,l the subset of path Pj,l consisting of all nodes following the node ej,l ∈ Cl in Pj,l (not including ej,l ). We define cj,l as the set of coding coefficients of edges with tail in pj,l and head in L \ pj,l . We define rl as the union of these sets of coefficients: rl = ∪1≤j≤h cj,l (2) In Figure 1 a schematic illustration of Cl is given, in which the coefficients in rl are specified and set to zero. Observe that

s' 0 1

e

⋅⋅⋅

for any value of m(e1,l , en1,l ), we have v(en1,l ) = v(en2,l ) and the new set of vectors cannot be a basis!

s' 1 0

edges outgoing from p j ,l m = 0 for edges in rl

⋅⋅⋅

e1,l e j ,l

⋅⋅⋅

0 1

1 0

v (e1,l ) = 1 v(e1 ) = 1

v (e2,l ) =

m(e1,l , e ) = 0 1 m(e1 , e1n,l ) = 1 v (e1n,l ) = 1 m(e1n,l , e2 ) = 1 m(e2 , e2n,l ) = 1 1 v(e2 ) = 1 n 1,l

m(e2 ,l , e2n,l ) = 0 1 v (e2n,l ) = 1

eh0

eh −1,l eh ,l

n e1n,l e nj ,l ehn−1,l m = 0 eh,l

m=0 m = 0 m = 0 m = 0 m = 0

m=0

tl Fig. 1.

v (e20 ) =

s

s edges in p j ,l

0 1

v(e10 ) =

A schematic illustration of Cl = {e1,l , · · · , eh,l } and pj,l

all the coefficients in rl correspond to edges outgoing from nodes that follow the nodes in Cl in the topological order. We define for each node e ∈ Cl a “partial” coding vector u(e) in the same manner as the global coding vector v(e) is defined for that node, but with all the coefficients in rl set to zero. Let Vl = {v(e) : e ∈ Cl } and Ul = {u(e) : e ∈ Cl }. Initially, the vectors in Ul are the columns of the h × h unit matrix. We recall that the algorithm of [6] ensured that the set Vl will span F [D]h throughout its stages. Unfortunately, in our case of cyclic network this is not sufficient to ensure that the network code is decodable at the sink. The reason is that there are coefficients that affect elements of Vl , whose value may change later in the algorithm. To see this, consider the example illustrated in Figure 2. The dashed edges are in Lk for some k < l, but not in Ll . The other edges are in Gl . In this example h = 2. The coefficients m(·, ·) were determined in previous steps, for other sinks. The current nodes in Cl are e1,l and e2,l . Suppose we have reached en2,l in the topological order and we examine now whether to change the value of m(e2,l , en2,l ). Since v(en2,l ) and v(e1,l ) are already a basis, the previous value m(e2,l , en2,l ) = 0 remains. Next we reach en1,l in the topological order and we need to determine m(e1,l , en1,l ). But

tl Fig. 2.

Example of a bad code

On the other hand, a sufficient condition to ensure that the network code is decodable at the sink is to require that the set Ul will span F [D]h . This is why we defined Ul . As will be seen below, the algorithm can progress and maintain Ul as a basis up to the end of step l, when Cl becomes the set of nodes incoming into tl . In this event the sets pj,l , 1 ≤ j ≤ h are empty and accordingly rl is empty, and so Vl = Ul . Thus the condition on Ul is equivalent to the condition in [7] for acyclic networks and the original input can be reconstructed from the information carried by the edges incoming into tl . Continuing with the algorithm, it reaches the node ei,l , maintaining the list Cl where the set Ul = {u(e) : e ∈ Cl } is a basis. At this stage it replaces ei,l with a new node eni,l that follows it in Pi,l , and generates a new list Cln = Cl ∪ eni,l \ ei,l . The subset of path i consisting of all nodes following nodes eni,l in path i is updated: pni,l = pi,l \ eni,l

(3)

Accordingly, cni,l is the set of coding coefficients of edges with tail in pni,l and head in L \ pni,l and rln is also changed to: rln = ∪1≤j≤h,j6=i cj,l ∪ cni,l

(4)

We have a new set of partial coding vectors Uln = {un (e1,l ), · · · , un (eni,l ), · · · , un (eh,l )}, defined when the coefficients in rln are set to zero. The algorithm has to determine the coding coefficient between ei,l and the new node eni,l so that Uln is a basis. Let m0 (ei,l , eni,l ) be the coding coefficient between these nodes before this stage of the algorithm, and let m(ei,l , eni,l ) be the coefficient determined at the end of

the stage. If Uln is not a basis, we have to change the old coefficient m0 (ei,l , eni,l ) into another coefficient m(ei,l , eni,l ). Consider the following theorem we prove in Section IV: Theorem 1: Suppose that with the coefficient m0 (ei,l , eni,l ) the set Uln is not a basis. Then by changing it to any other value m(ei,l , eni,l ) the set Uln will be a basis. Unfortunately, changing m0 (ei,l , eni,l ) to an arbitrary value may affect the sinks treated in the previous steps of the algorithm. Thus, if the coding coefficient has to be replaced (i.e., when Uln is not a basis) before replacing it to a new value we need to analyze its effect on the other sinks. Specifically, let Ck be the set of nodes incoming into the sink tk , k < l. We have the following theorem: Theorem 2: Denote by Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )}, ej,k ∈ Ck , the set of global coding vectors of the nodes incoming into tk before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ). If Vk0 is a basis, then after the replacement at most a single value of m(ei,l , eni,l ) will cause the new set of global coding vectors Vk = {v(e1,k ), · · · , v(eh,k )} not to be a basis. Based on these theorems, the procedure for replacing m0 (ei,l , eni,l ) is as follows. If m0 (ei,l , eni,l ) must be replaced i.e., Uln is not a basis, we pick a new value m(ei,l , eni,l ) according to some enumeration. We then check, using the procedure given in the proof of Theorem 2 below, if the independence condition is satisfied for all sinks. If the condition is not satisfied for all sinks, we pick the next coefficient m(ei,l , eni,l ) in the enumeration. Since for each sink only a single choice of m(ei,l , eni,l ) is bad, if we have more than d coefficients to choose from, we are guaranteed to have at least a single choice which is good for all previous sinks. The l-step of the algorithm continues until it reaches the sink tl , and the algorithm terminates when it goes over all d sinks. A flow chart of the algorithm is given in Figure 3. IV. P ROOFS OF T HEOREMS AND L EMMAS A. Lemma 1 Lemma 1: Let {e1 , · · · , eh } be a set of nodes and let W = {w(e1 ), · · · , w(ei ), · · · , w(eh )}, be their coding vectors, which may be partial or global coding vectors. Pick i and ˜ = consider the coding vectors of the same set of nodes W {w(e ˜ 1 ), · · · , w(e ˜ i ), · · · , w(e ˜ h )}, where we set m(ei , e) = 0 ˜ is for ∀e ∈ L. The set W is a basis if and only if the set W a basis. We start with the ”if” direction. We find the relation between ˜ and W . The only difference is that in the definition of W ˜ W m(ei , e) = 0 for ∀e ∈ L\ei . Suppose that m(ei , e), ∀e ∈ L\ei are now set to their true values. Since the code is linear, the effect of the network on the coding vector of ei is a linear system. We split node ei into 3 nodes: etail , emid and ehead , which are connected by edges (etail , emid ) and (emid , ehead ). We can find a rational function Gee with a variable D which represents the transfer function of the linear system from node ehead to node etail in the network L \ emid . The rational function Gee contains the factor D since each cycle must contain the factor D in at least one of its edges, as explained

in Section II. The resulting vector when m(ei , e), ∀e ∈ L \ ei are set to their true values is: 1 w(e ˜ i) w(ei ) = w(e ˜ i ) + Gee w(e ˜ i ) + G2ee w(e ˜ i) · · · = 1 − Gee (5) The factor 1−Gee never vanishes since Gee includes the factor D. The other vectors are given by: w(ej ) = w(e ˜ j ) + Fij

1 w(e ˜ i ), j 6= i 1 − Gee

(6)

where Fij is the transfer function from ei to ej . The vectors in W can represent rows of some matrix A. Likewise, the vectors ˜ can represent rows of some matrix A. ˜ The matrices A in W ˜ and A have the same rank, since A can be reached from A˜ by multiplication of a row by a non-zero factor and adding a multiplication of this row to the other rows. Therefore if A˜ is full rank, as implied by the conditions of the lemma, so is A. For the opposite direction, the relation between w(e ˜ i ) and w(ei ) is w(e ˜ i ) = (1 − Gee )w(ei ) (7) The other vectors are given by: 1 w(e ˜ i ), j = 6 i 1 − Gee (8) Similarly to the above, the matrices A and A˜ have the same rank, since A˜ can be reached from A by multiplication of a row by a non-zero factor and subtracting a multiplication of this row from the other rows. Therefore if A is a basis so is ˜ the set A. w(e ˜ j ) = w(ej )−Fij w(ei ) = w(ej )−Fij

B. Proof of Theorem 1 ˜ n = {˜ Let U un (e1,l ), · · · , u ˜ n (eni,l ), · · · , u ˜ n (eh,l )} denote the l coding vectors of Cln when all the coefficients in rl are set ˜ n the to zero. That is, unlike in Uln , in the definition of U l coefficients of the edges outgoing from eni,l are set to zero, ˜n , as well as the coefficients in rln . In the definition of U l n it is assumed that the new value m(ei,l , ei,l ) is used, while n n n n we denote by U˜0 l = {u˜0 (e1,l ), · · · , u˜0 (eni,l ), · · · , u˜0 (eh,l )} 0 n the corresponding set with m (ei,l , ei,l ). Assume that Ul = {u(e1,l ), · · · , u(ei,l ), · · · , u(eh,l )} is a basis, and recall that Ul is also defined when all the coefficients in rl are zero. From these definitions we have: n u ˜ n (eni,l ) = u˜0 (eni,l )+(m(ei,l , eni,l )−m0 (ei,l , eni,l ))u(ei,l ) (9) n

The vector u˜0 (eni,l ) is the coding vector of eni,l when the coefficients in rl are set to zero, before the replacement of n m0 (ei,l , eni,l ). The vector u˜0 (eni,l ) may include contributions from all edges incoming into eni,l . In (9) the vector u(ei,l ) is independent of m0 (ei,l , eni,l ) or m(ei,l , eni,l ) since there is no feedback from eni,l to ei,l when the coefficients m(eni,l , e) are set to zero ∀e ∈ L \ eni,l . We assumed that the previous set of partial coding vectors Ul = {u(e1,l ), · · · , u(ei,l ), · · · , u(eh,l )} is a basis. We want to ˜ n = {˜ ˜ n (eh,l )} un (e1,l ), · · · , u ˜ n (eni,l ), · · · , u show that the set U l n n n ˜ \˜ is also a basis. We have the relation Ul \u(ei,l ) = U l u (ei,l )

since both sets are defined with the coefficients in rl set to ˜n \ u zero. It follows that the vectors in the set U ˜ n (eni,l ) = l n n n n {˜ u (e1,l ), · · · , u ˜ (ei−1,l ), u ˜ (ei+1,l ), · · · , u ˜ (eh,l )} are independent. It remains to show that u ˜ n (eni,l ) is independent of n ˜n \ u U ˜ n (eni,l ). The vector u˜0 (eni,l ) in (9) is dependent on l ˜n \ u U ˜ n (eni,l ) because otherwise according to Lemma 1 the l n set Ul with m0 (ei,l , eni,l ) would be a basis and we would not have to change m0 (ei,l , eni,l ) to another m(ei,l , eni,l ). Trivially, n it follows that the vector u˜0 (eni,l ) is dependent on Ul \u(ei,l ). ˜n \ u If the new u ˜ n (eni,l ) depends on U ˜ n (eni,l ) = Ul \ u(ei,l ) l then: u ˜ n (eni,l )

n = u˜0 (eni,l ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))u(ei,l ) = α1 u(e1,l ) + · · · + αi−1 u(ei−1,l ) + αi+1 u(ei+1,l ) + · · · + αh u(eh,l ) (10)

or n u˜0 (eni,l )

= α1 u(e1,l ) + · · · + αi−1 u(ei−1,l ) + (m0 (ei,l , eni,l ) − m(ei,l , eni,l ))u(ei,l ) + αi+1 u(ei+1,l ) + · · · + αh u(eh,l ) (11)

as v ˜(ei,l ). When m0 (ei,l , eni,l ) is replaced by m(ei,l , eni,l ), the new vector v˜(eni,l ) is related to the old vector v ˜0 (eni,l ) as: v ˜(eni,l ) = v ˜0 (eni,l ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ v(ei,l ) (12) or equivalently, v ˜(ei,k ) = v ˜0 (ei,k ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ v(ei,l ) (13) We know that before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ) the set of vectors Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )} was a basis. Therefore according to Lemma 1 (the ”only if” direction), the set V˜k0 = {˜ v0 (e1,k ), · · · , v ˜0 (ei,k ), · · · , v ˜0 (eh,k )} is also a basis. It follows trivially that the set of vectors {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜0 (ei,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )} is a basis and it remains to show for which m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ), we can replace v ˜0 (ei,k ) by v ˜(ei,k ) and still have a basis. Suppose that v ˜(ei,k ) is dependent on {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )}, then: v ˜(ei,k ) = = +

v(ei,l ) v ˜0 (ei,k ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ α1 v ˜(e1,k ) + · · · + αi−1 v ˜(ei−1,k ) + αi+1 v ˜(ei+1,k ) · · · + αh v ˜(eh,k ) (14)

Since Ul is a basis and since u˜0 (eni,l ) is dependent on Ul \ u(ei,l ), (11) can be maintained only if m(ei,l , eni,l ) = m0 (ei,l , eni,l ). Therefore, for any other choice of m(ei,l , eni,l ) ˜n \ u ˜n the vector u ˜ n (eni,l ) is independent of U ˜ n (eni,l ). Thus U l l ˜ n is a basis, is a basis. It follows from Lemma 1 that since U l the set Uln is a basis for any m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ).

We can divide by m(ei,l , eni,l ) − m0 (ei,l , eni,l ) m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ),

C. Proof of Theorem 2

Suppose that the representation of v ˜(ei,l ) in the basis {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜0 (ei,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )} is:

n

Vk0

0

0

Suppose that = {v (e1,k ), · · · , v (eh,k )}, defined at the Theorem, is a basis. We want to analyze under which conditions the set of global coding vectors Vk = {v(e1,k ), · · · , v(eh,k )}, obtained after replacing m0 (ei,l , eni,l ) to m(ei,l , eni,l ), is also basis. We divide the sinks into two types: (a) sinks that are at the head of eni,l and (b) other sinks. We have divided the sinks into two types since sinks of type (a) are simpler to analyze. In this case eni,l ∈ Ck since eni,l is incoming into tk and without loss of generality, assume eni,l = ei,k . According to Lemma 1 it suffices to show that the new set of global coding vectors of Ck are a basis when for all edges outgoing from eni,l = ei,k , the coefficients m(eni,l , e), ∀e ∈ L\eni,l are set to zero. Denote as V˜k0 = {˜ v0 (e1,k ), · · · , v ˜0 (eh,k )} the coding vectors of Ck before the replacement of m0 (ei,l , eni,l ) when the coefficients m(eni,l , e) = 0∀e ∈ L \ eni,l (and all the rest of the coefficients in the network have their true current value). Denote as V˜k = {˜ v(e1,k ), · · · , v ˜(eh,k )} the coding vectors of Ck after the replacement to m(ei,l , eni,l ) when the coefficients m(eni,l , e) = 0, ∀e ∈ L \ eni,l . For j 6= i we have v ˜0 (ej,k ) = v ˜(ej,k ) since when the coefficients m(eni,l , e) = 0,∀e ∈ L\eni,l the coding vectors of the other edges in the network do not depend on m(ei,l , eni,l ) or m0 (ei,l , eni,l ). Similarly, the coding vector of ei,l when the coefficients m(eni,l , e) = 0∀e ∈ L \ eni,l does not depend on m(ei,l , eni,l ) or m0 (ei,l , eni,l ) and is denoted

v ˜(ei,l )

v ˜(ei,l )

since

=

1 (α1 v ˜(e1,k ) + · · · m(ei,l , eni,l ) − m0 (ei,l , eni,l )

+ +

αi−1 v ˜(ei−1,k ) − v ˜0 (ei,k ) + αi+1 v ˜(ei+1,k ) · · · + αh v ˜(eh,k )) (15)

= β1 v ˜(e1,k ) + · · · + βi−1 v ˜(ei−1,k ) + βi v ˜0 (ei,k ) + βi+1 v ˜(ei+1,k ) + · · · + βh v ˜(eh,k ) (16)

Then in order for (15) to be maintain it is required that: −

m(ei,l , eni,l )

1 = βi − m0 (ei,l , eni,l )

(17)

If βi = 0, no choice of m(ei,l , eni,l ) will satisfy this relation. If βi = 6 0, there is a single solution of (17) m(ei,l , eni,l ) = m0 (ei,l , eni,l ) −

1 βi

(18)

Therefore at most a single choice of m(ei,l , eni,l ) might cause the set V˜k not to be a basis. Note that such a choice, m0 (ei,l , eni,l ) − β1i must also be a polynomial in the set we are using for the code. According to Lemma 1 if V˜k is a basis then Vk is also a basis. We turn now our attention to sinks of type (b). Assume that the edges outgoing from ei,l , except (ei,l , eni,l ), are ΓO = {(ei,l , e1 ), · · · , (ei,l , eq )}. The system Gee defined in Section IV-A can be expressed as Gee = G1 + m(ei,l , eni,l )G2 , where G1 is a transfer function, defined as Gee but in the network L\(ei,l , eni,l ) and m(ei,l , eni,l )G2 is the transfer function defined in G \ ΓO . The vector v˜(ei,l ) is the coding vector of ei,l when

the coefficients of the edges outgoing from ei,l are all zero. Then for an arbitrary coefficient m(ei,l , eni,l ) the global coding vector of ei,l is v(ei,l ) and is given by: v(ei,l )

= = =

v ˜(ei,l ) + Gee v ˜(ei,l ) + · · · =

1 v ˜(ei,l ) 1 − Gee

1 v ˜(ei,l ) 1 − G1 − m(ei,l , eni,l )G2 1 ³ ´v ˜(ei,l ) )G2 m(ei,l ,en i,l (1 − G1 ) 1 − 1−G1

(19)

where we can divide by 1 − G1 since G1 always contains the factor D. Define as y(ei,l ) the coding vector of ei,l when m(ei,l , eni,l ) = 0. From (19) we observe that when m(ei,l , eni,l ) = 0, v(ei,l ) = y(ei,l ) = v ˜(ei,l )/(1 − G1 ). Thus, v(ei,l ) =

1 y(ei,l ) 1 − m(ei,l , eni,l )Q

(20)

where Q = G2 /(1 − G1 ). Note that since G1 and G2 both contain the term D, so does Q. Similarly, for coefficient m0 (ei,l , eni,l ) we have, v0 (ei,l ) =

1 y(ei,l ) 1 − m0 (ei,l , eni,l )Q

(21)

The difference between the two vectors is: v(ei,l ) − v0 (ei,l ) Ã = Ã = = ∆

=

1 1 − 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q m(ei,l , eni,l )Q m0 (ei,l , eni,l )Q − n 1 − m(ei,l , ei,l )Q 1 − m0 (ei,l , eni,l )Q

! y(ei,l ) ! y(ei,l )

(m(ei,l , eni,l ) − m0 (ei,l , eni,l ))Q y(ei,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) f (m(ei,l , eni,l )) · Q · y(ei,l ) (22)

We note that f (m(ei,l , eni,l )) does not diverse to infinity since m(ei,l , eni,l )Q (and m0 (ei,l , eni,l )Q) contains D as a factor and thus (1 − m(ei,l , eni,l )Q) never vanishes. Since the linear network code is equivalent to a linear system operating on the coding vectors, the new set of vectors at the input of another sink tk satisfies: v(ej,k ) − v0 (ej,k )

=

(m(ei,l , eni,l )F1,j + F2,j )v(ei,l )

−

(m0 (ei,l , eni,l )F1,j + F2,j )v0 (ei,l ) Ã m(ei,l , eni,l )F1,j + F2,j 1 − m(ei,l , eni,l )Q ! m0 (ei,l , eni,l )F1,j + F2,j y(ei,l ), 1 − m0 (ei,l , eni,l )Q

= −

1≤j≤h

(23)

only the coefficient m(ei,l , eni,l ) = 0. Due to superposition in linear systems, the total transfer function from ei,l to ej,k before replacing m0 (ei,l , eni,l ) is Fj0 = m0 (ei,l , eni,l )F1,j + F2,j and after the replacement Fj = m(ei,l , eni,l )F1,j + F2,j . Rearranging terms in (23): v(ej,k ) − v0 (ej,k ) Ã m0 (ei,l , eni,l )F1,j m(ei,l , eni,l )F1,j − = 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q ! F2,j F2,j − y(ei,l ) + 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q Ã (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))F1,j = (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) ! (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))QF2,j + y(ei,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) ! Ã (m(ei,l , eni,l ) − m0 (ei,l , eni,l )) = (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) (F1,j + QF2,j )y(ei,l ) = f (m(ei,l , eni,l )) · Hj · y(ei,l ), 1 ≤ j ≤ h

(24)

where Hj ≡ F1,j + QF2,j . We know that before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ) the set of vectors Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )} was a basis. We analyze under which conditions on m(ei,l , eni,l ) the new set of coding vectors Vk = {v(e1,k ), · · · , v(eh,k )} is also a basis. Suppose the representation of y(ei,l ) in basis Vk0 is: y(ei,l ) = β1 v0 (e1,k ) + β2 v0 (e2,k ) + · · · + βh v0 (eh,k ) (25) We examine independence of the vectors in Vk according to definition: α1 v(e1,k ) + · · · + αh v(eh,k ) = 0

(26)

If this equation has a solution other than α1 = · · · = αh = 0, the vectors in Vk are dependent. Using (24): α1 {v0 (e1,k ) + f (m(ei,l , eni,l )) · H1 y(ei,l )} + · · · + αh {v0 (eh,k ) + f (m(ei,l , eni,l )) · Hh y(ei,l )} = 0 (27) Rearranging terms: v0 (e1,k ) { α1 + α1 f (m(ei,l , eni,l )) · H1 β1 + α2 f (m(ei,l , eni,l )) · H2 β1 + · · · + αh f (m(ei,l , eni,l )) · Hh β1 } + ··· + v (eh,k ) { αh + α1 f (m(ei,l , eni,l )) · H1 βh 0

The rational function F1,j is the transfer function from ei,l to ej,k , when m(ei,l , e) = 0, ∀e ∈ ΓO \ (ei,l , eni,l ). The rational function F2,j is the transfer function from ei,l to ej,k , when

+ α2 f (m(ei,l , eni,l )) · H2 βh + · · · + αh f (m(ei,l , eni,l )) · Hh βh } = 0

(28)

Since Vk0 is a basis it is required that:

be maintained. We could multiply by f (m(ei,l , eni,l )), since f (m(ei,l , eni,l )) 6= 0 if m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ). Thus, α1 + α1 f (m(ei,l , eni,l )) · H1 β1 + α2 f (m(ei,l , eni,l )) · H2 β1 + · · · + αh f (m(ei,l , eni,l )) · Hh β1 = 0 m(ei,l , eni,l ) .. (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) . m0 (ei,l , eni,l ) 1 αh + α1 f (m(ei,l , eni,l )) · H1 βh + α2 f (m(ei,l , eni,l )) · H2 βh + · · · = n )Q)(1 − m0 (e , en )Q) − trace(A) (1 − m(e , e n i,l i,l i,l i,l + αh f (m(ei,l , ei,l )) · Hh βh = 0 (29) (36) or in matrix notation: α1 α1 Or, α α 1 2 2 − (30) . = A .. m(ei,l , eni,l ) = (37) f (m(ei,l , eni,l )) .. . n 0 n (1 − m(ei,l , ei,l )Q)(1 − m (ei,l , ei,l )Q) αh αh m0 (ei,l , eni,l ) − trace(A) where H1 β1 H2 β1 · · · Hh β1 where we could multiply by (1 − m(ei,l , eni,l )Q)(1 − H1 β2 H2 β2 · · · Hh β2 m0 (ei,l , eni,l )Q)) since, as we discussed, it does not vanish to A= (31) .. . .. zero. Rearranging terms we set, .. . . ··· µ ¶ H1 βh H2 βh · · · Hh βh 1 − m0 (ei,l , eni,l )Q n m(e , e ) 1 − Q i,l i,l We could have divided by f (m(ei,l , eni,l )) since trace(A) n n 0 n f (m(ei,l , ei,l )) = 0 only for m(ei,l , ei,l ) = m (ei,l , ei,l ), but 1 − m0 (ei,l , eni,l )Q 0 n n 0 n ) − = m (e , e (38) we examine the case where m(ei,l , ei,l ) 6= m (ei,l , ei,l ). We i,l i,l trace(A) see that (30) can be maintained only if α1 = · · · = αh = 0 or if A has eigenvalue λ such that: To show that we can divide (38) by the term 1 λ=− (32) 1 − m0 (ei,l , eni,l )Q f (m(ei,l , eni,l )) 1−Q (39) trace(A) In the following we show that a matrix of the form of A has eigenvalue 0 with multitude h − 1 and eigenvalue: we have to prove that it does not vanish to zero. Suppose that λ = trace(A) = H β + H β + · · · + H β (33) it does vanish to zero: 1 1

2 2

h h

with multitude 1. The rank of the h × h matrix A is 1. Therefore, the solution of the equation Av = 0 has dimension h−1. Thus the geometric multiplicity of the eigenvalue λ = 0 is h − 1. The algebraic multiplicity of an eigenvalue is not smaller than the geometric multiplicity [8, proposition(6.4.3)]. Therefore A has an eigenvalue 0 of algebraic multiplicity at least h − 1. Since the sum of the eigenvalues of a matrix equals its trace, A also has an eigenvalue trace(A) of algebraic multiplicity 1. According to (32) λ 6= 0 since f (m(ei,l , eni,l )) does not rise to infinity. Therefore, we have only to consider λ = trace(A). Suppose, 1 λ=− = trace(A) (34) f (m(ei,l , eni,l )) Then according to the definition of f (m(ei,l , eni,l ), f (m(ei,l , eni,l )) = =

m(ei,l , eni,l ) − m0 (ei,l , eni,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) 1 − (35) trace(A)

where we could have divided by trace(A), since we already showed that if λ = trace(A) = 0, then (32) cannot

1−Q

1 − m0 (ei,l , eni,l )Q =0 trace(A)

(40)

Then according to (38) it follows that, m0 (ei,l , eni,l ) −

1 − m0 (ei,l , eni,l )Q =0 trace(A)

(41)

Therefore (40) becomes: 1−Q

1 − m0 (ei,l , eni,l )Q = 1 − Qm0 (ei,l , eni,l ) = 0 trace(A)

(42)

But if 1 − Qm0 (ei,l , eni,l ) = 0, clearly (40) cannot be maintained. We conclude that the term in (39) does not vanish to zero and we can therefore divide (38) by this expression, which yields: m(ei,l , eni,l )

=

1−m0 (ei,l ,en i,l )Q trace(A) 1−m0 (ei,l ,en )Q i,l

m0 (ei,l , eni,l ) − 1−Q

(43)

trace(A)

We conclude that for at most a single choice of m(ei,l , eni,l ), the one given in (43), the set Vk will not be a basis.

Find a set of edges ε D , such that G \ ε D is acyclic

for each l = 1,

K, d

Find the line graph Ll of the flow between s and sink tl

Initialize C l := {edges from dummy source s ' to source s} := {e1, l , e2, l U l := {columns of h × h unit matrix}

Ke

h,l

}

Go over the edges in Ll in topolog ical order and for next edge e nj , l in path j do :

m' (e j ,l , e nj ,l ) is the current coding coefficient between e j ,l and e nj ,l C nl := (C l

Ue

n j ,l )

\ e j ,l

U ln := {partial coding vectors of C ln } Is Uln a basis?

Yes

No

Change the current coding coefficient m' (e j ,l , e nj ,l ) into another coding coefficient m(e j ,l , e nj ,l ) according to some enumeratio n. For sink t k , k < l : Vk' = {the coding vectors of the nodes incoming into t k with m' (ei .l , ein,l )} Compute Vk = {the coding vectors of the nodes incoming into t k with m(ei.l , ein,l )} Yes

No

Is Vk a basis for all tk ?

When last edge in L l is reached Vl = U l Fig. 3.

Flow chart of algorithm

R EFERENCES [1] R. Ahlswede, N. Cai, S.-Y. R. Li, and R.W. Yeung, “Network information flow,” IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204– 1216, July 2000. [2] R. Koetter and M. M´edard, “An algebraic approach to network coding,” Proceedings of INFOCOM, 2002. [3] S.Y.R. Li, R. W. Yeung, and N. Cai, “Linear network coding,” IEEE Trans. on Inform. Theory, vol. 49, pp. 371–381, 2003. [4] R.M. Karp, “Reducibility among combinatorial problems,” Complexity of Computer Computations, pp. 85–104, 1972. [5] G. Even, J. Naor, B. Schieber, and M. Sudan, “Approximating minimum

feedback sets and multicauts in directed graphs,” Algorithmica, vol. 20, pp. 151–174, 1998. [6] S. Jaggi, P. Sanders, P. Chou, M. Effros, S. Egner, K. Jain, and L. Tolhuizen, “Polynomial time algorithms for multicast network code construction,” 2003. [7] E. Erez and M. Feder, “Convolutional network codes,” IEEE International Symposium on Information Theory, 2004. [8] Hans Schneider and George Philip Barker, Matrices and linear algebra, New York : Holt, Rinehart and Winston, 2nd edition, 1973.

I. I NTRODUCTION Most data networks contain cycles, but so far most attention in the literature of network coding has been addressed to multicast in acyclic networks. The original paper on network coding [1] did consider cyclic networks but there it was suggested to transform the cyclic network into an acyclic network using the idea of unrolling the network into a layered network. This approach has many drawbacks: it achieves the optimal rate only asymptotically, it leads to time-variant schemes, it has high encoding and decoding complexities and it induces large delay. In [2] it was shown that if each edge in the network has delay, then there exists a time-invariant linear network code that achieves the optimal rate. This approach may, again, introduce large delay since each edge has delay and an efficient construction algorithm is not given. In [3] a heuristic code construction is given for a linear time-invariant code, but the construction is not given explicitly and it is not necessarily efficient. In this work we give an explicit polynomial time code construction of an optimal multicast linear network code for cyclic networks. As it turns out, it is not necessary for every edge in the network to have delay, as long as we ensure that in each cycle in the network at least one edge has delay. Since delay elements are anyway inserted into the network it seems more natural to focus on convolutional codes for cyclic networks. Nevertheless, our results in this paper are directly applicable for block codes. II. N OTATIONS AND P RECODING Consider a cyclic, unit capacity network G = (V, E) where parallel edges are allowed. There is a single source node s and a set of d sinks T = {t1 , · · · , td }. Denote by h the size of the minimal individual min-cut between s and any of the sinks. Let F (D) denote the ring of polynomials over the binary field with variable D. The variable D is a unit time shift. For convenience, as in [6], we add a dummy source s0 connected to source s with h edges {e01 , . . . , e0h }. Similarly to [2], we define the directed line graph of G = (V, E) as L(V, E) with vertex set V = E ∪ s ∪ s0 ∪ T ∪ {e01 , . . . , e0h } and edge set E = {(e, e0 ) ∈ E 2 : head(e) = tail(e0 )} ∪ {(s, e) : e outgoing from s} ∪ {(e, ti ) : e incoming to ti , 1 ≤ i ≤ d} ∪ {(s0 , e01 ), . . . , (s0 , e0h )} ∪ {(e01 , s), . . . , (e0h , s)}. We consider in the rest of the paper the line graph L(V, E). We denote nodes of L as e ∈ V, and the edges as (e, e0 ) ∈ E. If there are h edge-disjoint paths between s and t in G, there are corresponding h node-disjoint paths in L. Node e ∈ L is associated with an h-dimensional vector global coding vector v(e), with elements from F (D). The set

of edges incoming into node e is Γin (e) and m(ei , e) is the coding coefficient of edge (ei , e). Denote by F [D] the field of rational functions over the binary field with variable D. The code can be used for multicasting from s to T = {t1 , · · · , td } if and only if for all t ∈ T , the global coding vectors at the nodes incoming into t span the space F [D]h . It is assumed that prior to the code construction, all the coding coefficients in the network are set to zero. We have to choose a set of edges ED in G, such that if we eliminate them from the network G there will be no directed cycles. The nodes corresponding to ED in L(V, E) are denoted by ED . For edges outgoing from nodes not in ED we draw the coding coefficients among polynomials with degree at most M , for some M we will later determine. For edges outgoing from nodes in ED we draw the coding coefficients among polynomials with degree at most M , and multiply the result by D. Therefore the set of polynomials we can draw from has the same size for edges outgoing from either nodes in ED or nodes not in ED , but edges outgoing from nodes in ED always introduce at least a single delay. Thus we are guaranteed that each cycle contains at least a single delay. In order to minimize the delay, it is desired to minimize |ED |, or equivalently |ED | in the original network G. Finding the minimal set ED is essentially the known, long standing problem of finding the minimal arc feedback set. This problem is NP-hard [4]. The best known approximation algorithm with polynomial complexity achieves performance ratio O(log |V | log log |V |) [5]. For our purposes, we can use approximate solutions and insert enough delays in the cycles, before we begin our design algorithm. III. C ODE C ONSTRUCTION The code construction algorithm goes in steps over the terminals. In the l-th step of the algorithm we consider a subgraph Ll of L that consists only of the nodes and edges that participate in the flow from s to the sink tl . Without loss of generality, we assume that L is given by: L = ∪l=1,...,d Ll

(1)

We can make this assumption, because if there were in the original line graph L nodes that do not participate in any of the flows, we can remove them from the network, and still achieve the same optimal rate. For each node e ∈ Ll the algorithm will eventually define a coding coefficient m(e, e0 ) ∈ F (D) for the edge (e, e0 ) that connects this node to the node e0 that follows it in the flow. At the beginning of the l-step some of the edges may already have coding coefficients assigned at the previous steps. These coefficients are updated during the l-step, in a manner given in the following.

The algorithm goes over the nodes e ∈ Ll in a topological order. This is possible since Ll is acyclic as it can be decomposed into h paths and cycles can be eliminated from each path. The algorithm maintains a list of h nodes Cl , each belongs to a different path and this list includes the current node. Initially, Cl = {e01 , . . . , e0h }. Suppose the algorithm reaches a node ei,l (the subscript i indicates that the node belongs to the i-th path in the flow). Denote by Pj,l , j = 1, . . . , h the jth path of the flow from s to tl . Denote by pj,l the subset of path Pj,l consisting of all nodes following the node ej,l ∈ Cl in Pj,l (not including ej,l ). We define cj,l as the set of coding coefficients of edges with tail in pj,l and head in L \ pj,l . We define rl as the union of these sets of coefficients: rl = ∪1≤j≤h cj,l (2) In Figure 1 a schematic illustration of Cl is given, in which the coefficients in rl are specified and set to zero. Observe that

s' 0 1

e

⋅⋅⋅

for any value of m(e1,l , en1,l ), we have v(en1,l ) = v(en2,l ) and the new set of vectors cannot be a basis!

s' 1 0

edges outgoing from p j ,l m = 0 for edges in rl

⋅⋅⋅

e1,l e j ,l

⋅⋅⋅

0 1

1 0

v (e1,l ) = 1 v(e1 ) = 1

v (e2,l ) =

m(e1,l , e ) = 0 1 m(e1 , e1n,l ) = 1 v (e1n,l ) = 1 m(e1n,l , e2 ) = 1 m(e2 , e2n,l ) = 1 1 v(e2 ) = 1 n 1,l

m(e2 ,l , e2n,l ) = 0 1 v (e2n,l ) = 1

eh0

eh −1,l eh ,l

n e1n,l e nj ,l ehn−1,l m = 0 eh,l

m=0 m = 0 m = 0 m = 0 m = 0

m=0

tl Fig. 1.

v (e20 ) =

s

s edges in p j ,l

0 1

v(e10 ) =

A schematic illustration of Cl = {e1,l , · · · , eh,l } and pj,l

all the coefficients in rl correspond to edges outgoing from nodes that follow the nodes in Cl in the topological order. We define for each node e ∈ Cl a “partial” coding vector u(e) in the same manner as the global coding vector v(e) is defined for that node, but with all the coefficients in rl set to zero. Let Vl = {v(e) : e ∈ Cl } and Ul = {u(e) : e ∈ Cl }. Initially, the vectors in Ul are the columns of the h × h unit matrix. We recall that the algorithm of [6] ensured that the set Vl will span F [D]h throughout its stages. Unfortunately, in our case of cyclic network this is not sufficient to ensure that the network code is decodable at the sink. The reason is that there are coefficients that affect elements of Vl , whose value may change later in the algorithm. To see this, consider the example illustrated in Figure 2. The dashed edges are in Lk for some k < l, but not in Ll . The other edges are in Gl . In this example h = 2. The coefficients m(·, ·) were determined in previous steps, for other sinks. The current nodes in Cl are e1,l and e2,l . Suppose we have reached en2,l in the topological order and we examine now whether to change the value of m(e2,l , en2,l ). Since v(en2,l ) and v(e1,l ) are already a basis, the previous value m(e2,l , en2,l ) = 0 remains. Next we reach en1,l in the topological order and we need to determine m(e1,l , en1,l ). But

tl Fig. 2.

Example of a bad code

On the other hand, a sufficient condition to ensure that the network code is decodable at the sink is to require that the set Ul will span F [D]h . This is why we defined Ul . As will be seen below, the algorithm can progress and maintain Ul as a basis up to the end of step l, when Cl becomes the set of nodes incoming into tl . In this event the sets pj,l , 1 ≤ j ≤ h are empty and accordingly rl is empty, and so Vl = Ul . Thus the condition on Ul is equivalent to the condition in [7] for acyclic networks and the original input can be reconstructed from the information carried by the edges incoming into tl . Continuing with the algorithm, it reaches the node ei,l , maintaining the list Cl where the set Ul = {u(e) : e ∈ Cl } is a basis. At this stage it replaces ei,l with a new node eni,l that follows it in Pi,l , and generates a new list Cln = Cl ∪ eni,l \ ei,l . The subset of path i consisting of all nodes following nodes eni,l in path i is updated: pni,l = pi,l \ eni,l

(3)

Accordingly, cni,l is the set of coding coefficients of edges with tail in pni,l and head in L \ pni,l and rln is also changed to: rln = ∪1≤j≤h,j6=i cj,l ∪ cni,l

(4)

We have a new set of partial coding vectors Uln = {un (e1,l ), · · · , un (eni,l ), · · · , un (eh,l )}, defined when the coefficients in rln are set to zero. The algorithm has to determine the coding coefficient between ei,l and the new node eni,l so that Uln is a basis. Let m0 (ei,l , eni,l ) be the coding coefficient between these nodes before this stage of the algorithm, and let m(ei,l , eni,l ) be the coefficient determined at the end of

the stage. If Uln is not a basis, we have to change the old coefficient m0 (ei,l , eni,l ) into another coefficient m(ei,l , eni,l ). Consider the following theorem we prove in Section IV: Theorem 1: Suppose that with the coefficient m0 (ei,l , eni,l ) the set Uln is not a basis. Then by changing it to any other value m(ei,l , eni,l ) the set Uln will be a basis. Unfortunately, changing m0 (ei,l , eni,l ) to an arbitrary value may affect the sinks treated in the previous steps of the algorithm. Thus, if the coding coefficient has to be replaced (i.e., when Uln is not a basis) before replacing it to a new value we need to analyze its effect on the other sinks. Specifically, let Ck be the set of nodes incoming into the sink tk , k < l. We have the following theorem: Theorem 2: Denote by Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )}, ej,k ∈ Ck , the set of global coding vectors of the nodes incoming into tk before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ). If Vk0 is a basis, then after the replacement at most a single value of m(ei,l , eni,l ) will cause the new set of global coding vectors Vk = {v(e1,k ), · · · , v(eh,k )} not to be a basis. Based on these theorems, the procedure for replacing m0 (ei,l , eni,l ) is as follows. If m0 (ei,l , eni,l ) must be replaced i.e., Uln is not a basis, we pick a new value m(ei,l , eni,l ) according to some enumeration. We then check, using the procedure given in the proof of Theorem 2 below, if the independence condition is satisfied for all sinks. If the condition is not satisfied for all sinks, we pick the next coefficient m(ei,l , eni,l ) in the enumeration. Since for each sink only a single choice of m(ei,l , eni,l ) is bad, if we have more than d coefficients to choose from, we are guaranteed to have at least a single choice which is good for all previous sinks. The l-step of the algorithm continues until it reaches the sink tl , and the algorithm terminates when it goes over all d sinks. A flow chart of the algorithm is given in Figure 3. IV. P ROOFS OF T HEOREMS AND L EMMAS A. Lemma 1 Lemma 1: Let {e1 , · · · , eh } be a set of nodes and let W = {w(e1 ), · · · , w(ei ), · · · , w(eh )}, be their coding vectors, which may be partial or global coding vectors. Pick i and ˜ = consider the coding vectors of the same set of nodes W {w(e ˜ 1 ), · · · , w(e ˜ i ), · · · , w(e ˜ h )}, where we set m(ei , e) = 0 ˜ is for ∀e ∈ L. The set W is a basis if and only if the set W a basis. We start with the ”if” direction. We find the relation between ˜ and W . The only difference is that in the definition of W ˜ W m(ei , e) = 0 for ∀e ∈ L\ei . Suppose that m(ei , e), ∀e ∈ L\ei are now set to their true values. Since the code is linear, the effect of the network on the coding vector of ei is a linear system. We split node ei into 3 nodes: etail , emid and ehead , which are connected by edges (etail , emid ) and (emid , ehead ). We can find a rational function Gee with a variable D which represents the transfer function of the linear system from node ehead to node etail in the network L \ emid . The rational function Gee contains the factor D since each cycle must contain the factor D in at least one of its edges, as explained

in Section II. The resulting vector when m(ei , e), ∀e ∈ L \ ei are set to their true values is: 1 w(e ˜ i) w(ei ) = w(e ˜ i ) + Gee w(e ˜ i ) + G2ee w(e ˜ i) · · · = 1 − Gee (5) The factor 1−Gee never vanishes since Gee includes the factor D. The other vectors are given by: w(ej ) = w(e ˜ j ) + Fij

1 w(e ˜ i ), j 6= i 1 − Gee

(6)

where Fij is the transfer function from ei to ej . The vectors in W can represent rows of some matrix A. Likewise, the vectors ˜ can represent rows of some matrix A. ˜ The matrices A in W ˜ and A have the same rank, since A can be reached from A˜ by multiplication of a row by a non-zero factor and adding a multiplication of this row to the other rows. Therefore if A˜ is full rank, as implied by the conditions of the lemma, so is A. For the opposite direction, the relation between w(e ˜ i ) and w(ei ) is w(e ˜ i ) = (1 − Gee )w(ei ) (7) The other vectors are given by: 1 w(e ˜ i ), j = 6 i 1 − Gee (8) Similarly to the above, the matrices A and A˜ have the same rank, since A˜ can be reached from A by multiplication of a row by a non-zero factor and subtracting a multiplication of this row from the other rows. Therefore if A is a basis so is ˜ the set A. w(e ˜ j ) = w(ej )−Fij w(ei ) = w(ej )−Fij

B. Proof of Theorem 1 ˜ n = {˜ Let U un (e1,l ), · · · , u ˜ n (eni,l ), · · · , u ˜ n (eh,l )} denote the l coding vectors of Cln when all the coefficients in rl are set ˜ n the to zero. That is, unlike in Uln , in the definition of U l coefficients of the edges outgoing from eni,l are set to zero, ˜n , as well as the coefficients in rln . In the definition of U l n it is assumed that the new value m(ei,l , ei,l ) is used, while n n n n we denote by U˜0 l = {u˜0 (e1,l ), · · · , u˜0 (eni,l ), · · · , u˜0 (eh,l )} 0 n the corresponding set with m (ei,l , ei,l ). Assume that Ul = {u(e1,l ), · · · , u(ei,l ), · · · , u(eh,l )} is a basis, and recall that Ul is also defined when all the coefficients in rl are zero. From these definitions we have: n u ˜ n (eni,l ) = u˜0 (eni,l )+(m(ei,l , eni,l )−m0 (ei,l , eni,l ))u(ei,l ) (9) n

The vector u˜0 (eni,l ) is the coding vector of eni,l when the coefficients in rl are set to zero, before the replacement of n m0 (ei,l , eni,l ). The vector u˜0 (eni,l ) may include contributions from all edges incoming into eni,l . In (9) the vector u(ei,l ) is independent of m0 (ei,l , eni,l ) or m(ei,l , eni,l ) since there is no feedback from eni,l to ei,l when the coefficients m(eni,l , e) are set to zero ∀e ∈ L \ eni,l . We assumed that the previous set of partial coding vectors Ul = {u(e1,l ), · · · , u(ei,l ), · · · , u(eh,l )} is a basis. We want to ˜ n = {˜ ˜ n (eh,l )} un (e1,l ), · · · , u ˜ n (eni,l ), · · · , u show that the set U l n n n ˜ \˜ is also a basis. We have the relation Ul \u(ei,l ) = U l u (ei,l )

since both sets are defined with the coefficients in rl set to ˜n \ u zero. It follows that the vectors in the set U ˜ n (eni,l ) = l n n n n {˜ u (e1,l ), · · · , u ˜ (ei−1,l ), u ˜ (ei+1,l ), · · · , u ˜ (eh,l )} are independent. It remains to show that u ˜ n (eni,l ) is independent of n ˜n \ u U ˜ n (eni,l ). The vector u˜0 (eni,l ) in (9) is dependent on l ˜n \ u U ˜ n (eni,l ) because otherwise according to Lemma 1 the l n set Ul with m0 (ei,l , eni,l ) would be a basis and we would not have to change m0 (ei,l , eni,l ) to another m(ei,l , eni,l ). Trivially, n it follows that the vector u˜0 (eni,l ) is dependent on Ul \u(ei,l ). ˜n \ u If the new u ˜ n (eni,l ) depends on U ˜ n (eni,l ) = Ul \ u(ei,l ) l then: u ˜ n (eni,l )

n = u˜0 (eni,l ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))u(ei,l ) = α1 u(e1,l ) + · · · + αi−1 u(ei−1,l ) + αi+1 u(ei+1,l ) + · · · + αh u(eh,l ) (10)

or n u˜0 (eni,l )

= α1 u(e1,l ) + · · · + αi−1 u(ei−1,l ) + (m0 (ei,l , eni,l ) − m(ei,l , eni,l ))u(ei,l ) + αi+1 u(ei+1,l ) + · · · + αh u(eh,l ) (11)

as v ˜(ei,l ). When m0 (ei,l , eni,l ) is replaced by m(ei,l , eni,l ), the new vector v˜(eni,l ) is related to the old vector v ˜0 (eni,l ) as: v ˜(eni,l ) = v ˜0 (eni,l ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ v(ei,l ) (12) or equivalently, v ˜(ei,k ) = v ˜0 (ei,k ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ v(ei,l ) (13) We know that before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ) the set of vectors Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )} was a basis. Therefore according to Lemma 1 (the ”only if” direction), the set V˜k0 = {˜ v0 (e1,k ), · · · , v ˜0 (ei,k ), · · · , v ˜0 (eh,k )} is also a basis. It follows trivially that the set of vectors {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜0 (ei,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )} is a basis and it remains to show for which m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ), we can replace v ˜0 (ei,k ) by v ˜(ei,k ) and still have a basis. Suppose that v ˜(ei,k ) is dependent on {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )}, then: v ˜(ei,k ) = = +

v(ei,l ) v ˜0 (ei,k ) + (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))˜ α1 v ˜(e1,k ) + · · · + αi−1 v ˜(ei−1,k ) + αi+1 v ˜(ei+1,k ) · · · + αh v ˜(eh,k ) (14)

Since Ul is a basis and since u˜0 (eni,l ) is dependent on Ul \ u(ei,l ), (11) can be maintained only if m(ei,l , eni,l ) = m0 (ei,l , eni,l ). Therefore, for any other choice of m(ei,l , eni,l ) ˜n \ u ˜n the vector u ˜ n (eni,l ) is independent of U ˜ n (eni,l ). Thus U l l ˜ n is a basis, is a basis. It follows from Lemma 1 that since U l the set Uln is a basis for any m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ).

We can divide by m(ei,l , eni,l ) − m0 (ei,l , eni,l ) m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ),

C. Proof of Theorem 2

Suppose that the representation of v ˜(ei,l ) in the basis {˜ v(e1,k ), · · · , v ˜(ei−1,k ), v ˜0 (ei,k ), v ˜(ei+1,k ), · · · , v ˜(eh,k )} is:

n

Vk0

0

0

Suppose that = {v (e1,k ), · · · , v (eh,k )}, defined at the Theorem, is a basis. We want to analyze under which conditions the set of global coding vectors Vk = {v(e1,k ), · · · , v(eh,k )}, obtained after replacing m0 (ei,l , eni,l ) to m(ei,l , eni,l ), is also basis. We divide the sinks into two types: (a) sinks that are at the head of eni,l and (b) other sinks. We have divided the sinks into two types since sinks of type (a) are simpler to analyze. In this case eni,l ∈ Ck since eni,l is incoming into tk and without loss of generality, assume eni,l = ei,k . According to Lemma 1 it suffices to show that the new set of global coding vectors of Ck are a basis when for all edges outgoing from eni,l = ei,k , the coefficients m(eni,l , e), ∀e ∈ L\eni,l are set to zero. Denote as V˜k0 = {˜ v0 (e1,k ), · · · , v ˜0 (eh,k )} the coding vectors of Ck before the replacement of m0 (ei,l , eni,l ) when the coefficients m(eni,l , e) = 0∀e ∈ L \ eni,l (and all the rest of the coefficients in the network have their true current value). Denote as V˜k = {˜ v(e1,k ), · · · , v ˜(eh,k )} the coding vectors of Ck after the replacement to m(ei,l , eni,l ) when the coefficients m(eni,l , e) = 0, ∀e ∈ L \ eni,l . For j 6= i we have v ˜0 (ej,k ) = v ˜(ej,k ) since when the coefficients m(eni,l , e) = 0,∀e ∈ L\eni,l the coding vectors of the other edges in the network do not depend on m(ei,l , eni,l ) or m0 (ei,l , eni,l ). Similarly, the coding vector of ei,l when the coefficients m(eni,l , e) = 0∀e ∈ L \ eni,l does not depend on m(ei,l , eni,l ) or m0 (ei,l , eni,l ) and is denoted

v ˜(ei,l )

v ˜(ei,l )

since

=

1 (α1 v ˜(e1,k ) + · · · m(ei,l , eni,l ) − m0 (ei,l , eni,l )

+ +

αi−1 v ˜(ei−1,k ) − v ˜0 (ei,k ) + αi+1 v ˜(ei+1,k ) · · · + αh v ˜(eh,k )) (15)

= β1 v ˜(e1,k ) + · · · + βi−1 v ˜(ei−1,k ) + βi v ˜0 (ei,k ) + βi+1 v ˜(ei+1,k ) + · · · + βh v ˜(eh,k ) (16)

Then in order for (15) to be maintain it is required that: −

m(ei,l , eni,l )

1 = βi − m0 (ei,l , eni,l )

(17)

If βi = 0, no choice of m(ei,l , eni,l ) will satisfy this relation. If βi = 6 0, there is a single solution of (17) m(ei,l , eni,l ) = m0 (ei,l , eni,l ) −

1 βi

(18)

Therefore at most a single choice of m(ei,l , eni,l ) might cause the set V˜k not to be a basis. Note that such a choice, m0 (ei,l , eni,l ) − β1i must also be a polynomial in the set we are using for the code. According to Lemma 1 if V˜k is a basis then Vk is also a basis. We turn now our attention to sinks of type (b). Assume that the edges outgoing from ei,l , except (ei,l , eni,l ), are ΓO = {(ei,l , e1 ), · · · , (ei,l , eq )}. The system Gee defined in Section IV-A can be expressed as Gee = G1 + m(ei,l , eni,l )G2 , where G1 is a transfer function, defined as Gee but in the network L\(ei,l , eni,l ) and m(ei,l , eni,l )G2 is the transfer function defined in G \ ΓO . The vector v˜(ei,l ) is the coding vector of ei,l when

the coefficients of the edges outgoing from ei,l are all zero. Then for an arbitrary coefficient m(ei,l , eni,l ) the global coding vector of ei,l is v(ei,l ) and is given by: v(ei,l )

= = =

v ˜(ei,l ) + Gee v ˜(ei,l ) + · · · =

1 v ˜(ei,l ) 1 − Gee

1 v ˜(ei,l ) 1 − G1 − m(ei,l , eni,l )G2 1 ³ ´v ˜(ei,l ) )G2 m(ei,l ,en i,l (1 − G1 ) 1 − 1−G1

(19)

where we can divide by 1 − G1 since G1 always contains the factor D. Define as y(ei,l ) the coding vector of ei,l when m(ei,l , eni,l ) = 0. From (19) we observe that when m(ei,l , eni,l ) = 0, v(ei,l ) = y(ei,l ) = v ˜(ei,l )/(1 − G1 ). Thus, v(ei,l ) =

1 y(ei,l ) 1 − m(ei,l , eni,l )Q

(20)

where Q = G2 /(1 − G1 ). Note that since G1 and G2 both contain the term D, so does Q. Similarly, for coefficient m0 (ei,l , eni,l ) we have, v0 (ei,l ) =

1 y(ei,l ) 1 − m0 (ei,l , eni,l )Q

(21)

The difference between the two vectors is: v(ei,l ) − v0 (ei,l ) Ã = Ã = = ∆

=

1 1 − 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q m(ei,l , eni,l )Q m0 (ei,l , eni,l )Q − n 1 − m(ei,l , ei,l )Q 1 − m0 (ei,l , eni,l )Q

! y(ei,l ) ! y(ei,l )

(m(ei,l , eni,l ) − m0 (ei,l , eni,l ))Q y(ei,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) f (m(ei,l , eni,l )) · Q · y(ei,l ) (22)

We note that f (m(ei,l , eni,l )) does not diverse to infinity since m(ei,l , eni,l )Q (and m0 (ei,l , eni,l )Q) contains D as a factor and thus (1 − m(ei,l , eni,l )Q) never vanishes. Since the linear network code is equivalent to a linear system operating on the coding vectors, the new set of vectors at the input of another sink tk satisfies: v(ej,k ) − v0 (ej,k )

=

(m(ei,l , eni,l )F1,j + F2,j )v(ei,l )

−

(m0 (ei,l , eni,l )F1,j + F2,j )v0 (ei,l ) Ã m(ei,l , eni,l )F1,j + F2,j 1 − m(ei,l , eni,l )Q ! m0 (ei,l , eni,l )F1,j + F2,j y(ei,l ), 1 − m0 (ei,l , eni,l )Q

= −

1≤j≤h

(23)

only the coefficient m(ei,l , eni,l ) = 0. Due to superposition in linear systems, the total transfer function from ei,l to ej,k before replacing m0 (ei,l , eni,l ) is Fj0 = m0 (ei,l , eni,l )F1,j + F2,j and after the replacement Fj = m(ei,l , eni,l )F1,j + F2,j . Rearranging terms in (23): v(ej,k ) − v0 (ej,k ) Ã m0 (ei,l , eni,l )F1,j m(ei,l , eni,l )F1,j − = 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q ! F2,j F2,j − y(ei,l ) + 1 − m(ei,l , eni,l )Q 1 − m0 (ei,l , eni,l )Q Ã (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))F1,j = (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) ! (m(ei,l , eni,l ) − m0 (ei,l , eni,l ))QF2,j + y(ei,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) ! Ã (m(ei,l , eni,l ) − m0 (ei,l , eni,l )) = (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) (F1,j + QF2,j )y(ei,l ) = f (m(ei,l , eni,l )) · Hj · y(ei,l ), 1 ≤ j ≤ h

(24)

where Hj ≡ F1,j + QF2,j . We know that before changing m0 (ei,l , eni,l ) to m(ei,l , eni,l ) the set of vectors Vk0 = {v0 (e1,k ), · · · , v0 (eh,k )} was a basis. We analyze under which conditions on m(ei,l , eni,l ) the new set of coding vectors Vk = {v(e1,k ), · · · , v(eh,k )} is also a basis. Suppose the representation of y(ei,l ) in basis Vk0 is: y(ei,l ) = β1 v0 (e1,k ) + β2 v0 (e2,k ) + · · · + βh v0 (eh,k ) (25) We examine independence of the vectors in Vk according to definition: α1 v(e1,k ) + · · · + αh v(eh,k ) = 0

(26)

If this equation has a solution other than α1 = · · · = αh = 0, the vectors in Vk are dependent. Using (24): α1 {v0 (e1,k ) + f (m(ei,l , eni,l )) · H1 y(ei,l )} + · · · + αh {v0 (eh,k ) + f (m(ei,l , eni,l )) · Hh y(ei,l )} = 0 (27) Rearranging terms: v0 (e1,k ) { α1 + α1 f (m(ei,l , eni,l )) · H1 β1 + α2 f (m(ei,l , eni,l )) · H2 β1 + · · · + αh f (m(ei,l , eni,l )) · Hh β1 } + ··· + v (eh,k ) { αh + α1 f (m(ei,l , eni,l )) · H1 βh 0

The rational function F1,j is the transfer function from ei,l to ej,k , when m(ei,l , e) = 0, ∀e ∈ ΓO \ (ei,l , eni,l ). The rational function F2,j is the transfer function from ei,l to ej,k , when

+ α2 f (m(ei,l , eni,l )) · H2 βh + · · · + αh f (m(ei,l , eni,l )) · Hh βh } = 0

(28)

Since Vk0 is a basis it is required that:

be maintained. We could multiply by f (m(ei,l , eni,l )), since f (m(ei,l , eni,l )) 6= 0 if m(ei,l , eni,l ) 6= m0 (ei,l , eni,l ). Thus, α1 + α1 f (m(ei,l , eni,l )) · H1 β1 + α2 f (m(ei,l , eni,l )) · H2 β1 + · · · + αh f (m(ei,l , eni,l )) · Hh β1 = 0 m(ei,l , eni,l ) .. (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) . m0 (ei,l , eni,l ) 1 αh + α1 f (m(ei,l , eni,l )) · H1 βh + α2 f (m(ei,l , eni,l )) · H2 βh + · · · = n )Q)(1 − m0 (e , en )Q) − trace(A) (1 − m(e , e n i,l i,l i,l i,l + αh f (m(ei,l , ei,l )) · Hh βh = 0 (29) (36) or in matrix notation: α1 α1 Or, α α 1 2 2 − (30) . = A .. m(ei,l , eni,l ) = (37) f (m(ei,l , eni,l )) .. . n 0 n (1 − m(ei,l , ei,l )Q)(1 − m (ei,l , ei,l )Q) αh αh m0 (ei,l , eni,l ) − trace(A) where H1 β1 H2 β1 · · · Hh β1 where we could multiply by (1 − m(ei,l , eni,l )Q)(1 − H1 β2 H2 β2 · · · Hh β2 m0 (ei,l , eni,l )Q)) since, as we discussed, it does not vanish to A= (31) .. . .. zero. Rearranging terms we set, .. . . ··· µ ¶ H1 βh H2 βh · · · Hh βh 1 − m0 (ei,l , eni,l )Q n m(e , e ) 1 − Q i,l i,l We could have divided by f (m(ei,l , eni,l )) since trace(A) n n 0 n f (m(ei,l , ei,l )) = 0 only for m(ei,l , ei,l ) = m (ei,l , ei,l ), but 1 − m0 (ei,l , eni,l )Q 0 n n 0 n ) − = m (e , e (38) we examine the case where m(ei,l , ei,l ) 6= m (ei,l , ei,l ). We i,l i,l trace(A) see that (30) can be maintained only if α1 = · · · = αh = 0 or if A has eigenvalue λ such that: To show that we can divide (38) by the term 1 λ=− (32) 1 − m0 (ei,l , eni,l )Q f (m(ei,l , eni,l )) 1−Q (39) trace(A) In the following we show that a matrix of the form of A has eigenvalue 0 with multitude h − 1 and eigenvalue: we have to prove that it does not vanish to zero. Suppose that λ = trace(A) = H β + H β + · · · + H β (33) it does vanish to zero: 1 1

2 2

h h

with multitude 1. The rank of the h × h matrix A is 1. Therefore, the solution of the equation Av = 0 has dimension h−1. Thus the geometric multiplicity of the eigenvalue λ = 0 is h − 1. The algebraic multiplicity of an eigenvalue is not smaller than the geometric multiplicity [8, proposition(6.4.3)]. Therefore A has an eigenvalue 0 of algebraic multiplicity at least h − 1. Since the sum of the eigenvalues of a matrix equals its trace, A also has an eigenvalue trace(A) of algebraic multiplicity 1. According to (32) λ 6= 0 since f (m(ei,l , eni,l )) does not rise to infinity. Therefore, we have only to consider λ = trace(A). Suppose, 1 λ=− = trace(A) (34) f (m(ei,l , eni,l )) Then according to the definition of f (m(ei,l , eni,l ), f (m(ei,l , eni,l )) = =

m(ei,l , eni,l ) − m0 (ei,l , eni,l ) (1 − m(ei,l , eni,l )Q)(1 − m0 (ei,l , eni,l )Q) 1 − (35) trace(A)

where we could have divided by trace(A), since we already showed that if λ = trace(A) = 0, then (32) cannot

1−Q

1 − m0 (ei,l , eni,l )Q =0 trace(A)

(40)

Then according to (38) it follows that, m0 (ei,l , eni,l ) −

1 − m0 (ei,l , eni,l )Q =0 trace(A)

(41)

Therefore (40) becomes: 1−Q

1 − m0 (ei,l , eni,l )Q = 1 − Qm0 (ei,l , eni,l ) = 0 trace(A)

(42)

But if 1 − Qm0 (ei,l , eni,l ) = 0, clearly (40) cannot be maintained. We conclude that the term in (39) does not vanish to zero and we can therefore divide (38) by this expression, which yields: m(ei,l , eni,l )

=

1−m0 (ei,l ,en i,l )Q trace(A) 1−m0 (ei,l ,en )Q i,l

m0 (ei,l , eni,l ) − 1−Q

(43)

trace(A)

We conclude that for at most a single choice of m(ei,l , eni,l ), the one given in (43), the set Vk will not be a basis.

Find a set of edges ε D , such that G \ ε D is acyclic

for each l = 1,

K, d

Find the line graph Ll of the flow between s and sink tl

Initialize C l := {edges from dummy source s ' to source s} := {e1, l , e2, l U l := {columns of h × h unit matrix}

Ke

h,l

}

Go over the edges in Ll in topolog ical order and for next edge e nj , l in path j do :

m' (e j ,l , e nj ,l ) is the current coding coefficient between e j ,l and e nj ,l C nl := (C l

Ue

n j ,l )

\ e j ,l

U ln := {partial coding vectors of C ln } Is Uln a basis?

Yes

No

Change the current coding coefficient m' (e j ,l , e nj ,l ) into another coding coefficient m(e j ,l , e nj ,l ) according to some enumeratio n. For sink t k , k < l : Vk' = {the coding vectors of the nodes incoming into t k with m' (ei .l , ein,l )} Compute Vk = {the coding vectors of the nodes incoming into t k with m(ei.l , ein,l )} Yes

No

Is Vk a basis for all tk ?

When last edge in L l is reached Vl = U l Fig. 3.

Flow chart of algorithm

R EFERENCES [1] R. Ahlswede, N. Cai, S.-Y. R. Li, and R.W. Yeung, “Network information flow,” IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204– 1216, July 2000. [2] R. Koetter and M. M´edard, “An algebraic approach to network coding,” Proceedings of INFOCOM, 2002. [3] S.Y.R. Li, R. W. Yeung, and N. Cai, “Linear network coding,” IEEE Trans. on Inform. Theory, vol. 49, pp. 371–381, 2003. [4] R.M. Karp, “Reducibility among combinatorial problems,” Complexity of Computer Computations, pp. 85–104, 1972. [5] G. Even, J. Naor, B. Schieber, and M. Sudan, “Approximating minimum

feedback sets and multicauts in directed graphs,” Algorithmica, vol. 20, pp. 151–174, 1998. [6] S. Jaggi, P. Sanders, P. Chou, M. Effros, S. Egner, K. Jain, and L. Tolhuizen, “Polynomial time algorithms for multicast network code construction,” 2003. [7] E. Erez and M. Feder, “Convolutional network codes,” IEEE International Symposium on Information Theory, 2004. [8] Hans Schneider and George Philip Barker, Matrices and linear algebra, New York : Holt, Rinehart and Winston, 2nd edition, 1973.