Expanderkod
Expanderkoder | |
---|---|
Klassificering | |
Typ | Linjär blockkod |
Blocklängd | |
Meddelandets längd | |
Betygsätta | |
Distans | |
Alfabetets storlek | |
Notation | -kod |
I kodningsteorin bildar expanderkoder en klass av felkorrigerande koder som är konstruerade från tvådelade expandergrafer . Tillsammans med Justesen-koder är expanderkoder av särskilt intresse eftersom de har en konstant positiv hastighet , ett konstant positivt relativt avstånd och en konstant alfabetisk storlek . Faktum är att alfabetet bara innehåller två element, så expanderkoder tillhör klassen binära koder . Vidare kan expanderkoder både kodas och avkodas i tid proportionell mot kodens blocklängd.
Expanderkoder
I kodningsteorin är en expanderkod en linjär blockkod för vars paritetskontrollmatris är närliggande matris för en tvådelad expandergraf . Dessa koder har bra relativa avstånd där och är egenskaper för expandergrafen som definieras senare), hastighet och avkodbarhet (algoritmer för körtid existerar).
Definition
Låt vara en - biregelbunden graf mellan en uppsättning av noder , kallade variabler och en uppsättning -noder , kallad constraints .
Låt vara en funktion utformad så att, för varje begränsning variablerna som gränsar till är .
Låt vara en felkorrigerande kod med blocklängden . Expanderkoden är koden för blocklängden vars kodord är orden så att för , är en kodord för .
Det har visat sig att det finns icke-triviala förlustfria expandergrafer. Dessutom kan vi uttryckligen konstruera dem.
Betygsätta
Hastigheten för är dess dimension dividerat med dess blocklängd. I det här fallet har paritetskontrollmatrisen storleken , och därför har hastigheten minst .
Distans
Antag att . Då är avståndet för a expanderkod minst .
Bevis
Observera att vi kan betrakta varje kodord i som en delmängd av hörn , genom att säga att vertex om och endast om det e indexet för kodordet är en 1. Då är ett kodord om varje vertex ligger intill ett jämnt antal hörn i . (För att vara ett kodord, , där är paritetskontrollmatrisen. Sedan motsvarar varje vertex i till varje kolumn i . Matrismultiplikation över sedan ger det önskade resultatet.) Så, om en vertex ligger intill en enda vertex i , vet vi omedelbart att är inte ett kodord. Låt beteckna grannarna i av och betecknar de grannar till som är unika, dvs intill en enda vertex av .
Lemma 1
För varje av storlek , .
Bevis
Trivialt, , eftersom antyder . följer eftersom graden av varje vertex i är . Genom expansionsegenskapen för grafen måste det finnas en uppsättning kanter som går till distinkta hörn. De återstående kanter gör som mest grannar inte unika, så .
Naturlig följd
Varje tillräckligt litet har en unik granne. Detta följer eftersom .
Lemma 2
Varje delmängd med har en unik granne.
Bevis
Lemma 1 bevisar fallet , så anta att . Låt så att . Av Lemma 1 vet vi att . Då är en vertex i iff , och vi vet att , så vid första delen av Lemma 1 vet vi . Eftersom , , och därför är inte tom.
Naturlig följd
Observera att om en har minst 1 unik granne, dvs , då kan motsvarande ord som motsvarar inte vara ett kodord, eftersom det inte multipliceras till vektor med alla nollor av paritetskontrollmatrisen. Med föregående argument, . Eftersom är linjär drar vi slutsatsen att har ett avstånd på minst .
Kodning
Kodningstiden för en expanderkod är övre gränsad av den för en allmän linjär kod - genom matrismultiplikation. Ett resultat på grund av Spielman visar att kodning är möjlig i tid.
Avkodning
Avkodning av expanderkoder är möjlig i tid när med hjälp av följande algoritm .
Låt vara spetsen på som motsvarar det :e indexet i kodorden för . Låt vara ett mottaget ord, och . Låt vara och vara . Tänk sedan på den giriga algoritmen:
Inmatning: mottaget ord .
initiera y' till y medan det finns av i R intill ett udda antal hörn i V(y') om det finns ett i så att o(i) > e(i) vänd posten i i y' annars misslyckas
Utdata: misslyckas, eller modifierat kodord .
Bevis
Vi visar först algoritmens korrekthet och undersöker sedan dess körtid.
Rätthet
Vi måste visa att algoritmen avslutas med rätt kodord när det mottagna kodordet ligger inom halva kodens avstånd från det ursprungliga kodordet. Låt uppsättningen av korrupta variabler vara , , och uppsättningen av otillfredsställda (intill ett udda antal hörn) hörn i vara . Följande lemma kommer att visa sig användbart.
Lemma 3
Om så finns det en med .
Bevis
Genom Lemma 1 vet vi att . Så en genomsnittlig vertex har minst unika grannar (återkalla unika grannar är inte nöjda och bidrar därmed till ), eftersom och det finns alltså en vertex med .
Så, om vi ännu inte har nått ett kodord, kommer det alltid att finnas någon vertex att vända. Därefter visar vi att antalet fel aldrig kan öka utöver .
Lemma 4
Om vi börjar med så når vi aldrig när som helst i algoritmen.
Bevis
När vi vänder en vertex , och växlas, och eftersom vi hade , betyder det att antalet otillfredsställda hörn till höger minskar med minst en efter varje vändning. Eftersom är det initiala antalet otillfredsställda hörn som mest , av grafens -regelbundenhet. Om vi nådde en sträng med fel, då vid Lemma 1, skulle det finnas minst unika grannar, vilket betyder att det skulle finnas åtminstone otillfredsställda hörn, en motsägelse.
Lemma 3 och 4 visar oss att om vi börjar med (halva avståndet av ), så hittar vi alltid en vertex att vända. Varje vändning minskar antalet otillfredsställda hörn i med minst 1, och följaktligen slutar algoritmen i högst steg, och den slutar vid något kodord, av Lemma 3 (Om det inte var ett kodord, skulle det finnas någon vertex att vända). Lemma 4 visar oss att vi aldrig kan vara längre än från det korrekta kodordet. Eftersom koden har avstånd eftersom ), måste kodordet det avslutas på vara rätt kodord, eftersom antalet bitflip är mindre än halva avståndet (så vi kunde inte ha rest tillräckligt långt för att nå någon annan kodord).
Komplexitet
Vi visar nu att algoritmen kan uppnå linjär tidsavkodning. Låt vara konstant och vara den maximala graden av någon vertex i . Observera att också är konstant för kända konstruktioner.
- Förbearbetning: Det tar tid att beräkna om varje vertex i har ett udda eller jämnt antal grannar.
- Förbearbetning 2: Vi tar tid för att beräkna en lista med hörn i som har .
- Varje iteration: Vi tar helt enkelt bort det första listelementet. För att uppdatera listan med udda/jämna hörn i behöver vi bara uppdatera poster, infoga/ta bort vid behov. Vi uppdaterar sedan poster i listan över hörn i med mer udda än jämna grannar, infogar/tar bort vid behov. Således tar varje iteration tid.
- Som argumenterats ovan är det totala antalet iterationer högst .
Detta ger en total körtid på tid, där och är konstanter.
Se även
- Expanderdiagram
- Kod för paritetskontroll med låg densitet
- Linjär tidskodning och avkodning av felkorrigerande koder
- ABNNR- och AEL-koder
Anteckningar
Den här artikeln är baserad på Dr Venkatesan Guruswamis kursanteckningar.
- ^ Sipser, M.; Spielman, DA (1996). "Expanderkoder". IEEE-transaktioner på informationsteori . 42 (6): 1710–1722. doi : 10.1109/18.556667 .
- ^ Capalbo, M.; Reingold, O.; Vadhan, S.; Wigderson, A. (2002). "Slumpmässighetsledare och konstantgradiga förlustfria expanderare" . STOC '02 Proceedings of the trettiofjärde årliga ACM symposiet om Theory of computing . ACM. s. 659–668. doi : 10.1145/509907.510003 . ISBN 978-1-58113-495-7 . S2CID 1918841 .
- ^ Spielman, D. (1996). "Linjärtidskodade och avkodningsbara felkorrigerande koder". IEEE-transaktioner på informationsteori . 42 (6): 1723–31. CiteSeerX 10.1.1.47.2736 . doi : 10.1109/18.556668 .
-
^
Guruswami, V. (15 november 2006). "Föreläsning 13: Expanderkoder" (PDF) . CSE 533: Felkorrigerande . University of Washington. Guruswami, V. (mars 2010). "Anmärkningar 8: Expanderkoder och deras avkodning" (PDF) . Introduktion till kodningsteori . Carnegie Mellon University. Guruswami, V. (september 2004). "Gästkolumn: felkorrigerande koder och expanderdiagram" . ACM SIGACT Nyheter . 35 (3): 25–41. doi : 10.1145/1027914.1027924 . S2CID 17550280 .