Salta al contenuto
Note per Studenti Esercizio - sensori di temperatura, codice di Huffman, porta seriale e informazione mutua (esercizi del corso, cap. 5, es. 56)

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 NN sensori che misurano la temperatura, che può assumere quattro valori T1,T2,T3,T4T_1,T_2,T_3,T_4. I valori si presentano con probabilità 0,080{,}08, 0,250{,}25, 0,270{,}27 e 0,40{,}4, rispettivamente. La temperatura viene misurata da ciascun sensore ogni 11 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 NN codificatori vengono aggregati e inviati attraverso una porta seriale RS-232 con velocità massima di trasmissione di 42004200 b/s.

  1. Trovare il codice di sorgente ottimo e la lunghezza di ciascuna parola di codice.
  2. Calcolare il massimo numero di sensori NN che garantisce che un tasso nominale aggregato medio del segnale binario non superi la velocità di trasmissione della RS-232.
  3. 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.
  4. 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 X1X_1 e X2X_2 il valore misurato dai due sensori, P(X1=T1,X2=T1)=0,1P(X_1=T_1,X_2=T_1)=0{,}1, P(X1=T1,X2=T2)=0,2P(X_1=T_1,X_2=T_2)=0{,}2, P(X1=T3,X2=T3)=0,3P(X_1=T_3,X_2=T_3)=0{,}3, P(X1=T3,X2=T4)=0,4P(X_1=T_3,X_2=T_4)=0{,}4, e tutte le altre coppie di valori non vengono mai misurate.
  5. 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 T4=0,4T_4=0{,}4, T3=0,27T_3=0{,}27, T2=0,25T_2=0{,}25, T1=0,08T_1=0{,}08 (somma 11 ✓). Si uniscono a ogni passo i due nodi meno probabili:

Passo Nodi disponibili Unione
1 0,4; 0,27; 0,25; 0,080{,}4;\ 0{,}27;\ 0{,}25;\ 0{,}08 0,25+0,08=0,330{,}25+0{,}08=0{,}33 (nodo AA)
2 0,4; 0,33 (A); 0,270{,}4;\ 0{,}33\,(A);\ 0{,}27 0,33+0,27=0,600{,}33+0{,}27=0{,}60 (nodo BB)
3 0,6 (B); 0,40{,}6\,(B);\ 0{,}4 radice =1=1

Si assegna 00 al ramo di probabilità maggiore a ogni unione e si legge dalla radice alle foglie. Alla radice T4T_4 prende 00 e il nodo BB prende 11; sotto BB, T3T_3 prende 00 e il nodo AA prende 11; sotto AA, T2T_2 prende 00 e T1T_1 prende 11. Si ottiene

Valore pp Parola Lunghezza
T4T_4 0,40{,}4 00 11
T3T_3 0,270{,}27 1010 22
T2T_2 0,250{,}25 110110 33
T1T_1 0,080{,}08 111111 33

(La soluzione del corso riporta T1→000T_1\to000, T2→001T_2\to001, T3→01T_3\to01, T4→1T_4\to1: è lo stesso codice con 00 e 11 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 →): Ly=0,4⋅1+0,27⋅2+0,25⋅3+0,08⋅3=0,4+0,54+0,75+0,24=1,93 bit,L_y=0{,}4\cdot1+0{,}27\cdot2+0{,}25\cdot3+0{,}08\cdot3=0{,}4+0{,}54+0{,}75+0{,}24=1{,}93\ \text{bit}, 0,33+0,60+1=1,93 ✓.0{,}33+0{,}60+1=1{,}93\ \checkmark. L'entropia di un valore è H=0,4log⁡210,4+0,27log⁡210,27+0,25log⁡210,25+0,08log⁡210,08=0,5288+0,5100+0,5+0,2915=1,830H=0{,}4\log_2\tfrac1{0{,}4}+0{,}27\log_2\tfrac1{0{,}27}+0{,}25\log_2\tfrac1{0{,}25}+0{,}08\log_2\tfrac1{0{,}08}=0{,}5288+0{,}5100+0{,}5+0{,}2915=1{,}830 bit, quindi H≤Ly<H+1H\le L_y<H+1 ✓ ed efficienza η=1,8301,93=0,948\eta=\frac{1{,}830}{1{,}93}=0{,}948.

(2) Quanti sensori sulla porta seriale

Ogni sensore emette un valore ogni 11 ms e il codice usa in media 1,931{,}93 bit per valore: il suo flusso medio di bit è R=1,93 bit10−3 s=1930 bit/s.R=\frac{1{,}93\ \text{bit}}{10^{-3}\ \text{s}}=1930\ \text{bit/s}. Il flusso aggregato di NN sensori è N⋅1930N\cdot1930 bit/s e deve essere al più 42004200 bit/s: N≤42001930=2,176 ⇒ Nmax⁡=2.N\le\frac{4200}{1930}=2{,}176\ \Rightarrow\ N_{\max}=2. Con N=2N=2 il flusso è 38603860 bit/s ≤4200\le4200 ✓; con N=3N=3 sarebbe 5790>42005790>4200. Senza codifica (lunghezza fissa di 22 bit per valore) ogni sensore farebbe 20002000 bit/s e la porta ne reggerebbe solo 22 (40004000 bit/s): il codice migliora l'efficienza ma, con questi numeri, non fa guadagnare un sensore (4200/1930=2,184200/1930=2{,}18). Il limite teorico dato dall'entropia sarebbe 18301830 bit/s per sensore, cioè 4200/1830=2,294200/1830=2{,}29, ancora N=2N=2.

(3) Entropia di una coppia di sensori

Siano X1,X2X_1,X_2 i valori dei due sensori, ciascuno con la densità data, H(Xi)=1,830H(X_i)=1{,}830 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 (X1,X2)(X_1,X_2) ha solo quattro valori possibili, con probabilità 0,1; 0,2; 0,3; 0,40{,}1;\ 0{,}2;\ 0{,}3;\ 0{,}4 (somma 11 ✓; le altre coppie hanno probabilità 00). 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 H(X1,X2)H(X_1,X_2): H(X1,X2)=0,1log⁡210,1+0,2log⁡210,2+0,3log⁡210,3+0,4log⁡210,4=0,3322+0,4644+0,5211+0,5288=1,846 bit.H(X_1,X_2)=0{,}1\log_2\tfrac1{0{,}1}+0{,}2\log_2\tfrac1{0{,}2}+0{,}3\log_2\tfrac1{0{,}3}+0{,}4\log_2\tfrac1{0{,}4}=0{,}3322+0{,}4644+0{,}5211+0{,}5288=1{,}846\ \text{bit}. Le marginali di questa coppia (X2X_2: 0,1;0,2;0,3;0,40{,}1;0{,}2;0{,}3;0{,}4) sono diverse da quelle del punto 1: è un altro scenario, in cui i due sensori sono fortemente dipendenti (il valore di X2X_2 determina quello di X1X_1), e per questo l'entropia della coppia è solo 1,8461{,}846 bit, quanto basta per una variabile con quelle quattro probabilità.

(5) Informazione mutua tra i due sensori

Ogni coppia ha X1∈{T1,T3}X_1\in\{T_1,T_3\} e X2∈{T1,T2,T3,T4}X_2\in\{T_1,T_2,T_3,T_4\}. Dalle quattro coppie:

X1\X2X_1\backslash X_2 T1T_1 T2T_2 T3T_3 T4T_4 P(X1)P(X_1)
T1T_1 0,10{,}1 0,20{,}2 00 00 0,30{,}3
T3T_3 00 00 0,30{,}3 0,40{,}4 0,70{,}7
P(X2)P(X_2) 0,10{,}1 0,20{,}2 0,30{,}3 0,40{,}4 11

Conoscendo X2X_2 si conosce X1X_1 (T1,T2⇒X1=T1T_1,T_2\Rightarrow X_1=T_1; T3,T4⇒X1=T3T_3,T_4\Rightarrow X_1=T_3): X1X_1 è funzione deterministica di X2X_2, quindi H(X1∣X2)=0H(X_1|X_2)=0. L'informazione mutua è I(X1;X2)=H(X1)−H(X1∣X2)=H(X1)=0,3log⁡210,3+0,7log⁡210,7=0,5211+0,3602=0,881 bit.I(X_1;X_2)=H(X_1)-H(X_1|X_2)=H(X_1)=0{,}3\log_2\tfrac1{0{,}3}+0{,}7\log_2\tfrac1{0{,}7}=0{,}5211+0{,}3602=0{,}881\ \text{bit}. Controllo con la formula simmetrica: H(X1)+H(X2)−H(X1,X2)=0,881+1,846−1,846=0,881H(X_1)+H(X_2)-H(X_1,X_2)=0{,}881+1{,}846-1{,}846=0{,}881 ✓ (infatti H(X1,X2)=H(X2)H(X_1,X_2)=H(X_2), perché la coppia è determinata da X2X_2, e vale 1,8461{,}846).

(Verificato con Python: Huffman Ly=1,93L_y=1{,}93, H=1,8303H=1{,}8303, Nmax⁡=⌊2,176⌋=2N_{\max}=\lfloor2{,}176\rfloor=2, H(X1,X2)=1,8464H(X_1,X_2)=1{,}8464, I=0,8813I=0{,}8813.)

Errori comuni

  • Dimenticare che NN è un intero: 2,182{,}18 sensori sono 22.
  • 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 (0,08;0,25;…0{,}08;0{,}25;\dots) invece di quelle delle coppie.
  • Scrivere H(X1,X2)=H(X1)+H(X2)H(X_1,X_2)=H(X_1)+H(X_2) per variabili dipendenti.
  • Per il punto 5, calcolare H(X1)H(X_1) con le probabilità dei singoli sensori invece che con le marginali della tabella delle coppie (0,3; 0,70{,}3;\ 0{,}7).

Versione ripasso

Testo. Quattro valori con p=0,08; 0,25; 0,27; 0,4p=0{,}08;\ 0{,}25;\ 0{,}27;\ 0{,}4, un valore ogni 11 ms, codice binario, NN sensori su RS-232 a 42004200 b/s. Domande: Huffman; Nmax⁡N_{\max}; entropia di coppie (indipendenti/dipendenti); limite inferiore per coppie con P=0,1;0,2;0,3;0,4P=0{,}1;0{,}2;0{,}3;0{,}4; informazione mutua.

Teoria collegata