Utvidelseskode - Expander code

Utvidelseskoder
Tanner graf eksempel.PNG
todelt utvidelsesgraf
Klassifisering
Type Lineær blokkode
Blokklengde
Meldingslengde
Vurdere
Avstand
Alfabetets størrelse
Notasjon -kode

I kodeteori , ekspansjons koder danner en klasse feilrettingskoder som er bygget opp av todelte ekspander grafer . Sammen med Justesen-koder er utviderkoder av spesiell interesse siden de har en konstant positiv hastighet , en konstant positiv relativ avstand og en konstant alfabetstørrelse . Faktisk inneholder alfabetet bare to elementer, så utviderkoder tilhører klassen av binære koder . Videre kan utviderkoder både kodes og dekodes i tid proporsjonalt med blokkens lengde.

Utvidelseskoder

I kodingsteorien er en utviderkode en lineær blokkodekode hvis paritetskontrollmatrise er tilstøtningsmatrisen til en tosidig utvidelsesgraf . Disse kodene har god relativ avstand , hvor og er egenskaper for utvidelsesgrafen som definert senere), hastighet og dekodbarhet (algoritmer for kjøretid eksisterer).

Definisjon

Tenk på en todelt graf , hvor og er toppunkt sett og er settet med kanter som forbinder hjørner inn til hjørner av . Anta at hver node i har grad (grafen er -left- vanlig ), og , . Da er en ekspander graf hvis hver liten nok undergruppe , har den egenskapen at har minst distinkte naboer i . Merk at dette holder trivielt for . Når og for en konstant , sier vi at det er en tapsfri utvidelse.

Siden er en todelt graf, kan vi vurdere dens nærhetsmatrise. Deretter er den lineære koden generert ved å se transponere av denne matrisen som en paritetskontrollmatrise en utvidelseskode.

Det har vist seg at det ikke eksisterer tapsløse utvidelsesdiagrammer. Videre kan vi eksplisitt konstruere dem.

Vurdere

Hastigheten på er dens dimensjon delt på blokklengden. I dette tilfellet har paritetskontrollmatrisen størrelse , og har derfor minst dimensjon .

Avstand

Anta . Da er avstanden til en utviderkode i det minste .

Bevis

Merk at vi kan vurdere hver kodeord i som en undergruppe av hjørnene , ved å si at toppunktet hvis og bare hvis th indeks av kodeord er en 1. Deretter er et kodeord iff hver toppunktet ligger i tilknytning til et likt antall noder i . (For å være et kodeord, hvor er paritetskontrollmatrisen. Deretter tilsvarer hvert toppunkt hver kolonne . Matrisemultiplikasjon over gir det ønskede resultatet.) Hvis et toppunkt ligger ved siden av et enkelt toppunkt i , vi vet umiddelbart at det ikke er et kodeord. La betegne naboene i fra , og betegner de naboer av dem er unike, det vil si, ved siden av en enkelt toppunktet .

Lemma 1

For hver av størrelse , .

Bevis

For det første, antyder siden . følger siden graden av hvert toppunkt i er . Ved utvidelsesegenskapen til grafen må det være et sett med kanter som går til forskjellige hjørner. De resterende kantene gjør at de fleste naboer ikke er unike, så .

Resultat

Hver tilstrekkelig liten har en unik nabo. Dette følger siden .

Lemma 2

Hver delmengde med har en unik nabo.

Bevis

Lemma 1 viser saken , antar det . La slik det . Ved Lemma 1 vet vi det . Deretter et toppunkt er i IFF , og vi vet at , så ved første del av Lemma 1, vet vi . Siden , og dermed ikke er tom.

Resultat

Merk at hvis a har minst 1 unik nabo, dvs. at det tilsvarende ordet som tilsvarer ikke kan være et kodeord, da det ikke vil multiplisere med vektoren for alle nuller med paritetskontrollmatrisen. Ved forrige argument, . Siden er lineær, konkluderer vi med minst avstand .

Koding

Kodingstiden for en utvidelseskode er øvre avgrenset av en generell lineær kode - ved matriksmultiplikasjon. Et resultat på grunn av Spielman viser at koding er mulig i tide.

Dekoding

Avkoding av utviderkoder er mulig i tide når du bruker følgende algoritme.

La være toppunktet for det som tilsvarer den indeksen i kodeordene til . La være et mottatt ord, og . La være , og være . Tenk deretter på den grådige algoritmen:


Inngang: mottatt ord .

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

Utgang: mislykkes eller endres kodeord .


Bevis

Vi viser først korrektheten til algoritmen, og undersøker deretter kjøretiden.

Korrekthet

Vi må vise at algoritmen slutter med riktig kodeord når det mottatte kodeordet er innenfor halve kodens avstand fra det opprinnelige kodeordet. La settet av skadede variabler være , og settet av utilfredsstilt (ved siden av et ulike antall hjørner) topp-punkt i be . Følgende lemma vil vise seg å være nyttig.

Lemma 3

Hvis , så er det en med .

Bevis

Av Lemma 1 vet vi det . Så en gjennomsnittlig toppunkt har i det minste unike naboer (husk at unike naboer er misfornøyde og dermed bidrar til ), siden , og dermed er det et toppunkt med .

Så hvis vi ennå ikke har nådd et kodeord, vil det alltid være noe toppunkt å snu. Deretter viser vi at antall feil aldri kan øke utover .

Lemma 4

Hvis vi begynner med , når vi aldri noe punkt i algoritmen.

Bevis

Når vi snur et toppunkt , og byttes ut, og siden vi hadde det , betyr dette at antallet utilfredse hjørner til høyre reduseres med minst en etter hver snu. Siden er det opprinnelige antall utilfredse hjørner på det meste av grafens regelmessighet. Hvis vi nådde en streng med feil, ville det ved Lemma 1 være minst unike naboer, noe som betyr at det i det minste ville være utilfredse hjørner, en motsetning.

Lemmas 3 og 4 viser oss at hvis vi begynner med (halvparten av avstanden til ), så vil vi alltid finne et toppunkt å snu. Hver flipp reduserer antall utilfredse hjørner med minst 1, og dermed slutter algoritmen i de fleste trinn, og den slutter ved et kodeord, av Lemma 3. (Hvis det ikke var ved et kodeord, ville det være noe toppunkt å snu ). Lemma 4 viser oss at vi aldri kan være lenger enn unna riktig kodeord. Siden koden har avstand (siden ), må kodeordet den ender på være riktig kodeord, siden antallet bitvipp er mindre enn halvparten av avstanden (så vi kunne ikke ha reist langt nok til å nå noe annet kodeord).

Kompleksitet

Vi viser nå at algoritmen kan oppnå lineær tidsavkoding. La være konstant, og være den maksimale graden av et toppunkt i . Merk at det også er konstant for kjente konstruksjoner.

  1. Forbehandling: Det tar tid å beregne om hvert toppunkt i har et odde eller jevnt antall naboer.
  2. Pre-prosessering 2: Vi tar deg tid til å beregne en liste over topp-punkt i som har .
  3. Hver gjentakelse: Vi fjerner bare det første listeelementet. For å oppdatere listen over odde / jevne hjørner , trenger vi bare å oppdatere oppføringer, sette inn / fjerne etter behov. Vi oppdaterer deretter oppføringene i listen over hjørner med mer rare enn til og med naboer, og setter inn / fjerner etter behov. Dermed tar hver iterasjon tid.
  4. Som argumentert ovenfor er det totale antallet gjentakelser på det meste .

Dette gir en total kjøretid , hvor og er konstanter.

Se også

Merknader

Denne artikkelen er basert på Dr. Venkatesan Guruswamis kursnotater.

Referanser

  1. ^ Capalbo, M .; Reingold, O .; Vadhan, S .; Wigderson, A. (2002). "Tilfeldighetsledere og utvidelsesløs utvidere med konstant grad" . STOC '02 Forløp av det trettifjerde årlige ACM-symposiet om teori om databehandling . ACM. s. 659–668. doi : 10.1145 / 509907.510003 . ISBN   978-1-58113-495-7 .
  2. ^ Spielman, D. (1996). "Kodbare og dekodbare feilkorrigerende koder for lineær tid". IEEE-transaksjoner om informasjonsteori . 42 (6): 1723–31. CiteSeerX   10.1.1.47.2736 . doi : 10.1109 / 18.556668 .
  3. ^ Guruswami, V. (15. november 2006). "Forelesning 13: Utvidelseskoder" (PDF) . CSE 533: Feilkorrigering . University of Washington.
    Guruswami, V. (mars 2010). "Merknader 8: Utvidelseskoder og dekoding av dem" (PDF) . Introduksjon til kodingsteori . Carnegie Mellon University.
    Guruswami, V. (september 2004). "Gjestekolonne: feilrettingskoder og utvidelsesdiagrammer" . ACM SIGACT Nyheter . 35 (3): 25–41. doi : 10.1145 / 1027914.1027924 .