Appunti di Teoria dell'Informazione e Codici - Università di Palermo
Appunti di Teoria dell'Informazione e Codici - Università di Palermo
Appunti di Teoria dell'Informazione e Codici - Università di Palermo
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
La Co<strong>di</strong>fica <strong>di</strong> Sorgente 23<br />
( ) (3.5.4)<br />
La precedente ci fa capire che, non possono esistere co<strong>di</strong>ci univocamente deco<strong>di</strong>ficabili<br />
che utilizzano un numero me<strong>di</strong>o <strong>di</strong> bit per simbolo minore dell’entropia<br />
della sorgente da co<strong>di</strong>ficare. Esiste quin<strong>di</strong> un limite inferiore alla possibilità <strong>di</strong><br />
“comprimere”, senza per<strong>di</strong>te, le informazioni emesse dalla sorgente, a prescindere dalla<br />
complessità del co<strong>di</strong>ficatore, che come s’intuisce, tipicamente cresce al crescere <strong>di</strong> .<br />
La (3.5.4) ha anche il merito <strong>di</strong> chiarire meglio l’importanza dell’entropia nell’ambito<br />
della <strong>Teoria</strong> dell’Informazione.<br />
Esempio 3.2<br />
Un algoritmo ricorsivo per la costruzione <strong>di</strong> un co<strong>di</strong>ce <strong>di</strong> sorgente ottimo nel senso della<br />
lunghezza me<strong>di</strong>a delle parole è dovuto ad Huffman (1952).<br />
L’algoritmo <strong>di</strong> Huffman consiste nella costruzione ricorsiva <strong>di</strong> un albero binario. Ricordando che<br />
l’obiettivo è ottenere la minore lunghezza me<strong>di</strong>a possibile, si intuisce che a simboli meno probabili<br />
devono corrispondere parole <strong>di</strong> co<strong>di</strong>ce aventi lunghezza maggiore, ovvero foglie aventi or<strong>di</strong>ne<br />
maggiore.<br />
Per costruire l’albero si deve <strong>di</strong>sporre delle probabilità ( ) <strong>di</strong> manifestazione degli<br />
messaggi . L’albero costruito dall’algoritmo <strong>di</strong> Huffman ha vertici: i primi sono<br />
associati alle probabilità , mentre i restanti vengono determinati ricorsivamente. A ciascun<br />
vertice viene associata una variabile booleana che ne in<strong>di</strong>ca l’utilizzo da parte dell’algoritmo.<br />
Al passo -esimo,<br />
si procede come segue:<br />
si scelgono tra i vertici non ancora marcati come utilizzati i due vertici e aventi le<br />
probabilità associate minori, si marcano e come utilizzati e si introduce un nuovo vertice<br />
avente probabilità associata pari a si aggiungono all’insieme dei lati i due elementi<br />
( ) e ( ).<br />
Sostanzialmente l’algoritmo può essere riassunto come segue: “inizialmente tutti i vertici sono<br />
orfani; a ciascun passo si scelgono i due orfani aventi probabilità associata minima e li si dota <strong>di</strong> un<br />
vertice padre (a sua volta orfano) avente probabilità pari alla somma delle probabilità dei figli”.<br />
Al termine dell’algoritmo resta un unico vertice non ancora utilizzato, e lo si denota ra<strong>di</strong>ce<br />
dell’albero. Una volta costruito l’albero, il co<strong>di</strong>ce <strong>di</strong> Huffman è definito dalla procedura<br />
dell’Esempio 3.1.<br />
Fig.E 3.1 - Albero e co<strong>di</strong>ce <strong>di</strong> Huffman associato al co<strong>di</strong>ce con M = 2<br />
Come esempio, consideriamo la costruzione <strong>di</strong> un co<strong>di</strong>ce <strong>di</strong> Huffman per una sorgente DMS<br />
stazionaria avente alfabeto e probabilità <strong>di</strong> emissione e .<br />
Essendo la sorgente binaria, con il co<strong>di</strong>ce contiene due sole stringhe ‘0’ ed ‘1’; la<br />
lunghezza me<strong>di</strong>a del co<strong>di</strong>ce risulta , mentre l’entropia è data da ( )<br />
Con , gli M-messaggi possibili sono quattro, caratterizzati<br />
dalle probabilità <strong>di</strong> emissione , , e ; l’albero costruito<br />
secondo l’algoritmo <strong>di</strong> Huffman è riportato in Fig.E 3.1.<br />
La lunghezza me<strong>di</strong>a del co<strong>di</strong>ce risulta ( ) ed il numero<br />
me<strong>di</strong>o <strong>di</strong> bit utilizzati per simbolo ( ), in accordo con la (3.5.4).