Algebraische Codierungstheorie 1. Lineare Codes und projektive Geometrie Wir betrachten eine Quelle, die Symbole aus ein...
124 downloads
742 Views
415KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Algebraische Codierungstheorie 1. Lineare Codes und projektive Geometrie Wir betrachten eine Quelle, die Symbole aus einem Alphabet W = {w1 , . . . , wm } ausgibt. Definition 1.1. Eine Codierung ist eine Abbildung f : W −→ Σ∗ , wo Σ eine beliebige Menge (ein Alphabet) ist und Σ∗ die Menge aller endlichen Folgen von Elementen aus Σ. Eine Nachricht m ist eine endliche Folge wi1 , . . . , wik ∈ W ∗ von Elementen aus W , sie wird als die Aneinanderreihung f (m) = f (wi1 ), . . . , f (wik ) der zu den wj geh¨origen Zeichenketten in Σ∗ codiert, f also zu einer (ebenfalls mit f bezeichneten) Abbildung f : W ∗ −→ Σ∗ Die f (w), w ∈ W heißen die bei der Codierung verwendeten Codew¨orter, die Menge f (W ) ⊆ Σ∗ der Codew¨orter heißt der Code C. Sind f¨ ur ein n ∈ N alle Codew¨orter Elemente von Σn , so heißt C ein Block-Code der L¨ange n (mit Alphabet Σ). Wir betrachten jetzt Block-Codes der L¨ange n u ¨ber dem Alphabet f Σ = Fq = F , wo F = Fq der K¨orper mit q = p Elementen ist. Definition und Lemma 1.2. Sei C ⊆ Σn ein Block-Code. F¨ ur x = (x1 , . . . , xn ), y = (y1 , . . . , yn ) aus Σn ist der Hamming-Abstand d(x, y) = |{j | xj 6= yj }|. Der Hamming-Abstand ist eine Metrik, d.h., es gilt f¨ ur alle x, y, z ∈ Σn : a) d(x, y) ≥ 0, mit d(x, y) = 0 genau dann, wenn x = y gilt. b) (Symmetrie) d(x, y) = d(y, x). c) (Dreiecksungleichung) d(x, z) ≥ d(x, y) + d(y, z). Beweis. Klar.
Definition 1.3. a) F¨ ur einen Code C ⊆ Fnq ist die logarithmische Kardinalit¨at (oder Dimension) k := k(C) = logq |C|. Die Rate von C ist R = nk . Der Minimalabstand von C ist d := d(C) = min{d(x, y) | x, y ∈ C, x 6= y}. n, k und d heißen die Parameter des Codes; man sagt C sei ein [n, k, d]-Code. F¨ ur x ∈ C ist w(x) = #{i | xi 6= 0} das Gewicht von x. b) Ist C ⊆ Fnq ein Untervektorraum von Fnq , so heißt C ein linearer Code. Der Minimalabstand d(C) ist dann gleich min{w(x) | x 6= 0} und heißt auch Minimalgewicht w(C) des Codes. c) Falls es f¨ ur t ∈ N zu jedem y ∈ Fnq h¨ochstens ein x ∈ C mit d(x, y) ≤ t gibt, so sagt man, C korrigiere t Fehler. 1
2
Bemerkung. a) Die Bezeichnung [n, k, d]-Code wird h¨aufig f¨ ur lineare Codes reserviert (bei denen k = dim C automatisch eine nat¨ urliche Zahl ist), w¨ahrend f¨ ur beliebige Codes die Bezeichnung (n, |C|, d)-Code verwendet wird. ¨ b) Die Rate des Codes misst, welcher Anteil an den zur Ubermittlung eines Wortes benutzten n Symbolen auch f¨ ur rauschfreie Codierung ben¨otigt w¨ urde, und misst daher die Effizienz. Definition 1.4. Eine Decodierung(sregel) des Block-Codes C u ¨ber Fq n ist eine Abbildung g : Fq −→ C ∪ {F } (wobei das Symbol F f¨ ur Feh” ler“(failure) steht). Die minimum distance Decodierungsregel ist: ur das d(x, y) minimal ist, so Gibt es zu y ∈ Fnq genau ein x ∈ C, f¨ setze g(y) = x (decodiere y als x), andernfalls setze g(y) = F (erkl¨are einen Fehler). Bemerkung. Falls t Fehler von C korrigiert werden, so wird bei minimum¨ distance-Decodierung jedes Wort richtig decodiert, das bei der Ubertragung in h¨ochstens t Positionen ver¨andert wurde. Lemma 1.5. Es werden genau dann t Fehler von C korrigiert, wenn d(C) > 2t ist. Beweis. Falls d(C) > 2t ist, so sei y ∈ Fnq beliebig mit d(x, y) ≤ t ≥ d(x0 , y) f¨ ur Elemente x, x0 von C. Da f¨ ur d die Dreiecksungleichung gilt, 0 ist dann d(x, x ) ≤ 2t < d(C), also x = x0 , d.h., C korrigiert t Fehler. Falls umgekehrt t Fehler von C korrigiert werden, so seien x, x0 ∈ C mit 0) d(x, x0 ) ≤ 2t. Man ersetze dann [ d(x,x ] Eintr¨age xj von x, f¨ ur die xj 6= 2 0) n 0 0 ]≤t xj gilt, durch xj und erhalte so ein y ∈ Fq mit d(x, y) = [ d(x,x 2 0) d(x,x und d(x0 , y) = d(x, x0 ) − [ 2 ] ≤ t. Nach Voraussetzung muß dann x = x0 sein. Definition 1.6. F¨ ur σ ∈ Sn sei σ ˜ ∈ Fnq der durch (x1 , . . . , xn ) 7−→ (xσ(1) , . . . , xσ(n) ) gegebene lineare Automorphismus σ ˜ von Fnq , f¨ ur α ∈ × Fq sei α ˜ i der durch (x1 , . . . , xn ) 7−→ (x1 , . . . , αxi , . . . , xn ) gegebene lineare Automorphismus α ˜ i von Fq . Sei A die von den σ ˜ mit σ ∈ Sn und den α ˜ i mit α ∈ F× q , 1 ≤ i ≤ n erzeugte Untergruppe von Aut(Fnq ). Die Codes C, C 0 ⊆ Fnq heißen ¨aquivalent, wenn es ein ϕ ∈ A gibt mit ϕ(C) = C 0 . Bemerkung. Bei nichtlinearen Codes werden h¨aufig zus¨atzlich noch f¨ ur Permutationen π ∈ Sq die Bijektionen π ˜i : Fnq −→ Fnq zugelassen, die durch π ˜i (x1 , . . . , xn ) = (x1 , . . . , π(xi ), . . . , xn ) gegeben sind. Die von A und den π ˜i erzeugte Gruppe von Bijektionen Fnq −→ Fnq ist nat¨ urlich n nicht mehr in Aut(Fq ) enthalten und f¨ uhrt lineare Codes nicht notwendig in lineare Codes u uglich der ¨ber. Die Elemente von A werden bez¨
3
Standardbasis von Fnq durch Monomialmatrizen repr¨asentiert (Matrizen, bei denen in jeder Zeile und jeder Spalte genau ein Eintrag 6= 0 steht). A ist semidirektes Produkt der von den α ˜ i erzeugten Untergruppe n M ∼ ) und der zu S isomorphen Untergruppe der σ ˜ , wobei = (F× n q die Operation von Sn auf dem Normalteiler M gegeben ist durch σ ˜ αi σ ˜ −1 = α ˜ σ(i) . Insbesondere ist |A| = (q − 1)n · n!. Bevor wir lineare Codes weiter untersuchen, schieben wir eine Zusammenstellung der wichtigsten Grundbegriffe der projektiven Geometrie ein; diese werden wir anschließend ben¨otigen. Definition 1.7. Ist r ∈ N und K K¨orper, so heißt die Menge der 1-dimensionalen Untervektorr¨aume von K r+1 der r-dimensionale projektive Raum Pr (K) u ¨ber K. Ist U ⊆ K r+1 ein (k + 1)-dimensionaler Unterraum, so heißt PU = U˜ = {L ∈ Pr (K) | L ⊆ U } ein k-dimensionaler (oder (r − k)codimensionaler) Unterraum von Pr (K). Insbesondere sind die PU f¨ ur r+1 r Hyperebenen U ⊆ K die Hyperebenen in P (K), und die Pu f¨ ur dim U = 2 die Geraden in Pr (K). Die Unterr¨aume PU und PW von Pr (K) heißen inzident (schneiden sich), wenn U ∩ W 6= {0} ist. Bezeichnet man in (K r+1 \ {0})/K × die Klasse von (x0 , . . . , xr ) 6= 0 mit [x0 , . . . , xr ] (homogene Koordinaten), so wird durch [x0 , . . . , xr ] 7−→ K · (x0 , . . . , xr ) eine Bijektion (K r+1 \ {0}/K × −→ Pr (K) gegeben. Bemerkung. a) Durch (x1 , . . . , xr ) 7−→ [1, x1 , . . . , xr ] wird eine Bir jektion K −→ U0 := {[x0 , . . . , xr ] ∈ Pr (K) | x0 6= 0} gegeben. Analog stehen auch die Ui := {[x0 , . . . , xr ] | xi 6= 0} inSBijek¨ tion zu K r , und wir haben eine Uberdeckung Pr (K) = ri=0 Ui von Pr (K) durch (r + 1) Teilmengen, die in nat¨ urlicher Bijektion zum gew¨ohnlichen r-dimensionalen (affinen) Raum stehen. F¨ ur r die Bijektionen ϕj : K −→ Uj gilt offenbar: ˜ ∈ K r und W ⊆ K r ein k-dimensionaler Unterraum – Ist x von K r , so ist ˜ + W} W 0 (˜ x) := {(x0 , . . . , xr ) ∈ K r+1 | (x1 , . . . , xr ) ∈ x0 x ein k + 1-dimensionaler Unterraum von K r+1 . F¨ ur diesen gilt: ϕ0 (˜ x +W ) = PW 0 (˜x) ∩U0 ist der Durchschnitt des k-dimensionalen Unterraums PW 0 (˜x) mit U0 .
4
– ϕ0 ist vertr¨aglich mit Durchschnitten und bildet den von ˜ 1 + W1 und x ˜ 2 + W2 aufgespannten affinen Unterraum x in (PW10 (˜x1 ) ∨ PW20 (˜x2 ) ) ∩ U0 ab; dabei bezeichnet PW10 (˜x1 ) ∨ PW20 (˜x2 ) = PW10 (˜x1 )+W20 (˜x2 ) den kleinsten Unterraum von Pr (K), der PW10 (˜x1 ) und PW20 (˜x2 ) enth¨alt (den von diesen Unterr¨aumen aufgespannten Unterraum oder ihre Verbindung). Analog formuliert man diese Eigenschaften f¨ ur ϕj (1 ≤ j ≤ r). Die Punkte von PW 0 (˜x) , die nicht in ϕj (˜ x + W ) liegen, nennt man 0 unendlich ferne Punkte von ϕj (˜ x + W ) und PW (˜ x) die projektive Abschließung oder Komplettierung von ϕj (˜ x + W ). ¨ b) Als Ubung zeige man, dass sich in P2 (K) je zwei verschiedene Geraden in genau einem Punkt schneiden. Genauer bestimme man f¨ ur die Schar paralleler Geraden gb ⊆ K 2 , die durch die Gleichung x2 = mx1 + b mit festem m und variablem b gegeben sind, den (bez¨ uglich ϕ0 unendlich fernen) Punkt des P2 (K), in dem sich s¨amtliche Geraden der Schar schneiden. Man zeige ferner, dass die bez¨ uglich ϕ0 unendlich fernen Punkte des P2 (K) 2 eine Gerade in P (K) bilden. c) Der projektive Raum l¨asst sich auch koordinatenfrei behandeln. Man betrachtet dann f¨ ur einen beliebigen K-Vektorraum V den Raum P(V ) := {U ⊆ V | U ist Untervektorraum, dimK U = 1} und verf¨ahrt ansonsten wie oben. d) Ist f ∈ K[X0 , . . . , Xr ] ein homogenes Polynom u ¨ber K von irP i0 ir a X gendeinem Grad d (also f = i0 ,...,ir ∈Nr i0 ...ir 0 . . . Xr mit al0 i0 +···+ir =d
ur [x0 , . . . , xr ] ∈ Pr (K) die Antwort auf len ai0 ...ir ∈ K), so ist f¨ die Frage, ob f (x0 , . . . , xr ) = 0 gilt, unabh¨angig von der Auswahl des Rrepr¨asentanten (x0 , . . . , xr ) ∈ K r+1 . F¨ ur eine Menge F von solchen homogenen Polynomen in den Variablen X0 , . . . , Xr nennt man V (F) = {[x0 , . . . , xr ] | f (x0 , . . . , xr ) = 0 f¨ ur alle f ∈ F} ⊆ Pr (K) die durch F definierte projektive algebraische Menge. Analog nennt man f¨ ur eine Menge G ⊆ K[X1 , . . . , Xr ] von (beliebigen) Polynomen in den Variablen X1 , . . . , Xr die Menge V (G) = {(x1 , . . . , xr ) ∈ K r | g(x1 , . . . , xr ) = 0 f¨ ur alle g ∈ G} ⊆ K r ¨ die durch G definierte affine algebraische Menge. Als Ubung zeige man: Ist g ∈ K[X1 , . . . , Xr ] ein Polynom vom Grad d (d.h. max{i1 + · · · + ir | ai1 ...ir 6= 0} = d), so gibt es genau ein homogenes Polynom f ∈ K[X0 , . . . , Xr ] vom Grad d, so dass f (1, X0 , . . . , Xr ) = g gilt (man sagt, f entstehe aus g durch Homogenisieren). Es gilt dann V (f ) ∩ U0 = ϕ0 (V (g)). Proposition 1.8. F¨ ur einen Teilraum W ⊆ K r+1 = V der Dimension k + 1 sei ˆ = Ann(W ) = {f ∈ V ∗ | f |W = 0} ⊆ V ∗ W
5
der Annullator von W . F¨ ur den Unterraum PW ⊆ Pr (K) der Dimension k heiße δ(PW ) := PWˆ ⊆ P (V ∗ ) der zu W duale Teilraum von P (V ∗ ). a) δ(PW ) ist ein (r − k − 1)-dimensionaler Unterraum von P(V ∗ ). b) Durch PW 7−→ δ(PW ) wird eine Bijektion zwischen den k-dimensionalen Unterr¨aumen von Pr (K) und den (r − k − 1)-dimensionalen Unterr¨aumen von P(V ∗ ) ∼ = Pr (K) gegeben. Mit der kanonischen Identifikation V ∼ = V ∗∗ wird δ 2 = Id. c) Es gilt δ(PW1 ∩ PW2 ) = δ(PW1 ) ∨ δ(PW2 ) δ(PW1 ∨ PW2 ) = δ(PW1 ) ∩ δ(PW2 ) δ(PW1 ) ⊆ δ(PW2 ) ⇔ PW2 ⊆ PW1 d) (Dualit¨atsprinzip) F¨ ur jeden Satz der projektiven Geometrie u ¨ber r Unterr¨aume von P (K), der in Termen von ∩, ∨, ⊆ und dim formuliert ist, gilt der duale Satz, in dem jeder Unterraum PW durch δ(PW ) ersetzt wird, ∩ und ∨ sowie ⊆ und ⊇ vertauscht und die Dimension k durch die Dimension r − k − 1 ersetzt wird. Insbesondere erh¨alt man f¨ ur r = 2 ein Dualit¨atsprinzip, in dem die Rollen von Punkten und Geraden vertauscht werden. ¨ Beweis. a)-c) sind eine einfache Ubung in linearer Algebra. d) ist ein Metatheorem, dessen Beweis entsprechend m¨ uhsam zu formulieren ist. Jeder Einzelfall ist aber leicht einzusehen. Wer mehr wissen will, schlage etwa im Buch von Fischer (Analytische Geometrie) nach und f¨ uhre ein paar Dualisierungen in der ebenen projektiven Geometrie ¨ als Ubung durch. Wir kehren jetzt zu den linearen Codes zur¨ uck. Definition und Lemma 1.9. Sei C ⊆ Fnq ein linearer Code mit Basis c1 = t (g11 , . . . , g1n ), . . . , ck = t (gk1 , . . . , gkn ). Dann heißt die Matrix G = (gij ) ∈ Mk,n (Fq ) eine Erzeugermatrix des Codes C (generator matrix) und durch t
(x1 , . . . , xk ) 7−→
k X
xi ci = t Gx
i=1
Fkq
wird eine lineare Einbettung C : −→ Fnq gegeben. Eine Matrix H ∈ Mn−k,n (Fq ), f¨ ur die C der L¨osungsraum des linearen Gleichungssystems Hx = 0 ist, heißt eine Kontrollmatrix (check matrix, parity check matrix) von C. Bemerkung. In der Codierungstheorie werden Vektoren meistens (entgegen der in den meisten Lehrb¨ uchern und Vorlesungen u ¨ber Lineare Algebra benutzten Konvention) als Zeilenvektoren geschrieben; wir
6
werden diese Zeilenvektoren an Stellen, wo es (etwa durch Multiplikation mit Matrizen) zu Unklarheiten kommen k¨onnte, als Transponierte der gewohnten Spaltenvektoren schreiben. Nat¨ urlich ist das im Grunde genommen ein Streit um des Kaisers Bart. Lemma 1.10. F¨ ur eine Kontrollmatrix H gilt rg H = n − k und H · t G = 0 f¨ ur jede Erzeugermatrix G von C. Beweis. Klar.
Bemerkung. a) W¨ahlt man eine andere Basis c˜j = C, so gilt (mit T = (tij ) ∈ GLk (Fq )):
Pk
i=1 tij ci
von
˜ = T t · G. G ˜ geht also aus G durch Multiplikation von links mit einer (beG liebigen) invertierbaren k × k- Matrix hervor. Ist Cˆ ein zu C a¨quivalenter Code und wird die Transformation ϕ aus A, die C in Cˆ u uhrt, durch die Monomialmatrix ¨berf¨ M ∈ GLn (Fq ) dargestellt (mit cˆj = ϕ(cj )), so hat die zu den cˆj ˆ = G · M . Ist H Kontrollgeh¨orige Erzeugermatrix die Gestalt G t −1 ˆ matrix zu G, so ist H · (M ) Kontrollmatrix zu G. b) Gelegentlich werden auch Matrizen H ∈ Mr,n (Fq ) mit r > n − k, rg H = n − k und H · Gt = 0 als Kontrollmatrix zu C bezeichnet. Definition 1.11. F¨ ur C ⊆ Fnq ist der duale (oder orthogonale) Code C ⊥ definiert als n X ⊥ n C = {y ∈ Fq | hx, yi := xi yi = 0 f¨ ur alle x ∈ C}. i=1 ⊥
Ist C = C , so heißt C selbstdual. Lemma 1.12. a) Ist dim C = k, so ist dim C ⊥ = n − k. b) H ist genau dann Kontrollmatrix von C, wenn H Erzeugermatrix von C ⊥ ist. c) Durch y −→ Ly ∈ (Fnq )∗ mit Ly (x) := hx, yi wird ein Isomorphismus L von Fnq auf den Dualraum (Fnq )∗ gegeben, der C ⊥ auf den Annullator von C abbildet. Beweis. Dies sind Standardaussagen der linearen Algebra. Man beachte, dass durch (x, y) 7−→ hx, yi eine nichtausgeartete symmetrische Bilinearform auf Fnq gegeben wird. Definition 1.13. Der lineare Code C hat genau dann Minimalgewicht w(C) > d, wenn gilt: Je d Spalten einer Kontrollmatrix H von C sind linear unabh¨angig. Beweis.P Klar: Sind h1 , . . . , hn die Spalten von H, so ist x ∈ C ¨aquivalent zu ni=1 xi hi = 0.
7
Beispiel. Wir betrachten den Code C6 := {x ∈ F62 | x2 + x3 = x4 , x1 + x3 = x5 , x1 + x2 = x6 }. Dieser Code hat 8 Worte (Er hat F2 ). Wir sehen: C6 hat Kontrollmatrix 0 1 H = 1 0 1 1
Dimension 3 als Vektorraum u ¨ber
1 1 0 0 1 0 1 0 0 0 0 1
Da je zwei Spalten der Kontrollmatrix linear unabh¨angig sind, ist d(C6 ) ≥ 3, wir werden gleich sehen, dass d(C6 ) = 3 ist. C6 ist also ein [6, 3, 3]Code. Eine Erzeugermatrix ist 1 0 0 0 1 1 G = 0 1 0 1 0 1 0 0 1 1 1 0 also sicher d(C) ≤ 3, damit ist d(C) = 3. Beispiel. F¨ ur Codes mit Minimalabstand d ≥ 3 u ¨ber Fq suchen wir eine Kontrollmatrix, f¨ ur die keine 2 Spalten linear abh¨angig, d.h. Vielfache voneinander sind. Bei gegebener Codimension r = n − k besteht ein H m¨oglichst großer Spaltenzahl n also aus Repr¨asentanten aller 1-dimensionalen Unterr¨aume (Geraden) von Fnq als Spalten. Wir haben dann also qr − 1 n= = 1 + · · · + q r−1 . q−1 r
−1 . Der [n, n − r, 3]-Code mit Definition 1.14. F¨ ur r ≥ 2 sei n = qq−1 Kontrollmatrix H, deren Spalten Repr¨asentanten der 1-dimensionalen Unterr¨aume von Frq sind, heißt der [n, n − r]-Hamming-Code u ¨ber Fq .
Beispiel. q = 2, r = 3, n = 7. 0 0 1 0 1 1 1 H = 0 1 0 1 0 1 1 1 0 0 1 1 0 1 Der Code hat 16 Elemente und (wie alle Hamming-Codes) Minimalabstand 3, korrigiert also einen Fehler. Der duale Code ist der Code mit Erzeugermatrix H. Der Code C6 aus dem vorigen Beispiel ist die Projektion auf F62 des [7, 4, 3]-Hamming-Codes u ¨ber F2 . Definition und Lemma 1.15. Sei G ∈ Mk,n (Fq ) Erzeugermatrix des Codes C ⊆ Fnq . a) G ist in Standardform, wenn G = (Ek , P ) mit P ∈ Mk,n−k (Fq ) gilt (Ek die (k × k)-Einheitsmatrix).
8
b) Ist die aus den Spalten mit den Nummern i1 < · · · < ik gebildete Teilmatrix von G die k × k-Einheitsmatrix, so sagt man, C sei systematisch in i1 , . . . , ik . ¨ Aquivalent ist: Die durch x 7−→ (xi1 , . . . , xik ) gegebene Projektion p = pi1 ,...,ik : Fnq −→ Fkq liefert einen Isomorphismus p|C : C −→ Fkq . Bemerkung. a) Ist G Erzeugermatrix von C, so k¨onnen wir durch ¨ Ubergang zu einer anderen Basis G durch T G mit beliebigem T ∈ GLk (Fq ) ersetzen. T kann so gew¨ahlt werden, dass T G in Zeilenstufenform ist, wobei jeweils in der j-ten Zeile in der Position ij der erste Eintrag 6= 0 steht. C ist daher systematisch in den Positionen i1 , . . . , ik . Multipliziert man G von rechts mit einer geeigneten Permutationsmatrix, so geht G in Standardform u ¨ber; C geht dabei in einen ¨aquivalenten Code u ¨ber. Jeder lineare Code ist also ¨aquivalent zu einem Code mit Erzeugermatrix in Standardform. b) Ist G = (Ek , P ) in Standardform, so ist offenbar H = (−t P, En−k ) eine Kontrollmatrix f¨ ur G, denn man sieht: E t t H · G = (− P, En−k ) t k = 0. P Definition 1.16. Sei C linearer Code mit Erzeugermatrix G und Kontrollmatrix H. das Syndrom von a) F¨ ur y ∈ Fnq heißt s = sH (y) := Hy =∈ Fn−k q y (bez¨ uglich H). b) F¨ ur s ∈ Fn−k heißt ein Element e = eH (s) minimalen Gewichts q in der Nebenklasse Ks = {y ∈ Fnq | Hy = s} ∈ Fnq /C ein coset leader (Nebenklassen-F¨ uhrer) von s; man hat dann Ks = e + C. ¨ Bemerkung. a) Ubergang zu einer anderen Kontrollmatrix ¨andert zwar die Syndrome, aber nicht die Einteilung von Fnq in Nebenklassen aus Vektoren gleichen Syndroms; insbesondere ¨andert es nichts an den coset leaders, sondern nur ihre Zuordnung zu den einzelnen Syndromen. b) Minimum-distance-Decodierung decodiert y als y − eH (s), wo s = sH (y) = Hy das Syndrom von y bez¨ uglich H ist. Ist der coset leader von y + C nicht eindeutig, so erkl¨art man, es seien r = w(eH (s)) Fehler erkannt worden. Decodierung erfolgt hier also nach Durchf¨ uhrung der Matrixmultiplikation y 7−→ Hy durch Nachschlagen in einer Tabelle (table-lookup) der Gr¨oße |Fq /C| = q n−k . Das ist nat¨ urlich (zumal f¨ ur großes k) besser als n in einer Tabelle der vollen Gr¨oße q nachschlagen zu m¨ ussen. Bei Codes mit viel Struktur verf¨ ugt man u ¨ber Methoden, die Zuordnung des coset leaders zum ermittelten Syndrom effizienter vorzunehmen.
9
Die Codierung, aufgefasst als Abbildung C : Fkq −→ C, ist nat¨ urlich als Multiplikation mit der Erzeugermatrix (bzw. deren transponierter Matrix, je nach benutzter Konvention u ¨ber Zeilen- und Spaltenvektoren) ebenfalls leicht effizient zu implementieren. Beispiel. F¨ ur unseren Code C6 ⊆ F62 sind die m¨oglichen Syndrome die Elemente von F32 . Wir haben die triviale Nebenklasse C, 6 Nebenklassen, die von den Vektoren in F2 mit genau einer 1 repr¨asentiert werden, und die Nebenklasse zum Syndrom (1, 1, 1), die von (1, 0, 0, 1, 0, 0), aber auch von (0, 1, 0, 0, 1, 0) oder (0, 0, 1, 0, 0, 1) repr¨asentiert wird: Diese Nebenklasse hat keinen eindeutigen coset leader. Die Decodierung in unserem Beispiel erfolgt also so: Ist das Syndrom s von y nicht (1, 1, 1), so decodiere y als y − eH (s) ∈ C, ist es gleich (1, 1, 1), so decodiere als y − (1, 0, 0, 1, 0, 0) (willk¨ urliche Auswahl des ¨ coset leaders) oder erkl¨are, dass bei der Ubermittlung wenigstens zwei Fehler aufgetreten sind (failure). ¨ Ubung. a) Diese Decodierung ist in der Tat so, wie bei der Diskussion des Beispiels behauptet. b) Finde Kontrollmatrix, Syndrome und coset leaders f¨ ur den im Beispiel benutzten Code C6 ⊆ F62 . c) Zeige: Ist d(C) = 2t + 1, so ist in jeder Nebenklasse von C h¨ochstens ein Codewort vom Gewicht ≤ t, und letztere Eigenschaft ist ¨aquivalent dazu, dass t Fehler von C korrigiert werden. Ist d(C) = 2t, so werden t − 1 Fehler korrigiert und t Fehler erkannt, aber nicht mehr notwendig korrigiert. Es gibt dann Nebenklassen von C, in denen alle coset leaders Gewicht t haben, der coset leader aber nicht eindeutig ist. Bemerkung. Der Code C ⊆ Fnq hat Minimalabstand d(C) ≥ r +1, falls in der Kontrollmatrix H ∈ Mn−k,n (Fq ) je r Spalten linear unabh¨angig sind. Projektiv gesehen heißt das: F¨ ur die von den Spalten repr¨asentierten Punkte des Pn−k−1 (Fq ) gilt: Je r dieser Punkte liegen nicht gemeinsam in einem r − 2-dimensionalen Teilraum (also f¨ ur r = 2: Je 2 Punkte sind verschieden, f¨ ur r = 3: Je drei Punkte sind nicht kollinear, f¨ ur r = 4: Je 4 Punkte sind nicht koplanar, etc.). Offenbar geht das nur f¨ ur r − 2 ≤ n − k − 2 oder r ≤ n − k, d(C) = r + 1 ≤ n − k + 1. Wir haben also gezeigt: Lemma 1.17 (Singleton-Schranke). Ist C ein linearer [n, k, d]-Code, so ist d ≤ n − k + 1.
10
¨ Bemerkung. a) (Ubung) Die Schranke gilt auch f¨ ur nichtlineare n−d+1 ist injekCodes (Hinweis: Die Projektion des Codes auf Fq tiv). b) Gilt n − k + 1 = d, so heißt C ein maximum-distance-separable Code (MDS-Code) oder auch ein Code vom Geschlecht (genus) 0 (letztere Sprechweise wird sp¨ater verst¨andlich). Gilt d ≥ n − k + 1 − g und d(C ⊥ ) ≥ n + 1 − g − (n − k) = k + 1 − g, so sagt man allgemeiner C sei ein Code vom Geschlecht ≤ g (Ist d = n − k + 1, sind also je n − k Spalten der Kontrollmatrix linear unabh¨angig, so ist d(C ⊥ ) = k + 1, also je k Spalten der Erzeugermatrix von C linear unabh¨angig. G¨abe es n¨amlich k Spalten in der Erzeugermatrix, die linear abh¨angig w¨aren (o.E. die ersten k Spalten), so g¨abe es (Zeilenrang = Spaltenrang) x1 , . . . , xk ∈ Fq , so dass (mit Zeilen c1 , . . . , ck der ErzeugermaP trix) 0 6= ki=1 xi ci in den ersten k Spalten alle Eintr¨age gleich 0 hat. Dieses Codewort h¨atte dann Gewicht ≤ n − k = d(C) − 1, was unm¨oglich ist). Definition 1.18. Sei V ein k-dimensionaler Fq -Vektorraum. Ein nTupel P = (P1 , . . . , Pn ) von n Punkten aus V , f¨ ur die d(P) := n −
max
H Hyperebene
|P ∩ H| ≥ 1
gilt (f¨ ur die es also keine Hyperebene H ⊆ V gibt mit P ⊆ H), heißt ein [n, k, d(P)]q -System. Zwei [n, k, d]q -Systeme P, P 0 in V bzw. V 0 heißen ¨aquivalent, wenn es einen Isomorphismus ϕ : V −→ V 0 gibt mit ϕ(P) = P 0 . Proposition 1.19. Es gibt eine Bijektion zwischen Klassen von [n, k, d]q Systemen und linearen [n, k, d]-Codes u ¨ber Fq . Beweis. Sei P = (P1 , . . . , Pn ) ⊆ V . Definiere ϕ : V ∗ −→ Fnq durch f 7−→ (f (P1 ), . . . , f (Pn )). ϕ ist nach der Voraussetzung u ¨ber P injektiv, setze C = ϕ(V ∗ ). Dann ist dim C = k. Ferner ist d(C) = d, denn w(ϕ(f )) ist gerade die Anzahl der Pi ∈ P, die nicht in der Hyperebene Ker ϕ von V liegen. Ist umgekehrt C ⊆ Fnq , fj die j-te Koordinatenfunktion auf Fnq , so sei V = C ∗ und P = (f1 |C , . . . , fn |C ). Die Elemente von P liegen offenbar in keiner gemeinsamen Hyperebene (jede Linearform auf C l¨asst sich zu einer auf Fnq fortsetzen), und die obige Konstruktion bildet x ∈ V ∗∗ = C auf ϕ(x) = (x1 , . . . , xn ) ∈ Fnq ab, also ϕ(V ∗ ) = C (und umgekehrt). Die beiden Abbildungen sind also invers zueinander und f¨ uhren die Parameter ineinander u ¨ber.
11
Definition 1.20. Sei V ein k-dimensionaler Fq -Vektorraum, P eine ungeordnete Familie von Punkten in P(V ), die nicht in einer Hyperebene von P(V ) enthalten sind. Sei d(P) = n − maxH |P ∩ H|, wobei das Maximum u ¨ber alle Hyperebenen H von P genommen wird. Dann heißt P ein projektives [n, k, d]q -System. P und P 0 heißen ¨aquivalent, wenn sie durch einen projektiven Isomorphismus ineinander u ¨bergehen. ¨ Proposition 1.21. Es gibt eine Bijektion zwischen Aquivalenzklassen ¨ projektiver [n, k, d]q -Systeme und Aquivalenzklassen nichtausgearteter n linearer Codes C ⊆ Fq (d.h., C liegt in keiner Koordinatenhyperebene). Beweis. Wir gehen a¨hnlich vor wie oben, nur dass die Auswahl einer Anordnung der Punkte und die Auswahl der Repr¨asentanten in einer ¨ Geraden frei bleibt; dies entspricht gerade dem Ubergang zu einem ¨aquivalenten Code. Bemerkung. a) Der Parameter d eines [n, k, d]q -Systems misst, wie allgemein die Position der Punkte des Systems im Raum ist. b) Wir werden sp¨ater die oben durchgef¨ uhrte Konstruktion des Codes aus dem System verallgemeinern. Grundmuster ist, dass wir eine Konfiguration von Punkten (meist auf einer Kurve im projektiven Raum) betrachten und geeignete Funktionen auf diesen auswerten. Beispiel. a) F¨ ur jedes n, q hat man den trivialen Code Ct = Fnq mit Parametern [n, n, 1], er ist MDS-Code. b) F¨ ur jedes n, q hat man den n-fachen Wiederholungscode Cr = {(α, . . . , α) | α ∈ Fq } mit Parametern [n, 1, n], er ist ebenfalls ein MDS-Code. c) F¨ ur jedes n, q hat man den parity check code Cp = {x | Σxi = 0} mit Parametern [n, n − 1, 2]; er ist MDS-Code. Die zugeh¨origen Konfigurationen sind: a) In (Fnq )∗ (identifiziert mit Fnq ) sind P1 , . . . , Pn die Standardbasisvektoren. b) dim V = 1, P(V ) besteht aus einem Punkt, dieser wird n-fach wiederholt. ¨ c) Man u ¨berlege sich die zugeh¨orige Konfiguration als Ubung. d) F¨ ur a ∈ N sei Va = Fq [X]a der Vektorraum der Polynome vom Grad ≤ a, dimK Va = a + 1. Jedes P ∈ Fq definiert durch f 7−→ f (P ) eine Linearform LP auf Va . Sind P1 , . . . , Pn verschiedene Punkte aus Fq , P = (P1 , . . . , Pn ) und n > a, so gibt es kein f 6= 0
12
in Va , das in allen n Punkten verschwindet, d.h., die LPi liegen nicht in einer gemeinsamen Hyperebene (= Annullator eines Elements von Va ). Genauer: Die Maximalzahl von Linearformen, die in einer Hyperebene liegen, ist a, wir haben also ein [n, a + 1, n − a]q -System von Linearformen. Der zugeh¨orige Code in Fnq ist {(f (P1 ), . . . , f (Pn ) | f ∈ Va } und ist ein [n, a+1, n−a]q Code, der verallgemeinerte Reed-Solomon-Code mit diesen Parametern. Ist speziell n = q − 1 und P = F× q , so hat man den Reed-Solomon-Code u ¨ber Fq . Der Code ist ein MDS-Code, dessen L¨ange aber durch q − 1 begrenzt ist. Die Dimension k = a + 1 kann nach Belieben gew¨ahlt werden, und die Codes RS(a, q) f¨ ur wachsendes a sind eine “eingebettete Familie” von Codes, d.h., . . . ⊆ RS(a, q) ⊆ RS(a + 1, q) ⊆ . . . Wir definieren mq (k) als das gr¨oßte n, f¨ ur das es einen k-dimensionalen n MDS-Code in Fq gibt (also mit Parametern [mq (k), k, mq (k) + 1 − k]). Unsere Beispiele zeigen: mq (1) = ∞, mq (k) ≥ k + 1. Der Reed-Solomon-Code der L¨ange q zeigt mq (k) ≥ q; wir werden sehen, dass man den Reed-Solomon-Code noch zu einem MDS-Code der Dimension k und L¨ange q + 1 erweitern kann, also mq (k) ≥ q + 1 (alle k ≤ q + 1). Weitere bekannte Resultate (vorl¨aufig ohne Beweis) sind: Ist q gerade, so mq (3) ≥ q + 2, mq (q − 1) ≥ q + 2. Ist k ≥ 2, so ist mq (k) ≤ q + k − 1. Ist k ≥ 3, q ungerade, so ist mq (k) ≤ q + k − 2. Ist k ≥ q, so ist mq (k) = k + 1. Man vermutet, dass f¨ ur 2 ≤ k < q gilt: mq (k) = q + 1 mit den Ausnahmen mq (3) = mq (q − 1) = q + 2 √
(gezeigt f¨ ur q ≤ 11, k ≤ 5, k <
f¨ ur alle geraden q
q+9 ). 4
2. Endliche K¨ orper und diskrete Foureriertransformation In diesem Kapitel stellen wir einige Ergebnisse aus der Algebra u ¨ber endliche K¨orper sowie u ¨ber Vektorr¨aume u ¨ber endlichen K¨orpern zusammen. Beweise finden sich in den Lehrb¨ uchern der Algebra oder auch in meinem Skript Elementare Algebra und Zahlentheorie“ aus ” dem Sommersemester 2005.
13
Definition und Satz 2.1. Sei K ein K¨orper , f¨ ur n ∈ N und a ∈ K sei na := |a + {z ... + a}, na = −((−n)a) f¨ ur n ∈ Z mit n < 0 und 0a = 0. n-mal
Dann gilt: C := {n ∈ Z | n · 1K = 0K } ist ein Ideal in Z von der Form pZ mit p = 0 oder p Primzahl. p heißt die Charakteristik von K. Durch j · a := ja erh¨alt K f¨ ur p 6= 0 die Struktur eines Z/pZ-Vektorraums. Ist K endlich, so ist hier der Fall p = 0 ausgeschlossen. Ist char(K) = p > 0, so liefert Z/pZ 3 j 7→ j · 1K ∈ K eine Einbettung Fp := Z/pZ ,→ K. Der hierdurch jeweils gegebene Teilk¨orper P ⊆ K heißt der Primk¨orper von K; er ist in allen Teilk¨orpern K 0 ⊆ K enthalten (und daher gleich dem Durchschnitt aller Teilk¨orper von K). Korollar 2.2. Sei K ein endlicher K¨orper. Dann ist char(K) = p > 0 eine Primzahl und man hat |K| = pr
mit r ∈ N.
Satz 2.3. Sei K ein K¨orper der Charakteristik p > 0. a) Die durch Fp (x) := xp gegebene Frobenius-Abbildung Fp : K −→ K ist ein (injektiver) K¨orperhomomorphismus. b) F¨ ur den Primk¨orper Fp von K gilt: Fp = {x ∈ K | Fp (x) = x}. c) Ist K endlich, so ist der Frobenius-Homomorphismus ein Automorphismus des K¨orpers K. d) Ist K endlich, so ist die Automorphismengruppe Aut(K) zyklisch, von Fp erzeugt. Satz 2.4. Sei p eine Primzahl, r ∈ N und q := pr . Es gilt: a) Es gibt einen K¨orper L mit |L| = q. b) Ist L ein K¨orper der Ordnung q, so zerf¨allt das Polynom X q − X ∈ Fp [X] u ¨ber L vollst¨andig als Y f= (X − a) a∈L
in Linearfaktoren. c) Je zwei K¨orper der Ordnung q sind isomorph.
14
d) Ist K ein endlicher K¨orper mit q = pr Elementen, so wird durch
(2.1)
a 7→
TrK Fp (a)
:=
r−1 X
j
ap
j=0
e) f) g) h)
eine nicht triviale Fp -lineare Abbildung von K nach Fp definiert (eine Linearform des Fp -Vektorraums K). Diese heißt die Spurabbildung, TrK Fp (a) heißt die Spur von a. Ist L ein K¨orper der Ordnung q, so hat L genau dann einen Teilk¨orper der Ordnung pk , wenn k ∈ N ein Teiler von r ist. X q − X ist in Fp [X] das Produkt aller normierten irreduziblen Polynome f ∈ Fp [X], deren Grad ein Teiler von r ist. F¨ ur jedes n ∈ N gibt es in Fq [X] irreduzible Polynome f vom Grad n, und f¨ ur jedes solche f ist Fqn ∼ = Fq [X]/(f ). Die multiplikative Gruppe jedes endlichen K¨orpers ist zyklisch.
Sei jetzt V ein endlichdimensionaler Vektorraum u ¨ber dem endlichen K¨orper Fq und h , i eine nicht ausgeartete P symmetrische Bilinearform auf V , also etwa V = Fnq und hx, yi = ni=1 xi yi (da wir nicht u ¨ber dem K¨orper R der reellen Zahlen arbeiten und daher Begriffe wie po” sitiv definit“ sinnlos sind, vermeiden wir das Wort Skalarprodukt“). ” Definition und Satz 2.5. a) Ist A eine abelsche Gruppe, so heißen Gruppenhomomorphismen χ : A −→ S 1 = {z ∈ C | |z| = 1} Charaktere von A. b) Sei p eine Primzahl. Durch ¯j 7→ exp(2πij/p) wird ein (nicht trivialer) Charakter χ von Fp gegeben. F¨ ur diesen gilt p−1 X
χ(¯j) = 0.
j=0
c) Sei p eine Primzahl und q = pr mit r ∈ N. Dann wird durch F
ψ(a) := χ(TrFqp (a)) ein nicht trivialer Charakter von Fq gegeben, f¨ ur den X ψ(a) = 0 a∈Fq
gilt. d) Sei V ein n-dimensionaler Vektorraum u ¨ber dem endlichen K¨orper Fq mit nicht ausgearteter symmetrischer Bilinearform h , i. Dann wird f¨ ur jeden Vektor u ∈ V mit u 6= 0 durch χu (v) := ψ(hu, vi) ein nicht trivialer Charakter auf V gegeben. F¨ ur diesen gilt X χu (v) = 0. v∈V
15
Bemerkung. Diese Aussagen sind Spezialf¨alle f¨ ur endliche K¨orper und Vektorr¨aume u ¨ber diesen von Aussagen u ¨ber Charaktere beliebiger endlicher abelscher Gruppen. Definition 2.6. Sei V ein Vektorraum der Dimension m u ¨ber Fq mit nicht ausgearteter symmetrischer Bilinearform h , i , sei ψ : Fq −→ C∗ der oben definierte nicht triviale Charakter von Fq r. Sei ferner W ein C-Vektorraum und f : V −→ W eine beliebige Funktion. Dann ist die diskrete Fouriertransformation von f bez¨ uglich χ und h , i definiert als: 1 X fˆ(u) = m/2 χu (v)f (v). q v∈V Satz 2.7. F¨ ur die diskrete Fouriertransformation gilt: ˆ a) fˆ(v) = f (−v) f¨ ur alle v ∈ V . (Fouriersche Umkehrformel) b) Ist U ⊆ V ein Untervektorraum, so ist X 1 X 1 fˆ(w) f (u) = |U |1/2 u∈U |U ⊥ |1/2 ⊥ w∈U
(Poissonsche Summenformel) Beweis.
a) fˆ(w) = q −m/2
X
χ(B(u, w))fˆ(u)
u∈V
= q
−m
XX
χ(B(u, w))χ(B(u, v))f (v)
u∈V v∈V
= q −m
XX
χ(B(u, v + w))f (v)
w∈V u∈V
= f (−v), da gilt: X
χ(B(u, v + w)) =
u∈V
b) Es ist X w∈U ⊥
q m v = −w . 0 sonst
1 X χ(B(v, w))f (v) |V |1/2 v∈V ⊥ w∈U X X = |V |−1/2 ( χ(B(v, w)))f (v)
fˆ(w) =
X
v∈V w∈U ⊥
= |V |−1/2 · |U |⊥ ·
X u∈U
f (u),
16
da gilt: X
χ(B(v, w)) =
w∈U ⊥
|U ⊥ | falls v ∈ U . 0 sonst
Mit |V | = |U | · |U ⊥ | folgt X 1 1 X f (u) = fˆ(w) |U |1/2 u∈U |U ⊥ |1/2 ⊥ w∈U
wie behauptet. Bemerkung. Auch hier haben wir es mit der Spezialisierung f¨ ur Vektorr¨aume u ur ¨ber endlichen K¨orpern von Sachverhalten zu tun, die sich f¨ beliebige endliche abelsche Gruppen formulieren und beweisen lassen. 3. Das Gewichtepolynom Definition 3.1. Sei C ⊆ Fnq ein Code. Das Polynom X WC (X, Y ) = X w(x) Y n−w(x) x∈C
=
n X
rj (C)X j Y n−j
j=0
(mit rj (C) = #{x ∈ C | w(x) = j}) heißt Gewichtepolynom (weight enumerator) von C. Das Polynom W C in den q Variablen Xα (α ∈ Fq ), das durch WC =
n XY
Xxi
x∈C i=1
=
X
rj (C)
q j=(jα )α∈F ∈N0 q |j|≤n
Y
Xαjα
α∈Fq
(mit rj (C) = #{x ∈ C | xi = α f¨ ur genau jα Indizes i} ) heißt das vollst¨andige Gewichtepolynom von C (complete weight enumerator). Bemerkung. Einer h¨aufig benutzten Konvention folgend, bezeichnen wir auch das Polynom n X WC (X, 1) = rj (C)X j j=0
als Gewichtepolynom. Aus der jeweiligen Anzahl der Variablen geht hervor, welches der beiden Polynome gemeint ist.
17
Satz 3.2 (Mc Williams-Identit¨at). Sei C ⊆ Fnq ein linearer Code der Dimension k mit Gewichtepolynom A(X, Y ), sei B(X, Y ) das Gewichtepolynom von C ⊥ . Dann gilt B(X, Y ) = q −k A(Y − X, Y + (q − 1)X). Beweis. χ : Fq −→ C× sei nichttrivialer Charakter, f : Fnq −→ C[X, Y ] definiert durch f (x) = X w(x) Y n−w(x) . P F¨ ur y ∈ Fnq ist dann (mit B(x, y) = ni=1 xi yi ) fˆ(y) = q −n/2
X
n X χ( xi yi )f (x)
x∈Fn q
= q
−n/2
i=1 n Y
X
χ(xi yi ) · g(xi ),
(x1 ,...,xn )∈Fn q i=1
wo g : Fq −→ C[X, Y ] durch g(x) = fˆ(y) = q −n/2
n X Y
X x 6= 0 definiert ist. Also: Y x=0
χ(xyi )g(x) =
i=1 x∈Fq
Wir berechnen gˆ(y): 1/2 q gˆ(y) =
X·
n Y
gˆ(yi ).
i=1
y=0 P (q − 1)X + Y χ(x) + Y = Y − X y= 6 0. x6=0
Damit wird fˆ(y) = q n/2 (Y + (q − 1)X)n−w(y) (Y − X)w(y) . Nach der Poissonschen Summenformel erhalten wir X 1 1 B(X, Y ) = f (x) |C ⊥ |1/2 |C ⊥ |1/2 ⊥ x∈C
1 Xˆ = f (y) |C|1/2 y∈C =
q −n/2 A(Y − X, Y + (q − 1)X), |C|1/2
also B(X, Y ) = q −k A(Y − X, Y + (q − 1)X) wie behauptet.
Beispiel. a) Der Hamming-Code der L¨ange 7 u ¨ber F2 (ein [7, 4, 3]Code) hat Gewichtepolynom A(X, Y ) = X 7 + 7X 3 Y 4 + 7X 4 Y 3 + Y 7 . Der duale Code hat Dimension 3 und besteht (nachpr¨ ufen) genau aus den Codew¨ortern geraden Gewichts im Hamming-Code.
18
Das Gewichtepolynom ist also B(X, Y ) = 7X 4 Y 3 + Y 7 . Man pr¨ uft nach, dass das im Einklang mit der Mc Williams-Identit¨at ist. b) Wir erweitern den [7, 4, 3]-Hamming-Code u ¨ber F2 durch einen parity check zu einem [8, 4, 4]-Code. Man pr¨ uft nach, dass der erweiterte Code selbstdual ist. Es gilt also: 1 A(X, Y ) = · A(Y − X, Y + X) f¨ ur A = WC . 16 Was ist das Gewichtepolynom? A(X, Y ) = X 8 + 14X 4 Y 4 + Y 8 A(Y − X, Y + X) = ((Y − X)8 + 14(Y − X)4 (Y + X)4 + Y 8 )/16 = A(X, Y ). Man rechnet diese Identit¨at nach. 4. Konstruktionen von Codes aus Codes Wir stellen in diesem Abschnitt einige M¨oglichkeiten zusammen, neue Codes anhand bereits gegebener Codes zu konstruieren. Lemma 4.1. Sei C ein nichtentarteter (linearer) [n, k, d]-Code u ¨ber Fq . Dann gibt es auch (lineare) Codes u ¨ber Fq mit den Parametern: a) [n + 1, k, d] und f¨ ur k ≥ 1, n > d ≥ 2 auch b) [n − 1, k − 1, d] c) [n − 1, k, d − 1] d) [n, k − 1, d] e) [n, k, d − 1] Beweis. a) Im zugeh¨origen [n, k, d]q -System f¨ uge einen beliebigen Punkt einer Hyperebene H0 mit maximaler Punktanzahl hinzu (etwa: dupliziere eine geeignete Komponente). b) In der Kontrollmatrix ist d die minimale Anzahl linear abh¨angiger Spalten. W¨ahle ein solches minimales System und lasse eine nicht dazugeh¨orige Spalte der Kontrollmatrix fort. c) In a) entferne einen Punkte von P, der nicht zu H0 geh¨ort. d) b) + a) e) c) +a). Lemma 4.2. Seien C1 ⊆ Fnq 1 , C2 ⊆ Fnq 2 lineare Codes mit Parametern [n1 , k1 , d1 ], [n2 , k2 , d2 ]. Dann sind die folgenden Codes ebenfalls linear. a) C1 ⊕ C2 = {(x1 , x2 ) ⊆ Fnq 1 +n2 | x1 ∈ C1 , x2 ∈ C2 } mit Parametern n1 + n2 , k1 + k2 , min(d1 , d2 ). b) C1 ⊗ C2 ⊆ Fnq 1 n2 mit Parametern n1 n2 , k1 k2 , d1 d2 , dabei realisiere man Fnq 1 n2 als Mn1 ,n2 (Fq ) und C1 ⊗ C2 als den von {(xi yj ) | x ∈ C1 , y ∈ C2 } erzeugten Unterraum von Mn1 ,n2 (Fq )
19
c) (C1 |C2 ) ⊆ Fnq 1 +n2 (Pasting oder Verklebung): Hintereinanderstellen der Erzeugermatrizen, mit Parametern [n1 + n2 , k, d1 + d2 ]. Lemma 4.3. Seien C1 , C2 ⊆ Fnq Codes. Dann erh¨alt man neue Codes durch a) C = (C1 |C1 +C2 ) = {(u, u+v) | u ∈ C1 , v ∈ C2 } mit Parametern [2n, k1 + k2 , min(2d1 , d2 )]. b) Hat C1 Parameter [n, k, d], C2 Parameter [n, k − 1, d + 1] und gilt C1 ⊇ C2 , so sei v ∈ C1 \ C2 . Sei C = {(w + xv, x) ∈ Fn+1 | w + xv ∈ C1 mit w ∈ C2 }. Dann q hat C Parameter [n + 1, k, d + 1]. ¨ Beweis. b) als Ubung a): Zu zeigen ist nur die Behauptung u ¨ber den Minimalabstand. Sei x = (u, u + v) ∈ C. Ist v = 0, so ist w(x) ≥ 2w(C1 ). Ist v 6= 0 und vj 6= 0, so ist uj 6= 0 oder uj + vj 6= 0, also w(x) ≥ w(v) ≥ w(C2 ). dass sowohl 2w(C1 ) als auch w(C2 ) erreicht wird, ist klar.
Lemma 4.4. (Koeffizientenrestriktion bzw. Verlagerung oder Transfer). a) Sei q = rm , Fr ⊆ Fq als Fr = {α ∈ Fq | αr = α}, C ein linearer [n, k, d]-Code u ¨ber Fq . Dann ist C 0 = C ∩ Fnr ein [n, k 0 , d0 ]-Code 0 u ¨ber Fr mit k ≥ n − m(n − k), d0 ≥ d. b) Sei C ein Code der L¨ange n u ¨ber Fq , sei eine Basis von Fq u ¨ber ˜ ∈ Fm der Koeffizientenvektor von a Fr fixiert, f¨ ur a ∈ Fq sei a r bez¨ uglich dieser Basis. ˜ n ) ∈ Fnm | (x1 , . . . , xn ) ∈ C)} die VerDann heißt C˜ = {(˜ x1 , . . . , x r ˜ lagerung (der Transfer) von C nach Fr . Hat C Parameter [n, k, d], so hat C˜ Parameter [nm, km, d]. ¨ Beweis. Als Ubung
Als letzte Konstrukionsmethode in diesem Abschnitt betrachten wir das in der Praxis viel benutzte interleaving. Definition und Lemma 4.5. C sei ein linearer [n, k, d]-Code u ¨ber Fq , ferner sei t ∈ N. Der Code C(t) := {(c11 , . . . , ct1 , . . . , c1n , . . . , ctn ) | (ci1 , . . . , cin ∈ C(1 ≤ i ≤ n)} heißt der durch Interleaving (Code-Verschachtelung) der Tiefe t aus C entstandene Code (oder einfach das Interleaving von C der Tiefe t). Der Code C(t) hat Dimension tk und Minimalabstand d. Bemerkung. Interlea ving wird benutzt, um sogenannte bursts (Fehlerb¨ undel) zu korrigieren: Ein burst (Fehlerb¨ undel) der L¨ange b ist ein
20
Fehlervektor mit einer Folge von b von 0 verschiedenen Eintr¨agen. solche Fehlerb¨ undel treten in der Praxis besonders h¨aufig auf, etwa durch atmosph¨arische St¨orungen bei Funk¨ ubertragung oder durch Kratzer auf einem Speichermedium. Kann der Code C B¨ undel der L¨ange b korrigieren, so korrigiert das Interleaving C(t) B¨ undel der L¨ange tb. Anwendungen dieser Technik bei der Datenspeicherung auf Audi-CDs werden etwa im Buch von Willems, Abschnitt 1.2. 24 beschrieben. Auch der oben beschriebene Transfer eines Codes von Fpm nach Fp ist geeignet, bursts zu korrigieren. 5. Reed-Muller-Codes Wir betrachten jetzt eine Abwandlung der Konstruktion der ReedSolomon-Codes.
Definition 5.1. Sei F = Fq , m ∈ N, r < m(q − 1). Sei Lm (r) ⊆ αm−1 F [X0 , . . . , Xm−1 ] der Unterraum, der von den Monomen X0α0 · · · Xm−1 P mit 0 ≤ αi ≤ q − 1, αi ≤ r aufgespannt wird. Seien P0 , . . . , Pn−1 (n = q m ) die Elemente von Fm q . Dann heißt das Bild der durch Lm (r) 3 f 7−→ (f (P0 ), . . . , f (Pn−1 )) gegebenen Abbildung ϕ : Lm (r) −→ Fnq der Reed-Muller-Code R(q, r, m) r-ter Ordnung der L¨ange q m u ¨ber u ¨ber Fq . Wir schreiben R(r, m) := R(2, r, m). Wir schr¨anken uns auf den Fall q = 2 ein. F¨ ur das Weitere ist es zweckm¨aßig, die Vektoren des Fm 2 so anzuordm nen, dass in der Position j (0 ≤ j ≤ 2 − 1) der Vektor x(j) mit Pm−1 (j) i (j) i=0 xi 2 = j steht (xi ∈ {0, 1}). Proposition 5.2. a) Die Bilder der Monome unter ϕ sind eine Basis von R(r, m). b) R(r+1, m+1) = {y ∈ Fn2 | (y0 , . . . , yn−1 ) ∈ R(r+1, m), (yn , . . . , y2n−1 )− (y0 , . . . , yn−1 ) ∈ R(r, m)} c) w(R(r, m)) = 2m−r dim R(r, m) = 1 + ( m1 ) + · · · + ( mr ) d) R(r, m)⊥ = R(m − r − 1, m). Beweis. Um a) und die Behauptung u ¨ber die Dimension in c) zu zeigen, reicht es zu sehen, dass R(m, m) = Fn2 ist. Fixiere j mit 0 ≤ j ≤ 2m − 1. F¨ ur 0 ≤ i ≤ m − 1 setzen wir ( (j) Xi xi = 1 gi = (j) 1 + Xi xi = 0
21
Q und g = m−1 i=0 gi . Dann ist g(x(j) ) = 1, g(x(l) ) = 0 f¨ ur l 6= j, also (g(P0 ), . . . , g(Pn−1 )) = (0, . . . , 0, 1, 0, . . . , 0), ↑ j n also in der Tat R(m, m) = F2 . Zu b): Betrachte R(r + 1, m + 1): Die Vektoren des Fm+1 sind so an2 geordnet, dass f¨ ur den Vektor x(j) gilt: m X (j) j= xi 2i (0 ≤ j ≤ 2m+1 − 1), i=0
insbesondere ist
(j) xm
= 0 f¨ ur j ≤ 2m − 1 und (j+2m )
xi
(j)
= xi
f¨ ur j ≤ 2m − 1.
F¨ ur jedes Monom eI = Xi1 · · · Xis ∈ Lm+1 (r + 1) (I = {i1 , . . . , is } ⊆ {0, . . . , m} ist also f¨ ur j ≤ 2m − 1 eI (x(j) ) = 0, falls m ∈ I und
eI (x(j) ) falls m 6∈ I (j) eI\{m} (x ) falls m ∈ I. Der aus den ersten n Komponenten von (eI (P0 ), . . . , eI (P2m+1 −1 )) gebildete Vektor ist also in R(r + 1, m), und der Vektor, dessen j-te m Komponente eI (x(j+2 ) ) − eI (x(j) ) (0 ≤ j ≤ 2m − 1) ist, ist in R(r, m), wir sehen also “⊆”. (j+2m )
eI (x
)=
Ein Vergleich der Dimensionen ergibt die Gleichheit: 1 +
( m1 )
+
( m2 )
m + · · · + ( r+1 ) = dim R(r + 1, m)
1
+
( m1 )
+···+
( mr )
= dim R(r, m)
1 + ( m+1 ) + ( m+1 ) + · · · + ( m+1 ) = dim R(r + 1, m + 1) 1 2 r+1 Die Behauptung u ¨ber den Minimalabstand zeigen wir durch Induktion nach m; f¨ ur m = 1 ist nichts zu zeigen. Sei m > 1, r < m (f¨ ur r = m ist nichts zu zeigen), und die Behauptung f¨ ur m − 1 sei bereits gezeigt. Dann folgt die Behauptung u ¨ber w(R(r, m)) aus b) und Lemma 4.3 a) ((u, u + v)-Konstruktion). Zu zeigen bleibt d). Sei ϕ(eI ) (|I| ≤ r) einer der Basisvektoren von R(r, m), ϕ(eJ ) (|J| ≤ m − r − 1) einer von R(m − r − 1, m). Dann ist hϕ(eI ), ϕ(eJ )i = w(ϕ(eI ∪ eJ )) = 2m−|I∪J|
22
gerade, also hϕ(eI ), ϕ(eJ )i = 0. Die beiden Codes stehen also orthogonal aufeinander, und ihre Dimensionen erg¨anzen sich zu m = 2n . Bemerkung. a) Analoge Resultate lassen sich f¨ ur beliebiges q zeigen. Man erh¨alt:
dim R(q, r, m) =
[i/q] r X X
(−1)j (
i=0 j=0
d(R(q, r, m))
m m − 1 + i − qj )( ) j m−1
= (q − b)q m−a−1
(dabei schreibt man r = a(q − 1) + b mit 1 ≤ bleqq − 1). b) Man kann eine analoge Konstruktion durchf¨ uhren, indem man den Raum der homogenen Polynome vom Grad r in (m + 1) Variablen betrachtet und in Punkten von Pm (Fq ) auswertet; ein Wechsel im Repr¨asentanten eines solchen Punktes f¨ uhrt dann zu einem ¨aquivalenten Code. c) Das Monom Xi1 · · · Xis nimmt den Wert 1 genau auf den Punkten x von Fnq an, die im Durchschnitt der affinen Hyperebenen Aij = {x ∈ Fnq | xij = 1} liegen (¨aquivalent: im Komplement der Vereinigung der Hyperebenen {x | xij = 0}; f¨ ur q 6= 2 ist dies ein komplizierteres geometrisches Gebilde). Ebenso z¨ahlt das Gewicht eines beliebigen Codeworts ϕ(f ) f¨ ur f ∈ Lm (r) die Anzahl der Punkte von Fm , die nicht im Nullstellengebilde von f lieq gen. Die Bestimmung des Minimalabstandes bedeutet also geometrisch die Bestimmung des maximalen Werts der Punktanzahl in Fm ur jedes einzelne q des Nullstellengebildes eines f ∈ Lm (r). F¨ f ist die Bestimmung dieser Punktanzahl ein schwieriges Problem. Affine Transformationen von Fnq (Kombinationen von linearen Abbildungen und Translationen) bewirken eine Permutation der Punkte und dadurch eine lineare Transformation (vom Typ π ˜ mit n π ∈ Sn ) des Vektorraums Fq = R(q, m, m), in dem die R(q, r, m) liegen. Da jede solche Transformation den Vektorraum Lm (r) in sich u uhrt, liefern alle Elemente der Gruppe AGL(m, q) der affi¨berf¨ nen Transformationen des Fm q Automorphismen des Codes R(q, r, m).
23
6. Zyklische Codes Beispiel. Wir betrachten jetzt noch einmal den [7, 4, 3]-Hamming-Code u ¨ber F2 mit Kontrollmatrix 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 und Erzeugermatrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 1 1
1 1 1 0
0 1 . 1 1
Die zyklischen Verschiebungen um eine Position der Zeilen ci m¨ogen c0i heißen. Dann ist c01 = c2 , c02 = c1 + c3 , c03 = c1 + c4 , c04 = c1 . Die Vektoren c01 , . . . , c04 spannen also den gleichen Code auf, der Code ist also invariant unter allen zyklischen Verschiebungen. Daraus sehen wir sofort (betrachte c1 , c3 und deren 7 zyklische Verschiebungen), dass C jeweils 7 W¨orter vom Gewicht 3 bzw. 4 enth¨alt (die Bahnenl¨ange unter der Operation der Untergruppe h(1234567)i ⊆ Sn kann nur 1 oder 7 sein), erhalten also das behauptete Gewichtepolynom, da das Nullwort und das Wort (1, . . . , 1) = c1 + · · · + c4 auch zum Code geh¨oren. Man sieht ferner, dass die Zeilen der Kontrollmatrix zyklische Verschiebungen von c3 sind, also ist C ⊥ ⊆ C und besteht aus den W¨ortern geraden Gewichts.
Definition 6.1. Der Code C ⊆ Fnq heißt zyklisch, wenn die von (12 · · · n) erzeugte Untergruppe von Sn zur Automorphismengruppe von C geh¨ort. Zyklische Codes lassen sich leicht mit algebraischen Methoden behandeln. Dazu stellen wir fest, dass der Faktorring Fq [X]/(X n − 1) als Fq P j n Vektorraum isomorph zu Fnq ist (durch f = ( n−1 j=0 cj X ) mod (X − 1) −→ (c0 , . . . , cn−1 ) =: c(f ) .)
Proposition 6.2. Sei wie oben Fnq identifiziert mit Fq [X]/(X n − 1), C ⊆ Fnq ein linearer Code. Dann ist C genau dann zyklisch, wenn C ein Ideal im Ring Fq [X]/(X n − 1) ist. In diesem Fall gibt es ein eindeutig bestimmtes normiertes Polynom kleinsten Grades g ∈ Fq [X], so dass C genau aus den Vielfachen von g ∈ Fq [X]/(X n − 1) besteht. g heißt das Erzeugerpolynom von C, es ist ein Teiler von X n − 1.
24 n
ufpolynom, check Das Polynom h = X g−1 heißt Kontrollpolynom (Pr¨ polynomial) von C. Es gilt: C = {f ∈ Fq [X]/(X n − 1) | f h = 0} C ∼ = Fq [X]/(h),
und
dabei ist durch f mod h 7−→ f g mod (X n − 1) ein Isomorphismus gegeben. Beweis. Die zyklische Verschiebung wird durch Multiplikation mit der Restklasse X von X mod X n − 1 bewirkt, also ist C genau dann zyklisch, wenn es ein Ideal ist. Da Fq [X] Hauptidealring ist und in jedem Ring A die Ideale im Faktorring A/I (I ⊆ A Ideal) genau die Mengen J = {a + I | a ∈ J} f¨ ur Ideale J ⊇ I von A sind, ist auch Fq [X]/(X n − 1) Hauptidealring. Das zeigt die Existenz des Erzeugerpolynoms g und gleichzeitig die Behauptung, dass g ein Teiler von X n − 1 ist. Die Behauptung u ¨ber h ist dann klar. Pk j Bemerkung. Das Kontrollpolynom h = j=0 hj X mit deg(g) = n − k und hk = 1) f¨ uhrt auf die Kontrollmatrix hk · · · h0 · · ∈ Mn−k,n (Fq ). · hk · · · h0 0 · · · · · · 0 Das Skalarprodukt der i-ten Zeile dieser Matrix (1 ≤ i ≤ n − k) mit dem durch g gegebenen Codewort g0 , . . . , gn ist n¨amlich (mit hj = 0 Pn−1 n−i von gh = f¨ ur j > k) j=0 gj hn−j−i , also der Koeffizient bei X n X − 1, also gleich 0. Genauso rechnet man aus, dass die Zeilen der Matrix Skalarprodukt 0 mit den ersten k zyklischen Verschiebungen von (g0 , . . . , gn−1 ) haben. Man sieht durch Betrachten der Kontrollmatrix: Der zu C duale Code ˆ hat das Erzeugerpolynom h(X) = X k h(X −1 ). Er ist ¨aquivalent zu dem Code mit Erzeugerpolynom h. Beispiel. Sei q = 2, n = 7. Das Polynom X 7 − 1 zerf¨allt als (X + 1)(X 3 + X 2 + 1)(X 3 + X + 1). Der Code mit Erzeugerpolynom (X 3 + X + 1) hat Erzeugermatrix 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1
25
und Kontrollmatrix (Kontrollpolynom ist X 4 + X 2 + X + 1) 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 Der Code ist also a¨quivalent zum Hamming-Code. Der duale Code hat Erzeugerpolynom ˆ h(X) = X 4 + X 3 + X 2 + 1 = (X + 1)(X 3 + X + 1) und ist ¨aquivalent zu dem vom Kontrollpolynom X 4 + X 2 + X + 1 = (X + 1)(X 3 + X 2 + 1) erzeugten Code.
Proposition 6.3. Der zyklische Code C ⊆ Fnq habe Erzeugerpolynom g vom Grad n − k. Dann erh¨alt man Basen von C durch die Nebenklassen mod X n − 1 von: a) g, X · g, . . . , X k−1 g b) X j − (X j mod g) (n − k ≤ j ≤ n − 1) Beweis.
a) Ist f ∈ C mit deg f < n, so ist f = gq + r · (X n − 1) mit q, r ∈ Fq [X] = gq + r · hg = g(q + rh),
also f ein Vielfaches von g und notwendig deg(q + rh) ≤ k − 1. Alle solchen Vielfachen lassen sich offenbar aus g, Xg, . . . , X k−1 g linear kombinieren, und diese Elemente sind offensichtlich linear unabh¨angig. b) Die Elemente sind offenbar linear unabh¨angig, aus Dimensionsgr¨ unden also eine Basis. Bemerkung. Zyklische Codes sind relativ leicht zu codieren. Zur Codierung gehe man aus von einem zu codierenden Vektor (cn−k , . . . , cn−1 ) der L¨ange k, setze c0 (X) = cn−k X n−k + · · · + cn−1 X n−1 und codiere als c0 (X) − (c0 (X) mod g(X)). Nach Teil b) der vorigen Proposition ist das gerade cn−k fn−k + · · · + cn−1 fn−1 , wo die fn−j die Elemente einer Basis des Codes durchlaufen. Die Berechnung von c0 (X) mod g(X) durch Polynomdivision mit Rest ist technisch leicht durch eine Schieberegisteranordnung zu realisieren.
26
Wir betrachten hierf¨ ur zun¨achst ein Beispiel: (X 5 + X 4 + X 3 + 0 · X 2 + X + 1) : (X 2 + 1) = X 3 + X 2 + 0 · X + 1, RestX X5 + 0 · X4 + X3 X4 + 0 · X3 + 0 · X2 + X + 1 X4 + 0 · X3 + X2 X2 + X + 1 In jedem Zeitpunkt betrachten wir einen Ausschnitt der L¨ange 3 (= deg g +1) aus der Koeffizientenfolge von f . Man l¨aßt diesen Ausschnitt unver¨andert, wenn er mit 0 beginnt, und addiert die Koeffizientenfolge (1, 0, 1) von g, wenn er mit 1 beginnt; anschließend schiebt man das Fenster, in dem man den Ausschnitt sieht, um eine Position nach rechts. Man ben¨otigt also im allgemeinen (mit t = deg(g)) t + 1 Register. In jedem Schritt addiert man das r1 -fache des Koeffizientenvektors von g zu dem durch den Zustand der Register gegebenen Vektor, schiebt anschließend alle Registerinhalte um eine Position nach links und nimmt den Inhalt von rt+1 aus der ersten noch unbenutzten Position des Koeffizientenvektors von f auf. Definition 6.4. Sei X n − 1 = f1 · · · ft mit irreduziblen fi in Fq [X] (ist ggT(q, n) = 1, so sind die fi paarweise verschieden). Dann heißen die von den fi erzeugten Codes die maximalen zyklischen Codes Mi+ , die n von den X fi−1 erzeugten Codes die minimalen zyklischen Codes Mi− . Bemerkung. a) Ist ggT(q, n) = 1, so ist (X n − 1)0 = nX n−1 6= n 0, (X − 1) enth¨alt also kein irreduzibles Polynom mehrfach. Die Codes Mi+ bzw. Mi− sind offenbar maximal bzw. minimal in dem Sinne, dass sie in keinem zyklischen Code der L¨ange n echt enthalten sind (bzw. einen solchen Code echt enthalten). b) X n − 1 kann u ¨ber verschiedenen K¨orpern verschiedene Faktorzerlegungen haben, z.B. ist (X 5 − 1) = (X − 1)(X 4 + X 3 + X 2 + X + 1) = (X − 3)(X − 9)(X − 5)(X − 4)(X − 1)
in F2 [X] in F11 [X].
Wie das Polynom zerf¨allt, kann man unter anderem mit etwas Galoistheorie erkennen: Ist zun¨achst allgemein f ∈ K[X] ein Polynom, das in K[X] in ein Produkt Qn f = f1 · · · ft (verschiedener) irreduzibler Faktoren zerf¨allt und f = i=1 (X − αi ) u ¨ber der endlichen Galoiserweiterung L von K, so induziert die Aktion der Galoisgruppe Gal(L/K) eine Permutation der Nullstellen von f , da f (σ(αi )) = σ(f (αi )) = 0 f¨ ur jedes σ ∈ Gal(L/K) gilt. Dabei f¨ uhrt σ die Nullstellen von fj wieder in Nullstellen von fj u ur je zwei Nullstellen α, β von fj gibt es ein σ ∈ Gal(L/K) ¨ber, und f¨ mit σ(α) = β. Die Nullstellen der irreduziblen Faktoren fj von f sind
27
also genau die Bahnen unter der Aktion der Galoisgruppe auf den Nullstellen von f . Betrachten wir jetzt speziell f = X n −1 u ¨ber K = Fq mit ggT(q, n) = 1, n L = Fqd sei ein K¨orper, u ¨ber dem X −1 in Linearfaktoren zerf¨allt, d.h. ein K¨orper, der eine primitive n-te Einheitswurzel ζ enth¨alt: ζ n = 1, hζi = {α ∈ Fq | αn = 1}, also ord(ζ) = n in F× . Das kleinste d, f¨ ur qd das ein solches ζ in Fqd existiert, ist min{k | n | (q k − 1)} = ord(Z/nZ)× (q). Die Galoisgruppe von Fqd /Fq wird erzeugt vom Frobeniusautomorphismus ϕ mit ϕ(x) = xq , die Operation auf den Nullstellen ζ j (0 ≤ j ≤ k n−1 bzw. j ∈ Z/nZ) von X n −1 wird also gegeben durch ϕk (ζ j ) = ζ q j . 0 Die Bahn von ζ j besteht also aus den ζ j mit j 0 ∈ {j, qj, q 2 j, . . . , q (rj −1) j}, dabei ist rj = min{r | q r · j ≡ j mod n}. Das Minimalpolynom von ζ j u ¨ber Fq ist dann (X − ζ j )(X − ζ qj ) · · · (X − ζ q
(rj −1) j
);
da dieses Polynom unter ϕ in sich u ¨bergeht (zyklische Vertauschung der Faktoren), hat es in der Tat Koeffizienten in Fq . Hat man eine Multiplikationstabelle f¨ ur Fqd , so kann man hieraus die Koeffizienten der irreduziblen Faktoren berechnen; ansonsten erh¨alt man immerhin die Grade der irreduziblen Faktoren. Beispiel. (X 7 −1) u ¨ber F2 . Wegen 23 ≡ 1 mod 7 zerf¨allt das Polynom u ¨ber F8 . Die Bahnen in Z/7Z des Frobenius-Automorphismus von F8 sind {0}, {1, 2, 4}, {3, 6, 5 = 12}, und die Faktoren sind (X+1) = f0 , (X+ζ)(X+ζ 2 )(X+ζ 4 ) = f1 , (X+ζ 3 )(X+ζ 6 )(X+ζ 5 ) = f2 . Wir haben ζ + ζ 2 + ζ 4 = trFF82 (ζ) als Koeffizient bei X 2 von f1 und bei X von f2 , ζ 3 + ζ 6 + ζ 5 = trFF82 (ζ 3 ) als Koeffizient bei X von f1 und bei X 2 von f2 , 1 = ζ 7 = ζ 14 als konstanten Term von f1 und f2 . Also: f1 = fˆ2 , und wegen ζ 1 + ζ 2 + · · · + ζ 6 = 1 muß (in irgendeiner Reihenfolge) f1 = X 3 + X 2 + 1, f2 = X 3 + X + 1 sein. Proposition 6.5. Ist X n − 1 = f1 (X) · · · ft (X) die Zerlegung von X n − 1 in ein Produkt normierter irreduzibler Polynome in Fq [X] und βi eine Nullstelle von fi im algebraischen Abschluß Fq von Fq , so ist Mi+ = {f ∈ Fq [X]/(X n − 1) | f (βi ) = 0}. Sind umgekehrt α1 , . . . , αs ∈ Fq beliebige n-te Einheitswurzeln und C := {h ∈ Fq [X]/(X n − 1) | h(αi ) = 0 f¨ ur 1 ≤ i ≤ s},
28
so ist C der zyklische Code, dessen Erzeugerpolynom das kleinste gemeinsame Vielfache der Minimalpolynome der αi in Fq [X] ist. Beweis. f ist genau dann durch fi teilbar, wenn sein Wert in einer der Nullstellen von fi gleich Null ist (dann ist nat¨ urlich f (β) = 0 f¨ ur alle Nullstellen β von fi in Fq ). Der zweite Teil der Behauptung folgt auf die gleiche Weise. Beispiel. Sei C ⊆ Fnq (n ≤ q − 1) der Reed-Solomon-Code der Dimension a + 1 (a < n). Eine Basis sind die (fj (P1 ), . . . , fj (Pn )) mit fj (X) = X j (0 ≤ j ≤ a). Ein Element y = (y1 , . . . , yn ) ist in C ⊥ , wenn X yi fj (Pi ) = 0 (0 ≤ j ≤ a) ist. Sei hαi = F∗q , Pi = αi . P y αij = 0 Dann ist y ∈ C ⊥ ⇔ n−1 Pn−1 i=0i i Mit hy (X) := i=0 yi X heißt das:
(0 ≤ j ≤ a)
y ∈ C ⊥ ⇔ hy (αj ) = 0 (0 ≤ j ≤ a). Der Code C ⊥ ist also durch die Nullstellen 1, α, . . . , αa gegeben. Proposition 6.5 erlaubt es, auf eine neue Weise Kontrollmatrizen f¨ ur zyklische Codes aufzustellen: Proposition 6.6. Sei wieder X n − 1 = f1 (X) · · · ft (X) mit paarweise verschiedenen irreduziblen fi ∈ Fq [X], βi eine Nullstelle von fi in Fqm und C der Code mit Erzeugerpolynom f1 · · · fs . (j) Sei eine Fq -Basis des Vektorraums Fqm fixiert und bi ∈ Fm q der Koj ordinatenvektor von βi (0 ≤ j ≤ n − 1), geschrieben als Spaltenvektor. Dann ist die Matrix (0) (n−1) b1 , · · · , b1 H := ... ∈ Ms·m,n (Fq ) (0)
bs
(n−1)
, · · · , bs
eine verallgemeinerte Kontrollmatrix von C (d.h., rg H ist evtl. kleiner P als sm, n¨amlich gleich rj=1 deg (fi ) ≤ sm. Beweis. Multipliziert man die Zeile, in der die l-ten Koordinaten der Potenzen von βi stehen, mit dem Codewort Pn−1 c, jso erh¨alt man als Resultat die l-te Koordinate von c(β) = j=0 cj β , und letzteres ist Null, da ja C gerade aus den Polynomen besteht, die in allen Nullstellen der f1 , . . . , fs den Wert Null annehmen. Beispiel. Seien n, k gegeben mit q k ≡ 1 mod n, ζ ∈ Fqk eine primitive n-te Einheitswurzel, d > 1 ∈ N. Der zyklische Code C = {f ∈ Fq [X]/(X n − 1) | f (ζ) = · · · = f (ζ d−1 ) =
29
0} heißt BCH-Code (im engeren Sinne) vom konstruierten Abstand d (designed distance, Entwurfsdistanz). C heißt primitiv, wenn n = q k − 1 gilt. Es gilt: w(C) ≥ d.
Beweis. Betrachte die k(d − 1) × n-Matrix 1 b ··· b(n−1) .. .. .. . . . (d−1) (d−1)(n−1) 1 b b
u ¨berFq
mit den b(j) zu ζ j wie oben, bzw. die zugeh¨orige Matrix 1 ζ ··· ζ n−1 ... u ¨ber Fnqk ((d − 1) ≤ n). 1 ζ d−1 · · · ζ (d−1)(n−1) In letzterer bilden je (d − 1) beliebig herausgegriffene Spalten eine Vandermonde-Matrix mit Determinante Y (ζ ir − ζ is ) 6= 0; ir
je (d − 1) Spalten sind also linear unabh¨angig, d.h. w(C) ≥ d.
Bemerkung. BCH-Codes k¨onnen nat¨ urlich auch als Koeffizientenrestriktion des Codes u ¨ber Fqk aufgefaßt werden, der von der obigen Matrix annulliert wird. BCH-Codes sind bei den Praktikern beliebt, da sie gut zu decodieren sind. Wir nehmen an, der konstruierte Abstand (die Entwurfsdistanz) sei d = 2t + 1. Sei c(X) das gesendete Wort, R(X) das empfangene, also E(X) = R(X) − c(X) der Fehler, die Koeffizienten von c, E, R seien ci , Ei , Ri . Beim Empf¨anger ist nat¨ urlich zun¨achst nur R bekannt, das Ziel der Decodierung ist die Berechnung von E und dadurch die Bestimmung von c. Sei F = {i | Ei 6= 0}, f = |F|, Y σ(z) = (1 − ζ i z) ∈ Fqk [z] i∈F
ω(z) =
X i∈F
=
j∈F \{i}
X σ(z)Ei ζ i z i∈F
Y
Ei · ζ i · z ·
(1 − ζ i z)
.
(1 − ζ j z)
30
Dann ist Ei 6= 0 genau dann, wenn σ(ζ −i ) = 0 ist, ferner ist f¨ ur ` ∈ F: ω(ζ −` ) = E`
Y
(1 − ζ j−` )
j∈F \{`}
= −ζ −` E` · σ 0 (ζ −` ) (formale Ableitung). Wir wollen σ berechnen, um anschließend die Nullstellen von σ zu finden und dadurch den Fehler zu bestimmen. Das Polynom σ(z) hat den konstanten Term 1 und ist daher im Ring C[[z]] der formalen Potenzreihen in der Variablen z invertierbar. Wir haben daher ∞ X X ω(z) = Ei (ζi z)` σ(z) i∈F `=1
=
∞ X
z ` E(ζ ` )
`=1
als Identit¨at im Ring C[[z]] der formalen Potenzreihen u ¨ber C in der Variablen z. Nach Konstruktion des Codes ist c(ζ ` ) = 0 f¨ ur ` = 1, . . . , 2t, also 2t 2t sind E(ζ) = R(ζ), . . . , E(ζ ) = R(ζ ) bekannt. Wir setzen E(ζ ` ) = R(ζ ` ) =: S` f¨ ur 1 ≤ ` ≤ 2t und haben 2t
ω(z) X S` z ` mod z 2t+1 . ≡ σ(z) `=1
(∗)
Nach Konstruktion hat σ den Grad f und es gilt deg(ω) ≤ f . Wir versuchen jetzt, hieraus ω und σ zu berechnen und nehmen f ≤ t an. Ist σ ˜ vom Grad f ≤ t gegeben, so ist zun¨achst klar, dass es h¨ochstens ein ω ˜ mit deg ω ˜ ≤ deg σ ˜ gibt,P so dass (∗) erf¨ ullt ist. ˜j z j , so ist Sind solche σ ˜, ω ˜ gegeben und ist σ ˜ (z) = tj=0 σ 2t t X X ` ω ˜ (z) ≡ ( S` z )( σ ˜j z j ) mod z 2t+1 `=0
j=0
2t X X ≡ ( S` σ ˜j )z k mod z 2t+1 , k=0 j+`=k
also
P
j+`=k
S` σ ˜j = 0 f¨ ur f + 1 ≤ k ≤ 2t.
Ist umgekehrt diese Gleichung f¨ ur f + 1 ≤ k ≤ 2t richtig, so hat das hierdurch bestimmte ω ˜ Grad ≤ f . Wir schreiben das Gleichungssystem
31
um, um zu sehen, welche L¨osungen σ ˜j es f¨ ur gegebene S` hat: X X X 0= E(ζ ` )˜ σj = σ ˜j Ei ζ `i j+`=k
j∈F
j+`=k
=
X
σ ˜j
j
X
Ei ζ (k−j)i
i∈F
XX = ( σ ˜j ζ −ji )Ei ζ ki i∈F
=
X
j
σ ˜ (ζ −i )Ei ζ ki
i∈F
Das ist ein lineares Gleichungssystem in den Variablen xi = σ ˜ (ζ −i )Ei ki mit Koeffizienten aki = ζ in |F| = f Unbekannten; die Anzahl der Gleichungen ist 2t − f ≥ t ≥ f . W¨ahlen wir f Gleichungen aus, so erhalten wir ein Gleichungssystem, dessen quadratische Matrix als Determinante eine VandermondeDeterminante 6= 0 hat. Das System l¨aßt also nur die triviale L¨osung zu, d.h., f¨ ur alle i ∈ F ist xi = Ei σ ˜ (ζ −i ) = 0. Das Polynom σ ˜ annulliert −i also alle ζ f¨ ur i ∈ F und ist daher gleich dem gesuchten σ. Wir k¨onnen jetzt den Fehlervektor so bestimmen: Man suche ein Polynom σ ˜ vom kleinstm¨oglichen Grad f˜, f¨ ur das X S` σ ˜j = 0 (k = f˜ + 1, . . . , 2t) j+`=k
gilt. Dieses σ ˜ ist dann das gesuchte “error locator”-Polynom σ. Die Aufgabe ist also auf die L¨osung des obigen linearen Gleichungssystems reduziert. Ein speziell auf diesen Zweck zugeschnittener Algorithmus wurde von Berlekamp angegeben (siehe etwa Berlekamp: Algebraic Coding Theory, McGraw Hill 1968). Definition 6.7. Ist R ein Ring, so heißt ein Element 0 6= x ∈ R idempotentes Element (eine Idempotente), wenn x2 = x gilt. Zwei Idempotente x1 , x2 heißen orthogonal, wenn x1 x2 = x2 x1 = 0 gilt. x heißt primitive Idempotente, wenn x sich nicht als x1 + x2 mit orthogonalen Idempotenten x1 , x2 schreiben l¨aßt Lemma 6.8. Sei X n − 1 = P1 · · · Pt mit paarweise verschiedenen irrer duziblen Pj in Fq [X], sei Kj = Fq [X]/(Pj ) ∼ = Fqj mit rj = deg(Pj ). Dann ist Fq [X]/(X n − 1) ∼ = K1 × · · · × Kt durch f mod X n − 1 7−→ (f mod P1 , · · · , f mod Pt ). Die Elemente θi mit θi ≡
0 mod Pj , falls j 6= i 1 mod Pi
sind paarweise orthogonale primitive Idempotente von Fq [X]/(X n − 1) mit θ1 + · · · + θt = 1.
32
Beweis. Klar. Die ei sind primitiv, da Fq [X]/(Pi ) ein K¨orper ist und in K¨orpern 1 die einzige Idempotente ist. Proposition 6.9. a) Die primitiven Idempotenten θi sind Erzeugerpolynome der minimalen Codes Mi− mit θi · c = c f¨ ur jedes c ∈ Mi− . b) Ist C der zyklische Code mit Erzeugerpolynom fi1 · · · fir , so ist 1 − θi1 − · · · − θir das eindeutig bestimmte Element θ von C, f¨ ur das θ · c = c f¨ ur jedes c ∈ C gilt. Beweis. a) Der minimale Code Mi− hat Kontrollpolynom fi . Er ist das Urbild unter der Abbildung Fq [X]/(X n − 1) −→ K1 × · · · × Kt
(Kj = Fq [X]/(fj ))
von
Ki = {(0, . . . , 0, x, 0, . . .)} ↑ , i er besteht also aus den Vielfachen von θi . F¨ ur ein solches Vielfaches θi f gilt dann θi (θi f ) = θi f . b) Wie in a) ist C das Urbild von Kj1 × · · · × Kjs
mit {i1 , . . . , ir , j1 , . . . , js } = {1, . . . , t}.
Das zugeh¨orige idempotente Element ist daher θ = θj1 + · · · + θjs = 1 − θi1 − · · · − θir . θ ist das Urbild des 1-Elements von Kj1 × · · · × Kjs . Zum Abschluß unserer Sammlung spezieller Codes betrachten wir jetzt noch die Quadratische Reste Codes. Sei im Weiteren n eine ungerade Primzahl. Definition 6.10. Die Menge R0 := {b2 | b ∈ F× n } heißt die Menge der quadratischen Reste modulo n, ihr Komplement R1 := F× n \ R0 die Menge der quadratischen Nichtreste. Ist a ∈ Z mit a ∈ Z/nZ = Fn in R0 , so heißt auch a ein quadratischer Rest modulo n. Bemerkung. R0 ist offenbar eine Untergruppe vom Index 2 von F× n, R1 die nichttriviale Nebenklasse nach R0 , R0 kann auch als der Kern der Abbildung α 7−→ α(n−1)/2 charakterisiert werden (Kriterium von Euler). Lemma 6.11. Sei q mit n - q eine Primzahlpotenz, die quadratischer Rest modulo n ist, ζ ∈ Fq eine primitive n-te Einheitswurzel. Dann gilt: Die Polynome Y Y g0 (X) = (X − ζ j ) und g1 (X) = (X − ζ j ) j∈R0
j∈R1
33
sind in Fq [X], und es gilt X n − 1 = (X − 1)(g0 g1 . Beweis. Mit einem geeigneten d (q d ≡ 1 mod n) ist ζ ∈ Fqd . Der Frobeniusautomorphismus ϕ der Erweiterung Fqd /Fq bildet ζ j auf ζ qj ab; da q quadratischer Rest modulo n ist, ist qj genau dann quadratischer Rest modulo n, wenn j quadratischer Rest modulo n ist. ϕ bildet also g0 und g1 jeweils in sich ab; da die Galoisgruppe von Fqd /Fq von ϕ erzeugt wird, haben g0 und g1 Koeffizienten in Fq . Bemerkung. Mit ζ ist auch ζ k f¨ ur jedes k mit n - k eine primitive n-te Einheitswurzel. Ersetzt man also ζ durch ζ k f¨ ur ein k, das quadratischer Nichtrest modulo n ist, so vertauscht man g0 und g1 . Definition 6.12. Mit den Bezeichnungen von oben heißt der zyklische Code der L¨ange n u ¨ber Fq mit Erzeugerpolynom g0 der quadratischeReste-Code u ¨ber Fq der L¨ange n. Bemerkung. a) F¨ ur jedes k mit n - k wird durch j 7−→ jk mod n eine Permutation σk des Vertretersystems {0, . . . , n−1} von Fn = Z/nZ gegeben. Definiert man σk (f ) f¨ ur f ∈ Fq [X]/(X n − 1) mit Pn−1 i f = i=0 ai X durch P σk (f ) = P ai X ki mod (X n − 1) = ai X σk (i) mod (X n − 1), so ist der zyklische Code mit Erzeugerpolynom σk (f ) offenbar ¨aquivalent zum zyklischen Code mit Erzeugerpolynom f . Sind ζ i1 , . . . , ζ ir die Nullstellen von f in Fq und ist k 0 so, dass k 0 · k ≡ 0 −1 0 0 1 mod n gilt (k also gleich k in Fn ), so sind ζ k i1 , . . . , ζ k ir die Nullstellen von σk (f ). Insbesondere sehen wir f¨ ur k, das kein quadratischer Rest modulo n ist, dass der durch g0 und der durch g1 definierte Code ¨aquivalent zueineinander sind. b) H¨aufig wird auch der Code mit Erzeugerpolynom (X − 1)g0 (X) als quadratischer-Reste-Code bezeichnet, er ist der Teilcode, der P x = 0 besteht. F¨ ur q = 2 ist das der Teilaus den x mit n−1 i=0 i code, der genau aus den W¨ortern geraden Gewichts besteht. c) F¨ ur den Spezialfall q = 2 gilt nach dem 2. Erg¨anzungssatz zum quadratischen Reziprozit¨atsgesetz, dass 2 genau dann quadratischer Rest modulo n ist, wenn n ≡ ±1 mod 8 ist. Im allgemeinen Fall gilt, dass die Frage, ob q quadratischer Rest modulo n ist, nur von n modulo 4q abh¨angt. Bei gegebenem q l¨aßt sich also (mit Hilfe des quadratischen Reziprozit¨atsgesetzes f¨ ur das Jacobi-Symbol) leicht berechnen, welche n zur Bildung eines quadratische-Reste-Codes geeignet sind. Proposition 6.13. Sei c ein Codewort vom Gewicht d im quadratischenReste-Code CQ (q, n) der L¨ange n u ¨ber Fq mit (X − 1) - c. Dann gilt d2 ≥ n. Ist n ≡ −1 mod 4, so gilt d2 − d + 1 ≥ n.
34
Beweis. Sei k Nichtrest modulo n. c(X) · σk (c)(X) ist dann durch g0 g1 = X n−1 + · · · + 1 teilbar, aber nicht durch X − 1, denn mit c ist auch σk (c) nicht durch X −1 teilbar. Es bleibt nur die M¨oglichkeit, dass c(X)σk (c)(X) mod (X n − 1) ein skalares Vielfaches von 1 + · · · + X n−1 ist, also Gewicht n hat; andererseits hat dieses Wort aber offensichtlich Gewicht ≤ (w(c))2 . Also ist n ≤ (w(c))2 wie behauptet. Ist n ≡ −1 mod 4, so ist nach dem ersten Erg¨anzungssatz zum quadratischen Reziprozit¨atsgesetz −1 ein Nichtrest modulo n, wir k¨onnen also k = −1 im obigen Argument w¨ahlen. In c(X) · c(X −1 ) f¨ uhrt aber i −i f¨ ur jedes i mit ci 6= 0 das Produkt der Terme ci X und ci X auf einen konstanten Term, diese w(c) Paare liefern also nur einen Term im Produkt, c(X)c(X −1 ) hat also h¨ochstens Gewicht w(c)2 − (w(c) − 1) = w(c)2 − w(c) + 1. F¨ ur die durch (X − 1) teilbaren Codeworte wird ein eigenes Argument zur Absch¨atzung des Gewichts nach unten ben¨otigt. Satz 6.14 (Gleason-Prange). Sei C Q (n, q) = {(c0 , . . . , cn−1 , c∞ ) | c∞ = P − n−1 i=0 ci } der erweiterte quadratische-Reste-Code. Die Matrix σ = ab ∈ SL2 (Fn ) operiere auf Fn ∪{∞} wie folgt: Man identifiziere j ∈ Fn cd mit dem Punkt [1, j] ∈ P1 (Fn ) und ∞ mit [0, 1] ∈ P1 (Fn ) und u ¨bertrage die Operation von σ auf P1 (Fn ), die durch σ[x, y] := [cx + d, ay + b] definiert ist, mittels dieser Identifikation auf Fn ∪ {∞} (mit der obigen Identifikation und den u ur das Rechnen mit ∞ ¨blichen Konventionen f¨ l¨asst sich diese Operation als gebrochen lineare Transformation ax + b x 7→ cx + d schreiben, man hat dann etwa σ(∞) = ac , falls c 6= 0 ist). Dann gilt: C Q (n, q) ist invariant unter den durch die σ ∈ SL2 (Fn ) gegebenen Permutationen der Koordinaten. Beweis. Ein Beweis unter Benutzung der Idempotenten des Codes findet sich im Buch von Mc Williams und Sloane; wir verzichten hier darauf, da der Beweis relativ lang ist. Proposition 6.15. Der Minimalabstand d des quadratischen-ResteCodes erf¨ ullt d2 ≥ n und f¨ ur n ≡ −1 mod 4 sogar d2 − d + 1 ≥ n. Beweis. Sei c ∈ CQ (n, q). Ist c nicht im von (X − 1)g0 (X) erzeugten Teilcode CQ0 (n, q), so ist die Behauptung schon gezeigt. CQ0 (n, q) ist gleich {c = (c0 , . . . , cn−1 ) ∈ CQ (n, q) | (c0 , . . . , cn−1 , 0) ∈ C Q (n, q)}. Ist c ∈ CQ0 (n, q) ein Wort minimalen Gewichsts, so k¨onnen wir (durch 0 1 zyklische Verschiebung) c0 6= 0 annehmen. Betrachten wir σ = −1 ∈ 0
35
SL2 (Fn ), so ist σ(0) = ∞, σ(∞) = 0 und σ(c0 , . . . , cn−1 , 0) = (c00 , . . . , c0n−1 , c0∞ ) ∈ C Q (n, q) mit c00 = 0, c0∞ 6= 0, (c00 , . . . , c0n−1 ) ∈ CQ (n, q), und (c01 , . . . , c0n−1 ) ist eine Permutation von (c1 , . . . , cn−1 ), hat also das gleiche Gewicht. Zu jedem Wort von CQ0 (n, q) gibt es also ein Wort in CQ (n, q) \ CQ0 (n, q) von kleinerem Gewicht, und die Behauptung folgt aus dem Lemma von oben. Beispiel. a) Ist n = 23 ≡ −1 mod 8, q = 2, so liefert obiger Beweis zun¨achst, dass d ungerade ist, aus d2 − d + 1 ≥ 23 folgt dann d ≥ 7. (Die BCH-Schranke w¨ urde hier d ≥ 5 liefern). Die Kugeln vom Radius 3 um die Codeworte sind also disjunkt und enthalten je 1 + ( 23 ) + ( 23 ) + ( 23 ) = 211 Codeworte. Der Code 1 2 3 hat Dimension 12, wir erhalten also 223 Elemente von F23 2 in der ist daher die disjunkte VereiniVereinigung dieser Kugeln. F23 2 gung der Kugeln vom Radius 3 um die Codeworte, der Code ist ein perfekter Code. Er ist auch unter dem Namen bin¨arer GolayCode bekannt. b) Ist q = 3, n = 11, so liefert die Schranke d ≥ 4. Mit zus¨atzlichen Argumenten (etwa durch Betrachten einer geeigneten Erzeugermatrix) kann man zeigen, dass das Minimalgewicht das Negative eines Quadrats modulo 3 sein muss, dass also d = 4 ausgeschlossen ist und d ≥ 5 gilt. Die Kugeln vom Radius 2 um die Codeworte sind daher disjunkt und enthalten je 1 + 2 · ( 11 ) + 4 · ( 11 ) = 243 = 35 Elemente 1 2 alt daher alle 36 ·35 = 311 Elemente von F11 3 , ihre Vereinigung enth¨ 11 von F3 . Auch dieser Code ist also perfekt, er heißt der tern¨are Golay-Code. c) Im Fall q = 2 ist es leicht, die Idempotente von P CQ (n,j 2) bzw. 0 CQ (n, 2) zu berechnen. Betrachte n¨amlich θ = j∈R0 X . Ist ζ eine (primitive) n-te Einheitswurzel, so ist θ(ζ) = θ(ζ)2 , also θ(ζ) ∈ F2 , und f¨ ur einen Nichtrest k ist θ(ζ) + θ(ζ k ) = ζ + · · · + ζ n−1 = 1, also θ(ζ) = 0 oder θ(ζ k ) = 0; indem wir ζ gegebenenfalls durch ζ k ersetzen, erreichen wir 0 j ∈ R0 j θ(ζ ) = 1 j ∈ R1 , ferner ist
0 n ≡ 1 mod 8 1 n ≡ −1 mod 8. F¨ ur n ≡ 1 mod 8 ist daher θ(1) =
θ ≡ 0 mod (X − 1)g0 , θ ≡ 1 mod g1 , f¨ ur n ≡ −1 mod 8 ist θ ≡ 0 mod g0 , θ ≡ 1 mod (X − 1)g1 .
36
θ ist also im ersten Fall die Idempotente f¨ ur C 0 (n, 2), im zweiten f¨ ur C(n, 2). In jedem Fall ist C(n, 2) der von θ und seinen zyklischen Vertauschungen zusammen mit dem Vektor (1, . . . , 1) erzeugte Code. Der erweiterte Code C(n, 2) hat dann die Erzeugermatrix 1 ··· 1 , t c Θ wo Θ die Matrix aus θ und seinen zyklischen Verschiebungen ist und (0, . . . , 0) falls n ≡ 1 mod 8 c= (1, . . . , 1) falls n ≡ −1 mod 8. Aus dieser Darstellung kann man verh¨altnism¨aßig direkt ablesen, 0 1 dass der erweiterte Code unter der Matrix −1 invariant ist. 0 7. Informationstheoretische Grundbegriffe. Wir ben¨otigen Begriffe der elementaren Wahrscheinlichkeitstheorie, die vermutlich allen bekannt sind: • Einen endlichen Wahrscheinlichkeitsraum Ω, also eine endliche Menge Ω P = {a1 , . . . , an } mit Wahrscheinlichkeiten 0 ≤ pi = ur A ⊆ Ω ist p(ai ) ≤ 1, ni=1 pi = 1, f¨ X p(A) = pi . i: ai ∈A r
Das r-fache Produkt Ω Q wird zu einem Wahrscheinlichkeitsraum durch P (ai1 , . . . , air ) = rj=1 P (aij ). • Zufallsvariablen X : Ω −→ R mit P (X = α) := P ({ai ∈ Ω | X(ai ) = α}), P (X ∈ M ) := P ({ai ∈ Ω | X(ai ) ∈ M }) f¨ ur M ⊆ R P ({a ∈ A | X(a) = α)} P (X = α | A) := . P (A) Zufallsvariable X, Y sind unabh¨angig, wenn P (X = α und Y = β) = P (X = α)P (Y = β) gilt. Wir ben¨otigen aus der elementaren Wahrscheinlichkeitstheorie sp¨ater die Ungleichung von Chebyshev. Dazu sei daran erinnert, dass f¨ ur die Zufallsvariable X : Ω −→ {α1 , . . . , αn } ⊆ R der Erwartungswert E(X) definiert ist als E(X) :=
k X i=1
p(X = αi )αi
37
und die Varianz σ 2 (X) durch σ 2 (X) = E(X − E(X))2 (mittlere quadratische Abweichung); σ heißt die Standard-Abweichung. Damit gilt:
Lemma 7.1 (Chebyshevs Ungleichung). P (|X − E(X)| ≥ kσ) < k −2
f¨ ur alle k ∈ R.
Lemma 7.2. Die Zufallsvariable X : Ω −→ {0, . . . , n} gehorche der Binomialverteilung mit Parameter p, es gelte also n i n−i P (X = i) = pq . i Dann gilt: E(X) = n · p, σ 2 (X) = np(1 − p). Beweis. Die Beweise f¨ ur diese Formeln entnehme man einem Lehrbuch ¨ der elementaren Wahrscheinlichkeitstheorie (oder f¨ uhre sie als Ubung selbst durch). Definition 7.3. Sei Ω = {a1 , . . . , an } endlicher Wahrscheinlichkeitsraum. Dann ist die Entropie von Ω definiert als n X H=− pi log2 pi i=1
(wobei wir 0 log2 (0) = 0 setzen). Sei X : Ω −→ R eine Zufallsvariable mit Werten α1 , . . . , αk (k ≤ n). Die Entropie von X ist H(X) := −
k X
P (X = αj ) log2 (P (X = αj )).
j=1
Analog ist die Entropie f¨ ur einen Zufallsvektor X : Ω −→ Rm (= m-Tupel von Zufallsvariablen) definiert. Bemerkung. Die Entropie misst die “Ungewissheit” der Zufallsvariablen. Eine heuristische Betrachtung, wieso die oben angegebene Definition ein vern¨ unftiges Maß f¨ ur die Ungewissheit ist, findet man in Kapitel 1 des Buches Codes und Kryptographie“ von D. Welsh. Insbe” sondere wird dort (und in einem Appendix) gezeigt, dass H als Funktion der qi = P (X = αi ) durch 8 Anforderungen charakterisiert ist, n¨amlich: a) H ist maximal f¨ ur qj = k1 (1 ≤ j ≤ k) (bei gleichen Chancen ist die Ungewissheit am gr¨oßten) b) H ist symmetrisch in den qj c) H ≥ 0 mit H = 0 ⇔ qj = 1 f¨ ur ein j, = 0 f¨ ur die anderen
38
d) e) f) g) h)
H(q1 , . . . , qk ) = H(q1 , . . . , qk , 0) 1 1 , . . . , k+1 ) H( k1 , . . . , k1 ) ≤ H( k+1 H ist stetig H( k11k2 , . . . , k11k2 ) = H( k11 , . . . , k11 ) + H( k12 , . . . , k12 ) H(q1 , . . . , qk , q˜1 , . . . , q˜m ) = H(q, q˜)+qH( qq1 , . . . , qqk )+˜ q H( q˜q˜1 , . . . , q˜q˜k ) P P mit q = qj , q˜ = q˜j . Genauer: H ist eine Familie von Abbildungen X Hk : ∆k−1 = {(q1 , . . . , qk ) : 0 ≤ qi ≤ 1, qi = 1} −→ R mit den angegebenen Eigenschaften, also etwa in 4.: Hk (q1 , . . . , qk ) = Hk+1 (q1 , . . . , qk , 0), etc. Man u ¨berlegt sich leicht: Definition und Lemma 7.4. (1) F¨ ur Zufallsvariable X, Y gilt H(X, Y ) ≤ H(X) + H(Y ) mit Gleichheit genau dann, wenn die Zufallsvariablen unabh¨angig sind. (2) F¨ ur A ⊆ Ω sei die bedingte Entropie definiert durch P H(X|A) = − P j P (X = αj | A) log2 (P (X = αj |A)) und H(X|Y ) = j H(X|Y = βj )P (Y = βj ). Dann gilt H(X, Y ) = H(Y ) + H(X|Y ). Definition 7.5. F¨ ur Zufallsvariable U, V wird die Information I(U |V ) (Information u ¨ber U , die von V geliefert wird) definieret als I(U |V ) = H(U ) − H(U |V ) Wir betrachten jetzt eine Quelle Q, die Symbole aus einem Alphabet W = {w1 , . . . , wm } ausgibt. Die Quelle sei eine ged¨achtnislose Quelle, d.h., unabh¨angig von den bisherigen Ausgaben gebe sie das Symbol wi (jedesmal erneut) mit der Wahrscheinlichkeit pi aus (etwa die Ergebnisse von M¨ unzw¨ urfen oder von W¨ urfen eines W¨ urfels). Wir k¨onnen die Quelle damit als einen endlichen Wahrscheinlichkeitsraum Q auffassen und eine Folge von r Ausgaben der Quelle als ein Element von Qr . Die Quelle hat damit die Entropie m X H(Q) = − pi log2 pi . i=1
Die Ausgabe der Quelle wird durch Codierung in Zeichenketten aus dem Alphabet Σ = Σ1 umgewandelt. Diese Zeichenketten werden dann ¨ in einen Ubertragungskanal eingegeben, der sie u ¨bertr¨agt und als Zeichenketten in einem eventuell ge¨anderten Ausgabealphabet Σ2 wieder ¨ ausgibt. Die beabsichtigte Ubertragung wird beschrieben durch die ¨ in der Regel injektive - Ubertragungsabbildung Φ : Σ1 −→ Σ2 . Die ¨ Ubertragung und ihre St¨oranf¨alligkeit werden wiedergegeben durch die Kanalmatrix P = (pij ) mit m = |Σ1 | Zeilen und n = |Σ2 | Spalten;
39
pij = P (αi , βj ) = P (βj | αi ) gibt die Wahrscheinlichkeit wieder, dass bei der Eingabe von αi ∈ Σ1 die Ausgabe P βj ∈ Σ2 empfangen wird. Damit das sinnvoll wird, muß offenbar nj=1 pij = 1 f¨ ur alle i gelten (die Matrix P ist eine stochastische Matrix). Der so beschriebene Kanal heißt diskreter ged¨achtnisloser Kanal. Meistens ist Σ1 = Σ2 , und besonders h¨aufig betrachtet man bin¨are Kan¨ale, also Σ1 = Σ2 = {0, 1}. Definition 7.6. Der bin¨are symmetrische Kanal mit Fehlerwahrscheinlichkeit 0 ≤ p ≤ 1 ist der Kanal mit Eingabe- und Ausgabealphabet {0, 1} und Kanalmatrix 1−p p . p 1−p Eine Abwandlung hiervon ist der bin¨are L¨oschkanal mit Σ1 = {0, 1}, Σ2 = {0, 1, ∗}, 1− 0 P = , 0 1− in dem die Symbole 0, 1 nicht vertauscht werden k¨onnen, aber mit Wahrscheinlichkeit verlorengehen, die Kombination dieser beiden St¨oranf¨alligkeiten wird dann durch die Kanalmatrix 1−p− p P = p 1−−p wiedergegeben. ¨ Bei der Ubertragung entstehen nat¨ urlich leicht Fehler; haben wir etwa k 2 W¨orter durch die Elemente von Fk2 codiert, so wird die Wahrschein¨ lichkeit (1 − p)k f¨ ur korrekte Ubermittlung eines Wortes selbst bei kleinem p mit wachsendem k minimal. Wie bereits diskutiert versucht man diese Fehlerquellen durch redundante Codierung auszuschalten, dabei werden auf der Quellenseite des Kanals Zeichenketten der L¨ange n > k verwendet. Definition 7.7. Eine Decodierung g : Σ∗2 −→ Σ∗1 heißt maximumlikelihood-Decodierung, wenn f¨ ur alle y ∈ Σ∗2 gilt: P (y empfangen | g(y) gesendet) = maxx∈C (P (y empfangen | x gesendet) (Dabei ist f¨ ur y = (β1 , . . . , βr ) ∈ Σn2 und x = (α1 , . . . , αr ) ∈ Σr1 die bedingte Wahrscheinlichkeit P (y empfangen | x gesendet) gleich
r Y j=1
P (αj , βj ) ).
40
Wir werden uns im Weiteren wie bisher auf Block-Codes fester L¨ange ¨ mit Alphabet Σ = Σ1 = Σ2 und Ubertragungsabbildung Φ = Id beschr¨anken. Wir erinnern an: Eine Decodierungsregel g : Σn −→ Σn heißt minimumdistance Decodierung, wenn f¨ ur alle g ∈ Σn gilt: d(g(y), y) = min d(x, y). x∈C
Korollar 7.8. Bei einem bin¨aren symmetrischen Kanal mit Fehlerwahrscheinlichkeit p ≤ 12 stimmen minimum-distance und maximumlikelihood Decodierung u ¨berein. Beweis. Eigentlich klar. Mit q = 1 − p ist f¨ ur d(x, y) = d P (y empfangen | x gesendet) = pd q n−d ; das nimmt seinen maximalen Wert f¨ ur x an mit minimalen d = d(x, y). Um die Qualit¨at eines Kanals zu untersuchen, betrachten wir die Information, die die Ausgabe des Kanals u ¨ber die Eingabe aus einer Quelle S liefert: Betrachten wir die Ausgabe als eine weitere Quelle J, so ¨ ist nach unseren einleitenden Uberlegungen diese Information gegeben durch I(S|J) = H(S) − H(S|J) = H(S) + H(J) − H(S, J). Wie berechnen wir H(J) bzw. H(S, J)? J gibt die Symbole α1 , . . . , αn des Alphabets Σ mit den Wahrscheinlichkeiten n X qj = pi pij i=1
aus, wo pi die Wahrscheinlichkeit der Ausgabe von αi durch S ist und die pij die Eintr¨age der Kanalmatrix sind. Alle Daten in I(S|J) sind also durch die Wahrscheinlichkeiten der Quelle S und die Kanalmatrix vollst¨andig bestimmt. Definition 7.9. Die Kapazit¨at C(K) des Kanals K mit Ein- und Ausgabealphabet Σ ist gegeben als sup I(S|J), S
wo S u ¨ber die ged¨achnislosen Quellen mit Ausgabealphabet Σ = {α1 , . . . , αn } variiert (anders gesagt: Die S charakterisierende Wahrscheinlichkeitsverteilung p1 , . . . , pn mit Σpi = 1 variiert u ¨ber das (n − 1)-Simplex ∆n−1 ). Bemerkung. Da I(S|J) eine stetige Funktion der pi ist und ∆n−1 kompakt ist, wird C(K) tats¨achlich f¨ ur eine Quellverteilung angenommen.
41
Proposition 7.10. Die Kapazit¨at eines bin¨aren symmetrischen Kanals mit Fehlerwahrscheinlichkeit p und q = 1 − p ist: C(p) = 1 + p log2 p + q log2 q. Beweis. Die Quellverteilung sei (α, β) mit α + β = 1. Dann ist I(S|J) = −α log2 (α) − β log2 (β) − (αq + βp) log2 (αq + βp) −(βq + αp) log2 (βq + αp) + αp log2 (αp) + βp log2 (βp) +αq log2 (αq) + βq log2 (βq) = −α log2 α − β log2 β − (αq + βp) log2 (αq + βp) −(βq + αp) log2 (βq + αp) + αp(log2 p + log2 α) +(1 − α)p(log2 p + log2 (1 − α)) + α(1 − p)(log2 α + log2 (1 − p)) +(1 − α)(1 − p)(log2 (1 − α) + log2 (1 − p)) = p log2 p + q log2 q − (αq + βp) log2 (αq + βp) −(βq + αp) log2 (βq + αp). Das h¨angt jetzt nur noch von der Entropie von J ab; diese ist maximal bei Gleichverteilung, also wenn αq+βp = βq+αp = 21 ist. Der maximale Wert wird also bei gleichverteilter Quelle erreicht und betr¨agt p log2 p + q log2 q −
1 2
log2
1 2
−
1 2
log2
1 2
= 1 + p log2 p + q log2 q wie behauptet.
Bemerkung. Wir sehen insbesondere: C(0) = 1, C( 12 ) = 0, C ist monoton als Funktion von p in 0 ≤ p ≤ 21 d ( dp (p log2 p + (1 − p) log2 (1 − p)) = log2 p + 1 − log2 (1 − p) − 1 p = log2 p − log2 (1 − p) = log2 ( 1−p )>0 1 in (0, 2 )
Definition 7.11. Ein gest¨orter Kanal K sei durch Σ1 , Σ2 und die Kanalmatrix P gegeben, C ⊆ Σ∗1 sei ein Code mit Decodierungsregel g : Σ∗2 −→ C und |C| = M . Dann ist die mittlere Fehlerwahrscheinlich¨ keit e(C, g, K) von C bei Ubertragung durch K definiert als 1 X P (Decodierung 6= c | c gesendet). M c∈C Die maximale Fehlerwahrscheinlichkeit eˆ(C, g, K) ist das Maximum der bedingten Wahrscheinlichkeiten von oben. Bemerkung.
a) Die Wahrscheinlichkeit Pf (c) = P (Decodierung 6= c | c gesendet)
42
ermittelt sich f¨ ur c = (α1 , . . . , αr ) als X (β1 ,...,βr )∈Σr 2 g(β1 ,...,βr )6=(α1 ,...,αr )
r Y
P (aj , βj ).
j=1
b) F¨ ur den bin¨aren symmetrischen Kanal fallen die maximale und die durchschnittliche Fehlerwahrscheinlichkeit zusammen. Satz 7.12 (Rauschcodierungstheorem von Shannon). Sei K ein bein¨arer symmetrischer Kanal mit Fehlerwahrscheinlichkeit p und 0 < R < C(K) = 1 + p log2 p + (1 − p) log2 (1 − p). F¨ ur n ∈ N sei Mn := 2[Rn] . Sei > 0. Dann gibt es Block-Codes Cn der L¨ange n u ¨ber F2 mit |Cn | = Mn , so dass f¨ ur die minimum-distance Decodierung und f¨ ur alle hinreichend großen n gilt: eˆ(Cn , g, K) < . Beweis. Als Zufallsvariable betrachten wir jetzt f¨ ur den Code C ⊆ Fn2 ¨ die Anzahl der Fehler bei Ubermittlung eines (beliebigen) Codeworts c ∈ C: Offenbar haben wir n ¨ P (# Ubertragungsfehler = i) = ( )pi q n−i . i Die Zufallsvariable gehorcht also der Binomialverteilung. Wir w¨ahlen > 0 und setzen q √ b() := b := npq 2 ρ() := ρ := [np + b]. Unsere Decodierungsregel (minimum distance) sei: Ist y empfangen und gibt es genau ein x ∈ C mit d(x, y) < ρ, so decodiere y als x, andernfalls erkl¨are einen Fehler. Nach der Ungleichung von Chebyshev ist dann ¨ P (# Ubertragungsfehler > ρ) < . 2 Sei Bρ (x) = {y ∈ Fn2 | d(x, y) ≤ ρ} f¨ ur x ∈ C die Kugel vom Radius ρ um x und 0 d(x, y) > ρ hρ (x, y) = 1 d(x, y) ≤ ρ die charakteristische Funktion von Bρ (x) (als Funktion von y).
43
Wir sch¨atzen ab: F¨ ur x ∈ C ist die Wahrscheinlichkeit der falschen Decodierung ¨ Pf (x) = P (Anzahl Ubertragungsfehler > ρ) X + P (y | x) y∈Bρ (x) y∈Bρ (x0 )
+ 2
<
f¨ ur ein
x0 6=x,x0 ∈C
X
P (y |x)
y∈∪x0 ∈C\{x} Bρ (x0 )
(dabei ist P (y|x) = pd(x,y) q n−d(x,y) = P (x|y) wie oben). Der maximale Fehler eˆ(C, g, K) ist also f¨ ur einen solchen Code C ⊆ Fn2 abgesch¨atzt durch: X X eˆ(C, g, K) < + h(x0 , y)P (y|x) f¨ ur beliebiges x ∈ C. 2 y∈Fn 0 n 2
x ∈F2 \{0}
Die durchschnittliche (= maximale) Fehlerwahrscheinlichkeit ist daher abgesch¨atzt durch 1 X X + P (y|x)hρ (x0 , y) e(C, g, K) < 2 Mn x,x0 ∈C y∈Fn 2 X X χC (x)χC (x0 )Mn−1 P (y|x)hρ (x0 |y), = + 2 x6=x0 ∈Fn y∈Fn 2
2
wo χC die charakteristische Funktion von C ist. Wir bilden jetzt den Mittelwert e(Mn , K) u ¨ber alle Codes C der L¨ange n mit |C| = Mn und benutzen folgendes Lemma 7.13. F¨ ur x 6= x0 ∈ Fn2 ist der Anteil derjenigen Codes mit Mn Elementen, die x und x0 enthalten, an der Anzahl aller derartigen n −1) Codes gleich M2nn (M . (2n −1) n
n
2 −2 2 Beweis. Es gibt ( M ) Codes der L¨ange n mit Mn Elementen und ( M ) n −2 n 0 solche Codes, die gegebene x, x enthalten.
Wir haben also e(Mn , K) <
X Mn (Mn − 1) X 1 + P (y|x)hρ (x0 , y) 2 x,x0 ∈Fn 2n (2n − 1) y∈Fn Mn 2
2
=
Mn − 1 + n n 2 2 (2 − 1) y∈Fn ,
X 2
=
x∈Fn 2
Mn − 1 X + n n hρ (x0 , y) 2 2 (2 − 1) y,x0 ∈Fn 2
=
P (y|x)
Mn − 1 + n |Bρ (0)| 2 2 −1
X x0 ∈Fn 2
hρ (x0 y)
44
(beachte, dass P (y|x) = P (x|y) gilt, man also f¨ ur jedes y die Gleichheit P M −1 M x∈Fn P (y|x) = 1 hat. Es folgt (mit 2n −1 ≤ 2n ) 2
log2 (e(Mn , K) − ) ≤ log2 Mn − n + log2 |Bρ |. 2 Lemma 7.14. Es gilt |Bρ | ≤
( nρ )ρ (1
1 . − ρ1 )n−ρ
Beweis. ρ ρ X n ρ −ρ ρ ρ−n X n ρ ρ ρ |Bρ | = ( ) ≤ ( ) (1 − ) · ( )( ) (1 − )n−ρ j n n j n n j=0 j=0 n
X n ρ ρ ρ ρ ρ ρ ( )( )j (1 − )n−j · ( )ρ−j (1 − )j−ρ . = ( )−ρ (1 − )ρ−n j n n n n n n j=0 Es gilt aber: ρ ρ ρ n ( )(1 − )−1 = < 1 (wegen ρ < ), n n n−ρ 2 also
ρ
X n ρ ρ ρ ρ |Bρ | ≤ ( )−ρ (1 − )ρ−n ( )( )j (1 − )n−j n n j n n j=0 ρ ρ ρ ρ ≤ ( )−ρ (1 − )ρ−n (1 − + )n n n n n 1 = ρ ρ . ( n ) (1 − nρ )n−ρ Mit Hilfe dieses Lemmas sehen wir schließlich: log2 (e(Mn , k) − 2 ) log2 Mn ρ ρ ρ ρ ≤ − 1 − log2 − (1 − ) log2 (1 − ) n n n n n n −1/2 ≤ R − 1 − p log2 p − q log2 q + O(n ), = R − K + O(n−1/2 ), denn wir hatten ja ρ = [np + b] mit b von der Gr¨oßenordnung Also ist
√
n.
log2 (e(Mn , K) − 2 ) < (R − K)n + O(n1/2 ) < −βn f¨ ur ein geeignetes β > 0 und hinreichend großes n. Insgesamt erhalten wir e(Mn , K) − 2 < 2−βn f¨ ur hinreichend großes n, und das ist < 2 f¨ ur hinreichend großes n, also e(Mn , k) < f¨ ur hinreichend großes n.
45
Bemerkung. Wir haben sogar gesehen: Die Behauptung gilt im Mittel f¨ ur alle Codes (oder “f¨ ur den durchschnittlichen Code”). Das zeigt aber nat¨ urlich noch nicht, ob und wie man “gutartige” solche Codes finden kann (also solche, die leicht zu codieren und zu decodieren sind). 8. Schranken f¨ ur Codes Wir wollen Schranken daf¨ ur untersuchen, wie groß der Minimalabstand d(C) eines (linearen) Codes C bei gegebener L¨ange n und Dimension k maximal werden kann und wie groß umgekehrt die Dimension k bei gegebenen n und d(C) werden kann. Eine Schranke kennen wir bereits: Es gilt stets d ≤ n − k + 1; Codes, f¨ ur die Gleichheit gilt, heißen MDS-Codes (maximum distance separable) und existieren nur f¨ ur verh¨altnism¨aßig kleine n (im Vergleich zur Elementanzahl q des zugrundeliegenden Grundk¨orpers Fq ). Diese Schranke heißt die Singleton-Schranke. Wir behandeln zun¨achst eine Reihe relativ offensichtlicher Schranken.
Lemma 8.1 (Kugelpackungsschranke, sphere packing bound). F¨ ur jeden [n, k, d]-Code C u ¨ber Fq (d.h., C ⊆ Fnq , |C| = q k , d = Minimalabstand) ist b d−1 c 2
n − k ≥ logq
X n ( )(q − 1)j . j j=0
Beweis. F¨ ur c ∈ C sei Bt (c) = {x ∈ Fnq | d(x, c) ≤ t} die Kugel vom Radius t = b d−1 c um c. Diese Kugeln sind paarweise disjunkt P2t n ur vom und haben jeweils j=0 ( j )(q − 1)j Elemente (w¨ahle j Stellen f¨ Eintrag in c abweichende Eintr¨age aus, in jeder dieser Stellen hat man q − 1 m¨ogliche Eintr¨age). Also: qn ≥ qk ·
t X n ( )(q − 1)j ; j j=0
logarithmieren zur Basis q ergibt die Behauptung.
Bemerkung. Der Code C heißt perfekt (mit Minimalabstand d = 2t + 1), wenn Fnq disjunkte Vereinigung der Kugeln um die c ∈ C vom Radius t ist, wenn also in obiger Ungleichung Gleichheit gilt. Leider gibt es nicht viele perfekte Codes. Man kann zeigen, dass ein nichttrivialer perfekter Code (d.h. k 6= 0, k 6= n, k 6= 1) entweder ein Hamming-Code ist oder einer der Golay-Codes, das sind Codes u ¨ber F2 mit Parametern [23, 12, 7] bzw. u ¨ber F3 mit Parametern [11, 6, 5]. (Siehe Buch von Mc Williams/Sloane.)
46
Lemma 8.2 (Griesmer-Schranke). F¨ ur jeden linearen Code C ⊆ Fnq mit dim C = k, d(C) = d gilt k−1 X d n≥ d je q j=0
(d qdj e die kleinste Zahl ≥
d ). qj
Beweis. Wir hatten in §1 [n, k, d]-Codes u ¨ber Fq mit projektiven [n, k, d]q Systemen identifiziert. Zur Erinnerung: Das sind Systeme P von n Punkten in Pk−1 (Fq ), so dass keine (projektive) Hyperebene alle Punkte enth¨alt und n − d die maximale Punktanzahl von Punkten aus P in einer Hyperebene ist. Sei H0 eine projektive Hyperebene in Pk−1 (Fq ) mit der maximalen Punktanzahl n − d und W ⊆ Fkq ein Untervektorraum (der Dimension k − 1) mit P(W ) = H0 , sei P 0 = P ∩ H0 . Das System P 0 ist ein projektives [n − d, k − 1, d0 ]q -System. Um d0 abzusch¨atzen, betrachten wir eine beliebige Hyperebene H in P(W ) (diese hat dann Dimension k − 3) mit |H ∩ P 0 | = n − d − d0 . Nach dem Dualit¨atsprinzip der projektiven Geometrie (Proposition 1.8), ist die Anzahl der Hyperebenen Hi in Pk−1 (Fq ), die den Teilraum H der Kodimension 2 von Pk−1 (Fq ) enthalten, gleich der Anzahl der Punkte von Pk−1 (Fq ), die auf einer beliebigen fixierten projektiven Geraden in Pk−1 (Fq ) liegen, also gleich q + 1. Die Vereinigung dieser Hyperebenen Hi ist der ganze Pk−1 (Fq ), und (wie f¨ ur jede Hyperebene in Pk−1 (Fq )) ist |Hi ∩ P| ≤ n − d f¨ ur alle i. Wir haben also (q + 1)(n − d) ≥
q+1 X
|Hi ∩ P|
i=1 q+1
= |P| + q · |(
\
Hi ) ∩ P|
i=1
= |P| + q · |H ∩ P| = n + q(n − d − d0 ), T wobei wir noch ausnutzen, dass q+1 i=1 Hi = H gilt. Also ist d0 ≥ dq und damit auch d0 ≥ d dq e. Man iteriert diese Konstruktion k mal und erh¨alt ein [n(k) , 0, d(k) ]q -System mit 0≤n
(k)
k−1 X d = n − d − d − ··· ≤ n − d i e. q i=0
Es folgt die Behauptung.
0
47
Proposition 8.3 (Plotkin-Schranke). Sei C ein [n, k, d]-Code u ¨ber Fq . Dann ist n · q k (q − 1) d≤ . (q k − 1)q Beweis. Der Mittelwert des Abstands zweier verschiedener Elemente von C ist X 1 d(x, y). q k (q k − 1) x,y∈C F¨ ur a ∈ Fq sei Xa,i = |{x ∈ C | xi = a}|. Dann gilt (δa,b ist das Kronecker-Symbol) n X X X d(x, y) = (1 − δxi ,yi ) i=1 x,y∈C
x,y∈C
=
n X X
(1 − δa,b )Xa,i Xb,i .
i=1 a,b∈Fq
P
Die Summe a,b∈Fq (1 − δa,b )Xa,i Xb,i fassen wir als eine quadratische Form in den q Variablen Xa,i mit Matrix 0 1 ··· 1 .. ... . 1 . .. 1 1 ··· 1 0 auf, setzen also Q(z1 , . . . , zq ) =
X
zi zj .
i6=j
Die P Variablen kXa,i unterliegen dabei der Einschr¨ankung Xa,i ≥ 0, a∈Fq Xa,i = q . Wir m¨ ussen also jetzt den maximalen Wert von Q(z1 , . . . , zqP ) unter den P k Nebenbedingungen zj ≥ 0, z = q bestimmen. Nun ist i6=j zi zj = P Pq Pq j 2 Pq Pq 2 2 2 2 1 ) ≥ ( ( i=1 zi ) − i=1 zi und ( i=1 zi ) · ( qi=1 i=1 zi ) nach der P 2k Cauchy-Schwarzschen Ungleichung, also − q 2k−1 = i6=j zi zj ≤ q q 2k−1 (q − 1). Insgesamt erhalten wir X 1 d(C) = k k d(x, y) q (q − 1) x,y∈C ≤ = wie behauptet.
1 q k (q k
− 1)
· n · q 2k−1 (q − 1)
n · q k−1 (q − 1) , (q k − 1)
48
Proposition 8.4 (linear programming bound). Mit Y j−1 X (X − i) ∈ Fq [X] = j i=0
sei P` (X) =
` X
(−1)j (q − 1)`−j (
j=0
X n−X )( ) j `−j
das `-te Krawtchouk-Polynom, und seien c1 , . . . , cn ∈ R so, dass 1+
n X
ci Pi (j) ≤ 0 f¨ ur d ≤ j ≤ n
i=1
gilt. Dann gilt f¨ ur jeden linearen [n, k, d]-Code u ¨ber Fq : k
q ≤1+
n X i=1
n ci ( )(q − 1)i . i
Beweis. Nach der Mc Williams-Identit¨at f¨ ur das Gewichtepolynom WC (X, Y ) gilt: WC ⊥ (X, Y ) = q −k WC (Y − X, Y + (q − 1)X) (Satz 3.6, Seite 41). Schreiben wir P WC (X, Y ) = P Ai X i Y n−i WC ⊥ (X, Y ) = Bi X i Y n−i , so erhalten wir WC ⊥ (X, Y ) = q
−k
n X
Aj (Y − X)j (Y + (q − 1)X)n−j
j=0
= q
−k
= q
−k
j n−j X X j j−r n−j r r Aj ( ( )Y (−1) X )( ( )Y s (q − 1)n−j−s X n−j−s ) r n−j−s r=0 s=0 j=0
n X
n X n i X X j n−j ( Aj ( )(−1)` (q − 1)i−` ( ))X i Y n−i . ` i−` i=0 j=0 `=0
(Der Summationsindex ` gibt die Potenz von X an, die aus dem ersten Klammerausdruck kommt, aus dem zweiten kommt dann der Term f¨ ur s mit n − j − s = i − `.) P P Also WC ⊥ (X, Y ) = q −k ni=0 nj=0 Aj Pi (j)Y n−i , und Koeffizientenvergleich zeigt: (∗)
Bi = q
−k
n X j=0
Aj Pi (j).
49
Insbesondere folgt (da die Bi sicher ≥ 0 sind) n X
Aj Pi (j) ≥ 0
f¨ ur 0 ≤ i ≤ n.
j=0 k k Da alle Pn q − 1 Codew¨orter 6= 0 von C Gewicht ≥ d haben, ist q = 1 + j=d Aj . P Es ist also sicher q k ≤ M , wo M der maximale Wert von 1 + nj=d Aj ist; dabei sind die Variablen Aj den Einschr¨ankungen
(i) Aj ≥ 0 (d ≤ j ≤ n) n
X n (ii) ( )(q − 1)i + Aj Pi (j) ≥ 0 (0 ≤ i ≤ n) i j=d unterworfen (beachte, dass Aj = 0 f¨ ur 1 ≤ j ≤ d − 1, A0 = 1, Pi (0) = n i ( i )(q − 1) gilt). Die Bestimmung dieses maximalen Werts ist ein Problem der linearen Optimierung. Nach dem PDualit¨atsprinzip der lineaen Optimierung gilt: Das Maximum von 1+ nj=d Aj unter i) und ii) ist gleich dem Minimum P von 1 + ni=1 ci ( ni )(q − 1)i unter den Einschr¨ankungen (i0 ) ci ≥ 0 0
(ii ) 1 +
n X
ci Pi (j) ≤ 0 f¨ ur d ≤ j ≤ n.
i=1
(das duale Problem; allgemeiner gilt: Hat man die Optimierungsaufgabe, ax zu maximieren unter der Einschr¨ankung x ≥ 0, T x ≥ −b (komponentenweise), so bezeichnet man das Problem: Minimiere t yb unter der Einschr¨ankung y ≥ 0, t T y ≤ −a als das duale Problem. Dann erf¨ ullt jedes Paar von Vektoren x, y, f¨ ur das x den Einschr¨ankungen des Ausgangsproblems, y denen des dualen Problems gen¨ ugt, die Unt gleichung yb ≥ tax. Der Beweis ist trivial: Wir haben T x ≥ −b, t T y ≤ −a, also t y · b ≥ −t yT x ≥ t ax). Will man hieraus praktisch brauchbare Schranken ableiten, so kommt es nat¨ urlich noch darauf an, die ci aus dieser Proposition geschickt zu w¨ahlen. Bevor wir dazu u ¨bergehen, aus den bisherigen Schranken asymptotische Absch¨atzungen herzuleiten, soll noch eine Schranke f¨ ur k bzw. d hergeleitet werden, die die Existenz von [n, k, d]-Codes garantiert. Proposition 8.5 (Gilbert-Varshamov-Schranke). Ist q
n−k
d−2 X n−1 > ( )(q − 1)j , j j=0
50
so gibt es einen linearen [n, k, d]-Code u ¨ber Fq . Beweis. Wir konstruieren eine (n − k) × n Kontrollmatrix, in der je d − 1 Spalten linear unabh¨angig sind. beliebig. Sei y1 6= 0 in Fn−k q Falls f¨ ur i ≥ 1 bereits i Vektoren in Fqn−k gefunden sind, so dass je (d − 1) von ihnen linear unabh¨angig sind, so finden wir f¨ ur i < n einen weiteren Vektor wie folgt: Sei Si die Menge der Vektoren, die sich aus d − 2 der Vektoren y1 , . . . , yi kombinieren lassen, |Si | ≤
d−2 X i ( )(q − 1)j =: Mi . j j=0
Unsere Voraussetzung impliziert Mi < q n−k , wir k¨onnen also einen weiteren Vektor yi+1 6∈ Si hinzunehmen; y1 , . . . , yi+1 haben dann nach wie vor die Eigenschaft, dass je (d − 1) von ihnen linear unabh¨angig sind. Definition 8.6. Sei (Cj )j∈J eine unendliche Familie von Codes mit den Parametern [nj , kj , dj ] u ¨ber Fq . (Cj ) heißt asymptotisch gut, wenn es Teilfolgen (Cji )i∈N gibt, f¨ ur die nji mit i −→ ∞ gegen ∞ strebt, und wenn mit Konstanten 0 < R0 , 0 < δ0 gilt: F¨ ur jede Teilfolge wie oben ist lim inf(Rji ) ≥ R0 , i→∞
lim inf(δji ) ≥ δ0 ;
i→∞
dabei bezeichnet Rj = R(Cj ) = δj
= δ(Cj ) =
kj nj dj nj
die Rate von Cj und den relativen Mindestabstand.
Bemerkung. a) Hat man eine Familie mit R0 , δ0 wie oben und L¨ange nj −→ ∞, so kann man aus dem Beweis des Satzes von ¨ Shannon ableiten, dass bei Ubertragung durch einen bin¨aren symmetrischen Kanal mit Fehlerwahrscheinlichkeit p < δ0 die Wahrscheinlichkeit der korrekten Decodierung bei Benutzung der Codes dieser Familie im Limes nj −→ ∞ gegen 1 strebt (w¨ahrend die Rate oberhalb der Schranke R0 bleibt). b) Man kann nachrechnen, dass keine der bisher konstruierten Familien von Codes (Hamming, Reed-Muller, BCH) asymptotisch gut im Sinne der Definition ist. Satz 8.7. Sei Uq die Menge aller Punkte (δ, R) ∈ R2 , f¨ ur die es eine Folge (Cj )j∈N von Codes u ¨ber Fq der L¨angen nj = n(Cj ) gibt, so dass gilt: lim nj = ∞, lim (δ(Cj ), R(Cj )) = (δ, R). j→∞
j→∞
51
Dann gibt es eine stetige Funktion αq : [0, 1] −→ [0, 1] mit Uq = {(δ, R) ∈ [0, 1]2 | R ≤ αq (δ)}. Es gilt αq (0) = 1, αq (δ) = 0 f¨ ur q−1 fallend in [0, q ].
q−1 q
≤ δ ≤ 1. Ferner ist αq monoton
Beweis. F¨ ur δ ∈ [0, 1] setze αq (δ) := sup{R ∈ [0, 1] | (δ, R) ∈ Uq }. Wir m¨ ussen zeigen, dass diese Funktion in der Tat stetig ist und die u ¨brigen Behauptungen erf¨ ullt. Wir betrachten daf¨ ur zun¨achst einen beliebigen Punkt (δ0 , R0 ) ∈ Uq und eine unendliche Familie (Cj )j∈N eine unendliche Familie (mit nj −→ ∞) von Codes u ur die Rj −→ R0 , δj −→ δ0 gilt. Da f¨ ur ¨ber Fq , f¨ jeden der Codes die Singleton-Schranke dj ≤ nj − kj + 1 und deshalb δj ≤ 1 − Rj + 1/nj gilt, ist δ0 ≤ 1 − R0 . Ferner k¨onnen wir nach 4.1 b) (`) Cj ab¨andern zu Cj mit Parametern [nj − `, kj − `, dj ] (` ∈ N beliebig mit ` ≤ kj ). (`) (`) Die Punkte (δj , Rj ), die man so erh¨alt, liegen auf der Geraden mit n −k der Gleichung R = 1 − δ jdj j durch (δj , Rj ) und (0, 1). (`)
Durch Betrachten geeigneter Teilfamilien der (Cj ) sieht man, dass alle Punkte (mit δ ≥ δ0 ) auf der Geraden L1 : R = 1 − δ( δ10 − Rδ00 ) (mit Steigung R0δ0−1 ≤ −1)zu Uq geh¨oren. (`) Analog finden wir nach 4.1 c) Codes C˜j mit Parametern [nj −`, k, dj − `], und wir finden, dass alle Punkte (δ, R) mit δ ≤ δ0 auf der Geraden 1−δ 0 L2 : R = R0 · 1−δ ≥ −1) durch (δ0 , R0 ) und (mit Steigung 0 > δ0R−1 0 (1, 0) zu Uq geh¨oren. ¨ Diese Uberlegungen sind auch g¨ ultig, wenn wir uns hier durchweg auf lineare Codes beschr¨anken.
Seien jetzt A(δ0 , R0 ), B(δ0 , R0 ) das abgeschlossene obere Dreieck (im Bereich δ ≤ δ0 )) bzw. das abgeschlossene untere Dreieck (im Bereich δ ≥ δ0 ) zwischen den Geraden L1 , L2 , ferner sei C der offene Bereich unter beiden Geraden, D der offene Bereich u ¨ber beiden Geraden. Ist jetzt (δ0 , R0 ) ein Grenzpunkt, also R0 = αq (δ0 ) = sup{R ∈ [0, 1] | (δ0 , R) ∈ Uq } und (δ1 , R1 ) ein Punkt in C(δ0 , R0 ), so gibt es Punkte oberhalb von (δ1 , R1 ) (mit den gleichen R1 ), also ist ein solcher kein Grenzpunkt. Genauso kann ein Punkt in D kein Grenzpunkt sein, (sonst w¨are (δ0 , R0 ) in C(δ1 , R1 ), also kein Grenzpunkt). Also liegen alle Grenzpunkte (δ, R) (mit R = αq (δ)) in A ∪ B, erf¨ ullen also die Ungleichungen R − R0 1 − R0 R0 ≤ ≤ , 1 − δ0 δ − δ0 δ0 und das impliziert offenbar die Stetigkeit von αq .
52
L2
L1
A A AA
Z Z Z Z Z
Dass αq (δ) = 0 f¨ ur δ ≥ k
A D Z A Z Z A Z A ZA (δ0 , R0 ) ZA Z A Z C A BZ A ZZ A Z Z A Z A Z A Z Z A Z A Z A A A AA
q−1 gilt, folgt mit Hilfe der Plotkin-Schranke q q k ·(q−1) : Ist (δ, R) ein Punkt von Uq und (Ci ) (q k −1)q
(q−1) , also δ ≤ d ≤ n·q (q k −1)q mit Parametern [ni , ki , di ] eine Familie, die diesen Punkt als Limes im (δ, R)-Raum hat, so ist offenbar ki −→ ∞, also q−1 δ≤ . q
F¨ ur δ > q−1 ist also αq (δ) = 0, also wegen der bereits gezeigten Stetigq keit von αq auch in δ = q−1 . q Dass αq (δ) > 0 f¨ ur 0 ≤ δ < q−1 gilt, werden wir sp¨ater (bei der Beq handlung der asymptotischen Gilbert-Varshamov-Schranke) sehen. Man beachte noch, dass Lemma 4.1 d) es erlaubt, die Rate bei festem δ beliebig zu dr¨ ucken ([n, k, d] −→ [n, k − 1, d]), so dass also alle Punkte zwischen der x-Achse und einem Punkt (δ, R) ∈ Uq ebenfalls zu Uq geh¨oren. Proposition 8.8. Es gilt: a) (asymptotische Plotkin-Schranke) q αq (δ) ≤ 1 − q−1 δ f¨ ur δ ≤ q−1 . q
53
b) Mit Hq (x) = x logq (q − 1) − x logq x − (1 − x) logq (1 − x) gilt die Hamming-Schranke: αq (δ) ≤ 1 − Hq (δ/2) =: RH (δ). ) = 0. F¨ ur den Punkt Beweis. a) Wir haben bereits gesehen: αq ( q−1 q q−1 ( q , 0) ist die Gerade L2 die x-Achse und die Gerade L1 die q δ. Da dieser Punkt ein Gerade mit der Gleichung R = 1 − q−1 Randpunkt ist und das Dreieck B in diesem Fall verschwindet, liegen alle weiteren Randpunkte in A und damit insbesondere unterhalb von L1 . b) Die Kugelpackungs-Schranke hatte ergeben: b d−1 c 2
n − k ≥ logq
X n ( )(q − 1)j c, j j=0
also d−1
[ 2 ] X n 1 R ≤ 1 − logq ( )(q − 1)j . n j j=0
c bezeichnen wir die Summe auf der rechten Seite Mit t = b d−1 2 (n) als Vq (n, t) = |Bt (0)|. Wir haben mit d = δn (¨ahnlich wie im Beweis des Satzes von Shannon) f¨ ur λ = δ/2 n n )(q − 1)[λn] , )(q − 1)[λn] ≤ Vq (n, [λn]) ≤ (1 + [λn]) · ( ( [λn] [λn] also (logarithmieren und dividieren durch n) limn→∞
1 n
n logq ( [λn] ) + λ · logq (q − 1) ≤ limn→∞ n1 log Vq (n, [λn]).
Es gilt aber n 1 ) = Hq (λ). logq ( n→∞ n [λn]
λ logq (q − 1) + lim
¨ (Beweis als Ubung, man benutze die Formeln von Stirling.) Wir sehen also: δ R ≤ 1 − Hq ( ), 2 wie behauptet. Proposition 8.9 (Asymptotische Gilbert-Varshamov-Schranke). Es gilt q−1 αqlin (δ) ≥ 1 − Hq (δ) falls 0 ≤ δ ≤ q
54
Beweis. Wir wissen: Ist q n−k <
d−2 X n−1 ( )(q − 1)i , i i=0
so gibt es einen linearen [n, k, d]-Code u ¨ber Fq . Nach dem bisher Gezeigten wissen wir: bδnc−2 X n−1 1 lim log ( )(q − 1)i n→∞ n i i=0
= Hq (δ) und daher 1 − R ≤ Hq (δ). Ist also R > 1 − Hq (δ), so finden wir eine Folge Ci von Codes, f¨ ur die δi −→ δ, Ri −→ R strebt. Bemerkung.
a) Wir haben noch die quasitriviale Schranke αq (δ) ≤ 1 − δ
(Singleton).
b) Es l¨aßt sich zeigen, dass der durchschnittliche Code auf der GilbertVarshamov-Schranke liegt. c) Die lineare Programmierschranke erfordert einige zus¨atzliche Arbeit f¨ ur die Ableitung einer Absch¨atzung f¨ ur αq (δ). Es gilt (Mc ElieceRodemich-Ramsey-Welch): ! p (q − 1) − δ(q − 2) − 2 (q − 1)δ(1 − δ) αq (δ) ≤ Hq . q Hierf¨ ur bedarf es aber einer detaillierten Diskussion der KrawtchoukPolynome. 9. Decodierungsalgorithmen Um aktuelle Decodierungsalgorithmen f¨ ur algebraisch geometrische Codes im einfachsten Fall zu studieren, betrachten wir erneut den ReedSolomon-Code. Erinnerung: α1 , . . . , αn ∈ Fq seien gegeben , k ≤ n, C := RS(k−1, q, n) := {(f (α1 ), . . . , f (αn )) ∈ Fnq | f ∈ Fq [X], deg(f ) ≤ k} ist ein [n, k, d = n − k + 1]-Code u c ¨ber Fq , er korrigiert also t = b n−k 2 Fehler. Satz 9.1. Mit obigen Bezeichnungen gilt: Ist r = c + e ∈ Fnq mit c ∈ C und w(e) ≤ t, so gibt es ein Polynom 0 6= Q ∈ Fq [X, Y ] mit Q(X, Y ) = Q0 (X) + Y · Q1 (X), f¨ ur das gilt: Q(αi , ri ) = 0 (1 ≤ i ≤ n), deg(Q0 ) ≤ n − 1 − t deg(Q1 ) ≤ n − 1 − t − k + 1.
55
F¨ ur jedes solche Q gilt: −Q0 ∈ Fq [X], deg(g) ≤ k, g := Q1
c = (g(α1 ), . . . , g(αn )).
Beweis. Die Bedingungen an die Grade von Q0 und Q1 haben zur Folge, dass Q durch insgesamt 2n − 2t − 2 − k + 1 − 2 = 2n − 2t − k + 1 ≥ n + 1 (wegen 2t ≤ n − k) Koeffizienten gegeben ist. Die n linearen Gleichungen Q(αi , ri ) = 0 f¨ ur diese Koeffizienten haben daher eine nichttriviale L¨osung, das zeigt die Existenz des Polynoms. Geh¨ort c ∈ C jetzt zu g ∈ Fq [X] mit deg(g) < k, so ist Q(αi , g(αi ) + ei ) = 0 f¨ ur 1 ≤ i ≤ n. ur wenigstens n−t Werte j1 , . . . , jn−t , Wir haben w(e) ≤ t, also ejν = 0 f¨ f¨ ur j ∈ {j1 , . . . , jn−t } ist dann Q(αj , g(αj )) = 0. ˜ Das Polynom Q(X) := Q(X, g(X)) = Q0 (X) + g(X)Q1 (X) ∈ Fq [X] ˜ ≤ n−t−1 hat also wenigstens n − t Nullstellen und Grad deg(Q) ˜ (wegen deg(g) ≤ k − 1), also ist Q ≡ 0, d.h. Q0 (X) = −g(X)Q1 (X), was zu zeigen war. Bemerkung. a) Wir haben dann Q(X, Y ) = Q1 (X)(Y − g(X)). Da Q(αi , ri ) = 0 ist und ri − g(αi ) 6= 0 ⇔ ri 6= g(αi ) ⇔ ei 6= 0 gilt, ist Q1 (αi ) = 0 f¨ ur alle i mit ei 6= 0, also wie fr¨ uher ein “error locator”. b) Indem man zu empfangenem r das oben erw¨ahnte lineare Gleichungssystem l¨ost, daraus (Kandidaten f¨ ur) Q0 und Q1 berechQ0 net und g = − Q1 setzt (sofern diese rationale Funktion bereits im Polynomring Fq [X] ist), erh¨alt man als Decodierung c = (g(α1 ), . . . , g(αn )) und diese Decodierung ist korrekt, falls h¨ochstens t Fehler gemacht wurden. Enth¨alt das u ¨bertragene Wort mehr Fehler, so ist g 6∈ Fq [X] oder g ∈ Fq [X] und die Decodierung irrig. Wir kommen zu folgender Variante dieses Verfahrens: Satz 9.2. Sei w(e) ≤ τ , Q(X, Y ) = Q0 (X)+Q1 (X)Y +· · ·+Q` (X)Y ` ∈ Fq [X, Y ] mit • Q(αi , ri ) = 0 (1 ≤ i ≤ n) • deg Qj ≤ n − τ − 1 − j(k − 1) (0 ≤ j ≤ `) • Q 6= 0
56
und c = (f (α1 ), . . . , f (αn ) ∈ C Dann gilt (Y − f (X)) | Q.
(deg f < k).
˜ Beweis. Betrachte wieder Q(X) = Q(X, f (X)). Die Bedingungen im˜ plizieren deg Q ≤ n − τ − 1. F¨ ur die (mindestens n − τ ) Indizes j mit f (αj ) = rj ist Q(αj , f (αj )) = ˜ j ) = 0, also Q ˜ ≡ 0. Q(α Also hat Q ∈ (Fq [X])[Y ] die Nullstelle f ∈ Fq [X] und es folgt (Y − f ) teilt Q. Lemma 9.3. a) Ein Polynom Q wie im Satz existiert, falls τ ≤ ` n − `(k − 1) und τ < n `+1 − 2` (k − 1) gilt. b) Das maximale τ wie oben erf¨ ullt τ > 2c , falls k 1 1 < + . n `+1 n (Man hat dann ` ` − (k − 1) `+1 2 (beachte: d = n − k + 1).) τ
Beweis. Die erste Bedingung liefert n lineare Gleichungen in 1 (n−τ )+(n−τ −(k−1))+· · ·+(n−τ −`(k−1)) = (`+1)(n−τ )− `(`+1)(k−1) 2 1 Unbekannten. Es folgt (` + 1)(n − τ ) − 2 `(` + 1)(k − 1) > n, also ` τ < n `+1 − 2` (k − 1). Damit alle Grade ≥ 0 sind, muss ferner τ ≤ n − `(k − 1) gelten. Man hat dann den Algorithmus (Sudan): a) L¨ose das lineare Gleichungssystem, geschrieben als j `j 1 α · · · α Qj,0 r 1 ` 1 1 X .. .. .. .. .. . . . . . `j j j=0 Q rn j,lj 1 αr · · · αn mit `j = n − τ − r − j(k − `). b) Setze P`i Qj (x) = Qj,r xr , Pr=0 ` j Q(x, y) = j=0 Qj (X)Y . c) Faktorisiere Q und finde die Faktoren y − f (X) mit deg f < k. Output: Eine Liste der f mit d((f (α1 ), . . . , f (αn )), (r1 , . . . , rn )) ≤ τ.
57
Dieses Verfahren nennt man list decoding (was man als Listen-Decodierung c Fehu ¨bersetzen k¨onnte). Wenn das u ¨bermittelte Wort mehr als b d−1 2 ler enth¨alt, so gibt das Verfahren noch nicht v¨ollig auf, sondern liefert eine Liste m¨oglicher Codeworte, so dass man noch eine eventuelle Redundanz des zu u ufen, ¨bermittelnden Textes ausnutzen kann, um zu pr¨ welches der Worte aus der Liste in den Zusammenhang passt.