Académique Documents
Professionnel Documents
Culture Documents
Arbres de codage
Algorithme de Huffman
Jean-Marc Vincent1
1
Laboratoire LIG
Universités de Grenoble
Jean-Marc.Vincent@imag.fr
Arbres de codage 1 / 12
Codage Complexité Algorithme
Codage
Symboles S = {s1 , · · · , sk }
Codage
C:S −→ {0, 1}∗
si 7−→ c(si ) longueur li
Uniquement déchiffrable (CS propriété du préfixe) ;
Inégalité de Kraft Pour un codage ayant la propriété du préfixe
k
X
2−li ≤ 1, (1)
i=1
Arbres de codage 2 / 12
Codage Complexité Algorithme
Arbres de codage 3 / 12
Codage Complexité Algorithme
Arbres de codage 3 / 12
Codage Complexité Algorithme
Arbres de codage 4 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
H 0.04
I 0.12
J 0.02
K 0.02
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
H 0.04
I 0.12
J 0.02
K 0.02
0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
H 0.04
I 0.12
0.08
J 0.02
K 0.02
0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
H 0.04
I 0.12
0.08
J 0.02
K 0.02
0.14 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
H 0.04
I 0.12
0.08
J 0.02
K 0.02
0.14 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
0.18
H 0.04
I 0.12
0.08
J 0.02
K 0.02
0.14 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
0.18
H 0.04
I 0.12
0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
0.18
H 0.04
I 0.12
0.28 0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
F 0.08
G 0.08
0.18
H 0.04
I 0.12
0.28 0.32 0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
0.40
F 0.08
G 0.08
0.18
H 0.04
I 0.12
0.28 0.32 0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
D 0.10
E 0.16
0.40
F 0.08
G 0.08
0.60 0.18
H 0.04
I 0.12
0.28 0.32 0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
A 0.14
B 0.06
C 0.08
1.00
D 0.10
E 0.16
0.40
F 0.08
G 0.08
0.60 0.18
H 0.04
I 0.12
0.28 0.32 0.08
J 0.02
K 0.02
0.14 0.22 0.16 0.04
L 0.10
0.14 0.06 0.08 0.10 0.16 0.08 0.08 0.04 0.12 0.02 0.02 0.10
A B C D E F G H I J K L
Arbres de codage 5 / 12
Codage Complexité Algorithme
1.00
0 A 0.14 000
1
B 0.06 0010
0.60 0.40
C 0.08 0011
0 1 0 1
D 0.10 100
0.28 0.32 0.22 0.18
E 0.16 010
0 1 0 1 0 1 0 1
F 0.08 0110
0.14 0.14 0.16 0.16 0.10 0.12 0.08 0.10
G 0.08 0111
0 1
A 0 1 E 0 1 D I L H 0.04 1100
0.04 0.04
I 0.12 101
0.06 0.08 0.08 0.08
0 1
H J 0.02 11010
B C F G
0.02 0.02
K 0.02 11011
J K L 0.10 111
Arbres de codage 6 / 12
Codage Complexité Algorithme
Arbres de codage 7 / 12
Codage Complexité Algorithme
Optimalité
L’algorithme de Huffman produit un code ayant la propriété du préfixe de
longueur moyenne optimale.
Arbres de codage 8 / 12
Codage Complexité Algorithme
Arbres de codage 9 / 12
Codage Complexité Algorithme
Arbres de codage 9 / 12
Codage Complexité Algorithme
Arbres de codage 10 / 12
Codage Complexité Algorithme
Arbres de codage 10 / 12
Codage Complexité Algorithme
Invariant de la boucle :
La file à priorité contient une forêt incluse dans un arbre de codage optimal
de l’alphabet C.
Arbres de codage 11 / 12
Codage Complexité Algorithme
Invariant de la boucle :
La file à priorité contient une forêt incluse dans un arbre de codage optimal
de l’alphabet C.
Arbres de codage 11 / 12
Codage Complexité Algorithme
Invariant de la boucle :
La file à priorité contient une forêt incluse dans un arbre de codage optimal
de l’alphabet C.
Arbres de codage 11 / 12
Codage Complexité Algorithme
Invariant de la boucle :
La file à priorité contient une forêt incluse dans un arbre de codage optimal
de l’alphabet C.
Arbres de codage 11 / 12
Codage Complexité Algorithme
Codage et complexité
Arbres de codage 12 / 12