Index Coding Algorithms for Constructing Network Codes Salim El Rouayheb Illinois Institute of Technology, Chicago
Matlab Code with GUI for Constructing Linear Network Codes Matlab outputs network code GUI Download Matlab code here: www.tinyurl.com/indexcodingrocks
X1 s1 X2 s2 e2 e6 X1 X2 has e3 e1 e5 e1 e4 e4 e2 e6 e7 t2 t1 Wants: X2 X1 Network Coding Problem 1 e7 e5 e3 Index Coding Problem Index Code
Example 2 X 1 s 1 s 2 X 2 s 3 X 3 e 2 e 3 e 5 e 7 e 8 e 9 e 1 e 10 e 4 e 6 e 11 e 13 e 14 e 15 e 16 e 12 e 17 e 18 e 19 Wants: t 3 t 2 t 1 X 3 X 2 X 1
Non-linear code [Dougherty, Freiling, Zeger, 05]
Locally Repairable Code X 2 X 3 node 3 X 4 node 4 X 5 Constructing Linear Repairable Codes* is equivalent to constructing linear index codes [Mazumdar 14],[Shanmugam, Dimakis 14] node 2 node 5 X 1 node 1
Locally Repairable Code X 3 node 3 X 4 node 4 X 2 node 2 X 5 node 5 X 1 node 1 X 3 = 0.8669X 2 +0.73X 4 X 4 =0.5639X 3 +0.4618X 5 X 3 = 2 X 4 =0.6958 1 +0.7861 2 node 3 node 4 node 3 node 4 X 2 =0.5859X 1 0.4915X 3 X 5 =1.0807X 1 +0.6124X 4 X 2 =0.5859 1 0.4915 2 X 5 =1.5068 1 +0.4812 2 node 2 node 5 node 2 node 5 node 1 X 1 =0.4708X 2 +0.4806X 5 X 1 = 1 node 1
Matroids and Index Coding Fano matroid Linear representation over GF(2) (does not exist over GF(3)) Theorem: [R,Sprintson, Georghiades 09] For any matroid M(E, r(.)), one can construct an index coding problem and an integer c= E +r(e) such that there exists a linear index code of length c over F, iff the matroid M has a representation over F.
Matlab Code Available Online www.tinyurl.com/indexcodingrocks
X 1 s 1 s 2 X 2 Part II e 6 X 1 X 2 e 2 e 3 e 1 e 1 e 5 e 4 e 2 e 4 e 6 e 7 t 2 Wants: X 2 t 1 X 1 Network Coding Problem e 7 e 5 e 3 Index Coding Problem Index Code
Distributed Index Coding Storage Wants: X 1 Has: X 2 X 3 t 1 Transmission # Index code 1 Index code2 1 X 1 X 1 +X 2 t 4 t 2 2 X 2 X 3 3 X 3 X 4 Wants: X 4 Has: X 1 X 1 X 2 X 3 X 4 Wants: X 2 Has: X 1 X 3 4 X 4 Wants: X 3 Has: X 2 X 4 t 3 L=4" L=3" Informed-source coding-on-demand [Birk & Kol infocom 98]
Equivalence to Network Coding L Terminals: t 4 t 1 t 2 t 3 Wants: X 4 X 1 X 2 X 3 An index code of length L that satisfies all the users A network code that satisfies all the terminals
Stating the Equivalence Theorem: [R,Sprintson, Georghiades 08] [Effros,R,Langberg ISIT 13] For any network coding problem, one can construct an index coding problem and an integer L such that given any linear network code, one can efficiently construct a linear index code of length L, and vice versa. (same block length, same error probability). How to map the codes? X 1, X 2,, X r How many? Rates? Wants:??? Has:???
Network Code è Index Code The linear case first X 1 X 2 X 1 X 2 X 1 +X 2 X 1 X 2 X X 1 +X 1 +X 2 2 Butterfly network Y e1 +X 1 Y e2 +X 1 Y e3 +X 2 Y e4 +X 2 Y e5 +X 1 +X 2 Y e6 +X 1 +X 2 Y e7 +X 1 +X 2 X 1, X 2 Y e1, Y e2,, Y e7 H(Y ei )=c(e i )=1 Equivalent index code All terminals in the index coding problem can decode Any linear network code gives an index code of length L=7
Index Code è Network Code Given a linear index code Y e1 +X 1 Y e2 +X 1 Y e3 +X 2 Y e4 +X 2 Y e5 +X 1 +X 2 Y e6 +X 1 +X 2 Y e7 +X 1 +X 2 Can always diagonalize Y e1 +Y e2 Y e2 +X 1 Y e3 +X 2 Y e4 +X 2 Y e5 +Y e4 +X 1 Y e6 +X 1 +X 2 Y e6 +Y e7 Butterfly network Any linear index code of length L=7 can be mapped to a linear network code Works for scalar linear and vector linear
Non-Linear Network Code è Index Code EASY Y e1 + f e1 (X 1,X 2 ) Y e2 + f e2 (X 1,X 2 ) Y e3 + f e3 (X 1,X 2 ) Y e4 + f e4 (X 1,X 2 ) Y e5 + f e5 (X 1,X 2 ) Y e6 + f e6 (X 1,X 2 ) Y e7 + f e7 (X 1,X 2 ) Butterfly network Equivalent index code f ei (X 1,X 2 ) : message on edge e i
Implications: Scalar vs. Vector Linear Scalar linear index codes are not optimal [Dougherty, Freiling, Zeger, 05]
Non-linear Index Codes -> Network Codes HARD!!! Butterfly network B 0 1 = g 0 1(Y e1, X) B 0 2 = g 0 2(Y e2, X) B 0 3 = g 0 3(Y e3, X) B 0 4 = g 0 4(Y e4, X) B 0 5 = g 0 5(Y e5, X) B 0 6 = g 0 6(Y e6, X) B 0 7 = g 0 7(Y e7, X) Cannot always Diagonalize Given a nonlinear index code B 1 = g 1 (Ȳe, X) B 2 = g 2 (Ȳe, X) B 3 = g 3 (Ȳe, X) B 4 = g 4 (Ȳe, X) B 5 = g 5 (Ȳe, X) B 6 = g 6 (Ȳe, X) B 7 = g 7 (Ȳe, X)
Non-linear Index Code è Network Code Broadcast message Decoding function D Ue2 (0,X 1 ) D Ue3 (0,X 2 ) D Ue1 (0,X 1 ) D Ue4 (0,X 2 ) D Ue5 (0,Y e2,y e3 ) X1 =D Ut1 (B,Y e4,y e7 ) Y e4 = D Ue4 (B,X 2 ) Y e7 = D Ue7 (B,Y e5 ) D Ue7 (0,Y e5 ) D Ue6 (0,Y e5 ) Fix a value for B, say B=0 Destinations can decode with no errors: Recall that B=f(X 1,X 2, Y e1,,y e7 ) For a fixed B and given values of X 1 and X 2, there is a unique possible vector (Y e1,,y e7 ) Otherwise, U* cannot decode correctly
X 1 s 1 s 2 X 2 Part III e 6 X 1 X 2 e 2 e 3 e 1 e 1 e 5 e 4 e 2 e 4 e 6 e 7 t 2 Wants: X 2 t 1 X 1 Network Coding Problem e 7 e 5 e 3 Index Coding Problem Index Code
Distributed Index Coding Storage Wants: X 1 Has: X 2 X 3 t 1 Transmission # Index code 1 Index code2 1 X 1 X 1 +X 2 t 4 t 2 2 X 2 X 3 3 X 3 X 4 Wants: X 4 Has: X 1 X 1 X 2 X 3 X 4 Wants: X 2 Has: X 1 X 3 4 X 4 Wants: X 3 Has: X 2 X 4 t 3 L=4" L=3" Informed-source coding-on-demand [Birk & Kol infocom 98]
Index Coding & Graph Coloring user 1 has packet 2 1 2 X 1 +X 2 1 2 3 4 Side info graph G d X 3 4 3 X 4 Clique cover of G = Chromatic nbr of Ḡ X 1 +X 2 +X 3 +X 4 1 2 1 2 3 4 3 4 G 5 X 5 Ḡ 5
Index Coding & Graph Coloring 1 2 X 1 +X 2 1 2 3 4 X 3 4 3 X 4 Side info graph G d Independence nbr (G) apple c(g) apple L min apple d f d Chromatic nbr of (Ḡ) apple (Ḡ) Ḡ Shannon capacity [Haemers 79 ] Fractional Chromatic nbr [Blasiak et al. 11 ] [ Alon et al., 08] [Maleki, Cadambe, Jafar 12] apple f`(g) Fractional local chrom. nbr [Shanmugan et al. 13] [Arbabjolfaei et al., 13]
Index Coding on Erdős-Rényi Graphs Independence nbr (G) apple L min apple (Ḡ) When n!1, we have with prob 1 log n apple L min apple n log n Can improve the lower bound [Haviv & Langberg 11 ] c p n apple L min apple Chromatic nbr n log n G(n,p) Coloring is the best upper bound we know on random graphs. Is it tight? OPEN
Index Coding & Rank Minimization t 1 t 2 t 3 t 4 X 1 X 2 X 3 X 4 1 * * 0 * 1 * 0 0 * 1 * * 0 0 1 Linear case: Computing L min =minrk(m) L min Matrix M [Bar-Yossef et al. '06] Min rank introduced by Haemers in 79 to bound the Shannon graph capacity. is NP hard. [R. et al. '07] [Peeters 96] Recent work on matrix completion for index coding [Hassibi et al. 14]
Use Matrix Completion Methods to Construct Index Codes Min nuclear norm [Recht & Candes 09] does not work here Try alternative rank minimization methods [Fazel et al. 2001 ] C D Index coding via AP Two problems: 1) Regions not convex 2) Optimization over the reals Network codes over the reals [Shwartz & Medard 14], Jaggi et al. 08] Theorem: [Alternating Projections (AP)] If C and D are convex, then an alternating projection sequence between these 2 regions converges to a point in their intersection.
Index Coding via Alternating Proj on Random Undirected Graphs n=100 users
Performance with Increasing Number of Users
Improvement in Percentage
Concentration around the Average
Running Time s/graph n: number of users (p=0.2)
Random Directed Graphs
Which Method to use for Directed Graphs?
How close are these heuristics to the actual minimum For n 5, linear index coding achieve capacity [Ong, 14]. Online list of optimal index coding rates [kim] APindex coding was able to achieve all these rates whenever they are integers
Concluding Remarks Index coding is NP hard. But, this is not the end of the story. Proposed the use of different rank minimizations methods for constructing index codes Index coding is connected to many other interesting topic in the literature Many theoretical open questions: From reals to finite fields? theoretical guarantees? Index coding on random graphs? Need a stronger equivalence for equivalence of capacity regions. To do list for the matlab library Vector linear network codes Now only multiple unicast Include more methods (heuristics) for index coding: Now only LDG and minrank Network desgin
QUESTIONS? www.tinyurl.com/indexcodingrocks
Dealing with Errors Consider an index code where decoding errors only happen when the broadcast message B=0 ε: Prob of error in the index code =1/2 c =1/2 7 =0.0078 Prob of error in the network code =1 (bad). Claim: There exists σ, such that for B=σ, in the previous construction, the network code will have a prob of error at most ε (ε=error prob of the index code). Intuition: if for every value of B, the resulting network code will have a prob of error>ε, this implies that the prob of error in the index code >ε. A contradiction. B X=(X 1,X 2 ) Ye= Σ X =2 2 D U (B,X 1,X 2 ) : decoding error Each corresponds to a different good value of (X,Ye) Σ B =2 c Total # of <(1-ε) Σ B. Σ X But Σ B = Σ Ye è Total # of good values<(1-ε) Σ Ye. Σ X contradiction
Capacity Regions R X2 R B R B =7 1 P P H R N 1 R X1 :Capacity region of a network R X1 1 1 R X2 R I :Capacity region of the equivalent index code If there is a code that achieves P exactly, then P is in R I \ H, and vice versa. What if a sequence of points (not necessarily in H) converges to P. Does this mean that P is in R N? If true this will solve a long-standing open problem: Is zero-error capacity= ε-error capacity of networks? True for index coding problems [Langberg, Effros 11]
The Case of Co-located Sources R X2 R B R B =7 1 P P H R N 1 R X1 :Capacity region of a network 1 1 R X2 R I :Capacity region of the equivalent index code Theorem: For any network N with co-located sources one can efficiently construct an index coding problem I and an integer L such that R is in the capacity region of N iff R is in the capacity region of with broadcast length L. I
Information Flows in Wireline Networks: What do we know in one slide Source S S cut S 1 S 2 S n Network Network Network Terminal t t 1 t n t 2 t 3 t 1 t n t 2 t 3 Unicast networks Max Flow Min Cut theorem [Ford & Fulkerson, 56] [Elias, Feinstein, Shannon 56] Multicast networks Network coding can achieve min mincut [Ahlswede et al. 00] General Demands Open! Non-linear codes, Non- Shannon inequalities [Zeger et al. 06] Two-unicast is as hard. [Kamath, Tse, Wang 14]