SlideShare a Scribd company logo
1 of 82
Download to read offline
FACOLT`A DI SCIENZE MATEMATICHE FISICHE E NATURALI
Corso di Laurea Magistrale in Matematica
Stime dell’entropia relativa mediante
algoritmi di compressione
Relatore:
Chiar.mo Prof.
DARIO BENEDETTO
Candidato:
GIUSEPPE TUFO
matricola 1090615
Sessione Estiva
Anno Accademico 2014-2015
Dipartimento di Matematica ‘Guido Castelnuovo’
Introduzione
Il problema dell’attribuzione a un autore di un testo mediante tecnice
matematiche e statistiche `e un problema meno recente di quanto si possa
pensare: ci sono notizie di un lavoro a riguardo gi`a nel 1889, da parte del
fisico americano T.C. Mendenhall, che cerc`o di capire l’eutenticit`a degli scritti
di Shakespeare attraverso l’analisi della frequenza delle lunghezze delle parole,
che oggi sappiamo non dare risultati attendibili, oppure, andanddo ancora
pi`u indietro nel tempo, nel 1439 Lorenzo Valle dimostr`o che la Donazione di
Costantino era un falso confrontando il lessico utilizzato con altri documenti
originali.
Attualmenti i problemi di attribuzione di autore sono caratterizzati da
due aspetti, il primo riguarda gli “oggetti” del teso del quale si misurano le
caratteristiche, come le singole parole, le caratteristiche sintattiche o gli n-
grammi, cio`e sequenze di n caratteri consecutivi; il secondo aspetto riguarda
le tecniche che vengono utilizzate. Un prima tecnica pu`o essere il Machine
Learning, che consiste nell’estrarre delle propriet`a (fonetiche, grammaticali,
sintattiche, etc.) dai testi noti e confrontarle con le stesse dei testi ignoti,
ricevendo cos`ı una probabilit`a di attribuzione. Oppure un secondo metodo,
quello da noi utilizzato, consiste in una descrizione di distanze e similarit`a
tra i testi, cio`e algoritmi che puntano a dire quanto due testi si “somigliano”.
Tanto pi`u sono simili i testi, maggiore `e la probabilit`a che siano stati scritti
dallo stesso autore.
L’interesse di questa tesi per la questione del Diario Postumo di Montale
iii
iv
`e per la verifica della sua attribuzione. Mostreremo con il nostro approccio,
pur non facendo affermazioni conclusive, che ci sono anomalie che giustificano
i dubbi esistenti riguardo l’integrit`a del Diario Postumo. Abbiamo scelto di
analizzare questo caso perch´e, oltre ai dubbi esistenti sulla sua integrit`a, pu`o
essere considerato un caso particolarmente interessante, poich´e i testi ignoti
da analizzare sono molto brevi e probabilmente la maggior parte contiene
frammenti originali di Montale, inoltre il poeta ha cambiato il suo stile di
scrittura nel corso del tempo.
Nel primo capitolo di questa tesi introdurremo le nozioni tecniche neces-
sarie per il nostro tipo di analisi quantitativa, in particolare definiremo cos`e
l’entropia per un file e cos`e l’entropia relativa, la misura che poi utilizzeremo
come metro di similarit`a tra i testi, infine introdurremo la propriet`a di
equiparazione asintotica (AEP), una sorta di “legge dei grandi numeri” per
l’analisi dei dati.
Nel secondo capitolo affronteremo il problema della compressione, descri-
veremo deei modelli di codifica rilevanti (per motivi storici e pratici) e il
modello di codifica che andremmo a utilizzare, per poi continuare nel terzo
capitolo con una pi`u approfondita descrizione dell’algoritmo di compressione
scelto per questa tesi.
Nell’ultimo capitolo descriveremo in maniera pi`u approfondita i metodi
che abbiamo utilizzato per la nostra analisi quantitativa e i metodi utilizzati
per analizzare i dati che abbiamo ottenuto tramite gli algoritmi. Approfon-
diremo i nostri test, e dopo tutto questo possiamo solo che refforzare i dubbi
sull’integrit`a del Diario Postumo.
Indice
Introduzione iii
1 Entropia, entropia relativa e sorgenti di informazioni 3
1.1 Notazioni e definizioni . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Entropia ed entropia relativa . . . . . . . . . . . . . . . . . . . 5
1.3 Propriet`a di equipartizione asintotica . . . . . . . . . . . . . . 11
2 Il problema della compressione 17
2.1 Definizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Codifica ottimale . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Codice di Huffman . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4 Compressione con modelli probabilistici . . . . . . . . . . . . . 32
2.5 Codifica aritmetica . . . . . . . . . . . . . . . . . . . . . . . . 34
3 PAQ8 39
3.1 Breve storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Previsione per corrispondenza pariziale . . . . . . . . . . . . . 40
3.3 Descrizione dell’algoritmo . . . . . . . . . . . . . . . . . . . . 42
3.4 Test di compressione . . . . . . . . . . . . . . . . . . . . . . . 44
4 Entropia relativa 45
4.1 Entropia relativa . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Stime dell’entropia relativa . . . . . . . . . . . . . . . . . . . . 47
v
INDICE
4.3 Test di riconoscimento dell’autore . . . . . . . . . . . . . . . . 48
5 L’attribuzione del Diario Postumo di Montale 51
5.1 Testi e considerazioni . . . . . . . . . . . . . . . . . . . . . . . 52
5.2 Attribuzione del Diario Postumo . . . . . . . . . . . . . . . . . 55
5.3 L’albero filogenetico delle opere di Montale . . . . . . . . . . . 60
5.4 Attribuzione attraverso l’albero . . . . . . . . . . . . . . . . . 62
Capitolo 1
Entropia, entropia relativa e
sorgenti di informazioni
1.1 Notazioni e definizioni
Sia A un insieme finito di simboli, che chiameremo alfabeto. A pu`o
essere un insieme di qualsiasi tipo di simboli, numeri, lettere o simboli di
punteggiatura o altro ancora. Indicheremo con A∗
= ∪n∈NAn
e AN
gli insiemi
finiti e infiniti di sequenze di simboli di A.
Ora siamo interessati a un modello di meccanismo che genera sequenze di
simboli. Le sorgenti di informazioni sono rappresentate in maniere differenti
in vari campi della matematica, ad esempio i fisici matematici considerano
le sequenze di simboli come generate da sistemi dinamici, nei quali ad ogni
iterazione `e aggiunto un nuovo simbolo. Nel contesto della teoria dell’infor-
mazione `e pi`u comune utilizzare una rappresentazione in termine di processi
stocastici.
Definizione 1.1.1. Una stringa `e una sequenza di simboli di un dato alfabeto
A.
3
4 CAPITOLO 1. ENTROPIA E SORGENTI
Consideriamo una trasformazione Tl
definita come la traslazione di una
stringa di l passi, in maniera tale che Tl
s = sl+1sl+2... dove s `e una stringa
e si `e l’i-esimo simbolo della stringa. Se chiamiamo S un insieme di stringhe
infinite, Tl
S sar`a lo stesso insieme traslato di l passi. Un insieme S `e detto
invariante se Tl
S = S. Osserviamo che due esempi di insiemi invarianti sono
l’insieme di tutte le stringhe e quello vuoto.
Definizione 1.1.2. Sia (Ω, S, P) uno spazio di probabilit`a e A un alfabeto
finito.
Un processo stocastico `e una sequenza inifinita X := {Xn} = {X1, X2, ..., Xn, ...}
di variabili aleatorie Xn : Ω → A.
Definizione 1.1.3. Un processo stazionario si dice ergodico se ogni insieme
misurabile e invariante ha probabilit`a nulla o 1.
TS = S ⇒ P(S) = 0 o 1
Intuitivamente, un processo stazionario non cambia nel tempo il modo in
cui genera sequenze. Per quanto non sia una richiesta ovvia `e un’importante
propriet`a da richiedere per le sorgenti.
Definizione 1.1.4. Un processo stocastico X `e detto stazionario se la pro-
babilit`a di distribuzioni Tl
e X sono la stessa ∀k ≥ 1
P{X1 = x1, X2 = x2...} = P{Xl+1 = x1, Xl+2 = x2...}
In altre parole la probabilit`a di osservare la sequenza dai primi caratteri
emessi `e la stessa di osservarla dal carattere l + 1 in poi.
Definizione 1.1.5. Una sorgente di informazioni `e un processo stocastico
stazionario ergodico
1.2. ENTROPIA ED ENTROPIA RELATIVA 5
Il fatto che la nostra sorgente sia stazionaria e ergodica significa che quasi
tutte le sequenze che sono generate dal processo hanno le stesse propriet`a
statistiche. Questa propriet`a ha un grande interesse per le applicazioni
poich´e quasi ogni sequenza `e asintoticamente una “buona rappresentazione”
della sorgente, quindi in qualche maniera giustifichiamo l’utilizzo di stringhe
“abbastanza lunghe”per ricostruire la distribuzioni della sorgente d’origine
che solitamente `e ignota.
1.2 Entropia ed entropia relativa
Consideriamo una variabile aleatoria X con alfabeto A di cardinalit`a
finita e distribuzione di probabilit`a p(x) = P{X = x}, x ∈ A. Si sta
considerando il caso in cui la sorgente emetta un unico carattere, il cui valore
`e X, tra quelli dell’alfabeto A.
Definizione 1.2.1. L’ entropia di una variabile discreta `e definita da
H(X) = −
x∈A
p(x) log p(x) = −E(p(X))
La base del logaritmo e di tutti i prossimi che compariranno sar`a 2 se non
diversamente indicato.
`E facile mostrare che H ≥ 0 infatti
0 ≤ p(x) ≤ 1 ⇒ log
1
p(x)
≥ 0 ⇒
x∈A
p(x) log
1
p(x)
≥ 0
Inoltre H ≤ log |A|:
H(X) =
x∈A
pi log
1
pi
≤ log
x∈A
pi log
1
pin
(disuguaglianza di Jensen)
= log
x∈A
1 = log |A|
6 CAPITOLO 1. ENTROPIA E SORGENTI
Va notato che l’entropia massima, log |A|, `e raggiunta qunado si ha una
distribuzione uniforme, ovvero pi = 1
|A|
. Questo `e in caso il cui si raggiunge
la massima incertezza, poich´e ogni carattere ha la stessa probabilit`a di essere
incontrato.
Da queste osservazioni possiamo dire che l’entropia pu`o essere considerata
la misura dell’incertezza media dell’evento rappresentato dalla variabile X
conoscendo la sua distribuzione. Infatti l’entropia `e una quantit`a positiva e si
annulla solo nel caso in cui ∃x : p(x) = 1, ovvero nel momento in cui l’evento
`e certo. Al contrario raggiunge il suo valore massimo per una distribuzione
uniforme che, come detto poco fa, rappresenta la massima incertezza.
Se per esempio consideriamo l’entropia in caso di una variabile aleatoria
binaria, ovvero
X =



1 con probabilit`a p
0 con probabilit`a 1 − p
In questo caso la sorgente emette il valore 1 con probabilit`a p e il valore 0
con probabilit`a 1 − p. L’alfabeto considerato `e composto solo da 2 elementi:
1 e 0. Allora
H(X) = −p log p − (1 − p) log(1 − p) = H(p)
in particolare H(X) = 1 se p = 1
2
. In questo caso l’entropia `e una funzione
concava della distribuzione ed `e nulla quando p = 0 o p = 1, cio`e quando
uno dei due caratteri viene emesso con probabilit`a 1. Come ci aspettiamo
il massimo `e raggiunto quando p = 1
2
, ovvero nel momento di massima
incertezza. Da questo esempio possiamo dedurre che pi`u `e bassa l’entropia,
pi`u `e facile prevedere quale carattere sar`a emesso dalla sorgente.
Estendiamo ora la definizione di entropia alle coppie di variabili aleatorie.
Definizione 1.2.2. L’entropia congiunta H(X, Y ) di una coppia di variabili
aleatorie (X, Y ) con alfabeti A e B, con distribuzione di probabilit`a congiunta
1.2. ENTROPIA ED ENTROPIA RELATIVA 7
p(x, y) `e definita
H(X, Y ) = −
x∈A y∈B
p(x, y) log p(x, y)
e come per una variabile pu`o essere espressa come
H(X, Y ) = −E(log p(X, Y ))
L’entropia congiunta `e una generalizzazione dell’entropia a una variabile
ed `e anche questa non negativa. Intuitivamente l’entropia congiunta per
n variabili sar`a
H(X1, ..., Xn) = −
x1∈A1
· · ·
xn∈An
p(x1, ..., xn) log p(x1, ..., xn)
Vediamo ora che relazione c’`e tra entropia congiunta ed entropia di una
singola variabile.
Definizione 1.2.3. Se (X, Y ) seguono la distribuzione congiunta p(x, y)
allora l’entropia `e definita da
H(X|Y ) = −
x∈A
p(x)H(Y |X = X)
= −
x∈A
p(x)
y∈A
p(y|x) log p(y|x)
= −
x∈A y∈A
p(x, y) log p(x, y)
Da qui, si pu`o facilmente dimostrare che l’entropia di una coppia di
variabili `e uguale alla somma dell’entropia di una variabile con l’entropia
8 CAPITOLO 1. ENTROPIA E SORGENTI
codizionata dell’altra, infatti
H(X, Y ) = −
x∈A y∈B
p(x, y) log p(x, y)
= −
x∈A y∈B
p(x, y) log(p(x), p(x|y)
= −
x∈A y∈B
p(x, y) log p(x) −
x∈A y∈B
p(x, y) log p(y|x)
= −
x∈A
p(x) log p(x) −
x∈A y∈B
p(x, y) log p(y|x)
= H(X) + H(Y |X) (1.1)
In termini di incertezza, questa uguaglianza stabilisce che l’incertezza per le
due variabili x e y `e uguale all’incertezza media dell’incertezza di Y quando
X `e stata osservata.
La quantit`a di incertezza di un variabilie aleatoria andr`a a diminuire quando
viene osservata una seconda variabile aleatoria Y .
Teorema 1.2.4. Siano X e Y due variabili aleatorie che seguono la distri-
buzione di probabilit`a p(x, y). Allora
H(X|Y ) ≤ H(X)
L’uguaglianza vale solo nel caso di variabili indipendenti.
Dimostrazione.
H(X) − H(Y |X) = −
x∈A y∈B
p(x|y) log[p(x, y)p(y)] +
+
x∈A y∈B
p(x, y) log p(x)
=
x∈A y∈B
p(x, y) log
p(x)
p(x|y)
≤ log
x∈A y∈B
p(x, y)
p(x)
p(x|y)
=
x∈A y∈B
p(x)p(y) = log 1 = 0
1.2. ENTROPIA ED ENTROPIA RELATIVA 9
Nel caso in cui x e y siano indipendenti abbiamo che p(x, y) = p(x)p(y)∀x ∈
A e y ∈ B e poich`e p(x|y) = p(x) per ogni x ∈ A, l’entropia congiunta sar`a
la somma delle entropie
H(X, Y ) = H(X) + H(Y )
Le stesse definizioni possono essere estese in pi`u variabili, in particolare
l’entropia di n variabili `e la somma dell’entropie condizionate.
Teorema 1.2.5. Siano X1, X2, ..., Xn variabili aleatorie con distribuzione
di probabilit`a congiunta p(x1, ..., xn). Allora
H(X1, X2, ..., Xn) = H(X1) +
n
i=2
H(Xi|Xi−1, ..., X1)
Dimostrazione. Partendo dal fatto che l’entropia di due variabili aleatroie `e
la somma dell’entropia di una con l’entropia condizionata dell’altra si ha che
H(X1, X2) = H(X1) + H(X2|X1)
H(X1, X2, X3) = H(X1) + H(X2, X3|X1)
= H(X1) + H(X2|X1) + H(X3|X2, X1)
...
H(X1, ..., Xn) = H(X1) + H(X2|X1) + . . . H(Xn|Xn−1, ..., X1)
= H(X1) +
n
i=2
H(Xi|Xi−1, ..., X1)
Se le variabili aleatorie Xi sono indipendenti, l’entropia delle n variabili
sar`a la somma delle singole entropie.
In particolare se sono anche identicamente distribuite, l’entropia di una
variabile sar`a la stessa di tutte le altre, quindi
H(X1, ..., Xn) = nH(X1)
10 CAPITOLO 1. ENTROPIA E SORGENTI
Definita l’entropia per n variabili possiamo estendere la definizione in caso
di processi stocastici. In quanto le sequenze emesse da sorgenti discrete sono
considerate la realizzazione di un processo stocastico stazionario.
Definizione 1.2.6. L’entropia di un processo stocastico {Xi} `e definita come
H = lim
n→∞
1
n
H(X1, X2; ..., Xn)
quando il limite esiste.
Dimostreremo ora che nel caso di processi stocastici l’entropia esiste sem-
pre e coincide con il limite dell’entropia condizionata limn→∞ H(Xn|Xn−1, Xn−2, ..., X1).
Teorema 1.2.7. Per un processo stocastico stazionario H(Xn|Xn−1, Xn−2, ..., X1)
`e decrescente rispetto a n e ammette limite.
Dimostrazione. Per definizione di entropia condizionata e stazionariet`a del
processo abbiamo
H(Xn+1|X1, X2; ..., Xn) ≤ H(Xn+1|Xn, Xn−1, ..., X2)
= H(Xn|Xn−1, Xn−2, ..., X1)
Teorema 1.2.8. Per un processo stocastico stazionario l’entropia `e ben de-
finita e vale
H = lim
n→∞
H(Xn|Xn−1, Xn−2, ..., X1)
Dimostrazione. Dai teoremi precedenti otteniamo che
H(X1, X2, ..., Xn)
n
=
1
n
H(X1) +
n
i=2
H(Xi|Xi−1, ..., X1)
Poich`e nel teorema precedente abbiamo dimostrato che il limite di H(Xn|Xn−1, Xn−2, ..., X1)
esiste. Se una successione ammette limite allora anche la sua media conver-
ger`a allo stesso limite, quindi
H = lim
n→∞
H(X1, X2; ..., Xn)
n
= limn→∞(Xn|Xn−1, Xn−2, ..., X1) = H′
1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 11
Definizione 1.2.9. Un processo aleatorio si dice markoviano a k passi se
la distribuzione di probabilit`a dipende solo dai valori assunti negli ultimi k
istanti in cui il valore `e noto e non dai valori assunti precedentemente, quindi
P{Xn+1 = xn+1|Xn = xn, ..., X1 = x1} =
= P{Xn+1 = xn+1|Xn = xn, ..., Xn−k+1 = xn−k+1}
per ogni x1, x2, ..., xn ∈ A.
Consideriamo ora due sorgenti di informazioni X e Y con lo stesso alfabeto
finito A e distribuzioni p(x) e p(y).
Definizione 1.2.10. L’entropia relativa tra p(x) e p(y) `e definita come
d(p(x)||p(y)) = lim sup
n→∞
x∈A p(x) log p(X)
p(y)
n
L’entropia relativa misura la differenza statistica tra due distribuzioni e
ha le seguenti propriet`a
Teorema 1.2.11. Per ogni coppia di distribuzioni di probabilit`a p(x) e p(y)
per la quale d(p(x)||p(y)) `e definita, d(p(x)||p(y)) ≥ 0 e l’uguaglianza vale se
e solo se p(x) = p(y).
Grazie a questo risultato un versione simmetrizzata dell’entropia relativa
`e usata come pseudo-distanza tra sorgenti di informazione, anche se non `e
propriamente una distanza non soddisfacendo la disuguaglianza triangolare.
1.3 Propriet`a di equipartizione asintotica
La legge dei grandi numeri ha un analogo nella teoria dell’informazione,
questo analogo `e la propriet`a di equipartizione asintotica (AEP). Per la legge
12 CAPITOLO 1. ENTROPIA E SORGENTI
dei grandi numeri, date n variabili aleatorie inidipendenti e identicamente
distribuite, X1, X2, ...Xn, la media pesata converge in probabilit`a al valore
atteso, cio`e con probabilit`a 1
1
n
n
i=1
Xi → E(X)
L’AEP invece dice che −1
n
log p(X1, X2, ...Xn) si comporta come l’entropia H.
Per cui la probabilit`a di osservare la sequenza X1, X2, ...Xn `e vicina a 2−nH
.
L’AEP permette di suddividere le sequenze in due gruppi, le tipiche e le non
tipiche. Quest’ultime hanno probabilit`a trascurabile. Per questa ragione, per
studiare le propriet`a delle sequenze, sar`a possibile limitarsi a studiare quelle
tipiche.
Enunciamo il teorema AEP per variabili discrete indipendenti e identicamen-
te distribuite.
Teorema 1.3.1. Se X1, X2, ...Xn, sono variabili discrete indipendenti e iden-
ticamente distribuite, allora
−
1
n
log p(X1, X2, ...Xn) → H in probabilit`a
Dimostrazione. Le funzioni di variabili aleatorie indipendenti sono esse stesse
variabili aleatorie indipendenti, per cui, essendo le Xi indipendenti e identi-
camente distribuite, allora anche i log p(Xi) lo sono. Dalla legge dei grandi
numeri segue che
1
n
log p(X1, X2, ...Xn) =
1
n i
log p(Xi)
→ −E(log p(X)) in probabilit`a
= H(X)
Definizione 1.3.2. L’insieme delle An
ε delle n-sequenze ε-tipiche rispetto
alla probabilit`a p(x) `e composto dalle sequenze (x1, x2, .., xn) ∈ An
con la
1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 13
seguente propriet`a
2−n(H(X)+ε)
≤ p(x1, x2, .., xn) ≤ 2−n(H(X)−ε)
Inoltre vale il seguente teorema
Teorema 1.3.3. L’insieme An
ε rispetta le seguenti propriet`a:
1. Se (x1, x2, .., xn) ∈ An
ε allora
H(X) − ε ≤ −1
n
p(x1, x2, .., xn) ≤ H(X) + ε
2. P{An
ε } ≤ 1 − ε per n sufficientemente grande
3. |An
ε | ≤ 2n(H(X)+ε)
Dimostrazione. La prima propriet`a `e conseguenza immediata della definizio-
ne dell’insieme.
La seconda segue dal Teorema AEP per variabili indipendenti identicamente
distribuite, che implica che la probabilit`a dell’evento (X1, X2, ...Xn) ∈ An
ε
tende a 1 qunado n → ∞. Quindi per ogni δ > 0 esiste n ≥ n0 tale che
P
1
n
log p(X1, X2, ...Xn) − H(X) < ε > 1 − δ
Prendendo δ = ε otteniamo il punto 2.
Passiamo ora a dimostrare la terza propriet`a
1 =
x∈An
p(x)
≥
x∈An
ε
p(x)
≥
x∈An
ε
2−n(H(X)+ε)
= 2n(H(X)+ε)
|An
ε |
Da cui segue la terza propriet`a.
14 CAPITOLO 1. ENTROPIA E SORGENTI
Il teorema AEP `e stato presentato in forma astratta perch´e pu´o dimo-
strato anche per processi stocastici pi`u generali.
Nel caso di variabili aleatorie indipendenti e identicamente distribuite le
affermazioni del teorema possono essere apporfondite. Sia X una variabi-
le discreta che assume valori nell’alfabeto A = {x1, x2, .., xn}, definite le
probabilit`a di ogni elemento nell’alfabeto
P(X = xi) = pi
per i = 1...n.
Allora la probabilit`a di osservare la stringa (y1, ..., ym) `e
P{(X1, ...Xm) = (y1, ..., ym)} =
m
k=1
pik
= pm1
1 · · · · · pmn
n
(1.2)
dove m1, ..., mn `e il numero di volte che la variabile assume valori uguali
rispettivamente a x1, x2, .., xn e m1+...+mn = m. L’entropia di ogni variabile
aleatoria sar`a
H =
m
j
pj log pj
Poich´e le variabili aleatorie Xj sono indipendenti e identicamente distribuite
abbiamo che H(Xj) = H, e l’entropia delle m variabili `e
H(X1, ...Xm) = mH(X)
Inoltre non `e difficile dimostrare che se mi ∼ pjm allora la sequenza `e tipica,
infatti
log(pm1
1 . . . pmn
n ) =
n
j=1
mj log pj ∼ m
n
j=1
p1 log pj = −mH
1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 15
Infine il numero di queste stringhe `e
m!
m1!m2! . . . mn!
∼
mm
mm1
1 mm2
2 . . . mmn
n
∼
mm
j(pjn)nj
=
=
mm
mm
j(pj)npj
= 2mH
Abbiamo ricavato cos`ı la propriet`a 3 del precedente teorema. Si noti co-
munque che, le stringhe tipiche che abbiamo considerato qui non esauriscono
tutto l’insieme An
ε al quale appartengono anche tutte le stringhe per le quali
− ni
n
log pi `e H a meno di ε. In precedenza avevamo detto che l’AEP `e
valida per qualsiasi sorgente ergodica stazionaria. Il seguente teorema forni-
sce un risultato molto importante per stringhe emesse da sorgenti stazionarie
ergodiche, poich`e stabilisce che all’aumentare della lunghezza della stringa
aumenta la certezza che questa sia una stringa tipica
Teorema 1.3.4. Se H `e l’entropia per un processo ergodico a valori finiti
{Xn}, allora
lim
n→∞
P −
1
n
log P(X1, ...Xn) − H < ε = 1
16 CAPITOLO 1. ENTROPIA E SORGENTI
Capitolo 2
Il problema della compressione
Un classico problema di immagazzinamento e trasferimento dati `e causato
dalla grandezza dei dati. Nasce cos`ı la necessit`a di ridurre, quindi compri-
mere, queste sequenze di simboli in sequenze pi`u corte, cos`ı da occupare
meno memoria e da ottenere trasferimenti pi`u veloci. Naturalmente una
volta compresso un file, si ha il problema di avere una decompressione che
riporti il file allo stato originale, quindi leggibile. Comprimere un file di
testo significa trasformare una stringa di caratteri in una stringa di bit che
contenga la stessa informazione ma che sia pi`u corta.
L’entropia ha un ruolo determinante nella compressione, rappresentando il
limite massimo di compressione senza perdita di dati.
2.1 Definizioni
Sia A un alfabeto finito emesso dalla sorgente e D un nuovo alfabeto nel
quale vogliamo tradurre i messaggi. Indichiamo con D∗
l’insieme di tutte le
stringhe finite sull’alfabeto D.
Definizione 2.1.1. Un codice C `e una funzione da A in D∗
17
18 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Con C(x) indichiamo la codifica del valore x e con l(x) la lunghezza di
C(x).
Un classico esempio di codice `e il codice Morse, detto anche alfabeto Morse.
Fu sviluppato tra il 1835 e il 1840 da Samuel Morse.
Fu inizialmente usato per le trasmissioni telegrafiche. Il codice Morse ori-
ginale consisteva in combinazioni di punti e linee ognuna corrispondente a
un numero. A sua volta ogni numero corrispondeva a una parola ricavabile
attraverso la ricerca del numero in un apposito libretto. I numeri venivano
trasmessi mediante l’uso del tasto telegrafico. Il codice Morse fu subito
considerato lo standard per la codifica delle informazioni ed ebbe un cos`ı
ampio e incontrastato successo che nessun altro sistema alternativo riusc`ı
a soppiantarlo, rimanendo lo standard internazionale per le comunicazioni
marittime fino al 1999.
Il costo di un messaggio telegrafato dipendeva dalla sua lunghezza, per
questo vennero escogitati alcuni codici commerciali in modo da codificare
intere frasi in gruppi di poche lettere (normalmente cinque) che venivano
poi inviati come singole parole. Per esempio: LIOUY (“Perch´e non rispondi
alla mia domanda?”) o AYYLU (“Non codificato chiaramente, ripeti pi`u
chiaramente”). Tra questi, il codice Q e il codice Z hanno ancora una
discreta fortuna tanto che attualmente sono usati sia dai radioamatori che
dagli operatori di telegrafia per informazioni di servizio come la qualit`a
del collegamento, il cambio di frequenza o la numerazione dei telegrammi.
Per rappresentare le lettere ed altri simboli il codice Morse utilizza una
combinazione di 5 simboli: punto (•), linea (−), intervallo breve per separare
le lettere, intervallo medio per separare le parole e intervallo lungo per
separare le frasi. La lunghezza di un punto determina la velocit`a con cui viene
inviato il messaggio ed `e usato come unit`a di tempo di riferimento. Esiste
comunque un modo convenzionale di rappresentare la cadenza temporale dei
segnali da trasmettere. Una linea `e convenzionalmente tre volte un punto.
2.1. DEFINIZIONI 19
Gli spazi tra i punti e le linee di un carattere sono della lunghezza di un punto,
quelli tra le lettere sono ampi come una linea (tre punti), quelli tra parole sono
lunghi sette punti. La scelta delle combinazioni di simboli che rappresentano
le lettere `e fatta sulla base della frequenza di utilizzo delle lettere nella
lingua inglese, infatti lettere che vengono usate pi`u frequentemente come a
oppure e sono rappresentate da sequenze pi`u corte. Nel caso del codice Morse
considereremo come alfabeto A l’insieme costituito dalle lettere dell’alfabeto
e i numeri e come D l’insieme {•, −, , , }.
Un altro classico esempio di codice `e il codice ASCII (American Standard
Code for Information Interchange). Questo tipo di codice viene usato in
ogni computer, anche se sta venendo sostiutito pian piano da un altro codice
l’UTF-8. Ogni simbolo della tastiera `e rappresentato da un diverso byte
(una stringa di 8 bit). In principio quando l’ASCII era appena nato nel
1961 venivano usate stringhe di 7 bit, ma pochi anni dopo, con lo scopo di
raddoppiare il numero di simboli rappresentabili, venne esteso a stringhe di
8 bit. L’alfabeto A considerato dal codice ASCII, `e composto dal normale
alfabeto ripetuto due volte (ASCII considera lettere maiuscole e minuscole
come caratteri differenti), numeri, i simboli di punteggiatura e altri simboli
particolari, mentre D = {0, 1}.
Abbiamo preso questi due codici come esempio perch´e hanno una differenza
interessante: il codice Morse `e un codice a lunghezza variabile, cio`e ogni
carattere ha la sua lunghezza che pu`o essere diversa dalla lunghezza degli
altri caratteri, il codice ASCII invece rappresenta tutti i caratteri con stringhe
della stessa lunghezza.
Da ora indichiamo con xn
la stringa (x1, x2, ..., xn).
Definizione 2.1.2. Un codice `e detto non singolare se `e iniettivo ovvero
xi = xj ⇒ C(xi) = C(xj)
Definizione 2.1.3. L’estensione C∗
di un codice C `e un’applicazione che
20 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
manda stringhe finite dell’alfabeto A in stringhe finite di D definita da
C ∗ (xn
) = C(x1)C(x2) . . . C(xn)
dove con C(x1)C(x2) . . . C(xn) indichiamo le concatenazioni di parole di co-
dice corrispondente.
`E da notare che la sola non singolarit`a del codice non `e sufficiente affinch´e
il codice sia decifrabile in maniera univoca. Ad esempio sia
A = {a, b, c, d} C = 01, 10, 100, 101
C(a) = 01, C(b) = 10, C(c) = 100, C(d) = 101
la stringa 10010101 pu`o essere decifrata come 10 - 01 - 01 - 01 quindi baaa
oppure come 100 - 101 - 01 e quindi cda.
Definizione 2.1.4. Un codice `e detto univocamente decodificabile se la sua
estensione non `e singolare.
Se prendiamo come esempio
A = {a, b, c, d} C = 0, 01, 011, 0111
C(a) = 0, C(b) = 01, C(c) = 011, C(d) = 0111
sappiamo che ogni volta che incontriamo uno 0 sta iniziando un nuovo carat-
tere e il codice `e univocamente decodificabile. Un problema di questo tipo
di codifica `e che dobbiamo arrivare all’inizio del nuovo carattere per sapere
cosa stiamo leggendo. Utilizzando invece un codice del tipo
A = {a, b, c, d} C = 0, 10, 110, 1110
C(a) = 0, C(b) = 10, C(c) = 110, C(d) = 1110
ogni carattere `e decodificatto appena letto, poich´e lo 0 mi indica la fine del
carattere.
2.1. DEFINIZIONI 21
Definizione 2.1.5. Un codice `e detto istantaneo se non esiste nessuna parola
di codice che `e prefisso di un’altra parola di codice.
In altre parole, un codice `e istantaneo se ogni simbolo pu`o essere de-
codificato appena ricevuto. Un codice istantaneo `e sempre univocamente
decodificabile.
Tramite la disuguaglianza di Kraft abbiamo un criterio per stabilire se un
codice `e istantaneo o meno.
Teorema 2.1.6. Per ogni codice istantaneo su un alfabeto di grandezza L,
le lunghezze delle codifiche l1, l2, ..., ln devono soddisfare
i
L−li
≤ 1
Viceversa, se le lunghezze delle codifiche soddisfano la disuguaglianza, allora
esiste un codice L-ario istantaneo con queste lunghezze.
Dimostrazione. Consideriamo un albero L-ario dove ogni nodo ha L figli, gli
archi dell’albero sono etichettati con le lettere dell’alfabeto L-ario in modo
che ogni codifica `e rappresentata da una foglia dell’albero. I valori delle
codifiche sono ottenuti leggendo le etichette degli archi dell’albero dalla radice
ad una certa foglia. Essendo il codice istantaneo nessuna codifica `e il prefisso
di un’altra codifica.
Sia lmax la lunghezza massima della parola di codice, ovvero l’altezza dell’al-
bero L-ario. Presa una codifica ad altezza li per mantenare il codice prefisso
bisogna eliminare il sottoalbero di altezza lmax−li. Quindi verranno eliminate
Llmax−li
foglie, in totale verranno eliminate i Llmax−li
foglie. Poich`e il nu-
mero di foglie eliminate non pu`o superare il numero di foglie totali dell’abero
si ha
i
Llmax−li
≤ Llmax
i
L−li
≤ 1
22 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Al contrario supponendo che le lunghezze soddisfino la disuguaglianza di
Kraft, `e sempre possibile costruire un albero etichettando in maniera oppor-
tuna gli archi.
2.2 Codifica ottimale
Definizione 2.2.1. La lunghezza media L(C) di un codice C(x) per una
variabile aleatoria X di un alfabeto A con distribuzione di probabilit`a p(x) `e
data da
L(C) =
x∈A
p(x)l(x) = E(l(X))
Dimostreremo in seguito che questa grandezza non potr`a mai essere pi`u
piccola dell’entropia di X.
Definizione 2.2.2. Assegnata una distribuzione di probabilit`a, un codice
ottimale `e un codice istantaneo tale che la sua lunghezza media sia la pi`u
piccola tra tutte le lunghezze medie dei codici per la stessa distribuzione.
Abbiamo visto dalla disuguaglianza di Kraft che ottenere un codice otti-
male `e come trovare un insieme di lunghezze l1, l2, ..., lmax che soddisfino la
disuguaglianza e che rendano minima la lunghezza media A = i pili
Teorema 2.2.3. In un codice L-ario prefisso per una variabile aleatoria X
la lunghezza media soddisfa
A ≥ HL(X)
con l’uguaglianza se e solo se L−li
= pi.
2.2. CODIFICA OTTIMALE 23
Dimostrazione.
HL(X) − A =
i
pi logL
1
pi
−
i
pili
=
i
pi logL
1
pi
+
i
pi logL L−li
=
i
pi logL
1
piLli
≤ logL
i
pi ·
1
piLli
= logL
i
L−li
≤ logL 1 = 0 (2.1)
Le due disuguaglianze valgono rispettivamente la disuguaglianza di Jensen e
la disuguaglianza di Kraft
Teorema 2.2.4. Siano l∗
1, l∗
2, ..., l∗
max le lunghezze ottimali di un codice otti-
male per una sorgente X con distribuzione di probabilit`a p(x). La lunghezza
media del codice ottimale A∗
= i pil∗
i soddisfa
HL(X) ≤ A∗
≤ HL(X) + 1
Dimostrazione. La prima parte della disuguagliaza `e dimostrata dal prece-
dente teorema. Sia ora li = logL
1
pi
(dove ⌈x⌉ indica il pi`u piccolo intero
pi`u grande o uguale a x). Il codice esiste poich´e soddisfa la disuguaglianza
di Kraft:
i
L
− logL
1
pi ≤
i
L
− logL
1
pi =
i
pi = 1
La lunghezza media `e
A =
i
pili =
i
pi logL
1
pi
<
i
pi
1
pi
+ 1 = HL(X) + 1
Essendo la lunghezza media ottimale A∗
non `e pi`u grande di A, ne segue la
tesi del teorema
24 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Abbiamo sempre considerato il caso di una sola variabilea aleatoria X,
ma sarebbe pi`u interessante cosiderare il caso di una stringa generata da n
simboli di A. Supponiamo che ogni simbolo sia indipendente e identicamente
distribuito secondo la distribuzione p(x). Abbiamo cos`ı esteso il caso a n
variabili X1, ..., Xn all’insieme A. Chiamiamo ora Ln la lunghezza media per
simbolo
Ln =
1
n
(x1,...,xn)∈An
p(x1, ..., xn)l(x1, ..., xn) =
1
n
E(l(X1, ..., Xn)
Possiamo considerare la stringa degli n simboli come un unico simbolo del-
l’alfabeto An
, quindi possiamo applicare i teoremi precedenti e la lunghezza
media attesa sar`a
H(X1, ..., Xn) ≤ E(l(X1, ..., Xn) < H(X1, ..., Xn) + 1
Inoltre, avendo supposto che le variabili siano indipendenti e identicamente
distribuite possiamo dire che
n
i=1
H(Xi) = nH(X)
da cui
nH(X) ≤ nLn < nH(X) + 1
H(X) ≤ Ln < (X) +
1
n
Quindi prendendo n sufficientemente grande possiamo stimare la lunghezza
media ottimale come Ln H(X). A conferma di ci`o notiamo che un risultato
simile pu`o essere ottenuto utilizzando le propriet`a dell’AEP. Infatti possiamo
dividere l’alfabeto An
in due sottoinsiemi: An
ε , il gruppo delle lunghezze
tipiche, e il suo complementare. Ipotizziamo poi di ordinare gli elementi dei
due sottoinsiemi secondo un ordine stabilito, per cui ogni sequenza di An
ε
verr`a rappresentata dall’indice della sequenza nell’insieme. Abbiamo visto
2.2. CODIFICA OTTIMALE 25
in precedenza che gli elementi dell’insieme sono al pi`u 2n(H(X)+ε)
, per cui gli
indici utilizzaranno al pi`u n(H + ε) + 1 bit.
Alla stessa maniera possiamo indicizzare il complementare di An
ε usando al
pi`u n log |A|+1 bit. Sia ora l(xn
1 ) la lunghezza del codice corrispondente a xn
1 .
Se prendiamo n abbastanza grande tale che P{An
ε } ≥ ε, allora la lunghezza
media attesa sar`a
E(l(X1, ..., Xn) =
xn
p(xn
)l(xn
)
=
xn∈An
ε
p(xn
)l(xn
) +
xn∈An
ε
C
p(xn
)l(xn
)
≤
xn∈An
ε
p(xn
)[n(H + ε) + 2] +
xn∈An
ε
C
p(xn
)(n log |A| + 2)
= P{An
ε }[n(H + ε) + 2] + P{An
ε
C
}(n log |A| + 2)
≤ n(H + ε) + εn(log |A|) + 2
= n(H + ε′
)
dove ε′
= ε + ε log |A| + 2
n
e pu`o essere reso abbastanza piccolo con un’op-
portuna scelta di ε.
Abbiamo quindi concluso che preso ε > 0 esiste un codice che rappresenta la
sequenza xn
in una stringa binaria e la lunghezza media per carattere vale
Ln < H(X) + ε
con n sufficientemente grande.
Passiamo ora a un caso ancora pi`u generico, non richiedendo pi`u che le notare
variabili aleatore X1, ..., Xn siano necessariamente indipendenti e identica-
mente distribuite.
Teorema 2.2.5. La lunghezza media minima per simbolo soddisfa
H(X1, ..., Xn)
n
≤ L∗
n ≤
H(X1, ..., Xn)
n
1
n
26 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Inoltre se il processo `e stazionario
L∗
n → H
dove H rappresenta l’entropia del processo.
Dimostrazione. Sappiamo che per una stringa di lunghezza n vale
H(X1, ..., Xn) ≤ E)l(X1, ..., Xn) < H(X1, ..., Xn) + 1
Quindi dividendo per n si ottiene
H(X1, ..., Xn)
n
≤ L∗
n ≤
H(X1, ..., Xn)
n
1
n
Nel caso il processo sia stocastico si ha che
lim
n→∞
1
n
H(X1, ..., Xn) = H(X)
quindi per n → ∞ possiamo dire che
L∗
n → H
Come possiamo vedere da questo teorema, l’entropia ha un importante
ruolo: rappresenta il minimo numero di bit per carattere necessari per descri-
vere il processo. Allora da questo teorema deduciamo che se comprimiamo
una stringa con un codice ottimale, l’entropia della stringa per carattere sar`a
la lunghezza media per carattere della stringa compressa.
Abbiamo gi`a dimostrato che un codice istantaneo per essere ottimale deve
soddisfare la disuguaglianza di Kraft. Essendo i codici ottimali un sottoin-
sieme dei codici univocamente decodificabili, ci si potrebbe aspettare che
estendendo il minimo della lunghezza media su tutti i codici univocamente
decodificabili si abbia un risultato migliore. Il teorema di McMillan ci mostra
invece che non `e possibile ottenere una stima migliore della lunghezza media
A di quella ottenuta per i codici prefissi.
2.2. CODIFICA OTTIMALE 27
Teorema 2.2.6. Le lunghezze di un codice univocamente decodificabile sod-
disfano la disuguaglianza di Kraft. Viceversa, assegnato un insieme di lun-
ghezze che soddisfano la disuguaglianza di Kraft, `e sempre possibile costruire
un codice univocamente decodificabile con queste lunghezze.
Dimostrazione. Sia l(x) la lunghezza di una codifica assegnata a x ∈ A,
conseguentemente la lunghezza di una sequenza l(x1, ..., xn) = n
i=1 l(xi).
Osserviamo che
x∈A
L−l(x)
n
=
x1∈A x2∈A
· · ·
xn∈A
L−l(x1)
L−l(x2)
...L−l(xn)
=
x1,x2,...,xn)∈An
L−l(x1)
L−l(x2)
...L−l(xn)
=
xn∈An
L−l(xn)
Chiamiamo α(i) il numero di sequenze lunghe n codificate con sequenze
lunghe i. L’estensione Cn
`e non singolare dall’ipotesi che il codice sia uni-
vocamente decodificabile. Infatti per definizione Cn
`e la concatenazione di n
codici univocamente decodificabili. Poich`e Cn
`e non singolare, le codifiche per
Cn
devono essere tutte diverse e saranno al massimo tutte le foglie ad altezza
i di un albero L-ario, ovvero α(i) ≤ Li
. Indicando con lmax la lunghezza
massima tra le codifiche di Cn
, abbiamo che
xn∈An
L−l(xn)
=
n·lmax
i=1
α(i)L−i
≤
n·lmax
i=1
Li
L−i
= n · lmax
Quindi ∀n
xn∈A
L−l(x)
≤ n · l
1
n
max
28 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Poich`e per n → ∞ abbiamo che n · l
1
n
max → 1 otteniamo
xn∈A
L−l(x)
≤ 1
ovvero la disuguaglianza di Kraft.
Viceversa, assegnate le lunghezze l1, l2, ..., ln che soddisfano la disuguaglianza
di Kraft sappiamo gi`a che `e possibile costruire un albero dal quale ottenere un
codice istantaneo. Essendo un codice istantaneo univocamente decodificabile,
`e dimostrata la tesi.
Vediamo quindi che l’insieme di scelta per le lunghezze `e lo stesso sia
per un codice prefisso che per un codice univocamente decodificabile. Il
limite massimo di compressione media per carattere per questi codici resta
l’entropia del processo.
Nella compressione di testi si tengono in cosiderazione solo codici univoca-
mente decodificabili, poich´e siamo interessati a una codifica senza perdita di
informazioni, ovvero la stringa decodificata deve essere identica alla stringa
originale.
Osserviamo che non esiste un solo codice ottimale, infatti invertendo i bit o
scambiando codifiche della stessa lunghezza in un codice ottimale, si ottiene
un altro codice ottimale. Andiamo ora a dare delle propriet`a che un codice
ottimale deve avere.
Possiamo supporre, senza perdere di generalit`a, di avere le probabilit`a or-
dinate in senso non decrescente, in modo da ottenere p1 ≥ p2 ≥ ... ≥
pm.
Teorema 2.2.7. Per ogni distribuzione di probabilit`a p si pu`o sempre otte-
nere un codice ottimale per cui le due codifiche pi`u lunghe differiscono solo
nell’ultimo simbolo. Inoltre ogni codice ottimale soddisfa:
1. Se pj > pk, allora lj ≤ lk
2. Le due codifiche pi`u lunghe hanno la stessa lunghezza
2.2. CODIFICA OTTIMALE 29
Dimostrazione. Sia C un codice ottimale con lunghezza l1, l2, ..., lm.
Supponiamo per assurdo che pj > pk e lj ≥ lk.
Sia C′
il codice ottenuto da C scambiando la j-esima parola con la k-esima
parola.
Sia L′
= i=j,k pili + pjlk + pklj la lunghezza media di C′
.
Quindi la differenza tra le lunghezze attese sar`a
L′
(C′
) − L(C) =
i=j,k
pili + pjlk + pklj −
m
i=1
pili
= pjlk + pklj − pjlj − pklk
= (pj − pk)(lk − lj) < 0
Questo vuol dire che L′
< L, ma `e assurdo essendo C ottimale. Ovvero
lj ≤ lk.
Supponiamo ora per assurdo che il codice contenga un’unica parola di lun-
ghezza massima lmax. Allora `e possibile cancellare da essa l’ultimo bit,
rispettando la propriet`a di codice prefisso, ma ottenendo una lunghezza
media inferiore a L, ma anche questo `e un assurdo essendo C ottimale.
In generale non `e vero che in ogni codice ottimale le due codifiche differiscano
solo per l’ultimo bit, ma un codice ottimale qualsiasi pu`o essere modificato
per far si che sia vero.
Consideriamo ora un codice ottimale qualsiasi, dalle prime due propriet`a
segue che lm = lm−1 = max{li : 1 ≤ i ≤ m}. Supponiamo che le due
codifiche corrispondendi C(m) e C(m − 1), non differiscano solo nell’ultimo
bit, quindi i nodi associati non sono fratelli. Sia C(j) il fratello di C(m) con
j ≤ m − 2 per cui lj = lm = lm−1. C(j) non `e una codifica del codice, ma
si pu`o costruire un nuovo codice tale che al posto di C(m − 1) si abbia C(j).
La lunghezza media resta invariata, ma nel nuovo codice le due codifiche pi`u
lunghe differiscono solo per l’ultimo bit.
Utilizzeremo questo teorema nel prossimo paragrafo, per dimostare l’ot-
timalit`a dell’algoritmo di Huffman.
30 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
2.3 Codice di Huffman
Uno dei pi`u famosi e utilizzati codici prefissi ottimali `e, senza dubbio,
quello inventato da Huffman nel 1952. L’idea base del codice di Huffman
`e di rappresentare caratteri pi`u probabili con sequenze binarie pi`u corte
e viceversa. L’alfabeto L-ario per il codice di Huffman non `e che quello
binario. L’algoritmo lavora costruendo un albero binario utile anche nella
decodifica. L’albero viene costruito dal basso in alto in modo che ogni
foglia rappresenti un carattere. Stabilita la probabilit`a di ogni carattere da
codificare, l’algoritmo inizia costruendo per ogni carattere un albero formato
da una sola radice. A ogni passo i due caratteri con probabilit`a pi`u bassa
si uniscono sotto un nodo padre che ha come frequenza la somma della
frequenza dei due nodi. Il processo continua, scegliendo i due nodi con le
frequenze pi`u basse e ignorando i nodi che sono gi`a discendenti, fino a quando
si ha un solo nodo senza genitori, che diventa la radice dell’albero di Huffman.
Ogni arco a destra `e etichettato con 1 e a sinistra con 0. La codifica per un
carattere sar`a ottenuta dalla stringa di bit che si incontrano lungo il percorso
dalla radice alla foglia corrispondente al carattere. Caratteri pi`u comuni si
troveranno pi`u vicini alla radice. Spieghiamo il procedimento passo passo.
Vogliamo codificare la stringa this is an example of a huffman tree. I caratteri
da codificare sono {t, h, i, s, a, n, e, x, m, p, l, o, f, u, r, } e prendiamo come
probabilit`a di ogni simbolo la sua frequenza relativa con la quale appare nel
testo, cio`e 2
34
, 2
34
, 2
34
, 2
34
, 3
34
, 2
34
, 4
34
, 1
34
, 2
34
, 1
34
, 1
34
, 1
34
, 3
34
, 1
34
, 1
34
, 6
34
. I nodi corri-
spondenti a o e u vengono uniti in un unico nodo che viene etichettato con
la somma delle probabilit`a. lo stesso viene fatto con gli altri nodi di uguale
probabilit`a e il processo viene iterato fino ad arrivare a un nodo con etichetta
1. Il codice per ogni carattere si ottiene percorrendo un cammino sull’albero
dalla radice alla foglia del carattere interessato.
2.3. CODICE DI HUFFMAN 31
Figura 2.1: Esempio di funzionamento dell’algoritmo di Huffman
Nel nostro esempio, se volessi conoscere il codice del carattere m dovrei
passare sempre a sinistra e quindi otterrei 000. Le codifiche sono inidividua-
te senza nessuna ambiguit`a perch`e il codice Huffman `e un codice prefisso.
Osserviamo inoltre che il codice binario di Huffman per una distribuzione di
probabilit`a p1, ..., pm viene costruito ricorsivamente in modo che soddisfi le
propriet`a richieste nel teorema precedente.
Teorema 2.3.1. Il codice di Huffman `e ottimale. Se C∗
`e il codice di Huffman
e C′
`e un altro codice allora L(C∗
) ≤ L(C′
).
Dimostrazione. Procediamo per induzione sugli elementi della distribuzione.
L’algoritmo di Huffman passa dalla codifica di m a m−1 elementi sommando
le due probabilit`a pi`u piccole. Sia Cm il codice per m elementi con probabilit`a
(p1, ..., pm), appositamente ordinate in senso non crescente, in modo che le
due codifiche pi`u lunghe differiscano solo per l’ultimo bit.
Sia ora Cm−1 il codice per m − 1 elementi con probabilit`a (p1, ..., pm−2, p′
m−1)
dove p′
m−1 = pm−1 + pm. Le prime m − 2 codifiche di Cm−1 corrispondono
32 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
a quelle di Cm, mentre la codifica corrispondente alla probabilit`a p′
m−1 `e il
prefisso comune alle due codifiche pi`u lunghe di Cm. Quindi il legame tra i
due codici `e il seguente
Cm(i) = Cm−1(i) per i = 0, 1, ..., m − 2
Cm(m − 1) = Cm−1 · 0
Cm(m) = Cm−1 · 1
Osserviamo che L(Cm − L(Cm−1) non dipende dalla lunghezze del codice,
quindi minimizzare L(Cm `e come minimizzare L(Cm−1). Il procedimento viene
iterato finch´e non si ottiene un codice per solo 2 elementi, in questo caso il
codice assegner`a 0 ad un elemento e 1 all’altro.
Essendo il codice per 2 elementi sempre ottimo, si pu`o usare l’ipotesi indut-
tiva. Ora vogliamo dimostrare che se Cm−1 `e minima per costruzione, allora
anche Cm lo `e.
Ovviamente come ogni codice prefisso e ottimale, la lunghezza soddisfa
HL(X) ≤ L(C∗
) ≤ HL(X) + 1
Fino a ora abbiamo sempre ipotizzato di conoscere la probabilit`a di ogni
carattere dell’alfabeto, nel caso pi`u generale qunado si comprime una stringa
non si conosce con che probabilit`a si presenteranno i caratteri.
2.4 Compressione con modelli probabilistici
Alcuni metodi di compressione si possono dividere in due fasi: modelliz-
zazione e codifica. Nella prima fase si assegna ad ogni simbolo dell’alfabeto A
che si intende codificare, una probabilit`a che, nella fase di codifica, si utilizza
per generare una stringa compressa. La fase di modellizzazione `e molto
importante in quanto si otterr`a una buona compressione solo se preceduta
2.4. COMPRESSIONE CON MODELLI PROBABILISTICI 33
da un’esatta stima della probabilit`a. Quanto pi`u accurata sar`a tale stima,
tanto pi`u si potr`a conseguire una buona compressione.
Vengono chiamati metodi adattativi invece quelli che iniziano con una pro-
babilit`a base e la modificano mano a mano che i simboli vengono codificati.
Durante il processo di codifica, il modello viene adattato a seconda dei simboli
incontrati in modo da ottenere una statistica sempre pi`u adeguata al testo
da codificare. Il modello pu`o adattarsi solo ai simboli gi`a codificati, dato che
nella fase di decompressione bisogna essere in grado di riottenere lo stesso
modello via via che il testo compresso viene decodificato.
Bisogna osservare per`o che nella maggior parte dei casi i simboli emessi in
sequenza non sono indipendenti: la scelta di un certo simbolo `e influenzata
anche dai caratteri che lo precedono. Nella lingua italiana, per esempio,
esistono evidenti relazioni tra caratteri: il carattere h sar`a seguito sicura-
mente solo da vocali mentre la lettera q `e seguita quasi sicuramente da una
u. Risulta quindi conveniente stimare la probabilit`a attraverso la dipendenza
statistica dei simboli e come questa cambia lungo il testo.
Chiamiamo modelli di ordine m quelli che utilizzano gli ultimi m simboli
codificati per stimare la probabilit`a. Un modello, semistatico o adattativo,
di ordine 0 `e un modello che tratta ogni simbolo come indipendente e stima la
sua probabilit`a attraverso la sua frequenza, senza tenere conto del contesto.
La probabilit`a di ogni carattere `e quindi stimata dalla frequenza relativa che
quel carattere compaia nella stringa gi`a codificata. In un modello di primo
ordine adattativo la probabilit`a di avere un certo carattere verr`a calcolata
attraverso la frequenza relativa con cui compare quel carattere preceduto
dall’ultimo carattere codificato. Per modelli di ordine m la probabilit`a `e
stimata da quanto spesso quel carattere compare preceduto dal contesto
lungo m.
Metodi che usano sempre lo stesso modello per comprimere qualsiasi testo
vengono chiamati statici. Pu`o accadere di codificare un testo molto differente
34 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
da quello da cui il modello era stato ricavato. Ad esempio, un modello per
un testo in italiano non sar`a idoneo per un testo scritto in un’altra lingua e
viceversa. Una soluzione `e quella di generare il modello specifico per il testo
che si sta comprimendo. Il primo passo `e quello di stimare le probabilit`a
di ogni simbolo presente nel testo e trasmetterle al decompressore prima di
passare la codifica dei simboli. Metodi di questo tipo vengono chiamati semi-
statici. In questo caso si adotta un modello in cui ogni simbolo `e indipendente
ed identicamente distribuito, in cui non si tiene conto dell’occorrenza passata.
L’esempio riportato per la codifica di Huffman `e un esempio semistatico. In
quel caso abbiamo stimato la probabilit`a dei caratteri dalla frequenza relativa
della stringa.
La codifica di Huffman risulta ottimale quando viene presa una distribuzione
statica o semistatica, ma `e preferibile non usarla per metodi adattativi. Nel
caso di metodi adattativi la distribuzione cambia ogni volta che un carattere
`e codificato e questo comporta che nel codice di Huffman bisogna rigenerare
l’albero ogni volta. Per una compression adattativa `e preferibile usare la
codifica aritmetica, dove la fase di modellizzazione `e separata dalle operazioni
di codifica.
2.5 Codifica aritmetica
La codifica aritmetica `e una tecnica di compressione senza perdita di
informazione. Normalmente in informatica i dati sono rappresentati come
un insieme fisso di bit, per esempio i caratteri sono spesso rappresentati
con otto bit. La codifica aritmetica, partendo dal presupposto che alcuni
simboli tendono ad apparire pi`u frequentemente di altri, assegna dei codici
di lunghezza variabile ai simboli, al fine di minimizzare il numero totale di
bit da trasmettere. Questa strategia viene utilizzata anche da altri sistemi
di codifica, come abbiamo visto anche per il codice di Huffman ma, mentre
2.5. CODIFICA ARITMETICA 35
il codice di Huffman associa una specifica codifica a ogni singolo simbolo,
la codifica aritmetica associa una singola codifica all’intero messaggio o a
blocchi di questo.
Possiamo schematizzare questo algoritmo in 3 passi:
• Definizione dell’intervallo iniziale, solitamnete [0, 1)
• Per ogni simbolo s della stringa
– Dividere l’intervallo corrente in sottointervalli la cui ampiezza `e
proporzionale alle probabilit`a dei simboli
– Individuare il sottointervallo per il simbolo s e definirlo come
nuovo intervallo corrente
• Restituire il numero che unicamente definisce l’intervallo corrente, cio`e
un numero all’interno dell’intervallo
Sia A l’alfabeto finito della sorgente, supponiamo di conoscere le probabilit`a
p1, ..., pM con cui la sorgente emette gli M simboli e indichiamo con c(n) =
n−1
i=1 la funzione di distribuzione. Indichiamo con xk il k-esimo simbolo della
stringa lunga N emessa dalla sorgente. La codifica aritmetica, seguendo i
passi descritti sopra, consiste nel creare intervalli contenuti uno dentro l’altro
nella forma Φk = [αk, βk), con k = 0, 1, ..., N dove αk e βk sono numeri reali
tali che 0 ≤ αk ≤ αk+1 e βk+1 ≤ βk < 1. Per avere una notazione pi`u
semplice, possiamo indicare l’intervallo tramite il punto iniziale b e la sua
lunghezza l. Quindi l’intervallo [α, β) corrisponder`a all’intervallo |b, l dove
b = α e l = β − α.
Possiamo riscrivere la codifica aritmetica in maniera iterativa
Φ0 = |b0, l0
Φk = |bk, lk = |bk−1 + c(xk)lk−1, pklk−1 , per k = 1, 2, .., N
36 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Ogni intervallo viene suddiviso in sottointervalli tramite la funzione di di-
stribuzione c e ad ogni passo k viene preso come nuovo intervallo quello
corrispondente al carattere xk.
La codifica aritmetica `e una codifica sub-ottima ma che presa una stringa di
lunghezza N se N → ∞ al limite `e un algoritmo ottimale.
La particolarit`a della codifica aritmetica `e che la modellizzazione `e separata
dalla codifica. Supponiamo di voler comprimere la stringa bccb dall’alfabeto
A = {a, b, c} usando un metodo adattivo di ordine 0.
Supponiamo che i caratteri abbiano tutti la stessa probabilit`a di comparire,
quindi
Φ0 = |b0, l0 = [0, 1)
Φ1 = |b0 + ck(b)l0, p1(b)l0 = |0 +
1
3
,
1
3
= [0.333, 0.666)
Prima di calcolare il nuovo intervallo vanno stimate le nuove probabilit`a,
sapendo che il simbolo b `e comparso una volta. Quindi la nuova disrtibuzione
di probabilit`a sar`a p2(a) = 1
4
; p2(b) = 1
2
; p2(c) = 1
4
. Ora possiamo calcolare
l’intervallo
Φ2 = |b1 + c2(c)l1, p2(c)l1 = |
1
3
+
3
4
·
1
3
,
1
4
1
3
= [0.5833, 0.667)
La stringa pu`o essere espressa con qualsiasi valore dell’ultimo intervallo tro-
vato v ∈ [0.6394, 0.6501). In questo caso la scelta pi`u conveniente `e v = 0.64.
Nella decompressione viene usato lo stesso identico procedimento della fase di
compressione. Si inizia dall’intervallo [0, 1) e lo si divide proporzionalmente
secondo le probabilit`a, poi si vede in che intervallo cade il nostro codice e si
trova il primo carattere. Si calcolano quindi le nuove probabilit`a conoscendo
il carattere visto e, posizionando il codice, si trova il carattere successivo. Il
2.5. CODIFICA ARITMETICA 37
Figura 2.2: Un esempio di codifica/decodifica aritmetica
procedimento viene iterato fino al completamento della stringa.
`E necessario indicare al processo quando bisogna terminare la decodifica, ma
si pu`o ovviare a questo problema passando prima della stringa compressa
la dimensione della stringa originale oppure usand dei simboli speciali che
indicano la fine della stringa.
38 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
Capitolo 3
PAQ8
Gli algoritmi di compressione possono dividersi in due categorie: quelli a
compressione tramite statistica e quelli a compressione tramite sostituzione
o con dizionario. I primi si basano sulla studio della frequenza dei caratteri;
appartengono a tale categoria l’algoritmo di Huffman e la codifica aritme-
tica, mentre i secondi codificano stringhe di caratteri fornendo i riferimenti
che consentono l’individuazione nel dizionario. Noi ci concentreremo su un
particolare algoritmo a compressione tramite statistica, il PAQ8.
3.1 Breve storia
Il PAQ `e un algoritmo scritto nel 2001 da Serge Osnach, lo scopo di questo
algoritmo era quello di comprimere dati tramite reti neurali. Il PAQ1 ancora
non usava reti neurali, ma riusciva a migliorare gli algoritmi di previsione
per corrispondenza parziale utiliazzandi differenti contesti per la previsione.
Serge Osnach ha continuato a migliorare il suo algoritmo fino al 2003 scriven-
do il PAQ3N. Questo ultimo algoritmo non `e compatibile con i precedenti,
perch`e vennero introdottr per la prima volta nel PAQ i modelli di ordine 2.
Dal PAQ4 in poi Matt Mahoney ha continuato a sviluppare l’algoritmo. Il
primo grande cambiamento che port`o, fu l’introduzione dell’aggiornamento
39
40 CAPITOLO 3. PAQ8
dei pesi dei modelli utilizzati da PAQ per comprimere. Nel PAQ5 introdusse
il riconoscimento del file da comprimere, in modo da partire inizialmente con
modelli con pesi diversi.
Il PAQ6 viene scritto per vincere il Calgary Challenge .
Con il PAQ7 finalmente si raggiunge lo scopo di utilizzare le reti neurali.
L’algoritmo rispetto al PAQ6 `e praticamente riscritto da capo e con questo
grande cambiamento si ottengono compressioni di gran lunga migliori e con
tempi fino a 3 volte pi`u brevi.
Nel 2006 viene scritto il PAQ8, che in una delle sue versioni, partecipa e vince
il premio Hutter, un concorso per il miglior compressore di dati utilizzante
reti neurali. Il PAQ8 riesce a comprimere tutti i testi di enwik8 ( cio`e la
versione inglese di wikipedia) in meno di 18Mb. E nell’anno successivo il
PAQ8 viene migliorato da Alexander Rhatushnyak, che riesce a comprimere
enwik8 in circa 16.5Mb.
A fine 2007 sono stati scritti anche il PAQ9 e LPAQ, con il quali si cercava
di migliorare l’algoritmo di PAQ8 e di mostrare che esistono altri algoritmi
di compressione aritmetica ottimali, ma questi ultimi algoritmi non sono pi`u
supportati e sono rimasti in fase sperimentale.
Attualmente gli unici algoritmi sufficientemete veloci da poter essere usati
normalmente (non per scopi di ricerca) come compressori basati su reti
neurali sono P5, P6 e P12, ma il loro grado di compressione `e simile a quello
di PAQ1.
3.2 Previsione per corrispondenza pariziale
La previsione per corrispondenza parziale `e un metodo adattativo di
compressione dati statistica. Questo metodo utilizza un insieme di simboli
gi`a incontrato tra quelli emessi dalla sorgente per predire il prossimo simbolo
3.2. PREVISIONE PER CORRISPONDENZA PARIZIALE 41
che sar`a emesso.
Il numero n di simboli che questo modello considera per la sua previsione
determina l’ordine dell’algoritmo. Se guardando gli utlimi n simboli non
pu`o essere fatta alcuna previsione perch´e `e la prima volta che il modello
incontra questa sequenza di simboli, allora si scender`a di un ordine, andando
quindi a considerare il contesto di lunghezza n − 1. L’algoritmo ripete
questo procedimento fino a trovare un contesto che permette la previsione
del simbolo successivo. Ci sono alcune particolari versioni di Previsione
per corrispondenza parziale dette di ordine ∗, questo perch´e non hanno
un numero massi di simboli da considerare nel contesto per calcolare la
previsione.
La maggior parte del lavoro di ottimizzazione di questo tipo di algoritmo
`e proprio nella gestione degli input mai incontrati in precedenza nel flusso
di simboli emesso dalla sorgente. Questo problema `e detto Zero-frequency
problem.
Una possibile soluzione attualmente utilizzata per ovviare a questo problema
`e quella di considerare un input mai incontrato, come se fosse stato gi`a
incontrato una volta. Cos`ı facendo non esistono pi`u simboli che hanno
frequenza zero nel flusso emesso dalla sorgente e viene comunque contenuto
l’errore nella previsione.
Una seconda solizione utilizzata al problema `e quella di considerare ogni nuo-
vo imput come se fosse stato gi`a incontrato m volte, dove con m indichiamo
il numero di volte che `e stato incontrato un nuovo simbolo. Il vantaggio di
questa seconda soluzione `e quello di poter stimare la probabilit`a di incontrare
nuovi simboli nel flusso.
Per come `e concepito, l’algoritmo di previsione per corrispondenza parziale,
sarebbe implementabile su un algoritmo di Huffman o un qualsiasi altro
algoritmo di compressione con dizionario, attualmente per`o si preferisce im-
plementarlo negli algoritmi di codifica aritmetica.
42 CAPITOLO 3. PAQ8
Fino ai primi anni ’90 questo algoritmo non era molto utilizzato, poich´e
nonostante la sua efficacia, richiedeva grandi quantit`a di RAM.
Anche se attualmente questo algoritmo viene utilizzato con un modello di
previsione markoviana, sarebbe possibile utilizzare altri modelli di previsione,
oppure utilizzare pi`u modelli di previsione contemporaneamente. Quest’ulti-
ma `e la strada intrapresa dagli sviluppatori di PAQ per migliorare l’algoritmo
di previsione per corrispondenza parziale.
3.3 Descrizione dell’algoritmo
Il PAQ8 usa un algoritmo di context mixing, il context mixing `e un parti-
colare algoritmo di previsione per corrispondenza parziale, che differisce dagli
altri algoritmi di previsione per contesto parziale perch´e dato un simbolo, la
previsione del simbolo successivo viene calcolata usando una combinazione
pesata di stime di probabilit`a da un vario numero di modelli per differenti
contesti. Il PAQ usa i seguenti metodi di previsione:
• n-grammi, il contesto sono gli ultimi n byte prima del simbolo predetto
(come per gli altri algoritmi di previsione per contesto parziale)
• parole intere, ignorando maiuscole e minuscole e simboli non alfabetici
• contesto scarso, per esempio il secondo e il quarto byte che precedono
il simbolo predetto
• contesto analogico, un modello specializzato per i file musicali
• contesto bi-dimensionale, un modello specializzto per i file immagine
• altri modelli specializzati, utilizzati solo per particolari tipi di file
La codifica aritmetica del PAQ, poich`e viene compresso un bit alla volta,
divide sempre l’intervallo sempre in due parti, assegnando a ogni parte una
3.3. DESCRIZIONE DELL’ALGORITMO 43
lunghezza pari all’attuale probabilit`a di 0 e di 1. Il PAQ risolve il problema
di della fine del file, conoscendo la lunghezza del file da comprimere. Ogni
modello calcola una probabilit`a, queste vengono combinate in questa maniera
xi = log
Pi(1)
1 − Pi(1)
P(1) =
1
1 + e− i ωixi
dove Pi(1) `e la probabilit`a che il bit sia 1 stimata dall’i-esimo modello, P(1)
`e la probabilit`a che il prossimo bit sia 1 e ωi `e il peso dell’i-esimo modello.
Dopo questa previsione, il modello `e aggiornato ricalcolando i pesi
ωi ← ωi + ηxi(y − P(1))
dove η `e il tasso di apprendimento e (y − P(1)) `e l’errore della predizione.
Questo aggiornamento del peso, differisce dal classico apprendimento per
errore perch´e il suo scopo `e quello di minimizzare il costo del codice e non di
diminuire l’errore.
Ogni modello di partizione conosce il numero di bit di una data stringa s in
un contesto e manda ogni contesto nella “storia” dei bit rappresentata da uno
stato di 8 bit. Sotto certe condizioni, lo stato `e rappresenta anche il valore
dell’ultimo bit o l’intera sequenza. Gli stati sono mappati nelle probabilit`a
usando una tabella a 256 elementi per ogni modello. Dopo ogni predizione
di un modello, la tabella viene aggiornata per ridurre l’errore di predizione.
In PAQ8, gli stati rappresentabili sono i seguenti:
• L’esatta sequenza di bit fino a 4 bit.
• Una coppia di numeri e un indicatore del bit pi`u recente per una
sequenza da 5 a 15 bit
• Una coppia di numeri per le sequenze da 16 a 41 bit
44 CAPITOLO 3. PAQ8
Per mantenere il numero di stati a 256, sono imposti alcuni limiti nella
rappresentazione delle coppie di numeri. Se una coppia supera questi limiti,
allora lo stato successivo `e scelto in maniera da avere un rapporto simile alla
coppia. Quindi, se lo stato attuale `e n0 = 4, n1 = 4, b = 0 (dove n0 e n1
sono la coppia di numeri e b `e l’ultimo bit) e viene osservato 1, allora il nuovo
stato non sar`a n0 = 4, n1 = 5, b = 1, sar`a invece n0 = 3, n1 = 4, b = 1.
La maggior parte dei contesti sono implementati come tabelle di hash.
3.4 Test di compressione
Riportiamo di seguito una tabella che confronta PAQ8 con due com-
pressori comunemente utilizzati, bzip e gzip. Possiamo subito notare che
il rapporto di compressione ottenuto da PAQ8 `e notevolmente migliore di
quello degli altri due compressori, ma questo va a scapito della velocit`a di
compressione, che rende PAQ8 troppo lento per l’utilizzo quotidiano.
PAQ8 GZip Bzip2
File Dim Tempo Dim Tempo Dim Tempo Dim
c1 27561 1.45s 8148 0.01s 11205 0.01s 9713
c2 25337 1.31s 8447 0.01s 11062 0.01s 9795
c3 27190 1.55s 8853 0.01s 11694 0.01s 10411
ma1 51058 2.77s 16710 0.01s 22489 0.01s 19216
ma2 38838 2.07s 13306 0.01s 17650 0.01s 15229
ma3 42626 2.21s 14684 0.01s 19492 0.01s 16917
mb4 61239 3.19s 20393 0.01s 27136 0.01s 23504
mb5 49847 2.62s 16742 0.01s 22116 0.01s 19288
mb6 60553 3.21s 19541 0.01s 26173 0.01s 22585
Capitolo 4
Entropia relativa
4.1 Entropia relativa
Nel primo capito abbiamo introdotto l’entropia relativa come misura della
differenza statistica tra due distribuzioni. Andiamo ora a dimostrare le
propriet`a che avevamo enunciato
Teorema 4.1.1. Siano p(x) e q(x) due distribuzioni di probabilit`a con x ∈ A
alfabeto, allora
D(p||q) ≥ 0
con l’uguaglianza solo se p = q
45
46 CAPITOLO 4. ENTROPIA RELATIVA
Dimostrazione. sia X = {x ∈ A : p(x) > 0, allora
−D(p||q) = −
x∈X
p(x) log
p(x)
q(x)
=
x∈X
p(x) log
q(x)
p(x)
≤ log
x∈X
p(x) log
q(x)
p(x)
= log
x∈X
q(x)
≤ log
x∈⊣
q(x)
= log(1) = 0
Dalla serie di equazioni e disequazioni si nota anche che D(p||q) = 0 se e solo
se p = q.
Come possiamo facilmente immaginare, per una successione x ∈ An
, la
definizione di entropia relativa sar`a
Dn(p||q) =
x∈⊣
p(x) log
p(x)
q(x)
Richiamiamo ora la definizione di sequenze tipiche per una sorgente A che
emette in modo indipendente e identicamente distribuito i propri caratteri.
Nel primo Capitolo, dopo aver presentato la propriet`a di equipartizione
asintotica, avevamo definito le stringhe tipiche (x1, ..., xn) quelle per cui
p(x1, ..., xn) ∼ 2−nH
dove H = − x∈A p(x) log p(x) `e l’entropia della sor-
gente. Definito l’alfabeto finito A = {y1, ..., ym}, chiamiamo pi = P{x = yi}.
Le stringhe tipiche per la sorgente A sono quelle per cui ni = pin.
Supponiamo di conoscere la distribuzione q con cui una sorgente B emetta i
caratteri sempre in modo indipente e identicamente distribuiti. La sorgente
emetter`a una sequenza tipica per A se n
i=1
ni
n
log q(x) `e circa l’entropia della
4.2. STIME DELL’ENTROPIA RELATIVA 47
sorgente A. Vogliamo quindi calcolare quante la probabilit`a che la sorgente
B emetta una stringa tipica per A.
P{(x1, ..., xn) ∈ Aε
n, B} = 2−n n
i=1 pi log pi
2−n n
i=1 pi log qi
= 2
−n n
i=1 pi log
pi
qi
Da cui ricaviamo che la probabilit`a `e proprio 2−nD(p||q)
. Dato che l’entropia
relativa `e una quantit`a positiva si ricava che se n → ∞ la probabilit`a tende
a 0.
4.2 Stime dell’entropia relativa
Ricalcado il lavoro fatto da D. Benedetto e M. degli Espositi sull at-
tribuzione del Diario Postumo di Montale andremo a stimare la distanza
di similarit`a tra testi, cio`e utilizzeremo degli algoritmi che restituiscono un
numero e, pi`u `e piccolo questo numero, pi`u saranno ”vicini“ i testi analizzati.
Procederemo prendendo due sequenze lunghe A e B emesse da due sorgenti
X1 e X2 e una sequenza breve b emessa da X2. Creeremo una nuova sequenza
A + b semplicemente concatenando i due file. Poi comprimeremo queste
sequenze con PAQ8 . Indichiamo con LY la lunghezza del file Y compresso,
allora la lunghezza di b per A sar`a ∆Ab = LA+b − LA. Ora se A e b sono
simili si aspettiamo di trovare un numero di stringhe di b ripetute in A. Una
stima dell’entropia relativa tra X1 e X2 sar`a
EX1X2 =
∆Ab − ∆Bb
|b|
dove |b| indica la lunghezza del file non compresso. EX1X2 risulter`a piccolo
tante pi`u stringhe di b verranno trovate in A. EX1X2 sar`a l’inidicatore della
distanza tra le sorgenti. In particolare nel caso di un testo, sar`a l’indicatore
per stabilire se i testi confrontati appartengono allo stesso autore.
Lo scopo di queste analisi `e cercare differenze tra il Diario Postumo e gli
48 CAPITOLO 4. ENTROPIA RELATIVA
altri scritti di Montale, per confermare o confutare i dubbi gi`a esistenti
sull’autenticit`a di questi scritti.
A differenza del lavoro svolto da D. Benedetto e M. degli Espositi, invece di
lzwe, l’algoritmo di compressione che useremo sar`a PAQ.
4.3 Test di riconoscimento dell’autore
L’entropia relativa costituisce un buona indicatore per la vicinanza tra
stringhe emessa da sorgenti diverse; tale valore in particolare pu`o essere
utilizzato per l’attribuzione di un testo ad un autore. In questo caso i testi
sono visti come stringhe di simboli emessi (scritti) da sorgenti (autori) diversi.
La vicinanza tra due testi `e stimata EX1X2 definita poco fa, i testi risultano
simili tanto pi`u tale valore risulta piccolo. La stima dell’entropia relativa tra
due testi pu`o essere interpretata come la distanza tra gli stessi.
Per determinare se l’autore di un testo, alliinterno di un corpus di testi
considerati, si procede in questo modo. Ogni testo x viene considerato ignoto
rispetto ai restanti testi del corpus considerato. Viene stimata per ogni testo
y dei testi noti l’entropia relativa data da Exy, considerata la distanza tra i
due testi.
L’autore pu`o essere stabilito attrvarso due metodi diversi: il metodo dei primi
vicini e il metodo dei pesi.
Il metodo dei primi vicini attribuisce il testo x all’autore del testo y che
realizza il mimimo valore per la stima dell’entropia relativa tra x e i testi
di prova. Il metodo dei primi vicini per`o `e condizionato fortemente dalla
lunghezza dei testi utilizzati per il confronto. Se confrontiamo lo stesso
testo con altri due testi di lunghezza tra loro diversa, il numero di stringhe
maggiore sar`a trovato con alta probabilit`a nel testo di lunghezza maggiore.
Vogliamo quindi un metodo che non sia condizionato dalla lunghezza dei
testi a confronto. Ecco quindi il metodo dei pesi. Supponiamo di avere due
4.3. TEST DI RICONOSCIMENTO DELL’AUTORE 49
sorgenti, M (per esempio Montale) e C (per esempio altri autori). Preso un
testo x dalla sorgente M indichiamo con m e c la distribuzione empirica delle
distanze del testo x da un testo casule rispettivamente della sorgente M e C
. Con una trasformazione monotona possiamo considerare m uniformemente
distribuita in [0, 1] e c come una variabile continua in [0, 1]. Indichiamo con
pc la funzione di distribuzione di c rispetto a m. Se z ∈ [0, 1] indica la frazione
di testi della sorgente M che distano dal testo x meno di una certa distanza
d, allora mn(z) rappresenta la frazione di testi della sorgente C che hanno
una distanza da x pi`u piccola di d. Scelto un testo x, calcoliamo attraverso
la stima dell’entropia relativa le distanze di questo da l testi appartenenti
alla sorgente M e da l testi appartenenti all’altra sorgente. Indichiamo con
r = {M, C}2l
la classifica in cui gli autori sono disposti in ordine crescente
in base al critero della distanza dei loro testi da quello da attribuire. Ad
esemempio se l = 5, r = (M, C, C, M, M) vuol dire che il primo vicino di x
`e un testo della sorgente di M, mentre il secondo e il terzo vicino sono testi
della sorgente C . Supponiamo di conoscere la funzione di distribuzione, pn
e calcoliamo la probabilit`a condizionata di avere la classifica r sapendo che
il testo x appartiene alla sorgente M.
P(r|x ∈ M) =
1
0
ρ1(z1)dz1
1
z1
rho2(z2)dz2 · · ·
1
z2l−1
ρ2la2ldz2l
dove
ρi(z) =



1 se ri = M
pn se ri = C
Nello stesso modo possiamo calolare P(r|x ∈ C). Il testo x verr`a attribuito
a M o C a seconda della differenza di P(x ∈ M|r) − P(x ∈ C|r); queste
probabilit`a si ricavano con la formula di Bayes. Per fare ci`o dobbiamo per`o
conoscere la probabilit`a che un testo sia della sorgente M o della sorgente C.
Ora se l’indice di M `e pi`u grande dell’indice di C , ovvero se P(x ∈ M|r) >
P(x ∈ C|r), con alta probabilit`a il testo x `e stato emesso dalla sorgente M.
50 CAPITOLO 4. ENTROPIA RELATIVA
Capitolo 5
L’attribuzione del Diario
Postumo di Montale
Diario postumo `e l’ottava e ultima raccolta di poesie di Eugenio Montale.
Si tratta di una raccolta di 66 poesie, tutte firmate e molte delle quali
dedicate all’amica Annalisa Cima, che in parte le ispir`o anche. Montale
scrisse le poesie tra il 1969 ed il 1979, con l’intenzione di creare una sorta
di prosecuzione della propria presenza oltre la scomparsa non priva di una
sofisticata ironia. Raggiunto infatti il numero di 66 composizioni, il poeta
suddivise le liriche in 11 buste, disponendo che le stesse venissero pubblicate
a gruppi di sei ogni anno a partire da cinque anni dopo la sua morte, avvenuta
il 12 settembre 1981.
Nel 1986 la Fondazione Schlesinger, di cui Montale era stato presidente
ad honorem, si occup`o di provvedere alla pubblicazione delle prime sei, alle
quali vennero aggiunte altre 18 composizioni inedite trovate casualmente
dalla stessa Annalisa Cima. La pubblicazione dell’intera raccolta (le 66
poesie contenute nelle buste pi`u le altre 18 trovate casualmente) venne infine
pubblicata da Mondadori nel 1996, in occasione del centenario della nascita
del poeta.
51
52CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Un dubbio di non autenticit`a dell’opera venne manifestato in particolare
da Dante Isella e Giovanni Raboni, e recentemente `e stato nuovamente avan-
zato da un libro di Federico Condello, che riprende una analisi di Paola Italia
e Paolo Canettieri.
I dubbi attualmento sono tali che il Sistema Bibliotecario centrale ha rimosso
l’attribuzione del Diaro Postumo a Montale.
Annalisa Cima `e una scrittrice milanese, figlia di Alice Schlesinger. Nel
1967 conosce Murilo Mendes, poeta e critico brasiliano, il musicista Gian
Francesco Malipiero, Marianne Moore, Jorge Guill´en, Aldo Palazzeschi, Giu-
seppe Ungaretti, Ezra Pound, e tutti questi incontri, sotto forma di prose
poetiche, confiuirono nei volumetti della collanaOcchio magico pubblicati da
Vanni Scheiwiller. Nel 1968 incontr`o Eugenio Montale ed ebbe inizio una
grande amicizia basata su una profonda stima reciproca.
5.1 Testi e considerazioni
Appena si comincia ad affrontare questione di determinare la reale pa-
ternit`a delle 84 poesie del Diario Postumo, ci si rende immediatamente
conto come questo problema sia lontano da un tradizionale problema di
assegnazione di autore a un numero finito di autori. Questo caso ha infatti
almeno due caratteristiche estremamente peculiari che ne determinano la sua
unicit`a e che richiedono un approccio specifico.
• Siamo in presenza di un corpus testuale che certamente contiene fram-
menti originali di Montale, anche se forse si sono concretizzati come
materiale testuale solo in un secondo tempo e non direttamente per
opera del Poeta. Pensiamo a brani di discussione, appunti sparsi o
registrazioni che sappiamo hanno caratterizzato per anni il rapporto
tra il poeta e Annalisa Cima. Non `e quindi possibile considerare il
problema del Diario Postumo come un semplice problema di attribu-
5.1. TESTI E CONSIDERAZIONI 53
zione d’autore, ma si tratta di capire se sia possibile misurare quanto
effettivamente il corpus sia integro, o se sono visibili tracce di interventi
che potrebbero aver modificato parte del contenuto originario.
• I testi sono brevi e poetici. L’efficacia dei metodi quantitativi si raf-
forza in presenza di testi complessivamente lunghi. Raramente metodi
quantitativi che non fanno direttamente uso di informazioni di tipo
linguistico o semantico sono stati usati per attribuire testi di piccole
dimensioni (poche migliaia o poche centinaia di caratteri).
Descriviamo ora i testi a disposizione per l’analisi. Abbiamo innanzitutto
creato un corpus delle opere note di Montale e di Annalisa Cima
Eugenio Montale
opera file caratteri anno
Ossi di seppia ma1 51058 1920-27
Le occasioni ma2 38838 1928-39
La bufera e altro ma3 42626 1940-54
Satura mb4 61239 1962-70
Diario del 71 e del 72 mb5 49847 1971-72
Quaderno dei 4 anni mb6 60553 1977
54CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Annalisa Cima
opera file caratteri anno
Terzo mondoi c00 5392 1969
La Genesi e altre poesie c01 15368 1971
Immobilit`a c02 6801 1974
Sesamon c03 14400 1977
Ipotesi d’Amore c04 7288 1984
Aegri somnia c05 3649 1989
Quattro canti c06 2564 1993
Il tempo predatore c07 7712 1997
Hai ripiegato l’ultima pagina c08 6335 2000
Canto della primavera e della sopravvivenza c09 8398 2001
Poesie Pulcino Elefante c10 2181 2001
Abbiamo utilizzato i due diversi prefissi ”ma“ e ”mb“ per le etichette
delle opere di Montale, perch`e l’autore ha cambiato stile dopo La bufera.
Per le opere della Cima, per avere testi sufficientemente omogenei nella loro
lunghezza, abbiamo accorpato i testi c00, c01, c02 in un unico testo c1
di lunghezza 27 561 caratteri, i testi c03, c04, c05 in un unico testo c2 di
lunghezza 25 337 e infine abbiamo accorpato i restanti testi c06, c07, c08,
c09, c10 ottenendo il testo denominato c3 di lunghezza 27 190 caratteri.
Una prima essenziale analisi riguarda la verifica delle capacit`a dei nostri
metodi di distinguere i due autori. Per questa verifica abbiamo proceduto
estraendo a turno un’opera completa dall’insieme, e attribuendola a uno dei
due usando le opere restanti come riferimento. Abbiamo ottenuto il 100% di
successi. Come ulteriore verifica dei metodi, abbiamo confrontato anche le
opere di differenti autori, ottenendo la stessa capacit`a di riconoscimento.
5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 55
5.2 Attribuzione del Diario Postumo
Prima di procedere all’assegnazione delle poesie del Diario Postumo abia-
mo verificato che il metodo che vogliamo utilizzare `e attendibile. Abbiamo
segmentato i testi di Montale e quelli di Cima in frammenti di 12000 caratteri
in questa maniera:
Testo Sottotesti
c1 2
c2 2
c3 2
ma1 4
ma2 3
ma3 3
mb4 5
mb5 4
mb6 5
Abbiamo poi confrontato i frammenti da 200 caratteri con quei sottotesti,
escludento il sottotesto di appartenenza. Ottenendo cos`ı questi risultati:
56CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
TESTO ma mb c totale
c1 4 46 88 63.77%
c2 12 2 113 88.98%
c3 62 18 56 41.18%
ma1 245 10 1 95.70%
ma2 171 21 3 87.69%
ma3 181 32 1 84.58%
mb4 43 264 0 85.99%
mb5 82 163 5 65.20%
mb6 16 286 1 94.39%
Totale 1567 / 1926 = 81.36%
TESTO m c totale
c1 14 124 89.86%
c2 2 125 98.43%
c3 60 76 55.88%
ma1 236 20 92.19%
ma2 182 13 93.33%
ma3 210 4 98.13%
mb4 290 17 94.46%
mb5 238 12 95.20%
mb6 289 14 95.38%
Totale 1770 / 1926 = 91.90%
Possiamo notare che se non consideriamo la differenza di stile, il riconosci-
mento sale sopra il 90%.
Per confrontare meglio le poesie del Diario Postumo, che hanno lunghezza
variabili tra 200 e 800 caratteri, le abbiamo frammentate insequenze di 200
caratteri. Successivamente abbiamo confrontato ogni singola poesia con i
frammenti noti, ottendi cos`ı questi risultati:
5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 57
Testo ma mb c Frammenti
d01 0 2 0 2
d02 2 0 0 2
d03 2 0 0 2
d04 1 2 0 3
d05 0 2 0 2
d06 2 1 0 3
d07 1 0 1 2
d08 2 0 0 2
d09 0 0 1 1
d10 0 1 2 3
d11 1 2 0 3
d12 0 3 0 3
d13 0 1 0 1
d14 0 0 2 2
d15 0 0 2 2
d16 2 0 0 2
d17 4 0 0 4
d18 1 0 1 2
d19 0 2 0 2
d20 1 2 0 3
d21 0 2 0 2
d22 0 2 1 3
d23 1 1 0 2
58CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Testo ma mb c Frammenti
d24 3 0 0 3
d25 1 1 0 2
d26 2 0 0 2
d27 2 0 0 2
d28 0 1 0 1
d29 2 0 0 2
d30 2 1 0 3
d31 0 2 0 2
d32 0 2 0 2
d33 0 2 0 2
d34 2 0 0 2
d35 1 1 0 2
d36 0 0 2 2
d37 1 1 1 3
d38 2 0 0 2
d39 0 2 0 2
d40 0 0 2 2
d41 0 2 1 3
d42 2 0 0 2
d43 0 1 1 2
d44 0 1 1 2
d45 0 0 2 2
d46 2 0 0 2
d47 0 3 0 3
d48 2 0 0 2
d49 1 1 0 2
d50 3 1 1 5
d51 0 1 2 3
d52 1 1 0 2
d53 2 0 0 2
5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 59
Testo ma mb c Frammenti
d54 0 0 2 2
d55 2 0 1 3
d56 1 1 0 2
d57 3 1 0 4
d58 0 2 2 4
d59 1 1 0 2
d60 0 2 0 2
d61 2 1 0 3
d62 0 3 0 3
d63 1 2 0 3
d64 3 0 1 4
d65 1 1 0 2
d66 0 3 0 3
d67 3 0 0 3
d68 2 1 1 4
d69 0 2 0 2
d70 2 0 0 2
d71 2 0 0 2
d72 1 0 0 1
d73 0 3 0 3
d74 1 0 0 1
d75 1 1 0 2
d76 1 1 0 2
d77 2 1 0 3
d78 0 0 2 2
d79 0 1 1 2
d80 3 0 0 3
d81 2 0 0 2
d82 1 2 1 4
d83 1 0 1 2
d84 0 2 0 2
60CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Da questi risultati possiamo vedere che solo 8 poesie sono attribuite a Cima,
16 sia a Cima che a Montale e riguardo quelle attribuite al solo Montale 18
sono riconosciute come un misto dei due stili del peota.
Questa analisi, pur presumibilmente non affidabile per ogni singolo frammen-
to, indica che il Diario postumo non `e certo un’opera integra per quel che
riguarda l’autore.
5.3 L’albero filogenetico delle opere di Mon-
tale
Fino a questo punto abbiamo replicato il lavoro di D. Benedetto e M.
Degli Espositi, ottenendo risultati simili, ora cerchiamo di ottenere qualche
informazione in pi`u.
Affrontiamo di nuovo la questione utilizzando un differente punto di vista,
suggerito dalle ricerche filogenetiche. Infatti, nel problema di attribuzione
del Diario Postumo, il tempo sembra essere un fattore importante, vista
la lunga frequentazione tra Montale e la Cima, e considerato il modificarsi
dello stile di Montale nel tempo. In questa sezione mostreremo come l’uso
degli alberi filogenetici colga in pieno l’evolversi dello stile di Montale. Pi`u
precisamente, abbiamo prima costruito la tabella delle distanze tra tutte le
coppie di frammenti da circa 200 caratteri, ottenuti tagliando le opere di
Montale in pezzi senza sovrapposizione. Successivamente, abbiamo ricostrui-
to una matrice delle distanze tra le opere mediando le distanze tra i frammenti
appartenendo alle opere. Infine, abbiamo ricostruito l’albero filogenetico delle
opere, usando il metodo del Neighbouring Joining, molto utilizzato in ricerche
sull’evoluzione biologica. L’algoritmo cerca la disposizione ad albero dei testi
con la massima compatibilit`a con i valori delle distanze medie trovate: in
pratica, la distanza tra due testi ottenuta sommando la lunghezza dei rami
che li dividono sull’albero, `e una buona approssimazione della distanza media
5.3. L’ALBERO FILOGENETICO DELLE OPERE DI MONTALE 61
di partenza.
Osserviamo ora le topologie degli alberi, cio`e la rappresentazione della sola
sequenza dei rami e dei nodi, ottenuta considerando uguali tutte le lunghezze
dei rami.
Notiamo che il risultato `e perfettamente compatibile con l’ordine cronologico
delle opere di Montale con l’ipotesi di un salto stilistico in corrispondenza de
la Bufera.
62CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Notiamo ore che, inserendo le opere di Cima, nasce un ramo separato.
5.4 Attribuzione attraverso l’albero
Prendiamo in cosiderazione l’albero ottenuto analizzando tutto il corpus
di testi, e supponiamo di voler aggiungere una foglia all’albero. La foglia
sar`a una singola poesia del Diario Postumo. Per ogni frammento di poesia
del Diario Postumo, calcoliamo la sua distanza dai frammenti da 200 delle
opere note; mediando sui frammenti otteniamo il valore della distanza di
ogni poesia del Diario Postumo dalle opere di Montale e Cima. Conoscendo
le distanze tra tutte le foglie dell’albero, cerchiamo di capire dove poter
posizionare il ramo in modo che le distanze siano rispettate il pi`u possibile.
Prendiamo quindi due nodi che chiameremo con p− e p+, dividiamo l’albero
in due sottoalberi: Σ−, che sar`a il sottoabero contentente tutti i nodi che
si incontrano nei cammini da p− senza passare da p+ e Σ+ che sar`a i resto
dell’albero. Ipotizzando che la poesia del Diario Postumo si inserisca del
ramo p−-p+, otteniamo le seguenti equazioni
Le nostre incognite sono α± che indica la distanza del nuovo ramo da p± e
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 63
Figura 5.1: Inserimento di un nuovo nodo nell’albero
γ che indica la lunghezza del nuovo ramo che stiamo aggiungendo.
< d(a−, δ) > = < d(a−, p−) > +α− + γ
< d(a+, δ) > = < d(a+, p+) > +α+ + γ
α− + α+ = d(p−, p+)
dove indichiamo con d(x, y) la distanza tra x e y, con δ la poesia del Diario
Postumo che stiamo analizzando, con a− un nodo di Σ−, con a+ un nodo di
Σ+ e con < x > a media su tutti gli elementi dell’insieme.
Abbiamo quindi trovato un sistema di 3 equazioni linearmente indipendenti in
3 incognite, quindi sappiamo che esiste una sola soluzione per questo sistema.
Per ogni scelta di uno dei 15 rami possibili su cui inserire la poesia δ, si ottiene
una soluzione ma non sempre `e accettabile, perch´e α± e γ sono distanze e
devono essere positive. Tra tutte le solluzioni che restano scegliamo quella
64CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
che rende minima la seguente sommatoria:
a∈Σ
|d(a, δ) − dr(a, δ)|2
con dr(a, δ) = α± + γ + d(a, p±).
Sorprendentemente riusciamo a trovare soluzioni accettabili per tutte le
poesie sul nostro albero.
Figura 5.2: Esempio di un’attribuzione di una poesia Diario Postumo
Per l’assegnazione dei testi in base all’albero abbiamo proceduto assegnando
la poesia al sotto albero di appartenenza, l’unica eccezione `e per il caso che
la poesia fosse assegnata al ramo che unisce l’albero delle opere di Montale a
quelle di Cima, in quel caso la poesia `e stata assegnata all’albero pi`u vicino.
Questa scelta si `e resa obbligatoria perch´e la lunghezza del ramo che unisce
i due alberi, `e significativamente maggiore rispetto a tutti gli altri rami.
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 65
Figura 5.3: Ingrandimento del nodo che connette l’albero di Montale a quello
di Cima nella rappresentazione metrica dell’albero
Testo ma mb c
d01 0 1 0
d02 1 0 0
d03 0 0 1
d04 1 0 0
d05 1 0 0
d06 1 0 0
d07 0 0 1
d08 1 0 0
d09 0 0 1
d10 1 0 0
d11 1 0 0
d12 1 0 0
d13 0 0 1
d14 0 0 1
d15 0 0 1
d16 1 0 0
d17 1 0 0
d18 0 0 1
d19 0 1 0
66CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
d31 1 0 0
d32 0 0 1
d33 1 0 0
d34 1 0 0
d35 1 0 0
d36 0 0 1
d37 0 0 1
d38 0 0 1
d39 0 1 0
d40 0 0 1
d41 0 0 1
d42 1 0 0
d43 0 0 1
d44 0 0 1
d45 0 0 1
d46 1 0 0
d47 0 0 1
d48 1 0 0
d49 0 0 1
d50 1 0 0
d51 0 0 1
d52 0 0 1
d53 1 0 0
d54 0 0 1
d55 1 0 0
d56 0 0 1
d57 0 0 1
d58 0 0 1
d59 1 0 0
d60 0 0 1
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 67
d61 1 0 0
d62 0 1 0
d63 1 0 0
d64 1 0 0
d65 0 0 1
d66 0 1 0
d67 1 0 0
d68 0 0 1
d69 1 0 0
d70 1 0 0
d71 0 0 1
d72 1 0 0
d73 0 1 0
d74 1 0 0
d75 1 0 0
d76 1 0 0
d77 0 0 1
d78 0 0 1
d79 0 0 1
d80 1 0 0
d81 1 0 0
d82 0 0 1
d83 0 0 1
d84 0 0 1
Totale 37 8 39
Per validare i dati ottenuti abbiamo deciso di ripetere l’esperimento su
altri due alberi, quello dove escludiamo gli scritti di Montale a partire da ”La
bufera“ e quello dove escludiamo le opere precedenti. A questi alberi abbiamo
68CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
provato a reinserire i testi di Montale appena tolti, come ci si aspetta questi
vengono attaccati al centro dell’albero, come per ricreare l’albero completo.
Inoltre `e interessante chiedersi dove viene reinserita una delle opere presenti
sull’albero nel caso venisse tolta: in effetti viene approssimativamente rico-
struito il nodo mancante. Questi risultati ci rassicurano sulla validit`a del
metodo di attribuzione.
Infine, per analizzare in modo pi`u approfondito l’ipotesi di interventi di
entrambi gli autori sulle poesie del Diario Postumo, ci siamo chiesti cosa
accade a una distanza entropica se parte del testo `e di un autore e parte di
un altro.
Quindi ipotizzando che il testo sia stato scritto parzialmente da ambedue
i poeti e usando la relazione tra le lunghezze di compressione e l’entropia
relativa, scriviamo:
d(δ, a) =
|p(aδ1δ2)| − |p(a)| − |p(δ1δ2)|
|δ1δ2|
∼
|δ1|H(δ1||a) + |δ2|H(δ2||a) − |δ1|H(δ1) − |δ2|H(δ2)
|δ1| + |δ2|
=
|δ1|
|δ1| + |δ2|
d(δ1, a) +
|δ2
|δ1| + |δ2|
d(δ2, a)
dove con p(·) indichiamo la compressione del file con PAQ8.
da cui
d(a, δ) = λ1d(a, δ1) + λ2d(a, δ2)
dove λi = |δi
|δ1|+|δ2|
`e la frazione di testo scritta dal poeta i. Naturalmente
λ1 + λ2 = 1.
Questo ci ha portato a voler fare un’analisi ancora pi`u approfondita, abbia-
mo quindi ipotizzato che le poesie del Diario Postumo fossero scritte a quattro
mani, e abbiamo cercato di capire quanto siano state scritte da Montale e
quanto da Cima. Il procedimento utilizzato `e stato questo:
Ipotizziamo che ogni δ sia formato da due parti, δ1 e δ2 e le distanze delle
opere di Cima e di Montale siano date da una combinazione convessa delle
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 69
Figura 5.4: Esempio di attribuzione dei due frammenti di una poesia del
Diario Postumo
distanze di δ1 e δ2 come segue dalle formule precedenti. Cerchiamo di po-
sizionare queste due nuove foglie sull’albero invece che δ. Dividiamo questa
volta l’albero in tre parti, indicando con Σ0
l’albero compreso tra i rami dove
attaccheremo δ1 e δ2, con Σ1
l’albero “esterno” rispetto a δ1 e con Σ2
l’albero
”esterno“ rispetto a δ2. Sappiamo che Abbiamo cos`ı le seguenti equazioni
d(a, δ) = γ + α1 − α2 + λ2l per a ∈ Σ1
d(a, δ) = γ − α1 + α2 + λ1l per a ∈ Σ2
d(a, δ) = γ − α1 − α2 + λ1d(a, p1
−) + λ2d(a, p2
−) per a ∈ Σ0
70CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
dove
d(a, δi) = γi + d(a, pi
−) ± αi a seconda di come attraverso αi
αi = λiαi
γ = λ1γ1 + λ2γ2
l = d(p1
+, p2
+)
Purtoppo il sistema ha pi`u incognite che equazioni, in particolare si pu`o
considerare libera la combinazione convessa λ1 , λ2
In funzione di questi parametri la soluzione `e:
γ =
1
2
(η1 + η2 − l)
α1 =
1
2λ1
(η1 − ξ − λ2l)
α2 =
1
2λ2
(η2 − ξ − λ1l)
con
ξ = λ1η0
1 + λ2η0
2
ηi = < d(a, δ) > − < d(a, pi
−) > per a ∈ Σi
con i = 1, 2
η0
i = < d(a, δ) > − < d(a, pi
−) > per a ∈ Σ0
Nella maggior parte dei casi le soluzioni possibili sono solo poche coppie di
rami e spesso uno dei due rami `e lo stesso per tutte le soluzioni. Al contrario
esistono alcuni casi in cui ci sono molte coppie di rami che rendono l’attri-
buzione dubbia. In quasi tutte queste attribuzioni uno dei rami soluzione `e
quello di c3, che `e l’insieme manufatto meno affidabile di quelli che stiamo
considerando (ad esempio perch´e contiene pi`u testi differenti rispetto agli
altri e di anni di pubblicazione diversi tra loro).
Per ovviare a questi problemi cerchiamo la combinazione convessa che
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 71
Figura 5.5: Risultati del test di assegnazione
minimizza
a∈Σ
|d(a, δ) − λ1dr(a, δ1) − λ2dr(a, δ2)|2
con dr(a, δi) = αi± + γi + d(a, pi±).
72CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
Testo Ass1 Ass2 Peso
d01 ma c 0.320665
d02 ma c 0.256951
d03 c c 0.318072
d04 ma c 0.286667
d05 mb c 0.726626
d06 ma c 0.269598
d07 c ma 0.372294
d08 ma ma 0.206659
d09 ma c 0.266061
d10 ma c 0.358524
d11 ma ma 0.371159
d12 ma ma 0.0648037
d13 c c 0.267398
d14 ma c 0.428732
d15 c mb 0.316275
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 73
d16 ma c 0.283214
d17 ma ma 0.134492
d18 c c 0.126543
d19 mb mb 0.423097
d20 mb ma 0.564298
d21 c c 0.35097
d22 c c 0.052217
d23 ma c 0.433519
d24 ma ma 0.290115
d25 c ma 0.329028
d26 ma c 0.495749
d27 ma c 0.506656
d28 ma c 0.0404609
d29 ma ma 0.108638
d30 ma ma 0.332618
d31 ma ma 0.483712
d32 mb c 0.586092
d33 ma c 0.267503
d34 ma ma 0.310036
d35 ma c 0.253887
d36 ma c 0.110882
d37 c c 0.157048
d38 c mb 0.151522
d39 c mb 0.0610469
d40 c c 0.326288
d41 c c 0.235057
d42 ma ma 0.832905
d43 c mb 0.262826
d44 ma c 0.294699
d45 c c 0.484941
d46 ma ma 0.205856
74CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE
d47 c c 0.359154
d48 ma ma 0.196306
d49 c c 0.143259
d50 ma c 0.541703
d51 c ma 0.519182
d52 c c 0.0678944
d53 ma ma 0.251045
d54 ma c 0.0829112
d55 c ma 0.234811
d56 c c 0.896458
d57 c ma 0.210552
d58 c c 0.220607
d59 ma ma 0.294932
d60 c c 0.140143
d61 c mb 0.157083
d62 ma c 0.467027
d63 ma ma 0.313197
d64 ma c 0.478995
d65 c ma 0.1916
d66 ma c 0.406393
d67 ma ma 0.247446
d68 c c 0.0404118
d69 ma c 0.287559
d70 c ma 0.116471
d71 c ma 0.149289
d71 ma ma 0.185126
d73 ma c 0.470219
d74 ma ma 0.199837
d75 ma ma 0.318793
d76 ma c 0.548405
d77 c ma 0.281734
5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 75
d78 c mb 0.306719
d79 c mb 0.140105
d80 ma c 0.24671
d81 ma ma 0.258124
d82 c ma 0.192124
d83 c ma 0.161918
d84 ma c 0.0745011
L’alto numero di poesie assegnate a Cima dai nostri metodi, non da
la certezza che non siano di Montale, ma sicuramente alimenta i dubbi
preesistenti riguardo l’integrit`a del Diario Postumo.
Bibliografia
[1] C. Basile. Entropy and semantics: Textual information extraction through
statistica methods. 2010.
[2] E. Caglioti. Fondamenti di teoria dell’informazione ed analisi di sequenze
di dati, 2005.
[3] I. Cleary J. e Witten. Data compression using adaptive coding and partial
string matching. IEEE Transactions on Communications, (32), 1984.
[4] C. Chica D. Benedetto, E. Caglioti. Compressing proteomes: The
relevance of long range correlations. 2007.
[5] M. Degli Espositi D. Benedetto. La dinamica dello stile di monatale e
l’attribuzione del diario postumo: un approccio quantitativo, 2015.
[6] M. V. Mahoney. Adaptive weighing of context models for lossless data
compression. Florida Tech. Technical Report, 2005.
[7] M. V. Mahoney. Data Compression Explained. Dell, Inc, 2011.
[8] A. N. Shiryaev. Probability. Springer, 1996.
[9] J. A. Thomas T. M. Cover. Elements of Information Theory. Wiley,
1991.
77

More Related Content

Viewers also liked

Thanksgiving day memories
Thanksgiving day memoriesThanksgiving day memories
Thanksgiving day memoriesGemma4F
 
Andreas Audyanto Cluster Botanica Valley Serpong
Andreas Audyanto Cluster Botanica Valley Serpong Andreas Audyanto Cluster Botanica Valley Serpong
Andreas Audyanto Cluster Botanica Valley Serpong Andreas Audyanto
 
Segunda parte trabajo comunicación visual unlz
Segunda parte trabajo comunicación  visual unlzSegunda parte trabajo comunicación  visual unlz
Segunda parte trabajo comunicación visual unlzMiguel Angel Gargiulo
 
The Civil War: Life During and the Legacy of
The Civil War: Life During and the Legacy ofThe Civil War: Life During and the Legacy of
The Civil War: Life During and the Legacy ofMatthew Caggia
 
Revised TREE graphic_print
Revised TREE graphic_printRevised TREE graphic_print
Revised TREE graphic_printHilary Benson
 
Materials release form (IT CAME FROM THE MIST)
Materials release form (IT CAME FROM THE MIST)Materials release form (IT CAME FROM THE MIST)
Materials release form (IT CAME FROM THE MIST)LewisPashley
 
A Gentle Teaching Primer
A Gentle Teaching PrimerA Gentle Teaching Primer
A Gentle Teaching PrimerMara Hawks
 
Threaded Binary Tree
Threaded Binary TreeThreaded Binary Tree
Threaded Binary Treekhabbab_h
 
Alimentación complementaria dirigida por el bebé - Baby-led weaning
Alimentación complementaria dirigida por el bebé - Baby-led weaningAlimentación complementaria dirigida por el bebé - Baby-led weaning
Alimentación complementaria dirigida por el bebé - Baby-led weaningCentro de Salud El Greco
 

Viewers also liked (12)

история паскаль
история паскальистория паскаль
история паскаль
 
Thanksgiving day memories
Thanksgiving day memoriesThanksgiving day memories
Thanksgiving day memories
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Andreas Audyanto Cluster Botanica Valley Serpong
Andreas Audyanto Cluster Botanica Valley Serpong Andreas Audyanto Cluster Botanica Valley Serpong
Andreas Audyanto Cluster Botanica Valley Serpong
 
India FDI OutFlows Report
India FDI OutFlows ReportIndia FDI OutFlows Report
India FDI OutFlows Report
 
Segunda parte trabajo comunicación visual unlz
Segunda parte trabajo comunicación  visual unlzSegunda parte trabajo comunicación  visual unlz
Segunda parte trabajo comunicación visual unlz
 
The Civil War: Life During and the Legacy of
The Civil War: Life During and the Legacy ofThe Civil War: Life During and the Legacy of
The Civil War: Life During and the Legacy of
 
Revised TREE graphic_print
Revised TREE graphic_printRevised TREE graphic_print
Revised TREE graphic_print
 
Materials release form (IT CAME FROM THE MIST)
Materials release form (IT CAME FROM THE MIST)Materials release form (IT CAME FROM THE MIST)
Materials release form (IT CAME FROM THE MIST)
 
A Gentle Teaching Primer
A Gentle Teaching PrimerA Gentle Teaching Primer
A Gentle Teaching Primer
 
Threaded Binary Tree
Threaded Binary TreeThreaded Binary Tree
Threaded Binary Tree
 
Alimentación complementaria dirigida por el bebé - Baby-led weaning
Alimentación complementaria dirigida por el bebé - Baby-led weaningAlimentación complementaria dirigida por el bebé - Baby-led weaning
Alimentación complementaria dirigida por el bebé - Baby-led weaning
 

Similar to TesiM

Tesi Corretta (16_10_14)
Tesi Corretta (16_10_14)Tesi Corretta (16_10_14)
Tesi Corretta (16_10_14)Eugenio Liaci
 
Esempio di storyboard
Esempio di storyboardEsempio di storyboard
Esempio di storyboardSavina Ieni
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivatiGiovanni Della Lunga
 
Alignment free sequence comparison—a review
Alignment free sequence comparison—a reviewAlignment free sequence comparison—a review
Alignment free sequence comparison—a reviewFranco
 
Fondazione point-free della matematica
Fondazione point-free della matematicaFondazione point-free della matematica
Fondazione point-free della matematicaMarco Benini
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionaleSaraDiLuzio2
 
Studio sulle condizioni di validità del criterio di Barkhausen - Tesi
Studio sulle condizioni di validità del criterio di Barkhausen - TesiStudio sulle condizioni di validità del criterio di Barkhausen - Tesi
Studio sulle condizioni di validità del criterio di Barkhausen - TesiMatteo Smaila
 
Stringhe Relativistiche Classiche
Stringhe Relativistiche Classiche Stringhe Relativistiche Classiche
Stringhe Relativistiche Classiche Gabriele Pompa, PhD
 
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...Fausto Intilla
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...mfurlanetto
 
Dispense21
Dispense21Dispense21
Dispense21imartini
 
Metodo dei minimi quadrati
Metodo dei minimi quadratiMetodo dei minimi quadrati
Metodo dei minimi quadratiLuigi Pasini
 

Similar to TesiM (19)

Tesi Corretta (16_10_14)
Tesi Corretta (16_10_14)Tesi Corretta (16_10_14)
Tesi Corretta (16_10_14)
 
Appunti di teoria dell informazione
Appunti di teoria dell informazioneAppunti di teoria dell informazione
Appunti di teoria dell informazione
 
geometria tropicale
geometria tropicalegeometria tropicale
geometria tropicale
 
Esempio di storyboard
Esempio di storyboardEsempio di storyboard
Esempio di storyboard
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivati
 
nicolettibell
nicolettibellnicolettibell
nicolettibell
 
IV. "sul ruolo delle simmetrie in fisica"
IV. "sul ruolo delle simmetrie in fisica"IV. "sul ruolo delle simmetrie in fisica"
IV. "sul ruolo delle simmetrie in fisica"
 
Alignment free sequence comparison—a review
Alignment free sequence comparison—a reviewAlignment free sequence comparison—a review
Alignment free sequence comparison—a review
 
Termodinamica non equilibrio
Termodinamica non equilibrioTermodinamica non equilibrio
Termodinamica non equilibrio
 
Fondazione point-free della matematica
Fondazione point-free della matematicaFondazione point-free della matematica
Fondazione point-free della matematica
 
Lezione 3 metodo monte carlo
Lezione 3   metodo monte carloLezione 3   metodo monte carlo
Lezione 3 metodo monte carlo
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionale
 
Studio sulle condizioni di validità del criterio di Barkhausen - Tesi
Studio sulle condizioni di validità del criterio di Barkhausen - TesiStudio sulle condizioni di validità del criterio di Barkhausen - Tesi
Studio sulle condizioni di validità del criterio di Barkhausen - Tesi
 
Stringhe Relativistiche Classiche
Stringhe Relativistiche Classiche Stringhe Relativistiche Classiche
Stringhe Relativistiche Classiche
 
Compressione dei file
Compressione dei fileCompressione dei file
Compressione dei file
 
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...
Dal metalinguaggio quantistico alle teorie quantistiche di confine - Fausto I...
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
 
Dispense21
Dispense21Dispense21
Dispense21
 
Metodo dei minimi quadrati
Metodo dei minimi quadratiMetodo dei minimi quadrati
Metodo dei minimi quadrati
 

TesiM

  • 1. FACOLT`A DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Matematica Stime dell’entropia relativa mediante algoritmi di compressione Relatore: Chiar.mo Prof. DARIO BENEDETTO Candidato: GIUSEPPE TUFO matricola 1090615 Sessione Estiva Anno Accademico 2014-2015 Dipartimento di Matematica ‘Guido Castelnuovo’
  • 2.
  • 3. Introduzione Il problema dell’attribuzione a un autore di un testo mediante tecnice matematiche e statistiche `e un problema meno recente di quanto si possa pensare: ci sono notizie di un lavoro a riguardo gi`a nel 1889, da parte del fisico americano T.C. Mendenhall, che cerc`o di capire l’eutenticit`a degli scritti di Shakespeare attraverso l’analisi della frequenza delle lunghezze delle parole, che oggi sappiamo non dare risultati attendibili, oppure, andanddo ancora pi`u indietro nel tempo, nel 1439 Lorenzo Valle dimostr`o che la Donazione di Costantino era un falso confrontando il lessico utilizzato con altri documenti originali. Attualmenti i problemi di attribuzione di autore sono caratterizzati da due aspetti, il primo riguarda gli “oggetti” del teso del quale si misurano le caratteristiche, come le singole parole, le caratteristiche sintattiche o gli n- grammi, cio`e sequenze di n caratteri consecutivi; il secondo aspetto riguarda le tecniche che vengono utilizzate. Un prima tecnica pu`o essere il Machine Learning, che consiste nell’estrarre delle propriet`a (fonetiche, grammaticali, sintattiche, etc.) dai testi noti e confrontarle con le stesse dei testi ignoti, ricevendo cos`ı una probabilit`a di attribuzione. Oppure un secondo metodo, quello da noi utilizzato, consiste in una descrizione di distanze e similarit`a tra i testi, cio`e algoritmi che puntano a dire quanto due testi si “somigliano”. Tanto pi`u sono simili i testi, maggiore `e la probabilit`a che siano stati scritti dallo stesso autore. L’interesse di questa tesi per la questione del Diario Postumo di Montale iii
  • 4. iv `e per la verifica della sua attribuzione. Mostreremo con il nostro approccio, pur non facendo affermazioni conclusive, che ci sono anomalie che giustificano i dubbi esistenti riguardo l’integrit`a del Diario Postumo. Abbiamo scelto di analizzare questo caso perch´e, oltre ai dubbi esistenti sulla sua integrit`a, pu`o essere considerato un caso particolarmente interessante, poich´e i testi ignoti da analizzare sono molto brevi e probabilmente la maggior parte contiene frammenti originali di Montale, inoltre il poeta ha cambiato il suo stile di scrittura nel corso del tempo. Nel primo capitolo di questa tesi introdurremo le nozioni tecniche neces- sarie per il nostro tipo di analisi quantitativa, in particolare definiremo cos`e l’entropia per un file e cos`e l’entropia relativa, la misura che poi utilizzeremo come metro di similarit`a tra i testi, infine introdurremo la propriet`a di equiparazione asintotica (AEP), una sorta di “legge dei grandi numeri” per l’analisi dei dati. Nel secondo capitolo affronteremo il problema della compressione, descri- veremo deei modelli di codifica rilevanti (per motivi storici e pratici) e il modello di codifica che andremmo a utilizzare, per poi continuare nel terzo capitolo con una pi`u approfondita descrizione dell’algoritmo di compressione scelto per questa tesi. Nell’ultimo capitolo descriveremo in maniera pi`u approfondita i metodi che abbiamo utilizzato per la nostra analisi quantitativa e i metodi utilizzati per analizzare i dati che abbiamo ottenuto tramite gli algoritmi. Approfon- diremo i nostri test, e dopo tutto questo possiamo solo che refforzare i dubbi sull’integrit`a del Diario Postumo.
  • 5. Indice Introduzione iii 1 Entropia, entropia relativa e sorgenti di informazioni 3 1.1 Notazioni e definizioni . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Entropia ed entropia relativa . . . . . . . . . . . . . . . . . . . 5 1.3 Propriet`a di equipartizione asintotica . . . . . . . . . . . . . . 11 2 Il problema della compressione 17 2.1 Definizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Codifica ottimale . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Codice di Huffman . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4 Compressione con modelli probabilistici . . . . . . . . . . . . . 32 2.5 Codifica aritmetica . . . . . . . . . . . . . . . . . . . . . . . . 34 3 PAQ8 39 3.1 Breve storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2 Previsione per corrispondenza pariziale . . . . . . . . . . . . . 40 3.3 Descrizione dell’algoritmo . . . . . . . . . . . . . . . . . . . . 42 3.4 Test di compressione . . . . . . . . . . . . . . . . . . . . . . . 44 4 Entropia relativa 45 4.1 Entropia relativa . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Stime dell’entropia relativa . . . . . . . . . . . . . . . . . . . . 47 v
  • 6. INDICE 4.3 Test di riconoscimento dell’autore . . . . . . . . . . . . . . . . 48 5 L’attribuzione del Diario Postumo di Montale 51 5.1 Testi e considerazioni . . . . . . . . . . . . . . . . . . . . . . . 52 5.2 Attribuzione del Diario Postumo . . . . . . . . . . . . . . . . . 55 5.3 L’albero filogenetico delle opere di Montale . . . . . . . . . . . 60 5.4 Attribuzione attraverso l’albero . . . . . . . . . . . . . . . . . 62
  • 7.
  • 8. Capitolo 1 Entropia, entropia relativa e sorgenti di informazioni 1.1 Notazioni e definizioni Sia A un insieme finito di simboli, che chiameremo alfabeto. A pu`o essere un insieme di qualsiasi tipo di simboli, numeri, lettere o simboli di punteggiatura o altro ancora. Indicheremo con A∗ = ∪n∈NAn e AN gli insiemi finiti e infiniti di sequenze di simboli di A. Ora siamo interessati a un modello di meccanismo che genera sequenze di simboli. Le sorgenti di informazioni sono rappresentate in maniere differenti in vari campi della matematica, ad esempio i fisici matematici considerano le sequenze di simboli come generate da sistemi dinamici, nei quali ad ogni iterazione `e aggiunto un nuovo simbolo. Nel contesto della teoria dell’infor- mazione `e pi`u comune utilizzare una rappresentazione in termine di processi stocastici. Definizione 1.1.1. Una stringa `e una sequenza di simboli di un dato alfabeto A. 3
  • 9. 4 CAPITOLO 1. ENTROPIA E SORGENTI Consideriamo una trasformazione Tl definita come la traslazione di una stringa di l passi, in maniera tale che Tl s = sl+1sl+2... dove s `e una stringa e si `e l’i-esimo simbolo della stringa. Se chiamiamo S un insieme di stringhe infinite, Tl S sar`a lo stesso insieme traslato di l passi. Un insieme S `e detto invariante se Tl S = S. Osserviamo che due esempi di insiemi invarianti sono l’insieme di tutte le stringhe e quello vuoto. Definizione 1.1.2. Sia (Ω, S, P) uno spazio di probabilit`a e A un alfabeto finito. Un processo stocastico `e una sequenza inifinita X := {Xn} = {X1, X2, ..., Xn, ...} di variabili aleatorie Xn : Ω → A. Definizione 1.1.3. Un processo stazionario si dice ergodico se ogni insieme misurabile e invariante ha probabilit`a nulla o 1. TS = S ⇒ P(S) = 0 o 1 Intuitivamente, un processo stazionario non cambia nel tempo il modo in cui genera sequenze. Per quanto non sia una richiesta ovvia `e un’importante propriet`a da richiedere per le sorgenti. Definizione 1.1.4. Un processo stocastico X `e detto stazionario se la pro- babilit`a di distribuzioni Tl e X sono la stessa ∀k ≥ 1 P{X1 = x1, X2 = x2...} = P{Xl+1 = x1, Xl+2 = x2...} In altre parole la probabilit`a di osservare la sequenza dai primi caratteri emessi `e la stessa di osservarla dal carattere l + 1 in poi. Definizione 1.1.5. Una sorgente di informazioni `e un processo stocastico stazionario ergodico
  • 10. 1.2. ENTROPIA ED ENTROPIA RELATIVA 5 Il fatto che la nostra sorgente sia stazionaria e ergodica significa che quasi tutte le sequenze che sono generate dal processo hanno le stesse propriet`a statistiche. Questa propriet`a ha un grande interesse per le applicazioni poich´e quasi ogni sequenza `e asintoticamente una “buona rappresentazione” della sorgente, quindi in qualche maniera giustifichiamo l’utilizzo di stringhe “abbastanza lunghe”per ricostruire la distribuzioni della sorgente d’origine che solitamente `e ignota. 1.2 Entropia ed entropia relativa Consideriamo una variabile aleatoria X con alfabeto A di cardinalit`a finita e distribuzione di probabilit`a p(x) = P{X = x}, x ∈ A. Si sta considerando il caso in cui la sorgente emetta un unico carattere, il cui valore `e X, tra quelli dell’alfabeto A. Definizione 1.2.1. L’ entropia di una variabile discreta `e definita da H(X) = − x∈A p(x) log p(x) = −E(p(X)) La base del logaritmo e di tutti i prossimi che compariranno sar`a 2 se non diversamente indicato. `E facile mostrare che H ≥ 0 infatti 0 ≤ p(x) ≤ 1 ⇒ log 1 p(x) ≥ 0 ⇒ x∈A p(x) log 1 p(x) ≥ 0 Inoltre H ≤ log |A|: H(X) = x∈A pi log 1 pi ≤ log x∈A pi log 1 pin (disuguaglianza di Jensen) = log x∈A 1 = log |A|
  • 11. 6 CAPITOLO 1. ENTROPIA E SORGENTI Va notato che l’entropia massima, log |A|, `e raggiunta qunado si ha una distribuzione uniforme, ovvero pi = 1 |A| . Questo `e in caso il cui si raggiunge la massima incertezza, poich´e ogni carattere ha la stessa probabilit`a di essere incontrato. Da queste osservazioni possiamo dire che l’entropia pu`o essere considerata la misura dell’incertezza media dell’evento rappresentato dalla variabile X conoscendo la sua distribuzione. Infatti l’entropia `e una quantit`a positiva e si annulla solo nel caso in cui ∃x : p(x) = 1, ovvero nel momento in cui l’evento `e certo. Al contrario raggiunge il suo valore massimo per una distribuzione uniforme che, come detto poco fa, rappresenta la massima incertezza. Se per esempio consideriamo l’entropia in caso di una variabile aleatoria binaria, ovvero X =    1 con probabilit`a p 0 con probabilit`a 1 − p In questo caso la sorgente emette il valore 1 con probabilit`a p e il valore 0 con probabilit`a 1 − p. L’alfabeto considerato `e composto solo da 2 elementi: 1 e 0. Allora H(X) = −p log p − (1 − p) log(1 − p) = H(p) in particolare H(X) = 1 se p = 1 2 . In questo caso l’entropia `e una funzione concava della distribuzione ed `e nulla quando p = 0 o p = 1, cio`e quando uno dei due caratteri viene emesso con probabilit`a 1. Come ci aspettiamo il massimo `e raggiunto quando p = 1 2 , ovvero nel momento di massima incertezza. Da questo esempio possiamo dedurre che pi`u `e bassa l’entropia, pi`u `e facile prevedere quale carattere sar`a emesso dalla sorgente. Estendiamo ora la definizione di entropia alle coppie di variabili aleatorie. Definizione 1.2.2. L’entropia congiunta H(X, Y ) di una coppia di variabili aleatorie (X, Y ) con alfabeti A e B, con distribuzione di probabilit`a congiunta
  • 12. 1.2. ENTROPIA ED ENTROPIA RELATIVA 7 p(x, y) `e definita H(X, Y ) = − x∈A y∈B p(x, y) log p(x, y) e come per una variabile pu`o essere espressa come H(X, Y ) = −E(log p(X, Y )) L’entropia congiunta `e una generalizzazione dell’entropia a una variabile ed `e anche questa non negativa. Intuitivamente l’entropia congiunta per n variabili sar`a H(X1, ..., Xn) = − x1∈A1 · · · xn∈An p(x1, ..., xn) log p(x1, ..., xn) Vediamo ora che relazione c’`e tra entropia congiunta ed entropia di una singola variabile. Definizione 1.2.3. Se (X, Y ) seguono la distribuzione congiunta p(x, y) allora l’entropia `e definita da H(X|Y ) = − x∈A p(x)H(Y |X = X) = − x∈A p(x) y∈A p(y|x) log p(y|x) = − x∈A y∈A p(x, y) log p(x, y) Da qui, si pu`o facilmente dimostrare che l’entropia di una coppia di variabili `e uguale alla somma dell’entropia di una variabile con l’entropia
  • 13. 8 CAPITOLO 1. ENTROPIA E SORGENTI codizionata dell’altra, infatti H(X, Y ) = − x∈A y∈B p(x, y) log p(x, y) = − x∈A y∈B p(x, y) log(p(x), p(x|y) = − x∈A y∈B p(x, y) log p(x) − x∈A y∈B p(x, y) log p(y|x) = − x∈A p(x) log p(x) − x∈A y∈B p(x, y) log p(y|x) = H(X) + H(Y |X) (1.1) In termini di incertezza, questa uguaglianza stabilisce che l’incertezza per le due variabili x e y `e uguale all’incertezza media dell’incertezza di Y quando X `e stata osservata. La quantit`a di incertezza di un variabilie aleatoria andr`a a diminuire quando viene osservata una seconda variabile aleatoria Y . Teorema 1.2.4. Siano X e Y due variabili aleatorie che seguono la distri- buzione di probabilit`a p(x, y). Allora H(X|Y ) ≤ H(X) L’uguaglianza vale solo nel caso di variabili indipendenti. Dimostrazione. H(X) − H(Y |X) = − x∈A y∈B p(x|y) log[p(x, y)p(y)] + + x∈A y∈B p(x, y) log p(x) = x∈A y∈B p(x, y) log p(x) p(x|y) ≤ log x∈A y∈B p(x, y) p(x) p(x|y) = x∈A y∈B p(x)p(y) = log 1 = 0
  • 14. 1.2. ENTROPIA ED ENTROPIA RELATIVA 9 Nel caso in cui x e y siano indipendenti abbiamo che p(x, y) = p(x)p(y)∀x ∈ A e y ∈ B e poich`e p(x|y) = p(x) per ogni x ∈ A, l’entropia congiunta sar`a la somma delle entropie H(X, Y ) = H(X) + H(Y ) Le stesse definizioni possono essere estese in pi`u variabili, in particolare l’entropia di n variabili `e la somma dell’entropie condizionate. Teorema 1.2.5. Siano X1, X2, ..., Xn variabili aleatorie con distribuzione di probabilit`a congiunta p(x1, ..., xn). Allora H(X1, X2, ..., Xn) = H(X1) + n i=2 H(Xi|Xi−1, ..., X1) Dimostrazione. Partendo dal fatto che l’entropia di due variabili aleatroie `e la somma dell’entropia di una con l’entropia condizionata dell’altra si ha che H(X1, X2) = H(X1) + H(X2|X1) H(X1, X2, X3) = H(X1) + H(X2, X3|X1) = H(X1) + H(X2|X1) + H(X3|X2, X1) ... H(X1, ..., Xn) = H(X1) + H(X2|X1) + . . . H(Xn|Xn−1, ..., X1) = H(X1) + n i=2 H(Xi|Xi−1, ..., X1) Se le variabili aleatorie Xi sono indipendenti, l’entropia delle n variabili sar`a la somma delle singole entropie. In particolare se sono anche identicamente distribuite, l’entropia di una variabile sar`a la stessa di tutte le altre, quindi H(X1, ..., Xn) = nH(X1)
  • 15. 10 CAPITOLO 1. ENTROPIA E SORGENTI Definita l’entropia per n variabili possiamo estendere la definizione in caso di processi stocastici. In quanto le sequenze emesse da sorgenti discrete sono considerate la realizzazione di un processo stocastico stazionario. Definizione 1.2.6. L’entropia di un processo stocastico {Xi} `e definita come H = lim n→∞ 1 n H(X1, X2; ..., Xn) quando il limite esiste. Dimostreremo ora che nel caso di processi stocastici l’entropia esiste sem- pre e coincide con il limite dell’entropia condizionata limn→∞ H(Xn|Xn−1, Xn−2, ..., X1). Teorema 1.2.7. Per un processo stocastico stazionario H(Xn|Xn−1, Xn−2, ..., X1) `e decrescente rispetto a n e ammette limite. Dimostrazione. Per definizione di entropia condizionata e stazionariet`a del processo abbiamo H(Xn+1|X1, X2; ..., Xn) ≤ H(Xn+1|Xn, Xn−1, ..., X2) = H(Xn|Xn−1, Xn−2, ..., X1) Teorema 1.2.8. Per un processo stocastico stazionario l’entropia `e ben de- finita e vale H = lim n→∞ H(Xn|Xn−1, Xn−2, ..., X1) Dimostrazione. Dai teoremi precedenti otteniamo che H(X1, X2, ..., Xn) n = 1 n H(X1) + n i=2 H(Xi|Xi−1, ..., X1) Poich`e nel teorema precedente abbiamo dimostrato che il limite di H(Xn|Xn−1, Xn−2, ..., X1) esiste. Se una successione ammette limite allora anche la sua media conver- ger`a allo stesso limite, quindi H = lim n→∞ H(X1, X2; ..., Xn) n = limn→∞(Xn|Xn−1, Xn−2, ..., X1) = H′
  • 16. 1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 11 Definizione 1.2.9. Un processo aleatorio si dice markoviano a k passi se la distribuzione di probabilit`a dipende solo dai valori assunti negli ultimi k istanti in cui il valore `e noto e non dai valori assunti precedentemente, quindi P{Xn+1 = xn+1|Xn = xn, ..., X1 = x1} = = P{Xn+1 = xn+1|Xn = xn, ..., Xn−k+1 = xn−k+1} per ogni x1, x2, ..., xn ∈ A. Consideriamo ora due sorgenti di informazioni X e Y con lo stesso alfabeto finito A e distribuzioni p(x) e p(y). Definizione 1.2.10. L’entropia relativa tra p(x) e p(y) `e definita come d(p(x)||p(y)) = lim sup n→∞ x∈A p(x) log p(X) p(y) n L’entropia relativa misura la differenza statistica tra due distribuzioni e ha le seguenti propriet`a Teorema 1.2.11. Per ogni coppia di distribuzioni di probabilit`a p(x) e p(y) per la quale d(p(x)||p(y)) `e definita, d(p(x)||p(y)) ≥ 0 e l’uguaglianza vale se e solo se p(x) = p(y). Grazie a questo risultato un versione simmetrizzata dell’entropia relativa `e usata come pseudo-distanza tra sorgenti di informazione, anche se non `e propriamente una distanza non soddisfacendo la disuguaglianza triangolare. 1.3 Propriet`a di equipartizione asintotica La legge dei grandi numeri ha un analogo nella teoria dell’informazione, questo analogo `e la propriet`a di equipartizione asintotica (AEP). Per la legge
  • 17. 12 CAPITOLO 1. ENTROPIA E SORGENTI dei grandi numeri, date n variabili aleatorie inidipendenti e identicamente distribuite, X1, X2, ...Xn, la media pesata converge in probabilit`a al valore atteso, cio`e con probabilit`a 1 1 n n i=1 Xi → E(X) L’AEP invece dice che −1 n log p(X1, X2, ...Xn) si comporta come l’entropia H. Per cui la probabilit`a di osservare la sequenza X1, X2, ...Xn `e vicina a 2−nH . L’AEP permette di suddividere le sequenze in due gruppi, le tipiche e le non tipiche. Quest’ultime hanno probabilit`a trascurabile. Per questa ragione, per studiare le propriet`a delle sequenze, sar`a possibile limitarsi a studiare quelle tipiche. Enunciamo il teorema AEP per variabili discrete indipendenti e identicamen- te distribuite. Teorema 1.3.1. Se X1, X2, ...Xn, sono variabili discrete indipendenti e iden- ticamente distribuite, allora − 1 n log p(X1, X2, ...Xn) → H in probabilit`a Dimostrazione. Le funzioni di variabili aleatorie indipendenti sono esse stesse variabili aleatorie indipendenti, per cui, essendo le Xi indipendenti e identi- camente distribuite, allora anche i log p(Xi) lo sono. Dalla legge dei grandi numeri segue che 1 n log p(X1, X2, ...Xn) = 1 n i log p(Xi) → −E(log p(X)) in probabilit`a = H(X) Definizione 1.3.2. L’insieme delle An ε delle n-sequenze ε-tipiche rispetto alla probabilit`a p(x) `e composto dalle sequenze (x1, x2, .., xn) ∈ An con la
  • 18. 1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 13 seguente propriet`a 2−n(H(X)+ε) ≤ p(x1, x2, .., xn) ≤ 2−n(H(X)−ε) Inoltre vale il seguente teorema Teorema 1.3.3. L’insieme An ε rispetta le seguenti propriet`a: 1. Se (x1, x2, .., xn) ∈ An ε allora H(X) − ε ≤ −1 n p(x1, x2, .., xn) ≤ H(X) + ε 2. P{An ε } ≤ 1 − ε per n sufficientemente grande 3. |An ε | ≤ 2n(H(X)+ε) Dimostrazione. La prima propriet`a `e conseguenza immediata della definizio- ne dell’insieme. La seconda segue dal Teorema AEP per variabili indipendenti identicamente distribuite, che implica che la probabilit`a dell’evento (X1, X2, ...Xn) ∈ An ε tende a 1 qunado n → ∞. Quindi per ogni δ > 0 esiste n ≥ n0 tale che P 1 n log p(X1, X2, ...Xn) − H(X) < ε > 1 − δ Prendendo δ = ε otteniamo il punto 2. Passiamo ora a dimostrare la terza propriet`a 1 = x∈An p(x) ≥ x∈An ε p(x) ≥ x∈An ε 2−n(H(X)+ε) = 2n(H(X)+ε) |An ε | Da cui segue la terza propriet`a.
  • 19. 14 CAPITOLO 1. ENTROPIA E SORGENTI Il teorema AEP `e stato presentato in forma astratta perch´e pu´o dimo- strato anche per processi stocastici pi`u generali. Nel caso di variabili aleatorie indipendenti e identicamente distribuite le affermazioni del teorema possono essere apporfondite. Sia X una variabi- le discreta che assume valori nell’alfabeto A = {x1, x2, .., xn}, definite le probabilit`a di ogni elemento nell’alfabeto P(X = xi) = pi per i = 1...n. Allora la probabilit`a di osservare la stringa (y1, ..., ym) `e P{(X1, ...Xm) = (y1, ..., ym)} = m k=1 pik = pm1 1 · · · · · pmn n (1.2) dove m1, ..., mn `e il numero di volte che la variabile assume valori uguali rispettivamente a x1, x2, .., xn e m1+...+mn = m. L’entropia di ogni variabile aleatoria sar`a H = m j pj log pj Poich´e le variabili aleatorie Xj sono indipendenti e identicamente distribuite abbiamo che H(Xj) = H, e l’entropia delle m variabili `e H(X1, ...Xm) = mH(X) Inoltre non `e difficile dimostrare che se mi ∼ pjm allora la sequenza `e tipica, infatti log(pm1 1 . . . pmn n ) = n j=1 mj log pj ∼ m n j=1 p1 log pj = −mH
  • 20. 1.3. PROPRIET `A DI EQUIPARTIZIONE ASINTOTICA 15 Infine il numero di queste stringhe `e m! m1!m2! . . . mn! ∼ mm mm1 1 mm2 2 . . . mmn n ∼ mm j(pjn)nj = = mm mm j(pj)npj = 2mH Abbiamo ricavato cos`ı la propriet`a 3 del precedente teorema. Si noti co- munque che, le stringhe tipiche che abbiamo considerato qui non esauriscono tutto l’insieme An ε al quale appartengono anche tutte le stringhe per le quali − ni n log pi `e H a meno di ε. In precedenza avevamo detto che l’AEP `e valida per qualsiasi sorgente ergodica stazionaria. Il seguente teorema forni- sce un risultato molto importante per stringhe emesse da sorgenti stazionarie ergodiche, poich`e stabilisce che all’aumentare della lunghezza della stringa aumenta la certezza che questa sia una stringa tipica Teorema 1.3.4. Se H `e l’entropia per un processo ergodico a valori finiti {Xn}, allora lim n→∞ P − 1 n log P(X1, ...Xn) − H < ε = 1
  • 21. 16 CAPITOLO 1. ENTROPIA E SORGENTI
  • 22. Capitolo 2 Il problema della compressione Un classico problema di immagazzinamento e trasferimento dati `e causato dalla grandezza dei dati. Nasce cos`ı la necessit`a di ridurre, quindi compri- mere, queste sequenze di simboli in sequenze pi`u corte, cos`ı da occupare meno memoria e da ottenere trasferimenti pi`u veloci. Naturalmente una volta compresso un file, si ha il problema di avere una decompressione che riporti il file allo stato originale, quindi leggibile. Comprimere un file di testo significa trasformare una stringa di caratteri in una stringa di bit che contenga la stessa informazione ma che sia pi`u corta. L’entropia ha un ruolo determinante nella compressione, rappresentando il limite massimo di compressione senza perdita di dati. 2.1 Definizioni Sia A un alfabeto finito emesso dalla sorgente e D un nuovo alfabeto nel quale vogliamo tradurre i messaggi. Indichiamo con D∗ l’insieme di tutte le stringhe finite sull’alfabeto D. Definizione 2.1.1. Un codice C `e una funzione da A in D∗ 17
  • 23. 18 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Con C(x) indichiamo la codifica del valore x e con l(x) la lunghezza di C(x). Un classico esempio di codice `e il codice Morse, detto anche alfabeto Morse. Fu sviluppato tra il 1835 e il 1840 da Samuel Morse. Fu inizialmente usato per le trasmissioni telegrafiche. Il codice Morse ori- ginale consisteva in combinazioni di punti e linee ognuna corrispondente a un numero. A sua volta ogni numero corrispondeva a una parola ricavabile attraverso la ricerca del numero in un apposito libretto. I numeri venivano trasmessi mediante l’uso del tasto telegrafico. Il codice Morse fu subito considerato lo standard per la codifica delle informazioni ed ebbe un cos`ı ampio e incontrastato successo che nessun altro sistema alternativo riusc`ı a soppiantarlo, rimanendo lo standard internazionale per le comunicazioni marittime fino al 1999. Il costo di un messaggio telegrafato dipendeva dalla sua lunghezza, per questo vennero escogitati alcuni codici commerciali in modo da codificare intere frasi in gruppi di poche lettere (normalmente cinque) che venivano poi inviati come singole parole. Per esempio: LIOUY (“Perch´e non rispondi alla mia domanda?”) o AYYLU (“Non codificato chiaramente, ripeti pi`u chiaramente”). Tra questi, il codice Q e il codice Z hanno ancora una discreta fortuna tanto che attualmente sono usati sia dai radioamatori che dagli operatori di telegrafia per informazioni di servizio come la qualit`a del collegamento, il cambio di frequenza o la numerazione dei telegrammi. Per rappresentare le lettere ed altri simboli il codice Morse utilizza una combinazione di 5 simboli: punto (•), linea (−), intervallo breve per separare le lettere, intervallo medio per separare le parole e intervallo lungo per separare le frasi. La lunghezza di un punto determina la velocit`a con cui viene inviato il messaggio ed `e usato come unit`a di tempo di riferimento. Esiste comunque un modo convenzionale di rappresentare la cadenza temporale dei segnali da trasmettere. Una linea `e convenzionalmente tre volte un punto.
  • 24. 2.1. DEFINIZIONI 19 Gli spazi tra i punti e le linee di un carattere sono della lunghezza di un punto, quelli tra le lettere sono ampi come una linea (tre punti), quelli tra parole sono lunghi sette punti. La scelta delle combinazioni di simboli che rappresentano le lettere `e fatta sulla base della frequenza di utilizzo delle lettere nella lingua inglese, infatti lettere che vengono usate pi`u frequentemente come a oppure e sono rappresentate da sequenze pi`u corte. Nel caso del codice Morse considereremo come alfabeto A l’insieme costituito dalle lettere dell’alfabeto e i numeri e come D l’insieme {•, −, , , }. Un altro classico esempio di codice `e il codice ASCII (American Standard Code for Information Interchange). Questo tipo di codice viene usato in ogni computer, anche se sta venendo sostiutito pian piano da un altro codice l’UTF-8. Ogni simbolo della tastiera `e rappresentato da un diverso byte (una stringa di 8 bit). In principio quando l’ASCII era appena nato nel 1961 venivano usate stringhe di 7 bit, ma pochi anni dopo, con lo scopo di raddoppiare il numero di simboli rappresentabili, venne esteso a stringhe di 8 bit. L’alfabeto A considerato dal codice ASCII, `e composto dal normale alfabeto ripetuto due volte (ASCII considera lettere maiuscole e minuscole come caratteri differenti), numeri, i simboli di punteggiatura e altri simboli particolari, mentre D = {0, 1}. Abbiamo preso questi due codici come esempio perch´e hanno una differenza interessante: il codice Morse `e un codice a lunghezza variabile, cio`e ogni carattere ha la sua lunghezza che pu`o essere diversa dalla lunghezza degli altri caratteri, il codice ASCII invece rappresenta tutti i caratteri con stringhe della stessa lunghezza. Da ora indichiamo con xn la stringa (x1, x2, ..., xn). Definizione 2.1.2. Un codice `e detto non singolare se `e iniettivo ovvero xi = xj ⇒ C(xi) = C(xj) Definizione 2.1.3. L’estensione C∗ di un codice C `e un’applicazione che
  • 25. 20 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE manda stringhe finite dell’alfabeto A in stringhe finite di D definita da C ∗ (xn ) = C(x1)C(x2) . . . C(xn) dove con C(x1)C(x2) . . . C(xn) indichiamo le concatenazioni di parole di co- dice corrispondente. `E da notare che la sola non singolarit`a del codice non `e sufficiente affinch´e il codice sia decifrabile in maniera univoca. Ad esempio sia A = {a, b, c, d} C = 01, 10, 100, 101 C(a) = 01, C(b) = 10, C(c) = 100, C(d) = 101 la stringa 10010101 pu`o essere decifrata come 10 - 01 - 01 - 01 quindi baaa oppure come 100 - 101 - 01 e quindi cda. Definizione 2.1.4. Un codice `e detto univocamente decodificabile se la sua estensione non `e singolare. Se prendiamo come esempio A = {a, b, c, d} C = 0, 01, 011, 0111 C(a) = 0, C(b) = 01, C(c) = 011, C(d) = 0111 sappiamo che ogni volta che incontriamo uno 0 sta iniziando un nuovo carat- tere e il codice `e univocamente decodificabile. Un problema di questo tipo di codifica `e che dobbiamo arrivare all’inizio del nuovo carattere per sapere cosa stiamo leggendo. Utilizzando invece un codice del tipo A = {a, b, c, d} C = 0, 10, 110, 1110 C(a) = 0, C(b) = 10, C(c) = 110, C(d) = 1110 ogni carattere `e decodificatto appena letto, poich´e lo 0 mi indica la fine del carattere.
  • 26. 2.1. DEFINIZIONI 21 Definizione 2.1.5. Un codice `e detto istantaneo se non esiste nessuna parola di codice che `e prefisso di un’altra parola di codice. In altre parole, un codice `e istantaneo se ogni simbolo pu`o essere de- codificato appena ricevuto. Un codice istantaneo `e sempre univocamente decodificabile. Tramite la disuguaglianza di Kraft abbiamo un criterio per stabilire se un codice `e istantaneo o meno. Teorema 2.1.6. Per ogni codice istantaneo su un alfabeto di grandezza L, le lunghezze delle codifiche l1, l2, ..., ln devono soddisfare i L−li ≤ 1 Viceversa, se le lunghezze delle codifiche soddisfano la disuguaglianza, allora esiste un codice L-ario istantaneo con queste lunghezze. Dimostrazione. Consideriamo un albero L-ario dove ogni nodo ha L figli, gli archi dell’albero sono etichettati con le lettere dell’alfabeto L-ario in modo che ogni codifica `e rappresentata da una foglia dell’albero. I valori delle codifiche sono ottenuti leggendo le etichette degli archi dell’albero dalla radice ad una certa foglia. Essendo il codice istantaneo nessuna codifica `e il prefisso di un’altra codifica. Sia lmax la lunghezza massima della parola di codice, ovvero l’altezza dell’al- bero L-ario. Presa una codifica ad altezza li per mantenare il codice prefisso bisogna eliminare il sottoalbero di altezza lmax−li. Quindi verranno eliminate Llmax−li foglie, in totale verranno eliminate i Llmax−li foglie. Poich`e il nu- mero di foglie eliminate non pu`o superare il numero di foglie totali dell’abero si ha i Llmax−li ≤ Llmax i L−li ≤ 1
  • 27. 22 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Al contrario supponendo che le lunghezze soddisfino la disuguaglianza di Kraft, `e sempre possibile costruire un albero etichettando in maniera oppor- tuna gli archi. 2.2 Codifica ottimale Definizione 2.2.1. La lunghezza media L(C) di un codice C(x) per una variabile aleatoria X di un alfabeto A con distribuzione di probabilit`a p(x) `e data da L(C) = x∈A p(x)l(x) = E(l(X)) Dimostreremo in seguito che questa grandezza non potr`a mai essere pi`u piccola dell’entropia di X. Definizione 2.2.2. Assegnata una distribuzione di probabilit`a, un codice ottimale `e un codice istantaneo tale che la sua lunghezza media sia la pi`u piccola tra tutte le lunghezze medie dei codici per la stessa distribuzione. Abbiamo visto dalla disuguaglianza di Kraft che ottenere un codice otti- male `e come trovare un insieme di lunghezze l1, l2, ..., lmax che soddisfino la disuguaglianza e che rendano minima la lunghezza media A = i pili Teorema 2.2.3. In un codice L-ario prefisso per una variabile aleatoria X la lunghezza media soddisfa A ≥ HL(X) con l’uguaglianza se e solo se L−li = pi.
  • 28. 2.2. CODIFICA OTTIMALE 23 Dimostrazione. HL(X) − A = i pi logL 1 pi − i pili = i pi logL 1 pi + i pi logL L−li = i pi logL 1 piLli ≤ logL i pi · 1 piLli = logL i L−li ≤ logL 1 = 0 (2.1) Le due disuguaglianze valgono rispettivamente la disuguaglianza di Jensen e la disuguaglianza di Kraft Teorema 2.2.4. Siano l∗ 1, l∗ 2, ..., l∗ max le lunghezze ottimali di un codice otti- male per una sorgente X con distribuzione di probabilit`a p(x). La lunghezza media del codice ottimale A∗ = i pil∗ i soddisfa HL(X) ≤ A∗ ≤ HL(X) + 1 Dimostrazione. La prima parte della disuguagliaza `e dimostrata dal prece- dente teorema. Sia ora li = logL 1 pi (dove ⌈x⌉ indica il pi`u piccolo intero pi`u grande o uguale a x). Il codice esiste poich´e soddisfa la disuguaglianza di Kraft: i L − logL 1 pi ≤ i L − logL 1 pi = i pi = 1 La lunghezza media `e A = i pili = i pi logL 1 pi < i pi 1 pi + 1 = HL(X) + 1 Essendo la lunghezza media ottimale A∗ non `e pi`u grande di A, ne segue la tesi del teorema
  • 29. 24 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Abbiamo sempre considerato il caso di una sola variabilea aleatoria X, ma sarebbe pi`u interessante cosiderare il caso di una stringa generata da n simboli di A. Supponiamo che ogni simbolo sia indipendente e identicamente distribuito secondo la distribuzione p(x). Abbiamo cos`ı esteso il caso a n variabili X1, ..., Xn all’insieme A. Chiamiamo ora Ln la lunghezza media per simbolo Ln = 1 n (x1,...,xn)∈An p(x1, ..., xn)l(x1, ..., xn) = 1 n E(l(X1, ..., Xn) Possiamo considerare la stringa degli n simboli come un unico simbolo del- l’alfabeto An , quindi possiamo applicare i teoremi precedenti e la lunghezza media attesa sar`a H(X1, ..., Xn) ≤ E(l(X1, ..., Xn) < H(X1, ..., Xn) + 1 Inoltre, avendo supposto che le variabili siano indipendenti e identicamente distribuite possiamo dire che n i=1 H(Xi) = nH(X) da cui nH(X) ≤ nLn < nH(X) + 1 H(X) ≤ Ln < (X) + 1 n Quindi prendendo n sufficientemente grande possiamo stimare la lunghezza media ottimale come Ln H(X). A conferma di ci`o notiamo che un risultato simile pu`o essere ottenuto utilizzando le propriet`a dell’AEP. Infatti possiamo dividere l’alfabeto An in due sottoinsiemi: An ε , il gruppo delle lunghezze tipiche, e il suo complementare. Ipotizziamo poi di ordinare gli elementi dei due sottoinsiemi secondo un ordine stabilito, per cui ogni sequenza di An ε verr`a rappresentata dall’indice della sequenza nell’insieme. Abbiamo visto
  • 30. 2.2. CODIFICA OTTIMALE 25 in precedenza che gli elementi dell’insieme sono al pi`u 2n(H(X)+ε) , per cui gli indici utilizzaranno al pi`u n(H + ε) + 1 bit. Alla stessa maniera possiamo indicizzare il complementare di An ε usando al pi`u n log |A|+1 bit. Sia ora l(xn 1 ) la lunghezza del codice corrispondente a xn 1 . Se prendiamo n abbastanza grande tale che P{An ε } ≥ ε, allora la lunghezza media attesa sar`a E(l(X1, ..., Xn) = xn p(xn )l(xn ) = xn∈An ε p(xn )l(xn ) + xn∈An ε C p(xn )l(xn ) ≤ xn∈An ε p(xn )[n(H + ε) + 2] + xn∈An ε C p(xn )(n log |A| + 2) = P{An ε }[n(H + ε) + 2] + P{An ε C }(n log |A| + 2) ≤ n(H + ε) + εn(log |A|) + 2 = n(H + ε′ ) dove ε′ = ε + ε log |A| + 2 n e pu`o essere reso abbastanza piccolo con un’op- portuna scelta di ε. Abbiamo quindi concluso che preso ε > 0 esiste un codice che rappresenta la sequenza xn in una stringa binaria e la lunghezza media per carattere vale Ln < H(X) + ε con n sufficientemente grande. Passiamo ora a un caso ancora pi`u generico, non richiedendo pi`u che le notare variabili aleatore X1, ..., Xn siano necessariamente indipendenti e identica- mente distribuite. Teorema 2.2.5. La lunghezza media minima per simbolo soddisfa H(X1, ..., Xn) n ≤ L∗ n ≤ H(X1, ..., Xn) n 1 n
  • 31. 26 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Inoltre se il processo `e stazionario L∗ n → H dove H rappresenta l’entropia del processo. Dimostrazione. Sappiamo che per una stringa di lunghezza n vale H(X1, ..., Xn) ≤ E)l(X1, ..., Xn) < H(X1, ..., Xn) + 1 Quindi dividendo per n si ottiene H(X1, ..., Xn) n ≤ L∗ n ≤ H(X1, ..., Xn) n 1 n Nel caso il processo sia stocastico si ha che lim n→∞ 1 n H(X1, ..., Xn) = H(X) quindi per n → ∞ possiamo dire che L∗ n → H Come possiamo vedere da questo teorema, l’entropia ha un importante ruolo: rappresenta il minimo numero di bit per carattere necessari per descri- vere il processo. Allora da questo teorema deduciamo che se comprimiamo una stringa con un codice ottimale, l’entropia della stringa per carattere sar`a la lunghezza media per carattere della stringa compressa. Abbiamo gi`a dimostrato che un codice istantaneo per essere ottimale deve soddisfare la disuguaglianza di Kraft. Essendo i codici ottimali un sottoin- sieme dei codici univocamente decodificabili, ci si potrebbe aspettare che estendendo il minimo della lunghezza media su tutti i codici univocamente decodificabili si abbia un risultato migliore. Il teorema di McMillan ci mostra invece che non `e possibile ottenere una stima migliore della lunghezza media A di quella ottenuta per i codici prefissi.
  • 32. 2.2. CODIFICA OTTIMALE 27 Teorema 2.2.6. Le lunghezze di un codice univocamente decodificabile sod- disfano la disuguaglianza di Kraft. Viceversa, assegnato un insieme di lun- ghezze che soddisfano la disuguaglianza di Kraft, `e sempre possibile costruire un codice univocamente decodificabile con queste lunghezze. Dimostrazione. Sia l(x) la lunghezza di una codifica assegnata a x ∈ A, conseguentemente la lunghezza di una sequenza l(x1, ..., xn) = n i=1 l(xi). Osserviamo che x∈A L−l(x) n = x1∈A x2∈A · · · xn∈A L−l(x1) L−l(x2) ...L−l(xn) = x1,x2,...,xn)∈An L−l(x1) L−l(x2) ...L−l(xn) = xn∈An L−l(xn) Chiamiamo α(i) il numero di sequenze lunghe n codificate con sequenze lunghe i. L’estensione Cn `e non singolare dall’ipotesi che il codice sia uni- vocamente decodificabile. Infatti per definizione Cn `e la concatenazione di n codici univocamente decodificabili. Poich`e Cn `e non singolare, le codifiche per Cn devono essere tutte diverse e saranno al massimo tutte le foglie ad altezza i di un albero L-ario, ovvero α(i) ≤ Li . Indicando con lmax la lunghezza massima tra le codifiche di Cn , abbiamo che xn∈An L−l(xn) = n·lmax i=1 α(i)L−i ≤ n·lmax i=1 Li L−i = n · lmax Quindi ∀n xn∈A L−l(x) ≤ n · l 1 n max
  • 33. 28 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Poich`e per n → ∞ abbiamo che n · l 1 n max → 1 otteniamo xn∈A L−l(x) ≤ 1 ovvero la disuguaglianza di Kraft. Viceversa, assegnate le lunghezze l1, l2, ..., ln che soddisfano la disuguaglianza di Kraft sappiamo gi`a che `e possibile costruire un albero dal quale ottenere un codice istantaneo. Essendo un codice istantaneo univocamente decodificabile, `e dimostrata la tesi. Vediamo quindi che l’insieme di scelta per le lunghezze `e lo stesso sia per un codice prefisso che per un codice univocamente decodificabile. Il limite massimo di compressione media per carattere per questi codici resta l’entropia del processo. Nella compressione di testi si tengono in cosiderazione solo codici univoca- mente decodificabili, poich´e siamo interessati a una codifica senza perdita di informazioni, ovvero la stringa decodificata deve essere identica alla stringa originale. Osserviamo che non esiste un solo codice ottimale, infatti invertendo i bit o scambiando codifiche della stessa lunghezza in un codice ottimale, si ottiene un altro codice ottimale. Andiamo ora a dare delle propriet`a che un codice ottimale deve avere. Possiamo supporre, senza perdere di generalit`a, di avere le probabilit`a or- dinate in senso non decrescente, in modo da ottenere p1 ≥ p2 ≥ ... ≥ pm. Teorema 2.2.7. Per ogni distribuzione di probabilit`a p si pu`o sempre otte- nere un codice ottimale per cui le due codifiche pi`u lunghe differiscono solo nell’ultimo simbolo. Inoltre ogni codice ottimale soddisfa: 1. Se pj > pk, allora lj ≤ lk 2. Le due codifiche pi`u lunghe hanno la stessa lunghezza
  • 34. 2.2. CODIFICA OTTIMALE 29 Dimostrazione. Sia C un codice ottimale con lunghezza l1, l2, ..., lm. Supponiamo per assurdo che pj > pk e lj ≥ lk. Sia C′ il codice ottenuto da C scambiando la j-esima parola con la k-esima parola. Sia L′ = i=j,k pili + pjlk + pklj la lunghezza media di C′ . Quindi la differenza tra le lunghezze attese sar`a L′ (C′ ) − L(C) = i=j,k pili + pjlk + pklj − m i=1 pili = pjlk + pklj − pjlj − pklk = (pj − pk)(lk − lj) < 0 Questo vuol dire che L′ < L, ma `e assurdo essendo C ottimale. Ovvero lj ≤ lk. Supponiamo ora per assurdo che il codice contenga un’unica parola di lun- ghezza massima lmax. Allora `e possibile cancellare da essa l’ultimo bit, rispettando la propriet`a di codice prefisso, ma ottenendo una lunghezza media inferiore a L, ma anche questo `e un assurdo essendo C ottimale. In generale non `e vero che in ogni codice ottimale le due codifiche differiscano solo per l’ultimo bit, ma un codice ottimale qualsiasi pu`o essere modificato per far si che sia vero. Consideriamo ora un codice ottimale qualsiasi, dalle prime due propriet`a segue che lm = lm−1 = max{li : 1 ≤ i ≤ m}. Supponiamo che le due codifiche corrispondendi C(m) e C(m − 1), non differiscano solo nell’ultimo bit, quindi i nodi associati non sono fratelli. Sia C(j) il fratello di C(m) con j ≤ m − 2 per cui lj = lm = lm−1. C(j) non `e una codifica del codice, ma si pu`o costruire un nuovo codice tale che al posto di C(m − 1) si abbia C(j). La lunghezza media resta invariata, ma nel nuovo codice le due codifiche pi`u lunghe differiscono solo per l’ultimo bit. Utilizzeremo questo teorema nel prossimo paragrafo, per dimostare l’ot- timalit`a dell’algoritmo di Huffman.
  • 35. 30 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE 2.3 Codice di Huffman Uno dei pi`u famosi e utilizzati codici prefissi ottimali `e, senza dubbio, quello inventato da Huffman nel 1952. L’idea base del codice di Huffman `e di rappresentare caratteri pi`u probabili con sequenze binarie pi`u corte e viceversa. L’alfabeto L-ario per il codice di Huffman non `e che quello binario. L’algoritmo lavora costruendo un albero binario utile anche nella decodifica. L’albero viene costruito dal basso in alto in modo che ogni foglia rappresenti un carattere. Stabilita la probabilit`a di ogni carattere da codificare, l’algoritmo inizia costruendo per ogni carattere un albero formato da una sola radice. A ogni passo i due caratteri con probabilit`a pi`u bassa si uniscono sotto un nodo padre che ha come frequenza la somma della frequenza dei due nodi. Il processo continua, scegliendo i due nodi con le frequenze pi`u basse e ignorando i nodi che sono gi`a discendenti, fino a quando si ha un solo nodo senza genitori, che diventa la radice dell’albero di Huffman. Ogni arco a destra `e etichettato con 1 e a sinistra con 0. La codifica per un carattere sar`a ottenuta dalla stringa di bit che si incontrano lungo il percorso dalla radice alla foglia corrispondente al carattere. Caratteri pi`u comuni si troveranno pi`u vicini alla radice. Spieghiamo il procedimento passo passo. Vogliamo codificare la stringa this is an example of a huffman tree. I caratteri da codificare sono {t, h, i, s, a, n, e, x, m, p, l, o, f, u, r, } e prendiamo come probabilit`a di ogni simbolo la sua frequenza relativa con la quale appare nel testo, cio`e 2 34 , 2 34 , 2 34 , 2 34 , 3 34 , 2 34 , 4 34 , 1 34 , 2 34 , 1 34 , 1 34 , 1 34 , 3 34 , 1 34 , 1 34 , 6 34 . I nodi corri- spondenti a o e u vengono uniti in un unico nodo che viene etichettato con la somma delle probabilit`a. lo stesso viene fatto con gli altri nodi di uguale probabilit`a e il processo viene iterato fino ad arrivare a un nodo con etichetta 1. Il codice per ogni carattere si ottiene percorrendo un cammino sull’albero dalla radice alla foglia del carattere interessato.
  • 36. 2.3. CODICE DI HUFFMAN 31 Figura 2.1: Esempio di funzionamento dell’algoritmo di Huffman Nel nostro esempio, se volessi conoscere il codice del carattere m dovrei passare sempre a sinistra e quindi otterrei 000. Le codifiche sono inidividua- te senza nessuna ambiguit`a perch`e il codice Huffman `e un codice prefisso. Osserviamo inoltre che il codice binario di Huffman per una distribuzione di probabilit`a p1, ..., pm viene costruito ricorsivamente in modo che soddisfi le propriet`a richieste nel teorema precedente. Teorema 2.3.1. Il codice di Huffman `e ottimale. Se C∗ `e il codice di Huffman e C′ `e un altro codice allora L(C∗ ) ≤ L(C′ ). Dimostrazione. Procediamo per induzione sugli elementi della distribuzione. L’algoritmo di Huffman passa dalla codifica di m a m−1 elementi sommando le due probabilit`a pi`u piccole. Sia Cm il codice per m elementi con probabilit`a (p1, ..., pm), appositamente ordinate in senso non crescente, in modo che le due codifiche pi`u lunghe differiscano solo per l’ultimo bit. Sia ora Cm−1 il codice per m − 1 elementi con probabilit`a (p1, ..., pm−2, p′ m−1) dove p′ m−1 = pm−1 + pm. Le prime m − 2 codifiche di Cm−1 corrispondono
  • 37. 32 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE a quelle di Cm, mentre la codifica corrispondente alla probabilit`a p′ m−1 `e il prefisso comune alle due codifiche pi`u lunghe di Cm. Quindi il legame tra i due codici `e il seguente Cm(i) = Cm−1(i) per i = 0, 1, ..., m − 2 Cm(m − 1) = Cm−1 · 0 Cm(m) = Cm−1 · 1 Osserviamo che L(Cm − L(Cm−1) non dipende dalla lunghezze del codice, quindi minimizzare L(Cm `e come minimizzare L(Cm−1). Il procedimento viene iterato finch´e non si ottiene un codice per solo 2 elementi, in questo caso il codice assegner`a 0 ad un elemento e 1 all’altro. Essendo il codice per 2 elementi sempre ottimo, si pu`o usare l’ipotesi indut- tiva. Ora vogliamo dimostrare che se Cm−1 `e minima per costruzione, allora anche Cm lo `e. Ovviamente come ogni codice prefisso e ottimale, la lunghezza soddisfa HL(X) ≤ L(C∗ ) ≤ HL(X) + 1 Fino a ora abbiamo sempre ipotizzato di conoscere la probabilit`a di ogni carattere dell’alfabeto, nel caso pi`u generale qunado si comprime una stringa non si conosce con che probabilit`a si presenteranno i caratteri. 2.4 Compressione con modelli probabilistici Alcuni metodi di compressione si possono dividere in due fasi: modelliz- zazione e codifica. Nella prima fase si assegna ad ogni simbolo dell’alfabeto A che si intende codificare, una probabilit`a che, nella fase di codifica, si utilizza per generare una stringa compressa. La fase di modellizzazione `e molto importante in quanto si otterr`a una buona compressione solo se preceduta
  • 38. 2.4. COMPRESSIONE CON MODELLI PROBABILISTICI 33 da un’esatta stima della probabilit`a. Quanto pi`u accurata sar`a tale stima, tanto pi`u si potr`a conseguire una buona compressione. Vengono chiamati metodi adattativi invece quelli che iniziano con una pro- babilit`a base e la modificano mano a mano che i simboli vengono codificati. Durante il processo di codifica, il modello viene adattato a seconda dei simboli incontrati in modo da ottenere una statistica sempre pi`u adeguata al testo da codificare. Il modello pu`o adattarsi solo ai simboli gi`a codificati, dato che nella fase di decompressione bisogna essere in grado di riottenere lo stesso modello via via che il testo compresso viene decodificato. Bisogna osservare per`o che nella maggior parte dei casi i simboli emessi in sequenza non sono indipendenti: la scelta di un certo simbolo `e influenzata anche dai caratteri che lo precedono. Nella lingua italiana, per esempio, esistono evidenti relazioni tra caratteri: il carattere h sar`a seguito sicura- mente solo da vocali mentre la lettera q `e seguita quasi sicuramente da una u. Risulta quindi conveniente stimare la probabilit`a attraverso la dipendenza statistica dei simboli e come questa cambia lungo il testo. Chiamiamo modelli di ordine m quelli che utilizzano gli ultimi m simboli codificati per stimare la probabilit`a. Un modello, semistatico o adattativo, di ordine 0 `e un modello che tratta ogni simbolo come indipendente e stima la sua probabilit`a attraverso la sua frequenza, senza tenere conto del contesto. La probabilit`a di ogni carattere `e quindi stimata dalla frequenza relativa che quel carattere compaia nella stringa gi`a codificata. In un modello di primo ordine adattativo la probabilit`a di avere un certo carattere verr`a calcolata attraverso la frequenza relativa con cui compare quel carattere preceduto dall’ultimo carattere codificato. Per modelli di ordine m la probabilit`a `e stimata da quanto spesso quel carattere compare preceduto dal contesto lungo m. Metodi che usano sempre lo stesso modello per comprimere qualsiasi testo vengono chiamati statici. Pu`o accadere di codificare un testo molto differente
  • 39. 34 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE da quello da cui il modello era stato ricavato. Ad esempio, un modello per un testo in italiano non sar`a idoneo per un testo scritto in un’altra lingua e viceversa. Una soluzione `e quella di generare il modello specifico per il testo che si sta comprimendo. Il primo passo `e quello di stimare le probabilit`a di ogni simbolo presente nel testo e trasmetterle al decompressore prima di passare la codifica dei simboli. Metodi di questo tipo vengono chiamati semi- statici. In questo caso si adotta un modello in cui ogni simbolo `e indipendente ed identicamente distribuito, in cui non si tiene conto dell’occorrenza passata. L’esempio riportato per la codifica di Huffman `e un esempio semistatico. In quel caso abbiamo stimato la probabilit`a dei caratteri dalla frequenza relativa della stringa. La codifica di Huffman risulta ottimale quando viene presa una distribuzione statica o semistatica, ma `e preferibile non usarla per metodi adattativi. Nel caso di metodi adattativi la distribuzione cambia ogni volta che un carattere `e codificato e questo comporta che nel codice di Huffman bisogna rigenerare l’albero ogni volta. Per una compression adattativa `e preferibile usare la codifica aritmetica, dove la fase di modellizzazione `e separata dalle operazioni di codifica. 2.5 Codifica aritmetica La codifica aritmetica `e una tecnica di compressione senza perdita di informazione. Normalmente in informatica i dati sono rappresentati come un insieme fisso di bit, per esempio i caratteri sono spesso rappresentati con otto bit. La codifica aritmetica, partendo dal presupposto che alcuni simboli tendono ad apparire pi`u frequentemente di altri, assegna dei codici di lunghezza variabile ai simboli, al fine di minimizzare il numero totale di bit da trasmettere. Questa strategia viene utilizzata anche da altri sistemi di codifica, come abbiamo visto anche per il codice di Huffman ma, mentre
  • 40. 2.5. CODIFICA ARITMETICA 35 il codice di Huffman associa una specifica codifica a ogni singolo simbolo, la codifica aritmetica associa una singola codifica all’intero messaggio o a blocchi di questo. Possiamo schematizzare questo algoritmo in 3 passi: • Definizione dell’intervallo iniziale, solitamnete [0, 1) • Per ogni simbolo s della stringa – Dividere l’intervallo corrente in sottointervalli la cui ampiezza `e proporzionale alle probabilit`a dei simboli – Individuare il sottointervallo per il simbolo s e definirlo come nuovo intervallo corrente • Restituire il numero che unicamente definisce l’intervallo corrente, cio`e un numero all’interno dell’intervallo Sia A l’alfabeto finito della sorgente, supponiamo di conoscere le probabilit`a p1, ..., pM con cui la sorgente emette gli M simboli e indichiamo con c(n) = n−1 i=1 la funzione di distribuzione. Indichiamo con xk il k-esimo simbolo della stringa lunga N emessa dalla sorgente. La codifica aritmetica, seguendo i passi descritti sopra, consiste nel creare intervalli contenuti uno dentro l’altro nella forma Φk = [αk, βk), con k = 0, 1, ..., N dove αk e βk sono numeri reali tali che 0 ≤ αk ≤ αk+1 e βk+1 ≤ βk < 1. Per avere una notazione pi`u semplice, possiamo indicare l’intervallo tramite il punto iniziale b e la sua lunghezza l. Quindi l’intervallo [α, β) corrisponder`a all’intervallo |b, l dove b = α e l = β − α. Possiamo riscrivere la codifica aritmetica in maniera iterativa Φ0 = |b0, l0 Φk = |bk, lk = |bk−1 + c(xk)lk−1, pklk−1 , per k = 1, 2, .., N
  • 41. 36 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE Ogni intervallo viene suddiviso in sottointervalli tramite la funzione di di- stribuzione c e ad ogni passo k viene preso come nuovo intervallo quello corrispondente al carattere xk. La codifica aritmetica `e una codifica sub-ottima ma che presa una stringa di lunghezza N se N → ∞ al limite `e un algoritmo ottimale. La particolarit`a della codifica aritmetica `e che la modellizzazione `e separata dalla codifica. Supponiamo di voler comprimere la stringa bccb dall’alfabeto A = {a, b, c} usando un metodo adattivo di ordine 0. Supponiamo che i caratteri abbiano tutti la stessa probabilit`a di comparire, quindi Φ0 = |b0, l0 = [0, 1) Φ1 = |b0 + ck(b)l0, p1(b)l0 = |0 + 1 3 , 1 3 = [0.333, 0.666) Prima di calcolare il nuovo intervallo vanno stimate le nuove probabilit`a, sapendo che il simbolo b `e comparso una volta. Quindi la nuova disrtibuzione di probabilit`a sar`a p2(a) = 1 4 ; p2(b) = 1 2 ; p2(c) = 1 4 . Ora possiamo calcolare l’intervallo Φ2 = |b1 + c2(c)l1, p2(c)l1 = | 1 3 + 3 4 · 1 3 , 1 4 1 3 = [0.5833, 0.667) La stringa pu`o essere espressa con qualsiasi valore dell’ultimo intervallo tro- vato v ∈ [0.6394, 0.6501). In questo caso la scelta pi`u conveniente `e v = 0.64. Nella decompressione viene usato lo stesso identico procedimento della fase di compressione. Si inizia dall’intervallo [0, 1) e lo si divide proporzionalmente secondo le probabilit`a, poi si vede in che intervallo cade il nostro codice e si trova il primo carattere. Si calcolano quindi le nuove probabilit`a conoscendo il carattere visto e, posizionando il codice, si trova il carattere successivo. Il
  • 42. 2.5. CODIFICA ARITMETICA 37 Figura 2.2: Un esempio di codifica/decodifica aritmetica procedimento viene iterato fino al completamento della stringa. `E necessario indicare al processo quando bisogna terminare la decodifica, ma si pu`o ovviare a questo problema passando prima della stringa compressa la dimensione della stringa originale oppure usand dei simboli speciali che indicano la fine della stringa.
  • 43. 38 CAPITOLO 2. IL PROBLEMA DELLA COMPRESSIONE
  • 44. Capitolo 3 PAQ8 Gli algoritmi di compressione possono dividersi in due categorie: quelli a compressione tramite statistica e quelli a compressione tramite sostituzione o con dizionario. I primi si basano sulla studio della frequenza dei caratteri; appartengono a tale categoria l’algoritmo di Huffman e la codifica aritme- tica, mentre i secondi codificano stringhe di caratteri fornendo i riferimenti che consentono l’individuazione nel dizionario. Noi ci concentreremo su un particolare algoritmo a compressione tramite statistica, il PAQ8. 3.1 Breve storia Il PAQ `e un algoritmo scritto nel 2001 da Serge Osnach, lo scopo di questo algoritmo era quello di comprimere dati tramite reti neurali. Il PAQ1 ancora non usava reti neurali, ma riusciva a migliorare gli algoritmi di previsione per corrispondenza parziale utiliazzandi differenti contesti per la previsione. Serge Osnach ha continuato a migliorare il suo algoritmo fino al 2003 scriven- do il PAQ3N. Questo ultimo algoritmo non `e compatibile con i precedenti, perch`e vennero introdottr per la prima volta nel PAQ i modelli di ordine 2. Dal PAQ4 in poi Matt Mahoney ha continuato a sviluppare l’algoritmo. Il primo grande cambiamento che port`o, fu l’introduzione dell’aggiornamento 39
  • 45. 40 CAPITOLO 3. PAQ8 dei pesi dei modelli utilizzati da PAQ per comprimere. Nel PAQ5 introdusse il riconoscimento del file da comprimere, in modo da partire inizialmente con modelli con pesi diversi. Il PAQ6 viene scritto per vincere il Calgary Challenge . Con il PAQ7 finalmente si raggiunge lo scopo di utilizzare le reti neurali. L’algoritmo rispetto al PAQ6 `e praticamente riscritto da capo e con questo grande cambiamento si ottengono compressioni di gran lunga migliori e con tempi fino a 3 volte pi`u brevi. Nel 2006 viene scritto il PAQ8, che in una delle sue versioni, partecipa e vince il premio Hutter, un concorso per il miglior compressore di dati utilizzante reti neurali. Il PAQ8 riesce a comprimere tutti i testi di enwik8 ( cio`e la versione inglese di wikipedia) in meno di 18Mb. E nell’anno successivo il PAQ8 viene migliorato da Alexander Rhatushnyak, che riesce a comprimere enwik8 in circa 16.5Mb. A fine 2007 sono stati scritti anche il PAQ9 e LPAQ, con il quali si cercava di migliorare l’algoritmo di PAQ8 e di mostrare che esistono altri algoritmi di compressione aritmetica ottimali, ma questi ultimi algoritmi non sono pi`u supportati e sono rimasti in fase sperimentale. Attualmente gli unici algoritmi sufficientemete veloci da poter essere usati normalmente (non per scopi di ricerca) come compressori basati su reti neurali sono P5, P6 e P12, ma il loro grado di compressione `e simile a quello di PAQ1. 3.2 Previsione per corrispondenza pariziale La previsione per corrispondenza parziale `e un metodo adattativo di compressione dati statistica. Questo metodo utilizza un insieme di simboli gi`a incontrato tra quelli emessi dalla sorgente per predire il prossimo simbolo
  • 46. 3.2. PREVISIONE PER CORRISPONDENZA PARIZIALE 41 che sar`a emesso. Il numero n di simboli che questo modello considera per la sua previsione determina l’ordine dell’algoritmo. Se guardando gli utlimi n simboli non pu`o essere fatta alcuna previsione perch´e `e la prima volta che il modello incontra questa sequenza di simboli, allora si scender`a di un ordine, andando quindi a considerare il contesto di lunghezza n − 1. L’algoritmo ripete questo procedimento fino a trovare un contesto che permette la previsione del simbolo successivo. Ci sono alcune particolari versioni di Previsione per corrispondenza parziale dette di ordine ∗, questo perch´e non hanno un numero massi di simboli da considerare nel contesto per calcolare la previsione. La maggior parte del lavoro di ottimizzazione di questo tipo di algoritmo `e proprio nella gestione degli input mai incontrati in precedenza nel flusso di simboli emesso dalla sorgente. Questo problema `e detto Zero-frequency problem. Una possibile soluzione attualmente utilizzata per ovviare a questo problema `e quella di considerare un input mai incontrato, come se fosse stato gi`a incontrato una volta. Cos`ı facendo non esistono pi`u simboli che hanno frequenza zero nel flusso emesso dalla sorgente e viene comunque contenuto l’errore nella previsione. Una seconda solizione utilizzata al problema `e quella di considerare ogni nuo- vo imput come se fosse stato gi`a incontrato m volte, dove con m indichiamo il numero di volte che `e stato incontrato un nuovo simbolo. Il vantaggio di questa seconda soluzione `e quello di poter stimare la probabilit`a di incontrare nuovi simboli nel flusso. Per come `e concepito, l’algoritmo di previsione per corrispondenza parziale, sarebbe implementabile su un algoritmo di Huffman o un qualsiasi altro algoritmo di compressione con dizionario, attualmente per`o si preferisce im- plementarlo negli algoritmi di codifica aritmetica.
  • 47. 42 CAPITOLO 3. PAQ8 Fino ai primi anni ’90 questo algoritmo non era molto utilizzato, poich´e nonostante la sua efficacia, richiedeva grandi quantit`a di RAM. Anche se attualmente questo algoritmo viene utilizzato con un modello di previsione markoviana, sarebbe possibile utilizzare altri modelli di previsione, oppure utilizzare pi`u modelli di previsione contemporaneamente. Quest’ulti- ma `e la strada intrapresa dagli sviluppatori di PAQ per migliorare l’algoritmo di previsione per corrispondenza parziale. 3.3 Descrizione dell’algoritmo Il PAQ8 usa un algoritmo di context mixing, il context mixing `e un parti- colare algoritmo di previsione per corrispondenza parziale, che differisce dagli altri algoritmi di previsione per contesto parziale perch´e dato un simbolo, la previsione del simbolo successivo viene calcolata usando una combinazione pesata di stime di probabilit`a da un vario numero di modelli per differenti contesti. Il PAQ usa i seguenti metodi di previsione: • n-grammi, il contesto sono gli ultimi n byte prima del simbolo predetto (come per gli altri algoritmi di previsione per contesto parziale) • parole intere, ignorando maiuscole e minuscole e simboli non alfabetici • contesto scarso, per esempio il secondo e il quarto byte che precedono il simbolo predetto • contesto analogico, un modello specializzato per i file musicali • contesto bi-dimensionale, un modello specializzto per i file immagine • altri modelli specializzati, utilizzati solo per particolari tipi di file La codifica aritmetica del PAQ, poich`e viene compresso un bit alla volta, divide sempre l’intervallo sempre in due parti, assegnando a ogni parte una
  • 48. 3.3. DESCRIZIONE DELL’ALGORITMO 43 lunghezza pari all’attuale probabilit`a di 0 e di 1. Il PAQ risolve il problema di della fine del file, conoscendo la lunghezza del file da comprimere. Ogni modello calcola una probabilit`a, queste vengono combinate in questa maniera xi = log Pi(1) 1 − Pi(1) P(1) = 1 1 + e− i ωixi dove Pi(1) `e la probabilit`a che il bit sia 1 stimata dall’i-esimo modello, P(1) `e la probabilit`a che il prossimo bit sia 1 e ωi `e il peso dell’i-esimo modello. Dopo questa previsione, il modello `e aggiornato ricalcolando i pesi ωi ← ωi + ηxi(y − P(1)) dove η `e il tasso di apprendimento e (y − P(1)) `e l’errore della predizione. Questo aggiornamento del peso, differisce dal classico apprendimento per errore perch´e il suo scopo `e quello di minimizzare il costo del codice e non di diminuire l’errore. Ogni modello di partizione conosce il numero di bit di una data stringa s in un contesto e manda ogni contesto nella “storia” dei bit rappresentata da uno stato di 8 bit. Sotto certe condizioni, lo stato `e rappresenta anche il valore dell’ultimo bit o l’intera sequenza. Gli stati sono mappati nelle probabilit`a usando una tabella a 256 elementi per ogni modello. Dopo ogni predizione di un modello, la tabella viene aggiornata per ridurre l’errore di predizione. In PAQ8, gli stati rappresentabili sono i seguenti: • L’esatta sequenza di bit fino a 4 bit. • Una coppia di numeri e un indicatore del bit pi`u recente per una sequenza da 5 a 15 bit • Una coppia di numeri per le sequenze da 16 a 41 bit
  • 49. 44 CAPITOLO 3. PAQ8 Per mantenere il numero di stati a 256, sono imposti alcuni limiti nella rappresentazione delle coppie di numeri. Se una coppia supera questi limiti, allora lo stato successivo `e scelto in maniera da avere un rapporto simile alla coppia. Quindi, se lo stato attuale `e n0 = 4, n1 = 4, b = 0 (dove n0 e n1 sono la coppia di numeri e b `e l’ultimo bit) e viene osservato 1, allora il nuovo stato non sar`a n0 = 4, n1 = 5, b = 1, sar`a invece n0 = 3, n1 = 4, b = 1. La maggior parte dei contesti sono implementati come tabelle di hash. 3.4 Test di compressione Riportiamo di seguito una tabella che confronta PAQ8 con due com- pressori comunemente utilizzati, bzip e gzip. Possiamo subito notare che il rapporto di compressione ottenuto da PAQ8 `e notevolmente migliore di quello degli altri due compressori, ma questo va a scapito della velocit`a di compressione, che rende PAQ8 troppo lento per l’utilizzo quotidiano. PAQ8 GZip Bzip2 File Dim Tempo Dim Tempo Dim Tempo Dim c1 27561 1.45s 8148 0.01s 11205 0.01s 9713 c2 25337 1.31s 8447 0.01s 11062 0.01s 9795 c3 27190 1.55s 8853 0.01s 11694 0.01s 10411 ma1 51058 2.77s 16710 0.01s 22489 0.01s 19216 ma2 38838 2.07s 13306 0.01s 17650 0.01s 15229 ma3 42626 2.21s 14684 0.01s 19492 0.01s 16917 mb4 61239 3.19s 20393 0.01s 27136 0.01s 23504 mb5 49847 2.62s 16742 0.01s 22116 0.01s 19288 mb6 60553 3.21s 19541 0.01s 26173 0.01s 22585
  • 50. Capitolo 4 Entropia relativa 4.1 Entropia relativa Nel primo capito abbiamo introdotto l’entropia relativa come misura della differenza statistica tra due distribuzioni. Andiamo ora a dimostrare le propriet`a che avevamo enunciato Teorema 4.1.1. Siano p(x) e q(x) due distribuzioni di probabilit`a con x ∈ A alfabeto, allora D(p||q) ≥ 0 con l’uguaglianza solo se p = q 45
  • 51. 46 CAPITOLO 4. ENTROPIA RELATIVA Dimostrazione. sia X = {x ∈ A : p(x) > 0, allora −D(p||q) = − x∈X p(x) log p(x) q(x) = x∈X p(x) log q(x) p(x) ≤ log x∈X p(x) log q(x) p(x) = log x∈X q(x) ≤ log x∈⊣ q(x) = log(1) = 0 Dalla serie di equazioni e disequazioni si nota anche che D(p||q) = 0 se e solo se p = q. Come possiamo facilmente immaginare, per una successione x ∈ An , la definizione di entropia relativa sar`a Dn(p||q) = x∈⊣ p(x) log p(x) q(x) Richiamiamo ora la definizione di sequenze tipiche per una sorgente A che emette in modo indipendente e identicamente distribuito i propri caratteri. Nel primo Capitolo, dopo aver presentato la propriet`a di equipartizione asintotica, avevamo definito le stringhe tipiche (x1, ..., xn) quelle per cui p(x1, ..., xn) ∼ 2−nH dove H = − x∈A p(x) log p(x) `e l’entropia della sor- gente. Definito l’alfabeto finito A = {y1, ..., ym}, chiamiamo pi = P{x = yi}. Le stringhe tipiche per la sorgente A sono quelle per cui ni = pin. Supponiamo di conoscere la distribuzione q con cui una sorgente B emetta i caratteri sempre in modo indipente e identicamente distribuiti. La sorgente emetter`a una sequenza tipica per A se n i=1 ni n log q(x) `e circa l’entropia della
  • 52. 4.2. STIME DELL’ENTROPIA RELATIVA 47 sorgente A. Vogliamo quindi calcolare quante la probabilit`a che la sorgente B emetta una stringa tipica per A. P{(x1, ..., xn) ∈ Aε n, B} = 2−n n i=1 pi log pi 2−n n i=1 pi log qi = 2 −n n i=1 pi log pi qi Da cui ricaviamo che la probabilit`a `e proprio 2−nD(p||q) . Dato che l’entropia relativa `e una quantit`a positiva si ricava che se n → ∞ la probabilit`a tende a 0. 4.2 Stime dell’entropia relativa Ricalcado il lavoro fatto da D. Benedetto e M. degli Espositi sull at- tribuzione del Diario Postumo di Montale andremo a stimare la distanza di similarit`a tra testi, cio`e utilizzeremo degli algoritmi che restituiscono un numero e, pi`u `e piccolo questo numero, pi`u saranno ”vicini“ i testi analizzati. Procederemo prendendo due sequenze lunghe A e B emesse da due sorgenti X1 e X2 e una sequenza breve b emessa da X2. Creeremo una nuova sequenza A + b semplicemente concatenando i due file. Poi comprimeremo queste sequenze con PAQ8 . Indichiamo con LY la lunghezza del file Y compresso, allora la lunghezza di b per A sar`a ∆Ab = LA+b − LA. Ora se A e b sono simili si aspettiamo di trovare un numero di stringhe di b ripetute in A. Una stima dell’entropia relativa tra X1 e X2 sar`a EX1X2 = ∆Ab − ∆Bb |b| dove |b| indica la lunghezza del file non compresso. EX1X2 risulter`a piccolo tante pi`u stringhe di b verranno trovate in A. EX1X2 sar`a l’inidicatore della distanza tra le sorgenti. In particolare nel caso di un testo, sar`a l’indicatore per stabilire se i testi confrontati appartengono allo stesso autore. Lo scopo di queste analisi `e cercare differenze tra il Diario Postumo e gli
  • 53. 48 CAPITOLO 4. ENTROPIA RELATIVA altri scritti di Montale, per confermare o confutare i dubbi gi`a esistenti sull’autenticit`a di questi scritti. A differenza del lavoro svolto da D. Benedetto e M. degli Espositi, invece di lzwe, l’algoritmo di compressione che useremo sar`a PAQ. 4.3 Test di riconoscimento dell’autore L’entropia relativa costituisce un buona indicatore per la vicinanza tra stringhe emessa da sorgenti diverse; tale valore in particolare pu`o essere utilizzato per l’attribuzione di un testo ad un autore. In questo caso i testi sono visti come stringhe di simboli emessi (scritti) da sorgenti (autori) diversi. La vicinanza tra due testi `e stimata EX1X2 definita poco fa, i testi risultano simili tanto pi`u tale valore risulta piccolo. La stima dell’entropia relativa tra due testi pu`o essere interpretata come la distanza tra gli stessi. Per determinare se l’autore di un testo, alliinterno di un corpus di testi considerati, si procede in questo modo. Ogni testo x viene considerato ignoto rispetto ai restanti testi del corpus considerato. Viene stimata per ogni testo y dei testi noti l’entropia relativa data da Exy, considerata la distanza tra i due testi. L’autore pu`o essere stabilito attrvarso due metodi diversi: il metodo dei primi vicini e il metodo dei pesi. Il metodo dei primi vicini attribuisce il testo x all’autore del testo y che realizza il mimimo valore per la stima dell’entropia relativa tra x e i testi di prova. Il metodo dei primi vicini per`o `e condizionato fortemente dalla lunghezza dei testi utilizzati per il confronto. Se confrontiamo lo stesso testo con altri due testi di lunghezza tra loro diversa, il numero di stringhe maggiore sar`a trovato con alta probabilit`a nel testo di lunghezza maggiore. Vogliamo quindi un metodo che non sia condizionato dalla lunghezza dei testi a confronto. Ecco quindi il metodo dei pesi. Supponiamo di avere due
  • 54. 4.3. TEST DI RICONOSCIMENTO DELL’AUTORE 49 sorgenti, M (per esempio Montale) e C (per esempio altri autori). Preso un testo x dalla sorgente M indichiamo con m e c la distribuzione empirica delle distanze del testo x da un testo casule rispettivamente della sorgente M e C . Con una trasformazione monotona possiamo considerare m uniformemente distribuita in [0, 1] e c come una variabile continua in [0, 1]. Indichiamo con pc la funzione di distribuzione di c rispetto a m. Se z ∈ [0, 1] indica la frazione di testi della sorgente M che distano dal testo x meno di una certa distanza d, allora mn(z) rappresenta la frazione di testi della sorgente C che hanno una distanza da x pi`u piccola di d. Scelto un testo x, calcoliamo attraverso la stima dell’entropia relativa le distanze di questo da l testi appartenenti alla sorgente M e da l testi appartenenti all’altra sorgente. Indichiamo con r = {M, C}2l la classifica in cui gli autori sono disposti in ordine crescente in base al critero della distanza dei loro testi da quello da attribuire. Ad esemempio se l = 5, r = (M, C, C, M, M) vuol dire che il primo vicino di x `e un testo della sorgente di M, mentre il secondo e il terzo vicino sono testi della sorgente C . Supponiamo di conoscere la funzione di distribuzione, pn e calcoliamo la probabilit`a condizionata di avere la classifica r sapendo che il testo x appartiene alla sorgente M. P(r|x ∈ M) = 1 0 ρ1(z1)dz1 1 z1 rho2(z2)dz2 · · · 1 z2l−1 ρ2la2ldz2l dove ρi(z) =    1 se ri = M pn se ri = C Nello stesso modo possiamo calolare P(r|x ∈ C). Il testo x verr`a attribuito a M o C a seconda della differenza di P(x ∈ M|r) − P(x ∈ C|r); queste probabilit`a si ricavano con la formula di Bayes. Per fare ci`o dobbiamo per`o conoscere la probabilit`a che un testo sia della sorgente M o della sorgente C. Ora se l’indice di M `e pi`u grande dell’indice di C , ovvero se P(x ∈ M|r) > P(x ∈ C|r), con alta probabilit`a il testo x `e stato emesso dalla sorgente M.
  • 55. 50 CAPITOLO 4. ENTROPIA RELATIVA
  • 56. Capitolo 5 L’attribuzione del Diario Postumo di Montale Diario postumo `e l’ottava e ultima raccolta di poesie di Eugenio Montale. Si tratta di una raccolta di 66 poesie, tutte firmate e molte delle quali dedicate all’amica Annalisa Cima, che in parte le ispir`o anche. Montale scrisse le poesie tra il 1969 ed il 1979, con l’intenzione di creare una sorta di prosecuzione della propria presenza oltre la scomparsa non priva di una sofisticata ironia. Raggiunto infatti il numero di 66 composizioni, il poeta suddivise le liriche in 11 buste, disponendo che le stesse venissero pubblicate a gruppi di sei ogni anno a partire da cinque anni dopo la sua morte, avvenuta il 12 settembre 1981. Nel 1986 la Fondazione Schlesinger, di cui Montale era stato presidente ad honorem, si occup`o di provvedere alla pubblicazione delle prime sei, alle quali vennero aggiunte altre 18 composizioni inedite trovate casualmente dalla stessa Annalisa Cima. La pubblicazione dell’intera raccolta (le 66 poesie contenute nelle buste pi`u le altre 18 trovate casualmente) venne infine pubblicata da Mondadori nel 1996, in occasione del centenario della nascita del poeta. 51
  • 57. 52CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Un dubbio di non autenticit`a dell’opera venne manifestato in particolare da Dante Isella e Giovanni Raboni, e recentemente `e stato nuovamente avan- zato da un libro di Federico Condello, che riprende una analisi di Paola Italia e Paolo Canettieri. I dubbi attualmento sono tali che il Sistema Bibliotecario centrale ha rimosso l’attribuzione del Diaro Postumo a Montale. Annalisa Cima `e una scrittrice milanese, figlia di Alice Schlesinger. Nel 1967 conosce Murilo Mendes, poeta e critico brasiliano, il musicista Gian Francesco Malipiero, Marianne Moore, Jorge Guill´en, Aldo Palazzeschi, Giu- seppe Ungaretti, Ezra Pound, e tutti questi incontri, sotto forma di prose poetiche, confiuirono nei volumetti della collanaOcchio magico pubblicati da Vanni Scheiwiller. Nel 1968 incontr`o Eugenio Montale ed ebbe inizio una grande amicizia basata su una profonda stima reciproca. 5.1 Testi e considerazioni Appena si comincia ad affrontare questione di determinare la reale pa- ternit`a delle 84 poesie del Diario Postumo, ci si rende immediatamente conto come questo problema sia lontano da un tradizionale problema di assegnazione di autore a un numero finito di autori. Questo caso ha infatti almeno due caratteristiche estremamente peculiari che ne determinano la sua unicit`a e che richiedono un approccio specifico. • Siamo in presenza di un corpus testuale che certamente contiene fram- menti originali di Montale, anche se forse si sono concretizzati come materiale testuale solo in un secondo tempo e non direttamente per opera del Poeta. Pensiamo a brani di discussione, appunti sparsi o registrazioni che sappiamo hanno caratterizzato per anni il rapporto tra il poeta e Annalisa Cima. Non `e quindi possibile considerare il problema del Diario Postumo come un semplice problema di attribu-
  • 58. 5.1. TESTI E CONSIDERAZIONI 53 zione d’autore, ma si tratta di capire se sia possibile misurare quanto effettivamente il corpus sia integro, o se sono visibili tracce di interventi che potrebbero aver modificato parte del contenuto originario. • I testi sono brevi e poetici. L’efficacia dei metodi quantitativi si raf- forza in presenza di testi complessivamente lunghi. Raramente metodi quantitativi che non fanno direttamente uso di informazioni di tipo linguistico o semantico sono stati usati per attribuire testi di piccole dimensioni (poche migliaia o poche centinaia di caratteri). Descriviamo ora i testi a disposizione per l’analisi. Abbiamo innanzitutto creato un corpus delle opere note di Montale e di Annalisa Cima Eugenio Montale opera file caratteri anno Ossi di seppia ma1 51058 1920-27 Le occasioni ma2 38838 1928-39 La bufera e altro ma3 42626 1940-54 Satura mb4 61239 1962-70 Diario del 71 e del 72 mb5 49847 1971-72 Quaderno dei 4 anni mb6 60553 1977
  • 59. 54CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Annalisa Cima opera file caratteri anno Terzo mondoi c00 5392 1969 La Genesi e altre poesie c01 15368 1971 Immobilit`a c02 6801 1974 Sesamon c03 14400 1977 Ipotesi d’Amore c04 7288 1984 Aegri somnia c05 3649 1989 Quattro canti c06 2564 1993 Il tempo predatore c07 7712 1997 Hai ripiegato l’ultima pagina c08 6335 2000 Canto della primavera e della sopravvivenza c09 8398 2001 Poesie Pulcino Elefante c10 2181 2001 Abbiamo utilizzato i due diversi prefissi ”ma“ e ”mb“ per le etichette delle opere di Montale, perch`e l’autore ha cambiato stile dopo La bufera. Per le opere della Cima, per avere testi sufficientemente omogenei nella loro lunghezza, abbiamo accorpato i testi c00, c01, c02 in un unico testo c1 di lunghezza 27 561 caratteri, i testi c03, c04, c05 in un unico testo c2 di lunghezza 25 337 e infine abbiamo accorpato i restanti testi c06, c07, c08, c09, c10 ottenendo il testo denominato c3 di lunghezza 27 190 caratteri. Una prima essenziale analisi riguarda la verifica delle capacit`a dei nostri metodi di distinguere i due autori. Per questa verifica abbiamo proceduto estraendo a turno un’opera completa dall’insieme, e attribuendola a uno dei due usando le opere restanti come riferimento. Abbiamo ottenuto il 100% di successi. Come ulteriore verifica dei metodi, abbiamo confrontato anche le opere di differenti autori, ottenendo la stessa capacit`a di riconoscimento.
  • 60. 5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 55 5.2 Attribuzione del Diario Postumo Prima di procedere all’assegnazione delle poesie del Diario Postumo abia- mo verificato che il metodo che vogliamo utilizzare `e attendibile. Abbiamo segmentato i testi di Montale e quelli di Cima in frammenti di 12000 caratteri in questa maniera: Testo Sottotesti c1 2 c2 2 c3 2 ma1 4 ma2 3 ma3 3 mb4 5 mb5 4 mb6 5 Abbiamo poi confrontato i frammenti da 200 caratteri con quei sottotesti, escludento il sottotesto di appartenenza. Ottenendo cos`ı questi risultati:
  • 61. 56CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE TESTO ma mb c totale c1 4 46 88 63.77% c2 12 2 113 88.98% c3 62 18 56 41.18% ma1 245 10 1 95.70% ma2 171 21 3 87.69% ma3 181 32 1 84.58% mb4 43 264 0 85.99% mb5 82 163 5 65.20% mb6 16 286 1 94.39% Totale 1567 / 1926 = 81.36% TESTO m c totale c1 14 124 89.86% c2 2 125 98.43% c3 60 76 55.88% ma1 236 20 92.19% ma2 182 13 93.33% ma3 210 4 98.13% mb4 290 17 94.46% mb5 238 12 95.20% mb6 289 14 95.38% Totale 1770 / 1926 = 91.90% Possiamo notare che se non consideriamo la differenza di stile, il riconosci- mento sale sopra il 90%. Per confrontare meglio le poesie del Diario Postumo, che hanno lunghezza variabili tra 200 e 800 caratteri, le abbiamo frammentate insequenze di 200 caratteri. Successivamente abbiamo confrontato ogni singola poesia con i frammenti noti, ottendi cos`ı questi risultati:
  • 62. 5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 57 Testo ma mb c Frammenti d01 0 2 0 2 d02 2 0 0 2 d03 2 0 0 2 d04 1 2 0 3 d05 0 2 0 2 d06 2 1 0 3 d07 1 0 1 2 d08 2 0 0 2 d09 0 0 1 1 d10 0 1 2 3 d11 1 2 0 3 d12 0 3 0 3 d13 0 1 0 1 d14 0 0 2 2 d15 0 0 2 2 d16 2 0 0 2 d17 4 0 0 4 d18 1 0 1 2 d19 0 2 0 2 d20 1 2 0 3 d21 0 2 0 2 d22 0 2 1 3 d23 1 1 0 2
  • 63. 58CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Testo ma mb c Frammenti d24 3 0 0 3 d25 1 1 0 2 d26 2 0 0 2 d27 2 0 0 2 d28 0 1 0 1 d29 2 0 0 2 d30 2 1 0 3 d31 0 2 0 2 d32 0 2 0 2 d33 0 2 0 2 d34 2 0 0 2 d35 1 1 0 2 d36 0 0 2 2 d37 1 1 1 3 d38 2 0 0 2 d39 0 2 0 2 d40 0 0 2 2 d41 0 2 1 3 d42 2 0 0 2 d43 0 1 1 2 d44 0 1 1 2 d45 0 0 2 2 d46 2 0 0 2 d47 0 3 0 3 d48 2 0 0 2 d49 1 1 0 2 d50 3 1 1 5 d51 0 1 2 3 d52 1 1 0 2 d53 2 0 0 2
  • 64. 5.2. ATTRIBUZIONE DEL DIARIO POSTUMO 59 Testo ma mb c Frammenti d54 0 0 2 2 d55 2 0 1 3 d56 1 1 0 2 d57 3 1 0 4 d58 0 2 2 4 d59 1 1 0 2 d60 0 2 0 2 d61 2 1 0 3 d62 0 3 0 3 d63 1 2 0 3 d64 3 0 1 4 d65 1 1 0 2 d66 0 3 0 3 d67 3 0 0 3 d68 2 1 1 4 d69 0 2 0 2 d70 2 0 0 2 d71 2 0 0 2 d72 1 0 0 1 d73 0 3 0 3 d74 1 0 0 1 d75 1 1 0 2 d76 1 1 0 2 d77 2 1 0 3 d78 0 0 2 2 d79 0 1 1 2 d80 3 0 0 3 d81 2 0 0 2 d82 1 2 1 4 d83 1 0 1 2 d84 0 2 0 2
  • 65. 60CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Da questi risultati possiamo vedere che solo 8 poesie sono attribuite a Cima, 16 sia a Cima che a Montale e riguardo quelle attribuite al solo Montale 18 sono riconosciute come un misto dei due stili del peota. Questa analisi, pur presumibilmente non affidabile per ogni singolo frammen- to, indica che il Diario postumo non `e certo un’opera integra per quel che riguarda l’autore. 5.3 L’albero filogenetico delle opere di Mon- tale Fino a questo punto abbiamo replicato il lavoro di D. Benedetto e M. Degli Espositi, ottenendo risultati simili, ora cerchiamo di ottenere qualche informazione in pi`u. Affrontiamo di nuovo la questione utilizzando un differente punto di vista, suggerito dalle ricerche filogenetiche. Infatti, nel problema di attribuzione del Diario Postumo, il tempo sembra essere un fattore importante, vista la lunga frequentazione tra Montale e la Cima, e considerato il modificarsi dello stile di Montale nel tempo. In questa sezione mostreremo come l’uso degli alberi filogenetici colga in pieno l’evolversi dello stile di Montale. Pi`u precisamente, abbiamo prima costruito la tabella delle distanze tra tutte le coppie di frammenti da circa 200 caratteri, ottenuti tagliando le opere di Montale in pezzi senza sovrapposizione. Successivamente, abbiamo ricostrui- to una matrice delle distanze tra le opere mediando le distanze tra i frammenti appartenendo alle opere. Infine, abbiamo ricostruito l’albero filogenetico delle opere, usando il metodo del Neighbouring Joining, molto utilizzato in ricerche sull’evoluzione biologica. L’algoritmo cerca la disposizione ad albero dei testi con la massima compatibilit`a con i valori delle distanze medie trovate: in pratica, la distanza tra due testi ottenuta sommando la lunghezza dei rami che li dividono sull’albero, `e una buona approssimazione della distanza media
  • 66. 5.3. L’ALBERO FILOGENETICO DELLE OPERE DI MONTALE 61 di partenza. Osserviamo ora le topologie degli alberi, cio`e la rappresentazione della sola sequenza dei rami e dei nodi, ottenuta considerando uguali tutte le lunghezze dei rami. Notiamo che il risultato `e perfettamente compatibile con l’ordine cronologico delle opere di Montale con l’ipotesi di un salto stilistico in corrispondenza de la Bufera.
  • 67. 62CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Notiamo ore che, inserendo le opere di Cima, nasce un ramo separato. 5.4 Attribuzione attraverso l’albero Prendiamo in cosiderazione l’albero ottenuto analizzando tutto il corpus di testi, e supponiamo di voler aggiungere una foglia all’albero. La foglia sar`a una singola poesia del Diario Postumo. Per ogni frammento di poesia del Diario Postumo, calcoliamo la sua distanza dai frammenti da 200 delle opere note; mediando sui frammenti otteniamo il valore della distanza di ogni poesia del Diario Postumo dalle opere di Montale e Cima. Conoscendo le distanze tra tutte le foglie dell’albero, cerchiamo di capire dove poter posizionare il ramo in modo che le distanze siano rispettate il pi`u possibile. Prendiamo quindi due nodi che chiameremo con p− e p+, dividiamo l’albero in due sottoalberi: Σ−, che sar`a il sottoabero contentente tutti i nodi che si incontrano nei cammini da p− senza passare da p+ e Σ+ che sar`a i resto dell’albero. Ipotizzando che la poesia del Diario Postumo si inserisca del ramo p−-p+, otteniamo le seguenti equazioni Le nostre incognite sono α± che indica la distanza del nuovo ramo da p± e
  • 68. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 63 Figura 5.1: Inserimento di un nuovo nodo nell’albero γ che indica la lunghezza del nuovo ramo che stiamo aggiungendo. < d(a−, δ) > = < d(a−, p−) > +α− + γ < d(a+, δ) > = < d(a+, p+) > +α+ + γ α− + α+ = d(p−, p+) dove indichiamo con d(x, y) la distanza tra x e y, con δ la poesia del Diario Postumo che stiamo analizzando, con a− un nodo di Σ−, con a+ un nodo di Σ+ e con < x > a media su tutti gli elementi dell’insieme. Abbiamo quindi trovato un sistema di 3 equazioni linearmente indipendenti in 3 incognite, quindi sappiamo che esiste una sola soluzione per questo sistema. Per ogni scelta di uno dei 15 rami possibili su cui inserire la poesia δ, si ottiene una soluzione ma non sempre `e accettabile, perch´e α± e γ sono distanze e devono essere positive. Tra tutte le solluzioni che restano scegliamo quella
  • 69. 64CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE che rende minima la seguente sommatoria: a∈Σ |d(a, δ) − dr(a, δ)|2 con dr(a, δ) = α± + γ + d(a, p±). Sorprendentemente riusciamo a trovare soluzioni accettabili per tutte le poesie sul nostro albero. Figura 5.2: Esempio di un’attribuzione di una poesia Diario Postumo Per l’assegnazione dei testi in base all’albero abbiamo proceduto assegnando la poesia al sotto albero di appartenenza, l’unica eccezione `e per il caso che la poesia fosse assegnata al ramo che unisce l’albero delle opere di Montale a quelle di Cima, in quel caso la poesia `e stata assegnata all’albero pi`u vicino. Questa scelta si `e resa obbligatoria perch´e la lunghezza del ramo che unisce i due alberi, `e significativamente maggiore rispetto a tutti gli altri rami.
  • 70. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 65 Figura 5.3: Ingrandimento del nodo che connette l’albero di Montale a quello di Cima nella rappresentazione metrica dell’albero Testo ma mb c d01 0 1 0 d02 1 0 0 d03 0 0 1 d04 1 0 0 d05 1 0 0 d06 1 0 0 d07 0 0 1 d08 1 0 0 d09 0 0 1 d10 1 0 0 d11 1 0 0 d12 1 0 0 d13 0 0 1 d14 0 0 1 d15 0 0 1 d16 1 0 0 d17 1 0 0 d18 0 0 1 d19 0 1 0
  • 71. 66CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE d31 1 0 0 d32 0 0 1 d33 1 0 0 d34 1 0 0 d35 1 0 0 d36 0 0 1 d37 0 0 1 d38 0 0 1 d39 0 1 0 d40 0 0 1 d41 0 0 1 d42 1 0 0 d43 0 0 1 d44 0 0 1 d45 0 0 1 d46 1 0 0 d47 0 0 1 d48 1 0 0 d49 0 0 1 d50 1 0 0 d51 0 0 1 d52 0 0 1 d53 1 0 0 d54 0 0 1 d55 1 0 0 d56 0 0 1 d57 0 0 1 d58 0 0 1 d59 1 0 0 d60 0 0 1
  • 72. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 67 d61 1 0 0 d62 0 1 0 d63 1 0 0 d64 1 0 0 d65 0 0 1 d66 0 1 0 d67 1 0 0 d68 0 0 1 d69 1 0 0 d70 1 0 0 d71 0 0 1 d72 1 0 0 d73 0 1 0 d74 1 0 0 d75 1 0 0 d76 1 0 0 d77 0 0 1 d78 0 0 1 d79 0 0 1 d80 1 0 0 d81 1 0 0 d82 0 0 1 d83 0 0 1 d84 0 0 1 Totale 37 8 39 Per validare i dati ottenuti abbiamo deciso di ripetere l’esperimento su altri due alberi, quello dove escludiamo gli scritti di Montale a partire da ”La bufera“ e quello dove escludiamo le opere precedenti. A questi alberi abbiamo
  • 73. 68CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE provato a reinserire i testi di Montale appena tolti, come ci si aspetta questi vengono attaccati al centro dell’albero, come per ricreare l’albero completo. Inoltre `e interessante chiedersi dove viene reinserita una delle opere presenti sull’albero nel caso venisse tolta: in effetti viene approssimativamente rico- struito il nodo mancante. Questi risultati ci rassicurano sulla validit`a del metodo di attribuzione. Infine, per analizzare in modo pi`u approfondito l’ipotesi di interventi di entrambi gli autori sulle poesie del Diario Postumo, ci siamo chiesti cosa accade a una distanza entropica se parte del testo `e di un autore e parte di un altro. Quindi ipotizzando che il testo sia stato scritto parzialmente da ambedue i poeti e usando la relazione tra le lunghezze di compressione e l’entropia relativa, scriviamo: d(δ, a) = |p(aδ1δ2)| − |p(a)| − |p(δ1δ2)| |δ1δ2| ∼ |δ1|H(δ1||a) + |δ2|H(δ2||a) − |δ1|H(δ1) − |δ2|H(δ2) |δ1| + |δ2| = |δ1| |δ1| + |δ2| d(δ1, a) + |δ2 |δ1| + |δ2| d(δ2, a) dove con p(·) indichiamo la compressione del file con PAQ8. da cui d(a, δ) = λ1d(a, δ1) + λ2d(a, δ2) dove λi = |δi |δ1|+|δ2| `e la frazione di testo scritta dal poeta i. Naturalmente λ1 + λ2 = 1. Questo ci ha portato a voler fare un’analisi ancora pi`u approfondita, abbia- mo quindi ipotizzato che le poesie del Diario Postumo fossero scritte a quattro mani, e abbiamo cercato di capire quanto siano state scritte da Montale e quanto da Cima. Il procedimento utilizzato `e stato questo: Ipotizziamo che ogni δ sia formato da due parti, δ1 e δ2 e le distanze delle opere di Cima e di Montale siano date da una combinazione convessa delle
  • 74. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 69 Figura 5.4: Esempio di attribuzione dei due frammenti di una poesia del Diario Postumo distanze di δ1 e δ2 come segue dalle formule precedenti. Cerchiamo di po- sizionare queste due nuove foglie sull’albero invece che δ. Dividiamo questa volta l’albero in tre parti, indicando con Σ0 l’albero compreso tra i rami dove attaccheremo δ1 e δ2, con Σ1 l’albero “esterno” rispetto a δ1 e con Σ2 l’albero ”esterno“ rispetto a δ2. Sappiamo che Abbiamo cos`ı le seguenti equazioni d(a, δ) = γ + α1 − α2 + λ2l per a ∈ Σ1 d(a, δ) = γ − α1 + α2 + λ1l per a ∈ Σ2 d(a, δ) = γ − α1 − α2 + λ1d(a, p1 −) + λ2d(a, p2 −) per a ∈ Σ0
  • 75. 70CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE dove d(a, δi) = γi + d(a, pi −) ± αi a seconda di come attraverso αi αi = λiαi γ = λ1γ1 + λ2γ2 l = d(p1 +, p2 +) Purtoppo il sistema ha pi`u incognite che equazioni, in particolare si pu`o considerare libera la combinazione convessa λ1 , λ2 In funzione di questi parametri la soluzione `e: γ = 1 2 (η1 + η2 − l) α1 = 1 2λ1 (η1 − ξ − λ2l) α2 = 1 2λ2 (η2 − ξ − λ1l) con ξ = λ1η0 1 + λ2η0 2 ηi = < d(a, δ) > − < d(a, pi −) > per a ∈ Σi con i = 1, 2 η0 i = < d(a, δ) > − < d(a, pi −) > per a ∈ Σ0 Nella maggior parte dei casi le soluzioni possibili sono solo poche coppie di rami e spesso uno dei due rami `e lo stesso per tutte le soluzioni. Al contrario esistono alcuni casi in cui ci sono molte coppie di rami che rendono l’attri- buzione dubbia. In quasi tutte queste attribuzioni uno dei rami soluzione `e quello di c3, che `e l’insieme manufatto meno affidabile di quelli che stiamo considerando (ad esempio perch´e contiene pi`u testi differenti rispetto agli altri e di anni di pubblicazione diversi tra loro). Per ovviare a questi problemi cerchiamo la combinazione convessa che
  • 76. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 71 Figura 5.5: Risultati del test di assegnazione minimizza a∈Σ |d(a, δ) − λ1dr(a, δ1) − λ2dr(a, δ2)|2 con dr(a, δi) = αi± + γi + d(a, pi±).
  • 77. 72CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE Testo Ass1 Ass2 Peso d01 ma c 0.320665 d02 ma c 0.256951 d03 c c 0.318072 d04 ma c 0.286667 d05 mb c 0.726626 d06 ma c 0.269598 d07 c ma 0.372294 d08 ma ma 0.206659 d09 ma c 0.266061 d10 ma c 0.358524 d11 ma ma 0.371159 d12 ma ma 0.0648037 d13 c c 0.267398 d14 ma c 0.428732 d15 c mb 0.316275
  • 78. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 73 d16 ma c 0.283214 d17 ma ma 0.134492 d18 c c 0.126543 d19 mb mb 0.423097 d20 mb ma 0.564298 d21 c c 0.35097 d22 c c 0.052217 d23 ma c 0.433519 d24 ma ma 0.290115 d25 c ma 0.329028 d26 ma c 0.495749 d27 ma c 0.506656 d28 ma c 0.0404609 d29 ma ma 0.108638 d30 ma ma 0.332618 d31 ma ma 0.483712 d32 mb c 0.586092 d33 ma c 0.267503 d34 ma ma 0.310036 d35 ma c 0.253887 d36 ma c 0.110882 d37 c c 0.157048 d38 c mb 0.151522 d39 c mb 0.0610469 d40 c c 0.326288 d41 c c 0.235057 d42 ma ma 0.832905 d43 c mb 0.262826 d44 ma c 0.294699 d45 c c 0.484941 d46 ma ma 0.205856
  • 79. 74CAPITOLO 5. L’ATTRIBUZIONE DEL DIARIO POSTUMO DI MONTALE d47 c c 0.359154 d48 ma ma 0.196306 d49 c c 0.143259 d50 ma c 0.541703 d51 c ma 0.519182 d52 c c 0.0678944 d53 ma ma 0.251045 d54 ma c 0.0829112 d55 c ma 0.234811 d56 c c 0.896458 d57 c ma 0.210552 d58 c c 0.220607 d59 ma ma 0.294932 d60 c c 0.140143 d61 c mb 0.157083 d62 ma c 0.467027 d63 ma ma 0.313197 d64 ma c 0.478995 d65 c ma 0.1916 d66 ma c 0.406393 d67 ma ma 0.247446 d68 c c 0.0404118 d69 ma c 0.287559 d70 c ma 0.116471 d71 c ma 0.149289 d71 ma ma 0.185126 d73 ma c 0.470219 d74 ma ma 0.199837 d75 ma ma 0.318793 d76 ma c 0.548405 d77 c ma 0.281734
  • 80. 5.4. ATTRIBUZIONE ATTRAVERSO L’ALBERO 75 d78 c mb 0.306719 d79 c mb 0.140105 d80 ma c 0.24671 d81 ma ma 0.258124 d82 c ma 0.192124 d83 c ma 0.161918 d84 ma c 0.0745011 L’alto numero di poesie assegnate a Cima dai nostri metodi, non da la certezza che non siano di Montale, ma sicuramente alimenta i dubbi preesistenti riguardo l’integrit`a del Diario Postumo.
  • 81.
  • 82. Bibliografia [1] C. Basile. Entropy and semantics: Textual information extraction through statistica methods. 2010. [2] E. Caglioti. Fondamenti di teoria dell’informazione ed analisi di sequenze di dati, 2005. [3] I. Cleary J. e Witten. Data compression using adaptive coding and partial string matching. IEEE Transactions on Communications, (32), 1984. [4] C. Chica D. Benedetto, E. Caglioti. Compressing proteomes: The relevance of long range correlations. 2007. [5] M. Degli Espositi D. Benedetto. La dinamica dello stile di monatale e l’attribuzione del diario postumo: un approccio quantitativo, 2015. [6] M. V. Mahoney. Adaptive weighing of context models for lossless data compression. Florida Tech. Technical Report, 2005. [7] M. V. Mahoney. Data Compression Explained. Dell, Inc, 2011. [8] A. N. Shiryaev. Probability. Springer, 1996. [9] J. A. Thomas T. M. Cover. Elements of Information Theory. Wiley, 1991. 77