The self-dual codes form one of the important classes of linear codes because of their rich algebraic structure and their close connections with other combinatorial configurations like block designs, lattices, graphs, etc.
1. Construction Methods
for Self-Dual Codes
Stefka Bouyuklieva Iliya Bouyukliev
Veliko Tarnovo University Bulgarian Academy of Sciences
BULGARIA
10 July 2014 – p. 1/26
2. 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
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 - 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
5. 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
6. 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
7. 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
9. 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
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, 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
15. 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
16. 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
17. 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
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 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
24. 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
25. 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
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