Codifica di Huffman: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m clean up |
|||
(29 versioni intermedie di 24 utenti non mostrate) | |||
Riga 1:
[[File:Huffman tree.svg|thumb|upright=1.8|Codifica di Huffman della frase "this is an example of a huffman tree" con rappresentazione
La [[codifica]] di Huffman usa un metodo specifico per scegliere la rappresentazione di ciascun simbolo, risultando in un [[codice prefisso|codice senza prefissi]] (cioè in cui nessuna stringa binaria di nessun simbolo è il [[sottostringa|prefisso]] della stringa binaria di nessun altro simbolo) che esprime il carattere più frequente nella maniera più breve possibile. È stato dimostrato che la codifica di Huffman è il più efficiente sistema di compressione di questo tipo: nessun'altra mappatura di simboli in stringhe binarie può produrre un risultato più breve nel caso in cui le frequenze di simboli effettive corrispondono a quelle usate per creare il codice.
Riga 7:
== Storia ==
Nel [[1951]] a [[David A. Huffman]] e
Un'idea simile era stata usata in precedenza nella [[Codifica di Shannon-Fano]] (creata da [[Claude Shannon]], inventore della [[teoria dell'informazione]], e Fano, il docente di Huffman), ma Huffman sistemò la sua più grande lacuna costruendo un albero ascendente anziché uno discendente.
Riga 15:
# Ordina i simboli, in una lista, in base al conteggio delle loro occorrenze.
#
##
## Assegna la somma del conteggio delle frequenze dei figli
## Cancella
# Assegna una parola codice
== Caratteristiche principali ==
Le frequenze usate possono essere quelle generiche nel dominio dell'applicazione basate su medie precalcolate, o possono essere le frequenze trovate nel testo che deve essere compresso (questa variante richiede che la [[tabella di frequenza]] sia registrata insieme
La codifica di Huffman è ottimale quando la probabilità di ciascun simbolo in input è una potenza negativa di due. Le codifiche senza prefissi tendono
Casi limite della codifica di Huffman sono collegati alla [[Sequenza di Fibonacci]].
Riga 30:
== Variazioni ==
=== Codifica
Una variazione detta ''adattiva'' calcola le frequenze dinamicamente in base alle frequenze effettive più recenti nella stringa sorgente, in maniera analoga alla famiglia di algoritmi [[LZ77|LZ]].
Riga 44:
== Applicazioni ==
Oggi la codifica di Huffman è spesso usata come complemento di altri metodi di compressione: sono
== Altri progetti ==
{{interprogetto|
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* L'articolo originale di Huffman: D.A. Huffman, "[https://web.archive.org/web/20050530145744/http://compression.graphicon.ru/download/articles/huff/huffman_1952_minimum-redundancy-codes.pdf A method for the construction of minimum-redundancy codes]", Proceedings of the I.R.E., settembre 1952, pagg. 1098-1102
* Il background: [http://www.huffmancoding.com/my-uncle/
* {{cita web|http://huffman.ooz.ie/|Generatore di grafici visuali dell'Albero di Huffman}}
* {{cita web|https://rosettacode.org/wiki/Huffman_coding#Python|Codifica di Huffman in Python}}
* {{cita web |1=http://alexvn.freeservers.com/s1/huffman_template_algorithm.html |2=Codifica a base-n a Template |accesso=18 giugno 2005 |urlarchivio=https://web.archive.org/web/20050618085402/http://alexvn.freeservers.com/s1/huffman_template_algorithm.html |dataarchivio=18 giugno 2005 |urlmorto=sì }}
* {{cita web|http://mathforum.org/discuss/sci.math/t/207334|La codica di Huffman e la serie di Fibonacci}}
* {{cita web |1=http://semillon.wpi.edu/~aofa/AofA/msg00040.html |2=Calcolare la codifica di Huffman su una Macchina di Turing |accesso=31 luglio 2005 |urlarchivio=https://web.archive.org/web/20050731091059/http://semillon.wpi.edu/~aofa/AofA/msg00040.html |dataarchivio=31 luglio 2005 |urlmorto=sì }}
* Mordecai J. Golin, Claire Kenyon, Neal E. Young "[http://www.cs.ust.hk/faculty/golin/pubs/LOP_PTAS_STOC.pdf Codifica di Huffman con costi per lettera diseguali]", [http://www.informatik.uni-trier.de/~ley/db/conf/stoc/stoc2002.html STOC 2002] {{Webarchive|url=https://web.archive.org/web/20150116064338/http://www.informatik.uni-trier.de/~ley/db/conf/stoc/stoc2002.html |data=16 gennaio 2015 }}: 785-791
* {{cita web|http://www.cbloom.com/algs/statisti.html|Codifiche statistiche}}
* {{cita web|http://www.cs.sfu.ca/CC/365/li/squeeze/Huffman.html|Dimostrazione del funzionamento di questo algoritmo}}
|