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.
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
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.
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.
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:
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
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