Esercizio - Huffman, Elias ed entropia con probabilità dipendenti dalla matricola (secondo compitino dell'8 gennaio 2021, es. 118)
In questa pagina 6
Testo (secondo compitino dell'8 gennaio 2021, esercizio 118). Sia l'ultima cifra del suo numero di matricola e Si consideri una sorgente che genera simboli indipendenti e identicamente distribuiti. Ciascun simbolo viene codificato con un codice di sorgente con alfabeto di uscita binario. L'alfabeto di è e la sua densità di probabilità è , .
- Calcolare la lunghezza media delle parole di codice per una codifica a prefisso ottima.
- Dire se il codice trovato al punto 1 è un codice di Shannon per la sorgente, giustificando la risposta.
- Trovare la parola del codice di Elias relativa al simbolo , con le lettere dell'alfabeto di ingresso ordinate come numeri naturali ().
- Si consideri ora una diversa densità di probabilità della sorgente, con e . Sia anche una variabile aleatoria con entropie condizionate Calcolare l'entropia di .
- Si assuma di non sapere né la cardinalità dell'alfabeto di né la sua densità di probabilità. Si sa però che bit. I bit in uscita del codificatore di sorgente vengono salvati in una memoria da cui vengono prelevati con velocità costante bit/s, con la lunghezza media delle parole del codice di sorgente (si ignorino i casi di memoria vuota o completamente piena). I bit prelevati dal buffer vengono codificati con un codice di canale prima essere trasmessi su un canale con capacità bit/s. Dire se esistono codici di sorgente e di canale che garantiscono una probabilità di errore al ricevitore piccola a piacere.
Teoria usata: Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica → (punti 1-3), Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimoL'informazione di un evento di probabilità $P$ è $i=\log_2\frac1P$ bit (zero per l'evento certo, additiva per eventi indipendenti). L'entropia di una variabile aleatoria discreta è l'informazione media, $H(x)=E[i_x(x)]=\sum_aP_x(a)\log_2\frac1{P_x(a)}$; vale $0\le H(x)\le\log_2M$ con $M$ cardinalità dell'alfabeto, e il massimo $\log_2M$ si raggiunge se e solo se i simboli sono equiprobabili (dimostrazione con la disuguaglianza di Jensen, perché il logaritmo è strettamente concavo).Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo → e Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua → (punto 4), Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media → e Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon → (punto 5).
Il testo dipende dalla matricola: si risolve per ciascuno dei cinque valori di . La probabilità del quarto simbolo si ricava dalla normalizzazione: .
(1) Codice di Huffman e lunghezza media
Per il simbolo è il più probabile e i simboli i meno probabili. Passi: (i) si uniscono e in un nodo da ; (ii) si unisce () con quel nodo () in un nodo da ; (iii) radice con il simbolo . Le lunghezze sono per i simboli (per esempio , , , per ) e Controllo con i nodi interni: ✓.
Per le probabilità sono e al primo passo c'è un pareggio tra tre simboli da . Unendo si hanno i nodi : si unisce () con il simbolo () in un nodo da , poi la radice. Le lunghezze sono e . Un'altra scelta dei pareggi dà le lunghezze e di nuovo .
Per le probabilità sono : si uniscono i due meno probabili, () e un simbolo da , in ; poi l'altro con in ; poi la radice. Lunghezze , bit.
| Lunghezze Huffman | [bit] | [bit] | |
|---|---|---|---|
In ogni caso ✓ (la somma dei nodi interni coincide con ).
(2) È un codice di Shannon?
Il codice di Shannon ha lunghezze . Si confrontano con quelle di Huffman del punto 1:
| Shannon | Huffman | Uguali? | |
|---|---|---|---|
| no | |||
| no | |||
| no (simbolo ) | |||
| no | |||
| no (simbolo ) |
No, per nessun valore di . Le probabilità non sono mai tutte potenze di (condizione per cui il codice di Shannon è ottimo): non lo è mai, e quindi il codice di Shannon ha almeno una parola più lunga di quella ottima, per esempio contro .
(3) Parola di Elias per il simbolo
Con l'ordine naturale il simbolo occupa il primo intervallo , con punto medio e lunghezza . La parola è formata dalle prime cifre binarie di (Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica →).
| in binario | Parola | |||
|---|---|---|---|---|
Esempio di conversione (): ; ; ; ; ; , e le prime cifre sono . (La soluzione del corso riporta anche per , ma con la parola è : la sua lunghezza deve essere .)
(4) Entropia di con e
Siano e . La normalizzazione dà , cioè . L'entropia condizionata è la media delle entropie condizionate ai valori di , pesate con (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →): Il testo dà , quindi , cioè L'entropia di è
| [bit] | |||
|---|---|---|---|
(Esempio per : e ; la somma è . Si noti che sono tutti sotto bit.)
(5) Esistono codici di sorgente e di canale con errore piccolo a piacere?
La velocità di prelievo dal buffer è bit/s, quella dei bit che entrano nel codificatore di canale. Per il teorema di Shannon sulla codifica di canale (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →) una codifica con errore piccolo a piacere esiste se ( per sicurezza): Per il teorema di Shannon sulla codifica di sorgente esiste un codice a prefisso con bit (Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media →), senza bisogno di conoscere cardinalità e densità. Poiché , esiste un codice di sorgente con , quindi con : il codice di canale esiste per il teorema di Shannon. La risposta è sì.
(Nota: per ogni codice di sorgente, quindi l'intervallo è non vuoto; un'entropia così piccola indica una sorgente quasi deterministica, che si può comprimere molto raggruppando più simboli.)
(Verificato con Python: Huffman per i cinque valori di , con somma dei nodi uguale; Shannon e Huffman mai uguali; punti medi di Elias e loro cifre; e .)
Errori comuni
- Dimenticare di ricavare dalla normalizzazione.
- Scrivere le lunghezze di Huffman senza controllare che i pareggi (, ) non cambino : cambiano il codice, non la lunghezza media.
- Per il punto 2, dire "è Shannon se le lunghezze sono uguali a quelle ottime": va verificato il confronto con per ogni simbolo.
- In Elias, prendere (estremo) al posto del punto medio , o dimenticare il .
- Al punto 4, mediare con pesi uguali invece che con .
- Al punto 5, usare come se fosse : per l'esistenza serve il limite superiore .
Versione ripasso
Testo. con (da matricola). Huffman e ; è Shannon?; Elias del simbolo ; , con (, ): ; , , canale con : esistono codici?
- (1) (Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica →) : lunghezze , ; : , .
- (2) Shannon (; ; ; ; ) non coincide mai con Huffman: non è potenza di .
- (3) , : , , , , .
- (4) (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →) , ; bit.
- (5) (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →) Serve ; esiste un codice con : sì.
- Dettagli (1). : unioni , , radice; . : lunghezze oppure , sempre (pareggio); : () con un in , poi : .
- Dettagli (2). Shannon : , , , , contro Huffman , , , , : mai uguali ( non è potenza di ).
- Dettagli (3). in binario , , , , ; . Il corso riporta per : con è .
- Dettagli (4). (con ) . Per : .
- Dettagli (5). ; con esiste un prefisso con (limite superiore di Shannon).
- Errori: non ricavata; in Elias; pesi uguali in .
Teoria collegata
- Codici di Shannon, Huffman ed Elias e codifica aritmetica
- Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo
- Entropia congiunta e condizionata e informazione mutua
- Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media
- Tasso d'informazione, capacità di canale e teorema di Shannon