Esercizio - sensori di temperatura, codice di Huffman, porta seriale e informazione mutua (esercizi del corso, cap. 5, es. 56)
In questa pagina 6
Testo (esercizi del corso, cap. 5, es. 56). Una macchina industriale è dotata di sensori che misurano la temperatura, che può assumere quattro valori . I valori si presentano con probabilità , , e , rispettivamente. La temperatura viene misurata da ciascun sensore ogni ms. Ciascun valore in uscita da ogni sensore viene codificato con un codice di sorgente con parole di uscita con alfabeto binario. I bit codificati dagli codificatori vengono aggregati e inviati attraverso una porta seriale RS-232 con velocità massima di trasmissione di b/s.
- Trovare il codice di sorgente ottimo e la lunghezza di ciascuna parola di codice.
- Calcolare il massimo numero di sensori che garantisce che un tasso nominale aggregato medio del segnale binario non superi la velocità di trasmissione della RS-232.
- Si consideri ora la codifica di valori forniti da coppie di sensori. Dire come varia l'entropia della coppia di valori nel caso in cui le misure abbiano la densità di probabilità indicata sopra e siano a) indipendenti (come assunto sopra) o b) dipendenti.
- Calcolare il limite inferiore più grande possibile alla lunghezza media delle parole del codice binario codificando i valori forniti da coppie di sensori, dove, indicato con e il valore misurato dai due sensori, , , , , e tutte le altre coppie di valori non vengono mai misurate.
- Con riferimento al punto 4, calcolare l'informazione mutua tra la temperatura misurata dai due sensori.
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 → (punto 1), 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 → (punti 2 e 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 → (punti 3 e 5), 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 →.
(1) Codice di Huffman
Le probabilità ordinate sono , , , (somma ✓). Si uniscono a ogni passo i due nodi meno probabili:
| Passo | Nodi disponibili | Unione |
|---|---|---|
| 1 | (nodo ) | |
| 2 | (nodo ) | |
| 3 | radice |
Si assegna al ramo di probabilità maggiore a ogni unione e si legge dalla radice alle foglie. Alla radice prende e il nodo prende ; sotto , prende e il nodo prende ; sotto , prende e prende . Si ottiene
| Valore | Parola | Lunghezza | |
|---|---|---|---|
(La soluzione del corso riporta , , , : è lo stesso codice con e scambiati e i rami in altro ordine; le lunghezze sono quelle di sopra.)
Lunghezza media, pesando ogni lunghezza con la probabilità, e controllo con la somma dei nodi interni (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 →): L'entropia di un valore è bit, quindi ✓ ed efficienza .
(2) Quanti sensori sulla porta seriale
Ogni sensore emette un valore ogni ms e il codice usa in media bit per valore: il suo flusso medio di bit è Il flusso aggregato di sensori è bit/s e deve essere al più bit/s: Con il flusso è bit/s ✓; con sarebbe . Senza codifica (lunghezza fissa di bit per valore) ogni sensore farebbe bit/s e la porta ne reggerebbe solo ( bit/s): il codice migliora l'efficienza ma, con questi numeri, non fa guadagnare un sensore (). Il limite teorico dato dall'entropia sarebbe bit/s per sensore, cioè , ancora .
(3) Entropia di una coppia di sensori
Siano i valori dei due sensori, ciascuno con la densità data, bit.
- a) Indipendenti. bit (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 →).
- b) Dipendenti (con le stesse marginali): , strettamente minore: la coppia è meno incerta perché il valore di un sensore dà informazione sull'altro. Inoltre bit: nel caso estremo in cui un sensore ripete l'altro () l'entropia è esattamente bit.
Quindi la dipendenza diminuisce l'entropia, e con essa la lunghezza minima media delle parole per coppia.
(4) Limite inferiore per le coppie
La coppia ha solo quattro valori possibili, con probabilità (somma ✓; le altre coppie hanno probabilità ). Il limite inferiore di Shannon alla lunghezza media di un codice binario per le coppie è la loro entropia (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 il "più grande possibile" è appunto : Le marginali di questa coppia (: ) sono diverse da quelle del punto 1: è un altro scenario, in cui i due sensori sono fortemente dipendenti (il valore di determina quello di ), e per questo l'entropia della coppia è solo bit, quanto basta per una variabile con quelle quattro probabilità.
(5) Informazione mutua tra i due sensori
Ogni coppia ha e . Dalle quattro coppie:
Conoscendo si conosce (; ): è funzione deterministica di , quindi . L'informazione mutua è Controllo con la formula simmetrica: ✓ (infatti , perché la coppia è determinata da , e vale ).
(Verificato con Python: Huffman , , , , .)
Errori comuni
- Dimenticare che è un intero: sensori sono .
- Calcolare il flusso con la lunghezza dei codici al posto della lunghezza media (pesata con le probabilità).
- Per il punto 4, usare le probabilità dei singoli sensori () invece di quelle delle coppie.
- Scrivere per variabili dipendenti.
- Per il punto 5, calcolare con le probabilità dei singoli sensori invece che con le marginali della tabella delle coppie ().
Versione ripasso
Testo. Quattro valori con , un valore ogni ms, codice binario, sensori su RS-232 a b/s. Domande: Huffman; ; entropia di coppie (indipendenti/dipendenti); limite inferiore per coppie con ; informazione mutua.
- (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 →) Unioni : , , , . bit (nodi: ); , .
- (2) Flusso per sensore b/s; .
- (3) (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 →) Indipendenti: bit. Dipendenti: strettamente minore, ma .
- (4) Limite inferiore bit per coppia (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 →).
- (5) è funzione di : , quindi bit (marginale , ).
- Dettagli (1). bit; e . Lunghezza fissa: bit per valore.
- Dettagli (2). Senza codifica b/s per sensore, quindi sensori (); limite teorico b/s dà , ancora . Con il flusso è , con sarebbe .
- Dettagli (3). Dipendenza ; caso estremo : (limite inferiore ).
- Dettagli (4)-(5). Le marginali delle coppie sono e (diverse da quelle del punto 1); perché ; .
- Errori: non intero; non pesare le lunghezze; usare le probabilità dei singoli sensori al punto 4.