Construction Methods
for Self-Dual Codes
Stefka Bouyuklieva Iliya Bouyukliev
Veliko Tarnovo University Bulgarian Academy of Sciences
BULGARIA
10 July 2014 – p. 1/26
Main Problems
1. Construction of self-dual codes with given length
and minimum distance.
2. Classification of all self-dual codes with given
length and minimum distance.
3. Classification of all self-dual codes with given
length and minimum distance, invariant under a
given permutation group.
4. Classification of all self-dual codes for a given
length.
10 July 2014 – p. 2/26
Definitions
• Fq - finite field with q elements;
• Fn
q - n-dimensional vector space over Fq;
• Weight of a vector x ∈ Fn
q: wt(x) = |{i|xi = 0}|;
• Linear code of length n and dimension k -
k-dimensional subspace of Fn
q;
• Minimum weight of a linear code C:
d(C) = min{wt(x)|x ∈ C, x = 0}
• C - a linear [n,k,d]q code.
10 July 2014 – p. 3/26
C - a linear [n,k,d] code
• Generator matrix G of C - a k ×n matrix whose
rows form a basis of C as a linear subspace of Fn
q;
• Check matrix H of C - a (n−k)×n matrix such
that x ∈ C ⇐⇒ HxT = 0;
Example: The repetition code C1 = {0000,1111}
G(C1) = (1111), H(C1) =


1 1 0 0
1 0 1 0
1 0 0 1

 = G(C2).
C2 = {0000,1100,1010,1001,...,0011,1111}.
C2 is a linear [4,3,2] code, C2 = C⊥
1 .
10 July 2014 – p. 4/26
C - a binary linear [n,k,d] code
• C - self-orthogonal code if C ⊆ C⊥
• C - self-dual code if C = C⊥
• Any self-dual code has dimension k = n/2
• All codewords in a binary self-orthogonal code
have even weights
• Doubly-even code - if 4 | wt(v) ∀v ∈ C
• Singly-even self-dual code - if ∃v ∈ C :
wt(v) ≡ 2 (mod 4)
10 July 2014 – p. 5/26
Self-dual codes
Example: The extended Hamming code - [8,4,4]
G =




1 0 0 0 0 1 1 1
0 1 0 0 1 0 1 1
0 0 1 0 1 1 0 1
0 0 0 1 1 1 1 0



.
H8 consists of: 14 codewords of weight 4,
the all-ones vector (weight 8), the zero vector
10 July 2014 – p. 6/26
Extremal self-dual codes
If C is a binary self-dual [n,n/2,d] code then
d ≤ 4[n/24]+4
except when n ≡ 22 (mod 24) when
d ≤ 4[n/24]+6
When n is a multiple of 24, any code meeting the
bound must be doubly-even.
10 July 2014 – p. 7/26
Extremal self-dual codes
• n=8, d=4 - extended Hamming code
• n=16, d=4 - two codes
• n=24, d=8 - extended Golay code
• n=32, d=8 - five codes
• n=40, d=8 - many codes
• n=48,d=12 extended quadratic-residue code
• n=56, n=64, d=12 - many codes
• n=72, d=16 - ?
10 July 2014 – p. 8/26
Optimal self-dual codes
A self-dual code is called optimal if it has the largest
minimum weight among all self-dual codes of that
length.
• Any extremal self-dual code is optimal.
• For some lengths, no extremal self-dual codes
exist!
• There are no extremal self-dual codes of lengths
2, 4, 6, 10, 26, 28, 30, 34, 50, 52, 54, 58, ...
Conjecture: The optimal self-dual codes of lengths
24m+r for r = 2, 4, 6, and 10 are not extremal.
10 July 2014 – p. 9/26
Equivalent codes; Aut(C)
• Two binary codes C and C′ are equivalent if there
is a permutation π ∈ Sn: C′ = π(C)
• Automorphism of C is a permutation of the
coordinates that preserves C
• All automorphisms of C form a group Aut(C)
• Extended Golay code: Aut(g24) = M24 -
5-transitive and |M24| = 210.33.5.7.11.23
• Extended quadratic-residue [48,24,12] code:
Aut(q48) = PSL(2,47) - 2-transitive and
|PSL(2,47)| = 25.3.23.47
10 July 2014 – p. 10/26
History
• 1975, Vera Pless – n ≤ 20
• 1980-90, Conway, Pless, Sloane – n ≤ 30
• 2006, Bilous, Van Rees, – n = 32,34
• 2008, Melchor, Gaborit – n = 36 (Optimal)
• 2011, Harada, Munemasa – n = 36
• 2011, Harada, Munemasa;
C. Aguilar-Melchor, Ph. Gaborit, Jon-Lark Kim,
L. Sok, P. Sole – n = 38 (Optimal)
• 2011, Betsumiya, Harada, Munemasa – n = 40
(Doubly even )
10 July 2014 – p. 11/26
Gluing theory







G1 0
G2
...
0 Gt
X







C1,C2,...,Ct - self-orthogonal codes
If u ∈ X then u = (u1u2 ...ut), ui ∈ C⊥
i
10 July 2014 – p. 12/26
Gluing theory - examples
[18,9,4] self-dual codes:
111100
001111
111100
001111
111100
001111
010101 000011 010110
010110 010101 000011
000011 000011 000011
1111000000
0011110000
0000111100
0000001111
1110100
0111010
0011101
0101010101 0000000 1
0101010110 1111111 0
10 July 2014 – p. 13/26
The number of binary SD codes
n ♯I ♯II dmax,I ♯max,I dmax,II ♯max,II
24 46 9 6 1 8 1
26 103 6 1
28 261 6 3
30 731 6 13
32 3 210 85 8 3 8 5
34 24 147 6 938
36 519 492 8 41
38 38 682 183*BB 8 2 744
40 8 250 058 081*BDM 94 343 8 10 200 655*BBH 8 16 470
*BBH - Bouyuklieva, Bouyukliev, Harada
*BDM - Bouyukliev, Dzhumalieva-Stoeva, Monev
10 July 2014 – p. 14/26
Main construction
If C is a binary [n = 2k > 2,k,d] SD code, then
C is equivalent to a code with a generator matrix
G =





x1 ...xk−1 00...0 1 0
x1 x1
Ik−1 A
...
...
xk−1 xk−1





where the matrix (Ik−1|A) generates a self-dual code
of length n−2.
10 July 2014 – p. 15/26
Main construction
How to construct only inequivalent [n,k] SD codes
starting from all inequivalent [n−2,k−1] SD codes?
1. How to construct only inequivalent child-codes of
one [n−2,k −1] code?
2. If we take two inequivalent [n−2,k −1] codes,
how to extend them such that the constructed
child-codes to be inequivalent?
10 July 2014 – p. 16/26
Equivalence of the child-codes
Let C1 be a self-dual code of length n−2 with a
generator matrix G1 and automorphism group
Aut(C1). Then Aut(C1) acts on the set Fk−1
2 :
G1P = ApG1, P ∈ Aut(C1), AP ∈ GL(k −1,2)
a → APaT
, a ∈ Fk−1
2
Theorem: The matrices (G1 aT aT ) and (G1 bT bT )
generate equivalent codes ⇐⇒ a and b belong to
the same orbit under the action of Aut(C1) on Fk−1
2 .
Child(C1) - the set of all inequivalen child-codes of C1
10 July 2014 – p. 17/26
The main idea
• G - finite group
• G acts on a set Ω and defines an equivalence
relation:
g(a) ∼= a; g ∈ G
• ρ : Ω → Ω - canonical map
b ∼= a ⇒ ρ(b) ≡ ρ(a) ≡ ra ∈ Ω
• ra - canonical representative of the equivalence
class
10 July 2014 – p. 18/26
Ω = { SD codes of length ≤ n′
}
σC ∈ Sn - a canonical permutation of C, if
σC(C) = ρ(C)
Example:
fC : Sn → Z
π(C) = C′
→ G′
C → v′
C ∈ F2kn
2 → fC(π)
G′
C - matrix whose rows are the lexicographically
ordered codewords
v′
C - a vector constructed by gluing the rows of G′
C
If fC(σ) = max{fC(π)|π ∈ Sn} then ρ(C) = σ(C)
10 July 2014 – p. 19/26
Parent test
• C1 - a self-dual [n−2,n/2−1] code;
• B ∈ Child(C1);
• ρ(B) - the canonical representative of B;
• σ - a canonical permutation of B;
• 1 ≤ c1,c2 ≤ n, σ(c1) = n−1, σ(c2) = n;
If there is an automorphism τ of B such that
{τ(c1),τ(c2)} = {n−1,n} then the code B passes
the parent test.
Obviously, the canonical representative B of one
equivalence class passes the parent test.
10 July 2014 – p. 20/26
Parent test
Lemma 1: If B1 and B2 are two equivalent self-dual
[n = 2k,k] codes which pass the parent test,
their parent-codes are also equivalent.
Lemma 2: Let C1 and C2 be two equivalent SD
codes of dimension r. Then for any child-code B1
of C1 which passes the parent test, there is
a child-code B2 of C2, equivalent to B1,
such that B2 also passes the parent test.
10 July 2014 – p. 21/26
The algorithm
Procedure Augmentation(A: self-dual code; k: dimension);
{ If the dimension of A is equal to k then
{ Uk := {Uk ∪A}; PRINT (A,|Aut(A)|); };
If the dimension of A is less than k then
{ find the set Child(A) of all inequivalent children of A;
(using already known Aut(A))
For all codes B from the set Child(A) do the following:
if B passes the parent test then Augmentation(B,k); }
}
Procedure Main;
INPUT: Ur – all NBSDC [2r,r]; OUTPUT: Uk – all NBSDC [2k,k];
Uk := (the empty set);
for all codes A ∈ Ur do the following:
{ find the automorphism group of A; Augmentation(A,k);}
10 July 2014 – p. 22/26
Advantages of the algorithm
• Construction and test for equivalence in one.
• Possibilities for use of invariants in the search of
canonical representative and canonical
permutation.
• Easy for parallelization.
• Recursive construction (we can start from the
trivial code).
10 July 2014 – p. 23/26
The number of binary SD codes
The number of all binary SD codes of even length n
is
N(n) =
n/2−1
∏
i=1
(2i
+1) =
r(n)
∑
i=1
n!
| Aut(Ci) |
,
where C1,C2,...,Cr(n) are the inequivalent binary SD
codes of length n
⇒ r(n) ≥
∏
n/2−1
i=1 (2i +1)
n!
∑
C∈U
n!
|Aut(C)|
|{x ∈C|wt(x) = d}| =
n
d
n/2−2
∏
i=1
(2i
+1).
10 July 2014 – p. 24/26
d = 2
There is one-to-one correspondence between the set
of all inequivalent self-dual [n,n/2] codes and the set
of all inequivalent self-dual [n+2,n/2+1,2] codes
C → (00|C)∪(11|C)
r(n,d) - the number of the inequivalent binary
[n,n/2,d] self-dual codes
⇒ r(n+2,2) = r(n)
10 July 2014 – p. 25/26
d = 4
If C is a binary [n = 2k > 2,k,4] SD code, then C
is equivalent to a code with a generator matrix
G =


11 00···0 00···0 1 1
01 00···0 v 0 1
00 Ik−2 A aT aT


where the matrix (Ik−2|A) generates a self-dual code
of length n−4.
10 July 2014 – p. 26/26

Stefka iliya sofia2014

  • 1.
    Construction Methods for Self-DualCodes Stefka Bouyuklieva Iliya Bouyukliev Veliko Tarnovo University Bulgarian Academy of Sciences BULGARIA 10 July 2014 – p. 1/26
  • 2.
    Main Problems 1. Constructionof self-dual codes with given length and minimum distance. 2. Classification of all self-dual codes with given length and minimum distance. 3. Classification of all self-dual codes with given length and minimum distance, invariant under a given permutation group. 4. Classification of all self-dual codes for a given length. 10 July 2014 – p. 2/26
  • 3.
    Definitions • Fq -finite field with q elements; • Fn q - n-dimensional vector space over Fq; • Weight of a vector x ∈ Fn q: wt(x) = |{i|xi = 0}|; • Linear code of length n and dimension k - k-dimensional subspace of Fn q; • Minimum weight of a linear code C: d(C) = min{wt(x)|x ∈ C, x = 0} • C - a linear [n,k,d]q code. 10 July 2014 – p. 3/26
  • 4.
    C - alinear [n,k,d] code • Generator matrix G of C - a k ×n matrix whose rows form a basis of C as a linear subspace of Fn q; • Check matrix H of C - a (n−k)×n matrix such that x ∈ C ⇐⇒ HxT = 0; Example: The repetition code C1 = {0000,1111} G(C1) = (1111), H(C1) =   1 1 0 0 1 0 1 0 1 0 0 1   = G(C2). C2 = {0000,1100,1010,1001,...,0011,1111}. C2 is a linear [4,3,2] code, C2 = C⊥ 1 . 10 July 2014 – p. 4/26
  • 5.
    C - abinary linear [n,k,d] code • C - self-orthogonal code if C ⊆ C⊥ • C - self-dual code if C = C⊥ • Any self-dual code has dimension k = n/2 • All codewords in a binary self-orthogonal code have even weights • Doubly-even code - if 4 | wt(v) ∀v ∈ C • Singly-even self-dual code - if ∃v ∈ C : wt(v) ≡ 2 (mod 4) 10 July 2014 – p. 5/26
  • 6.
    Self-dual codes Example: Theextended Hamming code - [8,4,4] G =     1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0    . H8 consists of: 14 codewords of weight 4, the all-ones vector (weight 8), the zero vector 10 July 2014 – p. 6/26
  • 7.
    Extremal self-dual codes IfC is a binary self-dual [n,n/2,d] code then d ≤ 4[n/24]+4 except when n ≡ 22 (mod 24) when d ≤ 4[n/24]+6 When n is a multiple of 24, any code meeting the bound must be doubly-even. 10 July 2014 – p. 7/26
  • 8.
    Extremal self-dual codes •n=8, d=4 - extended Hamming code • n=16, d=4 - two codes • n=24, d=8 - extended Golay code • n=32, d=8 - five codes • n=40, d=8 - many codes • n=48,d=12 extended quadratic-residue code • n=56, n=64, d=12 - many codes • n=72, d=16 - ? 10 July 2014 – p. 8/26
  • 9.
    Optimal self-dual codes Aself-dual code is called optimal if it has the largest minimum weight among all self-dual codes of that length. • Any extremal self-dual code is optimal. • For some lengths, no extremal self-dual codes exist! • There are no extremal self-dual codes of lengths 2, 4, 6, 10, 26, 28, 30, 34, 50, 52, 54, 58, ... Conjecture: The optimal self-dual codes of lengths 24m+r for r = 2, 4, 6, and 10 are not extremal. 10 July 2014 – p. 9/26
  • 10.
    Equivalent codes; Aut(C) •Two binary codes C and C′ are equivalent if there is a permutation π ∈ Sn: C′ = π(C) • Automorphism of C is a permutation of the coordinates that preserves C • All automorphisms of C form a group Aut(C) • Extended Golay code: Aut(g24) = M24 - 5-transitive and |M24| = 210.33.5.7.11.23 • Extended quadratic-residue [48,24,12] code: Aut(q48) = PSL(2,47) - 2-transitive and |PSL(2,47)| = 25.3.23.47 10 July 2014 – p. 10/26
  • 11.
    History • 1975, VeraPless – n ≤ 20 • 1980-90, Conway, Pless, Sloane – n ≤ 30 • 2006, Bilous, Van Rees, – n = 32,34 • 2008, Melchor, Gaborit – n = 36 (Optimal) • 2011, Harada, Munemasa – n = 36 • 2011, Harada, Munemasa; C. Aguilar-Melchor, Ph. Gaborit, Jon-Lark Kim, L. Sok, P. Sole – n = 38 (Optimal) • 2011, Betsumiya, Harada, Munemasa – n = 40 (Doubly even ) 10 July 2014 – p. 11/26
  • 12.
    Gluing theory        G1 0 G2 ... 0Gt X        C1,C2,...,Ct - self-orthogonal codes If u ∈ X then u = (u1u2 ...ut), ui ∈ C⊥ i 10 July 2014 – p. 12/26
  • 13.
    Gluing theory -examples [18,9,4] self-dual codes: 111100 001111 111100 001111 111100 001111 010101 000011 010110 010110 010101 000011 000011 000011 000011 1111000000 0011110000 0000111100 0000001111 1110100 0111010 0011101 0101010101 0000000 1 0101010110 1111111 0 10 July 2014 – p. 13/26
  • 14.
    The number ofbinary SD codes n ♯I ♯II dmax,I ♯max,I dmax,II ♯max,II 24 46 9 6 1 8 1 26 103 6 1 28 261 6 3 30 731 6 13 32 3 210 85 8 3 8 5 34 24 147 6 938 36 519 492 8 41 38 38 682 183*BB 8 2 744 40 8 250 058 081*BDM 94 343 8 10 200 655*BBH 8 16 470 *BBH - Bouyuklieva, Bouyukliev, Harada *BDM - Bouyukliev, Dzhumalieva-Stoeva, Monev 10 July 2014 – p. 14/26
  • 15.
    Main construction If Cis a binary [n = 2k > 2,k,d] SD code, then C is equivalent to a code with a generator matrix G =      x1 ...xk−1 00...0 1 0 x1 x1 Ik−1 A ... ... xk−1 xk−1      where the matrix (Ik−1|A) generates a self-dual code of length n−2. 10 July 2014 – p. 15/26
  • 16.
    Main construction How toconstruct only inequivalent [n,k] SD codes starting from all inequivalent [n−2,k−1] SD codes? 1. How to construct only inequivalent child-codes of one [n−2,k −1] code? 2. If we take two inequivalent [n−2,k −1] codes, how to extend them such that the constructed child-codes to be inequivalent? 10 July 2014 – p. 16/26
  • 17.
    Equivalence of thechild-codes Let C1 be a self-dual code of length n−2 with a generator matrix G1 and automorphism group Aut(C1). Then Aut(C1) acts on the set Fk−1 2 : G1P = ApG1, P ∈ Aut(C1), AP ∈ GL(k −1,2) a → APaT , a ∈ Fk−1 2 Theorem: The matrices (G1 aT aT ) and (G1 bT bT ) generate equivalent codes ⇐⇒ a and b belong to the same orbit under the action of Aut(C1) on Fk−1 2 . Child(C1) - the set of all inequivalen child-codes of C1 10 July 2014 – p. 17/26
  • 18.
    The main idea •G - finite group • G acts on a set Ω and defines an equivalence relation: g(a) ∼= a; g ∈ G • ρ : Ω → Ω - canonical map b ∼= a ⇒ ρ(b) ≡ ρ(a) ≡ ra ∈ Ω • ra - canonical representative of the equivalence class 10 July 2014 – p. 18/26
  • 19.
    Ω = {SD codes of length ≤ n′ } σC ∈ Sn - a canonical permutation of C, if σC(C) = ρ(C) Example: fC : Sn → Z π(C) = C′ → G′ C → v′ C ∈ F2kn 2 → fC(π) G′ C - matrix whose rows are the lexicographically ordered codewords v′ C - a vector constructed by gluing the rows of G′ C If fC(σ) = max{fC(π)|π ∈ Sn} then ρ(C) = σ(C) 10 July 2014 – p. 19/26
  • 20.
    Parent test • C1- a self-dual [n−2,n/2−1] code; • B ∈ Child(C1); • ρ(B) - the canonical representative of B; • σ - a canonical permutation of B; • 1 ≤ c1,c2 ≤ n, σ(c1) = n−1, σ(c2) = n; If there is an automorphism τ of B such that {τ(c1),τ(c2)} = {n−1,n} then the code B passes the parent test. Obviously, the canonical representative B of one equivalence class passes the parent test. 10 July 2014 – p. 20/26
  • 21.
    Parent test Lemma 1:If B1 and B2 are two equivalent self-dual [n = 2k,k] codes which pass the parent test, their parent-codes are also equivalent. Lemma 2: Let C1 and C2 be two equivalent SD codes of dimension r. Then for any child-code B1 of C1 which passes the parent test, there is a child-code B2 of C2, equivalent to B1, such that B2 also passes the parent test. 10 July 2014 – p. 21/26
  • 22.
    The algorithm Procedure Augmentation(A:self-dual code; k: dimension); { If the dimension of A is equal to k then { Uk := {Uk ∪A}; PRINT (A,|Aut(A)|); }; If the dimension of A is less than k then { find the set Child(A) of all inequivalent children of A; (using already known Aut(A)) For all codes B from the set Child(A) do the following: if B passes the parent test then Augmentation(B,k); } } Procedure Main; INPUT: Ur – all NBSDC [2r,r]; OUTPUT: Uk – all NBSDC [2k,k]; Uk := (the empty set); for all codes A ∈ Ur do the following: { find the automorphism group of A; Augmentation(A,k);} 10 July 2014 – p. 22/26
  • 23.
    Advantages of thealgorithm • Construction and test for equivalence in one. • Possibilities for use of invariants in the search of canonical representative and canonical permutation. • Easy for parallelization. • Recursive construction (we can start from the trivial code). 10 July 2014 – p. 23/26
  • 24.
    The number ofbinary SD codes The number of all binary SD codes of even length n is N(n) = n/2−1 ∏ i=1 (2i +1) = r(n) ∑ i=1 n! | Aut(Ci) | , where C1,C2,...,Cr(n) are the inequivalent binary SD codes of length n ⇒ r(n) ≥ ∏ n/2−1 i=1 (2i +1) n! ∑ C∈U n! |Aut(C)| |{x ∈C|wt(x) = d}| = n d n/2−2 ∏ i=1 (2i +1). 10 July 2014 – p. 24/26
  • 25.
    d = 2 Thereis one-to-one correspondence between the set of all inequivalent self-dual [n,n/2] codes and the set of all inequivalent self-dual [n+2,n/2+1,2] codes C → (00|C)∪(11|C) r(n,d) - the number of the inequivalent binary [n,n/2,d] self-dual codes ⇒ r(n+2,2) = r(n) 10 July 2014 – p. 25/26
  • 26.
    d = 4 IfC is a binary [n = 2k > 2,k,4] SD code, then C is equivalent to a code with a generator matrix G =   11 00···0 00···0 1 1 01 00···0 v 0 1 00 Ik−2 A aT aT   where the matrix (Ik−2|A) generates a self-dual code of length n−4. 10 July 2014 – p. 26/26