Kody doskonałe

Transkrypt

Kody doskonałe
POLITECHNIKA WARSZAWSKA
WYDZIAŁ MATEMATYKI
I NAUK INFORMACYJNYCH
PRACA DYPLOMOWA MAGISTERSKA
MATEMATYKA
Kody doskonałe
Autor:
Bogumił Buczkowski
nr albumu: 190774
Promotor: dr inż. Agata Pilitowska
Warszawa, grudzień 2009
.............................................
.............................................
podpis promotora
podpis autora
Wst˛ep
W obecnych czasach niezwykle istotna˛ rol˛e odgrywa przesyłanie i przechowywanie
informacji. W celu zwi˛ekszenia bezpieczeństwa i niezawodności przekazu powszechnie stosuje si˛e różnego rodzaju metody kodowania i szyfrowania. Na przykład do oznaczania produktów wykorzystywane sa˛ kody kreskowe, każda˛ jednostkowa˛ osob˛e fizyczna˛ możemy rozpoznać po numerze PESEL, zapis na nośnikach danych odbywa
si˛e przy użyciu odpowiedniego kodowania. Kody stosuje si˛e powszechnie w telekomunikacji czy podczas łaczności
˛
z sondami kosmicznymi. Zastosowanie kodowania w
procesie przesyłania informacji umożliwia zwi˛ekszenie niezawodności przekazu. Kody korekcyjne sa˛ jedyna˛ metoda˛ poprawienia wierności transmisji tam, gdzie retransmisja bł˛ednego sygnału jest niemożliwa˛ np. w łaczności
˛
satelitarnej. W praktyce ważne
jest, aby zastosowana metoda kodowania minimalizowała prawdopodobieństwo bł˛ednego przekazu oraz umożliwiała łatwe wykrycie i poprawienie ewentualnych bł˛edów,
gdyż cz˛esto odtworzenie danych w inny sposób jest niemożliwe.
Powszechnie stosowane w praktyce sa˛ tzw. kody blokowe, w których słowa kodowe
sa˛ ustalonej długości, a zbiór C jest niepustym podzbiorem n-wymiarowej przestrzeni
wektorowej nad ciałem GF (q). Mówimy wtedy, że kod jest długości n.
Zasadnicza idea kodowania polega na przesyłaniu wraz z wiadomościa˛ pewnej informacji "nadmiarowej", nie wnoszacej
˛ nic do treści samej wiadomości. Odebrana, wydłużona w ten sposób wiadomość odwzorowywana jest za pomoca˛ przekształcenia
dekodujacego
˛
na ciag
˛ pierwotnej długości. Podczas analizy informacji zawartych w
dodatkowo przesyłanych znakach odbiorca może wykryć, a w niektórych przypad1
2
kach nawet skorygować powstały na skutek zakłóceń w kanale transmisyjnym bład.
˛
W zwiazku
˛
z tym kody dzielimy na kody wykrywajace
˛ bł˛edy i na kody korygujace
˛
bł˛edy. Kody wykrywajace
˛ bł˛edy maja,˛ po pierwsze na celu ustalenie czy w otrzymanej
wiadomości wystapił
˛ bład
˛ pojedynczy, ponieważ takie bł˛edy sa˛ najbardziej prawdopodobne. Nast˛epnie b˛eda˛ starać si˛e wykrywać bł˛edy podwójne, potrójne i tak dużo jak to
b˛edzie możliwe. Natomiast w przypadku kodów korygujacych
˛
w procesie dekodowania należy bł˛edy wykryć, zlokalizować a nast˛epnie poprawić.
Dla wspomnianego na poczatku
˛
numeru PESEL w którym ukryta jest informacja
o dacie urodzenia, czy płci mamy również na pozycji jedenastej cyfr˛e kontrolna,˛ która
jest obliczana na podstawie pierwszych 10 cyfr. Dzi˛eki temu przy podawaniu naszego
numeru PESEL np. w banku operator po wprowadzeniu kodu do komputera widzi czy
jest on prawidłowy, ponieważ program może natychmiast zweryfikować wprowadzone cyfry. Podsumowujac
˛ jest tu zastosowany kod potrafiacy
˛ wykrywać bł˛edy.
Praca dotyczy tzw. kodów doskonałych, ich własności oraz pewnych problemów z
nimi zwiazanych.
˛
Kod C długości n nad ciałem GF (q) nazywamy kodem doskonałym, jeśli wszystkie
wektory z przestrzeni GF n (q) zawarte sa˛ w rozłacznych
˛
kulach o środkach b˛edacych
˛
słowami kodowymi. Istnieje nieskończenie wiele kodów doskonałych korygujacych
˛
bł˛edy pojedyncze i tylko dwa (nierównoważne) kody doskonałe korygujace
˛ bł˛edy wielokrotne.
Praca składa si˛e z 3 cz˛eści. W pierwszej zostały umieszczone definicje i twierdzenia
z zakresu algebry i ogólnej teorii kodów. W drugiej cz˛eści zdefiniowano kody doskonałe, podano przykłady takich kodów oraz ich najważniejsze własności. Przedstawiono
także zwiazki
˛
kodów doskonałych z kombinatoryka˛ oraz twierdzenie Lloyd’a o istnieniu kodów doskonałych. Ostatni rozdział dotyczy grup permutacji kodów doskonałych. W głównym twierdzeniu (3.3.1) została podana konstrukcja binarnego kodu
doskonałego poprawiajacego
˛
bł˛edy pojedyncze z trywialna˛ grupa˛ permutacji.
Za wkład własny do pracy uważam wybranie i opracowanie z bogatej literatury
tych wiadomości i przykładów, które były przydatne w opracowaniu niniejszej pracy.
Ponadto oznaczenia, definicje, lematy, twierdzenia i przykłady zostały wprowadzone
3
w taki sposób, aby były zgodne z nomenklatura˛ ogólnie przyj˛eta˛ w teorii kodów. Uzupełniłem również brakujace
˛ cz˛eści niektórych dowodów.
W pracy stosuj˛e nast˛epujace
˛ oznaczenia:
Mnk - macierz o n wierszach i k kolumnach.
Streszczenie
Praca dotyczy tzw. kodów doskonałych, ich własności oraz pewnych problemów z nimi zwiazanych.
˛
Kod C długości n nad ciałem GF (q) nazywamy kodem doskonałym, jeśli wszystkie
wektory z przestrzeni GF n (q) zawarte sa˛ w rozłacznych
˛
kulach o środkach b˛edacych
˛
słowami kodowymi. Istnieje nieskończenie wiele kodów doskonałych korygujacych
˛
bł˛edy pojedyncze i tylko dwa (nierównoważne) kody doskonałe korygujace
˛ bł˛edy wielokrotne.
Praca składa si˛e z 3 cz˛eści. W pierwszej zostały umieszczone definicje i twierdzenia
z zakresu algebry i ogólnej teorii kodów. W drugiej cz˛eści zdefiniowano kody doskonałe, podano przykłady takich kodów oraz ich najważniejsze własności. Przedstawiono
także zwiazki
˛
kodów doskonałych z kombinatoryka˛ oraz twierdzenie Lloyd’a o istnieniu kodów doskonałych. Ostatni rozdział dotyczy grup permutacji kodów doskonałych. W głównym twierdzeniu (3.3.1) została podana konstrukcja binarnego kodu
doskonałego poprawiajacego
˛
bł˛edy pojedyncze z trywialna˛ grupa˛ permutacji.
Spis treści
1
2
3
Podstawowe definicje i twierdzenia
3
1.1
Poj˛ecia wst˛epne z algebry . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Poj˛ecia wst˛epne z teorii kodów . . . . . . . . . . . . . . . . . . . . . . . .
7
Przykłady i własności kodów doskonałych
13
2.1
Kody Hamming’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2
Kody Goley’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3
Systemy Steinera dla kodów . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.4
Parametry kodów doskonałych . . . . . . . . . . . . . . . . . . . . . . . .
22
2.5
Wielomian Lloyd’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.6
Nieliniowy kod Vasil’eva . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Kody doskonałe a grupy permutacji
32
3.1
Grupy automorfizmów kodów . . . . . . . . . . . . . . . . . . . . . . . .
32
3.2
Kody doskonałe z trywialna˛ grupa˛ permutacji . . . . . . . . . . . . . . .
34
3.3
Twierdzenie Heden’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
2
Rozdział 1
Podstawowe definicje i twierdzenia
1.1
Poj˛ecia wst˛epne z algebry
Definicja 1.1.1. Niech A 6= ∅ b˛edzie zbiorem i n ∈ N . Każde przekształcenie f : An → A
nazywamy n-argumentowa˛ (n-arna)
˛ operacja˛ lub działaniem określonym w zbiorze A.
0-argumentowymi operacjami w A sa˛ wyróżnione elementy zbioru A.
Definicja 1.1.2. Par˛e uporzadkowan
˛
a˛ A = (A, F ), gdzie A 6= ∅ jest zbiorem, a F rodzina˛
operacji w A nazywamy F -algebra˛ abstrakcyjna˛ lub F -algebra˛ lub po prostu algebra.˛
Zbiór A nazywa si˛e nośnikiem algebry, a zbiór F zbiorem operacji podstawowych. O
zbiorze A mówimy również, że określona jest w nim struktura F -algebry. Algebr˛e (A, ·)
z jedna˛ binarna˛ operacja˛ nazywamy grupoidem.
· : A × A → A,
(x, y) 7→ x · y.
Definicja 1.1.3. Funkcj˛e a : F → N przyporzadkowuj
˛
ac
˛ a˛ każdej operacji f ∈ F liczb˛e a(f ) jej argumentów nazywamy typem algebry A. Jeśli F = {f1 , . . . , fk }, to piszemy
(A, f1 , . . . , fk ) zamiast (A, F ). Jeśli a(fi ) = ni , to mówimy również, że ciag
˛ (n1 , . . . , nk )
jest typem algebry (A, f1 , . . . , fk ). Algebry tego samego typu nazywamy algebrami podobnymi.
3
4
ROZDZIAŁ 1. PODSTAWOWE DEFINICJE I TWIERDZENIA
Definicja 1.1.4. Niech (A, F ) b˛edzie algebra˛ ustalonego typu, podzbiór B ⊆ A nazywamy podalgebra˛ algebry (A, F ), jeśli B jest zamkni˛ety ze wzgl˛edu na wszystkie
operacje należace
˛ do F , tzn. dla każdej n-arnej operacji f ∈ A, oraz b1 , . . . , bn ∈ B,
f (b1 , . . . , bn ) ∈ B. Piszemy wówczas, że B = (B, F ) ≤ (A, F ) = A.
Definicja 1.1.5. Niech (A, F ), (B, F ) b˛eda˛ algebrami podobnymi.
Przekształcenie h: A → B nazywamy homomorfizmem, jeśli dla każdej n-arnej operacji
f ∈ F oraz a1 , . . . , an ∈ A, h(f (a1 , . . . , an )) = f (h(a1 ), . . . , h(an )). Jeśli A = B to homomorfizm h nazywamy endomorfizmem. Zbiór wszystkich endomorfizmów algebry
(A, F ) oznaczamy End(A, F ).
Definicja 1.1.6. (A, ·) nazywamy półgrupa˛ jeśli dla każdego x, y, z ∈ A;
(xy)z = x(yz), tzn działanie binarne · jest łaczne.
˛
Definicja 1.1.7. Monoidem nazywamy trójk˛e (A, ·, 1), gdzie (A, ·) jest półgrupa,˛ a 1 jest
elementem neutralnym (jednościa˛ monoidu), tzn.
∀a∈M ,
a · 1 = 1 · a = a.
Definicja 1.1.8. Algebra (G, ·,−1 , 1) typu (2, 1, 0) jest grupa,˛ jeśli (G, ·) jest półgrupa˛ oraz
dla każdego x ∈ G
xx−1 = x−1 x = 1,
x1 = 1x = x.
Oznaczenia 1.1.9. Grup˛e wszystkich permutacji zbioru n-elementowego b˛edziemy
oznaczali Sn .
Definicja 1.1.10. Niech (G, ·, −1, 1) b˛edzie grupa˛ i X zbiorem. Każdy homomorfizm
ϕ : G → X! grupy G w grup˛e X! bijekcji zbioru X na X, nazywamy działaniem grupy
G na zbiorze X. Par˛e (X, ϕ : G → X!) nazywamy G-zbiorem.
Działanie ϕ nazywamy wiernym, jeśli ϕ jest zanurzeniem. W tej sytuacji ϕ jest izomorfizmem G na pewna˛ grup˛e przekształceń zbioru X.
Niech H ≤ G. Przekształcenia:
L : H → G!; h 7→ (Lh : G → G, x 7→ hx = Lh (x)),
1.1. POJECIA
˛
WSTEPNE
˛
Z ALGEBRY
5
R : H → G!; h 7→ (Rh : G → G, x 7→ xh = Rh (x)),
sa˛ działaniami grupy H na zbiorze G. W przypadku, gdy H = G, każde z tych działań
pokazuje w szczególności prawdziwość nast˛epujacego
˛
twierdzenia.
Twierdzenie 1.1.11. (Cayleya)
Każda grupa G jest izomorficzna z pewna˛ grupa˛ bijekcji zbioru G.
Wniosek 1.1.12. Każda grupa rz˛edu skończonego n zanurza si˛e w grup˛e wszystkich
permutacji zbioru n-elementowego.
Definicja 1.1.13. Algebra (P, +, −, 0, ·) typu (2, 1, 0, 2) jest pierścieniem jeśli:
1) (P, +, −, 0) grupa przemienna;
2) (P, ·) półgrupa;
3) dla każdego x, y, z ∈ P
x(y + z) = xy + xz,
(x + y)z = xz + yz.
Definicja 1.1.14. Pierścień z 1, w którym wszystkie niezerowe elementy tworza˛ grup˛e
wzgl˛edem mnożenia nazywamy pierścieniem z dzieleniem lub quasi-ciałem. Przemienne quasi-ciało nazywamy ciałem.
Definicja 1.1.15. Niech a, b ∈ Z. Relacj˛e równoważności
a ≡n b ⇔ n|a − b,
nazywamy relacja˛ przystawania modulo n.
Przykład 1.1.16. Przykładem skończonego ciała jest:
(Zp , +p , −, 0, ·p ), gdzie p-liczba pierwsza oraz dla a, b, c ∈ Zp
a +p b 7→ c ≡p a + b
a ·p b 7→ c ≡p a · b
Twierdzenie 1.1.17. Każde ciało skończone zawiera pm elementów, dla pewnej liczby
pierwszej p i liczby naturalnej m.
6
ROZDZIAŁ 1. PODSTAWOWE DEFINICJE I TWIERDZENIA
Definicja 1.1.18. Ciało skończone zawierajace
˛ pm elementów nazywamy ciałem Galois
rz˛edu pm i oznaczamy GF (pm ). Z dokładnościa˛ do izomorfizmu istnieje jedno ciało
rz˛edu pm . Jeśli m = 1, to GF (p) = Zp jest ciałem Galois rz˛edu p.
Lemat 1.1.19. Niech r, s ∈ N . Wówczas xr − 1|xs − 1 wtedy i tylko wtedy, gdy r|s.
Definicja 1.1.20. Modułem (M, +, −, 0, P ) (prawym) nad pierścieniem P nazywamy grup˛e przemienna˛ (M, +, −, 0) wraz z homomorfizmem pierścieni
R : P → End(M, +); p 7→ (Rp : M → M ; m 7→ mp ).
W przypadku, gdy P jest ciałem moduł M nazywamy przestrzenia˛ wektorowa˛ nad ciałem P.
Twierdzenie 1.1.21. Niech (A, F ) b˛edzie algebra˛ oraz dla każdego i ∈ I, (Bi , F ) jej
podalgebrami. Wówczas (∩i∈I Bi , F ) jest podalgebra˛ (A, F ) lub ∅.
Definicja 1.1.22. Najmniejsza˛ podalgebr˛e algebry (A, F ) zawierajac
˛ a˛ zbiór ∅ =
6 H⊆A
nazywamy podalgebra˛ generowana˛ przez zbiór (generatorów) H i oznaczamy < H >.
Twierdzenie 1.1.23. < H >= (∩i∈I {Bi |Bi ≤ A, H ⊆ Bi }, F )
Definicja 1.1.24. Niech (Ai , F )i∈I , b˛edzie rodzina˛ algebr podobnych. Iloczynem (lub produktem) algebr (Ai , F ) nazywamy algebr˛e (Πi∈I Ai , F ), gdzie dla każdej operacji f ∈ F ,
powiedzmy k-arnej, i dla a1 , . . . , ak ∈ Πi∈I Ai oraz i ∈ I
f (a1 , . . . , ak )(i) := f (a1 (i), . . . , ak (i)).
Definicja 1.1.25. Niech X b˛edzie zbiorem, R ciałem liczb rzeczywistych, a f : X × X →
R funkcja.˛ Jeśli dla dowolnych x, y, z ∈ X, f spełnia nast˛epujace
˛ warunki:
1) f (x, y) ⇔ x = y
2)f (x, y) = f (y, x)
3)f (x, z) ≤ f (x, y) + f (y, z)
to f nazywamy metryka˛ lub odległościa˛ w zbiorze X.
Par˛e (X, f ) nazywamy przestrzenia˛ metryczna.˛
Definicja 1.1.26. Niech (X, f ) b˛edzie przestrzenia˛ metryczna,˛ p ∈ X, r > 0. Wtedy
K(p, r) = {x ∈ X : f (p, x) ≤ r} nazywamy kula˛ domkni˛eta˛ o promieniu r i środku w
punkcie p.
1.2. POJECIA
˛
WSTEPNE
˛
Z TEORII KODÓW
1.2
7
Poj˛ecia wst˛epne z teorii kodów
Definicja 1.2.1. Waga˛ wt(u) wektora u ∈ GF n (q) nazywamy liczb˛e jego niezerowych
współrz˛ednych.
Lemat 1.2.2. Niech v, w ∈ Z2n . Wtedy prawdziwy jest wzór:
wt(v + w) = wt(v) + wt(w) − 2wt(v · w).
Definicja 1.2.3. Odległościa˛ Hamminga d(u, v) mi˛edzy wektorami u, v ∈ GF n (q) nazywamy liczb˛e miejsc, na których one si˛e różnia,˛ tzn. d(u, v) = wt(u − v).
Lemat 1.2.4. Powiemy, że wektory u, v ∈ GF n (q) sa˛ ortogonalne ozn. (v ⊥ u) ⇔
Pn
i=1 vi ui = 0 w ciele GF (q).
Lemat 1.2.5. Dla u, v ∈ Z2n
v ⊥ u ⇔ wt(v · u) jest parzysta.
Definicja 1.2.6. Kodem C długości n ∈ N nad ciałem GF (q) nazywamy podzbiór C ⊆
GF n (q). Elementy zbioru C nazywamy słowami kodowymi. Jeśli GF (q) = Z2 , to kod
nazywamy binarnym. Kody C = GF n (q) oraz C = {(0, . . . , 0)} nazywamy kodami trywialnymi.
Przykład 1.2.7. Zbiór C = {000, 110, 101, 011} jest przykładem kodu binarnego długości 3.
Definicja 1.2.8. Niech Ci ∈ C b˛edzie podzbiorem słów kodowych o wadze i. Niech
Ai := |Ci|. Ciag
˛ (A0 , A1 , . . . , An ) nazywamy rozkładem wagi kodu C.
Definicja 1.2.9. Odległościa˛ kodu C nazywamy d = min{d(u, v)|u 6= v ∈ C}.
Niech v ∈ GF n (q) i niech c ∈ C b˛edzie słowem kodowym najbliższym (w sensie odległości) do wektora v. Jeśli v ∈ C, to c = v. Jeśli v ∈
/ C, to wektor e := v − c nazywamy
bł˛edem. Jeżeli po transmisji otrzymany wektor nie jest słowem kodowym to mówimy, że
w czasie przesyłania wiadomości zostały popełnione bł˛edy. Jeżeli zastosowana metoda
dekodowania pozwala mimo wszystko odtworzyć wysłane słowo kodowe, to mówimy wtedy że kod poprawia bł˛edy.
O tym, czy takie bł˛edy można wykryć i ewentualnie poprawić decyduje odległość kodu.
8
ROZDZIAŁ 1. PODSTAWOWE DEFINICJE I TWIERDZENIA
Twierdzenie 1.2.10. Niech C b˛edzie kodem o odległości d. Kod C wykrywa t bł˛edów
wtedy i tylko wtedy, gdy t ≤ d − 1.
Twierdzenie 1.2.11. Kod C koryguje t bł˛edów wtedy i tylko wtedy, gdy odległość d
tego kodu spełnia warunek t ≤ (d − 1)/2.
Twierdzenie 1.2.12. (Ograniczenie Hamming’a). Niech C b˛edzie kodem długości n o
M słowach kodowych nad ciałem GF (q) mogacym
˛
poprawić do t bł˛edów. Wtedy
M [1 + (n1 )(q − 1) + (n2 )(q − 1)2 + . . . + (nt )(q − 1)t ] ≤ q n .
Dowód. Niech B1 , . . . , BM b˛eda˛ kulami domkni˛etymi o promieniu t wokół M słów
kodowych. Z założenia odległość d ≥ 2t + 1. Zatem takie kule sa˛ parami rozłacz˛
ne. W każdej kuli jest (n1 )(q − 1) + (n2 )(q − 1)2 + . . . + (nt )(q − 1)t wektorów. Wszystkich kul jest M . Stad
˛ wszystkich wektorów, które sa˛ zawarte w kulach B1 , . . . , BM jest
M [1 + (n1 )(q − 1) + (n2 )(q − 1)2 + . . . + (nt )(q − 1)t ]. Natomiast wszystkich wektorów w
przestrzeni n-wymiarowej nad ciałem GF n (q) jest q n .
Definicja 1.2.13. Dwa kody C1 i C2 długości n nad GF (q) sa˛ równoważne, gdy istnieje
permutacja π ∈ Sn taka, że u = (u1 , . . . , un ) ∈ C1 ⇔ (uπ(1) , . . . , uπ(n) ) ∈ C2 .
Definicja 1.2.14. Kod C nad GF (q) jest (n, k)-kodem liniowym, jeśli C jest k-wymiarowa˛
podprzestrzenia˛ przestrzeni GF n (q).
Definicja 1.2.15. Niech C b˛edzie (n, k) kodem liniowym. Wówczas różnowartościowe
przekształcenie liniowe c: GF k (q) → GF n (q) takie, że c(GF k (q)) = C, nazywamy funkcja˛ kodujac
˛ a˛ kodu C.
Przykład 1.2.16. (k + 1, k)-kod kontroli parzystości nad ciałem GF (q).
Funkcj˛e kodujac
˛ a˛ definiujemy nast˛epujaco:
˛
P
c: GF k (q) → GF k+1 (q); (c1 , . . . , ck ) 7→ (c1 , . . . , ck , − ki=1 ci ).
P
Ciag
˛ (b1 , . . . , bk+1 ) jest słowem kodowym ⇔ k+1
i=1 bi = 0 w ciele GF (q).
Ponieważ każde dwa wektory (c1 , . . . , ck ) 6= (d1 , . . . , dk ) z przestrzeni GF k (q) różnia˛ si˛e
P
P
P
na co najmniej jednym miejscu to ki=1 ci 6= ki=1 di . Zatem wektory (c1 , . . . , ck , − ki=1 ci )
P
i (d1 , . . . , dk , − ki=1 di ) różnia˛ si˛e na co najmniej dwóch pozycjach. Zatem odległość
1.2. POJECIA
˛
WSTEPNE
˛
Z TEORII KODÓW
9
wynosi d = 2. Wynika stad,
˛ iż kod ten pozwala wykryć pojedyncze bł˛edy, ale nie daje
możliwości ich poprawienia.
Kod z przykładu 1.2.7 jest (3, 2)-kodem kontroli parzystości.
Przykład 1.2.17. (n, 1)-kod powtórzeniowy nad ciałem GF (q).
Funkcja kodujaca
˛ ma postać
c: GF (q) → GF n (q); a 7→ (a, a, . . . , a).
(b1 , . . . , bn ) jest słowem kodowym ⇔ b1 = b2 = . . . = bn .
W szczególności binarny (n, 1)-kod powtórzeniowy zawiera tylko dwa słowa kodowe:
0n := (0, . . . , 0) ∈ Z2n oraz 1n := (1, . . . , 1) ∈ Z2n . Stad
˛ odległość d = n, czyli kod wykryje
wszystkie n − 1 bł˛edów. Ponadto dla n-nieparzystego kod ten poprawia wszystkie
n−1
2
bł˛edów. Jeśli w otrzymanym słowie wi˛ecej jest zer, to za słowo kodowe przyjmujemy
(0, . . . , 0). W przeciwnym przypadku za słowo kodowe przyjmujemy (1, . . . , 1).
Przykładem kodów liniowych sa˛ kody wielomianowe.
Definicja 1.2.18. Niech n, k ∈ N , p(x) b˛edzie wielomianem stopnia n−k o współczynnikach w GF (q). Kodem wielomianowym generowanym przez wielomian p(x) nazywamy
(n, k)-kod C, w którym funkcja kodujaca
˛ c: GF k (q) → GF n (q) określona jest w nast˛epujacy
˛ sposób:
1) (a0 , . . . , ak−1 ) ∈ GF k (q) 7→ m(x) := a0 + a1 x + . . . + ak−1 xk−1 ∈ GF (q)
2) tworzymy wielomian xn−k m(x),
3) obliczamy reszt˛e r(x) z podzielenia xn−k m(x) przez p(x),
4) definiujemy wielomian v(x) = r(x) + xn−k m(x)
= r0 + r1 x + . . . + rn−k−1 xn−k−1 + a0 xn−k + . . . + ak−1 xn−1 ,
5) wiadomość zakodowana ma postać
c(a0 , . . . , ak−1 ) := (r0 , r1 , . . . , rn−k−1 , a0 , . . . , ak−1 ).
Definicja 1.2.19. Niech C b˛edzie (n, k)-kodem liniowym nad ciałem GF (q) z funkcja˛
kodujac
˛ a˛ c: GF k (q) → GF n (q). Macierz G ∈ Mnk przekształcenia liniowego c nazywamy
macierza˛ kodujaca
˛ kod C. Kolumny macierzy G tworza˛ baz˛e przestrzeni c(GF k (q)).
Wektor v ∈ GF n (q) jest słowem kodowym ⇔ jest kombinacja˛ liniowa˛ kolumn macierzy
G.
10
ROZDZIAŁ 1. PODSTAWOWE DEFINICJE I TWIERDZENIA
Definicja 1.2.20. Macierza˛ kontroli parzystości (macierza˛ sprawdzajac
˛ a)
˛ (n, k)-kodu linion
wego C nazywamy macierz H ∈ Mn−k
taka,˛ że u ∈ C ⇔ HuT jest wektorem zerowym.
Wektor HuT nazywamy syndromem wektora u.
Definicja 1.2.21. Kodem dualnym do (n, k) kodu liniowego C nazywamy (n, n − k) kod
liniowy C ⊥ taki, że C ⊥ = {u ∈ GF n (q)|u ⊥ w, w ∈ C}.
Twierdzenie 1.2.22. Niech C b˛edzie kodem o macierzy generujacej
˛ G i macierzy sprawdzajacej
˛ H. Wtedy dla kodu dualnego C ⊥ macierz generujac
˛ a˛ ma postać H T , a macierz
sprawdzajac
˛ a˛ GT .
Definicja 1.2.23. Jeśli każda para wektorów kodu C jest ortogonalna, tzn. C ⊂ C ⊥ ,
to kod nazywamy słabo samo-dualnym. Ponadto jeśli C = C ⊥ wtedy kod nazywamy
samo-dualnym.
Definicja 1.2.24. Niech C ⊆ GF n+1 (q) b˛edzie kodem. Kodem skróconym kodu C nazywamy kod C ∗ , którego słowa otrzymujemy z wektorów c ∈ C przez usuni˛ecie ostatniej
współrz˛ednej.
Definicja 1.2.25. Niech C ⊆ GF n (q) b˛edzie kodem. Kodem rozszerzonym kodu C nazywamy kod:
C e := {(c1 , . . . , cn , −
n
X
ci ) : (c1 , . . . , cn ) ∈ C}.
i=1
n
Dla dowolnego wektora c ∈ GF (q) wprowadźmy nast˛epujace
˛ oznaczenie:
c| −
n
X
ci := (c1 , . . . , cn , −
i=1
n
X
ci ).
i=1
W szczególności kod rozszerzony liniowego (n, k) kodu C jest (n + 1, k)-kodem.
Lemat 1.2.26. Niech C b˛edzie kodem binarnym. Jeśli odległość d kodu C jest nieparzysta to odległość kodu C e wynosi d + 1.
Dowód. Niech C b˛edzie kodem binarnym o długości n i odległości d = 2t + 1. W C
istnieja˛ słowa c1 i c2 dla których wt(c1 − c2 ) = d. Ponieważ liczba d jest nieparzysta,
zatem w kodzie rozszerzonym C e słowa
ce1
:= {(c11 , . . . , c1n , −
n
X
i=1
c1i ) oraz
ce2
:= {(c21 , . . . , c2n , −
n
X
i=1
c 2i )
1.2. POJECIA
˛
WSTEPNE
˛
Z TEORII KODÓW
11
różnia˛ si˛e na pierwszych n pozycjach na d miejscach oraz na pozycji n + 1. Zatem odległość kodu C e wynosi d + 1.
Definicja 1.2.27. Niech, u, v ∈ Z2n . Mówimy, że wektor u pokrywa wektor v, jeżeli współrz˛edne niezerowe w v sa˛ podzbiorem zbioru wszystkich współrz˛ednych niezerowych
w u.
Przykład 1.2.28. Niech C b˛edzie kodem binarny o długości n = 3. Rozważmy nast˛epujace
˛ u, v ∈ C:
u = (1, 1, 1), v = (1, 1, 0).
Współrz˛edne niezerowe w v sa˛ podzbiorem zbioru współrz˛ednych niezerowych w u,
stad
˛ u pokrywa v.
W przypadku kodów liniowych, do zakodowania wektora v, możemy wykorzystać
macierz kodujac
˛ a˛ G, badź
˛ macierz sprawdzajac
˛ a˛ H. Okazuje si˛e, że macierz H może
być również pomocna w procesie dekodowania.
W procesie dekodowania, dekoder musi zdecydować na podstawie otrzymanego po
transmisji wektora y jakie słowo kodowe v zostało wysłane. Wystarczy, gdy dekoder
znajdzie wektor bł˛edu e, gdyż wówczas v = y−e. Ponieważ dla (n, k)-kodów liniowych
C zbiór słów kodowych tworzy k-wymiarowa˛ podprzestrzeń n-wymiarowej przestrzeni wektorowej GF n (q), wektor y ∈ GF n (q) musi należeć do jednej z warstw wzgl˛edem
C. Niech y ∈ a + C dla pewnego a ∈ GF n (q), czyli y = a + u dla u ∈ C. Wówczas
e = y − v = a + u − v = a + v 0 ∈ a + C.
Zatem wektory y i e należa˛ do tych samych warstw wzgl˛edem podprzestrzeni C.
Wektor y odkodujemy jako najbliższe mu w sensie odległości słowo kodowe u. Wektor
bł˛edu b˛edzie miał wtedy najmniejsza˛ możliwa˛ wag˛e. Zauważmy, że gdy H jest macierza˛ kontroli parzystości kodu C to
Hy = H(v + e) = Hv + He = He,
czyli syndrom Hy wektora y jest taki sam jak syndrom He wektora bł˛edu e. Zatem po
otrzymaniu słowa y wybieramy wektor bł˛edu e o minimalnej wadze w tej warstwie,
do której należy wektor y (tzw. lidera warstwy) i dekodujemy y jako słowo v = y − e.
Jeśli istnieje wi˛ecej niż jeden wektor o minimalnej wadze w danej warstwie, to lidera
12
ROZDZIAŁ 1. PODSTAWOWE DEFINICJE I TWIERDZENIA
warstwy wybieramy losowo.
Jeśli słowo y ∈ C ma wag˛e w, to syndrom Hy jest kombinacja˛ liniowa˛ pewnych w kolumn macierzy H. Jeśli wektor e jest wektorem bł˛edu to syndrom He jest kombinacja˛
liniowa˛ tych kolumn macierzy H, na których został popełniony bład.
˛ Jeśli wystapił
˛ tylko pojedynczy bład
˛ na i-tym miejscu to wektor bł˛edu e = (0, . . . , b, . . . , 0) ma wag˛e 1 i
syndrom He jest i-ta˛ kolumna˛ macierzy H pomnożona˛ przez stała˛ b. Gdyby i-ta kolumna macierzy H była zerowa to bład
˛ wyst˛epujacy
˛ na i-tej pozycji nie został by wykryty.
Ponadto dla kodów binarnych, jeśli dwie kolumny macierzy H byłyby identyczne, to
dwa syndromy dla dwóch różnych bł˛edów pojedynczych byłyby takie same. W obu
tych przypadkach nie byłoby możliwe poprawienie bł˛edów pojedynczych. Stad
˛ macierz kontroli parzystości H dla binarnych kodów wykrywajacych
˛
bł˛edy pojedyncze
musi mieć kolumny parami różne i niezerowe.
Rozdział 2
Przykłady i własności kodów
doskonałych
Definicja 2.0.29. Kod C długości n i odległości d nad ciałem GF (q) nazywamy kodem
doskonałym, jeśli wszystkie wektory z przestrzeni GF n (q) zawarte sa˛ w kulach o środkach b˛edacymi
˛
słowami kodowymi i promieniu t = [ d−1
].
2
Zauważmy, że jeśli C ⊆ GF n (q) jest kodem doskonałym o M słowach kodowych to
w ograniczeniu Hamming’a zachodzi równość:
M (1 + (q − 1)(n1 ) + . . . + (q − 1)t (nt )) = q n .
Przykład 2.0.30. Trywialnymi przykładami kodów doskonałych sa:˛
• kod zawierajacy
˛ jedno słowo kodowe
• kod b˛edacy
˛ cała˛ przestrzenia˛ GF n (q)
• binarny (n, 1)-kod powtórzeniowy dla n-nieparzystych.
Nietrywialnymi i najważniejszymi przykładami kodów doskonałych sa˛ kody Hamming’a i kody Goley’a.
2.1
Kody Hamming’a
Kody Hamming’a sa˛ ważna˛ rodzina˛ kodów liniowych, doskonałych, poprawiajacych
˛
bł˛edy pojedyncze, które sa˛ bardzo łatwe w kodowaniu i dekodowaniu.
13
14
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
Niech r ≥ 1 b˛edzie liczba˛ naturalna˛ wi˛eksza˛ od zera.
Definicja 2.1.1. Kolumny macierzy kontrolnej Hr2 ∈ Mr2
r −1
(Z2 ) liniowego binarnego ko-
du Hamming’a Hr sa˛ wszystkimi niezerowymi wektorami binarnymi długości r, gdzie
i-ta kolumna macierzy Hr2 jest binarna˛ reprezentacja˛ liczby i. Przyjmujemy, że współrz˛edne o numerach 2j , 0 ≤ j ≤ r − 1 sa˛ współrz˛ednymi kontrolnymi, natomiast pozostałe 2r − 1 − r współrz˛ednych to współrz˛edne wiadomości.
Kod Hamming’a Hr (q) nad ciałem GF (q), q > 2 ma jako macierz kontroli parzystoq r −1
q−1
ści macierz Hrq ∈ Mr
(GF (q)), której kolumny sa˛ wszystkimi niezerowymi ciagami
˛
długości r o elementach w GF (q), których pierwszy niezerowy element jest 1.
Przykład 2.1.2. W roku 1950 R. Hamming przedstawił binarny kod obecnie zwany
(7, 4)-kodem Hamming’a. Zgodnie z definicja˛ 2.1.1 jego macierz kontroli parzystości
˛
H32 jestnast˛epujaca:

1 0 1 0 1 0 1




H32 = 0 1 1 0 0 1 1.


0 0 0 1 1 1 1
Stad
˛ 
macierza˛ generuj
˛ a˛ tego kodu jest:
 ac
1


1


1


G = 0


0


0

0
1 0 1


0 1 1


0 0 0


1 1 1.


1 0 0


0 1 0

0 0 1
Kody Hamming’a wyznaczone sa˛ jednoznacznie, ponadto każdy nietrywialny liniowy kod o parametrach kodu Hamming’a jest z nim równoważny.
Twierdzenie 2.1.3. Niech r ∈ N . Każdy binarny (2r − 1, 2r − r − 1)-kod liniowy o
odległości d = 3 jest równoważny z binarnym kodem Hamming’a Hr .
Dowód. Kolumnami macierzy H32 kontroli parzystości Hr2 kodu binarnego Hr sa˛ wszystkie binarne niezerowe ciagi
˛ długości r.
2.1. KODY HAMMING’A
15
Kolumnami macierzy kontroli parzystości H dowolnego (2r − 1, 2r − r − 1)-kodu binarnego C sa˛ 2r − 1 wektory długości r.
Aby ten kod poprawiał bł˛edy pojedyncze, to:
1) Żadna z kolumn macierzy H nie może być kolumna˛ zerowa˛ (wtedy bład
˛ nie mógł
by być wykryty, ponieważ syndrom byłby zerowy).
2) Żadne dwie kolumny macierzy H nie moga˛ być równe, ponieważ nie można by wykryć bł˛edów pojedynczych.
Zatem macierz H różni si˛e od macierzy kontroli parzystości kodu Hr tylko kolejnościa˛
kolumn. Stad
˛ kod C jest równoważny z kodem Hamming’a Hr .
Podobnie możemy dowieść, że każdy liniowy (q r − 1, q r − r − 1)-kod doskonały nad
ciałem GF (q) jest równoważny z kodem Hamming’a Hr (q).
Twierdzenie 2.1.4. Dla każdego niezerowego słowa c ∈ Hr⊥ , wt(c) = 2r−1 .
Uwaga 2.1.5. Niech Hr b˛edzie kodem Hamming’a o długości n = 2r − 1. Wtedy wektor
1n = (1, . . . , 1)T ∈ Hr .
Dowód. Wektor 1n jest słowem kodowym jeśli syndrom tego wektora jest zerowy. Stad
˛
otrzymujemy nast˛epujacy
˛ układ równań:
h1,1 + . . . + h1,n ≡2 0
..
.
hr,1 + . . . + hr,n ≡2 0
Powyższe równania sa˛ zawsze spełnione ponieważ waga słów w macierzy generujacej
˛
kodu dualnego jest zawsze pot˛ega˛ dwójki na mocy (2.1.4).
Uwaga 2.1.6. (7, 4)-kod Hamming’a, H3 , ma nast˛epujacy
˛ rozkład wagi:
i
0
3
4
7
Ai
1
7
7
1
Łatwo zauważyć, że po dodaniu symbolu kontroli parzystości do powyższego kody
otrzymamy (8, 4)-kod o nast˛epujacym
˛
rozkładzie wagi:
16
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
i
0
4
8
Ai
1
14
1
Waga słów (8, 4)-kodu jest zawsze podzielna przez 4.
Twierdzenie 2.1.7. Niech Hr b˛edzie kodem Hamming’a długości n = 2r − 1. Wtedy dla
każdego i ∈ {1, . . . , n}:
(i + 1)Ai+1 + Ai + (n − i + 1)Ai−1 = (ni ) dla i ∈ {1, . . . , n}.
2.2
Kody Goley’a
Definicja 2.2.1. Kodami Goley’a nazywamy nast˛epujace
˛ 4 kody liniowe:
• binarny (23, 12) -kod G23 o odległości 7
• binarny (24, 12) -kod G24 o odległości 8
• ternarny (11, 6) -kod G11 o odległości 5
• ternarny (12, 6) -kod G12 o odległości 6
Definicja 2.2.2. Kod G24, binarny (24, 12)-kod o odległości 8 jest kodem liniowym o
nast˛epujacej
˛ macierzy generujacej:
˛
2.2. KODY GOLEY’A
17




































































1 1 1 1 1 1 1 1 1 1 1 0

1 0 0 0 0 0 0 0 0 0 0 0

































.

































0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 1
1 0 1 0 0 0 1 1 1 0 1 1
1 1 0 1 0 0 0 1 1 1 0 1
0 1 1 0 1 0 0 0 1 1 1 1
1 0 1 1 0 1 0 0 0 1 1 1
1 1 0 1 1 0 1 0 0 0 1 1
1 1 1 0 1 1 0 1 0 0 0 1
0 1 1 1 0 1 1 0 1 0 0 1
0 0 1 1 1 0 1 1 0 1 0 1
0 0 0 1 1 1 0 1 1 0 1 1
1 0 0 0 1 1 1 0 1 1 0 1
0 1 0 0 0 1 1 1 0 1 1 1
Kod G24 ma nast˛epujace
˛ własności:
1) Waga każdego słowa c ∈ G24 jest podzielna przez 4.
Dowód. Waga każdej kolumny w macierzy generujacej
˛ jest podzielna przez 4. Dowolne
słowo c ∈ G24 jest kombinacja˛ liniowa˛ kolumn macierzy G24. Na mocy lematu 1.2.2
18
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
otrzymujemy, że:
wt(v + w) = wt(v) + wt(w) − 2wt(v · w).
Dwa pierwsze składniki sa˛ podzielne przez 4. Ponadto kolumny w macierzy G24 sa˛
parami ortogonalne, wi˛ec z lematu 1.2.4 wt(v · w) jest parzysta. Stad
˛ waga wszystkich
słów jest podzielna przez 4.
2) Kod G24 jest samodualny, tzn. G24 = G24⊥ .
Dowód. Kolumny macierzy G24 sa˛ parami ortogonalne. Z ortogonalności kolumn wynika, że dla dowolnych słów c1 , c2 ∈ C, c1 · c2 = 0. Zatem prawdziwa jest implikacja:
c ∈ C ⇒ c ∈ C ⊥ , stad
˛ kod ten jest słabo-samodualny(C ⊂ C ⊥ ).
Ponieważ wymiar kodu C wynosi 12 oraz kodu dualnego n − k = 24 − 12 = 12, to kody
C i C ⊥ maja˛ taki sam wymiar, stad
˛ zachodzi równość C = C ⊥ i otrzymujemy, że kod C
jest samodualny.
Definicja 2.2.3. Kod G23 to skrócony kod G24, powstajacy
˛ przez usuni˛ecie ostatniej
współrz˛ednej. Jest to również kod wielomianowy generowany przez:
x11 + x10 + x6 + x5 + x4 + x2 + 1.
Po dodaniu do niego symbolu kontroli parzystości otrzymujemy kod G24. Jak si˛e później przekonamy jest to jedyny binarny kod doskonały poprawiajacy
˛ bł˛edy wielokrotne
(potrójne).
Lemat 2.2.4. Kod G23 ma nast˛epujacy
˛ rozkład wagi:
i
0
7/16
8/15
11/12
23
Ai
1
253
506
1288
1
Dowód. Niech dla i = 1, . . . , 23, Ai oznacza liczb˛e słów kodowych c ∈ G23 wagi i. Kod
G23 jest kodem liniowym, zatem wektor zerowy jest słowem kodowym, co oznacza, że
A0 = 1.
Dla i = 1, 2, . . . , 6 Ai = 0, ponieważ odległość kodu d = 7 zatem nie ma słów kodowych
2.2. KODY GOLEY’A
19
o wadze ≤ 6.
Niech x ∈ Z223 b˛edzie wektorem wagi 4. Ponieważ kod G23 jest kodem doskonałym,
istnieje słowo u ∈ G23, wagi wt(u) = 7, dla którego d(u, x) ≤ 3. Odległość d(u, x) =
wt(u − x) ≤ 3, stad
˛ liczba wektorów x ∈ Z223 wagi 4 takich, że d(u, x) = 3, równa jest (73 ).
Ponieważ liczba wszystkich binarnych wektorów długości 23 i wagi 4 równa jest (23
4 ),
otrzymujemy:
7
(23
4 ) = A7 (3 ) ⇒ A7 = 253.
Niech x ∈ Z223 b˛edzie wektorem wagi 5. Ponieważ kod G23 jest kodem doskonałym,
istnieje słowo u ∈ G23, wagi wt(u) = 8, dla którego d(u, x) ≤ 3 lub słowo v ∈ G23 wagi
wt(v) = 7 dla którego d(v, x) ≤ 2. Liczba wektorów x ∈ Z223 wagi 5 takich, że d(u, x) = 3,
równa jest (83 ). Natomiast liczba wektorów x ∈ Z223 wagi 5 takich, że d(v, x) = 2, równa
jest (72 ). Ponieważ liczba wszystkich binarnych wektorów długości 23 i wagi 5 równa
jest (23
5 ), otrzymujemy:
8
7
(23
5 ) = A8 (3 ) + A7 (2 ) ⇒ A8 = 506.
Podobnie dla i = 9, otrzymujmy:
9
8
7
7 16
(23
6 ) = A9 (3 ) + A8 (2 ) + A7 ((1 ) + (2 )(1 )) ⇒ A9 = 0.
Stosujac
˛ analogiczne rozumowanie A11 =1288=A12 , A15 =A8 , A16 =A7 i A23 = 1, a pozostałe Ai równe sa˛ 0.
Wniosek 2.2.5. Niech i oznacza wag˛e słowa, a Ai liczb˛e słów o wadze i. Kod G24 ma
nast˛epujacy
˛ rozkład wagi:
i
0
8
12
16
24
Ai
1
759
2576
759
1
Dowód. Słowa kodowe w binarnym kodzie rozszerzonym sa˛ zawsze wagi parzystej.
Niech c ∈ G23 b˛edzie słowem o parzystej wadze wt(c) = i. Wtedy odpowiadajace
˛ mu
słowo ce ∈ G24 również ma wag˛e i. Jeśli natomiast waga słowa c jest nieparzysta, to
waga słowa ce ∈ G24 wynosi i + 1.
20
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
Definicja 2.2.6. Kod Goley’a G11 jest ternarnym kodem wielomianowym generowanym przez wielomian x5 + x4 + 2x3 + x2 + 2 ∈ Z3 [x]. Jest to kod poprawiajacy
˛ bł˛edy
podwójne.
Definicja 2.2.7. Kod Goley’a G12 to kod rozszerzony kodu G11.
Podobnie jak kod G24, kod G12 jest samo-dualny, a wszystkie jego słowa maja˛ wag˛e
podzielna˛ przez 3.
Twierdzenie 2.2.8. Kody Goley’a sa˛ jednoznaczne w tym sensie, że każdy kod o parametrach kodów G11, G12, G23 lub G24 jest równoważny z jednym z nich.
2.3
Systemy Steinera dla kodów
Kody doskonałe maja˛ ciekawe zwiazki
˛
z kombinatoryka.˛
Definicja 2.3.1. Niech C b˛edzie kodem długości n. Powiemy, ze wektory o wadze w
kodu C tworza˛ system Steiner’a S(a, w, n), jeśli każdy zbiór a współrz˛ednych wyst˛epuje
jako niezerowa pozycja dokładnie w jednym słowie kodowym wagi w.
Bezpośrednio z definicji kodów doskonałych wynika nast˛epujace
˛ twierdzenie.
Twierdzenie 2.3.2. Niech C b˛edzie kodem doskonały długości n i odległości d = 2t + 1.
Wówczas słowa kodowe o wadze 2t + 1 tworza˛ system Steiner’a S(t + 1, 2t + 1, n).
Wniosek 2.3.3. Niech C b˛edzie kodem doskonały długości n zawierajacym
˛
wektor 0n i
odległości d = 2t + 2. Wówczas słowa kodowe o wadze 2t + 2 tworza˛ system Steiner’a
S(t + 2, 2t + 2, n + 1).
Dowód. Niech C b˛edzie binarnym kodem doskonałym długości n i odległości d = 2t+1
zawierajacym
˛
wektor 0n . Zauważmy, że wówczas dla każdego słowa c ∈ C wt(c) =
d(c, 0n ) ≥ d = 2t + 1. Pokażemy, że słowa kodu rozszerzonego C e tworza˛ system Steiner‘a S(t + 2, 2t + 2, n + 1). To oznacza, że wybór dowolnych t + 2 niezerowych współrz˛ednych jednoznacznie wyznacza słowo kodowe kodu C e wagi 2t + 2.
Po pierwsze zauważmy, że jeśli dwa wektory u, v ∈ C e maja˛ wag˛e równa˛ 2t + 2 oraz 1
2.3. SYSTEMY STEINERA DLA KODÓW
21
dokładnie na tych samych t + 2 pozycjach to sa˛ wyznaczone jednoznacznie. Przypuśćmy, że u 6= v, wtedy d(u, v) = 2t, co jest sprzeczne z założeniem, że odległość kodu C e
na mocy lematu 1.2.26 wynosi 2t + 2.
Niech teraz v = (v1 , v2 , . . . , vn , vn+1 ) ∈ C e , dla którego vi1 = . . . = vit = vit+1 = vit+2 = 1.
Rozważmy dwa przypadki: 1) it+2 < n + 1 oraz 2) it+2 = n + 1.
Przypadek 1.
Jeśli it+2 < n + 1 to vn+1 = 0. Niech u := (v1 , . . . , vn ) ∈ Z2n , wt(u) = t + 2. Kod C jest
doskonały, zatem istnieje słowo kodowe c ∈ C takie, że d(u, c) ≤ t oraz wt(c) ≥ 2t + 1.
Wtedy wektory u i c moga˛ si˛e różnić na t − 1 pozycjach lub t pozycjach.
Jeśli d(u, c) = t − 1, to wt(c) = 2t + 1. Wówczas szukanym słowem jest ue := c|1 ∈ C e .
Jeśli d(u, c) = t, to wt(c) = 2t + 2. Wówczas ue := c|0 ∈ C e .
Przypadek 2.
Jeśli it+2 = n + 1 to vn+1 = 1. Ponownie niech u := (v1 , . . . , vn ) ∈ Z2n , ale tym razem
wt(u) = t + 1. Wtedy istnieje c ∈ C taki, że wt(c) = 2t + 1 oraz d(u, c) = t. Stad
˛ szukanym słowem jest ce := c|1 = (c1 , . . . , cn , 1).
Pokazaliśmy, że słowa kodowe o wadze 2t + 2 rozszerzonego kodu C e tworza˛ system
Steinera S(t + 2, 2t + 2, n + 1).
Wniosek 2.3.4. Niech Hr b˛edzie kodem Hamming’a. Wtedy słowa kodowe wagi 4 z Hre
tworza˛ system Steiner’a S(3, 4, 2r ), jednocześnie słowa kodowe o wadze 3 z Hr tworza˛
system Steiner’a S(2, 3, 2r − 1).
Wniosek 2.3.5.
• Słowa wagi 8 kodu G24 tworza˛ system Steiner’a S(5, 8, 24).
• Słowa wagi 7 kodu G23 tworza˛ system Steiner’a S(4, 7, 23).
• Słowa wagi 6 kodu G12 tworza˛ system Steiner’a S(5, 6, 12).
• Słowa wagi 5 kodu G11 tworza˛ system Steiner’a S(4, 5, 11).
22
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
2.4
Parametry kodów doskonałych
Lemat 2.4.1. Niech C b˛edzie kodem doskonałym długości n, nad ciałem GF (q). Wtedy
liczba jego elementów musi być pot˛ega˛ liczby q i zachodzi równość:
t
X
(q − 1)i (ni ) = q l ,
dla pewnego l ∈ N
i=0
Dowód. Niech q = pr , dla pewnej liczby pierwszej p oraz r ∈ Z + . Dla kodu doskonałego
nad ciałem GF (q), długości n i liczbie elementów M mamy:
M (1 + (q − 1)(n1 ) + . . . + (q − 1)t (nt )) = prn , czyli M |prn ⇒ M = pj . Stad
˛
1 + (q − 1)(n1 ) + . . . + (q − 1)t (nt ) = prn−j ⇒ q − 1|prn−j − 1, ale q = pr oraz z lematu 1.1
wynika, że r|(rn−j) ⇒ r|j ⇒ j = r·l dla pewnego l ∈ N . Ostatecznie M = pr·l = q l .
Okazuje si˛e, że czwórek liczb M , n, q i t, dla których w ograniczeniu Hamming’a
wyst˛epuje równość jest mało.
Poniższe przykłady ilustruja˛ jakie moga˛ być parametry kodów doskonałych.
Przykład 2.4.2. Niech t = 1 i q = 2. Na mocy lematu 2.4.1 liczba słów kodowych
binarnego kodu doskonałego równa jest 2k , dla pewnego k ∈ N . W tym przypadku
ograniczenie Hamming’a przyjmuje postać:
2k (1 + (n1 )) = 2k (1 + n) = 2n ⇒ n = 2n−k − 1.
Przyjmujac
˛ r = n − k otrzymujemy, że każdy binarny kod doskonały o odległości d = 3
ma długość n = 2n−k − 1 = 2r − 1. W szczególności każdy binarny doskonały kod
liniowy poprawiajacy
˛ bł˛edy pojedyncze ma wymiar k = 2r − r − 1. Zatem każdy taki
kod ma parametry równe parametrom binarnych kodów Hamming’a Hr .
Przykład 2.4.3. Niech t = 2 i q = 2. Korzystajac
˛ z lematu 2.4.1 ograniczenie Hamming’a
przyjmuje postać: 1 + (n1 ) + (n2 ) = 1 + n +
n2 −n
2
= 2n−k , dla pewnych n, k ∈ N .
Dla n = 5 oraz k = 1 otrzymujemy parametry (5, 1)-kodu powtórzeniowego.
Nast˛epna˛ para˛ liczb dla których w ograniczeniu Hamming’a zachodzi równość jest
n = 90 oraz k = 78. W twierdzeniu 2.5.4 pokażemy, że nie istnieje żaden binarny kod
doskonały o takich parametrach.
2.5. WIELOMIAN LLOYD’A
23
Przykład 2.4.4. Niech t = 3 i q = 2. Korzystajac
˛ z lematu 2.4.1 ograniczenie Hamming’a
przyjmuje postać:
1 + (n1 ) + (n2 ) + (n3 ) = 2n−k , dla pewnych n, k ∈ N .
Dla n = 23 i k = 12 otrzymujemy parametry binarnego kodu Goley’a G23.
Przykład 2.4.5. Niech t = 1 i q > 2. Wtedy ograniczenie Hamming’a przyjmuje postać:
1 + (q − 1)(n1 ) = q n−k ⇒ n = (q n−k − 1)/(q − 1), dla pewnych n, k ∈ N .
Niech t = 2 i q = 3. Wtedy ograniczenie Hamming’a przyjmuje postać:
1 + 2(n1 ) + 4(n2 ) = 3n−k . Równość jest spełniona dla n = 11 oraz k = 6, które sa˛ parametrami kodu Goley’a G11.
2.5
Wielomian Lloyd’a
Istnienie kodów doskonałych jest ściśle zwiazane
˛
z istnieniem całkowitych rozwiaza
˛ ń
pewnego wielomianu.
Definicja 2.5.1. Niech x ∈ R, n ≥ 0 b˛edzie liczba˛ całkowita˛ i niech q = pm dla dodatniej
liczby pierwszej p. Dla każdego k = 0, 1, . . . , n wielomianem Lloyd’a nazywamy:
Lk (x) :=
k
X
(−1)j (q − 1)k−j (x−1
)(n−x
j
k−j ),
gdzie
j=0
(xm ) :=





x(x−1)·...·(x−m+1)
m!
1



 0
m ∈ Z, m > 0,
dla m = 0,
wpp.
Twierdzenie 2.5.2. Twierdzenie (Lloyd’a)
Niech C b˛edzie nietrywialnym kodem doskonałym długości n o M słowach kodowych
i odległości 2t + 1 nad ciałem GF (q). Wówczas wielomian Lloyd’a Lt (x) ma t pierwiastków całkowitych spełniajacych
˛
warunek: 0 < δ1 < . . . < δt < n.
Lemat 2.5.3. Niech C b˛edzie nietrywialnym kodem doskonałym długości n i odległości
2t+1 nad ciałem GF (q). Wtedy Lt (0) = q l , dla pewnego l ∈ N oraz Lt (1) 6= 0 i Lt (2) 6= 0.
24
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
j
Dowód. Zauważmy, że (−1
˛ oraz z lematu 2.4.1 otrzymujemy
j ) = (−1) . Stad
Lt (0) =
t
X
(q −
1)t−j (nt−j )
= (q −
1)t (nt )
+ . . . + (q −
1)0 (n0 )
=
t
X
(q − 1)i (ni ) = q l ,
i=0
j=0
dla pewnego l ∈ N .
Teraz pokaż˛e, że wielomian Lloyd’a dla x = 1 i x = 2 nie ma pierwiastków. Ponieważ (00 ) = 1 oraz dla j > 1, (0j ) = 0, to z definicji wielomianu Lloyd’a mamy:
Lt (1) =
t
X
t n−1
) 6= 0,
(−1)j (q − 1)t−j (1−1
)(n−1
j
t−j ) = (q − 1) (t
j=0
gdyż dla kodów nietrywialnych t ≤ n − 1. Ponadto
Lt (2) =
t
X
t n−2
n−2
) − (q − 1)t−1 (t−1
).
(−1)j (q − 1)t−j (2−1
)(n−2
j
t−j ) = (q − 1) (t
j=0
Zauważmy, że:
n−2
t(n−2
) = (n − 1 − t)(n−2
t
t−1 ) oraz (t−1 ) =
(n − 2)!
(n − 2 − t + 1)!(t − 1)!
Stad
˛
Lt (2) =
=
(q − 1)t−1 n−2
(t−1 )((q − 1)(n − 1 − t) − t) =
t
(q − 1)t−1 n−2
(t−1 )(q(n − t − 1) − n + 1) = 0 dla
t
Ale q ≥ 2, czyli
t
n−t−1
q = 1 + t/(n − t − 1).
≥ 1, co implikuje n = 2t + 1. Z założenia kod C jest nietrywialny,
czyli Lt (2) 6= 0.
Twierdzenie 2.5.4. Nie istnieja˛ nietrywialne binarne kody doskonałe poprawiajace
˛ bł˛edy podwójne.
Dowód. Niech C b˛edzie binarnym kodem doskonałym długości n, poprawiajacym
˛
bł˛edy podwójne. Z lematu 2.4.1 otrzymujemy:
1 + n + (n2 ) = 2l ,
dla pewnego
l∈N
Z założenia kod C nie jest kodem trywialnym, zatem l > 1.
1+n+
(n − 1)n
= 2l
2
⇒
⇒
(2.1)
2.5. WIELOMIAN LLOYD’A
25
4n2 + 4n + 8 = 2l+3
(2n + 1)2 = 2l+3 − 7,
⇒
dla
l ∈ N.
(2.2)
Z definicji wielomianu Lloyd’a dla k = 2 otrzymujemy:
L2 (x) =
2
X
n−x
(−1)j (q − 1)2−j (x−1
)(2−j
) = (q − 1)2 (2n−x ) − (q − 1)(x − 1)(n − x) + (x−1
2 ).
j
j=0
Dla q = 2
1
L2 (x) = ((n − x − 1)(n − x) + (x − 1)(x − 2) − 2(x − 1)(n − x)) =
2
1 2
(n − nx − n − nx + x2 + x + x2 − 2x − x + 2 − 2nx − 2x + 2n + 2x2 ) =
2
1
1 2
(n − 4nx + n + 4x2 − 4x + 2) = (4x2 − 4xn − 4x + 2 + 2n + n2 − n) =
2
2
1
n(n
− 1)
1
(4x2 − 4xn − 4x + 2(1 + n +
)) = (4x2 − 4xn − 4x + 2l+1 ) =
2
2
2
1
= ((2x)2 − 2(n + 1)2x + 2l+1 ) ⇒
2
1
L2 (y) = (y 2 − 2(n + 1)y + 2l+1 ), dla y = 2x.
2
Na mocy twierdzenia Lloyd’a wielomian L2 (y) posiada dwa całkowite pierwiastki. Na
mocy lematu 2.5.3 mamy, że L2 (2) 6= 0 oraz L2 (4) 6= 0. Stad
˛ pierwiastki wielomianu
L2 (y) sa˛ postaci: y1 = 2d1 i y2 = 2d2 dla pewnych liczb naturalnych d1 , d2 > 2. Ze
wzorów Viete’a: y1 + y2 = 2(n + 1) oraz
y1 y2 = 2l+1 .
(2.3)
Stad
˛ y1 = 2a , y2 = 2b dla pewnych a, b takich, że 2 < a < b.
(2.4)
To implikuje, że
y1 + y2 = 2(n + 1) = 2a + 2b ,
czyli 2n + 1 = 2a + 2b − 1. Zatem z (2.2) otrzymujemy:
(2a + 2b − 1)2 = 2l+3 − 7.
Na mocy (2.3) mamy:
y1 y2 = 2l+1 = 2a · 2b
⇒
a + b − 1 = l.
(2.5)
26
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
Stad
˛ (2.5) przyjmuje postać:
(2a + 2b − 1)2 = 2l+3 − 7 = 2a+b+2 − 7
⇒
(2a + 2b )2 − 2(2a + 2b ) + 1 = 2a+b+2 − 7
⇒
22a + 2a+b+1 + 22b − 2a+1 − 2b+1 + 1 = 2a+b+2 − 7
22a + 2a+b+1 + 22b + 23 = 2a+b+2 + 2a+1 + 2b+1
22a−4 + 2a+b−3 + 22b−4 +
⇒
⇒
1
= 2a+b−2 + 2a−3 + 2b−3 .
2
Z uwagi iż 2 < a < b łatwo zauważyć, że lewa strona ostatniej równości zawiera ułamek 12 zaś prawa jest zawsze liczba˛ całkowita,˛ a zatem otrzymaliśmy sprzeczność. Udowodniliśmy, że nie istnieja˛ nietrywialne binarne kody doskonałe poprawiajace
˛ bł˛edy
podwójne.
Lemat 2.5.5. Niech C b˛edzie kodem doskonałym nad ciałem GF (q) długości n, k ≤ n ∈
N , oraz a1 , . . . ak b˛eda˛ pierwiastkami wielomianu Lloyd‘a Lk (x). Wtedy:
a1 + . . . + ak =
k(n − k)(q − 1) k(k + 1)
+
,
q
2
a1 a2 · . . . · ak = k!q l−k ,
gdzie q l , dla pewnego l ∈ N , jest liczba˛ słów kodowych kodu doskonałego, jak w lemacie 2.4.1.
Twierdzenie 2.5.6. Nietrywialny kod doskonały poprawiajacy
˛ dwa bł˛edy nad ciałem
GF (q), q = pr 6= 2 ma takie same parametry jak ternarny kod Goley’a G11.
Dowód. Niech C b˛edzie kodem doskonałym nad ciałem GF (q), długości n poprawiaja˛
cym bł˛edy podwójne. Na mocy lematu 2.4.1:
1 + (q − 1)n + (q − 1)2 (n2 ) = q l ,
dla
pewnego
l ∈ N.
Stad
˛
1 + qn − n + (q − 1)2
n(n − 1)
= ql
2
⇒
2 + 2qn − 2n + (n2 − n)(q 2 − 2q + 1) = 2q l
⇒
(2.6)
2.5. WIELOMIAN LLOYD’A
27
2 + 2qn − 2n + q 2 n2 − 2qn2 + n2 − nq 2 + 2qn − n = 2q l
2 − 3n + n2 + 4nq − 2n2 q + q 2 n2 − nq 2 = 2q l
⇒
⇒
8 − 12n + 4n2 + 16nq − 8n2 q + 4q 2 n2 − 4nq 2 = 8q l
⇒
4q 2 n2 − 4nq 2 + q 2 + 9 − 12n + 4n2 + 16nq − 6q − 8n2 q = q 2 − 6q + 1 + 8q l
q 2 (2n − 1)2 + 9 − 12n + 4n2 + 2(6nq − 3q − 4n2 q + 2nq) = q 2 − 6q + 1 + 8q l
(2nq − q)2 + (3 − 2n)2 + 2(2nq − q)(3 − 2n) = q 2 − 6q + 1 + 8q l
⇒
⇒
⇒
(2nq − q + 3 − 2n)2 = q 2 − 6q + 1 + 8q l ⇒
p
2nq − 2n − q + 3 = q 2 − 6q + 1 + 8q l ⇒
p
2nq − 2n − 4q + 4 + 3q = 1 + q 2 − 6q + 1 + 8q l ⇒
p
2(nq − n − 2q + 2) + 3q = 1 + q 2 − 6q + 1 + 8q l ⇒
p
2(n − 2)(q − 1) + 3q = 1 + q 2 − 6q + 1 + 8q l ⇒
p
2(n − 2)(q − 1)
q(
+ 3) = 1 + q 2 − 6q + 1 + 8q l .
q
Niech a1 i a2 b˛eda˛ pierwiastkami wielomianu Lloyd’a L2 (x). Z lematu 2.5.5 otrzymujemy:
a1 a2 = 2q l−2 ,
a1 + a2 =
2(n − 2)(q − 1)
+ 3,
q
(2.7)
czyli
q(a1 + a2 ) = 1 +
p
q 2 − 6q + 1 + 8q l .
(2.8)
Zgodnie z lematem 2.5.3 pierwiastkami wielomianu Lloyd’a sa˛ różne od 1 i 2, stad
˛
a1 , a2 > 2. Ponadto dla q = pr , gdzie p > 2 jest liczba˛ pierwsza,˛ wynika, że a1 = pw oraz
a2 = 2pt dla pewnych liczb naturalnych w, t ≥ 1. Wtedy
a1 a2 = 2pw+t = 2q l−2 = 2pr(l−2) .
Podstawiajac
˛ a1 i a2 do (2.8) otrzymujemy:
q(pw + 2pt ) − 1 =
p
q 2 − 6q + 1 + 8q l
⇒
q 2 (pw + 2pt )2 − 2q(pw + 2pt ) + 1 = q 2 − 6q + 1 + 8q l
⇒
28
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
−2(pw + 2pt ) + q(pw + 2pt )2 = q − 6 + 8q l−1
6 = 2(pw + 2pt ) − q(pw + 2pt )2 + q + 8q l−1
⇒
⇒
6 = 2(pw + 2pt ) − pr (pw + 2pt )2 + pr + 8q l−1 .
(2.9)
Dla minimalnych w = t = r = 1 i p liczby pierwszej wynika z (2.9), że p = 2 lub p = 3,
ponieważ już dla p = 5 lewa strona wynosi 6 a prawa 410. Jeśli p = 2 to q − 6 jest
podzielne przez 4, co implikuje q = 2 wbrew założeniu.
Rozważmy p = 3. Jeśli q = 3 (tzn. r = 1) to:
−2(3w + 2 · 3t ) + 3(3w + 2 · 3t )2 = −3 + 8 · 3l−1 .
Ponieważ −2(3w + 2 · 3t ) + 3(3w + 2 · 3t )2 ≥ 225 to dla l ≤ 3 powyższe równanie nie ma
rozwiaza
˛ ń. Niech teraz l ≥ 4. Po podzieleniu obu stron równania przez 3 mamy:
32w + 4 · 3w+t + 4 · 32t − 2 · 3w−1 − 4 · 3t−1 = −1 + 8 · 3l−2 .
Równość zachodzi dla t = 1, w = 2 oraz l = 5. Na mocy (2.6) n = 11 i C ma parametry
ternarnego kodu Goley’a G11.
Niech teraz q = 3r , gdzie r > 1. Równanie (2.9) przyjmuje postać:
7(3w + 2 · 3t ) ≡9 3 − 3r(l−1) .
Jeśli C jest nietrywialnym kodem doskonałym, to l > 1. Wtedy:
7(3w + 2 · 3t ) ≡9 3.
Mnożac
˛ przez 4 otrzymujemy:
3w + 2 · 3t ≡9 3, czyli w = 1 i t > 1.
Z zależności (2.7) otrzymujemy 1 + t = r(l − 2), co implikuje 31+t+r = 3r(l−1) . Wtedy
ponownie z (2.9)
−2(3 + 2 · 3t ) + 3r (3 + 2 · 3t )2 = 3r − 6 + 8 · 3r+t+1 ⇒
−4 · 3t + 8 · 3r = 4 · 3r+t+1 − 4 · 32t+r ⇒
2.6. NIELINIOWY KOD VASIL’EVA
29
−3t + 2 · 3r = 3r+t+1 − 32t+r .
Jak łatwo zauważyć, prawa strona ostatniej równości jest podzielna przez wyższa˛
pot˛eg˛e liczby 3 niż lewa, stad
˛ otrzymujemy sprzeczność. Zatem jedynymi parametrami
kodu doskonałego poprawiajacego
˛
dwa bł˛edy nad ciałem GF (q), dla q = pr 6= 2 sa˛
parametry kodu Goley’a G11.
Twierdzenie 2.5.7. Każdy doskonały kod binarny poprawiajacy
˛ wi˛ecej niż dwa bł˛edy
ma takie same parametry jak kod Goley’a G23.
Twierdzenie 2.5.8. Nie istnieja˛ nietrywialne kody doskonałe nad ciałem GF (q), q > 2,
poprawiajace
˛ wi˛ecej niż 2 bł˛edy.
Wniosek 2.5.9. Nietrywialny kod doskonały na ciałem GF (q) musi mieć dokładnie
parametry kodów Hamming’a lub kodów Goley’a G23 i G11.
Zatem jedyne nietrywialne kody doskonałe poprawiajace
˛ bł˛edy wielokrotne sa˛ równoważne jednemu z kodów Goley’a G23 lub G11. Dla doskonałych kodów poprawiajacych
˛
bł˛edy pojedyncze sytuacja jest nieco inna.
2.6
Nieliniowy kod Vasil’eva
Dowolny nietrywialny liniowy kod doskonały poprawiajacy
˛ bł˛edy pojedyncze jest równoważny z jednym z kodów Hamming’a Hr (q) dla q ≥ 2. Nie jest to jednak prawda˛ jeśli
pominie si˛e założenie o liniowości. W 1962 roku Vasil’ev skonstruował rodzin˛e nieliniowych binarnych kodów poprawiajacych
˛
bł˛edy pojedyncze z takimi samymi parametrami jak kody Hamming’a.
Niech C b˛edzie kodem doskonałym, binarnym, o długości n = 2m − 1, poprawiaja˛
cym bł˛edy pojedyncze o M = 2n−m słowach kodowych i odległości d = 3, niekoniecznie liniowym. Niech λ b˛edzie nieliniowym (tzn. λ(u + v) 6= λ(u) + λ(v) dla pewnych
u, v ∈ C) przekształceniem z C w Z2 spełniajacym
˛
warunek λ(0) = 0.
Niech ponadto dla u ∈ Z2n oraz k ∈ N :

 0 dla wt(u) = 2k,
π(u) :=
 1 dla wt(u) = 2k + 1.
30
ROZDZIAŁ 2. PRZYKŁADY I WŁASNOŚCI KODÓW DOSKONAŁYCH
Kodem Vasil’eva poprawiajacym
˛
bł˛edy pojedyncze nazywamy nast˛epujacy
˛ kod V
V := {u|u + v|π(u) +2 λ(v)
:
u ∈ Z2 ,
v ∈ C},
długości n = 2m+1 − 1 o 2n−m−1 słowach kodowych i odległości 3.
Jest to kod nieliniowy. Niech v1 , v2 ∈ C b˛eda˛ takie, że λ(v1 + v2 ) 6= λ(v1 ) + λ(v2 ). Wtedy
dla u1 , u2 ∈ Z2 suma dwóch słów u1 |u1 + v1 |π(u1 ) +2 λ(v1 ), u2 |u2 + v2 |π(u2 ) +2 λ(v2 ) ∈ V
nie należy do V gdyż,
u1 |u1 + v1 |π(u1 ) +2 λ(v1 )
+
u2 |u2 + v2 |π(u2 ) +2 λ(v2 ) =
= u1 + u2 |u1 + v1 + u2 + v2 |π(u1 ) +2 λ(v1 ) +2 π(u2 ) +2 λ(v2 )
a to słowo nie należy do V , ponieważ dla u3 = u1 + u2 oraz u3 + v3 = u1 + v1 + u2 + v2 ,
trzeci fragment ma postać:
π(u3 ) +2 λ(v3 ) = π(u1 + u2 ) +2 λ(v1 + v2 ) 6= π(u1 ) +2 λ(v1 ) +2 π(u2 ) +2 λ(v2 ).
Przykład 2.6.1. Niech C b˛edzie (7, 4)-kodem Hamming’a o długości n = 23 − 1 = 7 i
M = 24 = 16 słowach kodowych. Niech λ b˛edzie nieliniowym przekształceniem z C w
Z2 :
λ(1, 1, 1, 0, 0, 0, 0) := 1,
λ(1, 1, 1, 1, 1, 1, 1) := 1,
dla c ∈ C \ {(1, 1, 1, 1, 1, 1, 1), (1, 1, 1, 0, 0, 0, 0)},
λ(c) := 0.
Wtedy dla u = (1, 1, 1, 0, 0, 0, 0) oraz v = (1, 1, 0, 1, 0, 0, 1) spełnione jest założenie o
nieliniowości: λ(u + v) 6= λ(u) + λ(v) oraz λ(0, 0, 0, 0, 0, 0, 0) = 0.
Niech D b˛edzie kodem Vasil’eva:
D := {u|u + v|π(u) +2 λ(v)
:
u ∈ Z2 ,
v ∈ C}.
Dla u = (1, 1, 1, 0, 0, 0, 0) oraz v = (1, 1, 0, 1, 0, 0, 1) słowo kodu Vasil’eva ma postać:
d1 = (1, 1, 1, 0, 0, 0, 0|0, 0, 1, 1, 0, 0, 1|1), ostatni symbol jest jedynka˛ ponieważ wt(u) = 3,
zatem π(u) = 1, a λ(v) = 0.
Dla u = (1, 1, 1, 0, 0, 0, 0) oraz v = (1, 1, 1, 1, 1, 1, 1) słowo kodu Vasil’eva ma postać:
2.6. NIELINIOWY KOD VASIL’EVA
31
d2 = (1, 1, 1, 0, 0, 0, 0|0, 0, 0, 1, 1, 1, 1|0). Stad
˛ d1 + d2 = (0, 0, 0, 0, 0, 0, 0|0, 0, 1, 0, 1, 1, 0|1).
Słowo to nie należy do D ze wzgl˛edu na ostatni symbol, który powinien być zerem,
ponieważ wt(u) = 0, czyli π(u) = 0 oraz λ(v) = λ(0, 0, 1, 0, 1, 1, 0) = 0.
Pokazaliśmy, że kody Vasil’eva istnieja˛ tworzac
˛ kod D oraz udowodniliśmy, że rzeczywiście nie jest on liniowy.
Nieco później Schonheim i Lindstrom znaleźli nieliniowe kody doskonałe nad dowolnymi ciałami.
Rozdział 3
Kody doskonałe a grupy permutacji
3.1
Grupy automorfizmów kodów
Zauważmy, że każda˛ permutacj˛e π ∈ Sn można reprezentować macierza˛


A1,1 · · · A1,n


 ..
..
.. 
n
A= .
.
.  ∈ Mn , gdzie


An,1 · · · An,n

 1 jeśli π(i) = j,
Ai,j :=
 0 wpp.
Przykład
3.1.1. Naprzykład permutacj˛e:

1 2 3 4 5


1 4 2 5 3

1


0


można reprezentować macierza:˛ A = 0


0

0
0 0 0
0 0 1
1 0 0
0 0 0
0 1 0

0


0


0∈ M55 .


1

0
Definicja 3.1.2. Niech C b˛edzie kodem długości n. Wszystkie permutacje współrz˛ednych wektorów kodu C, które przekształcaja˛ kod C w ten sam kod C, tworza˛ podgrup˛e
32
3.1. GRUPY AUTOMORFIZMÓW KODÓW
33
Aut(C) grupy Sn , zwana˛ grupa˛ automorfizmów (lub grupa˛ permutacji) kodu C.
Zauważmy, że π ∈ Aut(C) wtedy i tylko wtedy, gdy dla każdego słowa c = (c1 , . . . , cn ) ∈
C, π(c) := (cπ(1) , . . . , cπ(n) ) ∈ C.
Przykład 3.1.3. Dla trywialnych kodów C1 = Z2n oraz C2 = {0n }, grupa automorfizmów jest równa Sn .
Przykład 3.1.4. Grupa automorfizmów kodu C = {(0, 0, 0, 0), (0, 0, 1, 1), (1, 1, 0, 0), (1, 1, 1, 1)}
składa si˛e z nast˛epujacych
˛
8 permutacji π ∈ S4 :
Aut(C) = {(1), (12), (34), (12)(34), (13)(24), (14)(23), (1324), (1423)}.
Lemat 3.1.5. Niech G ∈ Mnk b˛edzie macierza˛ generujac
˛ a˛ binarny (n, k)-kod C i π ∈ Sn
b˛edzie permutacja˛ reprezentowana˛ przez macierz A ∈ Mnn . Permutacja π ∈ Aut(C)
wtedy i tylko wtedy, gdy istnieje odwracalna macierz K ∈ Mkk taka, że GK = AG.
˛ a˛ kod C to macierz (AG) ∈ Mnk też jest
Dowód. Jeśli G ∈ Mnk jest macierza˛ generujac
macierza˛ generujac
˛ a˛ kod C wtedy i tylko wtedy, gdy permutacja π ∈ Aut(C). Z drugiej
strony macierze AG i G generuja˛ ten sam kod wtedy i tylko wtedy, gdy sa˛ kolumnoworównoważne, czyli wtedy i tylko wtedy, gdy istnieje odwracalna macierz K ∈ Mkk taka,
że GK = AG. To oznacza, że π ∈ Aut(C) wtedy i tylko wtedy, gdy istnieje odwracalna
macierz K ∈ Mkk taka, że GK = AG.
Lemat 3.1.6. Niech C b˛edzie kodem liniowym, a C ⊥ kodem dualnym do C. Wtedy
AutC = AutC ⊥ .
Dowód. Aby udowodnić, że AutC = AutC ⊥ pokaż˛e, że każda permutacja z grupy AutC
należy również do grupy AutC ⊥ i odwrotnie. Z definicji kodu dualnego:
C ⊥ = {u ∈ GF n (q) | u ⊥ w, w ∈ C}.
Niech d ∈ C ⊥ . Wtedy
d ⊥ c dla każdego c ∈ C.
(3.1)
Niech π ∈ AutC. Z (3.1), π(d) ⊥ π(c) dla każdego c ∈ C. Ponieważ π(c) ∈ C, zatem
każdy wektor π(d), gdzie d ∈ C ⊥ , jest ortogonalny do dowolnego wektora z przestrzeni
34
ROZDZIAŁ 3. KODY DOSKONAŁE A GRUPY PERMUTACJI
C. Z definicji kodu dualnego π(d) ∈ C ⊥ , czyli π ∈ Aut(C ⊥ ). Zawieranie Aut(C ⊥ ) ⊆
Aut(C) dowodzi si˛e analogicznie.
Bezpośrednia˛ konsekwencja˛ twierdzenia Cayley’a (1.1.11) jest nast˛epujacy
˛ fakt.
Wniosek 3.1.7. Każda skończona grupa jest izomorficzna z podgrupa˛ grupy AutC, dla
pewnego kodu doskonałego C poprawiajacego
˛
bł˛edy pojedyncze.
Dowód. Na mocy lematów (3.1.5) oraz (3.1.6) grupa automorfizmów binarnego (n, k)kodu liniowego jest izomorficzna z pewna˛ podgrupa˛ wszystkich odwracalnych macierzy binarnych wymiaru (n − k) × (n − k). W szczególności dla binarnego liniowego
kodu doskonałego C długości n = 2r − 1 oznacza to, że permutacj˛e π ∈ Sn określona˛
dla pewnych r elementów można w jednoznaczny sposób rozszerzyć do automorfizmu kodu C.
Niech G b˛edzie grupa˛ o r elementach. Na mocy twierdzenia Cayley’a (1.1.11) G jest
izomorficzna z pewna˛ podgrupa˛ grupy Sr , która jest izomorficzna z grupa˛ automorfizmów pewnego kodu doskonałego.
Jak pokazał Phelps [3] można udowodnić nawet wi˛ecej.
Twierdzenie 3.1.8. Każda skończona grupa jest izomorficzna z grupa˛ automorfizmów
pewnego binarnego kodu doskonałego poprawiajacego
˛
bł˛edy pojedyncze.
3.2
Kody doskonałe z trywialna˛ grupa˛ permutacji
Liczba różnych binarnych kodów doskonałych poprawiajacych
˛
bł˛edy pojedyncze jest
bardzo duża, stad
˛ potrzeba pewnej ich klasyfikacji. Jedna˛ z metod może być badanie
grup permutacji, rz˛edu badź
˛ jadra
˛
takich kodów.
Niech C b˛edzie binarnym kodem doskonałym, długości n = 2w − 1 dla w ∈ N , poprawiajacym
˛
bł˛edy pojedyncze. Najmniejsza˛ przestrzeń liniowa˛ zawierajac
˛ a˛ zbiór C
b˛edziemy oznaczać < C >.
Definicja 3.2.1. Wymiar przestrzeni liniowej < C > generowanej przez kod C nazywamy rz˛edem kodu C i oznaczamy r(C).
3.2. KODY DOSKONAŁE Z TRYWIALNA˛ GRUPA˛ PERMUTACJI
35
Dla liniowego kodu doskonałego C o długości n rzad
˛ r(C) = n − log2 (n + 1). W szczególności, jeżeli n = 2w − 1, to r(C) = n − w.
Definicja 3.2.2. Słowo p ∈ C nazywamy cyklem kodu C, jeśli:
p + C := {p + d|d ∈ C} = C.
Dla kodów liniowych każde słowo kodowe jest cyklem.
Definicja 3.2.3. Zbiór cykli kodu C nazywamy jadrem
˛
kodu C i oznaczamy jako ker(C).
Dla kodów liniowych ker(C) = C.
Lemat 3.2.4. Niech C b˛edzie kodem binarnym długości n. Jadro
˛
kodu C jest liniowa˛
podprzestrzenia˛ Z2n .
Dowód. Niech C b˛edzie kodem binarnym długości n. Pokażemy, że zbiór ker(C) jest
podprzestrzenia˛ Z2n . Niech p1 , p2 ∈ ker(C). Wtedy p1 + C = p2 + C = C, co implikuje
(p1 + p2 ) + C = p1 + (p2 + C) = p1 + C = C, czyli p1 + p2 ∈ ker(C), co dowodzi, że
ker(C) ≤ Z2n .
W szczególności dla p ∈ ker(C) mamy p + p ∈ ker(C), a zatem 0n ∈ ker(C).
Jak pokazuje nast˛epne stwierdzenie istnieja˛ kody doskonałe z trywialna˛ grupa˛ permutacji.
Stwierdzenie 3.2.5. Avgustinovich’a i Solov’eva [5]
Niech n ∈ N, n ≥ 255. Istnieje binarny kod doskonały długości n poprawiajacy
˛ bł˛edy
pojedyncze, rz˛edu n z trywialna˛ grupa˛ permutacji i trywialnym jadrem.
˛
Stwierdzenie (3.2.5) rozszerzył S. A. Malyugin. Stosujac
˛ techniki komputerowe pokazał, że jest ono prawdziwe także dla każdego n ≥ 15.
Twierdzenie 3.3.1, b˛edace
˛ głównym rezultatem tej cz˛eści pokazuje, że istnieja˛ kody doskonałe (dowolnego rz˛edu) z trywialna˛ grupa˛ permutacji.
Niech n ∈ N . Dla każdego i ≤ n, niech ei b˛edzie słowem wagi 1 postaci:
ei := (0, . . . , 0, 1, 0, . . . , 0) ∈ Z2n .
i
36
ROZDZIAŁ 3. KODY DOSKONAŁE A GRUPY PERMUTACJI
Dla dowolnego podzbioru I ⊆ {1, 2, . . . , n} definiujemy słowo:
eI :=
X
ei .
i∈I
Lemat 3.2.6. Dla każdego binarnego kodu doskonałego C długości n = 2w − 1 poprawiajacego
˛
bł˛edy pojedyncze, którego rzad
˛ r(C) spełnia warunek:
n − log2 (n + 1) + 2 ≤ r(C) ≤ n − 1
(3.2)
istnieje podział zbioru N := {1, . . . , n} na rozłaczne
˛
podzbiory I0 , . . . , It takie, że
|I0 | + 1 = |I1 | = |I2 | = . . . = |It | = (n + 1)/(t + 1)
oraz
t = 2n−r(C) − 1.
Ponadto każdy wektor eIi , dla i = 0, . . . , t jest cyklem.
Taki podział nazywamy fundamentalnym podziałem zbioru {1, . . . , n} dla kodu C.
Uwaga 3.2.7. Jeśli π ∈ Aut(C) to π przekształca podział fundamentalny zbioru N na
taki sam podział fundamentalny zbioru N .
Przykład 3.2.8. Niech H3 b˛edzie (7, 4) kodem Hamming‘a. Kod C jest liniowy, zatem
rzad
˛ r(C) = 4. Nierówność 4 + 2 ≤ 4 ≤ 6 (3.2) nie jest spełniona, zatem podział fundamentalny nie b˛edzie istniał. Ponadto dla dowolnego doskonałego kodu liniowego nierówność (3.2) nie b˛edzie spełniona, ponieważ otrzymujemy, że r(C) + 2 ≤ r(C) ≤ n − 1.
Zatem niech V b˛edzie kodem nieliniowym z przykładu (2.6.1) o długości n = 15. Z
nierówności (3.2) otrzymujemy, że rzad
˛ takiego kodu powinien spełniać:
15 − log2 (16) + 2 ≤ r(C) ≤ 14 ⇒
13 ≤ r(C) ≤ 14 ⇒
r(C) = 13 lub r(C) = 14.
Gdyby r(C) = 13 to t = 215−13 − 1 = 3. Zatem w podziale fundamentalnym otrzymamy
4 podzbiory, których liczność b˛edzie wynosić |I1 | = . . . = |I7 | = (15 + 1)/(3 + 1) = 4
3.2. KODY DOSKONAŁE Z TRYWIALNA˛ GRUPA˛ PERMUTACJI
37
oraz |I0 | = 3. Założenia dotyczace
˛ eIi ograniczaja˛ nam wybór Ii . Przypuśćmy, że I0 =
{1, 2, 3}, I1 = {4, 5, 6, 7}, I2 = {8, 9, 10, 11}, I3 = {12, 13, 14, 15}, wtedy eIi sa˛ postaci:
eI0 = (1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
eI1 = (0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),
eI2 = (0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0),
eI3 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1).
Wszystkie powyższe eI0 , eI1 , eI2 , eI3 powinny być cyklami. Ponadto musi zostać spełniony warunek N = I0 ∪ . . . ∪ It .
Rozważmy eI0 . Niech u = v = (1, 1, 1, 0, 0, 0, 0), wtedy π(u) +2 λ(v) = 1 +2 1 = 0, stad
˛
eI0 jest słowem kodowym, ale nie jest cyklem ponieważ
d1 = (1, 1, 1, 0, 0, 0, 0|0, 0, 1, 1, 0, 0, 1|1)
z przykładu (2.6.1) dodane do eIi nie daje nam wektora b˛edacego
˛
słowem kodowym.
Otrzymujemy:
(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1),
czyli u = (0, 0, 0, 0, 0, 0, 0), a v = (0, 0, 1, 1, 0, 0, 1) stad
˛ π(u) +2 λ(v) = 0, a nie 1. Powyższy wybór zbiorów Ii był bł˛edny. Lemat (3.2.6) nie daje nam informacji jak otrzymać
podział zbioru N . Wiemy tylko, że taki podział istnieje.
Definicja 3.2.9. Niech v = (v1 , . . . , vn ) ∈ Z2n . Nośnikiem wektora v nazywamy zbiór
supp(v) := {i|vi 6= 0}.
Dla słowa v = (1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), supp(v) = {1, 2, 3}.
Lemat 3.2.10. Niech C b˛edzie kodem binarnym i niech I ⊆ {1, . . . , n}. Zbiór:
Z2I := {v ∈ Z2n :
supp(v) ⊆ I}
jest podprzestrzenia˛ przestrzeni wektorowej Z2n .
38
ROZDZIAŁ 3. KODY DOSKONAŁE A GRUPY PERMUTACJI
Dowód. Wystarczy pokazać, że:
v1 , v2 ∈ Z2I ⇒ v1 + v2 ∈ Z2I .
˛ supp(v1 + v2 ) ⊆ I.
Niech v1 , v2 ∈ Z2I . Wtedy supp(v1 ), supp(v2 ) ⊆ I. Stad
Zatem v1 + v2 ∈ Z2I .
Jeżeli I0 , I1 , . . . , It jest podziałem zbioru {1, . . . , n} to czasami wektor c ∈ Z2n b˛edziemy zapisywać w postaci c = (c0 |c1 | . . . |ct ), gdzie ci dla i = 0, 1, 2, . . . , t jest rzutem
wektora c na podprzestrzeń Z2Ii .
Na przykład dla podziału zbioru {1, 2, . . . , 15} z Przykładu 3.2.8 wektor
v = (1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1)
zapiszemy wtedy w nast˛epujacej
˛ postaci v = (v0 |v1 |v2 |v3 ), gdzie v0 = (1, 1, 1), v1 =
(0, 1, 1, 0), v2 = (0, 0, 0, 0), v3 = (0, 1, 0, 1).
3.3
Twierdzenie Heden’a
Podamy teraz konstrukcj˛e binarnego kodu doskonałego poprawiajacego
˛
bł˛edy pojedyncze z trywialna˛ grupa˛ permutacji
Niech t = 2p − 1 i s = 2m − 1 dla pewnych liczb naturalnych p, m ≥ 4 i niech
n = (s + 1)(t + 1) − 1. Elementy w zbiorze {1, . . . , n} możemy reprezentować jako
nast˛epujace
˛ pary:
{(0, 1), . . . , (0, s), (1, 1), . . . , (1, s + 1), (2, 1), . . . , (2, s + 1), . . . , (t, 1), . . . , (t, s + 1)}.
Załóżmy, że:
I0 = {(0, 1), . . . , (0, s)}, I1 = {(1, 1), . . . , (1, s + 1)}, . . . , It = {(t, 1), . . . , (t, s + 1)}
jest podziałem zbioru {1, . . . , n}.
Wtedy każdy wektor należacy
˛ do Z2n zapiszemy jako:
(x(0,1) , . . . , x(0,s) |x(1,1) , . . . , x(1,s+1) |x(2,1) , . . . , x(2,s+1) | . . . |x(t,1) , . . . , x(t,s+1) ), gdzie x(i,j) ∈ Z2 .
3.3. TWIERDZENIE HEDEN’A
39
Wprowadźmy nast˛epujace
˛ oznaczenia.
Niech x ∈ Z n . Dla 1 ≤ j ≤ s + 1:
σj (x) :=
t
X
x(i,j) ,
i=1
σ(x) := (σ1 (x), . . . , σs+1 (x)).
Niech dla każdego i = 1, 2, . . . , t, fi0 oznacza wektor (0s |0s+1 | . . . |0s+1 ) oraz niech dla
i = 1, 2, . . . , t i k = 1, 2, . . . , s, fik := e(i,k) + e(i,s+1) .
Na przykład dla n = 32 · 16 − 1:
f1 0 = f2 0 = . . . = f31 0 = (015 |015+1 | . . . |015+1 ),
f1 1 = e(1,1) + e(1,15+1) , f2 1 = e(2,1) + e(2,15+1) , . . . , f31 1 = e(31,1) + e(31,15+1) ,
gdzie np. f2 1 = e(2,1) + e(2,15+1) = (015 |015+1 |10 . . . 01|015+1 | . . . |015+1 ),
Przyjmijmy dodatkowo, że dla każdego c = (c1 , . . . , cn ) ∈ Z2n , wektor c∗ := (c1 , . . . , cn−1 ).
Twierdzenie 3.3.1. Niech n = 2k − 1 dla k ≥ 8 oraz niech r spełnia warunek:
n − log(n + 1) + 4 ≤ r ≤ n − 4.
Wtedy istnieje binarny kod doskonały długości n, rz˛edu r poprawiajacy
˛ bł˛edy pojedyncze, z trywialna˛ grupa˛ permutacji.
Dowód. Niech Hp b˛edzie binarnym kodem Hamming’a długości t = 2p − 1, Hm binarnym kodem Hamming’a długości s = 2m − 1 i niech C0 oraz C1 b˛eda˛ kodami doskonałymi długości s = 2m − 1 takimi, że 0s ∈ C0 , 0s ∈ C1 , Aut(C0 ) = {id} oraz
ker(C1 ) = {0s }. Kody C0 i C1 istnieja˛ na mocy stwierdzenia (3.2.5). Niech ponadto G
b˛edzie nieliniowym kodem doskonałym długości s zawierajacym
˛
wektor 0s oraz C dowolnym kodem doskonałym długości s zawierajacym
˛
wektor 0s . Niech {d1 , d2 , . . . , dp }
b˛edzie baza˛ kodu dualnego Hp⊥ .
40
ROZDZIAŁ 3. KODY DOSKONAŁE A GRUPY PERMUTACJI
Dla każdego l = 1, . . . , t oraz h ∈ Hp niech Ch,l b˛edzie kodem postaci:

e


Hm
dla 3 ≤ wt(h) ≤ p + 2 i l ∈ supp(dwt(h)−2 )




 Ge dla 3 ≤ wt(h) ≤ p + 2 i l ∈
/ supp(dwt(h)−2 ),
Ch,l :=


C e dla p + 2 < wt(h) i l = 1, . . . , t




 H
dla l = 0
(3.3)
m
Niech ponadto γ : Hp → Z2n b˛edzie
przekształceniem takim, że
γ((h1 , h2 , . . . , ht )) := (0s |0 . . . 0h1 |0 . . . 0h2 | . . . |0 . . . 0ht )
Dla każdego słowa h ∈ Hp skonstruujemy kod Ch w nast˛epujacy
˛ sposób.
Dla h = 0t :
C0t := {(c∗1 + . . . + c∗t + C0 |c1 |c2 | . . . |ct )
:
c1 , c2 , . . . , ct ∈ Z2s+1 }.
Dla h = 1t :
C1t := γ((1, 1, . . . , 1)) + {(c∗1 + . . . + c∗t + C1 |c1 |c2 | . . . |ct )
:
c1 , c2 , . . . , ct ∈ Z2s+1 }.
Dla h 6= 0t , 1t :
Ch := (∪(k1 ,...,kt )∈S t (σ ∗ (f1k1 + . . . + ftkt ) + Ch,0 |f1k1 + Ch,1 | . . . |ftkt + Ch,t )) + γ(h),
gdzie S = {0, 1, 2, . . . , s}.
Binarnym kodem doskonałym spełniajacym
˛
warunki twierdzenia jest kod długości n:
CHp :=
•
[
Ch .
h∈Hp
Pokażemy, że Aut(CHp ) = {id}. Niech π ∈ Aut(CHp ). Można sprawdzić, że zbiory:
I0 = {(0, 1), (0, 2), . . . , (0, s)}, I1 = {(1, 1), (1, 2), . . . , (1, s + 1)}, . . . ,
It = {(t, 1), (t, 2), . . . , (t, s + 1)}
tworza˛ fundamentalny podział N = {1, . . . , n} dla kodu CHp . To oznacza na mocy uwagi (3.2.7), że jeśli i1 , i2 ∈ Ik to istnieje k 0 takie, że π(i1 ), π(i2 ) ∈ Ik0 .
3.3. TWIERDZENIE HEDEN’A
41
I0 jest jedynym zbiorem z s elementami w fundamentalnym podziale, zatem π(I0 ) = I0 .
Pokażemy, że π(Ik ) = Ik , dla k = 1, 2, . . . , t.
Załóżmy, że π(Ik ) = Ik0 dla k 6= k 0 . Istnieje wektor bazowy dq kodu Hp⊥ taki, że |{k, k 0 } ∩
supp(dq )| = 1.
Jest tak, ponieważ nie jest możliwe, aby dla współrz˛ednych 1 ≤ k, k 0 ≤ t każdy
wektor bazowy miał 1 na k i k 0 pozycji lub 0 na k i k 0 pozycji. Ponieważ wtedy macierz
generujaca
˛ kodu dualnego (Hpt )T miała by dwa takie same wiersze.
Załóżmy, że k ∈ supp(dq ) i k 0 ∈
/ supp(dq ). Niech h ∈ Hp b˛edzie takie, że q = wt(h) − 2
i rozważmy kod Ch . Permutacja π przekształca kod Ch na Ch0 , gdzie wt(h) = wt(h0 ).
Kod Ch zawiera mi˛edzy innymi słowa:
(c0 |c1 | . . . |ct ) + γ(h), gdzie dla i = 0, 1, . . . , t

 {0 } dla i 6= k,
s+1
ci ∈
 He
dla i = k.
m
Kod Ch0 zawiera mi˛edzy innymi słowa:
(c0 |c1 | . . . |ct ) + γ(h0 ), gdzie dla i = 0, 1, . . . , t

 {0 } dla i 6= k 0 ,
s+1
ci ∈
 Ge
dla i = k 0 .
e
Gdyby π(Ik ) = Ik0 to ponieważ π(CHp ) = CHp otrzymalibyśmy, że π(Hm
) = Ge . Ale
kod rozszerzony nieliniowego kodu doskonałego nigdy nie może być równoważny
rozszerzonemu kodowi Hamming’a, stad
˛ otrzymujemy sprzeczność. To dowodzi, że
π(Ik ) = Ik dla k = 1, 2, . . . , t.
Ponieważ (C0 |0s+1 | . . . |0s+1 ) ⊆ CHp zatem (π(C0 )|0s+1 | . . . |0s+1 ) ⊆ CHp . Ale Aut(C0 ) =
{id}, stad
˛ ograniczenie π do zbioru I0 jest identycznościa.˛
Niech 1 ≤ i ≤ s + 1. Pokażemy, że π((k, i)) = (k, i) dla (k, i) ∈ Ik , k = 1, 2, . . . , t.
Przypuśćmy, że π((k, i)) = (k, j) i niech π −1 ((k, i)) = (k, l). Wtedy CHp zawiera słowa:
c = (σ ∗ (e(k,i) + e(k,l) )|0s+1 | . . . |0s+1 |e(k,i) + e(k,l) |0s+1 | . . . |0s+1 ),
42
ROZDZIAŁ 3. KODY DOSKONAŁE A GRUPY PERMUTACJI
c0 = (σ ∗ (e(k,i) + e(k,j) )|0s+1 | . . . |0|e(k,i) + e(k,j) |0s+1 | . . . |0s+1 )
oraz
π(c) = (σ ∗ (e(k,i) + e(k,l) )|0s+1 | . . . |0s+1 |e(k,j) + e(k,i) |0s+1 | . . . |0s+1 ).
Zauważmy, że:

 0 dla (k, j) = (k, l);
∗
∗
d(σ (e(k,i) + e(k,j) ), σ (e(k,i) + e(k,l) )) =
 2 wpp;
Ponieważ dla c0 6= π(c), d(c0 , π(c)) ≥ 3 to znaczy, że π((k, i)) = (k, j) = (k, l). Stad
˛ π
musi być złożeniem rozłacznych
˛
cykli długości 2.
Bez zmniejszenia ogólności możemy założyć, że dla b = 1, 2, . . . , (s + 1)/2:
π(2b − 1) = 2b i π(2b) = 2b − 1.
Pokażemy, iż to założenie implikuje, że C1 posiada nietrywialne jadro.
˛
Niech a = (a1 , a2 , . . . , as ) ∈ C1 . Wtedy wektor:
v = (a + a|(a1 , . . . , as ,
s
X
ai )|0s+1 | . . . |0s+1 ) + (0s |0 . . . 01| . . . |0 . . . 01|) ∈ CHp .
i=1
Jeśli π ∈ Aut(CHp ) to
π(v) = (0s |(a2 , a1 , a4 , a3 , . . . ,
s
X
ai , as )|0s+1 | . . . |0s+1 ) + (0s |0 . . . 01| . . . |0 . . . 01|) ∈ CHp ,
i=1
co oznacza, że wektor (a2 , a1 , a4 , a3 , . . . ,
Ps
i=1
ai ) ∈ C1 . Stad
˛ dla każdego z = 1, 2, . . . , (s−
1)/2:
v 0 = (e2z |(a2 , a1 , a4 , a3 , . . . ,
s
X
ai , as +1)+e2z |0s+1 | . . . |0s+1 )+(0s |0 . . . 01| . . . |0 . . . 01|) ∈ CHp .
i=1
Zatem wektor:
0
π(v ) = (e2z |(a1 , a2 , a3 , a4 , . . . , as +1,
s
X
ai )+e2z−1 |0s+1 | . . . |0s+1 )+(0s |0 . . . 01| . . . |0 . . . 01|)
i=1
również należy do kodu CHp .
Z definicji kodu CHp otrzymujemy, że
3.3. TWIERDZENIE HEDEN’A
43
a + e2z−1 + es ∈ e2z + C1 .
Ponieważ a ∈ C wybraliśmy dowolnie oraz a + e2z−1 + es + e2z ∈ C1 dostajemy, że
wektor e2z−1 + es + e2z 6= 0n jest cyklem w C1 , co przeczy założeniu, że C1 ma trywialne
jadro.
˛
Bibliografia
[1] A. Romanowska, Algebra i jej zastosowania, konspekt wykładu 2006.
[2] W. Lipski, W. Marek, Analiza kombinatoryczna, PWN (Biblioteka Matematyczna,
tom 59), 1986.
[3] K. T. Phelps, Every Finite Group Is the Automorphism Group of Some Perfect Code,
Journal of Combinatorial Theory, Series A43, (45-51) 1986 Academic Press.
[4] A. Pilitowska, Kody wykrywajace
˛ i korygujace
˛ bł˛edy, konspekt wykładu 2006/07.
[5] S. V. Avgustinovich, Olof Heden, Faina I. Solov’eva, On intersection problem for perfect binary codes, Des Codes Cryptography (2006) 39:317–322.
[6] O. Heden, On the symmetry group of perfect 1-error correcting binary codes, January
24, 2003, Department of Mathematics, KTH, S-100 44 Stockholm, Sweden.
[7] G. Sanders, Perfect Codes, Math 540, November 11, 2004.
[8] N. J. A. Sloane, F. J. Mac Williams, The Theory of Error-Correcting Codes, NorthHolland, 1983.
44
Warszawa, dnia ...............
Oświadczenie
Oświadczam, że prac˛e magisterska˛ pod tytułem: „Kody doskonałe”, której promotorem jest dr inż. Agata Pilitowska, wykonałem samodzielnie, co poświadczam własnor˛ecznym podpisem.
...........................................