• Aucun résultat trouvé

Sphere Packing Bound , covering radius , and perfect codes

Dans le document Fundamentals of Error-Correcting Codes (Page 67-72)

Team FLY

1.12 Sphere Packing Bound , covering radius , and perfect codes

The minimum distancedis a simple measure of the goodness of a code. For a given length and number of codewords, a fundamental problem in coding theory is to produce a code with the largest possibled. Alternatively, givennandd, determine the maximum number Aq(n,d) of codewords in a code overFqof lengthnand minimum distance at leastd. The numberA2(n,d) is also denoted byA(n,d). The same question can be asked for linear codes.

Namely, what is the maximum numberBq(n,d) (B(n,d) in the binary case) of codewords in a linear code overFq of lengthn and minimum weight at leastd? Clearly, Bq(n,d)Aq(n,d). For modest values ofn andd, A(n,d) and B(n,d) have been determined and tabulated; see Chapter 2.

The fact that the spheres of radiust about codewords are pairwise disjoint immediately implies the following elementary inequality, commonly referred to as theSphere Packing Boundor theHamming Bound.

Theorem 1.12.1 (Sphere Packing Bound) Bq(n,d)Aq(n,d)qn

t i=0

n i

(q−1)i ,

where t = (d−1)/2.

Proof: LetCbe a (possibly nonlinear) code overFqof lengthnand minimum distanced.

Suppose thatCcontainsM codewords. By Theorem 1.11.2, the spheres of radiust about distinct codewords are disjoint. As there areα=t

i=0

n

i

(q−1)itotal vectors in any one of these spheres by (1.11) and the spheres are disjoint,cannot exceed the numberqn

of vectors inFnq. The result is now clear.

From the proof of the Sphere Packing Bound, we see that when we get equality in the bound, we actually fill the spaceFnqwith disjoint spheres of radiust. In other words, every vector inFnq is contained in precisely one sphere of radiust centered about a codeword.

When we have a code for which this is true, the code is calledperfect.

Example 1.12.2 Recall that the Hamming codeHq,r overFq is an [n,k,3] code, where n=(qr−1)/(q−1) andk=nr. Thent =1 and

qn t

i=0

n i

(q−1)i

= qn

1+n(q−1) = qn qr =qk.

ThusHq,ris perfect.

Exercise 78 Prove that the [23,12,7] binary and the [11,6,5] ternary Golay codes are

perfect.

49 1.12 Sphere Packing Bound,covering radius,and perfect codes

Exercise 79 Show that the following codes are perfect:

(a) the codesC=Fnq,

(b) the codes consisting of exactly one codeword (the zero vector in the case of linear codes),

(c) the binary repetition codes of odd length, and

(d) the binary codes of odd length consisting of a vectorcand the complementary vector cwith 0s and 1s interchanged.

These codes are calledtrivial perfect codes.

Exercise 80 Prove that a perfectt-error-correcting linear code of lengthn has precisely n

i

cosets of weightifor 0≤itand no other cosets. Hint: How many weightivectors inFnq are there? Could distinct vectors of weightsi and j withit and jt be in the same coset? Use the equality in the Sphere Packing Bound.

So the Hamming codes are perfect, as are two of the Golay codes, as shown in Exercise 78.

Furthermore, Theorem 1.8.2 shows that all linear codes of the same length, dimension, and minimum weight as a Hamming code are equivalent. Any of these codes can be called the Hamming code. There are also some trivial perfect codes as described in Exercise 79. Thus we have part of the proof of the following theorem.

Theorem 1.12.3

(i) There exist perfect single error-correcting codes overFq which are not linear and all such codes have parameters corresponding to those of the Hamming codes,namely, length n=(qr−1)/(q−1)with qnr codewords and minimum distance3. The only perfect single error-correcting linear codes overFqare the Hamming codes.

(ii) The only nontrivial perfect multiple error-correcting codes have the same length, number of codewords,and minimum distance as either the[23, 12, 7]binary Golay code or the[11,6,5]ternary Golay code.

(iii) Any binary(respectively,ternary)possibly nonlinear code with212(respectively, 36) vectors containing the0 vector with length23 (respectively, 11)and minimum dis-tance7 (respectively, 5)is equivalent to the[23,12,7]binary(respectively, [11,6,5]

ternary)Golay code.

The classification of the perfect codes as summarized in this theorem was a significant and difficult piece of mathematics, in which a number of authors contributed. We will prove part (iii) in Chapter 10. The rest of the proof can be found in [137, Section 5]. A portion of part (ii) is proved in Exercise 81.

Exercise 81 The purpose of this exercise is to prove part of Theorem 1.12.3(ii). LetCbe an [n,k,7] perfect binary code.

(a) Using equality in the Sphere Packing Bound, prove that (n+1)[(n+1)2−3(n+1)+8]=3·2nk+1.

(b) Prove thatn+1 is either 2bor 3·2bwhere, in either case,bnk+1.

(c) Prove thatb<4.

(d) Prove thatn=23 orn=7.

(e) Name two codes that are perfect [n,k,7] codes, one with n=7 and the other with

n=23.

One can obtain nonlinear perfect codes by taking a coset of a linear perfect code; see Exercise 82. Theorem 1.12.3 shows that all multiple error-correcting nonlinear codes are cosets of the binary Golay code of length 23 or the ternary Golay code of length 11. On the other hand, there are nonlinear single error-correcting codes which are not cosets of Hamming codes; these were first constructed by Vasil’ev [338].

Exercise 82 Prove that a coset of a linear perfect code is also a perfect code.

LetC be an [n,k,d] code over Fq and lett= (d−1)/2. When you do not have a perfect code, in order to fill the spaceFqnwith spheres centered at codewords, the spheres must have radius larger thant. Of course when you increase the sphere size, not all spheres will be pairwise disjoint. We define thecovering radiusρ=ρ(C) to be the smallest integer s such thatFnq is the union of the spheres of radius s centered at the codewords of C. Equivalently,

ρ(C)=max

xFnq

minc∈C d(x,c).

Obviously,tρ(C) andt=ρ(C) if and only ifCis perfect. By Theorem 1.11.4, the packing radius of a code is the largest radius of spheres centered at codewords so that the spheres are disjoint. So a code is perfect if and only if its covering radius equals its packing radius.

If the code is not perfect, its covering radius is larger than its packing radius.

For a nonlinear codeC, the covering radiusρ(C) is defined in the same way to be ρ(C)=max

xFnq

minc∈C d(x,c).

Again ifdis the minimum distance ofCandt= (d−1)/2, thentρ(C) andt=ρ(C) if and only ifCis perfect. The theorems that we prove later in this section are only for linear codes.

IfCis a code with packing radiustand covering radiust+1,Cis calledquasi-perfect.

There are many known linear and nonlinear quasi-perfect codes (e.g. certain double error-correcting BCH codes and some punctured Preparata codes). However, unlike perfect codes, there is no general classification.

Example 1.12.4 By Exercise 56, the binary [8,4,4] code is shown to be unique, in the sense that all such codes are equivalent toH3. In Example 1.11.7, we give the complete coset weight distribution of this code. Since there are no cosets of weight greater than 2, the covering radius,ρ(H3), is 2. Since the packing radius ist = (4−1)/2 =1, this code is quasi-perfect. Both the covering and packing radius of the nonextended Hamming codeH3

equal 1. This is an illustration of the fact that extending a binary code will not increase its packing radius (error-correcting capability) but will increase its covering radius. See

Theorem 1.12.6(iv) below.

51 1.12 Sphere Packing Bound,covering radius,and perfect codes

Recall that the weight of a coset of a codeCis the smallest weight of a vector in the coset.

The definition of the covering radius implies the following characterization of the covering radius of a linear code in terms of coset weights and in terms of syndromes.

Theorem 1.12.5 LetCbe a linear code with parity check matrix H . Then:

(i) ρ(C)is the weight of the coset of largest weight;

(ii) ρ(C)is the smallest number s such that every nonzero syndrome is a combination of s or fewer columns of H,and some syndrome requires s columns.

Exercise 83 Prove Theorem 1.12.5.

We conclude this chapter by collecting some elementary facts about the covering radius of codes and coset leaders, particularly involving codes arising in Section 1.5. More on covering radius can be found in Chapter 11.

Theorem 1.12.6 LetCbe an[n,k]code overFq. L etCbe the extension ofC,and letCbe a code obtained fromCby puncturing on some coordinate. The following hold:

(i) IfC=C1C2,thenρ(C)=ρ(C1)+ρ(C2).

(ii) ρ(C)=ρ(C)orρ(C)=ρ(C)−1.

(iii) ρ(C)=ρ(C)orρ(C)=ρ(C)+1.

(iv) If q=2,thenρ(C)=ρ(C)+1.

(v) Assume thatxis a coset leader ofC. Ifx∈Fqnall of whose nonzero components agree with the same components ofx,thenxis also a coset leader ofC. In particular,if there is a coset of weight s,there is also a coset of any weight less than s.

Proof: The proofs of the first three assertions are left as exercises.

For (iv), letx=x1· · ·xnbe a coset leader ofC. Letx=x1· · · xn. By part (iii), it suffices to show thatxis a coset leader ofC. Letc=c1· · ·cnC, and letc=c1· · ·cncn+1be its extension. Ifchas even weight, then wt(c+x)=wt(c+x)+1≥wt(x)+1. Assumec has odd weight. Then wt(c+x)=wt(c+x). Ifxhas even (odd) weight, thenc+xhas odd (even) weight by Theorem 1.4.3, and so wt(c+x)>wt(x) asxis a coset leader. Thus in all cases, wt(c+x)≥wt(x)+1=wt(x) and soxis a coset leader ofC.

To prove (v), it suffices, by induction, to verify the result whenx=x1· · ·xnis a coset leader andx=x1· · ·xn, wherexj =xjfor allj =iandxi=xi=0. Notice that wt(x)= wt(x)+1. Suppose thatxis not a coset leader. Then there is a codewordcCsuch that x+cis a coset leader and hence

wt(x+c)≤wt(x)−1=wt(x)−2. (1.13)

But asxandxdisagree in only one coordinate, wt(x+c)≤wt(x+c)+1. Using (1.13), this implies that wt(x+c)≤wt(x)−1, a contradiction asxis a coset leader.

Exercise 84 Prove parts (i), (ii), and (iii) of Theorem 1.12.6.

The next example illustrates that it is possible to extend or puncture a code and leave the covering radius unchanged. Compare this to Theorem 1.12.6(ii) and (iii).

Example 1.12.7 LetC be the ternary code with generator matrix [1 1 −1]. Computing the covering radius, we see thatρ(C)=ρ(C)=2. IfD=Cand we punctureDon the last

coordinate to obtainD =C, we haveρ(D)=ρ(D).

In the binary case by Theorem 1.12.6(iv), whenever we extend a code, we increase the covering radius by 1. But when we puncture a binary code we may not reduce the covering radius.

Example 1.12.8 LetCbe the binary code with generator matrix 1 0 1 1

0 1 1 1

,

and letC be obtained fromC by puncturing on the last coordinate. It is easy to see that ρ(C)=ρ(C)=1. Also ifDis the extension ofC,ρ(D)=2, consistent with Theorem

1.12.6.

Dans le document Fundamentals of Error-Correcting Codes (Page 67-72)