Registro delle lezioni Matematica Discreta, F. Battaglia,
Anno Accademico 2013-14
Indico con s.d. i risultati enunciati senza dimostrazione.
- 23.09.12 (ore 2).
Introduzione al corso: informazioni pratiche, programma, motivazioni, collegamenti, testi di riferimento.
Introduzione al sistema crittografico RSA--
sistema di crittografia a chiave pubblica--per la
trasmissione di dati.
Essenzialmente le chiavi pubbliche sono un numero naturale N
(prodotto di due numeri primi molto grandi) e un numero naturale
e scelto opportunamente;
la chiave privata e' un altro numero d, segreto,
che si utilizza per la decrittazione.
Per iniziare a curiosare:
algoritmo RSA
e anche
elliptic curve cryptography;
elementary theory and practice of elliptic curves cryptography,
the new generation of public key systems.
Vedere anche la sezione 4.1 qui
At risk - Public key encryption.
Teoria dei codici: si spiega, attraverso alcuni esempi banali, di cosa si occupa la teoria dei codici autocorrettivi e
cosa significa autocorrettivo. Distanza di Hamming ed esempi di decodifica a minima distanza. Come aumentare l'efficienza
di correzione a scapito della velocita' di trasmissione (ridondanza dei dati).
- 26.09.12 (ore 3).
Numeri naturali, numeri interi, definizione di gruppo, gruppo commutativo, anello, anello commutativo, campo.
Esempi, tra cui F2.
Divisione con resto (teorema s.d.). Definizione di divisore.
Congruenze: definizione di congruenza modulo un intero positivo d. La congruenza e' una relazione di equivalenza.
Ogni numero e' congruo, modulo d, al suo resto quando viene diviso per d. Due numeri sono congrui tra loro modulo d
se e solo se hanno lo stesso resto quando vengono divisi per d. La congruenza conserva somma e prodotto.
L'insieme delle classi di resto modulo d e' un anello commutativo con d elementi.
Esempi e relative tabelle additive e moltiplicative.
L'importante identita' [xy]d=[[x]d[y]d]d con x,y numeri interi.
Su questa si basa l'algoritmo dei quadrati ripetuti per calcolare il resto con dividendi molto grandi.
Esempio svolto: calcolo del resto della divisione di 1211 per 21.
Sia div(n) l'insieme dei divisori di un intero n. Nota che div(0)={0,1,2,3,...}=N
Lemma (Euclide): Siano m,n in Z. Allora esiste unico d in N tale che div(m) intersecato div(n) e' uguale a div(d).
Dimostrazione unicita'.
- 30.09.2013 (ore 2)
Massimo comun divisore: esistenza e unicita'
(Lemma di Euclide (Euclide (300 a.C.))).
Algoritmo Euclideo (Euclide (300 a.C.)) per
determinare il massimo comun divisore, gcd(m,n),
tra due interi m e n.
Algoritmo Euclideo esteso per determinare interi
x e y tali che
xm+yn=gcd(m,n).
Definizione: m e n sono primi tra loro se gcd(m,n)=1.
- 03.10.2013 (ore 3).
Proposizione: m e n sono primi tra loro se e solo se
esistono x e y tali che
xm+yn=1.
Proposizione:
Se a divide bc e a e b sono primi tra loro, allora a divide c.
Proposizioni:
Se gcd(a,b)=1, a divide c e b divide c, allora ab divide c;
Se gcd(a,b)=1 e gcd(a,c)=1 allora gcd(a,bc)=1.
Teorema cinese del resto:
l'applicazione resto r da Z/NZ a Z/n1Z x ... Z/nrZ, con
n=n1...nr e gcd(ni,nj)=1 è biunivoca (è
infatti un isomorfismo di anelli (dimostrata solo la biunivocita').
Dimostrazione del teorema cinese del resto
mediante algoritmo esplicito per determinare una soluzione, basato sull'algoritmo euclideo esteso.
Esempio di applicazione del teorema cinese del resto: caso semplice del Shamir secret sharing.
Per iniziare a curiosare:
Secret sharing.
Definizione della funzione φ di Eulero (1707-1783) sui naturali.
- 07.10.2013 (ore 2).
Proposizione: Se n e m sono primi tra loro, allora φ(mn)=φ(m)φ(n).
(Z/nZ)* e' un gruppo, il gruppo degli
invertibili dell'anello Z/nZ.
Z/nZ e' un campo se e solo se n e' primo.
Teorema di Eulero: siano a,n interi primi tra loro, n naturale. Allora aφ(n)≡ 1(mod n).
Algoritmo RSA in dettaglio.
- 10.10.2013 (ore 3)
Algoritmo RSA in dettaglio (continuazione).
Numeri primi:
definizione; crivello di Eratostene; Lemma: ogni naturale non nullo e' prodotto di primi; Teorema (Euclide): ci sono
infiniti numeri primi; Lemma: se un primo p divide il prodotto di due interi ab, allora o p divide a oppure o divide b. Teorema: ogni naturale non nullo si scompone univocamente (a meno dell'ordine) nel prodotto di numeri primi; massimo comun divisore e minimo comune multiplo a partire dalla scomposizione in fattori primi; il calcolo della funzione di Eulero nota la scomposizione in fattori primi di un naturale.
Introduzione alla teoria della complessita' computazionale: definizione grossolana di algoritmo, algoritmi polinomiali.
Diciamo che un problema e' facile (feasible) se e solo se ammette un algoritmo polinomiale
(The Cobham-Edmond thesis (1964-65)).
Diciamo che un problema
e' non trattabile (intractable) se NON ammette un algoritmo polinomiale. Differenza qualitativa tra algoritmi polinomiali ed esponenziali.
Esempio di problema decisionale: determinare se un grafo ammette un circuito Euleriano.
Tra il materiale utilizzato per l'introduzione alla teoria della complessita' :
Conferenza di Vijaya Ramachandran: P vs NP problem, tenuta
al Clay Mathematics Institute e i capitoli 17 e 18
del libro A walk through combinatorics, Miklos Bona, sia la seconda che la terza edizione contengono i
capitoli sulla teoria della complessita'.
Per la teoria dei grafi vedere, ad esempio:
Corso di teoria dei grafi, Carlo Casolo e il libro di Bona succitato.
Per iniziare a curiosare:
The largest known primes;
Great internet Mersenne (1588-1648) prime search;
a brief survey of integer factorization algorithms;
Peter Shor,
Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer (1995)
;
M. Agrawal, N. Kayal, N. Saxena, Primes is in P, Annals of Mathematics,
160 (2004) 781-793: We present an unconditional deterministic polynomial-time algorithm that determines whether an input number is prime or composite.
Un articolo molto bello sul risultato precedente, di A. Graville, sul Bull. of AMS.
Un survey interessante
Numbers at work and Play, IE Shparlinski pubblicato nel volume
AMS Notices,
Febuary 2010 Volume 57 Issue 03 tutto dedicato alla crittografia.
Ancora sull'algoritmo di Shor:
The Mathematics Behind Quantum Computing: Part I
Part II
;
The discovery of the Pentium division flaw, from
Thomas Nicely home page;
Randomness and pseudorandomnes, di Avi Wigderson, scarica il file Summer 2009 da
qui
- 14.10.2013 (ore 2)
Definizione di problema decisionale. Il problema del circuito di Eulero e' decisionale.
Enunciato del teorema di Eulero: un grafo connesso ha un circuito Euleriano se e solo se tutti i suoi nodi hanno grado
pari. Questo ci permette di affermare che esiste un algoritmo che esegue in tempo polinomiale (infatti O(n))
che risolve il problema del circuito di Eulero. Altri esempi di problemi decisionali (rimetto nella lista anche
quello del circuito Euleriano):
CE: problema del circuito Euleriano
Pr: un numero intero assegnato e' primo?
SAT: problema di soddisfacibilita' di formule booleane "and of or's" (forma normale congiuntiva (CNF))
HC: problema del circuito Hamiltoniano;
TSP: problema del commesso viaggiatore (circuito Hamiltoniano con peso minore di un peso assegnato.
Cenno alla macchina di Turing per misurare l'efficienza di un algoritmo. Un passo e' un movimento della testina, il tempo di esecuzione e' il numero di passi.
Un linguaggio L e' l'insieme di tutti gli oggetti per cui la risposta a un dato problema e' SI'. Con riferimento ai problemi succitati avremo: LCE, LPr, LSAT, LHC, LTSP.
Una macchina di Turing T accetta il linguaggio L se dato un input x, T si ferma nello stato SI' se x e' in L e T si ferma
nello stato NO se x NON e' in L.
Classe di complessita' P (polinomiale): Un linguaggio L e' in P se esistono una macchina di Turing T e un intero
positivo k tali che T accetta L in O(nk) passi, dove n e' la taglia nell'input.
Ossia l'appartenenza a L puo' essere testata da un algoritmo che esegue in tempo polinomiale.
Per la classe NP diamo la seguente definizione, che NON utilizza la macchina di Turing non deterministica, con la quale
si puo' dare una definizione equivalente ed alternativa a quella che segue e da cui deriva la denominazione della
classe.
Classe di complessita' NP (non deterministic polynomial time verification algorithm): Un linguaggio L e' in NP
se esistono una macchina di Turing T e un intero positivo k tali che:
--per ogni x in L esiste un testimone (detto anche certificato) W(x) tale che, quando a T viene fornito l'input
(x,T(x)), T riconosce che x e' in L in O(nk) passi.
--per ogni x non in L tale testimone non esiste. Ossia comunque si prenda W'(x), l'input (x,W'(x)) non determinera'
la falsa risposta x in L.
Tutti i linguaggi citati sono in NP. Per ognuno forniamo il certificato, in particolare per LPr,
la cui appartenenza a NP risale al '75 (certificato di Pratt).
I linguaggi LCE e LPr sono anche in P (per
LPr in P vedi articolo del 2004, citato nella lezione precedente)
Quindi brevemente NP e' la classe dei linguaggi per cui, per ogni input nel linguaggio, la prova di appartenenza
puo' essere verificata in tempo polinomiale.
Classe di complessita' coNP: Un linguaggio L e' in coNP
se esistono una macchina di Turing T e un intero positivo k tali che:
--per ogni x non in L esiste un testimone (detto anche certificato) W(x) tale che, quando a T viene fornito l'input
(x,T(x)), T riconosce che x e' non in L in O(nk) passi.
--per ogni x in L tale testimone non esiste. Ossia comunque si prenda W'(x), l'input (x,W'(x)) non determinera'
la falsa risposta x non in L.
Si prenda ad esempio il linguaggio LPr: e' banale mostrare che e' nella classe coNP--il certificato W(n)
di un naturale n non in LPr e' un divisore di n-- mentre non e' affatto banale
mostrare che e' nella classe NP.
P e' contenuto nell'intersezione di NP e coNP.
Il problema P vs NP. Un linguaggio L' e' riducibile a L se ogni input per L' puo' essere trasformato da una
macchina di Turing deterministica, in tempo polinomiale, in un input per L (scriviamo L'≤pL).
Esempio: LHC≤pLTSP.
Un linguaggio L si dice NP-completo se:
-- L e' in NP
-- ogni linguaggio L' in NP e' riducibile a L in tempo polinomiale
Teorema (Cook, 1961): SAT e' NP completo. Proposizione: Se L e' NP completo e L≤pL', allora
L' e' NP completo. Ad ora si conoscono migliaia di linguaggii NP completi.
Fatto: P=NP se e solo se un linguaggio completo e' in P (segue dalla definizione di NP completezza).
Ulteriore bibliografia:
--
Notes on Complexity Theory, Jonathan Katz (2011)
-- Il problema P vs NP, pagina del Clay Mathematics Institute
--S. Cook, The complexity of theorem proving procedures, Proceedings of the Third Annual ACM
Symposium on Theory of Computing, (1971) pp. 151-158.
--L. Levin, Universal search problems (in russo),
Problems of Information Transmission, 9 (3):
(1973) 115-116, translated into English by Trakhtenbrot, B. A. A survey of Russian approaches to perebor
(brute-force searches) algorithms, Annals of the History of Computing 6 (4) (1984).
- 17.10.2013 (ore 3)
Struttura della macchina di Turing. Campi finiti: l'anello delle classi di resto modulo un naturale n e' un campo
se e solo se n e' primo. Esempio: costruzione del campo dei numeri complessi C come campo quoziente dell'anello dei
polinomi a coefficienti in R, modulo l'ideale generato dal polinomio irriducibile x2+1. Tale esempio fornisce
una motivazione per lo studio dei polinomi.
L'anello dei polinomi, A[x], nell'indeterminata x a coefficienti in un anello A.
Grado di un polinomio. Sia d un polinomio a coefficienti in un campo K.
Dato f in K[x] esistono unici q e r in K[x] tali che f=qd+r, con deg(r)< deg(d) o r=0.
Siano f,g sono in K[x], allora
deg(fg)=def(f)+deg(g). Gli elementi invertibili di K[x] sono tutti e soli i polinomi costanti non nulli.
Definizione di radice di un polinomio. Denotiamo con V(p) l'insieme delle radici del polinomio p. Un elemento a in
K e' una radice del polinomio p se e solo se (x-a) divide p. Definizione di molteplicita', νa(p)
di una radice a del polinomio p. Si ha
V(fg)=V(f)UV(g). Teorema: Sia F in
K[x]. Se V(f)={a1,...,ar} allora
f=q(x-a1)νa1(p)...(x-ar)νar(p), con q in K[x] e V(q) vuoto.
Inoltre νa1+...+νar≤deg(f).
Derivata di un polinomio e sue proprietà .
Lemma: Siano f,g due polinomi in K[x]. Se f2
divide g, allora f divide Dg;
l'elemento a in K e' una radice del polinomio f con molteplicità maggiore
di 1 se e solo se e' una radice di f e di Df.
- 21.10.2013 (2 ore)
Radici di 1 in C: definizione, radici n-esime primitive di 1 in C (caratterizzazione e proprieta'). Polinomi
ciclotomici: definizione, esempi e proprieta'.
- 24.10.2013 (3 ore)
Definizione di sottogruppo H di un gruppo G; definizione di classe laterale sinistra; G/H=insieme delle classi
laterali sinistre (se H e' normale, in particolare se G e' commutativo, G/H e' un gruppo). Prop: sia H un sottogruppo
di un gruppo finito G, allora la cardinalita' di H divide la cardinalita' di G. Definizione di potenza intera di un
elemento g in un gruppo G. Definizione di ordine di un elemento di G: ord(g). Sia G finito, allora ord(g)
divide cardinalita' di G per ogni g in G. Sia g in G di ordine finito e sia r un intero tale che
gr=1, allora ord(g) divide r. Sia A un anello e sia I un ideale di A. Allora A/I e' un anello.
Z e' un anello a ideali principali. L'esempio di Z/(n)=Z/nZ, anello delle classi di resto modulo n.
Sia f: A ---> B un omomorfismo di anelli. Allora Ker(f) e' un ideale di A e l'applicazione naturale da
A/Ker(f) in B indotta da f e' un omomorfismo iniettivo.
Caratteristica di un campo. Radici n-esime primitive di 1 in un campo K. Criterio per determinare se
un elemento a di K e' una radice n-esima primitiva utilizzando i polinomi ciclotomici.
- 28.10.2013 (2 ore)
Definizione di gruppo ciclico. Esempi. Teorema di Gauss: sia G un sottogruppo FINITO del gruppo moltiplicativo di un
campo, allora G e' ciclico.
Si considera l'anello Fp[x]/(f), con f in Fp[x]. Esempi. Cardinalita' di Fp[x]/(f).
Definizione di polinomio irriducibile.
Prop. L'anello Fp[x]/(f) e' un campo se e solo se f e' un polinomio irriducibile.
Si osserva che il campo Fp[x]/(f) ha caratteristica p.
- 31.10.2013 (3 ore)
Lezione seminariale tenuta da Guido Cocchi, attualmente studente del secondo anno del corso di Laura Magistrale
in Ingegneria Informatica (presente la docente):
il problema del logaritmo discreto, l'algoritmo Diffie-Hellman, l'algoritmo di Shanks.
Sia A un anello commutativo e I un ideale di A, il quoziente A/I e' un campo se e solo se I e' un ideale massimale.
Un polinomio irriducibile in K[x] non ha radici in K, un polinomio di grado due o tre senza radici in K e' irriducibile
in K[x]. Lemma: Sia F un campo finito. Allora esistono un naturale p, primo, e un polinomio irriducibile f in Fp[x], tali che Fp[x]/(f) e' isomorfo a F. Corollario: un campo finito F ha cardinalita' uguale alla potenza di un primo.
Teorema di esistenza e unicita': Siano P un primo e n un naturale, n>0.
a) Allora esiste un polinomio irriducibile
f in Fp[x] di grado n (si ottiene quindi il campo Fp[x]/(f) di cardinalita' pn).
b) Siano F e F' due campi con la stessa cardinalita' finita, allora F e F' sono isomorfi.
Per dimostrare a) dimostriamo: Teorema: Sia p un primo e sia f un fattore irriducibile di Phipn-1
in Fp[x], allora f ha grado n.
- 04.11.2013 (2 ore)
Completamento della dimostrazione del Teorema di esistenza e unicita'.
Teorema: Il polinomio Xpn-1-X in Fp[x] e' il prodotto
di tutti e soli i polinomi monici irriducibili di Fp di grado d,
con di compreso tra 0 e n e d che divide n. Inoltre ogni fattore ha molteplicita' 1.
Corollario: Sia Nd il numero dei polinomi monici irriducibili di grado d
in Fp, allora pn=&sumd | nd Nd.
Da cui la formula diretta per
Nn scritta utilizzando la funzione di Moebius (vedere ad esempio in
questo file l'esempio numero 3).
Caso particolare della formula nel caso in cui n sia primo.
- 07.11.2013 (3 ore)
Dimostrazione del teorema enunciato la lezione precedente.
Definizione della mappa di Frobenius (1849-1917) dall'anello
Fp[x]/< f > in se. Fp[x]/< f > e' uno spazio vettoriale su
Fp di dimensione uguale al grado di f. La mappa di
Frobenius e' un omomorfismo di anelli e una applicazione lineare.
Teorema: Un polinomio f e' irriducibile se e solo se Ker(F)=0 e Ker(F-I)=
Fp.
Prima parte della dimostrazione: f irriducibile implica Ker(F)=0 e Ker(F-I)=Fp.
La dimostrazione da' un algoritmo per la fattorizzazione di polinomi
(algoritmo di
Berlekamp). Esempio di applicazione dell'algoritmo.
Esempio di applicazione dell'algoritmo di Berlekamp.
Seconda parte della dimostrazione: Ker(F)=0 e Ker(F-I)=Fp implica f irriducibile.
- 11.11.2013 (2 ore)
Teoria dei codici, definizioni preliminari: alfabeto di taglia/cardinalita' q, parola q-aria, codice q-ario di lunghezza n,
taglia o cardinalita' M di un codice, codici di tipo (n,M)q, information rate di un codice.
Canale di comunicazione: dato da un alfabeto (diamo la definzione con lo stesso alfabeto in entrata e in uscita)
e da una matrice di probabilita' di trasmissione in avanti. Canale senza memoria. Canale simmetrico. Canale fortemente
simmetrico. BSC=binary simmetric channel. Criterio di decodifica a massima probabilita' (MPD). Criterio di decodifica
a massima probabilita' incompleto (IMPD). Criterio di decodifica a massima probabilita' completo (CMPD). Esempio
con BSC. Distanza di Hamming, definizione e proprieta'. Criterio di decodifica a minima distanza (DMD).
Il procedimento di decodifica a minima distanza e' detto anche
nearest neighbour decoding.
Proposizione:
Per un canale senza memoria e fortemente simmetrico le decodifiche a massima probabilita' e minima distanza coincidono.
Per curiosare:
"probably no single work in this century has more profoundly altered man's understanding of communication than Shannon's
1948 paper A mathemathical theory of communication" (David Slepian (editor) in Key papers in the Development of Information Theory, IEEE Press, NY, 1974).
- 14.11.2013 (3 ore)
Distanza di Hamming di un codice. Distanza d(x,C) di una parola w in An da un codice C.
Definizione di sfera aperta e chiusa di centro x e raggio s, denotate (in questo registro) rispettivamente con Bs(x) e Bs(x).
Un codice C segnala al piu' s errori in DMD se per ogni x in C
Bs(x)∩C={x}.
Un codice C corregge al piu' s errori in DMD
se per ogni w in An tale che d(w,C)≤s esiste un'unica parola x in C tale che w appartiene
a Bs(x).
Lemma: Sia C un codice in Anq. Allora d(C)≥2s+1 se e solo se
Bs(x)∩Bs(y)=∅ per ogni x e y in C, x diverso da y.
Proposizione:(i) un codice C segnala al piu' s errori se e solo se d(C)≥s+1; (ii)
un codice C corregge al piu' s errori se e solo se d(C)≥2s+1
Un codice C si dice di tipo (n,M,d)q se C e' contenuto in An, la cardinalita' di A, |A|, e' q,
la cardinalita' di C, |C|, e' M e d=d(C). La capacita' di rilevare/correggere errori con la decodifica a minima distanza
dipende dal parametro d, precisamente:un codice (n,M,d)q rileva al piu' d-1 errori e corregge al piu'
[(d-1)/2] errori (il numero [(d-1)/2] indica la parte intera inferiore di (d-1)/2). Denotiamo con e=[(d-1)/2].
Teorema di Hamming (limitazione superiore per M in funzione di n, q ed e).
Lemma: formula per il numero di parole di
An contenute in una palla chiusa di raggio r. Definizione di codice perfetto. Esercizio: dimostrare
che se (n,M,d)q e' perfetto allora d e' dispari.
Codici lineari: definizione. Esempi. Prodotto scalare in Fqn.
Ortogonale di un codice lineare. La somma delle dimensioni di C e del suo ortogonale e' n. L'ortogonale dell'ortogonale di
C e' C. Definizione di matrice generatrice G e matrice di controllo di parita' H di un codice lineare.
Caratterizzazione di un codice e del suo ortogonale a partire rispettivamente dalla matrice di controllo di parita' e
dalla matrice generatrice.
- 18.11.2013 (2 ore)
Peso di Hamming di un elemento in Fqn. Peso di Hamming di un codice lineare. Dato C codice lineare
per e distanza di C sono uguali. Proposizione: sia C un codice lineare in Fqn di dimensione k.
Sia H una matrice di controllo di parita' di C. Allora:
(i) d(C)≥l se e solo se non ci sono l-1 colonne di H linearmente dipendenti
(ii) d(C)≤l se e solo se esistono l colonne di H linearmente dipendenti.
(iii) d(C)=l se e solo se non ci sono l-1 colonne di H linearmente dipendenti
ed esistono l colonne di H linearmente dipendenti.
Esempi di operazioni sulla matrice generatrice di un codice. Definizione di matrice generatrice in forma standard.
Definizione di matrice di controllo di parita' in forma standard.
- 21.11.2013 (3 ore)
Definizione: una applicazione lineare f da Fqn in se' conserva la distanza di Hamming se
per ogni coppia di elementi x,y in Fqn si ha d(f(x),f(y))=d(x,y) (equivalentemente: se per ogni x
in Fqn si ha wt(f(x)=wt(x)). Osservazione: ogni applicazione lineare da Fqn in se'che conserva la distanza di Hamming e' un isomorfismo.
Chiamiamo un isomorfismo che conserva la distanza Hamming un'isometria.
Definizione del gruppo delle permutazioni generalizzate, GP(n,Fq): e' il sottogruppo del gruppo degli
isomorfismi, GL(n,Fq), di Fqn, generato dalle permutazioni e dagli
isomorfismi del tipo diag(l1,...,ln). Proposizione: GP(n,Fq) coincide con
il sottogruppo degli isomorfismi di Fqn che conservano la distanza di Hamming (isometrie).
Definizione: due codici lineari C e C' in Fqn si dicono equivalenti se esiste
f: Fqn ---> Fqn in GP(n,Fq) tale che
f(C)=C'.
Teorema (Florence MacWlliams) Siano C e C' due
codici linearin in Fqn, se C e C' sono isometrici, ossia, se esiste f:C--->C'
isomorfismo che conserva la distanza, allora C e C' sono equivalenti, ossia f estende a un'isometria
di Fqn. S.D. Per una dimostrazione vedi
qui, il pdf e' disponibile.
Proposizione: due codici equivalenti hanno lo stesso peso e la stessa distanza.
Osservazione: sia G la matrice generatrice di un codice C, le seguenti operazioni sulle righe di G producono una nuova
matrice generatrice di C: scambiare due righe tra loro, moltiplicare una riga per uno scalare diverso da zero,
sostituire una riga con la riga stessa sommata a una combinazione lineare delle altre. Le seguenti operazioni
sulle colonne producono una matrice, che definisce, come matrice generatrice, un codice C' equivalente a C.
Teorema: ogni codice lineare C e' equivalente a un codice C' che ha una matrice generatrice in forma standard.
Dim: applicare la riduzione di Gauss e l'osservazione precedente. Proposizione: Sia G=(Ik|X)
matrice generatrice di un codice C in forma standard, allora la matrice H=(-Xt|In-k)
e' una matrice di controllo di parita' per C. Processo di codifica per un codice lineare.
Message digits, check digits. Processo di decodifica a minima distanza (DMD) per un codice lineare.
Sia C un codice lineare in
Fqn di dimensione k. Si considera lo spazio vettoriale quoziente Fqn/C.
Tale spazio ha dimensione n-k e ha qn-k elementi, ognuno di questi e', come sappiamo, una
classe laterale (coset). Osservazione importante: nella decodifica a minima distanza di una parola ricevuta w con una
parola x in C, la parola w-x e' una parola della classe di w. Poiche' d(w,x)=wt(w-x), la parola w-x e' una parola
nella classe di w di peso minimo. Siamo quindi interessati a individuare, in ogni classe, le parole di peso minimo.
In ogni classe scegliamo una parola di peso minimo, questa e' per definizione il coset leader della classe.
La tabella standard (standard array) e' costituita in questo modo: la prima colonna, ai1,
di qn-k elementi, da' la lista dei coset leader, con a11=0.
Per ogni coset leader la riga corrispondente da' la lista degli elementi della classe, ossia fissato i,
per ogni j, aij=a1j+ai1.
Si segnalano con un asterisco le classi che hanno piu' di un elemento minimo.
Il procedimento di decododifica a minima distanza e' il seguente: ricevo w.
Controllo la tabella e individuo il capoclasse err(w)
corrispondente a w. Decodifico con x=w-err(w), che e' la prima parola della colonna di w.
Se w appartiene a una riga asteriscata o richiedo la trasmissione (decodifica incompleta) e procedo come sopra
(decodifica completa).
Decodifica a sindrome. Sia C un codice lineare [n,k,d]q, con matrice generatrice G e matrice di controllo
di parita' H. Definiamo l'applicazione lineare SH:Fqn--->Fqn-k
come SH(w)=wHt. L'elemento SH(w) si dice sindrome di w.
L'applicazione lineare SH e' suriettiva, il suo nucleo e' C.
Proposizione: L'applicazione SH induce un'isomorfismo da Fqn/C in Fqn-k. Dim: immediata utilizzando quanto fatto in precedenza.
Costruiamo una tavola detta syndrome look-up table nel modo seguente:
la prima colonna coincide con la prima colonna dello standard array, da' quindi una lista di coset leader, con primo
elemento 0. La seconda colonna associa ad ogni coset leader u la sua sindrome SH(u). Anche qui
indichiamo con asterisco le righe (classi) in cui non c'e' un'unica parola di peso minimo.
Miglioriamo questa tabella. Proposizione: l'applicazione SH e' iniettiva su Be(0), dove
e e' come al solito la parte intera inferiore di d-1/2 e rappresenta la capacita' correttiva del codice.
Corollario: ogni parola in Be(0) e' l'unica parola di peso minimo nella propria classe.
Costruiamo la syndrome look-up table mettendo, per prime nella prima colonna, tutte le parole
in Be(0), partendo da 0. Le righe (classi) corrispondenti NON saranno asteriscate.
Completiamo con i rimanenti coset leaders.
Procedimento di decodifica a sindrome (sempre DMD):
ricevo la parola w. Passo 1: calcolo SH(w). Passo 2: mediante
la tabella syndrome look-up table individuo il coset leader corrispondente err(w). Passo 3: decodifico
con x=w-err(w). Osservazione: se SH(w) appartiene a SH(Be(0))--ossia se
w sta sulla riga corrispondente a un coset leader in Be(0)--la decodifica
e' esatta, ossia x e' l'unica parola di C tale che d(w,x)= d(w,C). Esempi.
- 25.11.2013 (ore 2)
Lemma[versione del bound di Singleton per codici lineari]
sia C un codice lineare [n,k,d]q. Allora d≤ n-k+1.
Denotiamo con Vnq(s) il numero dei punti contenuti in una palla chiusa Bs(x)
in An, che abbiamo determinato in precedenza e ricordiamo il seguente limite superiore:
per un codice di tipo (n,M,d)q si ha M≤ qn/ Vnq(e), dove e e' la
parte inferiore intera di (d-1)/2 (Hamming bound, e' un esempio di upper bound per M). Costruiamo i codici di Hamming,
che sono un esempio di codici linerari perfetti:
definizione di spazio proiettivo P(Fqr); P(Fqr); contiene esattamente
s=(qr-1)/(q-1) punti; definizione di un codice Ham(r,q) mediante la matrice di controllo di parita'.
I parametri di Ham(r,q) sono [s,s-r,3]q e vale l'uguaglianza nell'Hamming bound.
I codici Ham(r,q) sono tutti equivalenti come codici lineari (per esercizio).
Proposizione: Sia C un codice lineare [n,k,d]q (ricordiamo che k≤ n e d≤ n-k+1). Allora:
(i) [costruzione per allungamento] per ogni r≥ 1 esiste un codice lineare [n+r,k,d]q;
(ii)[estrazione di un sottocodice]per ogni 1 ≤ r≤ k-1 esiste un sotto-codice lineare [n,k-r,d]q di C;
(iii)[puncturing] per ogni 1 ≤ r≤ d-1 esiste un sotto-codice lineare [n-r,k,d-r]q di C;
(iv) per ogni 1 ≤ r≤ d-1 esiste un codice lineare [n,k,d-r]q di C;
(v) per ogni 1 ≤ r≤ k-1 esiste un codice lineare [n-r,k-r,d]q di C;
(vi) siano C1 e C2 codici lineari con parametri rispettivamente
[n1,k1,d1]q e [n2,k2,d2]q.
Si definisce il codice C1⊕C2 con parametri
[n1+n1,k1+k2,min{d1,d2}]q.
- 28.11.2014 (ore 3)
Codici MDS (maximum distance separable): un codice [n,k,d]q si dice MDS se d=n-k+1. Teorema di
unisolvenza: Siano a1,...,am elementi distinti in un campo K. Sia n≤ m. Allora
l'applicazione eva:k[x]≤n-1---> Km cosi' definita:
eva(p)=(p(a1),...,p(am)) e' lineare e iniettiva. Se n=m e' un isomorfismo
di spazi vettoriali. Prima costruzione dei codici di Reed-Solomon RS(k,q); parametri [q-1,k,n-k+1]q.
Bounds: definiamo Aq(n,d) la taglia massima raggiungibile da un codice di lunghezza n e distanza d;
definiamo Bq(n,d) la taglia massima raggiungibile da un codice lineare di lunghezza n e distanza d.
Si ha: Bq(n,d)≤ Aq(n,d)≤ qn;
Bq(n,1)≤ Aq(n,1)=qn;
Bq(n,n)≤ Aq(n,n)=q.
Teorema: fissata la potenza di un primo q, siano n,k,d interi tali che: 2 ≤ d ≤ n, 1 ≤ k ≤ n e
Vn-1q(d-2)≤ n-k. Allora esiste un codice lineare [n,k,d']q,
con d' ≥ d. Corollario [Gilbert-Varshamov lower bound]: Fissato q, per d,n tali che 2 ≤ d ≤ n si ha;
Bq(n,d)≥ qn-⌈ logq( Vn-1q(d-2)+1)⌉ ≥ qn-1/ Vn-1q(d-2). Introduzione ai bounds asintotici.
Per iniziare a curiosare: l'introduzione del seguente articolo
di M. Cheraghchi,
A. Shokrollahi, A. Wigderson
presenta in modo
preciso ed estremamente chiaro i bounds e cosa significa costruire codici con parametri estremali, anche per bounds
asintotici:
Computational Hardness and Explicit Constructions of
Error Correcting Codes
.
Nelle seguenti
note di Y. Lindell si trova il passaggio dal bound
di Gilbert-Varshamov alla sua versione asintotica, con notazioni compatibili con quelle del libro di testo.
In questa pagina si trova l'aggioramento continuo dei bounds sui
parametri di vari tipi di codici, la pagina e' esaustiva.
- 2.12.2013 (ore 2)
Bounds asintotici; versione asintotica del bound di Gilbert-Varshamov.
Note sintetiche su quanto trattato in questa lezione e nella precedente.
- 5.12.2013 (ore 3)
Codici ciclici: definizione e teorema di classificazione: i codici lineari ciclici in Fqn sono
in corrispondenza biunivoca con i divisori monici del polinomio xn-1 in Fq[x]. Questo deriva dal fatto
che i codici ciclici in Fqn sono in corrispondenza biunivoca con gli ideali dell'anello
Fqn[x]/(xn-1) e quindi con gli ideali di
Fqn[x] che contengono il polinomio xn-1.
Sia g di grado n-k in Fq[x] il polinomio generatore del codice ciclico C in Fqn, allora
la dimensione di C e' k. Matrice generatrice di un codice ciclico a partire dal polinomio generatore.
Esempi di codici ciclici. Esempio di codici ciclici in Fqn equivalenti e generati da polinomi
diversi. Introduzione alla decodifica dei codici ciclici e alla costruzione di una matrice di controllo di parita'
a partire dal polinomio generatore g. L'argomento verra' ripreso nella prossima lezione.
- 9.12.2013 (ore 2)
Proposizione: l'ortogonale di un codice ciclico e' ciclico. Sia C un codice ciclico in Fqn
con polinomio generatore g di grado (n-k). Si definisce il polinomio
di controllo di parita' di C. Matrice di controllo di parita' di un codice ciclico. Per un codice ciclico e' sempre possibile determinare
una matrice H di controllo di parita' della forma (In-k|A). Utilizzando H, una parola s in Fqn-k e'
la sindrome di una parola w in Fqn se e solo se per i polinomi corrispondenti si ha che s(x)
e' il resto della divisione del polinomio w(x) per g. Si ha quindi che s e w, come elementi di Fqn, appartengono alla stessa
classe laterale in Fqn/C e quindi, se wt(s) non supera la capacita' correttiva del codice,
la decodifica di w a minima distanza e' w-s. Esempi.
Un articolo utile sui codici ciclici:
An introduction to linear and cyclic codes di D. Augot,
E. Betti e E. Orsini.
- 12.12.2013 (ore 3)
Decodifica di codici ciclici: algoritmo di decodofica error trapping ; esempi (Sezione 7.4 del testo di riferimento).
- 16.12.2013 (ore 2)
Lezione seminariale tenuta da Tomaso Trinci, attualmente studente del primo anno del corso di Laura Magistrale
in Matematica (presente la docente):
presentazione di uno schema di rintracciamento traditori interno al sistema di protezione Advanced Access Content System (AACS), utilizzato per Blu-ray e HD DVD. Tale schema di rintracciamento e' costruito utilizzando due codici Reed-Solomon concatenati (per approfondimenti vedere ad esempio
Traitor Tracing for Prerecorded and Recordable Media e relativa bibliografia).
Errori di tipo burst e codici ciclici correttori di errori di tipo burst; descrizione dell'algoritmo di decodifica, senza dimostrazione
(Sezione 7.5 del testo di riferimento).
|