Expander-Code - Expander code

Expander-Codes
Beispiel für ein Gerberdiagramm.PNG
zweiteiliger Expander-Graph
Einstufung
Art Linearer Blockcode
Blocklänge
Nachrichtenlänge
Bewertung
Entfernung
Alphabet Größe
Notation -Code

In der Codierungstheorie bilden Expander-Codes eine Klasse von Fehlerkorrekturcodes , die aus zweigeteilten Expander-Graphen aufgebaut sind . Neben Justesen-Codes sind Expander-Codes von besonderem Interesse, da sie eine konstante positive Rate , einen konstanten positiven relativen Abstand und eine konstante Alphabetgröße aufweisen . Tatsächlich enthält das Alphabet nur zwei Elemente, sodass Expander-Codes zur Klasse der Binärcodes gehören . Darüber hinaus können Expander-Codes zeitlich proportional zur Blocklänge des Codes sowohl codiert als auch decodiert werden.

Expander-Codes

In der Codierungstheorie ist ein Expander-Code ein linearer Blockcode, dessen Paritätsprüfmatrix die Adjazenzmatrix eines zweigeteilten Expander-Graphen ist . Diese Codes haben einen guten relativen Abstand , wobei und sind Eigenschaften des Expander-Graphen (wie später definiert), Rate und Decodierbarkeit (Algorithmen der Laufzeit existieren).

Definition

Betrachten wir einen zweiteiligen Graphen , wo und sind die Knotenmengen und ist der Satz von Kanten verbindenden Vertices in an Eckpunkten . Angenommen, jeder Scheitelpunkt in hat einen Grad (der Graph ist -left- regulär ) , und , . Dann ist ein Expander Graph wenn jede klein genug , um Teilmenge , hat die Eigenschaft , dass zumindest hat in verschiedene Nachbarn . Beachten Sie, dass dies trivial für gilt . Wann und für eine Konstante sagen wir, dass dies ein verlustfreier Expander ist.

Da es sich um einen zweigeteilten Graphen handelt, können wir seine Adjazenzmatrix betrachten. Dann ist der lineare Code , der durch Betrachten der Transponierten dieser Matrix als Paritätsprüfungsmatrix erzeugt wird, ein Expander-Code.

Es wurde gezeigt, dass nichttriviale verlustfreie Expander-Graphen existieren. Darüber hinaus können wir sie explizit konstruieren.

Bewertung

Die Rate von ist seine Dimension geteilt durch seine Blocklänge. In diesem Fall hat die Paritätsprüfmatrix eine Größe und daher mindestens eine Dimension .

Entfernung

Angenommen, wir nehmen an . Dann beträgt der Abstand eines Expander-Codes mindestens .

Beweis

Beachten Sie, dass wir jedes Codewort in als eine Teilmenge von Scheitelpunkten betrachten können , indem wir diesen Scheitelpunkt genau dann sagen, wenn der th-Index des Codeworts eine 1 ist. Dann ist ein Codewort, wenn jeder Scheitelpunkt neben einer geraden Anzahl von Scheitelpunkten in liegt . (Um ein Codewort zu sein, wo ist die Paritätsprüfungsmatrix? Dann entspricht jeder Scheitelpunkt in jeder Spalte von . Die Matrixmultiplikation über ergibt dann das gewünschte Ergebnis.) Wenn also ein Scheitelpunkt neben einem einzelnen Scheitelpunkt in liegt , Wir wissen sofort, dass dies kein Codewort ist. Lassen Sie bezeichnen die Nachbarn in der , und jene Nachbarn bezeichnen die sind einzigartig, dh neben einem einzelnen Scheitelpunkt .

Lemma 1

Für jede Größe , .

Beweis

Trivial , da impliziert . folgt, da der Grad jedes Scheitelpunkts in ist . Aufgrund der Erweiterungseigenschaft des Diagramms muss eine Reihe von Kanten vorhanden sein, die zu unterschiedlichen Scheitelpunkten führen. Die restlichen Kanten machen also höchstens Nachbarn nicht eindeutig, also .

Logische Folge

Jeder ausreichend kleine hat einen einzigartigen Nachbarn. Dies folgt seitdem .

Lemma 2

Jede Teilmenge mit hat einen eindeutigen Nachbarn.

Beweis

Lemma 1 beweist den Fall , nehmen wir also an . Lass so das . Durch Lemma 1 wissen wir das . Dann ist ein Scheitelpunkt in iff , und das wissen wir. Durch den ersten Teil von Lemma 1 wissen wir es . Da , und ist daher nicht leer.

Logische Folge

Es ist zu beachten, dass, wenn a mindestens 1 eindeutigen Nachbarn hat, dh das entsprechende Wort, das entspricht, kein Codewort sein kann, da es sich nicht mit dem Vektor für alle Nullen mit der Paritätsprüfungsmatrix multipliziert. Durch das vorherige Argument , . Da linear ist, schließen wir, dass mindestens Abstand hat .

Codierung

Die Codierungszeit für einen Expander-Code ist durch die eines allgemeinen linearen Codes begrenzt - durch Matrixmultiplikation. Ein Ergebnis von Spielman zeigt, dass eine Codierung rechtzeitig möglich ist.

Dekodierung

Die Dekodierung von Expander-Codes ist bei Verwendung des folgenden Algorithmus zeitlich möglich .

Sei der Scheitelpunkt , der dem th-Index in den Codewörtern von entspricht . Sei ein empfangenes Wort und . Lassen Sie sein , und sein . Dann betrachten Sie den gierigen Algorithmus:


Eingabe: empfangenes Wort .

initialize y' to y
while there is a v in R adjacent to an odd number of vertices in V(y')
    if there is an i such that o(i) > e(i)
        flip entry i in y'
    else
        fail

Ausgabe: Fehler oder geändertes Codewort .


Beweis

Wir zeigen zuerst die Richtigkeit des Algorithmus und untersuchen dann seine Laufzeit.

Richtigkeit

Wir müssen zeigen, dass der Algorithmus mit dem richtigen Codewort endet, wenn das empfangene Codewort innerhalb der halben Entfernung des Codes vom ursprünglichen Codewort liegt. Die Menge der beschädigten Variablen sei , und die Menge der nicht erfüllten (neben einer ungeraden Anzahl von Eckpunkten) Eckpunkte sei . Das folgende Lemma wird sich als nützlich erweisen.

Lemma 3

Wenn ja , dann gibt es ein mit .

Beweis

Durch Lemma 1 wissen wir das . Ein durchschnittlicher Scheitelpunkt hat also mindestens eindeutige Nachbarn (erinnern Sie sich, dass eindeutige Nachbarn unzufrieden sind und daher dazu beitragen ), da und somit ein Scheitelpunkt mit .

Wenn wir also noch kein Codewort erreicht haben, gibt es immer einen Scheitelpunkt zum Umdrehen. Als nächstes zeigen wir, dass die Anzahl der Fehler niemals darüber hinaus zunehmen kann .

Lemma 4

Wenn wir mit beginnen , erreichen wir zu keinem Zeitpunkt im Algorithmus.

Beweis

Wenn wir einen Vertex - Flip , und untereinander ausgetauscht werden, und da wir hatten , bedeutet dies , die Anzahl von unzufriedenen Vertices auf der rechten Seite verringert sich durch mindestens eine nach jedem flip. Da die anfängliche Anzahl nicht erfüllter Eckpunkte höchstens durch die Regelmäßigkeit des Graphen bestimmt wird . Wenn wir eine Zeichenfolge mit Fehlern erreichen würden, gäbe es nach Lemma 1 mindestens eindeutige Nachbarn, was bedeutet, dass es zumindest unbefriedigte Eckpunkte geben würde, ein Widerspruch.

Die Lemmas 3 und 4 zeigen uns, dass wir, wenn wir mit (der halben Entfernung von ) beginnen, immer einen Scheitelpunkt finden, den wir umdrehen können. Jeder Flip reduziert die Anzahl der nicht erfüllten Scheitelpunkte um mindestens 1, und daher endet der Algorithmus in den meisten Schritten und endet bei einem Codewort nach Lemma 3. (Wäre es nicht bei einem Codewort, gäbe es einen Scheitelpunkt zum Umdrehen ). Lemma 4 zeigt uns, dass wir niemals weiter als vom richtigen Codewort entfernt sein können. Da der Code eine Entfernung (seit ) hat, muss das Codewort, mit dem er endet, das richtige Codewort sein, da die Anzahl der Bit-Flips weniger als die Hälfte der Entfernung beträgt (wir hätten also nicht weit genug reisen können, um ein anderes Codewort zu erreichen).

Komplexität

Wir zeigen nun, dass der Algorithmus eine lineare Zeitdecodierung erreichen kann. Sei konstant und sei der maximale Grad eines Scheitelpunkts in . Beachten Sie, dass dies auch für bekannte Konstruktionen konstant ist.

  1. Vorverarbeitung: Es braucht Zeit, um zu berechnen, ob jeder Scheitelpunkt eine ungerade oder gerade Anzahl von Nachbarn hat.
  2. Vorverarbeitung 2: Wir nehmen uns Zeit, um eine Liste der Eckpunkte zu berechnen, in denen .
  3. Jede Iteration: Wir entfernen einfach das erste Listenelement. Um die Liste der ungeraden / geraden Eckpunkte in zu aktualisieren , müssen nur Einträge aktualisiert und nach Bedarf eingefügt / entfernt werden. Wir aktualisieren dann Einträge in der Liste der Eckpunkte mit ungeraderen als geraden Nachbarn und fügen sie nach Bedarf ein / aus. Somit braucht jede Iteration Zeit.
  4. Wie oben dargelegt, beträgt die Gesamtzahl der Iterationen höchstens .

Dies gibt eine Gesamtlaufzeit an , wobei und Konstanten sind.

Siehe auch

Anmerkungen

Dieser Artikel basiert auf den Kursnotizen von Dr. Venkatesan Guruswami.

Verweise

  1. ^ Capalbo, M.; Reingold, O.; Vadhan, S.; Wigderson, A. (2002). "Zufallsleiter und verlustfreie Expander konstanten Grades" . STOC '02 Vorträge des vierunddreißigsten jährlichen ACM-Symposiums zur Theorie des Rechnens . ACM. S. 659–668. doi : 10.1145 / 509907.510003 . ISBN 978-1-58113-495-7.
  2. ^ Spielman, D. (1996). "Linear zeitcodierbare und decodierbare Fehlerkorrekturcodes". IEEE-Transaktionen zur Informationstheorie . 42 (6): 1723–31. CiteSeerX  10.1.1.47.2736 . doi : 10.1109 / 18.556668 .
  3. ^ Guruswami, V. (15. November 2006). "Vorlesung 13: Expander Codes" (PDF) . CSE 533: Fehlerkorrektur . Universität von Washington.
    Guruswami, V. (März 2010). "Anmerkungen 8: Expander-Codes und ihre Dekodierung" (PDF) . Einführung in die Codierungstheorie . Carnegie Mellon Universität.
    Guruswami, V. (September 2004). "Gastspalte: Fehlerkorrekturcodes und Erweiterungsdiagramme" . ACM SIGACT Nachrichten . 35 (3): 25–41. doi : 10.1145 / 1027914.1027924 .