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 jestnast˛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. Naprzykł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. ...........................................