Teorema di Bondy

E’ un’applicazione degli Alberi, nel constesto di compressione di stringhe.

Teorema (Bondy) Fissato , preso , presi qualunque sottoinsiemi distinti, tale che sono ancora distinti.

Il teorema può anche essere espresso rappresentando i sottoinsiemi come stringhe binarie di elementi, nella maniera usuale: se allora il carattere -esimo sarà , zero altrimenti. Quindi il teorema mi garantisce che posso rimuovere una colonna, ed accorciare tutte le stringhe di uno senza perdere l’unicità.

Dim 1 Costruisco un grafo con vertici gli sottoinsiemi della famiglia , e li collego se:

ovvero se i due sottinsiemi differiscono per un solo elemento (distanza di Hamming uno delle stringe).

Inoltre etichetto l’arco con l’elemento per cui differeiscono.

Claim 1 Se è aciclico, allora per il lemma. Quindi il numero di etichette presenti sul grafo sono al più , dunque ne esiste per forza una che non compare, e che posso rimuovere senza far collidere le stringhe ridotte.

Facciamo vedere che si può sempre trasformare il grafo in uno aciclico con le stesse etichette.

Supponiamo che contenga un ciclo. L’osservazione chiave è che se un arco è etichettato con l’elemento , allora dovrà apparire anche su qualche altro arco del ciclo. Infatti, se percorro il ciclo, ad ogni passo ho cambiato un elemento. Per tornare la stringa iniziale, devo ricancellare il cambiamento, quindi deve apparire almeno un’altra volta. Allora sia dove l’arco rimosso è uno etichettato con . Siccome compare almeno un’altra volta, ha le stesse etichette di , ed ha un ciclo in meno. Se è aciclico, ho fatto. Altrimenti proseguo fino ad arrivare ad un grafo aciclico con le stesse etichette di .

Dim 2 (Machì-Malvenuto) L’idea è ordinare le stringhe caratteristiche in modo lessiconografico. Sia la prima coordinata in cui e differiscono. Questo implica che: