Registro delle lezioni Matematica Discreta, F. Battaglia,
Anno Accademico 2016-17
Indico con s.d. i risultati enunciati senza dimostrazione.
- 26.09.16 (ore 2).
Introduzione al corso: informazioni pratiche; programma; motivazioni. Esempi: Sistema crittografico a chiave pubblica RSA--
prima descrizione introduttiva; Introduzione alla teoria dei codici autocorrettivi--distanza di Hamming e ridondanza.
Per approfondimenti:
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.
- 29.09.16 (ore 3).
Definizione di gruppo, anello, campo. Esempi. Teorema della divisione.
Definizione della relazione di congruenza e relative proprieta', ogni intero e' congruo
al suo resto modulo d; due interi sono congrui modulo d se e solo se hanno lo stesso
resto quando divisi per d. Somma e prodotto conservano la congruenza.
L'importante identita' [xy]d=[[x]d[y]d]d con x,y numeri interi. Algoritmo dei quadrati ripetuti.
- 03.10.16 (ore 2).
Definizione dell'anello, Z/nZ, delle classi di resto modulo n. Esempi. Z/nZ non e' un campo se n non e' primo.
Sia div(n) l'insieme dei divisori di un intero n. Nota: div(0)={0,1,2,3,...}=N. Lemma di Euclide (Euclide (300 a.C.):
Siano m,n in Z. Allora esiste unico d in N tale che div(m) intersecato div(n) e' uguale a div(d).
Definizione di massimo comun divisore tra due numeri interi.
- 06.10.16 (ore 3).
Algoritmo di Euclide per il calcolo del massimo comun divisore.
Proposizione: il massimo comun divisore di due interi a e b si puo' scrivere come combinazione lineare intera di a e b: algoritmo Euclideo esteso per la dimostrazione e il
calcolo dei coefficienti della combinazione lineare.
Proposizione: Due interi a e b sono co-primi se e solo esistono
x e y interi tali che xa+yb=1.
Proposizione: l'anello delle classi di resto Z/nZ e' un campo se e solo se n e' un numero primo.
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.
- 10.10.2016 (ore 2).
Introduzione al teorema cinese del resto: Esempi di applicazione resto e sistemi di congruenze, esempi di sistemi di congruenze
senza soluzioni.
L'applicazione resto r da Z/nZ a Z/n1Z x ... Z/nrZ, con
n=n1...nr e gcd(ni,nj)=1 è un isomorfismo di anelli,
in particolare è biunivoca.
Si osserva che questo e'
equivalente all'esistenza e unicita' della soluzione (modulo n) di un sistema di congruenze:
enunciato "classico" del
Teorema cinese del resto (Sun-Tsu 280-473, Chin Chiu Shao 1247) . Diamo una
dimostrazione costruttiva dell'esistenza, descriviamo infatti una procedura,
basata sull'algoritmo euclideo esteso, che
determina una soluzione esplicita.
- 13.10.2016 (ore 3).
Esempio di applicazione del teorema cinese del resto: caso molto semplice del "secret sharing scheme" dovuto ad
A. Shamir.
Definizione di
(Z/nZ)* come sottoinsieme di Z/nZ delle classi prime con n. (Z/nZ)*
e' un gruppo, il gruppo degli elementi invertibili dell'anello Z/nZ.
In particolare, come gia' dimostrato, Z/nZ e' un campo se e solo se n e' primo.
Definizione della funzione φ di Eulero (1707-1783).
Proposizione: Se n e m sono primi tra loro, allora φ(mn)=φ(m)φ(n).
Teorema di Eulero: siano a,n interi, primi tra loro, n naturale. Allora aφ(n)≡ 1(mod n).
Algoritmo RSA in dettaglio.
Per approfondimenti:
Secret sharing.
Twenty years of attacks on the RSA cryptosystem
di Dan Boneh.
- 17.10.2016 (ore 2).
Introduzione ai numeri primi, numeri di Mersenne, primi gemelli.
Definizione di numero primo; 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 p divide b. Teorema: ogni naturale non nullo si scompone univocamente (a meno dell'ordine) nel prodotto di numeri primi (s.d.);
la funzione di Eulero di un naturale di cui e' nota la sua scomposizione in fattori primi.
Introduzione alla teoria della complessita: la macchina di Turing.
Per approfondimenti:
The largest known primes- a summary,
Great internet Mersenne prime search,
Risultato del 2013 sul primes gap, articolo divulgativo,
Risultato del 2013 sul primes gap, articolo originale .
A walk through combinatorics, Miklos Bona, sia la seconda che la terza edizione contengono i
capitoli sulla teoria della complessita' e una descrizione
chiara della macchina di Turing.
Notes on Turing machine,
L'articolo originale in cui Turing introdusse la macchina di Turing
On computable numbers, with an application to the Entscheidungsproblem A. Turing,
Proceedings of the London Mathematical Society, (Ser. 2, Vol. 42, 1937).
- 20.10.2016 (ore 3).
Cenno a due delle ipotesi principali alla base della teoria
della complessita' computazionale: la Church-Turing thesis e la Cobham-Edmonds thesis.
Descrizione dei problemi elencati dopo la definizione di
linguaggio. Definizione:
Un linguaggio L e' l'insieme di tutti gli oggetti per cui la risposta a un dato problema decisionale
e' si'.
Esempi:
LPr=insieme dei numeri primi
LEC=insieme dei grafi connessi che ammettono un circuito Euleriano
LHC=insieme dei grafi connessi che ammettono un circuito Hamiltoniano
LTSP=insieme di coppie (G,B) con G grafo connesso pesato e B numero positivo tali che G
ammette un circuito Hamiltoniano con costo inferiore a B
LSAT=insieme delle formule Booleane AND of OR's soddisfacibili
Definizione delle seguenti nozioni: una macchina di Turing T accetta un linguaggio L;
un linguaggio L appartiene alla classe di complessita' computazionale P;
un linguaggio L appartiene alla classe di complessita' computazionale NP,
comprendente la nozione di testimone o certificato.
Brevemente P e' la classe dei linguaggi per cui, per ogni input, l'appartenenza o meno al linguaggio puo' essere
decisa in tempo polinomiale nella taglia dell'input.
NP e' la classe dei linguaggi per cui, per ogni input nel linguaggio, la prova di appartenenza
puo' essere verificata in tempo polinomiale nella taglia dell'input.
Per approfondimenti:
Turing and the development of computational complexity di S. Homer e A. Selman (2011),
dove vengono illustrate anche le ipotesi di cui sopra.
Definizione di formula Booleana AND of OR's.
Il materiale utilizzato per l'introduzione alla teoria della complessita' comprende anche la:
Conferenza di Vijaya Ramachandran: P vs NP problem, tenuta
al Clay Mathematics Institute, molto chiara, e i capitoli 17 e 18 del libro A walk through combinatorics, Miklos Bona citato anche nella scorsa lezione.
Per la teoria dei grafi vedere, ad esempio:
Corso di teoria dei grafi, Carlo Casolo e il libro di Bona succitato.
- 24.10.2016 (ore 2)
Dati due linguaggi L ed L' definiamo quando L e' riconducibile ad L', L≤pL'.
Definizione di NP completezza.
Teorema (Cook, 1961): LSAT e' NP completo. Proposizione: Se L e' NP completo e L≤pL', allora
L' e' NP completo. Ad ora si conoscono migliaia di linguaggi NP completi.
Altri esempi di linguaggi NP completi: LHC e LTSP.
P=NP se e solo se un linguaggio NP completo e' in P (segue dalla definizione di NP completezza).
Definizione di linguaggio NP-hard.
Esempi di estensione di campi: 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.
Per approfondimenti:
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. Per la teoria della complessita' vedere anche ad esempio:
il libro
Computational Complexity: A Modern Approach Sanjeev Arora and Boaz Barak, Cambridge University Press. E, in relazione con l'RSA, l'articolo
Complexity theory and the RSA cryptosystem
J. Garlapati.
Il certificato di Pratt.
Gli articoli originali di Cook e Levine (indipendenti) sulla NP-completezza di SAT:
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).
- 27.10.2016 (3 ore)
POLINOMI: L'anello dei polinomi, A[x], nell'indeterminata x a coefficienti in un anello A.
Grado di un polinomio. 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.
Teorema della divisione:Sia d un polinomio a coefficienti in un anello A, diverso
da 0 e tale che il coefficiente del monomio di grado massimo e' invertibile. Allora, dato f in A[x], esistono unici q e r in A[x]
tali che f=qd+r, con deg(r)< deg(d) o r=0.
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.
Radici n-esime di 1 nel campo dei complessi C: definizione, radici n-esime primitive di 1 in C (caratterizzazione e proprieta').
L'insieme delle radici n-esime di 1 in C e' un gruppo moltiplicativo isomorfo al gruppo additivo Z/nZ.
Definizione dei polinomi ciclotomici. Esempi.
- 3.11.2016 (ore 3)
Proprieta' dei polinomi ciclotomici.
Parentesi su alcune nozioni fondamentali:
Sia G un gruppo. Definizione di sottogruppo H di G. Lavoriamo con gruppi commutativi. Definzione di classe laterale e di insieme
G/H delle classi laterali. Indico con |G| il numero degli elementi di un gruppo finito.
Proposizione: sia G un gruppo finito, allora |H| divide |G|.
Sia g un elemento di un gruppo G.
Definizione di ordine di g, ord(g). Proposizione: Sia G un gruppo finito, allora
ord(g) divide |G|, g|G|=e, se gr=e, allora ord(g)
divide r.
Consideriamo G commutativo come sara' sempre nel nostro contesto. Se H un sottogruppo di G, allora G/H e' un gruppo con l'operazione
naturale di composizione tra le classi indotta dalla
composizione in G.
Siano G e K due gruppi. Un'applicazione f da G a K e' un
omomorfismo di gruppi se per ogni g,g' in G si ha
f(gg')=f(g)f(g'). Il nucleo di un omomorfismo f e l'insieme degli elementi
g in G tali che f(g)=e. Il nucleo di un omomorfismo e' un sottogruppo di G.
L'omomorfismo f e' iniettivo se e solo se ker(f)={e}.
Teorema: Siano G e K due gruppi e sia f un omomorfismo
da G a K. Allora f induce una applicazione ben definita e iniettiva
da G/Ker(f) in K che, composta con la proiezione naturale da G su G/Ker(f), da' f.
Definizione di un ideale I di un anello A.
Il quoziente A/I e' un anello. Sia f da A a B un omomorfismi di anelli.
Allora Ker(f) e' un ideale di A. Traduciamo al caso degli anelli il teorema
visto per i gruppi, ossia, sia f da A in B un omomorfismo di anelli, allora
f induce un'applicazione ben definita e iniettiva da A/I in B che, composta
con la proiezione naturale da A su A/I, da' f.
- 7.11.2016 (ore 3)
CARATTERISTICA DI UN CAMPO: Dato un campo K esiste un'unico omomorfismo di anelli, k, dall'anello degli interi Z a K.
Quindi ha senso vedere
gli interi come elementi di un campo qualunque K. Sia n in Z, quando scriviamo n in K intendiamo l'elemento k(n) in K.
L'ordine di 1 in (K,+) e' un'invariante fondamentale del campo K, detto caratteristica. Se 1 ha ordine infinito diciamo
che char(K)=0. Se ord(1)=n finito allora char(K)=n.
Quando la caratteristica e' finita possiamo pensarla come il piu' piccolo intero positivo tale che 1+1+...+1(n volte)=0.
Esempi: Char(Q)=0, Char(R)=0, Char(C)=0, Char(Fp)=p, Char(F2/2+x+1>)=2.
Proposizione: Sia K un campo tale che Char(K)=n. Allora c'e' un omorfismo iniettivo di Z/nZ in K. In particolare n e' primo.
Quindi riepilogando la caratteristica di un campo e' zero oppure un numero primo. Se e' zero l'omomorfismo f e' iniettivo epossiamo pensare a Z come a un sottoanello del campo K, se e' p allora Ker(f)=pZ e possiamo pensare a Fp come
a un sottocampo di K.
Osserviamo che
i polinomi ciclotomici, essendo a coefficienti interi, possono essere considerati in K[x] per ogni campo K. Esempio:
phi3=x2+x+1 in C ha per radici le due radici terze primitive di 1, in R e' irriducibile, in F2
e' irriducibile, in F3 ha una sola radice doppia x2+x+1=x2-2x+1=(x-1)2,
in F4 ha due radici, entrambe radici terze (primitive) di 1.
Definizione di radice n-esima primitiva in un campo K. Proprieta'.
Enunciato e dimostrazione del criterio per stabilire se un elemento di K e' radice n-esima primitiva in K.
Definizione di gruppo ciclico.
Teorema di Gauss: un sottogruppo G finito del gruppo moltiplicativo di un campo K e' ciclico. Dimostrazione: si utilizza il criterio appena dimostrato.
Definizione di polinomio irriducibile.
Proposizione: Se f in K[x] ha grado 1 allora e' irriducibile.
se f e' irriducibile in K[x] e grado di f >1 allora f non ha radici
se f ha grado 2 o 3 e non ha radici in K allora e' irriducibile in K[x]
Definizione degli anelli quozienti Fp[x]/< f >.
- 10.11.2016 (ore 3)
Fp[x]/< f > e' un campo se e solo se f e' irriducibile in Fp[x].
Fp e' un sottocampo di L:=Fp[x]/< f >
Il polinomio f e' in Fp[x] e quindi in L[x]. L'elemento [x] in L e' una radice di f. Quindi abbiamo costruito
una estensione di Fp a un campo L che contiene una radice del polinomio f, irriducibile in Fp[x].
Il campo L= Fp[x]/< f > ha pn elementi.
Esempio di costruzione di un campo con 9 elementi e di operazioni tra elementi del campo.
Proposizione: Sia F un campo finito. Allora esistono un numero primo p e un polinomio irriducibile in Fp[x]
tali che F e' isomorfo a Fp[x]/< f >.
Corollario: Un campo finito F ha cardinalita' uguale alla potenza di un primo. Questo primo e' la caratteristica del
campo. Esempio di campo con 8 elementi. Teorema di esistenza e unicita': dati un primo p e un intero n positivo
esiste un campo F con pn elementi. Il campo F e' unico a meno di isomorfismi. Se q=pn denotiamo con
Fq tale campo. Dimostriamo prima l'esistenza. Lemma *:
sia f un fattore irriducibile in Fp[x] del
polinomio ciclotomico phipn-1, allora il grado di f e' uguale a n. Questo Lemma implica la parte di
esistenza del teorema. Dimostriamo il Lemma, occorre un Lemma tecnico di cui omettiamo la semplice dimostrazione:
siano r,s,t naturali con r>1, allora rs-1 divide rt-1 se e solo se s divide t.
Dimostrazione del lemma*. Dimostrazione dell'unicita'. Utilizziamo la
definizione di ideale massimale in un anello e il seguente Lemma che dimostreremo nella prossima lezione: un quoziente A/I e' un campo se e solo se I e' massimale in A.
- 14.11.2016 (ore 2)
Dimostrazione della proposizione enunciata nella lezione precedente. Dimostrazione del seguente teorema: sia f un polinomio
in Fp[x], sia R l'anello Fp[x]/< f > e sia F : R ---> R la mappa di Frobenius, cosi' definita
f(v)=vp. Si consideri R come spazio vettoriale su Fp. Allora
1) F e' lineare
2) f e' irriducibile in Fp[x] se e solo se Ker(F)={0} e Ker(F-I)=Fp.
Dimostrazione: parte I: se f e' irriducibile allora Ker(F)={0} e Ker(F-I)=Fp. Esempio di applicazione. Dimostrazione
per assurdo. Un
sottoprodotto della dimostrazione, come gia' mostrato con l'esempio svolto, e' proprio l'algoritmo di Berlekamp per la fattorizzazione di polinomi in Fp[x].
Parte II: se Ker(F)={0} e Ker(F-I)=Fp allora f e' irriducibile in Fp[x]. Sappiamo che f irriducibile
in Fp se e solo se R e' un campo, quindi dimostriamo, essenzialmente con strumenti di algebra lineare che
R e' un campo. Questa seconda parte della dimostrazione e' stata solo delineata brevemente e non svolta.
- 17.11.2016 (ore 3)
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: e' dato da un alfabeto (diamo la definizione 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.
Distanza di Hamming, definizione e proprieta'.
Criterio di decodifica a minima distanza (DmD).
Proposizione: Per un canale senza memoria e fortemente simmetrico le decodifiche a massima probabilita' e minima distanza coincidono.
- 18.11.2016 (ore 2)
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}.
Teorema: un codice C segnala al piu' s errori se e solo se d(C)≥s+1
Un codice corregge al piu' s errori se per ogni parola w in An tale che d(w,C) minore o uguale a s si ha che esiste un'unica parola c in C tale che w appartiene a Bs(c). Spieghiamo perche' questa definizione e'
corretta. Teorema: un codice C corregge al piu' s errori se e solo se d(C)≥2s+1. Lemma: sia C un codice.
Allora d(C)≥2s+1 se e solo se per ogni c e c' in C, con c diversa da c', si ha
Bs(c)∩Bs(c')=vuoto.
Indichiamo con (n,M,d)q un codice q-ario
di lunghezza n, taglia M e distanza d. Il codice C segnala al piu' d-1 errori e corregge al piu' e=[d-1/2] errori ([]=parte intera inferiore).
Per approfondimenti:
"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).
- 21.11.2016 (ore
Fissato q, i parametri n,M,d sono parametri essenziali per il codice. Problema di ottimizzazione: fissati n e d qual e' la taglia massima Max tale che se M'> Max non esiste un codice (n,M',d)?
Teorema di Hamming: limitazione superiore per la taglia
M di un codice in funzione di n,d,q.
Lemma: numero di parole in una palla chiusa di raggio r.
Dimostrazione del teorema di Hamming. Definizione di codice perfetto.
Codici lineari. Definizione: un codice lineare e' un sottospazio vettoriale di Fqn (q=pr con p primo). Esempi. Prodotto scalare in Fqn. Definizione di ortogonale di C. Proprieta'. Definizione di matrice generatrice G e matrice di controllo di parita' H di un codice lineare: sia dim(C)=k, allora G e' una matrice
le cui righe costituiscono una base di C (dunque rango(G)=k), mentre H e' una matrice le cui righe costituiscono una base
dell'ortogonale di C (dunque rango(H)=n-k).
Proposizione: x in Fqn appartiene a C se e solo se
Hxt=0; x in Fqn appartiene all'ortogonale di C se e solo se
Gxt=0; una matrice H' M(n-k),n(Fq) di rango n-k e' una matrice di controllo di parita' di C se e solo se G(H')t=0; una matrice G' Mk,n(Fq) di rango k e' una matrice
generatrice di C se e solo se H(G')t=0.
- 24.11.2016 (ore 3)
Peso di Hamming di una parola x in Fqn, denotato con wt(x). Peso di Hamming, wt(C), di un codice C.
Proposizione: per un codice lineare C si ha d(C)=wt(C).
Calcolo della distanza mediante la matrice di controllo di parita' H. Proposizione: sia C un codice lineare e sia H una sua matrice di controllo di parita'. Allora si ha:
1) d(C) maggiore o uguale a l se e solo se ogni (l-1) colonne di H sono linearmente indipendenti.
2) d(C) minore o uguale a l se e solo se esistono l colonne di H linearmente dipendenti
3) d(C)=l se e solo se ogni (l-1) colonne di H sono linearmente indipendenti ed esistono l colonne di H linearmente dipendenti.
Esempio.
Codici equivalenti. Definizione di GP(n,Fq): gruppo delle permutazioni generalizzate. Proposizione:
il gruppo delle permutazioni generalizzate coincide con il sottogruppo degli isomorfismi di Fqn che conservano
il peso.
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 esiste una permutazione generalizzata di
Fqn che ristretta a C concide con f, in particolare C e C' sono equivalenti. 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. Invece permutare le colonne
o moltiplicare una colonna per uno scalare
produce una matrice G' che definisce,
come matrice generatrice, un codice C' equivalente a C.
La matrice generatrice G di un codice si dice in forma standard se G=(Ik|X)
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 ("per ogni riga all'avanti e all'indietro") e poi eventualmente operare sulle colonne come descritto sopra.
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.
- 28.11.2016 (ore 2)
Codici di Hamming: definizione del codice di Hamming
Ham(r,q) (e' in realta' una classe di codici equivalenti).
I parametri dei codici di Hamming. In particolare i codici di Hamming hanno distanza 3 e sono codici perfetti.
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 dunque qn-k elementi, ognuno di questi e', come sappiamo, una
classe laterale (coset). Sia w
la parola ricevuta. Nella decodifica a minima distanza cerco c in C che minimizza d(w,c).
Poiche' d(w,c)=wt(w-c), cerco la parola w-c, con c in C,
di peso minimo. Osservazione importante: w-c appartiene
alla stessa classe di w. Dunque cerco la parola nella
classe di w, ossia in w+C, di peso minimo.
Siamo quindi interessati a individuare, in ogni classe, le parole di peso minimo.
In ogni classe prendiamo LA (o una, se ce n'e' piu' d'una) parola di peso minimo, questa e' per definizione il capoclasse (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 capoclasse, 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 decodifica a minima distanza e' il seguente: ricevo w.
Controllo la tabella e individuo il capoclasse err(w)
corrispondente a w. Decodifico con c=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).
- 01.12.2016 (3 ore)
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)=(Hwt)t. La parola 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. Su questa proposizione si basa la
tabella delle sindromi (syndrome look-up table), costituita da due colonne
e da qn-k righe. La prima colonna coincide con la prima colonna della tabella
standard, da' quindi una lista di capoclasse, con primo elemento 0. Ogni classe e' etichettata
da una parola di Fqn-k, precisamente, sfruttando la proposizione,
a ogni capoclasse corrisponde, sulla colonna di destra, la sua sindrome. Anche qui
indichiamo con asterisco le righe (classi) in cui non c'e' un'unica parola di peso minimo.
Decodifica utilizzando la tabella delle sindromi.
Proposizione: la sindrome e' iniettiva sulla palla chiusa di centro 0 e raggio e in Fqn.
Questo ci permette di comporre la tabella delle sindromi elencando per prime,
nella colonna dei capoclasse, le parole di Be(0). Per queste classi la decodifica non e' mai ambigua,
non sono mai asteriscate.
Introduzione ai problemi di ottimizzazione: bounds e bounds asintotici. Fissato $q$ e due dei tre parametri fondamentali
si pone il problema di costruire un codice con i parametri fissati e tali che il terzo parametro sia estremale.
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.
Costruzione di codici a partire da codici assegnati, che parametri possiamo variare e come. Osservazione: con questi metodi
non si migliorano i parametri dei codici.
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.
- 05.12.2016 (2 ore)
Dimostrazione del bound di Singleton (upper bound). Sphere covering bound (lower bound).
La dimostrazione e' dello stesso tipo di quella del bound di Hamming (upper bound): per quello di Hamming si ha che
l'unione (disgiunta) di palle chiuse di raggio e centrate nelle parole del codice e' contenuta dello spazio totale,
per lo sphere covering bound lo spazio totale e' contenuto (ricoperto) dall'unione delle palle chiuse di raggio d-1
centrate nelle parole del codice.
Teorema costruttivo preliminare al bound di Gilbert-Varshamov (senza dim):
se i parametri k,n,d soddisfano una opportuna condizione, allora esiste un codice lineare [n,k,d'] con d' maggiore o uguale a 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.
Versione asintotica del bound di Gilbert-Varshamov, cenno
ai risultati di Goppa.
Approfondimenti: 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.
Note sintetiche su quanto trattato in questa lezione e nella precedente.
- 12.12.2016 (ore 2)
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.
- 15.12.2016 (ore 3)
Esempi di codici ciclici. Esempio di codici ciclici in Fqn equivalenti e generati da polinomi
diversi.
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).
Sia w in Fqn, allora la sindrome SH di w corrisponde al resto della divisione di w(x) per g(x).
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. Esempio.
Questa osservazione porta a definire un algoritmo di decodifica per errori localizzati particolarmente efficiente, detto
error trapping , che non abbiamo descritto a lezione.
Approfondimenti:
Un articolo utile sui codici ciclici:
An introduction to linear and cyclic codes di D. Augot,
E. Betti e E. Orsini.
|