3 – PRIMO TEOREMA DI SHANNON Il problema di determinare la lunghezza media minima per un codice compatto istantaneo si risolve quando la probabilità dei simboli è del tipo Pi r i , dove i è intero. Ma se i log r (1 / Pi ) non è intero, allora si può porre la congettura che la miglior lunghezza media sia l’intero maggiorante più vicino a i . Sia quindi log r 1 1 li log r 1 Pi Pi (3.1) In effetti vediamo subito che tale li verifica la diseguaglianza di Kraft. Infatti riscriviamo l’espressione di sinistra come log r 1 log r Pi li Pi e poiché per le proprietà dei logaritmi log 2 Pi log r Pi log r 2 allora log 2 Pi log r 2 li ma ancora per la stessa proprietà log 2 r log r r log r 2 allora log 2 Pi log r r li log 2 r da cui li log 2 r log 2 Pi e l’espressione al secondo membro è minore di zero: quindi li log 2 r 0 ossia r li 1 che riporta immediatamente alla disuguaglianza di Kraft. Inoltre, se moltiplichiamo i membri della (3.1) per Pi ed introduciamo la sommatoria per i che va da 1 a q, otteniamo H r (S ) L H r (S ) 1 (3.2) Va osservato che mentre la disuguaglianza (2.3) L H (S ) / log r H r (S ) ha un limite inferiore valido per ogni codice istantaneo, la (3.2) per essere valida richiede la condizione (2.4) log r Pi li . Siccome la sorgente S è una qualunque sorgente senza memoria, la (3.2) può essere applicata alla sua estensione n-esima Sn: poiché si ha H r (S n ) H r (S ) n si avrà H r ( S n ) Ln H r ( S n ) 1 dove Ln rappresenta la lunghezza media delle parole del codice dei simboli dell’estensione n-ma, e Ln/n rappresenta il numero medio di simboli dell’alfabeto di codice usati per ogni simboli di sorgente S. In definitiva si ha H r (S ) Ln 1 H r (S ) n n (3.3) In questo modo il numero medio di simboli di codice usati per ogni simbolo di S viene reso vicino quanto si vuole ad H r (S ) con la codifica di Sn anziché di S. I simboli di S vengono codificati in blocchi di n e non uno alla volta. La (3.3) viene espressa in modo equivalente nell’enunciato del PRIMO TEOREMA DI SHANNON o TEOREMA DELLA CODIFICA DELLA SORGENTE: Ln H r (S ) n n lim Il (3.4) numero medio di simboli di codice usato per ogni simbolo di sorgente senza memoria può essere reso piccolo a piacere, purchè non inferiore al valore dell’entropia della sorgente S misurata in unità r. Esiste quindi un limite inferiore alla possibilità di compressione dei messaggi della sorgente senza perdere informazione. Poiché H r ( S n ) H r ( S ) n , per giungere al miglior risultato è necessario aumentare la complessità della codifica, a causa della crescita esponenziale dei simboli dell’estensione n-ma della sorgente, che sono pari a qn. Il primo teorema di Shannon può essere esteso alle sorgenti di Markov. CODICI DI HUFFMAN Nel 1952 Huffman ha affrontato il problema di costruire codici compatti a partire da un alfabeto di codice di r simboli. La procedura consiste nel passare da una sorgente con q simboli e probabilità assegnate a sorgenti più semplici con rispettivamente q-1, q-2,…,2 simboli di alfabeto. La sorgente binaria di arrivo è intesa essere quella con alfabeto 0,1 . Partiamo da una sorgente S con simboli s1,s2,…,sq ordinati in modo che le probabilità di emissione siano non crescenti: p1 p 2 ... p q . Considerando gli ultimi due simboli di S, si definisca la sorgente ridotta S1 a q1 simboli in cui gli ultimi due simboli di S siano ridotti ad un solo simbolo, con probabilità pari alla somma delle probabilità dei due simboli considerati. Procediamo allo stesso modo riducendo ad un simbolo man mano i due simboli meno probabili, fino ad arrivare alla sorgente binaria 0,1 . Facciamo un esempio con sorgente originaria S a 6 simboli: S P Codice S1 s1 0.4 1 0.4 1 0.4 1 0.4 1 0.4 s2 0.3 00 0.3 00 0.3 00 0.3 00 ….0.6 s3 0.1 011 0.1 011 0.1 011 s4 0.1 0100 0.1 0100 s5 0.06 01010 s6 0.04 01011 0.1 S2 0.2 S3 0.3 S4 1 0 01 010 0101 Il codice della terza colonna è ottenuto procedendo da destra verso sinistra aggiungendo uno 0 e un 1 ai due simboli accorpati, e così via. Poiché il codice della sorgente binaria finale è istantaneo e compatto, è intuitivo che anche i codici ottenuto aggiungendo uno 0 ed un 1 fino ad ottenere la sorgente originaria sono istantanei e compatti. Va osservato che esiste una molteplicità di codici compatti, visto che l’assegnazione di 0 ed 1 alle varie parole è arbitraria. L’esempio proposto si riferisce al caso r=2, ma si può generalizzare ad un qualunque numero finito di simboli di codice. Nel caso binario abbiamo accorpato in un solo simbolo i due simboli di sorgente meno probabili. Nel caso di r qualsiasi, si combinano r simboli per volta in un solo simbolo della successiva sorgente ridotta, per cui se la sorgente originaria ha q simboli, la successiva ne avrà q-r+1, e poi q-2r+2: in generale la s-esima sorgente ne avrà q-s(r-1). L’ultima sorgente a destra avrà r simboli se si verifica q=r+s(r-1), visto che la sorgente s-esima ha r simboli se r=q-s(r-1). Anche nel caso generale è possibile dimostrare che i codici così costruiti sono istantanei e compatti. La dimostrazione procede dimostrando che se il codice di una sorgente ridotta è istantaneo e compatto, lo è anche il codice della sorgente precedente verso sinistra, ottenuto aggiungendo ad ogni parola delle r meno probabili uno degli r simboli del codice; e così via. EFFICIENZA E RIDONDANZA DI UN CODICE Il primo teorema di Shannon fornisce un metodo di misura delle sorgenti di informazione. Infatti ogni simbolo dell’alfabeto di sorgente S vale in media H(S) bit o almeno Hr(S) bit in unità r di un alfabeto ad r simboli. Possiamo dire che questo è il numero di bit necessario in media a rappresentare un simbolo della sorgente. Sia L la lunghezza media di un codice ad r simboli di alfabeto relativo alla sorgente S. Siccome L non può essere inferiore all’entropia Hr(S), definiamo efficienza del codice la quantità H r (S) /L per la quale vale: H r (S ) 1 L e lim 1 per la (3.3). n Definiremo allora come ridondanza del codice 1 la misura di quanto dista dall’efficienza massima. In Figura 3.1 si vede che l’efficienza cresce al diminuire di r ed è massima per valori di r pari a 2 ed a 4 . Infatti in questo caso le probabilità dei simboli sono del tipo 1 e 2 1 , e si è visto che esistono codici compatti con lunghezza 4 media coincidente con l’entropia e quindi con efficienza uguale ad 1: L=Hr(S) per li=i . 1.02 1 0.98 0.96 0.94 0.92 0.9 0.88 0.86 0.84 0.82 0 2 4 6 8 r 10 12 14 16 Figura 3.1 TEORIA DELLA DISTORSIONE Si è visto che l’entropia H della sorgente rappresenta il valor medio minimo del tasso di bit/messaggio necessario alla rappresentazione della sorgente senza perdere informazione: non può esistere una compressione ulteriore dei messaggi. Tuttavia Shannon sviluppò una teoria della distorsione che giunge a questa affermazione: se nella rappresentazione della sorgente si può tollerare una certa distorsione D (ossia una certa perdita di informazione), detto R la bit rate bit/messaggio (in binario bit/binit), allora è possibile utilizzare un tasso R(D) bit/messaggio inferiore ad H. Vediamo come ottenere formalmente queste grandezze. Sia X la sequenza binaria che rappresenta S con un tasso di informazione di H() bit/messaggio e Xd la sequenza distorta che la rappresenta con un tasso inferiore. Una misura della distorsione è fornita utilizzando la distanza di Hamming: 0 se x xd d H ( x, x d ) 1 se x x d (3.5) Quindi la distorsione fra due sequenze x n e x dn di n digit di X e Xd sarà misurata in base alla distanza d ( x n , xdn ) 1 n d H (3.5a) ( xi , xdi ) Che ci dà la media della distorsione calcolata digit a digit. Definiamo quindi distorsione D P( x n )d ( x n , xdn ) la misura del valore atteso (media) della distorsione rispetto alla probabilità di quella n-pla, in cui la somma è estesa a tutte le n-ple. Con queste premesse, definiamo funzione di distorsione R(D) il minimo dei tassi di informazione in grado di conseguire la assegnata distorsione D. Nel caso di sorgente binaria, il tipico andamento di R(D) è riportato in Figura 3.2. Data una certa D sono possibili valori di R inferiori ad H() nella regione sopra la curva. Il loro valore minimo è rappresentato da R(D), che giace sulla curva e si annulla per D . Per una sorgente binaria, con 1 / 2 , si trova H ( ) H ( D) R( D) 0 per D (3.6) per D Figura 3.2 Nota. L’espressione di H in (2.1), ossia H ( S ) P( si ) log[ 1 / P(si )] P( si ) I (si ) , i 1,2,..., q. è dovuta a Shannon, ma non è nata con il nome di entropia. Fu J. von Neumann a consigliare a Shannon questo nome, perché aveva le stesse caratteristiche globali dell’entropia termodinamica. In effetti il teorema di Boltzmann (1872) dimostrava che l’entropia S di un gas costituito da n molecole in un volume V a pressione P e temperatura T può essere espressa come S=k·H dove k=1.38·10-23 joule/°K è la costante di Boltzmann, mentre H è espressa come la (2.1). anche se in logaritmi naturali. In questo caso Pi ni n rappresenta la probabilità di trovare una molecola nella i-esima delle t celle (aventi le più piccole dimensioni rilevabili sperimentalmente) in cui si può suddividere il volume V. Si trova che il numero dei microstati che possono dare origine allo stato definito da (P,V,T) è N n! . n1! n 2 !...nt ! Quindi lo stato più probabile è quello cui corrispondono il maggior numero di microstati, e ciò avviene quando ni è costante e pari a n/t, ossia quando si ha la massima uniformità della densità del gas con tutte le celle occupane dallo stesso numero di molecole. In questo caso S, che è proporzionale a ln N attraverso H, assume valore massimo. Dunque questo stato in equilibrio termodinamico corrisponde al valore di massima entropia. Dal punto di vista informativo, H rappresenta l’informazione media ricevuta quando si conosce in quale cella sta la molecola, ossia l’incertezza media a priori su quale cella ospiti una molecola: quando la densità è uniforme S ed H sono massime, e l’informazione media relativa alla cella in cui c’è la molecola sarebbe massima. Se viceversa tutte le n molecole stessero in una cella, l’entropia sarebbe nulla (tutte le Pi=0 tranne una che vale 1), e conoscendo la localizzazione di una molecola non si avrebbe nessuna informazione e nessuna incertezza a priori, dato che già sappiamo che una cella contiene tutte le molecole e le altre celle sono vuote. In questo senso il sistema termodinamico può essere visto come sorgente di informazione. D’altra parte un sistema isolato non in equilibrio evolverà verso lo stato più probabile, che è quello dell’equilibrio termodinamico con tutte le celle occupate dallo stesso numero di molecole. Sia allora S l’entropia dello stato ed SM quella massima dello stato di equilibrio. Chiamiamo neghentropia N la quantità (sempre positiva) N=SM - S . Se si misura la neghentropia con la stessa unità dell’informazione I del sistema isolato, si trova che (v. H ( S ) P( s i ) I ( s i ) dove I lg 1 P( si ) ) I N S che è interpretabile come enunciato del secondo principio della termodinamica. Il segno uguale vale nel caso la trasformazione sia reversibile. La formula si legge dicendo che ogni volta che, ogni volta che si ricava informazione dal sistema isolato, si produce un incremento della sua entropia fino a che questa, all’equilibrio termodinamico, raggiunge il suo valore massimo. A questo punto non si può ricavare altra informazione dal sistema. Quindi l’informazione ha come prezzo l’innalzamento dell’entropia del sistema e la quantità N si dice entropia negativa perché rappresenta il limite superiore dell’informazione ricavabile dal sistema. D’altra parte se I è negativa, ossia se introduciamo informazione nel sistema, anche S è negativa cioè diminuisce la sua entropia. Se passiamo in base 2 ed esprimiamo quindi H in bit, vediamo che quando H=1 bit si ha S k ln 2 2.2 10 24 cal / K entropia termodinamica corrispondente ad 1 bit di informazione. In altri termini, ogni volta che otteniamo 1 bit di informazione da un sistema paghiamo un costo degradandone l’energia di questa quantità, mentre ogni volta che introduciamo nel sistema 1 bit di informazione dall’esterno la “rigradiamo” della stessa quantità. UN ESEMPIO: GENERAZIONE DI SORGENTI DISCRETE CON LA MONETA PERFETTA E’ possibile generare sorgenti discrete S s1 ,..., s q in cui i messaggi sono emessi con probabilità P P1 ,..., Pq mediante la sorgente binaria (moneta perfetta) in cui P(0) P(1) 1 / 2 . Dal punto di vista matematico ciascuna Pi può essere espressa in una serie 1 (*) 2k geometrica di ragione Ad esempio, applichiamo la formula della somma di una serie geometrica di ragione 1/4 con k=2: n qk k 1 q n1 1 q Ma se | q | 1 n (1 q ) q k 1 q n 1 e k si ha q Quindi se abbiamo q k 1 , 4 1 -1 1 q 1 (q) k k 1 1 ... 4 16 1 1 1 4 1 1 . 3 Quindi la probabilità 1/3 può essere generata come somma di probabilità di eventi legati ai lanci della moneta non truccata, 1/4, 1/16, 1/64,…. Lo stesso varrà per qualsiasi probabilità 1/k. ___________ (*) Una v.a. discreta X segue la distribuzione geometrica se P( X r ) (1 p) r 1 p (es. se X=2, P(X=2)=(1-p)p ) , caso di due possibili risultati, prove indipendenti). X è il numero di prove necessarie per avere il primo successo. Si tratta di infiniti eventi la cui somma di probabilità è 1/k, ma la cui scelta non è univoca. Siccome ciascun lancio di moneta perfetto porta H(1/2)=1 bit di informazione, ciò corrisponde a misurare in bit l’informazione condotta dal messaggio. In particolare, se H(S) è l’entropia della sorgente da generare, ovvero l’informazione media condotta da ciascun messaggio e misurata in bit, è intuitivo che occorreranno almeno H(S) lanci della moneta per generare S. ESEMPIO. Generiamo la sorgente S a, b, c con P(a)=1/2, P(b)=1/3, P(c)=1/6 con una moneta perfetta e rappresentiamo la generazione con una struttura ad albero. Soluzione. Come abbiamo visto, gli eventi si possono rappresentare con una struttura ad albero come quella riprodotta in figura. La struttura non è univoca. Cosniste in un albero con due rami, il primo dei quali coincide con l’unica foglia corrispondente all’uscita dello zero al primo lancio e rappresenta l’evento a con probabilità 1/2. Se al primo lancio esce 1, bisogna lanciare nuovamente la moneta: se esce 0 avremo una foglia rappresentante b , corrispondente alla coppia 01 di probabilità 1/4 appartenente alla serie di somma 1/3, probabilità assegnata a b. Se esce 1 si arriva al secondo nodo: si potrà avere l’uscita successiva 0, con terna 110 di probabilità 1/8, appartenente alla serie con somma 1/6 terminante con una foglia che rappresenta l’evento c. E così via fino al completamente dell’albero. e