SlideShare a Scribd company logo
1 of 22
Download to read offline
Algoritmo probabilistico di tipo
Montecarlo per il List Decoding
Laureando: Daniele Nicassio Relatore: prof. Francesco Fabris
Università degli studi di Trieste
Dipartimento di Ingegneria e Architettura
Corso di laurea magistrale di Ingegneria Informatica
Codifica di canale (1): cos’è
Obiettivo: rendere più affidabili le comunicazioni attraverso canali rumorosi
sorgente destinatario
w= 010010 y= 010010
1
rumore,
interferenze,
errori di
trasmissione,
...
Obiettivo concreto: rilevare o correggere eventuali errori di trasmissione
Codifica di canale (2): come si realizza
si aggiunge ridondanza al messaggio originale:
c = 0110100
codifica di canale
w = 01101001100
se la ridondanza è aggiunta in modo strutturato, la codifica e la decodifica
possono essere realizzate in modo efficiente
Codifica di canale (3): codici correttori
I codici correttori:
● hanno una funzione di codifica e una funzione di decodifica
● garantiscono la capacità correttiva t: massimo numero di
errori di trasmissione che possono essere corretti
Esempi: codici BCH, codici Reed-Solomon, codici di Hamming, ...
Codifica di canale (4): spazio delle ennuple
w1
t
w2
t w4
t
w3
t
w6
t
w5
t
● parole di codice possibili: w1..w6
● le zone verdi sono dette regioni di
decodifica
● ennupla ricevuta in regione di
decodifica di wi
=> decodificata con
wi
● se l’ennupla è fuori da tutte le
regioni di decodifica la decodifica
fallisce
● solo se gli errori di trasmissione
sono <= t la decodifica dà il
risultato corretto
List decoding (1): generalità
Decodifica classica
● è univoca
● limitata a t = floor((d-1)/2)
w1
t
w2
t w4
t
w3
t
w6
t
w5
t
d
d = distanza minima del codice
List decoding
● non univoca
● può avere capacità correttiva > floor((d-1)/2)
List decoding (2): storia
● idea introdotta negli anni ‘50 da Elias
● appena nel ‘98 si ha un primo algoritmo polinomiale per la decodifica
(Sudan)
● Successivamente, prima Guruswami poi Wu migliorano l’algoritmo
● la complessità raggiunta è polinomiale, ma comunque pesante:
● troppo inefficiente per molte applicazioni pratiche
● tutti i 3 algoritmi proposti sono basati su strumenti di geometria algebrica
molto complessi
List decoding (3): algoritmo di Guruswami-Sudan
1. si riceve la ennupla y
2. Interpolazione: si trova il polinomio
tale che
3. Fattorizzazione: si fattorizza il il polinomio Q(x,y) nei fattori irriducibili in
forma (y-p(x))
4. output: i polinomi p(x) tali che:
List decoding (4): algoritmo di Wu
1. Si riceve la ennupla y
2. Si applica l’algoritmo di Berlekamp con l’obiettivo di determinare le
funzioni del tipo che si annullino in al massimo
in t valori di i
3. interpolazione: si costruisce il polinomio Q(x,y) passante per tutti gli n
punti
4. fattorizzazione: si individuano i fattori di Q(x,y) nella forma
5. correzione degli errori: per ogni fattore individuato, si individua un
polinomio nella forma
6. le radici dei suddetti polinomi rappresentano le posizioni da modificare in y
per ottenere ognuna delle parole di codice candidate
List decoding (5): analogia geometrica
Sudan Guruswami-Sudan
List decoding (6): riassunto
● restituisce una lista di risultati invece che un risultato
univoco
● problema difficile da trattare dal punto di vista
computazionale
● lo stato dell’arte presenta degli algoritmi polinomiali ma
con complessità molto pesante
● ancora inutilizzabile nella pratica
Il problema
non esiste un algoritmo di list decoding che sia:
● utilizzabile in pratica (almeno in qualche caso)
● capace di correggere un numero di errori maggiore di
quelli della decodifica classica (univoca)
● non si avvalga di strumenti matematici avanzati come
quelli usati negli algoritmi allo stato dell’arte
Idea: algoritmo probabilistico
L’idea proposta in questa tesi è un algoritmo di list decoding
probabilistico di tipo Montecarlo:
● utilizzabile per correggere un numero di errori > t
● che abbia una probabilità di successo fissata, ovvero funzioni con
una probabilità fissata pobj
Approccio completamente diverso dallo stato dell’arte
Algoritmo proposto (1)
L’algoritmo esplora lo spazio delle ennuple in modo iterativo:
1. ricevo y
2. i=0
3. si decodificano Ni
ennuple casuali lontane i da y
4. se qualche decodifica ha successo, restituisco la lista di
parole trovate
5. se non trovo nulla, incremento i
6. mi fermo se i > Johnson bound, altrimenti torno al punto 3
Algoritmo proposto (2): illustrazione
y y
w1
t
w1
t
y
w1
t
y
w1
t
i = 0
Ni
=1
i = 3
Ni
=12
i = 2
Ni
=5
i = 1,
Ni
=2
list = {} list = {} list = {} list = {w1}
w2
t
Algoritmo proposto (3): calcolo di Ni
1. si calcola la probabilità psuccess
di trovare una parola a
distanza i+t in un tentativo
2. si calcola il numero di tentativi Ni
necessari per garantire
una probabilità di trovare la parola pari a un fissato pobj
Algoritmo proposto (4): iterazione generica
Esempio di iterazione al passo i:
● sono stati fatti Ni
=6 tentativi
● sono state trovate 2 parole,
w1 e w2
● una parola non è stata trovata
Risultati (1): implementazione
● Sono state eseguite varie simulazioni in MATLAB per
studiare la distribuzione delle parole nello spazio delle
ennuple
● L’algoritmo proposto è stato realizzato in MATLAB, per la
classe dei codici BCH
● Sono stati confrontati i tempi di decodifica delle librerie
BCH di MATLAB e di C, stimando uno speedup se
l’implementazione dovesse essere fatta in C
Risultati (2): validazione
L’algoritmo deve trovare le parole distanti i all’iterazione
i-esima con probabilità fissata pobj
e = i + t
N = numero tentativi
n = lunghezza parola
k = bit d’informazione
t = capacità correttiva
Risultati (3): tempo medio e dimensione media
lista per e=t+1,t+2
Conclusioni (1)
È stato quindi proposto un algoritmo probabilistico che:
● individua con una certa probabilità pobj
fissata la lista di
parole vicine
● funziona per un numero di errori > t
● ha un tempo medio di esecuzione piuttosto alto quando il
numero di errori supera t+1 e n >=127
Conclusioni (2): sviluppi futuri
● Confronto con lo stato dell’arte: implementare
l’algoritmo proposto e lo stato dell’arte con un linguaggio
efficiente e confrontarne tempi e risultati
● Analisi ulteriore della probabilità di successo: tenere
in considerazione la probabilità di trovare una parola al
passo (i+1)-esimo

More Related Content

What's hot

Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
STELITANO
 
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
UltraUploader
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
STELITANO
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Paolo Oltramonti
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Paolo Oltramonti
 

What's hot (19)

Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Sistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneSistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazione
 
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
 
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
Dal modello a memoria condivisa al modello a rete, impossibilità del consenso...
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozart
 
Crittografia1
Crittografia1Crittografia1
Crittografia1
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
 
Principi di crittografia
Principi di crittografiaPrincipi di crittografia
Principi di crittografia
 
6_crittografia_firma_digitale
6_crittografia_firma_digitale6_crittografia_firma_digitale
6_crittografia_firma_digitale
 
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
 
Compressione dei file
Compressione dei fileCompressione dei file
Compressione dei file
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
 
Video python3 n2
Video python3 n2Video python3 n2
Video python3 n2
 
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
Studio del limite superiore del tasso di errore nei codici LDPC con relazione...
 

Viewers also liked

cpr-certification-provider-card
cpr-certification-provider-cardcpr-certification-provider-card
cpr-certification-provider-card
Shatenda Watson
 
Trabajo drogas
Trabajo drogasTrabajo drogas
Trabajo drogas
Carusalo
 
Maquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhosMaquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhos
jdlimaaear
 
Sunitha G Resume
Sunitha G ResumeSunitha G Resume
Sunitha G Resume
sunitha g
 

Viewers also liked (20)

Tutto quello che avreste voluto sapere sui malware android
Tutto quello che avreste voluto sapere sui malware androidTutto quello che avreste voluto sapere sui malware android
Tutto quello che avreste voluto sapere sui malware android
 
Evoluzione dei malware in ambiente Android: dalle metodologie di infezione al...
Evoluzione dei malware in ambiente Android: dalle metodologie di infezione al...Evoluzione dei malware in ambiente Android: dalle metodologie di infezione al...
Evoluzione dei malware in ambiente Android: dalle metodologie di infezione al...
 
Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)
 
Ecología
EcologíaEcología
Ecología
 
bside_factsheet
bside_factsheetbside_factsheet
bside_factsheet
 
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
 
Presentación
PresentaciónPresentación
Presentación
 
พอร์ต
พอร์ตพอร์ต
พอร์ต
 
cpr-certification-provider-card
cpr-certification-provider-cardcpr-certification-provider-card
cpr-certification-provider-card
 
Tugas minggu 2
Tugas minggu 2Tugas minggu 2
Tugas minggu 2
 
Trabajo drogas
Trabajo drogasTrabajo drogas
Trabajo drogas
 
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
 
Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...
 
Maquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhosMaquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhos
 
Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016
 
Botnet e nuove forme di malware
Botnet e nuove forme di malwareBotnet e nuove forme di malware
Botnet e nuove forme di malware
 
Pòster jipi 2017
Pòster jipi 2017Pòster jipi 2017
Pòster jipi 2017
 
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
 
Sunitha G Resume
Sunitha G ResumeSunitha G Resume
Sunitha G Resume
 
Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7
 

Similar to Algoritmo probabilistico di tipo montecarlo per il list decoding

Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
STELITANO
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
Angela Cristina
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)
STELITANO
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
Majong DevJfu
 
Presentazione corretta algoritmi
Presentazione corretta algoritmiPresentazione corretta algoritmi
Presentazione corretta algoritmi
mattuzzi
 
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
Stefano Ficcadenti
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
mattuzzi
 

Similar to Algoritmo probabilistico di tipo montecarlo per il list decoding (20)

Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionale
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)
 
1.01 Algoritmi
1.01 Algoritmi1.01 Algoritmi
1.01 Algoritmi
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiAlgoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
Reti Logic
Reti LogicReti Logic
Reti Logic
 
Pycrashcourse
PycrashcoursePycrashcourse
Pycrashcourse
 
Presentazione corretta algoritmi
Presentazione corretta algoritmiPresentazione corretta algoritmi
Presentazione corretta algoritmi
 
Introduzione all’informatica
Introduzione all’informaticaIntroduzione all’informatica
Introduzione all’informatica
 
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'inf...
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
 
Algoritmi
AlgoritmiAlgoritmi
Algoritmi
 
Algoritmi e Calcolo Parallelo 2012/2013 - Hashing
Algoritmi e Calcolo Parallelo 2012/2013 - HashingAlgoritmi e Calcolo Parallelo 2012/2013 - Hashing
Algoritmi e Calcolo Parallelo 2012/2013 - Hashing
 
Corso c++
Corso c++Corso c++
Corso c++
 

Algoritmo probabilistico di tipo montecarlo per il list decoding

  • 1. Algoritmo probabilistico di tipo Montecarlo per il List Decoding Laureando: Daniele Nicassio Relatore: prof. Francesco Fabris Università degli studi di Trieste Dipartimento di Ingegneria e Architettura Corso di laurea magistrale di Ingegneria Informatica
  • 2. Codifica di canale (1): cos’è Obiettivo: rendere più affidabili le comunicazioni attraverso canali rumorosi sorgente destinatario w= 010010 y= 010010 1 rumore, interferenze, errori di trasmissione, ... Obiettivo concreto: rilevare o correggere eventuali errori di trasmissione
  • 3. Codifica di canale (2): come si realizza si aggiunge ridondanza al messaggio originale: c = 0110100 codifica di canale w = 01101001100 se la ridondanza è aggiunta in modo strutturato, la codifica e la decodifica possono essere realizzate in modo efficiente
  • 4. Codifica di canale (3): codici correttori I codici correttori: ● hanno una funzione di codifica e una funzione di decodifica ● garantiscono la capacità correttiva t: massimo numero di errori di trasmissione che possono essere corretti Esempi: codici BCH, codici Reed-Solomon, codici di Hamming, ...
  • 5. Codifica di canale (4): spazio delle ennuple w1 t w2 t w4 t w3 t w6 t w5 t ● parole di codice possibili: w1..w6 ● le zone verdi sono dette regioni di decodifica ● ennupla ricevuta in regione di decodifica di wi => decodificata con wi ● se l’ennupla è fuori da tutte le regioni di decodifica la decodifica fallisce ● solo se gli errori di trasmissione sono <= t la decodifica dà il risultato corretto
  • 6. List decoding (1): generalità Decodifica classica ● è univoca ● limitata a t = floor((d-1)/2) w1 t w2 t w4 t w3 t w6 t w5 t d d = distanza minima del codice List decoding ● non univoca ● può avere capacità correttiva > floor((d-1)/2)
  • 7. List decoding (2): storia ● idea introdotta negli anni ‘50 da Elias ● appena nel ‘98 si ha un primo algoritmo polinomiale per la decodifica (Sudan) ● Successivamente, prima Guruswami poi Wu migliorano l’algoritmo ● la complessità raggiunta è polinomiale, ma comunque pesante: ● troppo inefficiente per molte applicazioni pratiche ● tutti i 3 algoritmi proposti sono basati su strumenti di geometria algebrica molto complessi
  • 8. List decoding (3): algoritmo di Guruswami-Sudan 1. si riceve la ennupla y 2. Interpolazione: si trova il polinomio tale che 3. Fattorizzazione: si fattorizza il il polinomio Q(x,y) nei fattori irriducibili in forma (y-p(x)) 4. output: i polinomi p(x) tali che:
  • 9. List decoding (4): algoritmo di Wu 1. Si riceve la ennupla y 2. Si applica l’algoritmo di Berlekamp con l’obiettivo di determinare le funzioni del tipo che si annullino in al massimo in t valori di i 3. interpolazione: si costruisce il polinomio Q(x,y) passante per tutti gli n punti 4. fattorizzazione: si individuano i fattori di Q(x,y) nella forma 5. correzione degli errori: per ogni fattore individuato, si individua un polinomio nella forma 6. le radici dei suddetti polinomi rappresentano le posizioni da modificare in y per ottenere ognuna delle parole di codice candidate
  • 10. List decoding (5): analogia geometrica Sudan Guruswami-Sudan
  • 11. List decoding (6): riassunto ● restituisce una lista di risultati invece che un risultato univoco ● problema difficile da trattare dal punto di vista computazionale ● lo stato dell’arte presenta degli algoritmi polinomiali ma con complessità molto pesante ● ancora inutilizzabile nella pratica
  • 12. Il problema non esiste un algoritmo di list decoding che sia: ● utilizzabile in pratica (almeno in qualche caso) ● capace di correggere un numero di errori maggiore di quelli della decodifica classica (univoca) ● non si avvalga di strumenti matematici avanzati come quelli usati negli algoritmi allo stato dell’arte
  • 13. Idea: algoritmo probabilistico L’idea proposta in questa tesi è un algoritmo di list decoding probabilistico di tipo Montecarlo: ● utilizzabile per correggere un numero di errori > t ● che abbia una probabilità di successo fissata, ovvero funzioni con una probabilità fissata pobj Approccio completamente diverso dallo stato dell’arte
  • 14. Algoritmo proposto (1) L’algoritmo esplora lo spazio delle ennuple in modo iterativo: 1. ricevo y 2. i=0 3. si decodificano Ni ennuple casuali lontane i da y 4. se qualche decodifica ha successo, restituisco la lista di parole trovate 5. se non trovo nulla, incremento i 6. mi fermo se i > Johnson bound, altrimenti torno al punto 3
  • 15. Algoritmo proposto (2): illustrazione y y w1 t w1 t y w1 t y w1 t i = 0 Ni =1 i = 3 Ni =12 i = 2 Ni =5 i = 1, Ni =2 list = {} list = {} list = {} list = {w1} w2 t
  • 16. Algoritmo proposto (3): calcolo di Ni 1. si calcola la probabilità psuccess di trovare una parola a distanza i+t in un tentativo 2. si calcola il numero di tentativi Ni necessari per garantire una probabilità di trovare la parola pari a un fissato pobj
  • 17. Algoritmo proposto (4): iterazione generica Esempio di iterazione al passo i: ● sono stati fatti Ni =6 tentativi ● sono state trovate 2 parole, w1 e w2 ● una parola non è stata trovata
  • 18. Risultati (1): implementazione ● Sono state eseguite varie simulazioni in MATLAB per studiare la distribuzione delle parole nello spazio delle ennuple ● L’algoritmo proposto è stato realizzato in MATLAB, per la classe dei codici BCH ● Sono stati confrontati i tempi di decodifica delle librerie BCH di MATLAB e di C, stimando uno speedup se l’implementazione dovesse essere fatta in C
  • 19. Risultati (2): validazione L’algoritmo deve trovare le parole distanti i all’iterazione i-esima con probabilità fissata pobj e = i + t N = numero tentativi n = lunghezza parola k = bit d’informazione t = capacità correttiva
  • 20. Risultati (3): tempo medio e dimensione media lista per e=t+1,t+2
  • 21. Conclusioni (1) È stato quindi proposto un algoritmo probabilistico che: ● individua con una certa probabilità pobj fissata la lista di parole vicine ● funziona per un numero di errori > t ● ha un tempo medio di esecuzione piuttosto alto quando il numero di errori supera t+1 e n >=127
  • 22. Conclusioni (2): sviluppi futuri ● Confronto con lo stato dell’arte: implementare l’algoritmo proposto e lo stato dell’arte con un linguaggio efficiente e confrontarne tempi e risultati ● Analisi ulteriore della probabilità di successo: tenere in considerazione la probabilità di trovare una parola al passo (i+1)-esimo