Lezione 17 Ugo Vaccaro

Documenti analoghi
Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

POLINOMI. (p+q)(x) = p(x)+q(x) (p q)(x) = p(x) q(x) x K

Gruppi, Anelli, Campi

LEZIONE 15. (15.1.2) p(x) = a 0 x n + a 1 x n a n 1 x + a n = a h x n h.

ESERCIZI DI ALGEBRA LINEARE E COMPLEMENTI DI GEOMETRIA

Piccolo teorema di Fermat

4 0 = 4 2 = 4 4 = 4 6 = 0.

0.1 Spazi Euclidei in generale

Calcolo integrale. Regole di integrazione

APPLICAZIONI LINEARI

Corso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni

1) Applicando la definizione di derivata, calcolare la derivata in x = 0 delle funzioni: c) x + 1 d)x sin x.

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

Corso di Calcolo Numerico

Appunti su Indipendenza Lineare di Vettori

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Introduzione alla TEORIA DEI NUMERI

Esercizi di Algebra 2, C.S. in Matematica, a.a

Strutture algebriche. Leggi di composizione. Leggi di composizione. Gruppi Insiemi di numeri Polinomi

LEZIONE Equazioni matriciali. Negli Esempi e si sono studiati più sistemi diversi AX 1 = B 1, AX 2 = R m,n, B = (b i,h ) 1 i m

Lezione 7: Il Teorema di Rouché-Capelli

Università Cattolica del Sacro Cuore. Facoltà di Scienze Matematiche, Fisiche e Naturali

Gli insiemi N, Z e Q. I numeri naturali

Zeri di funzioni e teorema di Sturm

ALGEBRA E GEOMETRIA Esercizi Corso di Laurea in Chimica - anno acc. 2015/2016 docente: Elena Polastri,

Dipendenza e indipendenza lineare (senza il concetto di rango)

Appunti sui polinomi. Pietro Di Martino e Giovanni Gaiffi

Lezione 10: Teorema di Rouchè-Capelli e la classificazione dei sistemi lineari

Anno 4 Matrice inversa

Analisi Matematica 1 e Matematica 1 Geometria Analitica: Rette

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Equazioni, funzioni e algoritmi: il metodo delle secanti

Limiti e continuità. Teoremi sui limiti. Teorema di unicità del limite Teorema di permanenza del segno Teoremi del confronto Algebra dei limiti

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

ANALISI 1 - Teoremi e dimostrazioni vari

Sviluppi e derivate delle funzioni elementari

Capitolo IV SPAZI VETTORIALI EUCLIDEI

4 + 7 = 11. Possiamo quindi dire che:

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

Teorema delle Funzioni Implicite

1 Relazione di congruenza in Z

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Anno 1. Divisione fra polinomi

Geometria BIAR Esercizi 2

Approssimazione di dati e funzioni

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica

Corso di Analisi Numerica

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x.

II Esonero di Matematica Discreta - a.a. 06/07. Versione B

1 Ampliamento del piano e coordinate omogenee

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

LEZIONE 3. Typeset by AMS-TEX

04 - Numeri Complessi

DIFFERENZIAZIONE. Sia f una funzione reale di variabile reale con dominio un intervallo. Se f è derivabile in un punto x 0, allora: f(x) f(x 0 ) lim

SOLUZIONI ESERCIZI DI IGS. b 0 (mod 3) 1 + 2a + b 0 (mod 3)

I numeri sulla Mole Antonelliana.

1 Polinomio di Taylor 1. 2 Formula di Taylor 2. 3 Alcuni sviluppi notevoli 2. 4 Uso della formula di Taylor nel calcolo dei limiti 4

I numeri sulla Mole Antonelliana.

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

Appunti sulle equazioni differenziali lineari a coefficienti costanti del secondo ordine

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

Funzioni derivabili (V. Casarino)

CAPITOLO 6. Polinomi. (f(0), f(1),..., f(n),... ).

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI

Autovalori e autovettori, matrici simmetriche e forme quadratiche (cenni) (prof. M. Salvetti)

= (cioè le due terne di numeri direttori ( devono essere ) proporzionali). Tale uguaglianza non è verificata, poiché risulta ρ

Metodi per la risoluzione di sistemi lineari

1 Il polinomio minimo.

1 Relazioni. Definizione Una relazione R su un insieme A si dice relazione d ordine se gode delle proprietà 1), 3), 4).

Un polinomio è un espressione algebrica data dalla somma di più monomi.

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

a + 2b + c 3d = 0, a + c d = 0 c d

Elementi di Algebra Lineare Spazi Vettoriali

Massimi e minimi relativi in R n

2.6 Calcolo degli equilibri di Nash

Anno 1. Frazioni algebriche: definizione e operazioni fondamentali

1 IL LINGUAGGIO MATEMATICO

X Settimana = 0 R. = 0 R x, x R. + (x 0 R. ) x 0 R = = x 0 R

1 Fattorizzazione di polinomi

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

Università degli Studi di Palermo Facoltà di Economia. Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica

2 non è un numero razionale

Università del Piemonte Orientale

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

Parte 4. Spazi vettoriali

I numeri complessi. Capitolo 7

04 - Logica delle dimostrazioni

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

CORSO ZERO DI MATEMATICA

x 1 Fig.1 Il punto P = P =

Note per la Lezione 4 Ugo Vaccaro

1 Introduzione alle matrici quadrate 2 2 a coefficienti in R.

a) Determinare il dominio, i limiti agli estremi del dominio e gli eventuali asintoti di f. Determinare inoltre gli zeri di f e studiarne il segno.

Alcuni esercizi sulla diagonalizzazione di matrici. campo dei reali. Se lo è calcolare una base spettrale e la relativa forma diagonale di A.

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

Transcript:

Teoria dell Informazione II Anno Accademico 2015 2016 Lezione 17 Ugo Vaccaro Nella Lezione scorsa abbiamo introdotto una classe di codici a correzione di errore (codici di Hamming) in grado di correggere tutte le possibili occorrenze di un errore che potevano capitare durante la trasmissione di parole del codice. In questa lezione introdurremo una generalizzazione dei codici di Hamming e proveremo che essi sono in grado di correggere un numero maggiore di errori. In via preliminare, abbiamo bisogno di ricordare alcune propietà di base dei campi finiti. Innanzitutto, ricordiamo che una struttura algebrica (F,, +) dotata di operazione di addizione e moltiplicazione, è un campo finito se, denotando con 0 l elemento neutro rispetto all addizione, vale che: 1. a, b F vale che a b F; 2. (F \ {0}, ) è un gruppo commutativo; 3. (F, +) è un gruppo commutativo; 4. a, b, c F, (a + b) c = a c + b c. Un classico esempio di campo finito è il campo F p = {0, 1,..., p 1}, dove p è un numero primo, e le operazioni di addizione e moltiplicazione sono le solite operazioni di addizione e moltiplicazioni modulo p. É possibile costruire campi finiti con p m elementi, per ogni primo p e numero naturale m 1. Diamo un idea su come ciò sia possibile. Denotiamo con F 2 il campo con elementi {0, 1}, munito dell operazione di addizione e moltiplicazione modulo 2. Con F 2 m denoteremo il campo composto da tutti i 2 m vettori binari di lunghezza m. L operazione di addizione in F 2 m è la solita operazione di addizione vettoriale, ovverosia se a, b F 2 m, allora a + b = c F 2 m, ed il vettore c ha come i-esima componente la somma (modulo 2) della i-esima componente di a e b. Per definire un opportuna operazione di moltiplicazione in F 2 m, è utile vedere gli elementi (vettori) di F 2 m come polinomi di grado al più m 1. Ovvero, dato il vettore a = (a 0, a 1..., a m 1 ), esso lo vedremo come il polinomio a(x) = a 0 + a 1 x +... + a m 1 x m 1. Un polinomio p(x) di grado > 1 a coefficienti in F 2 è detto polinomio irriducibile su F 2 se esso non è divisibile per nessun altro polinomio di grado > 1 a coefficienti in F 2. Si può vedere che un polinomio irriducibile su F 2 necessariamente divide il polinomio x 2m 1 + 1. Un polinomio p(x) a coefficienti in F 2 è detto polinomio primitivo se esso è un polinomio irriducibile (quindi divide x 2m 1 + 1), e non divide x n + 1 per ogni n < 2 m 1. Polinomi primitivi esistono e sono noti per ogni m. Ad esempio, i seguenti polinomi sono primitivi su F 2 : m = 3, x 3 + x + 1 m = 4, x 4 + x + 1 m = 5, x 5 + x 2 + 1. A questo punto, definiamo la seguente regola di moltiplicazione tra vettori in F 2 m. Fissato un polinomio primitivo p(x) = p m x m +... + p 0, per ogni coppia di dati a, b F 2 m, porremo a b = c se e solo se c(x) = a(x)b(x) mod p(x). (1) Si può vedere facilmente che in questo modo l insieme F 2 m {0} è un gruppo commutativo. Ne segue che F 2 m munito dell operazione di addizione prima definita e della operazione di moltiplicazione (1) è un campo finito. Sia ora p(x) = p 0 + p 1 x +... + p m x m un polinomio primitivo di grado m su F 2, e sia α una radice di p(x). Ogni radice di p(x) viene detta radice primitiva. Poichè per definizione p(x) divide x 2m 1 + 1, otteniamo che x 2m 1 + 1 = q(x)p(x), per qualche polinomio q(x), da cui α 2m 1 + 1 = q(α)p(α) = 0, e quindi α 2m 1 = 1. Ciò che è interessante, è che è possibile provare che le successive potenze 1 = α 0,..., α 2m 2 sono tutti gli elementi di V m (F 2 ), tranne 0, in altri termini α è un generatore del gruppo (moltiplicativo) F 2 m {0}. 1

Vediamo un esempio. Sia m = 3, sia dato il polinomio primitivo x 3 + x + 1 e sia α radice primitiva, per cui α 3 + α + 1 = 0, il che è equivalente a dire che α 3 = α + 1. Il campo F 2 3 ha ovviamente 8 elementi, che possono essere rappresentati come 8 potenze di α, oppure come 8 polinomi su F 2 di grado al più 2, oppure come vettori binari a tre componenti, come mostrato nella tabella di seguito: α i polinomio (grado 2) vettore (a 2, a 1, a 0 ) α 0 = 1 α 0 1 001 α 1 α x 010 α 2 α 2 x 2 100 α 3 α + 1 x + 1 011 α 4 α(α + 1) = α 2 + α x 2 + x 110 α 5 α(α 2 + α) = α 2 + α + 1 x 2 + x + 1 111 α 6 α(α 2 + α + 1) = α 2 + 1 x 2 + 1 101 α 7 α(α 2 + 1) = 1 É inoltre semplice calcolare l inverso di un elemento attraverso la identità α i = α n i, dove n = 2 m 1. Utilizzando una rappresentazione siffatta, possiamo effettuare in maniera semplice le operazioni di addizione e moltiplicazione nel campo F 2 3. Ad esempio, se volessimo effettuare la moltiplicazione dell elemento 111 per l elemento 101, possiamo notare che 111 corrisponde a α 5 mentre 101 corrisponde ad α 6, per cui 111 101 = α 5 α 6 = α 11 = α 7 α 4 = α 4 = 011. Analogamente, se volessimo dividere il vettore 111 per il vettore 101 avremmo 111 101 = α6 α 5 = α6 α 5 = α 6 α 7 5 = α 6 α 2 = α 8 = α = 010. Viceversa, se dovessimo addizionare α 5 con α 6, possiamo passare alla loro rappresentazione vettoriale nell ultima colonna a destra, e agevolmente dedurre che α 5 + α 6 = α. Allo stesso identico modo, se fossimo partiti da un campo F p arbitrario, avremmo potuto costruire un campo con p m elementi. Il fatto interessante è che ogni campo finito F q con q elementi è di questo tipo, ovvero è isomorfo ad un campo di polinomi con p m elementi, per opportuni p primo e m numero naturale. Ritorniamo al problema della costruzione di codici correttori di errore. I codici che studieremo, detti Codici di Reed-Solomon, sono definiti come la valutazione di polinomi di grado limitato su di un campo finito. Sia F un campo finito dato (può essere utile immaginare che esso sia il campo F 2 m, ma non è strettamente necessario). I messaggi sorgente che vogliamo codificare, ad esempio sequenze binarie a {0, 1} l, li possiamo interpretare come coefficienti di un polinomio di un dato grado fissato k 1. Ad esempio, possiamo scrivere a = a 0 a 1..., a k 1, dove ogni sottosequenza a i {0, 1} m, i = 0,..., k 1, ed interpretare ciascuna a i come un elemento del campo F 2 m prima visto. In questo modo, ad ogni sequenza a = a 0 a 1..., a k 1 {0, 1} l possiamo unicamente associare un polinomio f(x) = f 0 + f 1 x + f 2 x 2 +... + f k 1 x k 1 di grado al più k 1, dove f 0 = a 0, f 1 = a 1,..., f k 1 = a k 1. In questo modo, i codici di Reed-Solomon sono ottenuti specificando il campo F, l intero k, ed n < F punti α 1,..., α n F, e le sue parole sono k 1 C = {(f(α 1 ), f(α 2 ),..., f(α n )) : f(x) = f i x i, f 0,..., f k 1 F}. Denotiamo questa famiglia di codici, in generale, come RS F (n, k). Un caso particolare molto importante si ottiene quando n = F e valutiamo quindi i polinomi f(x) su tutti gli elementi del campo F. Possiamo notare 2

una similarità con lo schema di condivisione di chiavi segrete di Shamir. In tal caso, la chiave segreta veniva assegnata al coefficiente di grado zero del polinomio f(x). Qui, invece, la sequenza sorgente (f 0 f 1... f k 1 ) viene innanzitutto codificata nel polinomio f(x) = f 0 + f 1 x +... + f k 1 x k 1, indi codificata nella sequenza c = (f(α 1 ), f(α 2 ),..., f(α n )) di tutte le valutazioni f(x). Di conseguenza, ogni componente/simbolo della parola codice c è un elemento del campo F 2 m e quindi, dal punto di vista pratico, è da considerarsi come una sequenza binaria lunga m. Nel caso non binario, ovvero nel caso in cui il campo in questione è F = F p m, per dati interi p (primo) e m 1, ogni componente/simbolo di una parola codice di RS F (n, k) è un elemento del campo F p m e quindi deve essere considerato esso stesso come una sequenza lunga m sull alfabeto {0, 1,..., p 1}. Osserviamo innanzitutto che il codice RS F (n, k) è un codice lineare. Dalla definizione, ciò equivale a provare che ogni combinazione lineare di parole codice in RS F (n, k) appartiene ancora a RS F (n, k). Siano a tale scopo c = (c 1,..., c n ), d = (d 1,..., d n ) arbitrarie parole in RS F (n, k). Proviamo che per ogni α, β F vale che αc + βd = ((αc 1 + βd 1 ),..., (αc n + βd n )) = (a 1,..., a n ) RS F (n, k). Dalla definizione, esistono polinomi f(x) = k 1 f ix i e g(x) = k 1 g ix i tali che c 1 = f(α 1 ),..., c n = f(α n ) e d 1 = g(α 1 ),..., d n = g(α n ), per cui a 1 = h(α 1 ),..., a n = h(α n ), dove h(x) è il polinomio h(x) = αf(x) + βg(x) di grado k 1. Di conseguenza, per definizione si ha che (a 1,..., a n ) RS F (n, k). Vale il seguente Lemma 1 La distanza minima di RS F (n, k) è pari a d = n k + 1. Dimostrazione. Proviamo innanzitutto che d n k + 1. Essendo RS F (n, k) un codice lineare, basterà provare che il peso minimo di RS F (n, k) è n k + 1. Ovvero, basterà provare che per ogni polinomio f(x) di grado k 1 vale che {x F : f(x) = 0} k 1, da cui {i : f(α i ) 0} n k + 1. Ciò di fatto discende dal Teorema Fondamentale dell algebra, che implica che ogni polinomio f di grado al più r, non identicamente nullo, ha al più r radici. Ne diamo qui una prova per induzione su r. Se r = 0 allora il polinomio f è una costante diversa da zero, per cui ha zero radici. Assumiamo pertanto r 1. Sia α F tale che f(α) = 0. Definiamo g(x) = f(x + α), per cui g(0) = 0 e g(x) è ancora un polinomio di grado al più r. Scriviamo r r g(x) = f i (x + α) i = g i x i. Poichè vale che g 0 = g(0) = 0, otteniamo che g(x) = xh(x), dove h(x) = r 1 g i+1x i è un polinomio di grado r 1. Pertanto f(x) = g(x α) = (x α)h(x α). Per ipotesi induttiva, il polinomio h(x α) ha al più r 1 radici, e quindi f ha al più r radici. Per provare che il peso minimo di RS F (n, k) è pari esattamente a n k+1 basterà ora esibire una parola codice che ha esattamente tale numero di componenti diverse da zero. Si vede immediatamente che ogni parola codice del tipo (f(α 1 ), f(α 2 ),..., f(α n )), ottenuta in corrispondenza del polinomio f(x) = (x α i1 )(x α i2 ) (x α ik 1 ), dove α i1,..., α ik 1 sono k 1 arbitrari elementi di F, ha appunto esattamente n k + 1 componenti diverse da zero. In virtù dei risultati visti nella lezione scorsa sappiamo che il codice RS F (n, k) permette, in linea di principio, la correzione di e errori, dove e (n k)/2. Nel resto della lezione vedremo un algoritmo efficiente per la correzione di un tale numero di errori. Innanzitutto, però, notiamo un interessante caratteristica dei codici RS F (n, k). Ovviamente, RS F (n, k) = F k = F n d+1. D altra parte, nella lezione scorsa abbiamo dimostrato che ogni codice C {0, 1,... q 1} n, con distanza minima d, non può avere più di q n d+1 parole codice. Ne 3

consegue che i codici RS F (n, k), per i parametri per cui essi esistono, hanno il massimo mumero di parole codice. Equivalentemente, fissato i parametri n e k, i codici RS F (n, k) sono quelli che correggono il maggior numero di errori per tali parametri. Vediamo ora come progettare un algoritmo efficiente per la correzione di eventuali e (n k)/2 errori occorsi. Sia f(x) = r f ix i un polinomio incognito di grado al più k 1. Conosciamo la sua valutazione sui punti α 1,..., α n ma e di queste valutazioni sono errate. In altri termini, conosciamo valori y 1,..., y n F, tali che y i f(α i ) per al più e errori. Se sapessimo quali sono i valori y i errati, potremmo ignorarli ed attraverso l interpolazione solo sui valori corretti ricostruire il polinomio f(x) (e quindi la relativa parola codice). Purtroppo, noi non conosciamo i valori errati. Definiamo il polinomio E(x) nel seguente modo: E(x) = i:y i f(α i) (x α i ). Ovviamente, non essendo noti i valori y i errati, cioè quelli diversi dai f(α i ), non è noto nenanche il polinomio E(x). Ciononostante, possiamo utilizzarlo nell analisi. Chiaramente, esso soddisfa le seguenti proprietà (ovvero, equazioni che i coefficienti di E e f devono soddisfare): E(α i )(f(α i ) y i ) = 0 1 i n. Sia N(x) = E(x)f(x). Notiamo che grado(e) = e e grado N(x) = grado(e) + grado(f) e + k 1. Sulla base delle precedenti osservazioni, abbiamo di fatto il seguente risultato, che formalizziamo esplicitamente per future referenze. Lemma 2 Esistono polinomi E(x) e N(x), di grado e e di grado e k + 1, rispettivamente, tali che per ogni 1 i n. N(α i ) y i E(α i ) = 0 L idea che sfrutteremo è che possiamo trovare polinomi siffatti risolvendo un sistema di equazioni. Lemma 3 Possiamo trovare polinomi E (x), N (x), di grado pari al più ad e e di grado pari al più a e + k 1, non entrambi zero, tali che N (α i ) y i E (α i ) = 0 per ogni 1 i n. Dimostrazione. Siano E (x) = e a j x j, N (x) = dove a j e b j sono coefficienti incogniti. Tali coefficienti ovviamente soddisfano il seguente sistema di equazioni lineari: e+k 1 e b j (α i ) j y i a j (α i ) j = 0 1 i n. Sappiamo che un tale sistema ammette almeno una soluzione (ciò dal Lemma 2), che ovviamente possiamo trovare mediante i metodi dell algebra lineare. Ovviamente, non abbiamo alcuna garanzia che i polinomi E (x) e N (x) che troveremo saranno uguali ai polinomi E(x) e N(x) cui siamo interessati. Tuttavia, il seguente risultato ci dice che possiamo recuperare il polinomio f da ogni coppia E (x) ed N (x) che possiamo aver trovato. e+k 1 b j x j, 4

Lemma 4 Sotto l ipotesi che il numero di errori occorso e sia tale che e (n k)/2, si ha che f(x) = N (x) E (x). Dimostrazione. Consideriamo il polinomio R(x) = N (x) E (x)f(x). Notiamo che per ogni i tale che f(α i ) = y i (ovvero per tutti le componenti i-esime della parola codice su cui non è occorso alcun errore, ed esse sono in numero di n e), abbiamo che R(α i ) = N (α i ) E (α i )f(α i ) = N (α i ) E (α i )y i = 0. Ciò dal Lemma 3. Ne segue che il polinomio R(x) ha almeno n e zeri. D altra parte, il grado di R(x) è al più pari a max(grado(n ), grado(e ) + grado(f)) e + k 1. Sotto la nostra ipotesi che e (n k)/2 abbiamo che n e > e + k 1. Ovvero, il polinomio R(x) ha più zeri del suo grado, quindi R(x) deve essere necessariamente il polinomio zero, e quindi N (x) = E (x)f(x). In conclusione, potendo dedurre il polinomio f(x) dai polinomi N (x) e E (x), possiamo calcolarci la parola codice originale (f(α 1 ), f(α 2 ),..., f(α n )). 5