Codes for Network Switches
|
|
|
- Hugh Morrison
- 9 years ago
- Views:
Transcription
1 Codes for Network Switches Zhiying Wang, Omer Shaked, Yuval Cassuto, and Jehoshua Bruck Electrical Engineering Department, California Institute of Technology, Pasadena, CA 91125, USA Electrical Engineering Department, Technion Israel Institute of Technology, Technion City, Haifa 32000, Israel Abstract A network switch routes data packets between its multiple input and output ports. Packets from input ports are stored upon arrival in a switch fabric comprising multiple memory banks. This can result in memory contention when distinct output ports request packets from the same memory bank, resulting in a degraded switching bandwidth. To solve this problem, we propose to add redundant memory banks for storing the incoming packets. The problem we address is how to minimize the number of redundant memory banks given some guaranteed contention resolution capability. We present constructions of new switch memory architectures based on different coding techniques. The codes allow decreasing the redundancy by 1/2 or 2/3, depending on the request specifications, compared to non-coding solutions. I. INTRODUCTION Multi-port switches are commonly used as data processing and routing devices in computer networks. With the growth of the amount of computing devices, network links, and data transmission, switches are facing the challenge of serving growing rates of packet transmissions on an increasing number of ports. In this paper, we focus on the switch memory subsystem used to store packets between arrival from input ports to departure to output ports. Assume for now that the switch memory sub-system has the same number of input and output ports, say R ports. At a time slot, each input port writes one data packet into the memory, and each output port reads one data packet from the memory. The R packets written in the same time slot are called a generation, and they share the same row in subsequent diagrams. The total bandwidth of the memory sub-system should be R bits per second for reading, and same for writing. Figure 1 (a) is an example with R = 2 ports. As the number of ports R grows, as well as the rate of each port, the number of memory banks is also increased to parallelize data writing and reading on slower, and more affordable, memory devices. In the paper we assume to have multiple memory banks, each operating at a speed of one unit write and one unit read per time slot. Figure 1 (b) is an example with R = 2 ports and 2 banks. (A, B), (C, D), (E, F) are three generations. So far it appears that R memory banks are sufficient. For example, at the current slot we write in 2 units (E, F) (at top) and read out 2 units (A, B) (from bottom), as specified by the switch rate requirements. However, the destinations of the packets may not be the same as their memory bank index. For example, if the output request is (A, C), then due to the memory speed limitation, this request cannot be served timely. Hence we need to add redundant memory banks such that an arbitrary output request Figure 1. A switch with R = 2 ports. (a) Single memory writes and reads 4 packets per time slot. (b) 2 memory banks writes and reads 1 packet per time slot per bank. Each capital letter is a packet. can be served. A naive solution is to replicate the original information R times and use R 2 banks. Since no more than R packets are required from the same input port, we can always serve any request of R units in one time slot. See Figure 2 (a) for an example. However, the question is raised whether the same flexibility can be attained with lower redundancy using coding techniques? Figure 2 (b) answers this question to the affirmative for R = 2. By adding the parity memory, any request of size 2 can be served such that every memory reads at most one packet. For example, if the output request is (A, C), then we can read A, D, C+ D from the three memories. We define a switch code for R ports and n memory banks as a way to represent the input packets, such that any request of R output packets can be obtained by reading at most one packet from each memory bank. Such a code is in principle not confined to encode over a single generation, but multigeneration codes add load on the memory through recoding, or require to manage a separate packet cache. Therefore, in this paper we focus on encoding functions within a generation. Intuitively, a switch code requires that each symbol (or packet) in the codeword can be recovered by multiple disjoint subsets of symbols. In this sense, they are similar to locally decodable codes [6] where every symbol can be probabilistically recovered by a small number of symbols in the presence of errors. Another similar notion is locally repairable codes [3], where a symbol can be recovered from some (fixed set of) other symbols. In addition, self-repairing codes [5] are erasure codes such that a symbol can be repaired from some (fixed number of) other fragments given the number of erasures. All of these notions have the common requirement of local reconstruction, however codes for switches are required
2 Figure 2. Codes for a switch with R = 2 ports. (a) Replication. (b) The code with the parity. The last memory computes XOR of the two packets from each generation. to have as many disjoint reconstructions as the number of information symbols. The first result of this paper is a code construction using parities of two symbols. This construction uses R(R 1)/2 redundant memories, and can serve any request of R output symbols, which amounts to half the redundancy of a noncoding scheme. The second result focuses on one-burst requests, i.e., multiple requested packets from one input port, and no more than one request for the others. It is practical to consider this special type of request because a single burst can be used to empty the longest request queue, and consequently shorten the worst-case delay. We generalize the code construction such that the parities are XOR of more than two symbols, and obtain a better code rate. In particular, we construct codes based on block designs. When there are three symbols for each parity, the code has R(R 1)/3 redundant memories. We will set up the switch code problem formally in Section II. Then we construct codes of pairs of parities in Section III, and codes based on block designs in Section IV. Finally, Section V concludes the paper. II. PROBLEM SETTINGS Notations: For simplicity, we denote by + binary XOR. The set of integers{i, i+1,..., j} is denoted by [i, j] for i j and {1, 2,..., i} is written as [i] for integer i 1. We will use a bit (also considered as a symbol or a packet) to represent an entry in a memory bank. Suppose there are R 1 input bits and R 2 requested bits. That is, the number of input and output ports is R 1, R 2, respectively. In this paper we assume they are the same R 1 = R 2 = R unless stated otherwise. And let n be the total number of memory banks, n R. We say n R is the amount of redundancies. For the i-th generation, let U i = (u i,0, u i,1,..., u i,r 1 ) be the R-bit input, and X i = (x i,0, x i,1,..., x i,n 1 ) the n-bit written vector. The encoding of a switch code is a function f from the input bits to the written bits: f : {U i } i 0 {X i } i 0. Notice that the function can be computed across generations. But as mentioned, we concentrate on functions within a generation. A function can be different from one generation to another. However, there are only a finite number of functions from R input bits to n written bits. If we consider large enough memory banks, we can always find R generations with the same encoding function. Therefore, w.l.o.g., we restrict the encoding function to be identical in every generation: f : U X, where U = (u 0, u 1,..., u R 1 ) and X = (x 0, x 1,..., x n 1 ) are input and written bits of one generation, u i, x j F 2 for all i [0, R 1], j [0, n 1]. We call the subscript i of u i an information or systematic element. The output request is R = R 2 arbitrary information bits from the previous generations. A solution to the request is a way to compute these R bits from no more than one bit from each memory. If we have a solution for bits from R different generations, then since the encoding is identical for all generations, obviously we have a solution for bits from less than R generations. Therefore we can limit our attention to the worst case of bits from R generations, and the order of the bits and generation indices are not of importance. A request vector is an ordered R-tuple of indices, L = (l 0, l 1,..., l R 1 ), where the i-th output bit is an element l i [0, R 1], and l i l j for all 0 i j R 1. For example, if R = 5 then L = (0, 2, 2, 2, 3) requires one bit from elements 0, 3 and three bits from element 2. A solution is a partition of the memory banks [0, n 1] into R parts, together with a set of R decoding functions. Denote the decoding partition by M = ((m 0,0,..., m 0,t0 ),(m 1,0,..., m 1,t1 ),..., (m R 1,0,..., m R 1,tR 1 )), and the decoding functions by g i, i [0, R 1], u li = g i (x mi,0, x mi,1,..., x mi,ti ). Since M is a partition, each memory bank is read from no more than once, therefore satisfies the constraint of bandwidth. If a memory bank is not used, we put it in an arbitrary part i, and the decoding function does not use it. An (n, R) switch code is the encoding and decoding functions that satisfy the above definitions. Example 1 Consider the code in Figure 2 (c). The encoding function is (x 0, x 1, x 2 ) = (u 0, u 1, u 0 + u 1 ). If the output is (A, D) then the request vector is (0, 1) and the decoding partition is ((0, 2),(1)). The decoding functions are u 0 = x x 2, u 1 = x 1. It can be seen that the partition is not unique since we can put memory 2 in either of the two parts. If the output is (A, C) on the other hand, the request vector is (0, 0), the decoding partition is ((0),(1, 2)) and the decoding functions are u 0 = x 0, u 0 = x 1 + x 2. Theorem 1 Without coding, or only through replications, the number of memories is at least n = R 1 R 2 given R 1 input ports and R 2 output ports. Proof: We assumed that the encoding function is identical in every generation. Now every information bit should be duplicated R 2 times to serve a request for the same information element R 2 times.
3 In this paper, we will show that through coding, we can decrease the redundancy by a half or two thirds, depending on the parameters. We will focus on systematic codes where the information bits are stored in the first R memories, and the rest are parity bits. One can think of different variations of switch codes, and they can be applied in different queueing scenarios. A special kind of request is one-burst request, where only one integer repeats in the vector L. That is, l 0 < l 1 < < l i = l i+1 = = l j < l j+1 < < l R 1 for some 0 i j R 1. The burst length, or the number of repetitions is j i+ 1, and l k, k [i, j], are called singletons. Another type is limitedrepetition request, namely each integer repeats at most a certain number of times. A third generalization is consecutivegeneration request, where the requested bits come from up to t consecutive generations, t R. In this case we will use t vectors to represent requests from each generation, and the sum of the vector lengths is R. III. CODES WITH PAIR (DEGREE 2) PARITIES In this section we construct switch codes with n = (R 1 + 1) R 2 /2. First we solve for the case of R = R 1 = R 2 and then for the general case. In addition, we construct codes for consecutive-generation requests. Construction 1 Let R = R 1 = R 2. The code is constructed as the information bits and XOR of all pairs of information bits. Figure 2 is an example of this code for R = 2. When R = 3, the code is X = (u 0, u 1, u 2, u 0 + u 1, u 0 + u 2, u 1 + u 2 ). Theorem 2 The (n = R(R+1)/2, R) switch code in Construction 1 can solve any request. Proof: We solve every information bit u i by either read it directly or by XOR of u i and u i + u j, for some j = i, j [0, R 1]. Each of the R systematic elements will be used to obtain one information bit. For two different systematic elements i, j, the corresponding parities (if used) are also different. Otherwise this parity is simply XOR of x i, x j and we can read them directly. Thus all memories used are disjoint. Systematic codes whose parities are computed from pairs can be represented by an undirected graph G. Here information elements are vertices and parity of pairs are edges. The number of edges indicates the redundancy. We call such codes systematic parity-pair codes. The above construction corresponds to the complete graph K R. The following is a construction for different R 1 and R 2 values. When R = R 1 = R 2 is even, the redundancy is the same as Construction 1. Construction 2 First consider the (R 1 + 1, R 1 ) parity code X = (u 0,..., u R1 1, x R1 ) with x R1 = R 1 1 i=0 u i. Any request of size 2 can be solved in X: one bit can be read directly, the other bit can be solved through all the rest elements, or read directly. Second duplicate R 2 /2 times the code X. Thus any request of size R 2 can be solved and the number of memories is n = (R 1 + 1) R 2 /2. Figure 3. Graphic representation of a (9, 5) code. It solves all 2-consecutivegeneration requests. Next we consider requests from t consecutive generations, t R. Clearly such requests are also repetition-limited because every information element will be requested no more than t times. Lemma 3 A lower bound for the number of redundancies of a systematic pair-parity code is n R R(t 1)/2, when a request is restricted to t consecutive generations. Proof: A necessary condition for the existence of a solution for t requests from the same element is this element being contained in at least R memory banks. Or the degree of each vertex in G should be at least t 1. We will show that this bound is not tight by the following theorem. Theorem 4 Construct the(2r 1, R) switch code as { ui, i [0, R 1] x i = u i R + u i R+1, i [R, 2R 2] Then this code solves any 2-consecutive-generation request, and has optimal redundancy for a systematic pair-parity code. Proof: This construction can be associated with a graphg that is a line connecting all elements. If one (or more) elements receive 2 requests, there is at least one element that receives no requests. We will use this element as a starting point of the second generation, and use the edges to traverse the entire graph. The bits of the first generation will be read directly. To show optimality of redundancy we assume the redundancy is less than R 1. But by Lemma 3 we know every vertex has degree at least one. So the graph becomes at least two disjoint lines. Consider the shortest line which has length no more than R/2. It is not possible to solve the request that outputs of all the elements on this line twice. Hence we get a contradiction. Figure 3 shows an example of this code. The labels of the vertices and edges are indices of the memory bank. Suppose the request is (0, 2) from the first generation and (2, 3, 4) from the second. Then it can be solved by reading 0, 2 of the first generation, and 1, 6, 7, 8 of the second. IV. CODES BASED ON BLOCK DESIGNS In this section we generalize the above section and construct switch codes by XORing triples of information bits. We first derive a lower bound on the redundant bits with respect to the degree of parity bits (number of bits XORed). Then construct codes with n = R(R + 2)/3 based on block designs that solve one-burst requests. Notice that Theorem 1 still applies for one-burst requests, so our codes reduce the redundancy to 1/3 compared to non-coding schemes.
4 Consider a bipartite graph with variable vertices (information bits) and check vertices (parity bits). If an information bit is added to a parity bit, there is an edge between them. Let d j be the degree of the j-th encoded bit, namely x j XORs d j information bits, j [0, n 1]. Similar to Lemma 3 every element should be contained in at least R memories. Hence n 1 d j R 2. j=0 Moreover assume constant degree parities and denote by d = d R = = d n 1 the degree. Then R+(n R)d R 2 and we obtain a lower bound on the redundancy, as stated below. Lemma 5 A systematic switch code with constant degree parities satisfies n R R(R 1)/d. This lemma shows that a systematic code may have less redundancies with larger parity degree. Next we will construct codes with degree d = 3 and redundancy n R = R(R 1)/3. In Construction 1, an output bit u i is solved by either itself or XOR of a parity bit u i + u j and an information bit u j. Similarly, when the parity has degree 3, we will solve a bit u i by either itself or XOR of two parity bits u i + u j + u k, u j + u k + u l, and an information bit u l. Associate each parity bit with the block (or subset) of information elements it involves. In this section, the notations of the binary sum and the block will both represent a parity bit. For example, the bits u i + u j + u k, u j + u k + u l are associate with {i, j, k}, {j, k, l}, respectively, then we see an intersection of size two between these two blocks. In other words, the pair {j, k} appears in both of these blocks. We say the bit i can be solve by {l},{i, j, k},{j, k, l}. (1) We call these three bits as systematic and parity helpers of the output element i. A balanced incomplete block design is a system with b blocks of size k and a total of R elements. Moreover, it requires that every element repeats r times and every subset of size t appears exactly λ times. A triple system with λ = 2 is a balanced incomplete block design such that each block contains 3 elements out of a total of R elements, and every pair of elements appear exactly twice in the blocks. Since the code is systematic and a request might require R bits from the same element, every element repeats R 1 times in the blocks. By counting we know there should be a total of R(R 1)/3 parity or redundant bits. A switch code does not necessarily corresponds to a block design but we will show that this approach gives us some nice constructions. Example 2 Consider the following triple system with R = 6 elements and R(R 1)/3 = 10 parity blocks: {0, 1, 2},{0, 2, 3},{0, 1, 4},{1, 2, 5},{0, 3, 5},{2, 3, 4}, {0, 4, 5},{1, 4, 3},{1, 5, 3},{2, 5, 4}. Every element repeats R 1 = 5 times. Let a switch code contain the 6 systematic (2r+ 1, 5m r, 5m+r+1) 0 r m 1 (2m 2r 2, 2m+r+1, 4m r 1) 0 r m 2 (2m 2r 1, 2m+r, 4m r 1) 0 r m 1 (2r+ 2, 5m r 1, 5m+r+1) 0 r m 2 (2m, 3m, 5m) (4m) short;twice Figure 4. Difference triples when R = 12m. bits and 10 parity bits. Suppose the request is (0, 0, 0, 0, 0, 0), then we can solve it in the following way: {0} (2) {1},{0, 3, 5},{1, 5, 3} {2},{0, 4, 5},{2, 5, 4} (3) {3},{0, 1, 4},{1, 4, 3} (4) {4},{0, 2, 3},{2, 3, 4} {5},{0, 1, 2},{1, 2, 5} We can see that by using one bit from all of the memories, we are able to output bit 0 six times. Similarly, one can check that it is possible to output any bit six times. And any one-burst request can be solved by using solutions excluding the singletons. For example, for(0, 0, 0, 1, 4, 5) we can use equations (2)(3)(4) and singletons {1}, {4}, {5}. Therefore, this code serves any one-burst request. The above example shows that by using triples instead of pairs as parities, we decrease the number of redundancies from 15 to 10 when R = 6. We will induce three different kinds of switch codes from triple systems that solves different kinds of requests. Cyclic Construction. A triple system admitting the cyclic group of automorphisms is called cyclic. In other words, if {i 1, i 2, i 3 } is a block in the system, then so is {i 1 + j, i 2 + j, i 3 + j} for any j [0, R 1]. In this construction all additions are computed modulo R. A triple (d 1, d 2, d 3 ) is a difference triple if d i R/2 and d 1 + d 2 + d 3 0 mod R or d 1 + d 2 d 3 mod R. Once we have this difference triple, we can write down blocks in the form {i, i+d 1, i+d 1 + d 2 } for all i [0, R 1]. A special case is when d 1 = d 2 = d 3 = R/3 and R divisible by 3, then we write the difference triple as a short vector (d 1 ). Let D be a multiset that contains the integers from 1 to R/2 1 each twice, and R/2 once when R is even. A cyclic triple system is equivalent to a partition of D into difference triples [1]. The following lemma is also due to [1]. Lemma 6 If R 0 mod 12, there is a cyclic triple system. The difference triples are given in Figure 4. We assume R = 12m for some integer m. For example, if R = 12 then the first difference triple is (1, 5, 6), and all triples {i, i + 1, i + 6}, i [0, 11] belong to the system. Theorem 7 The triple system constructed by Lemma 6 can serve a one-burst request with burst length 10 except for 9 choices of singletons.
5 Proof: We will show that there are 10 ways to solve the 0- th bit. Since the code is cyclic, this suffices for all other bursts. Besides the element {0} itself, we show 9 other solutions in Figure 5. One can check that all the blocks listed are from this code and the helpers are disjoint when m 2. Thus we can serve the burst if the singletons in the request do not include any element in the set A = {1, 2m, 2m+1, 5m+ 1, 6m, (5m+ 1), (2m+1), (2m), 1}. In fact the solutions are not unique but the systematic helpers can only be in the set A due to the structure of the difference triples. Hence constant 10 is the longest burst solvable even though R grows linearly with m. An observation of Figure 5 is that only values in the form of km 1, km, km + 1, 0 k 11 are included in the systematic and parity helpers. Notice that the code is cyclic, so if two bursts are separated by at least 3 mod m, the corresponding helpers will be disjoint. As a result, if we have several bursts of elements l 1, l 2,..., l t [0, 12m 1], with burst lengths no more than 10 and l i l j 3 mod m (5) for any i = j [t], then we are able to solve the request. For example, if m = 9, R = 108, we can serve three bursts of length 10: bursts of elements 0, 21, 60, which equal to 0, 3, 6 mod m. In general we have the following result. Theorem 8 The cyclic construction can serve m/3 bursts of length 10 that satisfy (5). In addition to serving multiple bursts, this construction also has the advantage of being cyclic and symmetric for all input and output ports. Top-down Construction. The main idea of the top-down construction is to break blocks of size 4 into triples. Let us start with an example. Consider the block {1, 2, 3, 4} of size 4 and its subsets of size 3: {1, 2, 3},{1, 2, 4},{1, 3, 4},{2, 3, 4}. (6) Take any two triples out of these four, we get two parities that look exactly the same as those in (1). In other words, the subsets of block of size 4 are good candidates to construct our triple system. To output element i, we can use j as the systematic helper, for any j = i. And the corresponding parities are {1, 2, 3, 4}\{j} (7) {1, 2, 3, 4}\{i} (8) It should be noted that no matter which j we use, (8) is always a parity helper. In other words, among the three elements j, j = i, we can only use one of them as a systematic helper. Suppose we have a balanced incomplete block design D 1 with R elements, R(R 1)/12 blocks of size 4. Moreover every element repeats (R 1)/3 times and every pair appears once. Such systems are also called quadruple systems. For simplicity, assume (R 1)/3 is an integer. Now construct another block design D by changing every block in D 1 into four blocks of size 3. For example, if {1, 2, 3, 4} is a block in D 1, then triples in (6) all belong to D. It is easy to check that D is a triple system with R(R 1)/3 blocks, R 1 repeats, and every pair appears exactly twice. Example 3 Take D 1 as the block design with R = 25 elements and 50 blocks of size 4 (see [2]). The design is formed by dicyclic solution in two families:{a 1, a 2, b 1, e 5 },{a 1, a 3, c 1, d 4 }. All the blocks are generated by cyclic shift on the letters and then on the subscripts. Then we label the elements from 0 to 24 and break blocks down to 200 triples. We have an output-helper graph like Figure 6. In this graph, every vertex is a systematic element. A directed edge (i, j) means that j is a possible systematic helper of i. Since every pair (i, j) appears in D 1, every output i can use any systematic helper j = i. So the graph is actually complete. We group three helpers (like 1, 5, 24) to emphasize that only one can be used. We call every group a helper group or a group for a given output element. Once we choose a systematic helper from a group, the edge corresponds to two parity helpers. For example, if output is 0 and helper is 1, then the edge between them means parities {1, 5, 24},{0, 5, 24}. The following theorem states that if we have a quadruple system D 1 then we have a switch code serving one-burst requests, where the size of burst is a third of ports. Theorem 9 The top-down construction serves any one-burst request with burst length(r 1)/ Proof: Let us check requests with one burst of length (R 1)/3+1. We will use Example 3 to illustrate the idea. Given a request vector (0,..., 0, a 9,..., a 24 ) where a 0 = 0 is repeated(r 1)/3+1 = 9 times, and the rest are singletons. Besides {0} itself, choose one systematic helper h 1,..., h 8 from each group to solve 0 as follows. Initialize a set T as the elements not requested {a 1,..., a 8 }. For all i [8], if there exists a member of T in group i, choose it as h i and remove it from T. For the rest groups, choose arbitrarily an element from the group as h i. And use one element (w.l.o.g. assume element a i ) from T as a systematic helper for h i, because h i is a requested singleton and a i = h i. See Figure 7 for an example. Besides disjoint systematic helpers, we also need disjoint parity helpers. First consider edges (h i, a i ) and (h j, a j ) for some i = j [8] such that these edges exist. Note that by the above decoding algorithm h i, h j, a i, a j are all distinct. The corresponding parities are {h i, x, y},{x, y, a i } {h j, z, w},{z, w, a j } for some x, y, z, w. They are sub-blocks of A = {h i, a i, x, y} and B = {h j, a j, z, w} in the quadruple system D 1. Since D 1 contains each pair only once, there exist identical parities on these edges only if A = B, or (x, y) = (h j, a j ),(z, w) = (h i, a i ). But even in this case, the parity helpers are disjoint. Second consider edges (0, h i ) and (0, h j ) for all i = j [8]. Since they belong to different blocks in D 1, they are disjoint.
6 {1} { 1, 0, 5m} { 1, 1, 5m} {2m} { 4m+1, 2m 1, 0} { 4m+1, 2m 1, 2m} {2m+1} {0, 1, 5m+1} {1, 2m+1, 5m+1} {5m+1} { 5m, 3m, 0} {5m+1, 5m, 3m} {6m} { 2m+1, 0, 4m+1} {4m+1, 6m, 2m+1} { 5m 1} {0, 2m 1, 4m 1} {2m 1, 4m 1, 5m 1} { 2m 1} { 5m 1, 5m, 0} { 5m 1, 5m, 2m 1} { 2m} { 5m 1, 5m+1, 0} { 5m 1, 5m+1, 2m} { 1} { 2m+1, 0, 2m} { 2m+1, 1, 2m} Figure 5. 9 solutions of a burst of element 0 for the cyclic construction. Each row is a solution. The first column shows the systematic helpers, and the rest are parity helpers. Figure 6. Output and systematic helpers based on 50 blocks of size 4 and R = 25 elements. Every output can have any other element as its systematic helper. Every output has 8 groups of helpers. Third consider edges (0, h i ) and (h j, a j ) for some i = j [8] such that these edges exist. Again 0, h i, h j, a j are all distinct and therefore the parities are disjoint. At last consider (0, h i ) and (h i, a i ) for i [8] such that these edges exist. But notice that a i does not belong to the i-th group. So these two edges belong two different blocks in D 1 and are disjoint. So we can output any one burst of length (R 1)/3+1 plus singletons. Suppose the burst length is smaller than (R 1)/3+1. Suppose a i is also requested, i [8]. If a i is a helper of 0, do not use it to solve 0 but only read a i. If a i is a helper of h i, do not use h i to solve 0 but only read a i, h i. This construction can be generalized to parities that are XOR of more than three elements. For example, if one has a block design of block size k, then by breaking it down to blocks of size k 1, one may use one systematic helper and two parity helpers to output a bit. Meanwhile since the parity has higher degree, we may expect to get smaller redundancy. Linear Construction. The idea is to have a simple way to decide the pair j, k in (1) given the output i and the systematic helper l. Then try to see weather we can use each triple as many times as possible, i.e., three times for different outputs. One of the simplest mapping from (i, l) to (j, k) would be a linear function. The resulting design has the same parameters as the previous two constructions, namely(r 1)/3 triples and every pair appears exactly twice. To emphasize that j, k are functions of i, l, we rename f = j, g = k. We are going to define the pair f, g by the following linear mapping: [ f g ] [ a b = c d ][ i l In other words, f = f(i, l), g = g(i, l) are functions of i, l. When we omit the arguments, we write f, g to denote f(i, l), g(i, l), respectively. Since every pair should appear in the design, we would like the mapping to be bijection. So [ ] a b A = c d should be invertible. In fact, due to the symmetry of the roles of i and l, if we switch i and l, the resulting pair should be g, f. In other words, a = d, b = c. Thus we have triples ]. {i, f, g},{l, f, g} (9) as blocks. We would like to use each triple 3 times for different values of i, l. Therefore, we
7 Figure 7. Output a burst of length 9. Assume (0,..., 0, 9, 10,..., 24) is the request and T = {1, 2,..., 8} are unrequested elements. Use the underlined (h 1, h 2,..., h 8 ) = (1, 4,..., 8) as systematic helpers for the burst of 0. If a requested singleton is not underlined, simply read it. Otherwise use a i as the helper of h i, e.g., the singleton 21 has the systematic helper 5. block index Figure 8. A linear construction with R = 7 and 14 blocks. Each column is a block. Notice that every triple can be used three times as a parity helper. For example, block 1,2 can help solve element 0; block 1,5 can help solve 2; block 1,9 can help solve element 6. would like { f, f(f, l ), g( f, l )},{g, f(g, l ), g(g, l )}, {g, f(i, g), g(i, g)},{ f, f(i, f), g(i, f)} to be identical to one of the blocks in (9). Here i, i, l, l are some other elements. There are quite a few possibilities for such constraints. We were able to find a consistent solution to the following: (i, f, g) = (g(i, g), f(i, g), g) = ( f(i, f), f, g(i, f)), (l, f, g) = ( f(f, l ), f, g( f, l )) = (g(g, l ), f(g, l ), g). Here all the triples are ordered. The values of a, b, c, d should guarantee that there exist solutions of i, i, l, l given arbitrary i, l. The solutions to the above equations are: a = d = , b = c = , or exchange a, d with b, c, which is equivalent. It can be checked that this ensures the matrix A to be invertible. We will choose the number of elements R > 3 to be a prime number such that 3 mod R is a perfect square. We note here that by the formula for the Legendre symbol [4] which indicates whether 3 is a perfect square, this condition is equivalent to R being a prime and (R 1)/3 being an integer. Specifically, we can show that 3 being a square mod R is equivalent to R being a square mod 3. For example, let R = 7, then [ ] 2 6 A = 6 2 and one check that it actually gives a triple system of 14 blocks with twice very pair in Figure 8. For another example, when R = 19, [ ] 17 3 A = 3 17 and we get 114 blocks. Theorem 10 The linear construction serves any one-burst request and has R(R 1)/3 redundancies, when R > 3 is a prime and 3 mod R is a perfect square. Proof: First we check the number of redundancies. By construction, every output-helper pair i, l gives us two triples but every triple is used for three such pairs. All together there are ( R 2 ) 2/3 = R(R 1)/3 triples or redundancies. Second we show any one-burst is solvable. We for now consider the worst case when the request is R times of the same bit i. By the construction of the triples, one can use systematic helper {l} and parity helpers as in (9). Since b = 0, we know f is a bijection between l and f(i, l) for the fixed i. Therefore the parities {i, f(i, l), g(i, l)} are disjoint and {l, f(i, l), g(i, l)} are disjoint for all l = i, l [0, R 1]. Moreover, suppose there is a common parity{i, f(i, l), g(i, l)} = {l, f(i, l ), g(i, l )} for some other helper l = l, i, then the only possibilities are i = g(i, l ) or i = f(i, l ). However, both result in l = i and we get a contradiction. As a result, we can use each of the systematic elements as a helper, and disjoint parity helpers at the same time. Now consider the burst length being less than R. If j is also requested, j = i, simply do not use j as a helper for i, and read j directly. This construction has the advantage of the least constraint on the burst length. With any of the above constructions one can build switch codes that serve burst requests. As mentioned, if we have the ability to solve burst requests, we can lower the worst-case delay in the memories. V. CONCLUSIONS In this paper we proposed the switch code problem, that is, how to use coding techniques to solve unbalanced requests in memories of network switches. We constructed pair-parity codes with R(R 1)/2 redundancies and those with R(R 1)/3 redundancies using different ideas of block designs. Better understanding on block designs can result in
8 good switch codes. At the same time, good switch codes will be good combinatorial designs with certain parameters. The subject of switch code still requires more studies. For example a lower bound on redundancy without degree constraint is unknown, and a network-coding type of argument may lead to interesting results. It is also our future work to study constructions with more than three elements in a parity, and also codes with different degrees of the parities. Finally, coding across generations may lead to even smaller redundancy. REFERENCES [1] C. J. Colbourn and A. Rosa, Triple Systems. Oxford University Press, [2] R. Fisher and F. Yates, Statistical tables for biological, agricultural, and medical research. Longman Group United Kingdom, June [3] P. Gopalan, C. Huang, H. Simitci, and S. Yekhanin, On the locality of codeword symbols, Information Theory, IEEE Transactions on, vol. 58, no. 11, pp , nov [4] G. H. Hardy and E. M. Wright, An Introduction to the Theory of Numbers (Fifth edition). Oxford University Press, [5] F. Oggier and A. Datta, Self-repairing homomorphic codes for distributed storage systems, in INFOCOM, 2011 Proceedings IEEE. IEEE, 2011, pp [6] S. Yekhanin, Locally decodable codes, Computer Science Theory and Applications, pp , 2011.
Functional-Repair-by-Transfer Regenerating Codes
Functional-Repair-by-Transfer Regenerating Codes Kenneth W Shum and Yuchong Hu Abstract In a distributed storage system a data file is distributed to several storage nodes such that the original file can
Linear Codes. Chapter 3. 3.1 Basics
Chapter 3 Linear Codes In order to define codes that we can encode and decode efficiently, we add more structure to the codespace. We shall be mainly interested in linear codes. A linear code of length
I. GROUPS: BASIC DEFINITIONS AND EXAMPLES
I GROUPS: BASIC DEFINITIONS AND EXAMPLES Definition 1: An operation on a set G is a function : G G G Definition 2: A group is a set G which is equipped with an operation and a special element e G, called
Network File Storage with Graceful Performance Degradation
Network File Storage with Graceful Performance Degradation ANXIAO (ANDREW) JIANG California Institute of Technology and JEHOSHUA BRUCK California Institute of Technology A file storage scheme is proposed
= 2 + 1 2 2 = 3 4, Now assume that P (k) is true for some fixed k 2. This means that
Instructions. Answer each of the questions on your own paper, and be sure to show your work so that partial credit can be adequately assessed. Credit will not be given for answers (even correct ones) without
Load Balancing and Switch Scheduling
EE384Y Project Final Report Load Balancing and Switch Scheduling Xiangheng Liu Department of Electrical Engineering Stanford University, Stanford CA 94305 Email: [email protected] Abstract Load
a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.
Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given
COMBINATORIAL PROPERTIES OF THE HIGMAN-SIMS GRAPH. 1. Introduction
COMBINATORIAL PROPERTIES OF THE HIGMAN-SIMS GRAPH ZACHARY ABEL 1. Introduction In this survey we discuss properties of the Higman-Sims graph, which has 100 vertices, 1100 edges, and is 22 regular. In fact
The chromatic spectrum of mixed hypergraphs
The chromatic spectrum of mixed hypergraphs Tao Jiang, Dhruv Mubayi, Zsolt Tuza, Vitaly Voloshin, Douglas B. West March 30, 2003 Abstract A mixed hypergraph is a triple H = (X, C, D), where X is the vertex
MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.
MATH10212 Linear Algebra Textbook: D. Poole, Linear Algebra: A Modern Introduction. Thompson, 2006. ISBN 0-534-40596-7. Systems of Linear Equations Definition. An n-dimensional vector is a row or a column
On the Locality of Codeword Symbols
On the Locality of Codeword Symbols Parikshit Gopalan Microsoft Research [email protected] Cheng Huang Microsoft Research [email protected] Sergey Yekhanin Microsoft Research [email protected]
Continued Fractions and the Euclidean Algorithm
Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction
CS 598CSC: Combinatorial Optimization Lecture date: 2/4/2010
CS 598CSC: Combinatorial Optimization Lecture date: /4/010 Instructor: Chandra Chekuri Scribe: David Morrison Gomory-Hu Trees (The work in this section closely follows [3]) Let G = (V, E) be an undirected
Minimizing Probing Cost and Achieving Identifiability in Probe Based Network Link Monitoring
Minimizing Probing Cost and Achieving Identifiability in Probe Based Network Link Monitoring Qiang Zheng, Student Member, IEEE, and Guohong Cao, Fellow, IEEE Department of Computer Science and Engineering
v w is orthogonal to both v and w. the three vectors v, w and v w form a right-handed set of vectors.
3. Cross product Definition 3.1. Let v and w be two vectors in R 3. The cross product of v and w, denoted v w, is the vector defined as follows: the length of v w is the area of the parallelogram with
Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products
Chapter 3 Cartesian Products and Relations The material in this chapter is the first real encounter with abstraction. Relations are very general thing they are a special type of subset. After introducing
PYTHAGOREAN TRIPLES KEITH CONRAD
PYTHAGOREAN TRIPLES KEITH CONRAD 1. Introduction A Pythagorean triple is a triple of positive integers (a, b, c) where a + b = c. Examples include (3, 4, 5), (5, 1, 13), and (8, 15, 17). Below is an ancient
Labeling outerplanar graphs with maximum degree three
Labeling outerplanar graphs with maximum degree three Xiangwen Li 1 and Sanming Zhou 2 1 Department of Mathematics Huazhong Normal University, Wuhan 430079, China 2 Department of Mathematics and Statistics
GENERATING SETS KEITH CONRAD
GENERATING SETS KEITH CONRAD 1 Introduction In R n, every vector can be written as a unique linear combination of the standard basis e 1,, e n A notion weaker than a basis is a spanning set: a set of vectors
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS. + + x 2. x n. a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2 a 31 a 32 a 3n b 3. a m1 a m2 a mn b m
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS 1. SYSTEMS OF EQUATIONS AND MATRICES 1.1. Representation of a linear system. The general system of m equations in n unknowns can be written a 11 x 1 + a 12 x 2 +
CS 3719 (Theory of Computation and Algorithms) Lecture 4
CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a
Triangle deletion. Ernie Croot. February 3, 2010
Triangle deletion Ernie Croot February 3, 2010 1 Introduction The purpose of this note is to give an intuitive outline of the triangle deletion theorem of Ruzsa and Szemerédi, which says that if G = (V,
Lecture 17 : Equivalence and Order Relations DRAFT
CS/Math 240: Introduction to Discrete Mathematics 3/31/2011 Lecture 17 : Equivalence and Order Relations Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Last lecture we introduced the notion
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC W. T. TUTTE. Introduction. In a recent series of papers [l-4] on graphs and matroids I used definitions equivalent to the following.
Lecture 16 : Relations and Functions DRAFT
CS/Math 240: Introduction to Discrete Mathematics 3/29/2011 Lecture 16 : Relations and Functions Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT In Lecture 3, we described a correspondence
Lecture 1: Systems of Linear Equations
MTH Elementary Matrix Algebra Professor Chao Huang Department of Mathematics and Statistics Wright State University Lecture 1 Systems of Linear Equations ² Systems of two linear equations with two variables
STAR : An Efficient Coding Scheme for Correcting Triple Storage Node Failures
STAR : An Efficient Coding Scheme for Correcting Triple Storage Node Failures Cheng Huang, Member, IEEE, and Lihao Xu, Senior Member, IEEE Abstract Proper data placement schemes based on erasure correcting
On the Multiple Unicast Network Coding Conjecture
On the Multiple Unicast Networ Coding Conjecture Michael Langberg Computer Science Division Open University of Israel Raanana 43107, Israel [email protected] Muriel Médard Research Laboratory of Electronics
Every Positive Integer is the Sum of Four Squares! (and other exciting problems)
Every Positive Integer is the Sum of Four Squares! (and other exciting problems) Sophex University of Texas at Austin October 18th, 00 Matilde N. Lalín 1. Lagrange s Theorem Theorem 1 Every positive integer
Efficient Recovery of Secrets
Efficient Recovery of Secrets Marcel Fernandez Miguel Soriano, IEEE Senior Member Department of Telematics Engineering. Universitat Politècnica de Catalunya. C/ Jordi Girona 1 i 3. Campus Nord, Mod C3,
Tree-representation of set families and applications to combinatorial decompositions
Tree-representation of set families and applications to combinatorial decompositions Binh-Minh Bui-Xuan a, Michel Habib b Michaël Rao c a Department of Informatics, University of Bergen, Norway. [email protected]
The Graphical Method: An Example
The Graphical Method: An Example Consider the following linear program: Maximize 4x 1 +3x 2 Subject to: 2x 1 +3x 2 6 (1) 3x 1 +2x 2 3 (2) 2x 2 5 (3) 2x 1 +x 2 4 (4) x 1, x 2 0, where, for ease of reference,
The Butterfly, Cube-Connected-Cycles and Benes Networks
The Butterfly, Cube-Connected-Cycles and Benes Networks Michael Lampis [email protected] NTUA The Butterfly, Cube-Connected-Cycles and Benes Networks p.1/16 Introduction Hypercubes are computationally
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS Systems of Equations and Matrices Representation of a linear system The general system of m equations in n unknowns can be written a x + a 2 x 2 + + a n x n b a
14.1 Rent-or-buy problem
CS787: Advanced Algorithms Lecture 14: Online algorithms We now shift focus to a different kind of algorithmic problem where we need to perform some optimization without knowing the input in advance. Algorithms
Minimally Infeasible Set Partitioning Problems with Balanced Constraints
Minimally Infeasible Set Partitioning Problems with alanced Constraints Michele Conforti, Marco Di Summa, Giacomo Zambelli January, 2005 Revised February, 2006 Abstract We study properties of systems of
3 Some Integer Functions
3 Some Integer Functions A Pair of Fundamental Integer Functions The integer function that is the heart of this section is the modulo function. However, before getting to it, let us look at some very simple
This asserts two sets are equal iff they have the same elements, that is, a set is determined by its elements.
3. Axioms of Set theory Before presenting the axioms of set theory, we first make a few basic comments about the relevant first order logic. We will give a somewhat more detailed discussion later, but
Lemma 5.2. Let S be a set. (1) Let f and g be two permutations of S. Then the composition of f and g is a permutation of S.
Definition 51 Let S be a set bijection f : S S 5 Permutation groups A permutation of S is simply a Lemma 52 Let S be a set (1) Let f and g be two permutations of S Then the composition of f and g is a
5.1 Bipartite Matching
CS787: Advanced Algorithms Lecture 5: Applications of Network Flow In the last lecture, we looked at the problem of finding the maximum flow in a graph, and how it can be efficiently solved using the Ford-Fulkerson
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
What is Linear Programming?
Chapter 1 What is Linear Programming? An optimization problem usually has three essential ingredients: a variable vector x consisting of a set of unknowns to be determined, an objective function of x to
Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. # 01 Lecture No. # 12 Block Cipher Standards
The last three chapters introduced three major proof techniques: direct,
CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements
Approximation Algorithms
Approximation Algorithms or: How I Learned to Stop Worrying and Deal with NP-Completeness Ong Jit Sheng, Jonathan (A0073924B) March, 2012 Overview Key Results (I) General techniques: Greedy algorithms
THE DIMENSION OF A VECTOR SPACE
THE DIMENSION OF A VECTOR SPACE KEITH CONRAD This handout is a supplementary discussion leading up to the definition of dimension and some of its basic properties. Let V be a vector space over a field
Adaptive Linear Programming Decoding
Adaptive Linear Programming Decoding Mohammad H. Taghavi and Paul H. Siegel ECE Department, University of California, San Diego Email: (mtaghavi, psiegel)@ucsd.edu ISIT 2006, Seattle, USA, July 9 14, 2006
Systems of Linear Equations
Systems of Linear Equations Beifang Chen Systems of linear equations Linear systems A linear equation in variables x, x,, x n is an equation of the form a x + a x + + a n x n = b, where a, a,, a n and
Math 319 Problem Set #3 Solution 21 February 2002
Math 319 Problem Set #3 Solution 21 February 2002 1. ( 2.1, problem 15) Find integers a 1, a 2, a 3, a 4, a 5 such that every integer x satisfies at least one of the congruences x a 1 (mod 2), x a 2 (mod
University of Lille I PC first year list of exercises n 7. Review
University of Lille I PC first year list of exercises n 7 Review Exercise Solve the following systems in 4 different ways (by substitution, by the Gauss method, by inverting the matrix of coefficients
Graph Theory Problems and Solutions
raph Theory Problems and Solutions Tom Davis [email protected] http://www.geometer.org/mathcircles November, 005 Problems. Prove that the sum of the degrees of the vertices of any finite graph is
Automata and Computability. Solutions to Exercises
Automata and Computability Solutions to Exercises Fall 25 Alexis Maciel Department of Computer Science Clarkson University Copyright c 25 Alexis Maciel ii Contents Preface vii Introduction 2 Finite Automata
Similarity and Diagonalization. Similar Matrices
MATH022 Linear Algebra Brief lecture notes 48 Similarity and Diagonalization Similar Matrices Let A and B be n n matrices. We say that A is similar to B if there is an invertible n n matrix P such that
Pigeonhole Principle Solutions
Pigeonhole Principle Solutions 1. Show that if we take n + 1 numbers from the set {1, 2,..., 2n}, then some pair of numbers will have no factors in common. Solution: Note that consecutive numbers (such
CHAPTER 5. Number Theory. 1. Integers and Division. Discussion
CHAPTER 5 Number Theory 1. Integers and Division 1.1. Divisibility. Definition 1.1.1. Given two integers a and b we say a divides b if there is an integer c such that b = ac. If a divides b, we write a
Just the Factors, Ma am
1 Introduction Just the Factors, Ma am The purpose of this note is to find and study a method for determining and counting all the positive integer divisors of a positive integer Let N be a given positive
Integer Factorization using the Quadratic Sieve
Integer Factorization using the Quadratic Sieve Chad Seibert* Division of Science and Mathematics University of Minnesota, Morris Morris, MN 56567 [email protected] March 16, 2011 Abstract We give
Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs
CSE599s: Extremal Combinatorics November 21, 2011 Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs Lecturer: Anup Rao 1 An Arithmetic Circuit Lower Bound An arithmetic circuit is just like
Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson
Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement
Math 4310 Handout - Quotient Vector Spaces
Math 4310 Handout - Quotient Vector Spaces Dan Collins The textbook defines a subspace of a vector space in Chapter 4, but it avoids ever discussing the notion of a quotient space. This is understandable
Network (Tree) Topology Inference Based on Prüfer Sequence
Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 [email protected],
Midterm Practice Problems
6.042/8.062J Mathematics for Computer Science October 2, 200 Tom Leighton, Marten van Dijk, and Brooke Cowan Midterm Practice Problems Problem. [0 points] In problem set you showed that the nand operator
Linear Algebra Notes for Marsden and Tromba Vector Calculus
Linear Algebra Notes for Marsden and Tromba Vector Calculus n-dimensional Euclidean Space and Matrices Definition of n space As was learned in Math b, a point in Euclidean three space can be thought of
LINEAR INEQUALITIES. Mathematics is the art of saying many things in many different ways. MAXWELL
Chapter 6 LINEAR INEQUALITIES 6.1 Introduction Mathematics is the art of saying many things in many different ways. MAXWELL In earlier classes, we have studied equations in one variable and two variables
NOTES ON LINEAR TRANSFORMATIONS
NOTES ON LINEAR TRANSFORMATIONS Definition 1. Let V and W be vector spaces. A function T : V W is a linear transformation from V to W if the following two properties hold. i T v + v = T v + T v for all
Mathematical Induction
Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,
ON GALOIS REALIZATIONS OF THE 2-COVERABLE SYMMETRIC AND ALTERNATING GROUPS
ON GALOIS REALIZATIONS OF THE 2-COVERABLE SYMMETRIC AND ALTERNATING GROUPS DANIEL RABAYEV AND JACK SONN Abstract. Let f(x) be a monic polynomial in Z[x] with no rational roots but with roots in Q p for
2 Background on Erasure Coding for Distributed Storage
Data Insertion & Archiving in Erasure-coding Based Large-scale Storage Systems Lluis Pamies-Juarez 1, Frédérique Oggier 1 and Anwitaman Datta 2 1 School of Mathematical and Physical Sciences 2 School of
2.3 Convex Constrained Optimization Problems
42 CHAPTER 2. FUNDAMENTAL CONCEPTS IN CONVEX OPTIMIZATION Theorem 15 Let f : R n R and h : R R. Consider g(x) = h(f(x)) for all x R n. The function g is convex if either of the following two conditions
1 Solving LPs: The Simplex Algorithm of George Dantzig
Solving LPs: The Simplex Algorithm of George Dantzig. Simplex Pivoting: Dictionary Format We illustrate a general solution procedure, called the simplex algorithm, by implementing it on a very simple example.
8 Primes and Modular Arithmetic
8 Primes and Modular Arithmetic 8.1 Primes and Factors Over two millennia ago already, people all over the world were considering the properties of numbers. One of the simplest concepts is prime numbers.
Collinear Points in Permutations
Collinear Points in Permutations Joshua N. Cooper Courant Institute of Mathematics New York University, New York, NY József Solymosi Department of Mathematics University of British Columbia, Vancouver,
MOST error-correcting codes are designed for the equal
IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 55, NO. 3, MARCH 2007 387 Transactions Letters Unequal Error Protection Using Partially Regular LDPC Codes Nazanin Rahnavard, Member, IEEE, Hossein Pishro-Nik,
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List Mehmet Kurt 1, Can Atilgan 2, Murat Ersen Berberler 3 1 Izmir University, Department of Mathematics and Computer Science, Izmir
COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012
Binary numbers The reason humans represent numbers using decimal (the ten digits from 0,1,... 9) is that we have ten fingers. There is no other reason than that. There is nothing special otherwise about
Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, 2010. Chapter 7: Digraphs
MCS-236: Graph Theory Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, 2010 Chapter 7: Digraphs Strong Digraphs Definitions. A digraph is an ordered pair (V, E), where V is the set
k, then n = p2α 1 1 pα k
Powers of Integers An integer n is a perfect square if n = m for some integer m. Taking into account the prime factorization, if m = p α 1 1 pα k k, then n = pα 1 1 p α k k. That is, n is a perfect square
A Piggybacking Design Framework for Read-and Download-efficient Distributed Storage Codes
A Piggybacing Design Framewor for Read-and Download-efficient Distributed Storage Codes K V Rashmi, Nihar B Shah, Kannan Ramchandran, Fellow, IEEE Department of Electrical Engineering and Computer Sciences
Computability Theory
CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Computability Theory This section is partly inspired by the material in A Course in Mathematical Logic by Bell and Machover, Chap 6, sections 1-10.
Cartesian Products and Relations
Cartesian Products and Relations Definition (Cartesian product) If A and B are sets, the Cartesian product of A and B is the set A B = {(a, b) :(a A) and (b B)}. The following points are worth special
The positive minimum degree game on sparse graphs
The positive minimum degree game on sparse graphs József Balogh Department of Mathematical Sciences University of Illinois, USA [email protected] András Pluhár Department of Computer Science University
Reading 13 : Finite State Automata and Regular Expressions
CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model
DERIVATIVES AS MATRICES; CHAIN RULE
DERIVATIVES AS MATRICES; CHAIN RULE 1. Derivatives of Real-valued Functions Let s first consider functions f : R 2 R. Recall that if the partial derivatives of f exist at the point (x 0, y 0 ), then we
Introduction to Algebraic Coding Theory
Introduction to Algebraic Coding Theory Supplementary material for Math 336 Cornell University Sarah A. Spence Contents 1 Introduction 1 2 Basics 2 2.1 Important code parameters..................... 4
Row Echelon Form and Reduced Row Echelon Form
These notes closely follow the presentation of the material given in David C Lay s textbook Linear Algebra and its Applications (3rd edition) These notes are intended primarily for in-class presentation
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
Markov random fields and Gibbs measures
Chapter Markov random fields and Gibbs measures 1. Conditional independence Suppose X i is a random element of (X i, B i ), for i = 1, 2, 3, with all X i defined on the same probability space (.F, P).
Fairness in Routing and Load Balancing
Fairness in Routing and Load Balancing Jon Kleinberg Yuval Rabani Éva Tardos Abstract We consider the issue of network routing subject to explicit fairness conditions. The optimization of fairness criteria
On three zero-sum Ramsey-type problems
On three zero-sum Ramsey-type problems Noga Alon Department of Mathematics Raymond and Beverly Sackler Faculty of Exact Sciences Tel Aviv University, Tel Aviv, Israel and Yair Caro Department of Mathematics
S on n elements. A good way to think about permutations is the following. Consider the A = 1,2,3, 4 whose elements we permute with the P =
Section 6. 1 Section 6. Groups of Permutations: : The Symmetric Group Purpose of Section: To introduce the idea of a permutation and show how the set of all permutations of a set of n elements, equipped
DETERMINANTS IN THE KRONECKER PRODUCT OF MATRICES: THE INCIDENCE MATRIX OF A COMPLETE GRAPH
DETERMINANTS IN THE KRONECKER PRODUCT OF MATRICES: THE INCIDENCE MATRIX OF A COMPLETE GRAPH CHRISTOPHER RH HANUSA AND THOMAS ZASLAVSKY Abstract We investigate the least common multiple of all subdeterminants,
Regular Languages and Finite Automata
Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a
Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2
CS 70 Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2 Proofs Intuitively, the concept of proof should already be familiar We all like to assert things, and few of us
1 if 1 x 0 1 if 0 x 1
Chapter 3 Continuity In this chapter we begin by defining the fundamental notion of continuity for real valued functions of a single real variable. When trying to decide whether a given function is or
