Escolar Documentos
Profissional Documentos
Cultura Documentos
=
C c
T
c d c f T B ) ( ) ( ) (
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 46 alekoe@computer.org
Cdigo de Huffman
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 47 alekoe@computer.org
Cdigo de Huffman
Huffman criou um algoritmo guloso que produz
um cdigo de prefixo timo chamado cdigo de
Huffman.
No pseudocdigo, C um conjunto de n
caracteres e cada caractere c C um objeto
com uma freqncia definida f [c].
O algoritmo constri de baixo para cima a
rvore T correspondente ao cdigo timo.
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 48 alekoe@computer.org
Cdigo de Huffman
Comea com um conjunto de |C| folhas e
executa uma seqncia de |C|1 operaes de
intercalao para criar a rvore final.
Uma fila de prioridade mnima Q, tendo f como
chave, usada para identificar os dois objetos
menos freqentes a serem intercalados. O
resultado da intercalao um novo objeto cuja
freqncia a soma das freqncias dos 2
objetos que foram intercalados.
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 49 alekoe@computer.org
Cdigo de Huffman
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 50 alekoe@computer.org
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 51 alekoe@computer.org
Comentrios Finais
A tcni ca gulosa sugere construir uma
soluo para um problema de otimizao
atravs de uma seqncia de passos,
expandindo uma soluo construda
parcialmente at o momento, at obter uma
soluo completa para o problema.
Em cada passo, a escolha feita deve ser possvel,
tima localmente e irreversvel.
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 52 alekoe@computer.org
Comentrios Finais
Exemplos de algoritmos que utilizam a
Estr atgi a Gulosa:
Algoritmo de Prim: construir uma rvore de
amplitude mnima (minimum spanning tree) a
partir de um grafo ponderado.
Algoritmo de Kruskal: construir uma rvore de
amplitude mnima (minimum spanning tree) a
partir de um grafo ponderado.
Cincia/Eng. de Computao Proj. Anal. Algoritmos 2006 53 alekoe@computer.org
Comentrios Finais
Exemplos de algoritmos que utilizam a
Estr atgi a Gulosa:
Algoritmo de Dijkstra: resolve o problema do menor
caminho com fonte nica. Encontra os menores
caminhos de um dado vrtice (fonte) a todos os
outros vrtices de um grafo ponderado ou dgrafo.
rvore de Huffman: minimiza o comprimento do
caminho ponderado a partir da raiz at as folhas
contendo um conjunto prdefinido de pesos.