Binary Codes
Binary Codes
Binary Codes
Programme in Science
CONSTRUCTION OF BINARY
LINEAR CODES
SOH JOO KIAT KENNETH
Department of Mathematics
National University of Singapore
1999/2000
Contents
1.
Introduction
1.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2
2.
2.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2
2.3
3.
3.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2
Lengthening a Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3
Extending a Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4
3.5
Shortening a Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6
Truncating a Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7
Concatenation of Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.8
Combination of Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.9
12
3.10
The (G G)-Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
List of Tables
33
Conclusion
52
Bibliography
53
Chapter 1
Introduction
1.1 Motivation
Coding Theory is the study of methods for efficient and accurate transfer of information from one party to another. The physical medium through which the information
is transmitted is called a channel. Telephone lines and the atmosphere are examples
of channels. Encoding is the process of adding redundancy digits to the information
digits. The encoding process in general is not difficult. The difficult problem is decoding. Often, undesirable disturbances may result in the distortion of transmitted
information, and these disturbances are referred to as noise. Coding theory deals
with the problem of detecting and correcting transmission errors caused by noise in
the channel.
Basically, there are five objectives in the study of coding theory. They are:
1.
2.
3.
4.
5.
Of the five, the most important is the fourth, but in general, it will not be compatible with the other four, and any solution is necessarily a trade-off among the five
objectives.
In this chapter, some basic definitions and results in coding theory are stated without
proofs. They will be used throughout the next two chapters. Here, we will formally
state terms like distance and weight, and illustrate their importance in the understanding of the binary linear code.
Definition.
The set Z2 = {0, 1}, which is a finite binary set, is also called
a code alphabet.
1. A binary word of length n over Z2 is a sequence u = u1 u2 ...un with each ui Z2
for all i.
Definition.
Definition.
Proposition 1.1.
0 d(x, y) n,
2.
d(x, y) = 0 x = y,
3.
4.
Definition.
distance d(C) of C is the smallest distance between distinct codewords. Symbolically, we write
d(C) = min{d(c, d)|c, d C, c 6= d}.
Since c 6= d implies that d(c, d) 1, the minimum distance of a code must be at
least 1.
Chapter 2
2.1 Motivation
Most practical error-correcting codes used today, including the Hamming codes, are
examples of linear codes. The main aim of this chapter is to explain what this means,
and what consequences of linearity make such codes good. One requirement of a
linear code is that its alphabet symbols are the elements of a field. In particular, we
shall use the field Z2 , since we are dealing with the construction of binary linear codes.
Before actually saying what a linear code is, here are just some of the advantages
over arbitrary codes.
1.
2.
3.
4.
5.
Before we construct some optimal linear codes, we will study some basic properties of binary linear codes.
Definition
Lemma 2.1
and d in C.
Theorem 2.1
Theorem 2.2
Lemma 2.2
Proof.
Let X be the set of codewords in C with 0 in the ith coordinate and Y be the set
of codewords in C with 1 in the ith coordinate. Then, C = X Y . Suppose Y 6= .
Let c Y . Since c + X Y , we find that, |X| |Y |. Similarly, c + Y X, and this
Definition.
denoted by C , is given by
C = {v Zn2 |(v, c) = 0 for all c C}.
We call C self-orthogonal if C C and self-dual if C = C .
Another advantage of linear codes is that a binary linear [n, k]-code C can be described simply by giving a basis for C, which consists of k linearly independent codewords in C, rather than having to list all of the 2k individual codewords in the code.
It is customary to put the codewords of a basis for a linear code C into a matrix.
Definition.
Definition.
Theorem 2.3
Theorem 2.4
Then C has distance d if and only if any set of d1 rows of H is linearly independent,
and at least one set of d rows of H is linearly dependent.
Proof :
Suppose v Zn2 .
Then, vH is a linear combination of exactly wt(v) rows of H.
If v C and wt(v) = d, then since vH = 0, some d rows of H are linearly dependent.
And if vH = 0, then v is a codeword so wt(v) d.
11
Chapter 3
3.1 Motivation
We have discussed the properties of binary linear codes. Now, we will like to investigate the different constructions of new codes, and investigate whether they generate
optimal binary linear codes. In fact, determining the values of the optimal linear
codes has come to known as the main coding theory problem. Unfortunately, very
little is currently known about the number that we are looking for. Thus, the introduction of these constructions will hopefully generate good codes from a given set of
optimal linear codes.
The reason why we are interested in optimal linear codes is because it gives the
maximum total transmission rate and error correction rate. It is pointless to have
codes with excellent transmission rate but small error correction rate. On the other
hand, codes with good error correction rate but poor transmission rate should be
12
avoided. Thus, coding theorists are still looking for a really good compromise.
Definitions.
1.
is defined to be R(C) = k n.
2.
The error correction rate of a binary linear code C with parameters [n, k, d]
3.
A trivial binary linear code is a linear code with parameter [n, 1, n] or [n, n, 1],
for all n N. The [n, 1, n]-linear code is a code with one non-zero codeword, that
has all 1 and the weight of this codeword is n. The [n, n, 1]-linear code is a code
which contains the whole subspace Zn2 , with a generator matrix row equivalent to an
identity matrix, In , and has minimum weight of 1.
4.
Optimal codes are codes with the maximum d, given the length n and the
dimension k.
5.
13
Definition
Let C be a binary linear code of length n. The process of adding 0 to all codewords in C is referred to as lengthening the code C.
Theorem
Let C be an [n, k, d] linear code. Then, there exists a linear code C with parameter [n + s, k, d], where s > 0.
Proof
Examples
Remarks
We may assume that s > 0, since when s = 0, the linear code C with parameters [n + 0, k, d] = [n, k, d] is already assumed to exist.
Please refer to Table 2 on page 36-38 for the list of optimal codes generated by this
construction.
15
Definition
Let C be a binary linear code of length n. The code C of length n + 1 obtained from
C by adding one extra bit to each codeword in order to make each codeword into a
new codeword of even weight is called the extended code of C. In particular, we
are interested in codes that have codewords with odd weight initally. If C contains
of all codewords that have even weight, extending a code is the same as lengthening
the code.
Theorem
Let C be an [n, k, d]-linear code. Then, given that d is odd, there exists a linear
code C with parameter [n + 1, k, d + 1].
Proof
Examples
Remarks
Please refer to Table 3 on page 39-41 for the list of optimal codes generated by
this construction.
17
Definition
Theorem
Let C be an [n, k, d]-linear code. Then, there exists a linear code C with parameter [n, k s, d], where s > 0 and k > 1.
Proof
By mathematical induction, there exists a linear code C with parameters [n, k s, d],
where s > 0.
Examples
1 1 0 0
Remarks
We may assume that s > 0, since when s = 0, the linear code C with parameters [n, k 0, d] = [n, k, d] is already assumed to exist.
Also, s < k, for if s k, the set C becomes an empty set.
Please refer to Table 4 on page 42-43 for the list of optimal codes generated by this
construction.
19
Definition
Theorem
Let C be an [n, k, d]-linear code. Then, there exists a linear code C with parameter [n s, k s, d], where k > s > 0.
Proof
Examples
Remarks
We may assume that s > 0, since when s = 0, the linear code C with parameters [n 0, k 0, d] = [n, k, d] is already assumed to exist.
Also, s < k, for if s k, the set C becomes an empty set.
Refer to Table 5 on pages 44-45 for the list of optimal codes generated by this construction.
22
Definition
Let C be a binary linear code of length n. The code obtained by removing a fixed
coordinate of C is called a truncated code of C. In particular, we are interested in
deleting those coordinates that is not 0 for all codewords in C. We have mentioned
in previous section of the technique of shortening a code with coordinate that is 0 for
all codewords in C.
Theorem
Let C be an [n, k, d]-linear code. Then, there exists a linear code C with parameter [n s, k, d s], where s > 0 and d > 1.
Proof
Examples
Remarks
We may assume that s > 0, since when s = 0, the linear code C with parameters [n 0, k, d 0] = [n, k, d] is already assumed to exist.
Also, s < d, for if s d, the set C becomes an empty set.
Often, the technique of shortening and truncating is used simultaneously so as to obtain other optimal codes. Please refer to Table 6 on page 46-47 for the list of optimal
codes generated by this construction.
24
Definition
Theorem
Let C1 be an [n1 , k, d1 ]-linear code and C2 be an [n2 , k, d2 ]-linear code. Then, there
exists a linear code C with parameter [n1 + n2 , k, d1 + d2 ].
Proof
Since C1 is an [n1 , k, d1 ]-linear code and C2 is an [n2 , k, d2]-linear code, there exists c1 C1 , c1 6= 0, and c2 C2 , c2 6= 0, such that wt(c1 ) = d(C1 ) = d1 and
wt(c2 ) = d(C2 ) = d2 .
25
Examples
Let C1 = {000, 001, 110, 111} and C2 = {000, 100, 011, 111}.
Then, C = {000000, 001100, 110011, 111111}.
Remarks
Please refer to Table 7 on page 48 for the list of optimal codes generated by this
construction.
26
Definition
Theorem
Let C1 be an [n1 , k1 , d1 ]-linear code and C2 be an [n2 , k2 , d2 ]-linear code. Then, there
exists a linear code C with parameter [n1 + n2 , k1 + k2 , min{d1 , d2 }].
Proof
Since C1 is an [n1 , k1, d1 ]-linear code and C2 is an [n2 , k2 , d2 ]-linear code, there exists c1 C1 , c1 6= 0, and c2 C2 , c2 6= 0, such that wt(c1 ) = d(C1 ) = d1 and
wt(c2 ) = d(C2 ) = d2 .
By concatenating c1 with 0 C2 , we have wt(c1 ) = wt(c1 ) + 0 = d1 .
By concatenating c2 with 0 C1 , we have wt(c2 ) = wt(c2 ) + 0 = d2 .
27
Examples
Remarks
Please refer to Table 8 on page 49 for the list of optimal codes generated by this
construction.
28
Theorem
Proof
Since C1 is an [n, k1 , d]-linear code and C2 is an [n, k2 , 2d]-linear code, there exists c1 C1 , c1 6= 0, and c2 C2 , c2 6= 0, such that wt(c1 ) = d(C1) = d and
wt(c2 ) = d(C2 ) = 2d.
Let C1 C2 be the set of codewords of the form (u, u+v) defined above, where u C1 ,
v C2 and let c C1 C2 .
Case 1 :
If u = 0 and v 6= 0, then
min{wt(c )} = min{wt(0, v)} = min{wt(v)} = wt(c2 ) = 2d.
Case 2 :
29
If v = 0 and u 6= 0, then
min{wt(c )} = min{wt(u, u)} = min{wt(u) + wt(u)} = wt(c1 ) + wt(c1 ) = 2d.
Case 3 :
If u 6= 0 and v 6= 0, then
by the Triangle Inequality, wt(u + v) = wt(u v) wt(u) wt(v), for wt(u) wt(v),
wt(c ) = wt(u, u + v) = wt(u) + (wt(u) wt(v))
min{wt(v)} = wt(c2 ) = 2d.
d(C1 C2 ) = min{wt(c )} = 2d.
Also, since c is of the form (u, u + v), u has 2k1 choices and v has 2k2 choices.
|C1 C2 | = |C1 ||C2| = 2k1 2k2 = 2k1 +k2 .
Therefore, dim(C1 C2 ) = k1 + k2 .
Hence, the parameters of C1 C2 is [2n, k1 + k2 , 2d].
Examples
Let C1 = {00, 10} and C2 = {00, 11}. Then, C1 C2 = {0000, 0011, 1010, 1001}
which is a code of length 4, size 4 and minimum distance 2.
Remarks
Please refer to Table 9 on page 50 for the list of optimal codes generated by this
construction.
30
Definition
Theorem
Let Cbe an
[n, k, d]-linear code and G is the generator matrix of C. We define
G G
G =
, where 0 = (0, 0, 0, ..., 0) and 1 = (1, 1, 1, ..., 1).
0 1
Let C be the code with G as the generator matrix.
Then, C has parameter [2n, k + 1, d], where d = min{n, 2d}
Proof
next n bits.
min{wt(c )} = min{wt(c1 c2 )}
= min{wt(c1 ) + wt(c2 )} = min{wt(c1 )} + min{wt(c2 )}
= wt(c1 ) + min{wt(c1 ), wt(cc1 )}
= d + min{d, n d} = min{d + d, d + n d} = min{n, 2d}.
d(C ) = min{wt(c )} = min{n, 2d}.
By definition, G contains the basis of C, and thus, the first k rows of G are linearly
independent.
Since the first n bits of the last row of G are all 0, the last row of G is linearly
independent of the first k rows of G .
Thus, the (k + 1) rows of G form the basis of C .
dim(C ) = k + 1.
Hence, the parameters of C is [2n, k + 1, min{n, 2d}].
Examples
Remarks
Please refer to Table 10 on page 51 for the list of optimal codes generated by this
construction.
32
List of Tables
In this section, there are 10 tables included. Table 1 lists all the binary linear [n,k]codes, for n 30, and for all k n, which are optimal. These optimal codes can
be obtained from the Browers table. Table 2 to 10 are the results of the respective
constructions. The codes used for these constructions are obtained from Table 1 itself. After computation by the different constructions, the resulting codes are then
being compared with Table 1. Table 2 to 10 thus listed all the results that are optimal codes. The range of all the binary linear [n,k]-codes are the same, namely, n 30.
Also, in the process of computation, we have omitted those resulting codes that are
trival, since we are more interested in consturcting non-trival codes. And, we have
omitted those resulting codes that have repeated from one particular construction.
For example, in Table 7, the concatenation of [6, 2, 4]-linear code and [6, 2, 4]-linear
code and the concatenation of [9, 2, 6]-linear code and [3, 2, 2]-linear code both produce
[12, 2, 8]-linear code. The latter one, in our case, will be omitted.
33
[n, k, d]
[1,1,1]
[2,1,2]
[2,2,1]
[3,1,3]
[3,2,2]
[3,3,1]
[4,1,4]
[4,2,2]
[4,3,2]
[4,4,1]
[5,1,5]
[5,2,3]
[5,3,2]
[5,4,2]
[5,5,1]
[6,1,6]
[6,2,4]
[6,3,3]
[6,4,2]
[6,5,2]
[6,6,1]
[7,1,7]
[7,2,4]
[7,3,4]
[7,4,3]
[7,5,2]
[7,6,2]
[7,7,1]
[8,1,8]
[8,2,5]
[8,3,4]
[8,4,4]
[8,5,2]
[8,6,2]
[8,7,2]
[8,8,1]
[9,1,9]
[9,2,6]
[9,3,4]
[n, k, d]
[9,4,4]
[9,5,3]
[9,6,2]
[9,7,2]
[9,8,2]
[9,9,1]
[10,1,10]
[10,2,6]
[10,3,5]
[10,4,4]
[10,5,4]
[10,6,3]
[10,7,2]
[10,8,2]
[10,9,2]
[10,10,1]
[11,1,11]
[11,2,7]
[11,3,6]
[11,4,5]
[11,5,4]
[11,6,4]
[11,7,3]
[11,8,2]
[11,9,2]
[11,10,2]
[11,11,1]
[12,1,12]
[12,2,8]
[12,3,6]
[12,4,6]
[12,5,4]
[12,6,4]
[12,7,4]
[12,8,3]
[12,9,2]
[12,10,2]
[12,11,2]
[12,12,1]
[n, k, d]
[13,1,13]
[13,2,8]
[13,3,7]
[13,4,6]
[13,5,5]
[13,6,4]
[13,7,4]
[13,8,4]
[13,9,3]
[13,10,2]
[13,11,2]
[13,12,2]
[13,13,1]
[14,1,14]
[14,2,9]
[14,3,8]
[14,4,7]
[14,5,6]
[14,6,5]
[14,7,4]
[14,8,4]
[14,9,4]
[14,10,3]
[14,11,2]
[14,12,2]
[14,13,2]
[14,14,1]
[15,1,15]
[15,2,10]
[15,3,8]
[15,4,8]
[15,5,7]
[15,6,6]
[15,7,5]
[15,8,4]
[15,9,4]
[15,10,4]
[15,11,3]
[15,12,2]
[n, k, d]
[15,13,2]
[15,14,2]
[15,15,1]
[16,1,16]
[16,2,10]
[16,3,8]
[16,4,8]
[16,5,8]
[16,6,6]
[16,7,6]
[16,8,5]
[16,9,4]
[16,10,4]
[16,11,4]
[16,12,2]
[16,13,2]
[16,14,2]
[16,15,2]
[16,16,1]
[17,1,17]
[17,2,11]
[17,3,9]
[17,4,8]
[17,5,8]
[17,6,7]
[17,7,6]
[17,8,6]
[17,9,5]
[17,10,4]
[17,11,4]
[17,12,3]
[17,13,2]
[17,14,2]
[17,15,2]
[17,16,2]
[17,17,1]
[18,1,18]
[18,2,12]
[18,3,10]
34
[n, k, d]
[18,4,8]
[18,5,8]
[18,6,8]
[18,7,7]
[18,8,6]
[18,9,6]
[18,10,4]
[18,11,4]
[18,12,4]
[18,13,3]
[18,14,2]
[18,15,2]
[18,16,2]
[18,17,2]
[18,18,1]
[19,1,19]
[19,2,12]
[19,3,10]
[19,4,9]
[19,5,8]
[19,6,8]
[19,7,8]
[19,8,7]
[19,9,6]
[19,10,5]
[19,11,4]
[19,12,4]
[19,13,4]
[19,14,3]
[19,15,2]
[19,16,2]
[19,17,2]
[19,18,2]
[19,19,1]
[20,1,20]
[20,2,13]
[20,3,11]
[20,4,10]
[20,5,9]
[n, k, d]
[20,6,8]
[20,7,8]
[20,8,8]
[20,9,7]
[20,10,6]
[20,11,5]
[20,12,4]
[20,13,4]
[20,14,4]
[20,15,3]
[20,16,2]
[20,17,2]
[20,18,2]
[20,19,2]
[20,20,1]
[21,1,21]
[21,2,14]
[21,3,12]
[21,4,10]
[21,5,10]
[21,6,8]
[21,7,8]
[21,8,8]
[21,9,8]
[21,10,7]
[21,11,6]
[21,12,5]
[21,13,4]
[21,14,4]
[21,15,4]
[21,16,3]
[21,17,2]
[21,18,2]
[21,19,2]
[21,20,2]
[21,21,1]
[22,1,22]
[22,2,14]
[22,3,12]
[n, k, d]
[22,4,11]
[22,5,10]
[22,6,9]
[22,7,8]
[22,8,8]
[22,9,8]
[22,10,8]
[22,11,7]
[22,12,6]
[22,13,5]
[22,14,4]
[22,15,4]
[22,16,4]
[22,17,3]
[22,18,2]
[22,19,2]
[22,20,2]
[22,21,2]
[22,22,1]
[23,1,23]
[23,2,15]
[23,3,12]
[23,4,12]
[23,5,11]
[23,6,10]
[23,7,9]
[23,8,8]
[23,9,8]
[23,10,8]
[23,11,8]
[23,12,7]
[23,13,6]
[23,14,5]
[23,15,4]
[23,16,4]
[23,17,4]
[23,18,3]
[23,19,2]
[23,20,2]
[n, k, d]
[23,21,2]
[23,22,2]
[23,23,1]
[24,1,24]
[24,2,16]
[24,3,13]
[24,4,12]
[24,5,12]
[24,6,10]
[24,7,10]
[24,8,8]
[24,9,8]
[24,10,8]
[24,11,8]
[24,12,8]
[24,13,6]
[24,14,6]
[24,15,4]
[24,16,4]
[24,17,4]
[24,18,4]
[24,19,3]
[24,20,2]
[24,21,2]
[24,22,2]
[24,23,2]
[24,24,1]
[25,1,25]
[25,2,16]
[25,3,14]
[25,4,12]
[25,5,12]
[25,6,11]
[25,7,10]
[25,8,9]
[25,9,8]
[25,10,8]
[25,11,8]
[25,12,8]
[n, k, d]
[n, k, d]
[n, k, d]
[n, k, d]
[25,13,6] [27,1,27] [28,13,8] [29,24,3]
[25,14,6] [27,2,18] [28,14,8] [29,25,2]
[25,15,5] [27,3,15] [28,15,6] [29,26,2]
[25,16,4] [27,4,14] [28,16,6] [29,27,2]
[25,17,4] [27,5,13] [28,17,6] [29,28,2]
[25,18,4] [27,6,12] [28,18,5] [29,29,1]
[25,19,4] [27,7,12] [28,19,4] [30,1,30]
[25,20,3] [27,8,10] [28,20,4] [30,2,20]
[25,21,2] [27,9,10] [28,21,4] [30,3,16]
[25,22,2] [27,10,9] [28,22,4] [30,4,16]
[25,23,2] [27,11,8] [28,23,3] [30,5,15]
[25,24,2] [27,12,8] [28,24,2] [30,6,14]
[25,25,1] [27,13,8] [28,25,2] [30,7,12]
[26,1,26] [27,14,7] [28,26,2] [30,8,12]
[26,2,17] [27,15,6] [28,27,2] [30,9,12]
[26,3,14] [27,16,6] [28,28,1] [30,10,11]
[26,4,13] [27,17,5] [29,1,29] [30,11,10]
[26,5,12] [27,18,4] [29,2,19] [30,12,9]
[26,6,12] [27,19,4] [29,3,16] [30,13,8]
[26,7,11] [27,20,4] [29,4,15] [30,14,8]
[26,8,10] [27,21,4] [29,5,14] [30,15,8]
[26,9,9] [27,22,3] [29,6,13] [30,16,7]
[26,10,8] [27,23,2] [29,7,12] [30,17,6]
[26,11,8] [27,24,2] [29,8,12] [30,18,6]
[26,12,8] [27,25,2] [29,9,11] [30,19,6]
[26,13,7] [27,26,2] [29,10,10] [30,20,5]
[26,14,6] [27,27,1] [29,11,9] [30,21,4]
[26,15,6] [28,1,28] [29,12,8] [30,22,4]
[26,16,5] [28,2,18] [29,13,8] [30,23,4]
[26,17,4] [28,3,16] [29,14,8] [30,24,4]
[26,18,4] [28,4,14] [29,15,7] [30,25,3]
[26,19,4] [28,5,14] [29,16,6] [30,26,2]
[26,20,4] [28,6,12] [29,17,6] [30,27,2]
[26,21,3] [28,7,12] [29,18,6] [30,28,2]
[26,22,2] [28,8,11] [29,19,5] [30,29,2]
[26,23,2] [28,9,10] [29,20,4] [30,30,1]
[26,24,2] [28,10,10] [29,21,4]
[26,25,2] [28,11,8] [29,22,4]
[26,26,1] [28,12,8] [29,23,4]
35
[n, k, d]
[3,2,2]
[4,3,2]
[5,4,2]
[6,2,4]
[6,5,2]
[7,3,4]
[7,5,2]
[7,6,2]
[8,3,4]
[8,4,4]
[8,6,2]
[8,7,2]
[9,2,6]
[9,4,4]
[9,7,2]
[9,8,2]
[10,5,4]
[10,8,2]
[10,9,2]
[11,3,6]
[11,5,4]
[11,6,4]
[11,9,2]
[11,10,2]
[12,2,8]
[12,4,6]
[12,6,4]
[12,7,4]
[12,10,2]
[12,11,2]
[13,7,4]
[13,8,4]
[13,11,2]
[13,12,2]
[14,3,8]
[14,8,4]
[14,9,4]
[14,12,2]
[14,13,2]
s
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
36
[n + s, k, d]
[4,2,2]
[5,3,2]
[6,4,2]
[7,2,4]
[7,5,2]
[8,3,4]
[8,5,2]
[8,6,2]
[9,3,4]
[9,4,4]
[9,6,2]
[9,7,2]
[10,2,6]
[10,4,4]
[10,7,2]
[10,8,2]
[11,5,4]
[11,8,2]
[11,9,2]
[12,3,6]
[12,5,4]
[12,6,4]
[12,9,2]
[12,10,2]
[13,2,8]
[13,4,6]
[13,6,4]
[13,7,4]
[13,10,2]
[13,11,2]
[14,7,4]
[14,8,4]
[14,11,2]
[14,12,2]
[15,3,8]
[15,8,4]
[15,9,4]
[15,12,2]
[15,13,2]
[n, k, d]
[15,2,10]
[15,3,8]
[15,4,8]
[15,6,6]
[15,9,4]
[15,10,4]
[15,12,2]
[15,13,2]
[15,14,2]
[16,4,8]
[16,5,8]
[16,7,6]
[16,10,4]
[16,11,4]
[16,13,2]
[16,14,2]
[16,15,2]
[17,4,8]
[17,5,8]
[17,8,6]
[17,10,4]
[17,11,4]
[17,14,2]
[17,15,2]
[17,16,2]
[18,2,12]
[18,3,10]
[18,5,8]
[18,6,8]
[18,9,6]
[18,11,4]
[18,12,4,]
[18,15,2]
[18,16,2]
[18,17,2]
[19,6,8]
[19,7,8]
[19,12,4]
[19,13,4]
s [n + s, k, d]
1
[16,2,10]
1
[16,3,8]
1
[16,4,8]
1
[16,6,6]
1
[16,9,4]
1
[16,10,4]
1
[16,12,2]
1
[16,13,2]
1
[16,14,2]
1
[17,4,8]
1
[17,5,8]
1
[17,7,6]
1
[17,10,4]
1
[17,11,4]
1
[17,13,2]
1
[17,14,2]
1
[17,15,2]
1
[18,4,8]
1
[18,5,8]
1
[18,8,6]
1
[18,10,4]
1
[18,11,4]
1
[18,14,2]
1
[18,15,2]
1
[18,16,2]
1
[19,2,12]
1
[19,3,10]
1
[19,5,8]
1
[19,6,8]
1
[19,9,6]
1
[19,11,4]
1
[19,12,4]
1
[19,15,2]
1
[19,16,2]
1
[19,17,2]
1
[20,6,8]
1
[20,7,8]
1
[20,12,4]
1
[20,13,4]
37
[n, k, d]
[19,16,2]
[19,17,2]
[19,18,2]
[20,4,10]
[20,6,8]
[20,7,8]
[20,8,8]
[20,13,4]
[20,14,4]
[20,17,2]
[20,18,2]
[20,19,2]
s
1
1
1
1
1
1
1
1
1
1
1
1
38
[n + s, k, d]
[20,16,2]
[20,17,2]
[20,18,2]
[21,4,10]
[21,6,8]
[21,7,8]
[21,8,8]
[21,13,4]
[21,14,4]
[21,17,2]
[21,18,2]
[21,19,2]
[n, k, d] [n + 1, k, d + 1]
[2,2,1]
[3,2,2]
[3,3,1]
[4,3,2]
[4,4,1]
[5,4,2]
[5,2,3]
[6,2,4]
[5,5,1]
[6,5,2]
[6,3,3]
[7,3,4]
[6,6,1]
[7,6,2]
[7,4,3]
[8,4,4]
[7,7,1]
[8,7,2]
[8,2,5]
[9,2,6]
[8,8,1]
[9,8,2]
[9,5,3]
[10,5,4]
[9,9,1]
[10,9,2]
[10,3,5]
[11,3,6]
[10,6,3]
[11,6,4]
[10,10,1]
[11,10,2]
[11,2,7]
[12,2,8]
[11,4,5]
[12,4,6]
[11,7,3]
[12,7,4]
[11,11,1]
[12,11,2]
[12,8,3]
[13,8,4]
[12,12,1]
[13,12,2]
[13,3,7]
[14,3,8]
[13,5,5]
[14,5,6]
[13,9,3]
[14,9,4]
[13,13,1]
[14,13,2]
[14,2,9]
[15,2,10]
[14,4,7]
[15,4,8]
[14,6,5]
[15,6,6]
[14,10,3]
[15,10,4]
[14,14,1]
[15,14,2]
[15,5,7]
[16,5,8]
[15,7,5]
[16,7,6]
[15,11,3]
[16,11,4]
[15,15,1]
[16,15,2]
[16,8,5]
[17,8,6]
[16,16,1]
[17,16,2]
[17,2,11]
[18,2,12]
[17,3,9]
[18,3,10]
39
[n, k, d] [n + 1, k, d + 1]
[17,6,7]
[18,6,8]
[17,9,5]
[18,9,6]
[17,12,3]
[18,12,4]
[17,17,1]
[18,17,2]
[18,7,7]
[19,7,8]
[18,13,3]
[19,13,4]
[18,18,1]
[19,18,2]
[19,4,9]
[20,4,10]
[19,8,7]
[20,8,8]
[19,10,5]
[20,10,6]
[19,14,3]
[20,14,4]
[19,19,1]
[20,19,2]
[20,2,13]
[21,2,14]
[20,3,11]
[21,3,12]
[20,5,9]
[21,5,10]
[20,9,7]
[21,9,8]
[20,11,5]
[21,11,6]
[20,15,3]
[21,15,4]
[20,20,1]
[21,20,2]
[21,10,7]
[22,10,8]
[21,12,5]
[22,12,6]
[21,16,3]
[22,16,4]
[21,21,1]
[22,21,2]
[22,4,11]
[23,4,12]
[22,6,9]
[23,6,10]
[22,11,7]
[23,11,8]
[22,13,5]
[23,13,6]
[22,17,3]
[23,17,4]
[22,22,1]
[23,22,2]
[23,2,15]
[24,2,16]
[23,5,11]
[24,5,12]
[23,7,9]
[24,7,10]
[23,12,7]
[24,12,8]
[23,14,5]
[24,14,6]
[23,18,3]
[24,18,4]
[23,23,1]
[24,23,2]
[24,3,13]
[25,3,14]
[24,19,3]
[25,19,4]
[24,24,1]
[25,24,2]
40
[n, k, d] [n + 1, k, d + 1]
[25,6,11]
[26,6,12]
[25,8,9]
[26,8,10]
[25,15,5]
[26,15,6]
[25,20,3]
[26,20,4]
[25,25,1]
[26,25,2]
[26,2,17]
[27,2,18]
[26,4,13]
[27,4,14]
[26,7,11]
[27,7,12]
[26,9,9]
[27,9,10]
[26,13,7]
[27,13,8]
[26,16,5]
[27,16,6]
[26,21,3]
[27,21,4]
[26,26,1]
[27,26,2]
[27,3,15]
[28,3,16]
[27,5,13]
[28,5,14]
[27,10,9]
[28,10,10]
[27,14,7]
[28,14,8]
[27,17,5]
[28,17,6]
[27,22,3]
[28,22,4]
[27,27,1]
[28,27,2]
[28,8,11]
[29,8,12]
[28,18,5]
[29,18,6]
[28,23,3]
[29,23,4]
[28,28,1]
[29,28,2]
[29,2,19]
[30,2,20]
[29,4,15]
[30,4,16]
[29,6,13]
[30,6,14]
[29,9,11]
[30,9,12]
[29,11,9]
[30,11,10]
[29,15,7]
[30,15,8]
[29,19,5]
[30,19,6]
[29,24,3]
[30,24,4]
[29,29,1]
[30,29,2]
41
[n, k, d]
[4,3,2]
[5,4,2]
[6,5,2]
[7,3,4]
[7,6,2]
[8,4,4]
[8,6,2]
[8,7,2]
[9,4,4]
[9,7,2]
[9,8,2]
[10,5,4]
[10,8,2]
[10,9,2]
[11,6,4]
[11,9,2]
[11,10,2]
[12,4,6]
[12,6,4]
[12,7,4]
[12,10,2]
[12,11,2]
[13,7,4]
[13,8,4]
[13,11,2]
[13,12,2]
[14,8,4]
[14,9,4]
[14,12,2]
[14,13,2]
[15,4,8]
[15,9,4]
[15,10,4]
[15,13,2]
[15,14,2]
[16,4,8]
[16,5,8]
[16,7,6]
[16,10,4]
s [n, k s, d]
1
[4,2,2]
1
[5,3,2]
1
[6,4,2]
1
[7,2,4]
1
[7,5,2]
1
[8,3,4]
1
[8,5,2]
1
[8,6,2]
1
[9,3,4]
1
[9,6,2]
1
[9,7,2]
1
[10,4,4]
1
[10,7,2]
1
[10,8,2]
1
[11,5,4]
1
[11,8,2]
1
[11,9,2]
1
[12,3,6]
1
[12,5,4]
1
[12,6,4]
1
[12,9,2]
1
[12,10,2]
1
[13,6,4]
1
[13,7,4]
1
[13,10,2]
1
[13,11,2]
1
[14,7,4]
1
[14,8,4]
1
[14,11,2]
1
[14,12,2]
1
[15,3,8]
1
[15,8,4]
1
[15,9,4]
1
[15,12,2]
1
[15,13,2]
1
[16,3,8]
1
[16,4,8]
1
[16,6,6]
1
[16,9,4]
42
[n, k, d]
[16,11,4]
[16,13,2]
[16,14,2]
[16,15,2]
[17,5,8]
[17,8,6]
[17,11,4]
[17,14,2]
[17,15,2]
[17,16,2]
[18,5,8]
[18,6,8]
[18,9,6]
[18,11,4]
[18,12,4]
[18,15,2]
s [n, k s, d]
1
[16,10,4]
1
[16,12,2]
1
[16,13,2]
1
[16,14,2]
1
[17,4,8]
1
[17,7,6]
1
[17,10,4]
1
[17,13,2]
1
[17,14,2]
1
[17,15,2]
1
[18,4,8]
1
[18,5,8]
1
[18,8,6]
1
[18,10,4]
1
[18,11,4]
1
[18,14,2]
43
[n, k, d]
[4,3,2]
[5,3,2]
[5,4,2]
[6,3,3]
[6,4,2]
[6,5,2]
[7,3,4]
[7,4,3]
[7,5,2]
[7,6,2]
[8,3,4]
[8,4,4]
[8,6,2]
[8,7,2]
[9,4,4]
[9,6,2]
[9,7,2]
[9,8,2]
[10,4,4]
[10,5,4]
[10,6,3]
[10,7,2]
[10,8,2]
[10,9,2]
[11,3,6]
[11,4,5]
[11,5,4]
[11,6,4]
[11,7,3]
[11,8,2]
[11,9,2]
[11,10,2]
[12,4,6]
[12,6,4]
[12,7,4]
[12,8,3]
[12,9,2]
[12,10,2]
[12,11,2]
s [n s, k s, d]
1
[3,2,2]
1
[4,2,2]
1
[4,3,2]
1
[5,2,3]
1
[5,3,2]
1
[5,4,2]
1
[6,2,4]
1
[6,3,3]
1
[6,4,2]
1
[6,5,2]
1
[7,2,4]
1
[7,3,4]
1
[7,5,2]
1
[7,6,2]
1
[8,3,4]
1
[8,5,2]
1
[8,6,2]
1
[8,7,2]
1
[9,3,4]
1
[9,4,4]
1
[9,5,3]
1
[9,6,2]
1
[9,7,2]
1
[9,8,2]
1
[10,2,6]
1
[10,3,5]
1
[10,4,4]
1
[10,5,4]
1
[10,6,3]
1
[10,7,2]
1
[10,8,2]
1
[10,9,2]
1
[11,3,6]
1
[11,5,4]
1
[11,6,4]
1
[11,7,3]
1
[11,8,2]
1
[11,9,2]
1
[11,10,2]
44
[n, k, d]
[13,4,6]
[13,6,4]
[13,7,4]
[13,8,4]
[13,9,3]
[13,10,2]
[13,11,2]
[13,12,2]
[14,3,8]
[14,4,7]
[14,5,6]
[14,6,5]
[14,7,4]
[14,8,4]
[14,9,4]
[14,10,3]
[14,11,2]
[14,12,2]
[14,13,2]
[15,4,8]
[15,5,7]
[15,6,6]
[15,7,5]
[15,8,4]
[15,9,4]
[15,10,4]
[15,11,3]
[15,12,2]
[15,13,2]
[15,14,2]
[16,4,8]
[16,5,8]
[16,7,6]
[16,8,5]
[16,9,4]
[16,10,4]
s [n s, k s, d]
1
[12,3,6]
1
[12,5,4]
1
[12,6,4]
1
[12,7,4]
1
[12,8,3]
1
[12,9,2]
1
[12,10,2]
1
[12,11,2]
1
[13,2,8]
1
[13,3,7]
1
[13,4,6]
1
[13,5,5]
1
[13,6,4]
1
[13,7,4]
1
[13,8,4]
1
[13,9,3]
1
[13,10,2]
1
[13,11,2]
1
[13,12,2]
1
[14,3,8]
1
[14,4,7]
1
[14,5,6]
1
[14,6,5]
1
[14,7,4]
1
[14,8,4]
1
[14,9,4]
1
[14,10,3]
1
[14,11,2]
1
[14,12,2]
1
[14,13,2]
1
[15,3,8]
1
[15,4,8]
1
[15,6,6]
1
[15,7,5]
1
[15,8,4]
1
[15,9,4]
45
[n, k, d]
[5,2,3]
[6,2,4]
[6,3,3]
[7,3,4]
[7,4,3]
[8,2,5]
[8,4,4]
[9,2,6]
[9,5,3]
[10,3,5]
[10,5,4]
[10,6,3]
[11,2,7]
[11,3,6]
[11,4,5]
[11,6,4]
[11,7,3]
[12,2,8]
[12,4,6]
[12,7,4]
[12,8,3]
[13,3,7]
[13,5,5]
[13,8,4]
[13,9,3]
[14,2,9]
[14,3,8]
[14,4,7]
[14,5,6]
[14,6,5]
[14,9,4]
[14,10,3]
[15,2,10]
[15,4,8]
[15,5,7]
[15,6,6]
[15,7,5]
[15,10,4]
[15,11,3]
s [n s, k, d s]
1
[4,2,2]
1
[5,2,3]
1
[5,3,2]
1
[6,3,3]
1
[6,4,2]
1
[7,2,4]
1
[7,4,3]
1
[8,2,5]
1
[8,5,2]
1
[9,3,4]
1
[9,5,3]
1
[9,6,2]
1
[10,2,6]
1
[10,3,5]
1
[10,4,4]
1
[10,6,3]
1
[10,7,2]
1
[11,2,7]
1
[11,4,5]
1
[11,7,3]
1
[11,8,2]
1
[12,3,6]
1
[12,5,4]
1
[12,8,3]
1
[12,9,2]
1
[13,2,8]
1
[13,3,7]
1
[13,4,6]
1
[13,5,5]
1
[13,6,4]
1
[13,9,3]
1
[13,10,2]
1
[14,2,9]
1
[14,4,7]
1
[14,5,6]
1
[14,6,5]
1
[14,7,4]
1
[14,10,3]
1
[14,11,2]
46
[n, k, d]
[16,5,8]
[16,7,6]
[16,8,5]
[16,11,4]
[17,2,11]
[17,3,9]
[17,6,7]
[17,8,6]
[17,9,5]
[17,12,3]
[18,2,12]
[18,3,10]
[18,6,8]
[18,7,7]
[18,9,6]
[18,12,4]
[18,13,3]
[19,4,9]
[19,7,8]
[19,8,7]
[19,10,5]
[19,13,4]
[19,14,3]
[20,2,13]
[20,3,11]
[20,4,10]
[20,5,9]
[20,8,8]
[20,9,7]
[20,10,6]
[20,11,5]
[20,14,4]
[20,15,3]
[21,2,14]
[21,3,12]
s [n s, k, d s]
1
[15,5,7]
1
[15,7,5]
1
[15,8,4]
1
[15,11,3]
1
[16,2,10]
1
[16,3,8]
1
[16,6,6]
1
[16,8,5]
1
[16,9,4]
1
[16,12,2]
1
[17,2,11]
1
[17,3,9]
1
[17,6,7]
1
[17,7,6]
1
[17,9,5]
1
[17,12,3]
1
[17,13,2]
1
[18,4,8]
1
[18,7,7]
1
[18,8,6]
1
[18,10,4]
1
[18,13,3]
1
[18,14,2]
1
[19,2,12]
1
[19,3,10]
1
[19,4,9]
1
[19,5,8]
1
[19,8,7]
1
[19,9,6]
1
[19,10,5]
1
[19,11,4]
1
[19,14,3]
1
[19,15,2]
1
[20,2,13]
1
[20,3,11]
47
48
[n1 , k1, d1 ]
[2,1,2]
[3,2,2]
[3,2,2]
[4,3,2]
[4,3,2]
[4,3,2]
[5,3,2]
[5,4,2]
[5,4,2]
[5,4,2]
[6,4,2]
[6,5,2]
[6,5,2]
[6,5,2]
[7,5,2]
[7,6,2]
[7,6,2]
[7,6,2]
[8,4,4]
[8,6,2]
[8,6,2]
[8,7,2]
[8,7,2]
[8,7,2]
[n2 , k2 , d2]
[2,1,2]
[2,1,2]
[3,2,2]
[3,2,2]
[4,2,2]
[4,3,2]
[4,3,2]
[4,3,2]
[5,3,2]
[5,4,2]
[5,4,2]
[5,4,2]
[6,4,2]
[6,5,2]
[6,5,2]
[6,5,2]
[7,5,2]
[7,6,2]
[4,1,4]
[7,6,2]
[8,6,2]
[7,6,2]
[8,6,2]
[8,7,2]
[n1 + n2 , k1 + k2 , min{d1 , d2 }]
[4,2,2]
[5,3,2]
[6,4,2]
[7,5,2]
[8,5,2]
[8,6,2]
[9,6,2]
[9,7,2]
[10,7,2]
[10,8,2]
[11,8,2]
[11,9,2]
[12,9,2]
[12,10,2]
[13,10,2]
[13,11,2]
[14,11,2]
[14,12,2]
[12,5,4]
[15,12,2]
[16,12,2]
[15,13,2]
[16,13,2]
[16,14,2]
49
50
51
[2n, k + 1, d]
[4,2,2]
[4,3,2]
[6,3,3]
[6,4,2]
[8,3,4]
[8,4,4]
[8,5,2]
[10,3,5]
[10,4,4]
[10,5,4]
[12,3,6]
[12,4,6]
[12,5,4]
[12,6,4]
[14,4,7]
[14,5,6]
[14,7,4]
[16,3,8]
[16,4,8]
[16,5,8]
[18,4,8]
[18,5,8]
[20,4,10]
[20,6,8]
[22,4,11]
[22,5,10]
[22,7,8]
[24,4,12]
[24,5,12]
[24,8,8]
[26,4,13]
[26,5,12]
[28,4,14]
[28,5,14]
[28,6,12]
[30,5,15]
[30,6,14]
[30,7,12]
Conclusion
In general, the binary linear codes for small n, in our cases, n 30, and all k,
have its optimality. In all these cases, the upper bound of d is equal to the lower
bound of d. But, for big n, n > 30, the maximum d found in many cases are less
than the upper bound d. It is of great challenge to discover these new optimal codes.
There will be even a greater discovery if we are able to develop an algorithm to find
optimal linear codes.
Also, those binary linear codes that has not reached its optimality, are often those
codes with an odd upper bound. And, often then not, the lower bound, that was
found is often an even number. One of the complexity is also due that we have so far
given many constructions that can generate good codes that have a maximum even d.
Construction such as extending, shortening, truncating and the u(u+v)-Construction
often generate good codes that produces even d, Thus, it is of great interest to construct good codes that may end with a maximum odd d.
52
Bibliography
[1]
E.F. Assmus Jr, J.D. Key, Designs and Their Codes, Cambridge, 1992.
[2]
[4]
53