O requisito da codificação como livre de prefixo resulta em árvores grandes, pois a árvore precisa estar completa. Existe um limite em que o armazenamento de dados não codificado de comprimento fixo seja mais eficiente do que codificar os dados?
O requisito da codificação como livre de prefixo resulta em árvores grandes, pois a árvore precisa estar completa. Existe um limite em que o armazenamento de dados não codificado de comprimento fixo seja mais eficiente do que codificar os dados?
Respostas:
A entropia H(A)
para esse problema é 1.998
. Tanto a codificação Huffman quanto a codificação de comprimento fixo para esse problema têm um comprimento médio de palavra de código como 2
. E para sua informação, a codificação que você obteve usando a Huffman Encoding está errada. A codificação Huffman também produz códigos semelhantes ao comprimento fixo para esse problema. Ele usa uma abordagem gananciosa. Portanto a
, não recebe um código, 0
mas recebe 00
. Retrabalhe a árvore que você gera usando a Huffman Coding. A árvore que você deve obter é:
A codificação de Huffman aproxima a distribuição da população com potências de duas probabilidades. Se a distribuição verdadeira consistir em potências de duas probabilidades (e os símbolos de entrada não estiverem correlacionados completamente), a codificação de Huffman é ideal. Caso contrário, você pode fazer melhor com a codificação de alcance. No entanto, é ideal entre todas as codificações que atribuem conjuntos específicos de bits a símbolos específicos na entrada.
Sim, é sempre ideal.
Não, não há limite em que ele usaria menos espaço para usar dados não codificados de comprimento fixo.
Encontrei várias provas na Web, mas há uma discussão suficiente no artigo da Wikipedia sobre codificação Huffman .
Isso também abrange outras técnicas que alcançam maior compactação (trabalhando fora do espaço para o qual o código Huffman é ideal).