Zemorlarni dekodlash algoritmi - Zemors decoding algorithm - Wikipedia

Yilda kodlash nazariyasi, Zemor algoritmi, Gilles Zemor tomonidan ishlab chiqilgan va ishlab chiqilgan,[1] kodni tuzishda rekursiv past murakkablik yondashuvi. Bu algoritmini takomillashtirishdir Sipser va Spielman.

Zemor Sipser-Spielman qurilishining odatiy sinfini ko'rib chiqdi kengaytiruvchi kodlar, bu erda asosiy grafik mavjud ikki tomonlama grafik. Sipser va Spielman xatolarning doimiy qismini olib tashlaydigan oddiy parallel algoritm bilan birga asimptotik jihatdan yaxshi chiziqli xato kodlari konstruktiv oilasini taqdim etishdi. Maqola doktor Venkatesan Gurusvamining kurs yozuvlari asosida tayyorlangan [2]

Kod tuzilishi

Zemor algoritmi bir turiga asoslangan kengaytiruvchi grafikalar deb nomlangan Tanner grafigi. Kodni qurish birinchi marta Tanner tomonidan taklif qilingan.[3] Kodlar asoslanadi ikki qavatli qopqoq , muntazam kengaytirgich , bu ikki tomonlama grafik. =, qayerda bu tepaliklar to'plami va bu qirralarning to'plami va = va = , qayerda va 2 tepaliklar to'plamini bildiradi. Ruxsat bering har bir guruhdagi tepaliklar soni, ya'ni, . Chegarasi o'rnatilgan hajmda bo'lish = va har bir chekka ikkalasida ham bitta so'nggi nuqta bor va . o'z ichiga olgan qirralarning to'plamini bildiradi .

Buyurtmani qabul qiling , shuning uchun buyurtma har bir chekkada amalga oshiriladi har bir kishi uchun . Ruxsat bering cheklangan maydon va bir so'z bilan aytganda yilda , so'zning pastki so'zi indekslangan bo'lsin . Ushbu so'z bilan belgilansin . Tepaliklarning pastki qismi va har bir so'zni keltirib chiqaradi qism bir-biriga qo'shilmaydigan pastki so'zlar , qayerda elementlari bo'yicha intervallarni . Kodni yaratish uchun , chiziqli pastki kodni ko'rib chiqing , bu a kod, qaerda , alifbo hajmi . Har qanday tepalik uchun , ruxsat bering ning ba'zi buyurtmalari bo'lishi mumkin tepaliklari qo'shni . Ushbu kodda har bir bit chekka bilan bog'langan ning .

Biz kodni aniqlay olamiz ikkilik vektorlar to'plami bo'lish ning Shunday qilib, har bir tepalik uchun ning , kodining so'zidir . Bunday holda, biz har bir chekka bo'lganida maxsus ishni ko'rib chiqishimiz mumkin aniq qo'shni tepaliklari . Bu shuni anglatadiki va navbati bilan vertikal to'plam va chekka to'plamni tashkil qiladi muntazam grafik .

Kodni chaqiramiz kabi qurilgan kod. Berilgan grafik uchun va berilgan kod , bir nechtasi bor kodlar, chunki berilgan tepaga tushgan qirralarning tartibini har xil usullari mavjud , ya'ni, . Aslida bizning kodimiz barcha kod so'zlaridan iborat Barcha uchun . Kod chiziqli yilda chunki u subkoddan hosil bo'ladi , bu chiziqli. Kod sifatida belgilanadi har bir kishi uchun .

A
G chizmasi va C kodi

Ushbu rasmda, . Bu grafikani ko'rsatadi va kod .

Matritsada , ruxsat bering ikkinchisiga teng o'zgacha qiymat ning qo'shni matritsa ning . Bu erda eng katta tabiiy qiymat hisoblanadi . Ikki muhim da'vo:

1-da'vo


. Ruxsat bering raqamli tugunlari darajaga ega bo'lgan ikki tomonlama grafikadan tuzilgan chiziqli kodning tezligi va pastki kod tugunlari darajaga ega . Agar parametrlarga ega bo'lgan bitta chiziqli kod bo'lsa va darajasi pastki kod tugunlarining har biri bilan bog'liq, keyin .

Isbot

Ruxsat bering ga teng bo'lgan chiziqli kodning tezligi bo'ling Bor grafadagi pastki kod tugunlari. Agar pastki kodning darajasi bo'lsa , keyin kod bo'lishi kerak raqamlar, chunki har bir raqamli tugun ulangan ning grafadagi qirralar. Har bir subkod tuguni o'z hissasini qo'shadi jami tenglikni tekshirish matritsasiga tenglamalar . Ushbu tenglamalar chiziqli ravishda mustaqil bo'lmasligi mumkin. Shuning uchun,

, Ning qiymati beri , ya'ni ushbu ikki tomonlama grafikning raqamli tuguni va bu erda , biz quyidagicha yozishimiz mumkin:

2-da'vo

Agar chiziqli stavka kodidir , blok kodining uzunligi va minimal nisbiy masofa va agar bo'lsa a ning vertikal tushish grafigi - ikkinchi qiymatga ega bo'lgan doimiy grafik , keyin kod hech bo'lmaganda stavkaga ega va hech bo'lmaganda minimal nisbiy masofa .

Isbot

Ruxsat bering dan olingan bo'lishi muntazam grafik . Shunday qilib, ning o'zgaruvchilar soni bu va cheklovlar soni . Alon-Chungning so'zlariga ko'ra,[4] agar ning pastki qismidir hajmi , keyin subgrafada joylashgan qirralarning soni bilan induksiya qilinadi yilda ko'pi bilan .

Natijada, har qanday to'plam o'zgaruvchilar hech bo'lmaganda ega bo'ladi qo'shnilar sifatida cheklovlar. Shunday qilib, har bir cheklov uchun o'rtacha o'zgaruvchilar soni:

Shunday qilib, agar , keyin nisbiy vazn so'zi , ning kod so'zi bo'lishi mumkin emas . Tengsizlik uchun mamnun . Shuning uchun, nisbiy vaznning nolga teng bo'lmagan kod so'ziga ega bo'lishi mumkin emas yoki kamroq.

Matritsada , deb taxmin qilishimiz mumkin bilan chegaralangan . Ning bu qiymatlari uchun unda g'alati tub, ketma-ketliklarining aniq konstruktsiyalari mavjud - har ikki grafaga o'xshash o'zboshimchalik bilan ko'p sonli vertikal grafikalar ketma-ketlikda a Ramanujan grafigi. U tengsizlikni qondirgani uchun Ramanujan grafigi deb ataladi . Grafada ma'lum kengayish xususiyatlari ko'rinadi o'zgacha qiymatlar orasidagi ajratish sifatida va . Agar grafik bu Ramanujan grafigi, keyin bu ifoda bo'ladi oxir-oqibat katta bo'ladi.

Zemor algoritmi

Quyida yozilgan takroriy dekodlash algoritmi tepaliklar bilan almashtiriladi va yilda va kod kodini tuzatadi yilda va keyin u kod so'zini tuzatish uchun o'tadi yilda . Bu erda grafaning bir tomonidagi tepalik bilan bog'langan qirralar u tomonning boshqa tepasiga to'g'ri kelmaydi. Aslida, tugunlar to'plami qaysi tartibda bo'lishi muhim emas va qayta ishlanadi. Verteksni qayta ishlash parallel ravishda ham amalga oshirilishi mumkin.

Kod hal qiluvchi dekoderni anglatadi dan kam bo'lgan kodli so'zlar bilan to'g'ri tiklanadi xatolar.

Kod hal qiluvchi algoritmi

Qabul qilingan so'z:

Uchun ga qil // takrorlash soni
{if ( g'alati) // Bu erda algoritm o'zining ikkita tepalik to'plami o'rtasida o'zgarib turadi.

boshqa
Takrorlash : Har bir kishi uchun , ruxsat bering // Kod hal qilish eng yaqin kod so'ziga.
}
Chiqish:

Algoritmni tushuntirish

Beri ikki tomonlama, to'plam tepaliklar chekka to'plamining bo'linishini keltirib chiqaradi = . To'plam boshqa bo'limni keltirib chiqaradi, = .

Ruxsat bering qabul qilingan vektor bo'ling va buni eslang . Algoritmning birinchi takrorlanishi induksiya qilingan kod uchun to'liq dekodlashni qo'llashdan iborat har bir kishi uchun . Bu shuni anglatadiki, almashtirish uchun, har bir kishi uchun , vektor ning eng yaqin kod so'zlaridan biri tomonidan . Qirralarning pastki to'plamlaridan beri uchun ajratilgan , bularning dekodlanishi subvektorlari parallel ravishda amalga oshirilishi mumkin.

Takrorlash yangi vektor beradi . Keyingi takrorlash avvalgi protsedurani lekin bilan bilan almashtirildi . Boshqacha qilib aytganda, u vertikallari tomonidan induktsiya qilingan barcha subvektorlarning dekodlanishidan iborat . Kelgusi takrorlashlar ushbu ikki bosqichni navbatma-navbat vertikallari tomonidan induksiya qilingan subvektorlarga parallel dekodlashni qo'llaydi. va tepaliklari tomonidan induktsiya qilingan subvektorlarga .
Eslatma: [Agar va to'liq ikki tomonlama grafik, keyin mahsulot kodidir o'zi va yuqoridagi algoritm bilan mahsulot kodlarini tabiiy qattiq iterativ dekodlashgacha kamaytiradi].

Mana, takrorlash soni, bu . Umuman olganda, yuqoridagi algoritm Hamming og'irligi ko'p bo'lmagan kod so'zini tuzatishi mumkin ning qiymatlari uchun . Bu erda dekodlash algoritmi o'lchov sxemasi sifatida amalga oshiriladi va chuqurlik Bu xato vektorining og'irligi kamroq bo'lganligi sababli kod so'zini qaytaradi .

Teorema

Agar har qanday kishi uchun etarlicha yuqori darajadagi Ramanujan grafigi , dekodlash algoritmi tuzatishi mumkin xatolar, ichida dumaloq (bu erda katta yozuvlar bog'liqlikni yashiradi ). Buni bitta protsessorda chiziqli vaqtda amalga oshirish mumkin; kuni protsessorlarni har bir tur doimiy ravishda amalga oshirish mumkin.

Isbot

Kod hal qilish algoritmi qirralarning qiymatiga va chiziqlilikka befarq bo'lgani uchun, biz uzatilgan kod so'zni barcha nol - vektor deb hisoblashimiz mumkin. Qabul qilingan kod so'zi bo'lsin . Dekodlash paytida noto'g'ri qiymatga ega bo'lgan qirralarning to'plami ko'rib chiqiladi. Bu erda noto'g'ri qiymat bilan biz demoqchimiz bitlarning har qandayida. Ruxsat bering kod so'zining boshlang'ich qiymati bo'lishi, birinchi, ikkinchisidan keyin qiymatlar bo'ling. . . dekodlash bosqichlari. Bu yerda, va . Bu yerda kodidagi so'zni muvaffaqiyatli hal qila olmagan tepaliklar to'plamiga to'g'ri keladi dumaloq. Yuqoridagi algoritmdan chunki har bir takrorlashda muvaffaqiyatsiz tepalar soni tuzatiladi. Biz buni isbotlashimiz mumkin Bu kamayib boruvchi ketma-ketlikdir. . Biz taxmin qilgandek, , yuqoridagi tenglama a da joylashgan geometrik kamayish ketma-ketligi. Shunday qilib, qachon , Bundan ko'proq turlar kerak. Bundan tashqari, va agar biz amalga oshirsak dumaloq vaqt, keyin umumiy ketma-ket ishlash vaqti chiziqli bo'ladi.

Zemor algoritmining kamchiliklari

  1. Bu takrorlash soni sifatida uzoq jarayon dekoderda algoritm bo'ladi
  2. Zemor kodini ochish algoritmi o'chirishni dekodlash qiyin. Algoritmni qanday yaxshilashimiz mumkinligi haqida batafsil ma'lumot

berilgan.[5]

Shuningdek qarang

Adabiyotlar

  1. ^ Gilles Zemor
  2. ^ http://www.cs.washington.edu/education/courses/cse590vg/03wi/scribes/1-27.ps
  3. ^ http://www.cs.washington.edu/education/courses/cse533/06au/lecnotes/lecture14.pdf
  4. ^ http://math.ucsd.edu/~fan/mypaps/fanpap/93tolerant.pdf
  5. ^ "Arxivlangan nusxa". Arxivlandi asl nusxasi 2004 yil 14 sentyabrda. Olingan 1 may, 2012.CS1 maint: nom sifatida arxivlangan nusxa (havola)