Expander code - Expander code
| Expander codes | |
|---|---|
|
bipartiete expander-grafiek
| |
| Classificatie | |
| Type | Lineaire blokcode |
| Blok lengte | |
| Bericht lengte | |
| Beoordeel | |
| Afstand | |
| Alfabet grootte | |
| Notatie | -code |
In coderingstheorie , expander codes vormen een klasse van foutcorrigerende codes die zijn opgebouwd uit bipartiete expander grafieken . Samen met Justesen-codes zijn uitbreidingscodes van bijzonder belang omdat ze een constante positieve snelheid , een constante positieve relatieve afstand en een constante alfabetgrootte hebben . In feite bevat het alfabet slechts twee elementen, dus expandercodes behoren tot de klasse van binaire codes . Verder kunnen uitbreidingscodes zowel gecodeerd als gedecodeerd worden in de tijd evenredig met de bloklengte van de code.
Expander codes
In de coderingstheorie is een expandercode een lineaire blokcode waarvan de pariteitscontrolematrix de aangrenzende matrix is van een bipartiete expander-grafiek . Deze codes hebben een goede relatieve afstand , waar en zijn eigenschappen van de uitbreidingsgrafiek zoals later gedefinieerd), snelheid en decodeerbaarheid (algoritmen van looptijd bestaan).
Definitie
Beschouw een bipartiete grafiek , waar en zijn de vertex sets en is de set randen die hoekpunten verbinden met hoekpunten van . Stel dat elk hoekpunt in heeft graad (de grafiek is -left- regelmatig ), en , . Dan is een expander grafiek als elk klein genoeg deelverzameling , heeft de eigenschap dat ten minste heeft verschillende buren in . Merk op dat dit triviaal geldt voor . Wanneer en voor een constante , zeggen we dat dit een verliesloze expander is.
Omdat het een bipartiete grafiek is, kunnen we de aangrenzende matrix beschouwen. De lineaire code die wordt gegenereerd door de transpositie van deze matrix te bekijken als een matrix voor pariteitscontrole, is een uitbreidingscode.
Het is aangetoond dat er niet-triviale verliesloze expander-grafieken bestaan. Bovendien kunnen we ze expliciet construeren.
Beoordeel
De snelheid van is de afmeting gedeeld door de bloklengte. In dit geval heeft de pariteitscontrolematrix een afmeting , en dus tenminste een afmeting .
Afstand
Stel dat . Dan is de afstand van een uitbreidingscode minimaal .
Bewijs
Merk op dat we elk codewoord in kunnen beschouwen als een subset van hoekpunten , door dat hoekpunt te zeggen als en slechts als de e index van het codewoord een 1 is . Dan is een codewoord als elk hoekpunt grenst aan een even aantal hoekpunten in . (Om een codewoord te zijn , waar is de pariteitscontrolematrix. Dan komt elk hoekpunt binnen overeen met elke kolom van . Matrixvermenigvuldiging over geeft dan het gewenste resultaat.) Dus als een hoekpunt grenst aan een enkel hoekpunt in , we weten meteen dat dit geen codewoord is. Laten we de buren in van aanduiden , en die buren aanduiden waarvan uniek is, dwz grenzend aan een enkel hoekpunt van .
Lemma 1
Voor elke grootte , .
Bewijs
Eigenlijk, want impliceert . volgt aangezien de graad van elk hoekpunt in is . Door de expansie-eigenschap van de graaf moet er een set randen zijn die naar verschillende hoekpunten gaan. De overige randen maken bij de meeste buren niet uniek dus .
Gevolg
Ieder voldoende klein heeft een unieke buur. Dit volgt sinds .
Lemma 2
Elke subgroep met een unieke buurman.
Bewijs
Lemma 1 bewijst het geval , dus veronderstel . Laat zo dat . Bij Lemma 1 weten we dat . Dan is er een hoekpunt in iff , en dat weten we , dus door het eerste deel van Lemma 1 weten we dat . Omdat , en dus niet leeg is.
Gevolg
Merk op dat als a ten minste 1 unieke buur heeft, dat wil zeggen dat het corresponderende woord dat overeenkomt met geen codewoord kan zijn, aangezien het zich niet vermenigvuldigt met de vector met alle nullen door de pariteitscontrolematrix. Door de vorige argument . Omdat het lineair is, concluderen we dat er tenminste afstand is .
Codering
De coderingstijd voor een uitbreidingscode wordt bovengrens door die van een algemene lineaire code - door matrixvermenigvuldiging. Een resultaat van Spielman laat zien dat codering in de tijd mogelijk is .
Decodering
Decodering van uitbreidingscodes is tijdig mogelijk bij gebruik van het volgende algoritme.
Laat het hoekpunt daarvan zijn dat overeenkomt met de th index in de codewoorden van . Laat een ontvangen woord zijn, en . Laat zijn en zijn . Overweeg dan het hebzuchtige algoritme:
Invoer: ontvangen woord .
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
Uitvoer: mislukt of gewijzigd codewoord .
Bewijs
We laten eerst de juistheid van het algoritme zien en onderzoeken vervolgens de looptijd.
Juistheid
We moeten aantonen dat het algoritme eindigt met het juiste codewoord wanneer het ontvangen codewoord zich binnen de halve codeafstand van het oorspronkelijke codewoord bevindt. Laat de set van corrupte variabelen , en het stel ontevreden (aangrenzend aan een oneven aantal hoekpunten) hoekpunten in be . Het volgende lemma zal nuttig zijn.
Lemma 3
Als , dan is er een met .
Bewijs
Bij Lemma 1 weten we dat . Dus een gemiddeld hoekpunt heeft op zijn minst unieke buren (herinner me unieke buren zijn ontevreden en dragen dus bij ), aangezien , en dus is er een hoekpunt met .
Dus als we nog geen codewoord hebben bereikt, zal er altijd een hoekpunt zijn om om te draaien. Vervolgens laten we zien dat het aantal fouten nooit verder kan stijgen .
Lemma 4
Als we met beginnen , bereiken we nooit een punt in het algoritme.
Bewijs
Wanneer we een hoekpunt omdraaien , en worden verwisseld, en sinds we dat hadden gedaan , betekent dit dat het aantal ontevreden hoekpunten aan de rechterkant na elke omslag met ten minste één afneemt. Aangezien het aanvankelijke aantal ontevreden hoekpunten hoogstens gelijk is aan de regelmaat van de grafiek . Als we een string met fouten zouden bereiken, dan zouden er bij Lemma 1 op zijn minst unieke buren zijn, wat betekent dat er op zijn minst ontevreden hoekpunten zouden zijn , een tegenspraak.
Lemma's 3 en 4 laten ons zien dat als we beginnen met (de helft van de afstand van ), we altijd een hoekpunt zullen vinden om om te draaien. Elke omkering vermindert het aantal ontevreden hoekpunten met ten minste 1, en daarom eindigt het algoritme in de meeste stappen en eindigt het bij een codewoord, bij Lemma 3. (Als het niet bij een codewoord was, zou er een hoekpunt zijn om om te draaien ). Lemma 4 laat ons zien dat we nooit verder kunnen zijn dan van het juiste codewoord. Omdat de code afstand heeft (sinds ), moet het codewoord waarop het eindigt het juiste codewoord zijn, aangezien het aantal bitflips minder is dan de helft van de afstand (dus we hadden niet ver genoeg kunnen reizen om een ander codewoord te bereiken).
Complexiteit
We laten nu zien dat het algoritme lineaire tijddecodering kan bereiken. Laat constant zijn, en de maximale graad van een hoekpunt in . Merk op dat dit ook constant is voor bekende constructies.
- Voorverwerking: het kost tijd om te berekenen of elk hoekpunt een oneven of even aantal buren heeft.
- Pre-processing 2: We nemen de tijd om een lijst van de hoekpunten te berekenen in welke hebben .
- Elke herhaling: we verwijderen eenvoudig het eerste lijstelement. Om de lijst met oneven / even hoekpunten bij te werken , hoeven we alleen de ingangen bij te werken, en indien nodig invoegen / verwijderen. Vervolgens werken we vermeldingen in de lijst met hoekpunten bij met meer oneven dan even buren, waarbij we waar nodig invoegen / verwijderen. Elke iteratie kost dus tijd.
- Zoals hierboven betoogd, is het totale aantal iteraties maximaal .
Dit geeft een totale looptijd van waar en zijn constanten.
Zie ook
- Expander grafiek
- Pariteitscontrolecode met lage dichtheid
- Lineaire tijdcodering en decodering van foutcorrectiecodes
- ABNNR- en AEL-codes
Opmerkingen
Dit artikel is gebaseerd op de cursusnotities van Dr. Venkatesan Guruswami.
Referenties
- ^ Capalbo, M .; Reingold, O .; Vadhan, S .; Wigderson, A. (2002). "Willekeurige geleiders en verliesvrije expanders met constante graad" . STOC '02 Proceedings van het vierendertigste ACM-symposium over Theory of Computing . ACM. blz. 659-668. doi : 10.1145 / 509907.510003 . ISBN 978-1-58113-495-7 .
- ^ Spielman, D. (1996). "Lineair-tijd codeerbare en decodeerbare foutcorrectiecodes". IEEE-transacties op informatietheorie . 42 (6): 1723-1731. CiteSeerX 10.1.1.47.2736 . doi : 10.1109 / 18.556668 .
-
^ Guruswami, V. (15 november 2006). "Lezing 13: Expander Codes" (pdf) . CSE 533: Foutcorrectie . Universiteit van Washington.
Guruswami, V. (maart 2010). "Notes 8: Expander Codes en hun decodering" (PDF) . Inleiding tot coderingstheorie . Carnegie Mellon Universiteit.
Guruswami, V. (september 2004). "Gastkolom: foutcorrigerende codes en uitbreidingsgrafieken" . ACM SIGACT Nieuws . 35 (3): 25-41. doi : 10.1145 / 1027914.1027924 .