Teoria dei codici correttori d'errore

Slides:



Advertisements
Presentazioni simili
Teoria dei codici correttori d'errore
Advertisements

Protocolli HB+ e HB# Lezione tenuta dal Presentazione realizzata da
Tecniche di compressione dei dati
Le Informazioni e la loro Rappresentazione nei calcolatori
Capitolo 8 Sistemi lineari.
E.Mumolo. DEEI Reti di calcolatore e Applicazioni Telematiche – Livello Dati Lezioni di supporto al corso teledidattico E.Mumolo. DEEI.
Andrea G. B. Tettamanzi, 2001 Teoria dellInformazione (Classica) Andrea G. B. Tettamanzi Università degli Studi di Milano Dipartimento di Tecnologie dellInformazione.
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Fisica 2 18° lezione.
Pierangelo Degano, Emanuel Castellarin, Laura Passaponti
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Sistemi e Tecnologie della Comunicazione
redditività var. continua classi di redditività ( < 0 ; >= 0)
Metodi Probabilistici, Statistici e Processi Stocastici Università Carlo Cattaneo Emanuele Borgonovo Metodi Probailistici, Statistici e Processi Stocastici.
Introduzione alla Teoria dei giochi
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Scenario Archi di un grafo controllati da agenti egoistici
True Random Bit Generation From a Double-Scroll Attractor
Esercizio 1 Due collegamenti in cascata, AB e BC hanno una velocità rispettivamente di 100 Mb/s e 50 Mb/s e tempi di propagazione pari a 1 ms e 1.2 ms.
Esperienza di laboratorio sull’elasticità
Teoria e Tecniche del Riconoscimento
Modulazione QAM: idea base
Modulazioni digitali: ricevitori
MODELLO DI REGRESSIONE LINEARE MULTIPLA
Matematica e statistica Versione didascalica: parte 8 Sito web del corso Docente: Prof. Sergio Invernizzi, Università di Trieste
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e strutture dati
INFORMAZIONE LEZIONE 1. INFORMATICA ACRONIMO INFORMAZIONE AUTOMATICA.
INFORMAZIONE LEZIONE 1.
Ricerca della Legge di Controllo
I CODICI.
CODICI Si ringrazia il prof. Di Santo per aver gentilmente messo a disposizione il proprio materiale per la preparazione di alcune delle slides presenti.
Codici binari decimali
Tempo di computazione (Running Time) di programmi Misure del tempo: Misure del tempo: metodi principali 1.Benchmarking 2.Analisi Benchmarking: usato per.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Sistema di comunicazione
Intelligenza Artificiale Algoritmi Genetici
CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.
Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
LA CRITTOGRAFIA QUANTISTICA
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 7.
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Esercizi.
Lezione 6 Strutture di controllo Il condizionale
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
PARTE SECONDA: Reti Senza Fili
Progetto Edusat 3° Modulo
Sottospazi vettoriali
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 1 Cicli ed asserzioni Corso di Informatica 2 a.a. 2003/04 Lezione 1.
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
Tecniche di progettazione Fault Tolerant
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 6 PULSE CODE MODULATION (PCM)
Rappresentazione dell’informazione nel calcolatore.

Probabilità. Un percorso didattico esperimenti e simulazioni L. Cappello 9 Maggio Didattica probabilità e statistica PAS 2014.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Rappresentazione della Informazione
Presenta: Liceo Classico Scientifico “Giosuè Carducci” Nola (Na) Presenta:
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
La codifica dei numeri.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Problemi, algoritmi e programmazione
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Transcript della presentazione:

Teoria dei codici correttori d'errore Fondatore: Richard W. Hamming Articolo: Error Detecting and Error Correcting Codes (1950) In ogni trasmissione digitale possono avvenire errori. Es. ricezione da sonde spaziali o satelliti: canale molto disturbato, segnale molto debole  errori frequenti. Es. riproduzione musica o immagini digitali: supporto fisico danneggiato. Senza metodi efficaci e veloci di correzione degli errori non darebbe possibile ricevere informazioni dallo spazio, usare un lettore di CD o un telefonino! Es. graffio di alcuni millimetri sulla superficie di un CD non pregiudica l'ascolto grazie a codice di Reed - Solomon, in grado di correggere 'raffiche' di errori consecutivi di notevole lunghezza. Applicazioni nei campi più diversi: dalle telecomunicazioni alla biologia molecolare

Gestione errore su 1 bit in sequenze di bit. Codice di ripetizione: Ripeti ciascun bit 3 volte Se uno dei bit è erroneamente invertito, viene riconosciuto e corretto durante la decodifica del suo blocco di 3 bit. Inefficiente: rapporto tra i bit attuali e i bit totali è solo 1/3 (per memorizzare/comunicare 1MB si memorizzano/inviano 3Mb) Codifica Hamming Data una sequenza di bit, la suddividiamo in porzioni da 4 bit. Sia b il vettore che rappresenta una di tali porzioni, e codifichiamo b come bG a 7 bit, (operazioni modulo 2) Il tasso è 4/7, molto migliore del precedente. Resta da dimostrare che correggere 1 errore.

Definizione. La distanza di Hamming tra x e y in An è Affermazione: Per ogni b e b’, le codifiche bG e b’G differiscono in ≥ 3 coordinate A=alfabeto An=insieme di sequenze di n simboli su A Definizione. La distanza di Hamming tra x e y in An è d(x, y)=numero di coordinate i t.c. xi diverso da yi La distanza di Hamming è una metrica: d(x, y) = d(y, x) d(x, z) < d(x, y) + d(y, z) d(x, y) = 0 sse x=y

Affermazione: Per ogni b e b’, le codifiche bG e b’G differiscono in ≥ 3 coordinate d(x, y)= numero coordinate i con xi diverso da yi. Spazio di tutte le possibili parole codice = {0, 1}7. Se possiamo dimostrare Affermazione 1 ogni parola-codice bG non ha altre parole-codice in un raggio 2 intorno ad essa.  ogni punto a distanza Hamming 1 da una parola codice è sicuramente più vicina a quella parola di qualunque altra, e dunque possiamo in tal modo correggere gli errori a 1 bit. c’ y x c d(c,c’)=3, d(c,x)=1

Definizione: Un codice a correzione di errore è un sottoinsieme C di An. La distanza minima di C è (minimo su tutte le coppie di parole diverse in C) d(C)=min d(x,y) Definizione: C è e error detecting se può rilevare <e errori; C è t error correcting se può correggere <t errori Proposizione: Se d(C)>2t+1, C e’ 2t error detecting e t error correcting Dim. d(C)=2t+1  sequenza a distanza 2t da parola codice non è in C  2t error detecting d(C)= 2t+1  sequenza r a distanza t da p.c. ha distanza >t da ogni altra p.c.  prendendo la p.c. più vicina a r correggiamo t errori  t error correcting y r t x t 1

Parametri: q = |A| n = lunghezza delle parole codice k = lunghezza del messaggio (lunghezza pre-codifica) = logq |C| d = d(C) Si vuole: valori grandi di k e d, e valori piccoli di n. Possiamo anche cercare di massimizzare il tasso del codice k/n codice a correzione di errore con questi parametri  codice (n, k, d)q . Nostra affermazione (Per ogni b e b’, le codifiche bG e b’G differiscono in ≥ 3 coordinate)  {bG|b in {0, 1}4} è un codice (7, 4, 3).

Codici a correzione di errore Applicazioni in vari campi: matematica e informatica. Esempio 1: Derandomizzazione di algoritmi Definizione: A= algoritmo randomizzato (usa n random bits indip.) A volte basta indipendenza limitata. Pairwise independence sufficiente  derandomizzazione possibile: Invece di y di n bits random (A corretto  prob scegliere y con successo =p>0) run A per ogni y in S ( A corretto  esiste y con successo) Algoritmo Deterministico A’ running time T(A’)= O(|S|T(A)) vogliamo S piccolo Teroria dei codici  Esiste S dimensione O(n)

Esempio 2: Problema dei cappelli. Tre giocatori: Anna, Beppe e Carlo. Possono, prima della partita, concordare strategia. Inizia il gioco. Sulla testa di ognuno viene messo un cappello, rosso o blu. Il colore è scelto in modo casuale, lanciando una moneta. Ciascuno può vedere il cappello degli altri ma non il proprio. Non possono comunicare in alcun modo. Osservando il colore dei cappelli degli amici, Anna, Beppe e Carlo devono scrivere indipendentemente su di un foglietto: quello che ritengono il colore del loro cappello oppure 'passo'. A, B e C vincono solo se non tutti sono passati e se tutti quelli che hanno indicato un colore lo hanno indicato giusto.

SOLUZIONI E’ possibile garantirsi la vincita con probabilità ½: A e B passano e C scrive a caso rosso o blu. E' possibile vincere con probabilità 3/4: Se vedo due colori diversi passo; se vedo lo stesso colore nei due cappelli scrivo l'altro colore. Otto casi possibili In due casi (1/4 dei casi) i tre cappelli hanno lo stesso colore: tutti e tre i giocatori sbaglieranno. Nei rimanenti 6 casi (3/4 del totale), ci saranno due cappelli dello stesso colore e uno diverso. I giocatori con il cappello dello stesso colore passeranno, vedendo due colori diversi, mentre il terzo risponderà correttamente!

Numero n qualsiasi di giocatori. Ci sono n giocatori, numerati da 1 ad n. I giocatori concordano una strategia, prima dell'inizio del gioco. Sul capo di ciascuno di essi viene messo un cappello rosso o blu. Il colore del cappello è scelto a caso. I giocatori non conoscono il colore del proprio cappello. I giocatori non possono comunicare durante il gioco. I giocatori vedono il colore dei cappelli degli altri. I giocatori consegnano un foglio con 'passo‘ oppure un colore. Se tutti passano, perdono. Se il colore scritto su uno dei fogli non corrisponde al colore del cappello di chi lo ha consegnato, i giocatori perdono. Se tutti i giocatori che non hanno scritto passo, hanno riportato il colore corretto allora i giocatori vincono. Se n=2k-1, esiste strategia con cui si perde in 1 caso su 2k. Strategia: Basata sulla Teoria dei codici per il controllo degli errori

Trasmissione su canali rumorosi: confronto tra Teoria di Hamming e Teoria di Shannon (Visione ad Alto Livello) Obiettivi: Shannon: funzioni di codifica e decodifica. Hamming: codici, distanza minima. Scopo: Shannon: massimizzare il tasso e minimizzare la probabilità di decodifica errata. Hamming: massimizzare il tasso e la distanza minima. Modello d’errore: Shannon: casuale. Hamming: avversariale (caso peggiore). In Pratica: Risultati di Shannon ottimali ma non costruttivi Teoria dei codici: non ottimali ma efficienti e veloci

Codici lineari Alfabeto= A = campo finito (es. {0,…,q-1}, q primo, operazioni mod q) codice è lineare  esiste una matrice di controllo parità H (n-k x n) su Σ tale che C è lo spazio nullo di H, cioè C = {y | HyT = 0} C lineare è un sottospazio lineare di Σn  x, y є C  x + y є C x є C, a є Σ  ax є C. C lineare generato da una matrice G (k x n): righe = insieme massimale di parole codice linearmente indipendenti = base spazio lineare. Codice = {x | x=aG}

Codice di Hamming n=7=23-1 Codice = spazio nullo di H = {x | HxT=0} Numero parole codice = 27-3=24 Codice di Hamming n=2l-1 Codice = spazio nullo di H = {x | HxT=0} Numero parole codice =

Definizione w(x) = peso di Hamming di x = numero componenti di x non nulle w(C)= minx in Cw(x) Lemma Dato codice lineare C w (C)= min numero colonne linearmente dipendenti di H Dim. H ha r colonne l.d. in posizioni i1,…,ir  esistono a1,...,ar tali che  Esiste parola codice di peso r:

Lemma Dato codice lineare C w (C)= min numero colonne linearmente dipendenti di H Per codici di Hamming wmin=3 Tutte colonne non nulle  min num colonne l.d. >1 Tutte colonne diverse  c+c’ non nullo  min num colonne l.d. >2 In H tutti vettori  date c,c’ esiste in H colonna c’’=c+c’  c + c’+ c’ ’=0  min num colonne l.d. è 3

Lemma Dato codice lineare C, w (C) = d(C) Dim. Corollario Un codice lineare C corregge t errori se w (C)= d(C) > 2t+1 CODIFICA/DECODIFICA?

Se si sono avuti >2 errori? CODIFICA/DECODIFICA dei Codici di Hamming D(C)=3  corregge 1 errore Siano c=(c0,…,cn-1)=parola codice, r=(r0,…,rn-1)=sequenza da decodificare c r r=c+e, ei=1 sse errore in posizione i HrT=H(c+e)T=HcT +HeT=HeT 0 errori  r=c e=0  HrT=H0T=0 1 errore posizione i  r=c+(0...010…0)=c+ei  HrT=HeiT=ai DECODIFICA: Calcola sindrome s=HrT se s=0 output r se s=ai output r+ei Se si sono avuti >2 errori?

CODIFICA dei Codici di Hamming INPUT: bit di informazione= blocco di k=2l-l-1 bits Vogliamo codifica sistematica: bit di informazione in primi k bit della p.c. Proprietà Se scegliamo H=[A | In-k] allora G=[Ik | AT] Dim. Dobbiamo mostrare che CODIFICA SISTEMATICA: input a=(a0,…,ak-1) output parola codice c=aG c=(a0,…,ak-1,ck,…,cn-1)

Codici a correzione di errore Applicazioni in vari campi: matematica e informatica. Es.: Complessità: per pseudo-randomness, hardness amplification, probabilistically checkable proofs. Crittografia: schemi di condivisione segreti, sistemi crittografici. Matematica combinatoria e ricreativa.