. Blokkrendszerek Definíció. Egy (H, H), H H halmazrendszer t (v, k, λ)-blokkrendszer, ha H = v, B H : B = k, és H minden t elemű részhalmazát H-nak pontosan λ eleme tartalmazza. H elemeit blokkoknak nevezzük. Példa. Egy q rendű projektív sík (pontjaival és egyeneseivel) (q + q +, q +, ) blokkrendszert alkot. Egy t (v, k, λ) blokkrendszer λ = esetén Steiner-rendszer Ha C egy 0-t tartalmazó e-hibajavító perfekt kód GF () n -ben, akkor a C-beli minimális pozitív súlyú kódszavak tartói egy (e + ) (n, e +, ) blokkrendszert adnak. Állítás. A (,, ) blokkrendszer létezik és egyértelmű. Az állítást nem bizonyítjuk, de a létezést a Paley-féle konstrukció mutatja: legyen H a (mod ) maradékosztályok halmaza, S = {0,, 3, 4,, 9} H a kvadratikus maradékok, és legyen H = {S + x x H}. Ekkor (H, H) (,, ) blokkrendszer. Következmény. Mivel egy (,, ) blokkrendszer komplementere (azaz (H, {H \ B B H})) (, 6, 3) blokkrenszer és viszont, ez utóbbi is egyértelmű. Ha H H egy t (v, k, λ) blokkrendszer, és A H, A = a t, akkor (H \ A, {B \ A B H, A B}) egy (t a) (v a, k a, λ) blokkrendszer.. A bináris Golay-kódok GF () felett az x 3 polinom három irreducibilis tényező szorzatára bomlik: x 3 = (x )p(x)q(x), ahol és p(x) = x + x 9 + x 7 + x 6 + x + x + q(x) = x + x 0 + x 6 + x + x 4 + x + Ezen fokú polinomok bármelyikének legfeljebb fokú többszörosei egy [3,, 7] kódot alkotnak, a perfekt bináris Golay-kódot, amit G 3 jelöl. Egy paritásbittel kiegészítve kapjuk a G 4 kibővített bináris Golay-kódot, amelyről belátható, hogy önortogonális, [4,, 8] kód, amelyben minden kódszó súlya 4 többszöröse (vagyis duplán páros). Célunk annak belátása, hogy minden (4,, 8) kód, amely tartalmazza 0-t szügségképpen permutáció-ekvivalens G 4 -gyel. Definíció. Legyen C F n lineáris kód az F test felett. Ekkor a C = {(c 0, c,..., c n ) (c 0,..., c n ) C, kód a C kibővített kódja. n = 0} i=0
Tétel. Legyen C GF () n perfekt kód d = e+ távolsággal, és 0 C. Ekkor C súlyeloszlása csak az n, d paraméterektől függ. Bizonyítás. Mivel C perfekt, minden x GF () n szó pontosan egy C-beli kódszótól lesz legfeljebb e távolságra. A háromszög-egyenlőtlenség miatt egy i súlyú kódszótól legfeljebb e távolságra csak i e, i e +,..., i + e, i + e súlyú szavak lehetnek. Az i súlyú szavak száma: ( ) n = C i,i e A i e +... + C i,i A i +... + C i,i+e A i+e i ahol és C i,i k = C i,i+k = e k j=0 e k j=0 ( )( ) n (i k) i k k + j j ( i + k k + j )( ) n (i + k) j ha e i n e, amiből A i+e kifejezhető. Ahhoz, hogy a rekurzió elinduljon, szükség van még az első e tagra, ezek A 0 =, A = A =... = A e = 0, tehát a többi tag is egyértelműen meg van határozva. Például GF () 3 -ban a 3 sugarú Hamming-gömbben 3 k=0 ( ) 3 = 048 = k pont van, így egy (3,, 7) kód perfekt. Erre a fenti rekurzió a következő számokat adja: A 0 = A 3 =, A 7 = A 6 = 3, A 8 = A = 06, és A = A = 88, a többi pedig 0. Lemma. Legyenek x, y GF () n olyanok, hogy 4 w(x) és 4 w(y). Ekkor 4 w(x + y) x y = 0 Bizonyítás. Jelolje c azon helyek számát, ahol mindkét kódszóban -es áll. ekkor x y = c (mod ) és w(x + y) = w(x) + w(y) c, tehát mindkét állítás pontosan akkor igaz, ha c páros. Definíció. Legyen C egy [n, k, d] kód, w 0 < d egy c 0 kódszó súlya. Feltehető, hogy c 0 = (,...,, 0,..., 0), és ekkor C egy generátormátrixa [ ] 0 0 G = A B (blokk-mátrix) alakú, ahol az első sor c 0, az A mátrix (k ) w 0, a B mátrix pedig (k ) (n w 0 ) méretű. A B mátrix által generált kód a reziduális kód. Állítás. A fenti módon kapott reziduális kód paraméterei [n w 0, k, d ], ahol d d w 0
Bizonyítás. A kapott kódszavak hossza n w 0. Ha a c kódszó vetülete 0, akkor c utolsó n w 0 jegye 0, így a c és c + c 0 kódszavak egyikének súlya legfeljebb w 0 < d, vagyis az illető kódszó a 0. Eszerint c {0, c 0 }, tehát a dimenzió csak eggyel csökkent, azaz k. Ha a c kódszó vetülete w 0 súlyú, a 0 és c 0 szavak egyikétől legfeljebb w + w 0 távolságra lehetett. Mivel ez a távolság legalább d minden kódszóra, d d w 0 Tétel. Legyen C GF () 4 olyan, hogy 0 C és C egy (4,, 8) kód. Ekkor C permutációekvivalens G 4 -gyel. Bizonyítás. C-t tetszőleges helyen kilyukasztva (azaz minden kódszóból az adott indexű elemet elhagyva) egy (3,, 7) perfekt kódhoz jutunk, amiben a fentiek szerint 0, 7, 8,,,, 6 és 3 súlyú kódszavak vannak. Emiatt C-ben csak 0, 8,, 6 és 4 súlyú szavak lehettek, másként alkalmas helyen lyukasztva más súlyú kódszavak is maradnának. Továbbá bármely e GF () 4 vektorral vett e+c eltoltjára ugyanez elmondható, így speciálisan C-ben bármely két kódszó távolsága is csak 0, 8,, 6 és 4 valamelyike lehet. A fenti lemma alapján ekkor C C, így C C. Itt a bal oldalon álló altérnek legalább pontja van, így dim C. Másrészt a tartalmazás miatt dim C dim C = 4 dim C amiből dim C, azaz C = C egy dimenziós altér, tehát C egy [4,, 8] lineáris kód. Tekintsük a C-ből egy súlyú kódszóból kiindulva kapott reziduális kódot. Ez [,, ] kód lesz, mert a fenti állítás szerint legalább a kódszavak d minimális távolsága, a súlyok párosak, a Singleton-korlát szerint viszont d + =. Mivel GF () n -ben a páros súlyú szavak éppen egy kodimenziós alteret alkotnak, a reziduális kód pontosan GF () páros súlyú szavaiból áll. Ennek egy generátormátrixa I. tehát C generátormátrixa választható 0 0 0 0 0 A I. 0 (blokk-mátrix) alakúnak, ahol A -es mátrix. d = 8 miatt A minden sorában legalább 6 egyes van. Viszont 6-nál több nem lehet, mert a súlyok 4-gyel való oszthatósága miatt ekkor 0 egyes lenne benne, és ilyen sort az elsőhöz adva 4 súlyú kódszót kapnánk. A bármely két sorában a közös -esek száma 3: Ha legfeljebb lenne, akkor a két sor összegében legalább 8 egyes lenne, amiből a c 0 hozzáadásával legfeljebb 6 súlyú kódszót 3
kapnánk, ha viszont legalább 4 közös egyes lenne, akkor az összegben legfeljebb 4 egyest találnánk, ami ismét legfeljebb 6 súlyú kódszót eredményezne. Ezzel beláttuk, hogy A egy (, 6, 3) blokkrendszer illeszkedési mátrixa, ami permutáció erejéig egyértelmű. Golay-kód egy szisztematikus rea- Megjegyzés. Ily módon egyben megadtuk a [4,, 8] lizációját. Állítás. [4,, 8] -ben a kódszavak tartói (4, 8, ) blokkrendszert alkotnak. Bizonyítás. pontot legfeljebb kódszó tartója tartalmazhat, mert ha c, c két 8 súlyú kódszó lenne legalább közös -essel, akkor az összegük súlya legfeljebb 6 lenne. Az összes ötösök száma ( ) ( 4, egy 8 súlyú kódszó pedig 8 ) ötöst fed le, amelyek mind különböznek, és ( 4 ) ( 8 ) = 4 3 0 8 7 6 4 éppen a 8 súlyú kódszavak száma. = 79 Megjegyzés. A blokkrendszereknél látott módon kaphatunk ebből (4, 8, ), 4 (3, 7, ) és 3 (, 6, ) blokkrendszereket (Witt-féle blokkrendszerek) és (,, ) blokkrendszert, ami a 4 rendű projektív sík ( = 4 + 4 +, = 4 + ) 3. További konstrukciók 3.. Turyn-konstrukció Hamming-kódból Legyen H a [7, 4, 3] Hamming-kód. Ennek egy előállítása a következő: számozzuk a Fanosíkot az. ábrának megfelelően. Ekkor a sík részhalmazait GF () 7 -beli kódszavaknak is tekinthetjük a karakterisztikus vektorokon keresztül. A kódszavak legyenek a következőkből kapottak: az üres halmaz, az egyenesek, és ezek komplementerei. Legyen H a H-ból a kódszavak 3 7 4 6. ábra. A Fano-sík (P G(, )). megfordításával kapott kód, H, H az ezekből paritásbit hozzáadásával kapott kódok, ezekre H H = {(0, 0, 0, 0, 0, 0, 0, 0), (,,,,,,, )}. Az is belátható, hogy H H és H H Állítás. Legyen C = {(a + x, b + x, a + b + x) a, b H, x H. Ekkor C a G 4 Golay-kód. 4
Bizonyítás. Ekkor a (a, 0, a), (0, b, b) és (x, x, x) alakú elemek bázist alkotnak, ahol a és b H egy bázisán futnak végig, x pedig H egy bázisán. Ebből leolvashatjuk, hogy dim C = és C C, mert H és H önortogonális és (a, 0, a) (x, x, x) = a x+a x = 0 és (0, b, b) (x, x, x) = 0 Mivel H és H duplán páros és C önortogonális, C is duplán páros. Ha egy kódszó súlya 4 lenne, akkor az egyik nyolcasban 0 a súly, tehát x {(0,..., 0), (,..., )}. Feltehető, hogy x = (0,..., 0). Ha a = 0 vagy b = 0 (de nem mindkettő), akkor a súly legalább 8, mert a másik kétszer szerepel. Ha viszont a 0, b 0, akkor a és b is része a kódszónak, így a súly ismét legalább 8. 3.. Ikozaéderből Tekintsük az ikozaéder csúcsaiból és éleiből alkotott gráfot (. ábra). Legyen az adjacenciamátrixban az és 0 felcserélésével kapott mátrix N és G = [ I N ]. ábra. Az ikozaéder-gráf. Állítás. G a G 4 Golay-kód generátormátrixa. Bizonyítás. G minden sora ortogonális önmagára, mert egy csúcsnak szomszédja van, így a sorok súlya 6. Két sor skalárszorzata a megfelelő csúcsok közös szomszédjainak száma (mod ), ami antipodális csúcsokra 0, szomszédosakra és (gráfelméleti) távolságúakra. A kódszavak súlya 4 sem lehet: az első illetve második -es részbe eső súlyok szerint lehetőség volna, az egyik tag az összeadott sorok számat adja meg a szisztematikusság miatt, ez lehet 0,,, 3, 4. 0 sor összege a nullvektor, a sorok súlya 8, két sor összege legalább 8 + 8 = súlyú, mert a közös egyesek száma legfeljebb. 3 vagy 4 sor összegében a második -es nem vagy 0 súlyú. Következmény. A G által generált kód ortogonálisának generátormátrixa G = [ N I ] mert N = N T. de a kód önortogonális, tehát a két mátrix ugyanazt a kódot generálja, tehát ez a kód automorfizmuscsoportja a koordinátákon tranzitív módon hat, mert a lyukasztott kódra ez igaz. Ebből az is adódik, hogy G 3 egyértelmű.
3.3. Conway-féle konstrukció Tekintsük GF (4) = {0,, ω, ω = ω = ω + } felett a következő mátrix által generált kódot (hexakód): G = 0 0 ω ω 0 0 ω ω 0 0 A kód tehát H = {(a, b, c, f(), f(ω), f(ω) f(x) = ax + bx + c}. Belátható, hogy ebben csak 0, 4 és 6 súlyú kódszavak vannak. Ekkor G 4 elemei 4 6-os GF () elemű mátrixok formájában írhatók a következő módon: legyenek a mátrix sorai az m 0, m, m, m 3 GF () 6 -beli vektorok. Egy ilyen mátrix pontosan akkor kódszó, ha. m 0 paritása megegyezik az összes oszlop paritásával. m + ωm + ωm 3 H Itt m 0 és m + ωm + ωm 3 H tetszőlegesen megválasztható egymástól függetlenül, és ez egyértelműen meghatároz egy kódszót. 3.4. Pasquier-féle konstrukció Tekintsük azt a [8, 4, ] 8 kódot, ami a GF ( 3 ) feletti legfeljebb 3 fokú polinomokból kapott primitív Reed-Solomon kód kibővítése (paritással, vagy a 0-ban is kiértékelve, ez ugyanazt adja), azaz C = {(f(), f(α), f(α ),..., f(α 6 ), f(0)) f GF ( 3 )[x], deg f < 4} ahol α primitív 7. egységgyök Mivel két legfeljebb harmadfokú polinom szorzata legfeljebb hatodfokú, és egy ilyen összes függvényértékének összege 0, az így kapott kód önortogonális. Egy GF ()-bázist rögzítve GF ( 3 ) elemeit tekinthetjük három hosszú GF ()-beli sorozatoknak. Alkalmas bázist választva a fenti kód elemei éppen a G 4 kódszavait adják. 3.. Mohó algoritmussal A G 4 kibővített Golay-kódban bármely két kódszó távolsága legalább 8. Meglepő módon egyedül ennek felhasználásával is megkaphatjuk a kódszavakat mohó algoritmus segítségével. Tekintsük ugyanis minden lépésben a GF () 4 -ben lexikografikusan rendezve első olyan szót, ami minden korábban kiválasztott kódszótól legalább 8 távolságra van. Az üres halmazból indulva így éppen a G 4 kódhoz jutunk. 4. A ternáris Golay-kódok A bináris esethez hasonló állítás igaz a három elemű test felett: a (, 3 6, ) 3 perfekt kód egyértelmű, de ezt nehezebb belátni. Ezt a kódot G -gyel jelöljük, és ez [, 6, ] 3 lineáris kód. G és G = G. a perfekt illetve kibővített ternáris Golay-kódok. 6
A perfekt ternáris Golay-kód egy generátormátrixa a következőképp áll elő: Legyen S az az mátrix, aminek i, j eleme a Legendre-szimbólummal felírva ( ) i j (S ) i,j = azaz S = 0 0 0 0 0 Erre S S T = I J, ahol J n a csupa -esből álló n n mátrix. Ekkor G ill. G egy generátormátrixa 0 G = I 6 S ill. G = G. A fenti egyenlőség alapján belátható, hogy G önortogonális. Ebben a kódban minden kódszó súlya 3 többszöröse és az is megmutatható, hogy nincs 3 súlyú kódszó, tehát G egy [, 6, 6] 3 kód. A bináris esethez hasonlóan ezt a kódot is megkonstruálhatjuk Hamming-kód segítségével. Legyen a [4,, 3] 3 Hamming-kód ellenőrzőmátrixa a H 4-es mátrix. Ekkor a kibővített ternáris Golay-kód egy generátormátrixa [ ] J4 + I G = 4 I 4 I 4 0 H H 7