Distanza di Hamming

Da Wikipedia, l'enciclopedia libera.
cubo binario a 3 bit per trovare la distanza di Hamming
Due esempi di distanza: 100->011 ha distanza 3 (percorso rosso); 010->111 ha distanza 2 (percorso blu)
tesseratto binario a 4 bit per trovare la distanza di Hamming
Due esempi di distanza: 0100->1001 ha distanza tre 3 (percorso rosso); 0110->1110 ha distanza 1 (percorso blu)

Nella teoria dell'informazione, la distanza di Hamming tra due stringhe di ugual lunghezza è il numero di posizioni nelle quali i simboli corrispondenti sono diversi. In altri termini, la distanza di Hamming misura il numero di sostituzioni necessarie per convertire una stringa nell'altra, o, vista in altro modo, il numero minimo di errori che possono aver portato alla trasformazione di una stringa nell'altra.

Esempi[modifica | modifica wikitesto]

  • La distanza di Hamming tra 1011101 e 1001001 è 2.
  • La distanza di Hamming tra 2143896 e 2233796 è 3.

Il peso di Hamming di una stringa di lunghezza k è la sua distanza di Hamming dalla stringa costituita da k zeri. Quindi è il numero di elementi diversi da zero di una stringa: per una stringa binaria è semplicemente il numero di 1; per esempio, il peso di Hamming di 11101 è 4.

Proprietà[modifica | modifica wikitesto]

Per una fissata lunghezza n la distanza di Hamming è una metrica sull'insieme delle stringhe aventi quella lunghezza, poiché soddisfa le condizioni di non negatività, identità di due elementi aventi distanza nulla, simmetria, e si può dimostrare, mediante induzione completa, che essa soddisfa anche la disuguaglianza triangolare.

La distanza di Hamming tra due elementi a e b è il peso di Hamming di a-b, per un'appropriata scelta dell'operatore "-".

Per due stringhe binarie a e b essa è equivalente all'operazione a xor b. È anche equivalente alla distanza della geometria del taxi tra due vertici di un ipercubo n-dimensionale, dove n è la lunghezza delle stringhe.

Storia e applicazioni[modifica | modifica wikitesto]

La distanza di Hamming prende il suo nome da Richard Hamming, che la introdusse nel suo fondamentale lavoro sui codici per il riconoscimento e la correzione degli errori. Viene usata nelle telecomunicazioni per contare il numero di bit errati in una parola binaria a lunghezza fissa, allo scopo di stimare l'errore. Per questo motivo viene anche chiamata distanza del segnale. L'analisi del peso di Hamming dei bit viene usata in diverse discipline, tra le quali la teoria dell'informazione, la teoria dei codici e la crittografia. Però, per confrontare stringhe di lunghezze differenti, o stringhe per le quali ci si aspettano anche inserimenti e cancellazioni, oltre alle sostituzioni, è più appropriato usare metriche più sofisticate, come la distanza di Levenshtein.

Bibliografia[modifica | modifica wikitesto]

  • Richard W. Hamming. Error-detecting and error-correcting codes, Bell System Technical Journal 29(2): 147-160, 1950.

Voci correlate[modifica | modifica wikitesto]