Professional Documents
Culture Documents
1 Incertitude et Information 1
1.1 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Choix et incertitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Choix avec probabilit connue . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3 Variables alatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.1.4 Entropie conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Linformation et sa mesure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.1 Observations et vnements . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.2 Information mutuelle et divergence de Kullback-Leibler . . . . . . . . 34
1.2.3 Surprise, entropie et information . . . . . . . . . . . . . . . . . . . . . 42
2 Exercices du module C1 47
2.1 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 La mesure de linformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4 Exercices du module C3 87
4.1 Chanes de Markov de premier ordre . . . . . . . . . . . . . . . . . . . . . . . 87
i
ii TABLE DES MATIRES
13 Cryptographie 219
13.1 Cadre Gnral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
13.1.1 Buts de la Cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . 220
13.1.2 Exemples Historiques . . . . . . . . . . . . . . . . . . . . . . . . . . 221
13.2 Confidentialit Parfaite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.2.1 Dfinition et Consquences . . . . . . . . . . . . . . . . . . . . . . . . 224
13.2.2 Un Exemple : le One-Time Pad . . . . . . . . . . . . . . . . . . . . . 225
iv TABLE DES MATIRES
v
vi TABLE DES MATIRES
Chapitre 1
Module C1 : Incertitude et
information
par J RG KOHLAS
Introduction
Bienvenue dans cette premire tape du monde de la thorie de linformation. De toute vi-
dence, dans un monde qui est en passe de devenir une socit dinformation, la notion et
le concept dinformation devraient soulever une grande attention scientifique. En fait, bien
que le dveloppement de linformation pragmatique, dans les ordinateurs, sur Internet et dans
dautres rseaux informatiques, volue une allure extrmement rapide, ltude thorique et
conceptuelle de ce quest linformation et de la faon dont elle devrait tre traite ne suit pas
vraiment ce rythme frntique.
La thorie de linformation, dans le sens technique quon lui donne aujourdhui, remonte au
travail de Claude Shannon. Elle a t introduite comme moyen dtudier et de rsoudre les
problmes de communication ou de transmission de signaux travers des canaux. Bien que
ce soit une vision relativement troite de linformation qui se penche plus particulirement sur
la mesure du contenu de linformation, elle doit tre incluse dans toute thorie plus large
de linformation. Cest pourquoi ce module est une introduction aux lments de base de la
1
2 CHAPITRE 1. INCERTITUDE ET INFORMATION
1.1 Entropie
Toute situation dincertitude peut tre dcrite comme une situation dans laquelle il existe plu-
sieurs possibilits, sans que lon sache laquelle sera slectionne. Un exemple typique li aux
1.1. ENTROPIE 3
ordinateurs est la question : quelle sera la prochaine frappe de lutilisateur ? Selon le type
de clavier, il y aura plusieurs douzaines de possibilits, si les frappes combines sont permises.
Une situation dincertitude plus complexe natra si lon considre une squence complte de
frappes dans une session de dialogue. Il existe bien sr un grand nombre de situations din-
certitude dans la vie courante, dans la recherche et le diagnostic mdicaux, ainsi que dans
linfrence statistique et les enqutes criminelles, etc. Ltude de lincertitude et la mesure
de sa quantit dans une situation donne prsentent donc un intrt certain. La mesure de la
quantit dincertitude est mme une question fondamentale en communication et en thorie de
linformation.
Commenons par la description formelle dune situation dincertitude. Supposons quil existe
un cas dans lequel il se trouve une possibilit parmi m diffrentes possibilits. Nous dsi-
gnons ces possibilits par e1 , e2 , . . . , em . Un tel ensemble de possibilits, dsign par S =
{e1 , e2 , . . . , em } est appel un schma de choix (fini). Lide est que lune de ces possibilits
est slectionne par une personne, un processus ou un mcanisme etc. Lincertitude survient
parce que nous ignorons laquelle des m possibilits est slectionne.
Comment mesurer la quantit dincertitude dans un schma de choix S? Intuitivement, plus la
cardinalit |S| de S (le nombre dlments de S) est grande, plus lincertitude sera grande. Ceci
semble clair. Aussi, pourquoi ne pas simplement prendre |S| comme mesure de lincertitude?
En effet, cest une possibilit. Mais nous allons suivre une autre approche. Imaginons le jeu
suivant : je slectionne une possibilit de S et vous pouvez me poser des questions sur mon
choix. Toutefois, je naccepte que les questions auxquelles je peux rpondre par oui ou par
non. Dans tous les cas nous pouvons considrer que les possibilits sont reprsentes par les
nombres 1, 2, . . . , m = |S|. Aussi pourriez-vous poser des questions telles que: le nombre
que vous avez slectionn est-il impair?, est-il infrieur 10?, suprieur 13?, etc. Plus
vous aurez besoin de poser des questions, plus lincertitude sera grande. Donc lide est de
mesurer lincertitude par le nombre de questions que vous aurez besoin de poser pour trouver
mon choix.
Bien entendu, vous devrez poser des questions habiles. Si vous choisissez de demander si le
nombre est 1, si non, si cest 2, etc., vous pourriez avoir besoin des m questions pour dcouvrir
mon choix. Il est clair que ceci nest pas une mthode optimale. Cependant, si vous demandez
dabord si le nombre est infrieur m/2, ma rponse vous permettra de limiter la suite de votre
investigation la moiti des possibilits initiales seulement. Ensuite vous pourriez procder
dune faon similaire. Ceci semble donc tre une faon habile de dcouvrir mon choix.
Pour tre un peu plus formels, considrons dabord que m est une puissance de 2, m = 2n .
Puis nous pourrions diviser S par la premire question (votre choix est-il suprieur 2n1 ?)
en deux moitis de taille gale : {1, . . . , 2n1 } et {2n1 + 1, . . . , 2n }. Chaque moiti peut tre
encore divise en deux avec la deuxime question. Si la rponse la premire question est
non, alors la deuxime question dtermine soit {1, . . . , 2n2 } soit {2n2 + 1, . . . , 2n1 }.
Si la rponse la premire question tait oui, alors la question suivante fait la distinction
entre {2n1 + 1, . . . , 2n1 + 2n2 } ou {2n1 + 2n2 + 1, . . . , 2n }. Ce processus de questions
et rponses est reprsent en figure 1.1. Chaque question est reprsente par un nud, en
commenant par la premire question. Un nud de questions est dsign par lensemble des
possibilits identifies jusque-l. Le premier nud est donc dsign par tout lensemble S;
les nuds du premier niveau par les deux demi-ensembles; au second niveau par les quatre
quarts densembles, etc. Chaque rponse possible est indique par un arc quittant le nud.
Nous dsignons une rponse non par un 0 et une rponse oui par un 1.
Le processus de division des ensembles de possibilits en moitis gales prend fin avec la
dcouverte du choix exact aprs exactement n tapes. Le nombre n nest rien dautre que le
4 CHAPITRE 1. INCERTITUDE ET INFORMATION
F IG . 1.1 Larbre des questions-rponses pour la recherche binaire dun choix inconnu parmi
les lments 2n .
F IG . 1.2 Le nud typique dun arbre de questions-rponses pour la recherche binaire dun
choix inconnu dans le cas gnral.
Si le nombre de possibilits dans le systme de choix S est entre les deux puissances de 2,
2n |S| < 2n+1 , alors nous pouvons soit enlever quelques possibilits pour obtenir 2n
possibilits, ou ajouter quelques possibilits pour obtenir 2n+1 possibilits. Dans le premier
cas, nous avons besoin de n questions, dans le second nous avons besoin de n + 1 questions
pour trouver le choix exact. Donc la quantit dincertitude de S doit se situer quelque part entre
ces deux limites. A prsent, nous avons n log |S| < n + 1. Donc nous pouvons de nouveau
prendre h(|S|) = log |S| comme mesure de la quantit dincertitude dans le cas gnral, mme
si cette fois log |S| nest plus ncessairement un nombre entier. Nous adoptons finalement la
dfinition suivante :
1.1. ENTROPIE 5
Exemple 1.1 (Echiquier) Prenons comme premier exemple celui dun chiquier vide. Il
existe exactement m = 64 = 26 possibilits de placer une pice dessus. Ainsi, le systme de
choix peut tre reprsent par S = {1, 2, . . . , 64}, o chaque nombre reprsente une case de
lchiquier. La quantit dincertitude du placement dune pice sur un chiquier est
Comme toute dfinition, celle-ci est galement arbitraire jusqu un certain degr. Cest fina-
lement son utilit et son lgance dans les applications qui la justifiera. Nous tenterons de le
faire dans la suite de ce module et dans dautres.
On peut dailleurs galement jouer aux questions-rponses avec des questions qui ont plus de
2 rponses possibles. Supposons que les questions ont k > 2 rponses possibles . Alors chaque
question permet de diviser lensemble de m possibilits en k sous-ensembles denviron m/k
lments. Donc, comme nous lavons dmontr plus haut, si |S| = k n , alors nous aurons
besoin dexactement n = logk |S| questions. Cette fois nous utilisons le logarithme base k.
Donc nous aurions pu dfinir
h(|S|) = logk |S|.
Mais nous avons
logk |S| = logk (2) log2 |S|.
Changer la base du logarithme revient donc changer dunit de mesure, et ce nest pas un
changement vraiment essentiel. Dornavant, un log sans indication de la base a par dfaut dans
ce chapitre, un logarithme en base 2.
Si nous avons un systme de choix S et un arbre de questions correspondant, (comme en
figure 1.1), alors nous avons en mme temps un codage des possibilits du systme de choix.
En concatnant le 0 et le 1 sur le chemin de la racine la possibilit en question, on
obtient un code de cette possibilit. Si nous utilisons des questions binaires, nous aurons un
code binaire pour le systme de choix. Notez que la longueur du code de chaque possibilit
gale soit lentier infrieur suivant, soit lentier suprieur suivant de h(|S|) = log |S|. Ceci
est une premire approche de la relation troite entre lincertitude et le codage. Ce point sera
tudi plus loin, dans le chapitre 5.
Exemple 1.2 (Arbre de questions binaires) Un systme de choix est donn par S =
{1, 2, 3, 4, 5}. Sa quantit dincertitude est
Un arbre de questions binaires correspondant possible est reprsent en figure 1.3. On voit
aisment que le code 001 reprsente la possibilit {2} et que sa longueur 3 est lentier suivant
suprieur de h(|S|). La possibilit {3} a comme longueur de code 2, {4} a comme longueur
2, etc.
6 CHAPITRE 1. INCERTITUDE ET INFORMATION
Voici maintenant quelques proprits trs simples de notre mesure de lincertitude h(|S|) :
1. Si S1 et S2 sont deux systmes de choix et |S1 | = |S2 |, alors h(|S1 |) = h(|S2 |). Seul le
nombre de possibilits importe dans un systme de choix, et non leur nature.
2. Si S1 et S2 sont deux systmes de choix et |S1 | < |S2 |, alors h(|S1 |) < h(|S2 |), puisque
le logarithme est une fonction croissante. Cest ce que nous attendons : lincertitude
augmente avec le nombre de possibilits dun choix.
3. Si S1 et S2 sont deux systmes de choix et que S2 a le double des possibilits de S1
(|S2 | = 2 |S1 |), alors, en utilisant le logarithme en base 2, nous obtenons h(|S2 |) =
h(|S1 |) + 1. Ceci dcoule de ladditivit du logarithme, et de log2 2 = 1,
h(|S2 |) = log2 |S2 | = log2 (2 |S1 |) = log2 2 + log2 |S1 | = 1 + h(|S1 |).
4. Si S est un systme de choix avec seulement deux possibilits, alors, avec la base 2 pour
le logarithme, h(|S|) = log2 2 = 1. Cette unit de mesure est appele un bit (binary
information unit). Nous verrons que lincertitude est troitement lie linformation, et
quon mesure cette dernire par les mmes units que lincertitude. Nous pntrerons
ainsi dans le royaume des ordinateurs. Cest pour cela que les questions binaires sont les
plus connues.
Si nous avons deux systmes de choix S1 = {e1,1 , e1,2 , . . . , e1,n } et S2 = {e2,1 , e2,2 , . . . , e2,m },
alors les deux possibilits de choix correspondantes peuvent tre assembles en un systme
combin qui contient toutes les combinaisons n m par paires de choix possibles :
Un tel ensemble de paires est appel produit cartsien des deux ensembles individuels, et se
prsente comme suit :
Bien entendu, ceci peut tre gnralis et tendu la combinaison de plus de deux choix
indpendants. Admettons que S1 , S2 , . . . , Sm soient m systmes de choix. Alors le produit
cartsien des m-tuples
Corollaire 1.1
Exemple 1.4 (D) Lanons un d m fois et considrons que les lancers sont indpendants.
Ceci peut tre model par m systmes de choix indpendants S1 , . . . , Sm , dans lesquels
chaque systme contient 6 possibilits. Daprs le corollaire 1.1, nous obtenons que
Nous avons donn une forme prcise des situations dincertitude par des systmes de
choix S, dans lesquels une, parmi un nombre fini de possibilits, sera slectionne, sans
que lon sache laquelle;
8 CHAPITRE 1. INCERTITUDE ET INFORMATION
Lincertitude associe un systme de choix est mesure par le (plus petit) nombre de
questions poser pour dcouvrir le choix rel. Ceci mne poser log |S| comme mesure
de lincertitude. Avec des questions binaires lunit de mesure est appele un bit;
Le jeu des questions dfinit un arbre qui peut tre utilis pour dfinir des codes pour les
possibilits du systme de choix S. La longueur de ces codes est approximativement gale
la mesure de lincertitude log |S|. Si des questions binaires sont utilises, nous obtenons
des codes binaires;
Nous avons dcouvert que les incertitudes de systmes de choix indpendants saddi-
tionnent.
valuation 1
valuation 2
Si nous avons deux systmes de choix S1 = {e1,1 , e1,2 , . . . , e1,n } et S2 = {e2,1 , e2,2 , . . . , e2,m },
alors le systme de choix indpendants S1 S2 a
1. n + m lments;
2. n m lments.
valuation 3
Etant donn deux systmes de choix S1 et S2 avec |S2 | = 2 |S1 |, alors h(|S1 S2 |) est gal
1. h(|S1 |) + h(|S2 |);
2. 1 + 2 h(|S1 |);
3. log(|S1 | |S2 |);
4. h(|S1 |) h(|S2 |);
1
5. 1 + 2 h(|S2 |).
valuation 4
Retournons la dernire control question. Laquelle des assertions correctes restera vraie, arbi-
trairement, pour S1 et S2 sans la proprit |S2 | = 2 |S1 |.
1.1. ENTROPIE 9
Dans certaines situations, les probabilits des diffrentes possibilits qui pourraient se produire
sont connues. Par exemple, si lon sait quune personne tape un texte en anglais, alors nous
savons que certaines lettres se prsentent plus frquemment que dautres, et quelles sont donc
plus susceptibles dtre tapes. Ou, au niveau des mots, si lon sait que lutilisateur fait de
la programmation, alors nous savons que certains mots-cls tels que si, alors, sinon,
etc. sont plus susceptibles dtre taps que la plupart des autres combinaisons de lettres. Nous
verrons dans cette section comment cette connaissance supplmentaire des probabilits affecte
la quantit dincertitude dans un systme de choix.
Pour commencer, nous introduisons formellement des probabilits dans un systme de choix
S = {e1 , e2 , . . . , em } en assignant des probabilits pi aux possibilits ei pour i = 1, 2, . . . , m.
Ces probabilits doivent remplir les conditions suivantes :
m
X
0 pi 1, pour i = 1, 2, . . . m, pi = 1. (1.2)
i=1
La seconde condition exprime le fait quexactement une des m possibilits doit tre slectio-
ne. Le systme de choix S forme avec lensemble de probabilits P = {p1 , p2 , . . . , pm } un
systme de choix probabiliste. Voici la dfinition formelle :
Quelle est la quantit dincertitude dans un systme de choix probabiliste ? Nous pourrions es-
sayer demployer le mme jeu de questions-rponses que dans la question prcdente. Cepen-
dant, il nest plus ingnieux de diviser lensemble de possibilits en sous-ensembles de taille
gale, parce que cette mthode ne tient pas compte des probabilits. Supposons par exemple
quune possibilit, disons e1 , est bien plus vraisemblable que toutes les autres. Alors, nous
devrions dabord bien entendu demander si ceci est la bonne possibilit. Il y a de grandes
chances que nous frappions juste et trouvions la bonne possibilit avec une seule question.
Cest seulement si la rponse est non que nous devrons continuer. Examinons un exemple.
F IG . 1.5 Dans cette alternative la longueur moyenne des mots est rduite 2.75.
Comme lexemple le dmontre, nous devrions tenter de slectionner nos questions de faon
minimiser le nombre moyen de questions ncessaires. Ceci nest pas une tche banale. Ce-
pendant, la solution ce problme est connue et frquemment utilise en thorie du codage
comme expos dans le chapitre 5. Lide-cl est de diviser lensemble des possibilits, non pas
en sous-ensembles de cardinalit gale, mais en sous-ensembles de probabilit gale. On sait
en particulier, daprs la thorie du codage, que le nombre moyen de questions est approxima-
tivement
m
X
pi log pi .
i=1
1.1. ENTROPIE 11
Cette grandeur est appele entropie, et nous proposons de lutiliser comme mesure de la quan-
tit dincertitude dans un systme de choix probabiliste. Nous nexcluons pas que certaines
des probabilits pi tendent vers zro, pi = 0. Dans ce cas nous adoptons la convention selon
laquelle 0 log 0 = 0, ce qui est raisonnable tant donn que limx0 x log x = 0.
Une fois de plus, cette dfinition comporte un certain degr darbitraire. La base k du loga-
rithme dans lentropie correspond, comme dans la section prcdente, au nombre k de rponses
possibles chaque question dans le jeu des questions-rponses. Nous laissons ceci ouvert, tant
donn quun changement de la base correspond seulement un changement dunit. Comme
prcdemment, le logarithme en base 2 est le plus populaire; lunit correspondante est le bit;
nous allons gnralement lemployer dans les exemples.
Exemple 1.6 (Arbres lis un systme de choix probabiliste - Suite) Nous compltons
lexemple 1.5 en calculant la quantit dincertitude dans le systme de choix probabiliste; ce
qui revient calculer lentropie.
8
X
H(P ) = pi log pi
i=1
= 0.3 log 0.3 0.2 log 0.2 0.2 log 0.1
0.15 log 0.05 0.15 log 0.15
2.7087 bit
Donc H(P ) est infrieur la longueur moyenne des mots dans le meilleur arbre.
Ceci est une expression du principe de raison insuffisante de Laplace qui dit que si vous navez
pas dautre information, posez des probabilits gales. Dans ce contexte ceci fonctionne bien.
En ce sens, lentropie couvre aussi le cas particulier des systmes de choix sans probabilits.
Pour un systme de choix S avec |S| = m, intuitivement, nous avons une incertitude maxi-
male si nous ne connaissons pas les probabilits, ou si nous posons des probabilits uniformes
(gales) sur toutes les possibilits.
D MONSTRATION Nous avons log x = log eln x, o ln reprsente le logarithme naturel (en
base e). ln x est une fonction concave, ce qui signifie que tous les points de son diagramme
sont sous sa tangente (see Figure 1.6). Si nous prenons la drive de ln x dans le point x = 1,
alors nous obtenons ln x x 1 avec galit si, et seulement si, x = 1. Par consquent,
nous avons
qi qi
ln 1,
pi pi
do
m
X X m
X m
qi
pi ln qi pi = 1 1 = 0.
pi
i=1 i=1 i=1
Ceci montre que (1.4) est vrifi avec lgalit si, et seulement si, qi /pi = 1 pour tous i,
cest--dire pi = qi .
En appliquant ce lemme, on a
m
X m
X 1
H(P ) log m = pi log pi + pi log 0,
m
i=1 i=1
avec galit si, et seulement si, pi = 1/m. Nous avons dmontr le thorme suivant :
1.1. ENTROPIE 13
Thorme 1.2
o le maximum est pris sur toutes les distributions de probabilit P pour m possibi-
lits. Ce maximum est atteint pour la distribution quiprobable uniquement.
1. Si (S1 , P1 ) et (S2 , P2 ) sont deux systmes de choix probabilistes avec |S1 | = |S2 | et
P1 = P2 , alors H(P1 ) = H(P2 ). Ceci signifie que lentropie dpend uniquement de
la distribution de probabilits, et non pas de la nature des possibilits ei dans le sys-
tme de choix. Ceci dcoule directement de la dfinition de lentropie (1.3) qui dpend
uniquement des probabilits pi .
2. Nous avons
qui rsulte de la convention 0 log 0 = 0. Elle signifie que les possibilits probabilit
tendant vers zro importent peu pour la quantit dincertitude. Ceci est raisonnable, tant
donn que nous pouvons tre srs que de telles possibilits ne sont jamais slectionnes.
3. Considrons un schma deux niveaux comme illustr sur la figure 1.7. Au premier
niveau, une des deux possibilits est slectionne, avec les probabilits p et q = 1 p.
Si au premier niveau, la premire possibilit est slectionne, alors au second, une des
n possibilits est slectionne avec les probabilits pi /p. Si la seconde possibilit est
slectionne au premier niveau, alors une des m possibilits est slectionne au second
niveau avec les probabilits qi /q. Ici il est admis que
n
X m
X
pi = p, qi = q.
i=1 i=1
14 CHAPITRE 1. INCERTITUDE ET INFORMATION
p1 + p2 + pn + q1 + q2 + qm = 1,
H(p1 , p2 , . . . , pn , q1 , q2 , . . . , qm )
p1 p2 pn q1 q2 qm
= H(p, q) + pH( , , . . . , ) + qH( , , . . . , ).
p p p q q q
Ceci peut tre vrifi daprs la dfinition de lentropie.
F IG . 1.7 Un systme de choix probabiliste deux niveaux dans lequel une des deux possibi-
lits est slectionne avec les probabilits p et q = 1 p et, au second niveau, soit une des n
possibilits avec la probabilit pi /p soit une des m possibilits avec la probabilit qi /q.
H(p1 , . . . , pn ) = H(p1 + p2 , p3 , . . . , pn )
p1 p2
+(p1 + p2 )H( , ),
p1 + p2 p1 + p2
pour chaque distribution de probabilit p1 , . . . , pn avec n 2.
4. H( n1 , . . . , n1 ) est croissant avec n.
Ces propositions sont trs faciles dmontrer. Leur importance rside dans le fait quelles
sont des proprits caractrisantes pour lentropie. Cela signifie que lorsque nous imposons
ces quatre conditions raisonnables sur une mesure dincertitude, nous obtenons ncessairement
lentropie pour cette mesure.
1.1. ENTROPIE 15
H(p1 , p2 , . . . , pn )
n
X
= p1 log p1 p2 log p2 pi log pi
i=3
n
X
= (p1 + p2 ) log(p1 + p2 ) pi log pi
i=3
+p1 log(p1 + p2 ) p1 log p1 + p2 log(p1 + p2 ) p2 log p2
p1 p1 p2 p2
= H(p1 + p2 , p3 , . . . , pn ) (p1 + p2 ) log + log
p1 + p2 p1 + p2 p1 + p2 p1 + p2
p1 p2
= H(p1 + p2 , p3 , . . . , pn ) + (p1 + p2 )H( , ).
p1 + p2 p1 + p2
(4) Rsulte du fait que H( n1 , . . . , n1 ) = log n et que le logarithme est une fonction croissante.
si {p() : } sont les probabilits dfinies sur lchantillon despace fini . Lensemble
{pX (x) : x S} dfinit alors les probabilits sur lespace de choix S. Nous pouvons donc
aussi bien parler de variables alatoires au lieu de systmes de choix probabilistes, et dfinir,
en consquence :
Dfinition 1.4 (Entropie dune v.a.) Lentropie de la variable X avec des valeurs
dans S est dfinie par :
X
H(X) = pX (x) log pX (x).
xS
Ceci mesure donc lincertitude associe la variable alatoire X. Dans ce qui suit, ce sera
souvent une faon plus commode de voir les choses.
16 CHAPITRE 1. INCERTITUDE ET INFORMATION
Exemple 1.7 (Bernoulli) Admettons que X soit une variable alatoire binomiale reprsen-
tant n preuves de Bernoulli, soit avec
n x
pX (x) = p (1 p)nx .
x
Prenons n = 4 et p = q = 0.5. Do
4
X
4 i 4i 4 i 4i
H(X) = (0.5) (0.5) log (0.5) (0.5)
i i
i=0
= 0.1250 log 0.0625 0.5 log 0.25 0.375 log 0.375
2.0306 bit.
Thorme 1.3 Lentropie dune variable alatoire X valeurs dans S est borne
par :
0 H(X) log |S|
Les bornes peuvent tre atteintes :
H(X) = 0 dans le cas dun systme dterministe (une seule valeur de S a un
probabilit de 1, toutes les autres ont une probabilit nulle).
H(X) = log |S| dans le cas dun systme quirparti (voir thorme 1.2).
Nous avons vu que pour un choix probabiliste, reprsent par un systme de choix proba-
biliste, on doit employer une stratgie diffrente dans le jeu des questions-rponses : au
lieu de diviser lensemble de possibilits en sous-ensembles de cardinalit gale, nous le
divisons en sous-ensembles de probabilit presque gale. Ceci mne, approximativement,
lentropie en tant que logarithme du nombre moyen de questions et, ainsi, comme mesure
approprie de lincertitude;
Nous avons vu que lincertitude dun systme de choix gale lentropie dun choix proba-
biliste probabilits gales, soit une distribution de probabilit uniforme. Ceci correspond
au principe de raison insuffisante de Laplace. Donc le concept dentropie couvre aussi le
cas de systmes de choix non probabilistes;
En fait, des probabilits gales, ou des systmes de choix sans probabilits connues repr-
sentent, pour un ensemble S dune cardinalit donne, la plus grande incertitude;
Lentropie dpend uniquement de la distribution de probabilit dun systme de choix, et
non pas de la nature des possibilits;
Nous avons vu quelques proprits simples de lentropie qui caractrisent ce concept.
valuation 5
1.1. ENTROPIE 17
valuation 6
0.21 0.79
F IG . 1.8 Calculez la longueur moyenne des mots et lentropie dans cet arbre binaire.
valuation 7
Ceci est une distribution de probabilit bi-dimensionnelle. Nous pouvons calculer les deux
(1) (1) (1) (2) (2) (2)
distributions marginales P1 = {p1 , p2 , . . . , pn }, et P2 = {p1 , p2 , . . . , pm }, dfinies
par
m
X n
X
(1) (2)
pi = pi,j , pj = pi,j . (1.6)
j=1 i=1
Ceci nous donne donc deux systmes de choix probabilistes associs (S1 , P1 ) et (S2 , P2 ).
Nous allons introduire une variable alatoire pour chaque systme de choix probabiliste comme
expliqu la fin de la sous-section prcdente. Donc, admettons que X soit associ au systme
(S1 , P1 ) et Y au systme (S2 , P2 ). La paire de variables (X, Y ) est alors associe au systme
probabiliste compos (S1 S2 , P ). Nous avons la distribution de probabilit bi-dimensionnelle
p(X,Y ) (e1,i , e2,j ) = pi,j pour la paire de variables alatoires (X, Y ). La variable X possde
(1) (2)
la distribution marginale pX (e1,i ) = pi et Y la distribution marginale pY (e2,j ) = pj .
Rappelons que deux systmes de choix probabilistes, ou deux variables alatoires X et Y sont
appels indpendants, si, et seulement si,
Nous avons trois entropies diffrentes associes aux trois systmes de choix probabilistes : les
deux variables uniques X et Y et la variable bi-dimensionnelle (X, Y ),
X X
H(X, Y ) = pX,Y (x, y) log pX,Y (x, y),
xS1 yS2
X
H(X) = pX (x) log pX (x),
xS1
X
H(Y ) = pY (y) log pY (y).
yS2
1.1. ENTROPIE 19
Exemple 1.8 (Systme de choix probabiliste compos) Etant donn un systme de choix
indpendants composs
et deux variables alatoires (X, Y ) associes (S1 S2 , P ), il est ais didentifier les sys-
tmes de choix simples
En appliquant (1.6) nous obtenons les deux distributions marginales P1 = {0.6, 0.4} et P2 =
{0.8, 0.2}. Nous sommes maintenant en mesure de calculer les entropies
X X
H(X, Y ) = pX,Y (x, y) log pX,Y (x, y)
xS1 yS2
= 0.5 log 0.5 0.1 log 0.1 0.3 log 0.3 0.1 log 0.1
1.6855 bit,
X
H(X) = pX (x) log pX (x) = 0.6 log 0.6 0.4 log 0.4
xS1
0.9710 bit,
X
H(Y ) = pY (y) log pY (y) = 0.8 log 0.8 0.2 log 0.2
yS2
0.7219 bit.
La question qui se pose est la suivante : comment les trois entropies ci-dessus sont-elles
lies ? La rponse se trouve dans le thorme suivant
H(X) + H(Y )
!
X X
= pX (x) log pX (x) + pY (y) log pY (y)
x y
!
XX XX
= pX,Y (x, y) log pX (x) + pX,Y (x, y) log pY (y)
x y x y
!
XX
= pX,Y (x, y) log pX (x) pY (y) .
x y
20 CHAPITRE 1. INCERTITUDE ET INFORMATION
ce qui dmontre lingalit (1.7). Daprs le lemme 1.1 nous avons lgalit dans la dernire
ingalit si, et seulement si, pX,Y (x, y) = pX (x) pY (y), ce qui signifie que X et Y sont
indpendants.
Ce thorme nous apprend que les entropies de deux variables ne sajoutent lentropie des
variables bi-dimensionnelles composes que si les variables sont indpendantes. Si ce nest
pas le cas, il y a moins dincertitude dans la situation compose que dans les deux systmes
de choix simples. La raison en est que linter-dpendance des variables, (leur corrlation) cre
certaines parties dincertitude communes aux deux variables.
Exemple 1.9 (Systme de choix probabiliste compos - Suite) Dans lexemple 1.8 nous
avons les variables alatoires X et Y . Vrifiez vous-mme que H(X, Y ) < H(X) + H(Y ).
Le thorme 1.4 peut aisment tre tendu plus de deux variables. Notons X le vecteur
(X1 , X2 , . . . , Xm ) de m variables alatoires Xi . Cette variable alatoire vectorielle possde
la distribution de probabilit pX (x), o x = (x1 , x2 , . . . , xm ) et chaque variable Xi a la
distribution marginale
X
pXi (xi ) = pX (x1 , x2 , . . . , xi1 , xi , xi+1 , . . . , xm ).
x1 ,...,xi1 ,xi+1 ,...,xm
Do H(X1 , . . . , Xn ) = n H(X1 ) = n.
Revenons au cas de deux entits et considrons une variable alatoire X lie une situation
de choix probabiliste (S, P ), et supposons quun vnement E S est observ. En quoi cela
affecte-t-il lincertide ?
Lobservation de lvnement E change la variable alatoire X en variable conditionnelle XE
lie la nouvelle situation de choix probabiliste (E, PXE ).
Dfinition 1.5 Soit X une variable alatoire lie une situation de choix probabiliste
(S, P ). On note XE la variable alatoire conditionnelle X tant donn un vnement
E S ; i.e. XE est lie la nouvelle situation de choix probabiliste (E, PXE ).
Sa distribution de probabilit est donne par :
pX (x)
pXE (x) = , pour x E.
pX (E)
Lobservation de E change donc lincertitude de H(X) H(XE ), qui est appele entropie
conditionnelle.
Exemple 1.11 (Entropie conditionnelle) Soit X une variable alatoire lie la situation de
choix probabiliste (S, P ) donne par S = {1, 2, 3, 4}, P = {0.5, 0.25, 0.125, 0.125}, et
E = {1, 3} un vnement. Ainsi
H(X) = 0.5 log 0.5 0.25 log 0.25 0.125 log 0.125 0.125 log 0.125
= 1.75bit.
Avec pX (E) = 0.625, pXE (1) = pX (1)/pX (E) = 0.8 et pXE (3) = pX (3)/pX (E) = 0.2
22 CHAPITRE 1. INCERTITUDE ET INFORMATION
nous obtenons
H(XE ) = pXE (1) log pXE (1) pXE (3) log pXE (3)
= 0.8 log 0.8 0.2 log 0.2
0.7219 bit.
Pour simplifier la notation nous abrgeons souvent H(X|Y = y) par H(X|y). Donc, lobser-
vation de Y = y change lincertitude concernant X de H(X) H(X|y). Comme lexemple
suivant le montre, la nouvelle entropie ou incertitude peut tre plus grande ou plus petite que
lancienne. Une observation particulire peut augmenter ou diminuer lincertitude. Notons tou-
tefois que si les deux variables alatoires sont indpendantes, alors nous avons pX|y (x, y) =
pX (x) pour x et y. Dans ce cas nous voyons que
X
H(X|y) = pX (x) log pX (x) = H(X).
x
Lincertitude dans X ne change pas, lorsquon observe une variable Y qui est indpendante de
X.
Exemple 1.12 (Entropie conditionnelle) Etant donn que pX,Y (0, 1) = pX,Y (1, 0) =
pX,Y (0, 0) = 13 , pX,Y (1, 1) = 0, pX (0) = pY (0) = 32 et pX (1) = pY (1) = 31 . Do
H(X|Y = 0) = pX|y (0, 0) log pX|y (0, 0) pX|y (1, 0) log pX|y (1, 0)
pX,Y (0, 0) pX,Y (0, 0) pX,Y (1, 0) pX,Y (1, 0)
= log log
pY (0) pY (0) pY (0) pY (0)
= 0.5 log 0.5 0.5 log 0.5
= 1,
pX,Y (0, 1) pX,Y (0, 1) pX,Y (1, 1) pX,Y (1, 1)
H(X|Y = 1) = log log
pY (1) pY (1) pY (1) pY (1)
= 0,
2 2 1 1
H(X) = H(Y ) = log log 0.9183.
3 3 3 3
Nous obtenons donc que H(X|Y = 1) < H(X) < H(X|Y = 0).
1.1. ENTROPIE 23
Insistons sur la diffrence entre H(X|y), H(XE ) et H(X|Y ). Dans les deux premiers cas,
nous comprenons que lentropie de la variable X est conditionne par un vnement observ
Y = y ou E. Dans le second cas nous parlons de lentropie conditionnelle moyenne (moyenne
sur tous les venements y).
Thorme 1.5 Pour toute paire de variables alatoires X et Y , nous avons toujours :
Par consquent, nous pouvons dvelopper lentropie conditionnelle (moyenne) comme suit,
X
H(X|Y ) = pY (y)H(X|y)
y
XX
= pY (y)pX|y (x, y) log pX|y (x, y)
x y
XX pX,Y (x, y)
= pX,Y (x, y) log
x y
pY (y)
XX
= pX,Y (x, y) (log pX,Y (x, y) log pY (y))
x y
= H(X, Y ) H(Y ).
Ce thorme nous apprend que nous pouvons toujours considrer lincertitude dune paire de
variables comme le rsultat dun enchanement dans lequel nous commenons par lincerti-
tude de lune des variables, disons Y , et ajoutons lincertitude conditionnelle (moyenne) de
la seconde, tant donne la premire variable. Bien entendu, nous pouvons commencer par
nimporte laquelle des variables. Donc
X
0 pY |x (y, x) pour tous x I, y O, pY |x (y, x) = 1 pour tous x I.
y
On appelle cela la matrice de transmission. La figure 1.9 expose ce systme de canaux. Daprs
lquation
toute lincertitude du systme est donc compose de lincertitude propos du signal dentre
H(X) et de lincertitude de la transmission travers le canal H(Y |X).
Exemple 1.14 (Canal binaire symtrique) ] Un canal binaire symtrique simple avec des
variables alatoires X pour lentre et Y pour la sortie est donn par la matrice de transmis-
sion suivante :
pY |x (0, 0) pY |x (1, 0) 1
P= =
pY |x (0, 1) pY |x (1, 1) 1
Avec
nous obtenons
Ceci nest pas une surprise, puisque le canal est symtrique. En faisant un effort, vous pouvez
montrer H(X, Y ) = H(X) + H(Y |X).
Considrons prsent un exemple numrique. Etant donn que = 0.1, pX (0) = p = 0.2 et
pX (1) = q = 0.8. Alors H(X) = 0.2 log 0.2 0.8 log 0.8 0.7219 bit,
et H(Y |X) = H(Y |0) = 0.9 log 0.9 0.1 log 0.1 0.4690 bit. Puisque
nous obtenons finalement H(X, Y ) = 0.18 log 0.18 0.08 log 0.08 0.02 log 0.02
0.72 log 0.72 1.1909 bit.
Les problmes de transmission de donnes travers des canaux seront traits en dtail dans le
chapitre 3.
Une fois de plus, le thorme 1.5 stend aisment une squence de plus de deux variables.
Contrairement lentropie conditionnelle de X, tant donne une observation Y = y, len-
tropie conditionnelle moyenne de X tant donn Y est toujours infrieure ou, au plus, gale
lentropie de X. Donc, en moyenne, une observation de Y diminue effectivement lincertitude
de X.
Si X et Y sont indpendants, alors observer lune de ces deux variables ne change pas lincer-
titude de lautre. Ce qui signifie, intuitivement dans ce cas, quune variable ne peut pas donner
dinformation propos de lautre.
H(X1 , X2 , . . . , Xm )
= H(X1 ) + H(X2 |X1 ) + + H(Xm |X1 , X2 , . . . , Xm1 ). (1.10)
(1.10) est appel rgle de lenchanement (gnralise). Elle est particulirement importante
en thorie de la communication.
Nous avons dcouvert que lentropie jointe de plusieurs variables alatoires est toujours
infrieure ou gale la somme des entropies de la variable individuelle. Elle est gale la
somme uniquement si les variables sont indpendantes.
Lentropie conditionnelle mesure lincertitude dune variable, lorsque la valeur dune autre
variable est observe. Cette incertitude peut, suivant linformation, augmenter ou diminuer.
Cependant, lentropie conditionnelle moyenne est toujours infrieure lentropie originale.
Lentropie conditionnelle est gale lentropie inconditionnelle si les variables alatoires
sont indpendantes.
valuation 8
Soit X une variable alatoire lie une situation de choix probabiliste (S, P ) et E un vne-
ment E S. Alors H(XE ) H(X). Cette assertion est-elle correcte ?
valuation 9
1.1. ENTROPIE 27
1. < H(X|Y );
2. < H(X|y);
3. > H(X|y);
4. = H(X|y);
5. = H(X|Y ).
valuation 10
1. H(X|y);
2. H(X|Y );
3. H(XE );
et
valuation 11
1. H(X, Y );
2. H(X|Y );
et
a. H(X);
b. H(Y );
c. H(X) + H(Y );
d. = H(Y ) + H(X|Y );
h. = H(X, Y ) H(X).
28 CHAPITRE 1. INCERTITUDE ET INFORMATION
Quest-ce que linformation et comment est-elle mesure ? Nous commenons ltude de cette
question dans cette sous-section. Lide de base est que linformation est une chose qui change
lincertitude, de prfrence en la faisant diminuer. En consquence, nous proposerons de me-
surer la quantit dinformation par la quantit de changement dincertitude. Cette ide sera
dveloppe progressivement dans cette section, en considrant un panorama de situations de
complexit croissante. Dans cette section, nous insisterons plus sur la mesure du contenu din-
formation que sur la reprsentation de linformation et ses proprits autres que la quantit.
Pour commencer, considrons un systme de choix probabiliste (S, P ) reprsent par une va-
riable alatoire X qui prend des valeurs x S avec des probabilits pX (x) (voir sous-section
1.1.2). Cette variable alatoire dcrit une certaine exprience dont le rsultat est incertain. Lin-
certitude de cette situation est mesure par lentropie
X
H(X) = pX (x) log pX (x). (1.11)
xS
Lorsque lexprience est effectue, une certaine valeur x S de la variable alatoire est obser-
ve. Il ny a plus dincertitude. Donc lincertitude pralable H(X) est rduite lincertitude
postrieure 0. La diffrence H(X) 0 = H(X) est la quantit dinformation gagne par
lexcution de lexprience. Donc lentropie dune variable alatoire mesure la quantit din-
formation gagne par lobservation de la valeur relle de la variable.
Cette ide soulve deux remarques importantes :
Etant donn que linformation est un changement dentropie, elle est mesure par la mme
unit que lentropie, cest--dire des bits, si la base 2 est slectionne pour le logarithme.
La quantit dinformation gagne par une observation est la mme pour toutes les observa-
tions possibles. En particulier, elle est la mme, que la probabilit de lobservation relle
soit petite ou grande. Nous reviendrons sur ce point dans la sous-section 1.2.3.
1.2. LINFORMATION ET SA MESURE 29
Exemple 1.15 (Variable alatoire binaire) Si, pour une variable binaire X le rsultat 0
surgit avec la probabilit p, et 1 avec la probabilit q = 1 p, alors lobservation du rsultat
de cette exprience binaire aboutit un gain dinformation H(X) = p log p q log q. En
particulier, dans le cas dune pice de monnaie non truque, observer le rsultat dun lancer
donne 1 bit dinformation.
Gnralisons prsent la situation. Nous considrons toujours une variable alatoire X lie
une situation de choix probabiliste (S, P ). Lincertitude qui lui est associe est toujours H(X).
Mais cette fois, nous ne procdons qu une partie de lexprience. Nous nobservons pas la
valeur exacte de X, mais uniquement un vnement E S. Bien entendu, ceci est aussi une
information. Mais quelle est sa quantit ? Lobservation de lvnement E change la variable
alatoire X en la variable conditionnelle XE (voir section 1.1.4).
Cette nouvelle situation engendre par lobservation de lvnement E, a lincertitude qui
correspond lentropie conditionnelle H(XE ). Lobservation de E change donc lincertitude
de H(X) H(XE ). La quantit dinformation gagne est donc H(X) H(XE ). Plus loin
nous verrons que ceci nest pas toujours vraiment un gain dinformation, tant donn que
H(XE ) peut tre plus grand que H(X), de faon ce que lobservation de lvnement E
augmente lincertitude qui correspond, daprs notre dfinition, une information ngative.
Exemple 1.16 (Meurtrier) Admettons que nous ayons n suspects pour un meurtre, mais
que lun dentre eux (disons le numro 1) soit bien plus suspect que les n 1 autres. Nous
pouvons reprsenter cette situation par une probabilit que le suspect 1 est le meurtrier de
pX (1) = 1 , qui vaut peu prs 1. Les probabilits que lun des autres suspects soit le
meurtrier est seulement pX (i) = /(n 1). Lentropie est alors
H(X) = (1 )(log 1 ) log . (1.12)
n1
Si est petit, alors cette entropie sera trs petite. Ceci reflte notre quasi-certitude que le
no. 1 est le meurtrier. Mais supposons maintenant que le no. 1 fournisse subitement un alibi.
Nous sommes alors forcs dexclure le no. 1 de la liste des suspects. Ceci correspond
lvnement E selon lequel X {2, . . . , n}. La distribution conditionnelle de X tant donn
E est alors pXE (i) = 1/(n 1) pour i = 2, . . . , n. La nouvelle incertitude correspondante
est H(XE ) = log(n 1). Ceci peut tre bien plus grand que H(X). Donc la nouvelle
information, soit lalibi du no. 1, transforme (inopinment) une situation claire et nette en
une situation trs incertaine et dsordonne. Linformation est donc ngative. Cet exemple
devrait vous convaincre que linformation ngative est une ralit.
Dans ce sens, et uniquement dans ce sens, lentropie est une mesure de linformation.
Sil nous intresse de savoir si un vnement E a lieu ou non, nous sommes confronts une
nouvelle situation de choix ({E, E c }, P ). Une nouvelle variable alatoire Y lui est associe,
avec la distribution de probabilit suivante
X X
pY (E) = pX (E) = pX (x), pY (E c ) = pX (E c ) = pX (x).
xE xE c
Quelle est alors lesprence de linformation lorsque nous apprenons si E a lieu ou non ? Cest :
I(X|Y )
= pY (E)i(E/X) + pY (E c )i(E c /X)
= H(X) (pY (E)H(XE ) + pY (E c )H(XE c ))
= H(X) H(X|Y ). (1.14)
Mais nous savons (voir corollaire 1.3) que H(X|Y ) H(X). Donc, la mesure dinformation
moyenne (ou information mutuelle), gagne en observant si un vnement a lieu ou non,
nest jamais ngative, cest--dire I(X|Y ) 0. Nous reviendrons sur cette notion importante
dinformation mutuelle dans la sous-section 1.2.2.
I(X|Y ) = EY [i(y/X)]
= H(X) H(X|Y )
Exemple 1.17 (Meurtrier - Suite) Reprenons lexemple du meurtre 1.16 pos plus haut.
Supposons que quelquun annonce quil produira une preuve de la culpabilit ou de lin-
nocence du no. 1 ( laide dun test ADN, par exemple). Avec la probabilit 1 nous nous
attendons prouver la culpabilit du no. 1. Ceci reprsente lvnement E c dans la notation
de lexemple 1.16. Dans ce cas, lincertitude qui en rsulte sera 0 et linformation obtenue
H(X) (voir (1.12)). Avec la probabilit nous nous attendons ce que linnocence du no.
1 soit prouve (vnement E). Lincertitude restante est alors, comme nous lavons vu dans
lexemple 1.16 log(n 1) et linformation obtenue H(X) log(n 1). Donc, dans ce cas
particulier, linformation moyenne qui sera gagne par cette preuve est gale
La dernire quation est obtenue en employant (1.12). Notez que ceci est exactement la quan-
tit dinformation que nous gagnerons en apprenant si le suspect no. 1 est coupable ou non.
Supposons maintenant que linformation survienne par tapes, sous forme dvnement ob-
servs. Tout dabord nous observons un vnement E1 S, puis nous obtenons une infor-
mation plus prcise par un vnement E2 E1 . Etant donn que lvnement E1 change la
variable alatoire X en variable alatoire conditionnelle XE1 , linformation gagne par E2
1.2. LINFORMATION ET SA MESURE 31
propos de linformation prcdente E2 est i(E2 /XE1 ) = H(XE1 ) H(XE2 ). En effet, pour
E1 E2 6= , H(XE1 E2 ) = H(XE2 E1 ) = H(XE1 E2 ).
Dans ce cas on a :
PXE1 (x)
PXE1 E (x) =
2 PXE1 (E2 )
PX (x) PX (E1 )
=
PX (E1 ) PX (F )
PX (x)
=
PX (F )
= PXF (x)
Le thorme suivant montre que lon peut additionner linformation gagne chaque tape
pour obtenir linformation complte.
Thorme 1.6 Admettons que X soit une variable alatoire associe une situation
de choix probabiliste (S, P ) et E1 , E2 deux vnements, E2 E1 S. Alors
i(E2 /X)
= H(X) H(XE2 )
= H(X) H(XE1 ) + H(XE1 ) H(XE2 )
= i(E1 /X) + i(E2 /XE1 ).
|S|
i(E/S) = log |S| log |E| = log .
|E|
Si, comme dans le thorme 1.6, nous avons E2 E1 S, alors, une fois que E1 est
observ, nous avons un nouveau systme de choix E1 . Si nous observons ensuite E2 , nous
gagnons linformation i(E2 /E1 ) propos de linformation prcdente E1 . Ainsi,
Bien entendu, dans ce cas nous avons galement i(E2 /S) = i(E1 /S) + i(E2 /XE1 ).
Notez que nous obtenons exactement les mmes rsultats, si nous considrons, non pas un
systme de choix S sans probabilits, mais un systme de choix probabiliste (S, P ), o P est
la distribution de probabilit uniforme sur S.
Exemple 1.19 (D non pip) Admettons que X soit la variable alatoire associe au lancer
dun d non pip. Nous avons alors H(X) = log 16 = log 6 bit. Quelquun nous dit que
X 6= 1. Admettons donc que E1 soit lvnement X 6= 1. Ainsi
6
i(E1 /X) = H(X) H(XE1 ) = log 6 log 5 = log bit,
5
tant donn que H(XE1 ) = log 5 bit. Un peu plus tard, nous recevons une information selon
laquelle X 6= 1 et X 6= 2 et nous lui associons lvnement E2 . Donc
3
i(E2 /X) = H(X) H(XE2 ) = log 6 log 4 = log bit,
2
tant donn que H(XE2 ) = log 4 bit. Finalement nous calculons
5
i(E2 /XE1 ) = H(XE1 ) H(XE2 ) = log 5 log 4 = log bit.
4
Nous vrifions queffectivement,
3 6 5
i(E2 /X) = log = log + log = i(E1 /X) + i(E2 /XE1 ).
2 5 4
Nous pouvons galement avoir une situation dans laquelle deux sources dinformation diff-
rentes rapportent deux vnements E1 , E2 S relatifs une situation de choix probabiliste
(S, P ) et une variable alatoire X qui lui est associe. Ces deux fragments dinformation
peuvent tre combins en un vnement E1 E2 . Nous considrons que E1 E2 nest pas
1.2. LINFORMATION ET SA MESURE 33
Exemple 1.20 (D non pip - Suite) Une fois de plus nous lanons un d non pip (variable
alatoire X). Comme prcdemment, H(X) = log 6 bit. Nous constatons que le rsultat est
un chiffre pair (vnement E1 ). Etant donn que H(XE1 ) = log 3 bit, nous obtenons que
6
i(E1 /X) = H(X) H(XE1 ) = log 6 log 3 = log = log 2 = 1 bit.
3
Notre observation suivante est que le rsultat est infrieur 4 (vnement E2 ). Donc, avec
H(XE2 ) = log 3 bit,
Notez que E1 E2 = {2}. Etant donn que H(XE1 E2 ) = 0 bit, nous obtenons finalement
Dans cette sous-section, nous avons vu que les vnements ou, plus prcisment, lobser-
vation des valeurs de variables alatoires est une information.
La quantit dinformation gagne par un vnement est mesure par le changement din-
certitude, soit lentropie. Donc linformation est mesure en bits, comme lentropie.
La quantit dinformation gagne par lobservation dun vnement peut tre ngative,
cest--dire que lincertitude peut tre augmente.
Dans le cas o la valeur exacte dune variable alatoire est observe, la quantit dinfor-
mation gagne est gale lentropie de la variable, qui est toujours non ngative.
La quantit dinformation gagne est relative linformation pralable. Ce qui signifie
quun vnement na pas une quantit dinformation absolue, mais que la quantit dpend
de ce qui tait connu avant, soit la distribution de probabilit pralable.
Si linformation, represente par des vnements, survient par tapes successives, alors
linformation totale gagne est la somme de linformation gagne chaque tape relative-
ment ltape prcdente.
34 CHAPITRE 1. INCERTITUDE ET INFORMATION
valuation 12
valuation 13
valuation 14
Admettons que X soit une variable alatoire lie une situation de choix probabiliste (S, P )
et E2 E1 S. Alors i(E2 /X)
1. = 0, si E2 correspond lobservation dune valeur prcise x de X;
2. = H(X) H(XE2 );
3. = i(E1 /X) + i(E2 /XE1 );
4. = log |E 2|
|S| si X est distribue uniformment.
Examinons de nouveau une situation de choix probabiliste compose (S1 S2 , P ) et les va-
riables alatoires X et Y qui lui sont associes. Si une valeur y est observe pour Y , alors nous
obtenons la quantit dinformation i(y/X) = H(X) H(X|y) concernant X. Plutt que
1.2. LINFORMATION ET SA MESURE 35
de nous pencher sur une observation particulire y, nous examinons la quantit dinformation
moyenne relative X, gagne en observant Y . Cette valeur est
X X
I(X|Y ) = pY (y)i(y/X) = pY (y)(H(X) H(X|y)) = H(X) H(X|Y ). (1.17)
y y
I(X|Y ) est appele linformation mutuelle entre X et Y . Cest une notion importante en tho-
rie de linformation, mais ce nest pas une information au sens strict du terme. Cest la quantit
dinformation moyenne obtenue sur X en observant Y . Dans le corollaire 1.3 dans la sous-
section 1.1.4, nous avons vu que H(X|Y ) H(X) toujours et quil ny a galit que si
X et Y sont indpendantes. Ceci implique que la proprit suivante est valable.
Thorme 1.7
I(X|Y ) 0, (1.18)
Donc, bien que dans un cas particulier linformation i(y/X) puisse tre ngative, en moyenne
nous attendons une quantit dinformation positive sur X en observant Y .
Parce que cette formule est symtrique dans X et Y , nous concluons que I(X|Y ) = I(Y |X).
Nous attendons autant dinformation sur X en observant Y que sur Y en observant X.
Thorme 1.8
I(X|Y ) = I(Y |X).
Cest un rsultat remarquable. Donc linformation mutuelle entre X et Y est la mme quentre
Y et X : elle est bien mutuelle ! Cet adjectif qui pouvait sembler trange jusquici est mainte-
nant pleinement justifi. On pourra dailleurs librement la noter I(X; Y ) au lieu de la formule
disymtrique I(X|Y ) (ou I(Y |X)).
36 CHAPITRE 1. INCERTITUDE ET INFORMATION
Cette symtrie est galement vidente dans la formule suivante pour linformation mutuelle,
que nous obtenons daprs (1.17), en y introduisant la dfinition des entropies y apparaissant :
X X
I(X|Y ) = pX (x) log pX (x) + pY (y)pX|Y (x, y) log pX|Y (x, y)
x x,y
X pX,Y (x, y)
= pX,Y (x, y)(log log pX (x))
x,y
pY (y)
X pX,Y (x, y)
= pX,Y (x, y) log . (1.19)
x,y
pX (x)pY (y)
Exemple 1.22 (Infrence Statistique) Admettons que X et Y soient des variables alatoires
binaires reprsentant le lancer dune pice de monnaie. La pice peut tre truque ou non.
ceci est reprsent par un systme de choix ou par une variable alatoire Q. Sa distribution
de probabilit est donne par pQ (non truque) = pQ (truque) = 0.5. Nous savons que si la
pice nest pas truque, nous avons
pX,Y |Q (0, 0|non truque) = pX,Y |Q (0, 1|non truque) = pX,Y |Q (1, 0|non truque)
= pX,Y |Q (1, 1|non truque) = 0.25,
pX,Y |Q (0, 0|truque) = 0.81,
pX,Y |Q (0, 1|truque) = pX,Y |Q (1, 0|truque) = 0.09,
pX,Y |Q (1, 1|truque) = 0.01.
1.2. LINFORMATION ET SA MESURE 37
nous obtenons
H(X, Y ) = pX,Y (0, 0) log pX,Y (0, 0) pX,Y (0, 1) log pX,Y (0, 1)
pX,Y (1, 0) log pX,Y (1, 0) pX,Y (1, 1) log pX,Y (1, 1)
= 0.53 log 0.53 0.17 log 0.17 0.17 log 0.17 0.13 log 0.13
1.7373 bit.
Et finalement, avec
X
H(X, Y |non truque) = pX,Y |Q (x, y|non truque) log pX,Y |Q (x, y|non truque)
x,y
= pX,Y |Q (0, 0|non truque) log pX,Y |Q (0, 0|non truque)
pX,Y |Q (0, 1|non truque) log pX,Y |Q (0, 1|non truque)
pX,Y |Q (1, 0|non truque) log pX,Y |Q (1, 0|non truque)
pX,Y |Q (1, 1|non truque) log pX,Y |Q (1, 1|non truque)
= log 4 = 2 bit,
H(X, Y |truque) = 0.81 log 0.81 0.09 log 0.09 0.09 log 0.09 0.01 log 0.01
0.938 bit,
X
H(X, Y |Q) = pQ (q)H(X, Y |q)
q
= pQ (non truque)H(X, Y |non truque)
+pQ (truque)H(X, Y |truque)
0.5 2 + 0.5 0.938
1.469 bit,
38 CHAPITRE 1. INCERTITUDE ET INFORMATION
nous avons
Ceci est linformation moyenne sur la question la pice est-elle truque?, lorsque nous
observons deux lancers de la pice.
Exemple 1.23 (Canal binaire symtrique - Suite) Dans le cas dun canal de communica-
tion, nous devons nous attendre obtenir moins dinformation sur lentre en observant la
sortie quen observant directement lentre. Par exemple, considrons le canal binaire sym-
trique de lexemple 1.14 avec = 0.1, pX (0) = 0.2 et pX (1) = 0.8. Nous avons vu que
pY (0) = 0.26 et pY (1) = 0.74, ainsi
et nous obtenons
Mais H(X) = 0.2 log 0.2 0.8 log 0.8 0.7219 bit > I(X; Y ). Ceci signifie que la perte
dinformation moyenne est H(X) I(X; Y ) 0.7219 0.3578 = 0.3641 bit.
La divergence de Kullback-Leibler est une sorte de distance entre les distributions de probabi-
lit de X et Y , bien que K(PX , PY ) 6= K(PY , PX ). Mais
Thorme 1.9
K(PX , PY ), K(PY , PX ) 0,
et
K(PX , PY ) = K(PY , PX ) = 0
Exemple 1.24 (Canal binaire symtrique - Suite) Revenons au canal binaire symtrique
des exemples 1.14 and 1.23. Ici nous avons
pX (0) pX (1)
K(PX , PY ) = pX (0) log + pX (1) log
pY (0) pY (1)
0.2 0.8
= 0.2 log + 0.8 log
0.26 0.74
0.0143 bit,
pY (0) pY (1)
K(PY , PX ) = pY (0) log + pY (1) log
pX (0) pX (1)
0.26 0.74
= 0.26 log + 0.74 log
0.2 0.8
0.0152 bit.
De plus, PX PY dnote la distribution de probabilit avec les valeurs pX (x) pY (y). Alors
(1.19) montre que
Proprit 1.2
i(x/Y ) = H(Y ) H(Y |x) mesure linformation gagne sur Y en observant X = x. Ainsi,
bien quen gnral K(PY |x , PY ) 6= i(x/Y ), il y a galit dans la moyenne sur x entre cette
information et la divergence de Kullback-Leibler K(PY |x , PY ). Par symtrie nous avons ga-
lement
X X
I(Y ; X) = pY (y)K(PX|y , PX ) = pY (y)i(y/X).
y y
nous obtenons
Do I(X; Y ) = H(X) H(X|Y ) 0.9710 0.9635 0.0074 bit. Etant donn que
X pX,Y (x, y)
K(P, PX PY ) = pX,Y (x, y) log
p(x, y)
(x,y)SS
pX,Y (e1 , e1 ) pX,Y (e1 , e2 )
= pX,Y (e1 , e1 ) log + pX,Y (e1 , e2 ) log
p(e1 , e1 ) p(e1 , e2 )
pX,Y (e2 , e1 ) pX,Y (e2 , e2 )
+pX,Y (e2 , e1 ) log + pX,Y (e2 , e2 ) log
p(e2 , e1 ) p(e2 , e2 )
0.5 0.1 0.3 0.1
= 0.5 log + 0.1 log + 0.3 log + 0.1 log
0.6 0.8 0.6 0.2 0.4 0.8 0.4 0.2
0.0074 bit,
Nous avons dfini linformation mutuelle I(X; Y ) entre deux variables alatoires X et Y
comme tant le gain dinformation moyenne sur une variable, obtenu si lautre est obser-
ve. De faon remarquable, cette valeur est symtrique, I(X; Y ) = I(Y ; X).
Linformation mutuelle est aussi la diffrence entre la somme des entropies individuelles
des deux variables et lentropie relle de la paire. Ceci montre que linformation mutuelle
est toujours non ngative et sannule si et seulement si les deux variables X et Y sont
indpendantes. Elle mesure donc aussi la rduction de lincertitude de la situation relle
42 CHAPITRE 1. INCERTITUDE ET INFORMATION
valuation 15
valuation 16
Si E S est un vnement rare dans une situation de choix probabiliste (S, P ), nous pourrions
tre trs surpris de lobserver. Il serait donc intressant de mesurer le degr dinattendu ou de
surprise dun vnement. Dnotons par s(E) le degr dinattendu de lvnement E. Il semble
raisonnable dy appliquer les caractristiques suivantes :
s(E) devrait dpendre uniquement de la probabilit p(E) de lvnement E, cest--dire
s(E) = f (p(E)).
1.2. LINFORMATION ET SA MESURE 43
s(E) devrait tre une fonction dcroissante de sa probabilit p(E). Plus grande sera la pro-
babilit, plus petit sera linattendu de lvnement; plus petite sera la probabilit, plus grande
sera la surprise.
Si deux vnements E1 et E2 sont indpendants, le degr de surprise de leur venue commune
devrait tre la somme de leurs degrs de surprise individuelle,
Si, en plus, nous exigeons (arbitrairement) que le degr de surprise dun vnement avec la pro-
babilit 1/2 soit gal 1, f (1/2) = 1, le logarithme doit tre pris la base 2. Donc log2 p(E)
est considr comme une mesure du degr de surprise ou dinattendu dun vnement E.
Certains auteurs dfinissent log p(E) comme linformation contenue dans E ou lauto-
information de E. Nous dsapprouvons cette vue : une information est une rponse, peut-
tre partielle, une question prcise, et cest une information dans la mesure o elle change
lincertitude quant la rponse possible cette question. Si nous considrons un vnement
simple E, aucune question spcifique ne lui est associe. Dautre part, le degr dinattendu est
associ un vnement, et non une question spcifie.
Exemple 1.26 (Loterie) Supposons que vous gagniez une loterie o les chances sont de 1
, disons 1015 plus ou moins. Vous serez (agrablement) surpris. Si vous ne gagnez pas, vous
ne serez pas du tout surpris. La quantit dinformation relative la question vais-je gagner
ou non? est la mme que si vous dcouvrez que vous navez pas gagn. La quantit de la
mme information (soit le nombre tir la loterie) relative la question quel nombre est
tir est bien plus grande. Dautre part, le degr de surprise associ au nombre tir ne dpend
pas de la question pose.
Exemple 1.27 (Swiss-Lotto) Nous jouons au Swiss-Lotto, nous devons donc choisir 6
nombres parmi 45. Il y a exactement
45 45!
= = 8145060
6 6! (45 6)!
possibilits, donc le degr dinattendu s(gain) = log 8145060 22.9575. Admettons que
X dnote la variable alatoire selon laquelle nous gagnons ou non. Ainsi
1
p(X = gagnant) = ,
8145060
1
p(X = perdant) = 1 ,
8145060
par consquent
1 1 1 1
H(X) = log 1 log 1
8145060 8145060 8145060 8145060
2.9957 106 bit.
Lincertitude quant savoir si nous gagnerons ou non est trs faible, parce quil est quasiment
sr que nous ne gagnerons pas.
44 CHAPITRE 1. INCERTITUDE ET INFORMATION
Pour rendre plus vidente la diffrence entre surprise et information, considrons une situation
de choix probabiliste dans laquelle les choix possibles S sont seulement E ou non E (soit
E c ) avec les probabilits p et 1 p pour les deux cas possibles. Lincertitude associe cette
situation est
e
h(p) = p log p (1 p) log(1 p).
H(X) = pX (x1 ) log pX (x1 ) pX (x2 ) log pX (x2 ) pX (xm ) log pX (xm )
dune variable alatoire X, nous voyons que cest la valeur moyenne (esprence) de la surprise
log pX (xi ) des vnements X = xi . Donc la surprise, lentropie et linformation sont inti-
mement lies, mais sont des concepts diffrents. La quantit dinformation (de la valeur dune
variable alatoire observe) est le degr de surprise moyen des vnements possibles.
Il y a mme une autre relation. Admettons que X et Y soient deux variables alatoires associes
la situation de choix probabiliste (S1 S2 , P ). Comment linattendu de lvnement X = x
change, si Y = y est observe ? A lorigine, le degr de surprise de lvnement {X = x} est
log pX (x). Une fois Y = y observe, il devient
pX,Y (x, y)
log pX|y (x|y) = log .
pY (y)
Donc le changement de surprise est
pX,Y (x, y) pX,Y (x, y)
log pX (x) + log = log .
pY (y) pX (x)pY (y)
1.2. LINFORMATION ET SA MESURE 45
est le changement de surprise moyenne pour une valeur X tant donn quune valeur de Y est
observe. Ou, en dautres termes, la quantit moyenne dinformation concernant X, gagne en
observant Y , est gale au changement moyen dinattendu de lobservation de X tant donn
que Y est observe, ceci constitue un autre lien entre la quantit dinformation et le degr de
surprise.
Nous avons dfini le degr dinattendu ou de surprise dun vnement comme le ngatif
du logarithme de sa probabilit. Il augmente si la probabilit de lvnement diminue; est
nul pour une probabilit de un et infini pour une probabilit de zro.
La surprise ne doit pas tre confondue avec linformation. La premire est simplement
associe un vnement tandis que la seconde est mesure par rapport une question. Ce
qui signifie quun vnement possde toujours la mme surprise. Cependant, la quantit
dinformation quil porte dpend de la question considre.
Surprise et information sont nanmoins lies : lentropie dune variable, donc linforma-
tion, est gale la valeur moyenne de la surprise des valeurs possibles de la variable
alatoire. Et linformation mutuelle, cest--dire linformation moyenne concernant une
variable tant donn que lautre est observe, est gale au changement moyen de surprise
dans la premire variable, tant donne lobservation de la seconde.
valuation 17
valuation 18
R SUM DU CHAPITRE 1
Nous avons vu que lentropie est employe pour mesurer lincertitude dans une situation de
choix probabiliste ou dans une variable alatoire. Lentropie est lie au jeu des questions-
rponses (binaires) dans le sens quil indique le nombre attendu de questions poser pour
46 CHAPITRE 1. INCERTITUDE ET INFORMATION
Exercices du module C1
par J. KOHLAS
2.1 Entropie
Exercice 2.1.1:
Exercice 2.1.2:
Exercice 2.1.3:
47
48 CHAPITRE 2. EXERCICES DU MODULE C1
Exercice 2.1.4:
Montrez que
H(p1 , p2 , . . . , pn , q1 , q2 , . . . , qm )
p1 pn q1 qm
= H(p, q) + pH ,..., + qH ,..., ,
p p q q
si p = p1 + p2 + + pn , q = q1 + q2 + + qm et p + q = 1.
Exercice 2.1.5:
Montrez que
1. H(X|X) = 0;
2. H(X|Y ) = H(X) si, et seulement si, X et Y sont indpendantes.
Exercice 2.1.6:
Calculez
1. H(X), H(Y ), H(Z),
2. H(X, Y ), H(X|Y ).
Exercice 2.1.7:
Soient les variables alatoires Y et Z comme dans lexercice prcdent. Admettons que Q soit
la variable alatoire Q = Y + Z. Calculez
1. H(Q),
2. H(Q|Y = 1),
3. H(Q|Y ).
2.2. LA MESURE DE LINFORMATION 49
Exercice 2.1.8:
Admettons que X et Y soient des variables alatoires avec mme ensemble de choix et
X pX (x)
K(PX , PY ) = pX (x) log .
pY (x)
xX
Montrez que
o |X| est le nombre de valeurs prises par X et U la distribution de probabilit uniforme sur
ces valeurs.
Exercice 2.2.1:
Admettons que X soit une variable alatoire avec pX (1) = 0.01, pX (2) = 0.02, pX (3) =
0.07, pX (k) = 0.1 pour k = 4, . . . , 12 et E1 , . . . , E4 quatre vnements donns par
Calculez:
1. H(XEk ) pour k = 1, 2, 3, 4
2. i(Ek /X) pour k = 1, 2, 3, 4
3. i(Ek+1 /XEk ) pour k = 1, 2, 3
Exercice 2.2.2:
Exercice 2.2.3:
Admettons que X soit la variable alatoire associe au systme de choix (S, P ) avec S =
{1, 2, 3} et P = {0.1, 0.6, 0.3} et deux vnements E2 E1 donns par E1 = {1, 3} et E2 =
{1}. Caclculez H(X), i(E1 /X), i(E2 , X) et vrifiez que i(E2 /X) = i(E1 /X)+i(E2 /XE1 ).
Exercice 2.2.4:
Y=
pX,Y 1 2 3 4
1 1 1 1
1 8 16 32 32
1 1 1 1
2 16 8 32 32
1 1 1 1
X= 3 16 16 16 16
1
4 4 0 0 0
Calculez
1. pX (x), pY (y),
2. H(X), H(Y ),
3. H(X|Y ), H(Y |X), H(X, Y ),
4. I(X|Y ).
Exercice 2.2.5:
Montrez que
Exercice 2.2.6:
1. Supposons que vous ayez un choix de 5 romans ou 6 livres de science fiction lire.
Si vous ne devez en prendre quun, combien de choix diffrents pouvez-vous faire?
Calculez le degr dincertitude de votre choix. Si toutefois vous devez prendre 1 roman et
1 livre de science fiction, combien de slections diffrentes pouvez-vous faire? calculez
le degr dincertitude de votre choix.
2. Vous devez choisir, entre 4 personnes, qui jouera en premire, seconde et troisime base
dans une quipe de baseball. Quel est le degr dincertitude de votre choix?
2.2. LA MESURE DE LINFORMATION 51
Exercice 2.2.7:
Il tait une fois une princesse qui vivait sur une le, dans limmense chteau de son pre. Ce
dernier, un mchant vieillard, enfermait sa fille dans une prison. Un beau jour, un chevalier ar-
riva sur lle. Il entendit parler de la princesse prisonnire et dcida de la librer. Il entra dans le
chteau et constata quil contenait trois prisons diffrentes. Aprs rflexion, il en choisit une.
Subitement, juste avant quil nouvre la porte, un oracle apparut et lui dit: Cher chevalier,
savez-vous que si vous nouvrez pas la bonne porte, vous et la princesse mourrez ? Malheureu-
sement, je ne peux vous dire dans laquelle des prisons se trouve la princesse. Mais je peux tout
de mme vous aider. Choisissez une prison. Il est en mon pouvoir de vous dire dans laquelle
des deux prisons restantes la princesse ne se trouve srement pas ! Ensuite, vous serez libre de
choisir de nouveau.
Les variables alatoires suivantes sont introduites :
X: position de la princesse; X {1, 2, 3}
Y : premier choix du chevalier; Y {1, 2, 3}
Z: indication de loracle; Z {1, 2, 3}
W = X = Y : le premier choix tait correct; W {vrai, faux}
Hypothses:
X et Y sont indpendantes
W et Z sont indpendantes
X et Y ont une distribution de probabilit uniforme
pZ|w (z, vrai) = 0.5
1. Loracle vous aide-t-il? Est-il ingnieux de changer le premier choix?
2. Calculez I(X|Z), I(Y |Z) et I(W |Z).
par F. BAVAUD
Introduction
Exemple 3.1 Soit Xt la temprature locale du t-ime jour midi. La squence des Xt suc-
cessifs constitue un processus stochastique qui peut tre modlis par des modles plus ou
moins sophistiqus : par exemple, la distribution de chaque Xt est indpendante de chaque
autre Xt , ou dpendante de Xt1 uniquement, etc. Lobservation dune srie numrique de
valeurs . . . x2 x1 x0 x1 x2 . . . constitue une ralisation du processus stochastique.
53
54 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
soient dfinies, pour tout l et n avec l n. Notons que la squence xnl contient n l + 1
lments. Pour tre cohrente, la mesure de probabilit doit sommer lunit :
X
p(xnl ) = 1
xn
l
nl+1
Aussi, la probabilit dune sous-squence contenue dans une squence doit sobtenir en som-
mant sur toutes les variables napparaissant pas dans la sous-squence, cest--dire, par exemple
X
p(x1 x2 x3 x4 x5 ) = p(x1 x4 )
(x2 x3 x5 ) 3
1 k 1 k
Notez que si le processus est stationnaire, la suite k H(X1 ) est dcroissante : k H(X1 )
1 k1
k1 H(X1 ).
cest--dire :
(k 1)H(X1k ) kH(X1k1 )
(a)
hk (X) := H(Xk |X1k1 ) = H(X1k ) H(X1k1 ) h (X) := lim hk (X) (3.2)
k
o (a) dcoule de H(Y |Z) = H(Y, Z)H(Z). La grandeur hc (X) dans 3.1 mesure lincerti-
tude par variable dans une squence infinie, et la grandeur h (X) dans 3.2 mesure lentropie
rsiduelle sur la dernire variable lorsque le pass est entirement connu. Il savre que ces
deux grandeurs concident pour des processus stationnaires:
Exemple 3.2 Pour un processus i.i.d., H(X1k ) = k H(X), o H(X) est lentropie pour une
seule variable. Par consquent, h (X) = limk k1 kH(X) = H(X). Le comportement
de hk (X) dans ce processus et dans dautres est reprsent en figure 3.10.
56 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
D MONSTRATION
(a) (b)
h (X) = lim H(Xk |X1k1 ) lim H(Xk ) log m
k k
o lgalit dans (a) a lieu sous indpendance, et lgalit dans (b) a lieu sous uniformit.
Le taux dentropie h (X) mesure lincertitude conditionnelle associe chaque rsultat dun
processus, connaissant tout son pass. Pour un m fix, cette incertitude est maximale lorsque
la prvisibilit du rsultat est minimale, cest--dire lorsque le processus est maximalement
alatoire. Le thorme 3.2 dit quun processus maximalement alatoire doit tre uniforme et
indpendant, tout comme un d non pip avec m cts qui doit tre non biais (= uniforme) et
sans mmoire (= rsultats successifs indpendants).
Plus gnralement, la dcomposition exacte ci-dessous est valable:
Exemple 3.3 Supposons que {Yi } reprsente une squence de variables numriques i.i.d.
2 1 Pn
avec pour moyenne et pour variance finie . La variable Sn := n t=1 Yt converge donc
en probabilit vers . Cela entrane que pour n suffisamment grand, la probabilit que lon
observe une dviation Sn plus grande que toute grandeur finie > 0 devient ngligeable.
De mme, (voir thorme 3.5 (a)), et en employant dornavant, par souci de simplicit, des
logarithmes naturels, le thorme 3.4 nous dit que
o (x E) vaut 1 pour tout x dans E et 0 sinon. Le thorme 3.4 peut alors tre rcrit
comme suit :
Ceci signifie que pour n de plus en plus grand, il devient de plus en plus certain quen slec-
tionnant au hasard un n-gramme X1n qui savre tre xn1 , on dcouvre que p(xn1 ) est trs proche
de exp(n h ) : la plupart des squences empiriques observes xn1 ont une probabilit de
plus en plus proche de exp(nh ): pour un grand n, pratiquement tous les vnements sont
presque galement surprenants . Le thorme suivant rend cet nonc prcis et rigoureux:
Thorme 3.5
1
1. xn1 Tn () ssi | n ln p(X1n ) h (X)| .
2. P (Tn ()) > 1 pour n suffisamment grand.
3. |Tn ()| exp(n (h (X) + )).
4. |Tn ()| > (1 ) exp(n (h (X) )) pour n suffisamment grand.
D MONSTRATION
1. dcoule de la dfinition 3.4.
2. lquation 3.10 a pour consquence de rendre P (Tn ()) arbitrairement proche de 1
pour n suffisamment grand.
3.
X X X
1= p(xn1 ) p(xn1 ) exp[n(h + )] =
xn
1
n xn
1 Tn () xn
1 Tn ()
4.
X
1 < P (Tn ()) exp(n(h )) = exp(n(h )) |Tn ()|
xn
1 Tn ()
h (X)
R(X) := 1 (3.11)
log m
Evidemment, la mme unit logarithmique (e.g. bits ou nats) est employe dans log m et dans
la dfinition de h , ce qui rend R indpendant du choix dunits. Il rsulte de 0 h log m
(thorme 3.2) que 0 R 1. Par construction, h = (1 R) log m et exp(nh ) =
m(1R)n . Ainsi, parmi toutes les mn squences de n , un total de |Tn ()| = m(1R)n dentre
elles sont typiques ; chacune de ces squences typiques a la probabilit m (1R)n 1/|Tn ()|.
En particulier :
un processus maximalement alatoire (cest--dire indpendant et uniforme) est caractris
par h = log m ou, ce qui est quivalent, par R = 0. Le nombre de squences typiques est
gal mn , le nombre total de squences; ce qui signifie que chaque squence est typique et
possde la probabilit mn .
un processus minimalement alatoire est caractris par h = 0, ou, ce qui est quivalent,
par R = 1. Le processus est finalement dterministe : tant donn une portion de pass
suffisamment grande, . . . , xl , xl+1 , . . . , xn , la valeur xn+1 de ltat suivant Xn+1 peut tre
prdite avec certitude. Le nombre de squences typiques est gal m0 = 1: cest--dire
quasymptotiquement, il y a une seule et unique squence typique avec la probabilit 1,
savoir la seule squence produite dans un processus dterministe.
entre ces deux cas extrmes, un processus stochastique gnrique obissant 0 < h <
log m satisfait 0 < R < 1 : le processus est partiellement redondant et partiellement impr-
visible. La proportion de squences typiques est
m(1R)n
= mR n
mn
et tend vers zro pour n .
Exemple 3.4 La mtaphore suivante, que lon doit Hillman (1996), peut aider rendre le
concept dAEP intuitif (voir figure 3.1). Une plage dun volume total de mn reprsente la
totalit des squences. La plus grande partie du volume est constitue de exp(nh ) galets,
chacun dentre eux ayant un volume de exp(nh ). La plage contient aussi environ mn
grains de sable, mais ils sont si petits que leur contribution totale au volume de la plage est
de lordre de << 1.
Ainsi, parmi les mn squences possibles, seules m(1R) n peuvent effectivement se produire,
toutes avec la mme probabilit (pour n grand). Ce qui signifie que la quantit moyenne totale
60 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
F IG . 3.1 Le thorme AEP : pour 0 < h < log m et n grand, presque toutes les squences
de n sont non-typiques (grains de sable) et leur contribution au volume total est ngligeable.
Par contraste, le nombre relatif de squences typiques (galets) est ngligeable, mais leur vo-
lume reprsente la quasi-totalit du volume total.
dinformation n h porte par une squence de longueur n avec un taux dentropie h sur un
alphabet m peut, de faon quivalente, tre obtenue
A) par lensemble de squences de longueur effective neff = (1R)n distribue quiproba-
blement sur m catgories; le taux dentropie de ce nouveau processus atteint maintenant
son maximum log m.
B) par lensemble de squences de longueur n distribues quiprobablement sur m(1R)
catgories, avec un taux dentropie correspondant de log m(1R) = (1 R) log m.
Modifier le processus original ne modifie pas linformation totale, qui reste gale nh :
Cependant, la redondance du processus modifi est prsent de zro dans les deux cas: lap-
plication de 3.11 produit
log m (1 R) log m
RA = 1 = 0 (A) RB = 1 = 0 (B)
log m (1 R) log m
Les faons prcises et dtailles dont les squences initiales peuvent tre compresses (du point
de vue de leurs longueurs (A) ou de la taille de leur alphabet (B)) constitue une partie de la
thorie du codage (voir module C2).
Exemple 3.5 Lentropie dun texte reprsentatif en anglais simplifi avec m = 27 cat-
gories (pas de ponctuation ni de distinction minuscule/majuscule, soit 26 lettres un caractre
espace ) a t estime environ h = 1.3 bits par lettre, correspondant une redon-
dance denviron R = 1 1.3/ log2 27 = 0.73 (Shannon 1950, cit dans Cover and Thomas
1991). Ce qui signifie quun roman de 300 pages pourrait tout fait tre rduit un roman
de 300(1 0.73) = 81 pages avec le mme alphabet, ou un roman de mme longueur avec
seulement 27(10.73) = 2.43 (cest--dire au moins 3) symboles. Laspect dun chantillon
de ce texte pourrait ressembler ceci
MUUMMXUUMMMMUMXXUMXMMXMMUXMUMXMMMMXXXUUXMXMUUXMUXMUXMU
UMUXUMUUUXMMUUUMXMMMXXXXMUMXXMMXXMUMXUMUUXMUUXMMMXMUXX
3.2. LE THORME AEP 61
UXXXUXXUUMMUXUXMUUMXUUXMUXXUXUMUUUXXXMMXXUMXUUUMMUXMXM
La redondance de ce nouveau texte est maintenant de zro, ce qui signifie que la plus petite
modification modifierait le contenu de louvrage. Par contraste, la redondance leve (R =
0.73) de langlais standard permet de corriger et de rcuprer un texte altr, qui contiendrait
par exemple des fautes dorthographe.
Note : lexemple ci-dessus prsuppose que langlais crit est produit par un processus sto-
chastique stationnaire, ce qui est bien entendu discutable.
valuation 19
Exemple 3.6 Des prvisions mtorologiques largement simplifies placent chaque journe
dans lune de ces trois catgories: belle (N), pluvieuse (R) ou neigeuse (S). Par
exemple, NNRNSRN constitue une semaine mtorologique possible. Il y a un maximum
de 3n squences diffrentes de n jours; chacune de ces squences serait quiprobable (avec la
probabilit 3n ) si le temps suivait effectivement un processus parfaitement alatoire (avec
un taux dentropie maximum de h = log 3, comme lindique le thorme 3.2). Cependant,
le temps rel nest certainement pas un processus totalement alatoire, cest--dire que sa
redondance R est strictement positive:
si R = 0.5 par exemple, alors, parmi toutes les 3n diffrentes squences posssibles de n
jours, 3(10.5) n = 1.73n sont typiques.
si R = 0.75, seules 3(10.75) n = 1.32n squences de n jours sont typiques.
si R = 1, seule 3(11) n = 30 = 1 squence est typique, soit la seule squence gnre par
le processus en loccurrence dterministe.
Dans cet exemple, le nombre effectif de types de temps possibles pour le jour suivant (tel
quil est mesur par lincertitude conditionnelle du jour prcdent) passe de 3 1.73, 1.32 et
mme 1 puisque R augmente de 0 1.
62 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
Dfinition 3.6 Une chane de Markov de premier ordre, ou, plus simplement, une
chane de Markov, est un processus stochastique discret dont la mmoire est limite
au dernier tat, cest--dire:
Exemple 3.7 Considrons un processus deux tapes avec un espace des tats = {a, b}.
Lorsque le systme est dans ltat a, il reste dans le mme tat avec la probabilit 0.7 (et se
dplace vers ltat b avec la probabilit 0.3). Lorsque le systme est dans ltat b, il reste dans
le mme tat avec la probabilit 0.6 (et se dplace vers ltat a avec la probabilit 0.4). Les
probabilits conditionnelles sont p(a|a) = 0.7, p(b|a) = 0.3, p(b|b) = 0.6 et p(a|b) = 0.4.
En numrotant a en 1 et b en 2, les probabilits sexpriment de faon quivalente comme
p11 = 0.7, p12 = 0.3, p21 = 0.4 et p22 = 0.6, ou, sous forme matricielle,
0.7 0.3
P = (3.12)
0.4 0.6
Considrons un processus gouvern par une chane de Markov qui est dans un tat j au temps
t. Par dfinition, sa probabilit dtre dans ltat k au temps t + 1 est pjk . Mais quen est-il de
sa probabilit dtre dans ltat k au temps t + 2 ?
3.3. CHANES DE MARKOV DE PREMIER ORDRE 63
La figure 3.2 montre que la probabilit en question sobtient en sommant sur tous les tats
intermdiaires possibles l au temps t + 1 (ici m = 3). Cest--dire
m
X
(2)
pjk := P (Xt+2 = k |Xt = j ) = pjl plk (3.13)
l=1
(2)
En dnotant respectivement P := (pjk ) et P (2) := (pjk ) les matrices de transition mm une
tape et deux tapes, lquation 3.13 montre que lon obtient la dernire daprs la premire
par une simple multiplication matricielle, cest--dire P (2) = P 2 := P P . Le mcanisme se
gnralise pour des dcalages dordres suprieurs et nous avons le rsultat
Thorme 3.6 Si la probabilit que le systme passe (en une fois) de ltat j ltat
k est donne par la matrice de transition P = (pjk ), alors la matrice de transition
(n)
P (n) n tapes dont les composants pjk := P (Xt+n = k |Xt = j ) donnent la
probabilit datteindre ltat k au temps t + n tant donn que le systme tait dans
ltat j au temps t sobtient comme
P (n) = P
| P {zP P} = P
n
n fois
Exemple 3.8 (Exemple 3.7, suite:) Les matrices de transition deux et trois tapes donnant
les probabilits datteindre ltat k partir de ltat j dans n = 2 et n = 3 tapes, sont P (2)
et P (3) avec
0.61 0.39 0.583 0.417
P (2) := P P = P (3) := P P P =
0.52 0.48 0.556 0.444
Note : la proprit selon laquelle chaque ligne de P somme 1 est automatiquement hrite
par P (2) et P (3) .
Le concept de communication entre les tats dfinit une relation dquivalence entre len-
semble des m tats impliqus dans une chane de Markov finie:
64 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
F IG . 3.3 Ltat a satteint lui-mme et atteint les tats b, c, d et e. Ltat b satteint lui-mme
et atteint les tats c, d et e. Ltat c satteint lui-mme et atteint les tats d et e. Ltat d satteint
lui-mme et atteint les tats c et e, etc. Les classes dquivalence de communication sont {a},
{b}, {c, d, e}, {f }, {g} et {h}.
Dfinition 3.7
ltat j atteint ltat k, ce que lon note j k, sil y a un chemin jl1 l2 ln1 k de
longueur n 0 tel que pjl1 pl1 l2 pln1 k > 0, cest--dire sil y a un n 0 tel que
(n) (0)
pjk > 0. Comme pjj = 1 > 0, chaque tat satteint lui-mme par construction:
j j pour tout j.
les tats j et k commmuniquent, ce que lon note j k, si et seulement si j k
et k j.
Exemple 3.9 Considrons une chane de Markov avec un squelette donn en figure 3.3. Les
flches dnotent latteignabilit dans une tape. Ltat a satteint lui-mme et atteint les tats
b, c, d et e. Cependant, a ne peut tre atteint qu partir de lui-mme. Ainsi, la classe dqui-
valence de a (relativement la relation ) contient a lui-mme. Si lon pousse le rai-
sonnement plus loin, on dcouvre que les classes dquivalence sont {a}, {b}, {c, d, e}, {f },
{g} et {h}.
On peut montrer que les tats appartenant la mme classe dquivalence sont soit tous rcur-
rents, soit tous transients, ce qui justifie la dfinition suivante :
3.3. CHANES DE MARKOV DE PREMIER ORDRE 65
F IG . 3.4 Exemple 3.10 : Les classes dquivalence de communication sont {a}, {e} (classes
rcurrentes) et {b, c, d} (classe transiente). Les tats a et e sont absorbants.
Dfinition 3.9 Les classes rcurrentes sont des classes dquivalence dont tous les
lments sont rcurrents. Les classes transientes sont des classes dquivalence dont
tous les lments sont transients.
Dans lexemple 3.9, les classes rcurrentes sont {c, d, e} et {h}. Toutes les autres classes sont
transientes.
Exemple 3.10 Considrons la matrice de transition de Markov ci-dessous
1 0 0 0 0
0.5 0 0.5 0 0
P = 0 0.5 0 0.5 0
(3.14)
0 0 0.5 0 0.5
0 0 0 0 1
dont le squelette est reprsent en figure 3.4. Il y a deux classes rcurrentes, savoir {a} et
{e}, et une classe transiente, savoir {b, c, d}. Les tats rcurrents qui sont les seuls de leur
classe, comme a et e, ne peuvent pas tre quitts une fois atteints. On dit que de tels tats
sont absorbants. Une condition ncessaire et suffisante pour quun tat j soit absorbant est
pjj = 1, comme cela a t dmontr dans les ranges 1 et 5 de 3.14.
(n)
Il peut arriver que pjj = 0 pour tout n ne soit pas divisible par d, et que d soit le plus grand
entier ayant cette proprit. Ceci signifie que si la chane est dans un tat j un temps t, elle
ne peut quy retourner aux temps de la forme t + md o m est un entier. On dit alors que ltat
(n)
j est de la priode d. On dit quun tat avec la priode d = 1 est apriodique. Si pjj = 0 pour
tout n 0, ltat j a une priode infinie d = . On peut montrer que les tats appartenant
la mme classe dquivalence ont tous la mme priode: par exemple, en figure 3.4, les tats a
et e sont apriodiques, tandis que b, c et d sont de la priode d = 2.
Exemple 3.11 Un arbre est un graphe ne contenant pas de circuit. La figure 3.5 gauche
reprsente une chane de Markov sur un arbre symtrique: il y a une seule classe dqui-
valence rcurrente {a, b, c, d, e, f } dont tous les tats ont la priode d = 2. En ajoutant un
seul circuit tel quen figure 3.5 milieu ou droite, on conserve la classe dquivalence unique
{a, b, c, d, e, f }, mais tous les tats sont maintenant apriodiques (d = 1).
F IG . 3.5 Example 3.11. Gauche : le squelette sous-jacent est un arbre symtrique, et tous les
tats sont de la priode d = 2. Ladjout dun seul circuit (milieu ou droite) rend tous les tats
apriodiques (d = 1).
0.19967 0.30232 0.28125 0.19724
0.20108 0.34353 0.30090 0.13496
P (25) =
0.18813
0.30168 0.38828 0.11189
0.19752 0.20453 0.16520 0.40992
0.2 0.3 0.3 0.2 1 2 3 4
0.2 0.3 0.3
0.2 1 2 3 4
P () =
0.2 =
0.3 0.3 0.2 1 2 3 4
0.2 0.3 0.3 0.2 1 2 3 4
et
Pla distribution dquilibre correspondante est = (0.2, 0.3, 0.3, 0.2). On peut vrifier que
m
j=1 j pjk = k est valable pour chaque k: en effet,
o (a) dcoule de la dfinition 3.6, (b) dcoule de la dfinition H(Xn |Xn1 ) impliquant la
(n1)
quantit pj , la probabilit que le systme soit dans ltat j au temps n 1, et (c) dcoule
(n1)
du thorme 3.7, impliquant la quantit limn pj = j .
68 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
Exemple 3.13 On considre la chane de Markov (dordre 1) sur 2 tats = {a, b}, avec
p(a|a) = 2/3, p(b|a) = 1/3, p(b|b) = 2/3 et p(a|b) = 1/3 (figure 3.6). Par symtrie, la
distribution stationnaire correspondante est (a) = (b) = 0.5. Compte tenu de 3.18, son
taux dentropie est
Exemple 3.14 On considre la table de mobilit N = (njk ), donnant leffectif crois pro-
fession du pre (lignes j = 1, . . . , 5) par premier emploi plein temps du fils (colonnes
k = 1, . . . , 5) pour 19912 hommes amricains en 1973 dans cinq catgories: a = non-
manuel suprieur ; b = non-manuel infrieur ; c = manuel suprieur ; d = manuel
infrieur ; e = travail agricole (source: Hout 1986, cit dans Mirkin 1996).
a b c d e total
a 1 414 521 302 643
40 2 920
b 724 524 254 703 48 2 253
N =
c 798 648 856 1 676 108 4 086
(3.19)
d 756 914 771
3 325 237 6 003
e 409 357 441 1 611 1 832 4 650
total 4 101 2 964 2 624 7 958 2 265 19 912
En divisant chaque cellule njk par le total de ses ranges nj on obtient ume matrice de
transition P = (pjk ) avec pjk := njk /nj donnant les probabilits conditionnelles quun
individu (dont le pre possde la profession j) ait un premier mtier k:
a b c d e
a 0.48 0.18 0.10 0.22 0.01
b 0.32 0.23 0.11 0.31 0.02
P = (3.20)
c 0.20 0.16 0.21 0.41 0.03
d 0.12 0.15 0.13 0.55 0.04
e 0.09 0.08 0.09 0.35 0.39
Le mtier du fils est donc le plus incertain lorsque le pre est manuel suprieur (2.02 pour
Xn1 = c) et le moins incertain lorsque le pre est manuel infrieur (1.83 pour Xn1 = d).
En moyenne, lincertitude est
5
X
j H(Xn |Xn1 = j) = 0.26 1.85 + 0.17 2.01 + 0.13 2.02 +
j=1
+0.40 1.83 + 0.04 1.95 = 1.90 = h
ce qui nest rien dautre que le taux dentropie du processus h en raison de 3.18: comme
prvu et par construction, le taux dentropie dun processus de Markov mesure lincertitude
conditionnelle moyenne sur ltat suivant, connaissant ltat
P prcdent. Par contraste, lincer-
titude totale (non conditionnelle) correspondante est j j log j = 2.05 bits, ce qui est
plus grand que h = 1.90 mais plus petit que lincertitude uniforme log2 5 = 2.32 bits.
valuation 20
Vrai ou faux?
1. le taux dentropie h (X) dune chane de Markov de premier ordre ne peut jamais
excder son entropie totale (non conditionnelle) H(X) Rponses possibles: vrai - faux
2. le taux dentropie h (X) dune chane de Markov de premier ordre ne peut jamais
galer son entropie totale (non conditionnelle) H(X) Rponses possibles: vrai - faux
3. le taux dentropie h (X) dune chane de Markov de premier ordre nest pas dfini si
la chane nest pas rgulire Rponses possibles : vrai - faux
4. le taux dentropie h (X) associ une chane avec m catgories ne peut jamais excder
log m. Rponses possibles : vrai - faux
3.3.5 Irrversibilit
(n) (n)
Comme limn pjk = k daprs le thorme 3.7, la formule 3.21 montre que limn fk =
Pm (0)
j=1 fj k = k . Ce qui signifie quindpendamment du profil de la distribution initiale
70 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
f (0) , la distribution long terme f (n) converge long terme n vers la distribution sta-
tionnaire . On parle dquilibre si f (0) = . En rsum, un profil gnral non-quilibr
f (0) 6= Pm volue vers le profil dquilibre f () = o il reste alors inchang, puisque
k = j=1 j pjk en raison de 3.16.
La dynamique de Markov est donc irrversible : toute distribution initiale f (0) volue toujours
vers la (seule) distribution stationnaire , et jamais dans lautre sens; aussi, la dissemblance
entre deux distributions, quelles quelles soient, disparat durant lvolution, comme le montre
le thorme suivant:
Thorme 3.9 Soient f (n) et g (n) deux distributions dont lvolution 3.21 est gou-
verne par le mme processus de Markov rgulier P = (pjk ). Lvolution rend les
deux distributions de plus en plus similaires (et de plus en plus similaires la distri-
bution stationnaire ) au sens o
Cas particuliers:
K(f (n+1) ||) K(f (n) ||) (obtenu avec g (n) := , ce qui implique g (n+1) = ): lentropie
relative de f (n) relativement diminue avec n: de nouveau, limn f (n) = .
K(||g (n+1) ) K(||g (n) ) (obtenu avec f (n) := , ce qui implique f (n+1) = ): lentropie
relative de relativement g (n) diminue avec n.
K(f (n+1) ||f (n) ) K(f (n) ||f (n1) ) (obtenu avec g (n) := f (n1) , ce qui implique g (n+1) =
f (n) ): la dissemblance entre la distribution actuelle et la prcdente (telle que mesure
par K(f (n) ||f (n1) )) diminue avec n.
Exemple 3.15 (suite de lexemple 3.13) Supposons que la distribution initiale f (0) soit
f (0) (a) = 0.9 et f (0) (b) = 0.1. En employant 3.21 et le thorme 3.6, les distributions
successives f (n) au temps t = n et leur divergence K(f (n) ||) (en nats) relativement la
distribution stationnaire = f () (avec (a) = (b) = 0.5) sont, dans lordre,
valuation 21
1. une fois quil a quitt un tat, le systme y retournera avec la probabilit un si ltat est
a) transient; b) absorbant; c) rcurrent; d) apriodique.
2. la matrice didentit I est la matrice de transition dune chane de Markov dont tous les
tats sont a) transients; b) absorbants; c) irrversibles; d) apriodiques.
3. soit P une matrice de transition deux-par-deux. Le nombre minimal de composants non-
zro de P assurant la rgularit de la chane de Markov est a) 1; b) 2; c) 3; d) 4.
4. supposons que P 5 = I, o P soit une matrice de transition de Markov finie et I la
matrice didentit. Alors P est a) indtermine; b) rgulire; c) I; d) apriodique.
Dfinition 3.11 Une chane de Markov dordre r > 0 est un processus stochastique
discret dont la mmoire est limite aux r tats passs, soit:
Une chane de Markov dordre zro est donc clairement un processus indpendant.
Tous les processus de Markov considrs ici sont stationnaires, cest--dire que leurs
n1
probabilits de transition p(xn |xnr ) sont indpendantes du temps. Ces dernires
sont gnralement dnotes ici par p(|) o est ltat actuel et r spci-
tats immdiatement antrieurs. Par construction, p(|) := p()/p()
fie les rP
0 avec p(|) = 1.
Une chane de Markov de r-ime ordre sur dfinie par les transitions p(|) o et
r peut formellement tre considre comme une chane de Markov de premier ordre sur
r avec une matrice de transition de probabilit (mr mr ) Q = (q ) (o = 1r r et
= 1r r ) donne par
F IG . 3.7 Une chane de Markov dordre r (ici k = 4) sur est spcifie par lensemble de
probabilits conditionnelles de la forme p(4 |1 2 3 4 ). La mme chane peut tre consi-
dre comme une chane de Markov de premier ordre q sur r o = (1 2 3 4 ) et
= (1 2 3 4 ); comme exprim par 3.23, la matrice de transition q est zro, moins que
1 = 2 , 2 = 3 et 3 = 4 .
Rappel : en gnral, lentropie conditionnelle hk (X) := H(Xk |X1k1 ) est dcroissante dans
k. Dautre part, 3.25 montre que le taux dentropie h (X) concide avec hr+1 (X). En conclu-
sion :
Thorme 3.10 Pour une chane de Markov de r-ime ordre, h (X) = hr+1 (X).
Cest--dire
h1 (X) h2 (X) hr (X) hr+1 (X) = hr+2 (X) = hr+3 (X) = . . . = h (X)
(3.26)
Le comportement 3.26 de hk (X) est illustr en figure 3.10 b) pour r = 1 et en figure 3.10 c)
pour r = 3.
Cas particuliers :
r = 1: le taux dentropie devient
X X X X
h = () p(|) log p(|) = j pjk log pjk
j k
F IG . 3.8 Une chane de Markov de second ordre p(|) sur = {a, b} (exemple 3.16) crite
comme une chane de premier ordre q sur les bigrammes = 1 2 2 et = 1 2 2 .
Les transitions sont interdites si 2 6= 1 : par exemple, la transition de = ab = aa est
impossible.
Jusqu prsent, nous avons considr que les divers modles qui nous intressaient (station-
naire, Markov dordre r, Markov dordre 1, etc.) taient donns. Trs souvent, cependant, nous
ne disposons que dune ralisation empirique dun processus, cest--dire que seules les don-
nes D sont connues, et que les modles M doivent tre infrs partir des donnes D. Ce
74 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
P
F IG . 3.9 Lidentit l n() = n() a lieu si et seulement si il ny a pas doccurrence
dun symbole de dans les l derniers symboles de xn1 .
type de situation est paradigmatique en statistique infrentielle (voir module S1). Par souci de
clart, les grandeurs empiriques (respectivement thoriques) seront dornavant indexes par la
lettre D (respectivement M ).
Aussi avons-nous
X
n() n()
l
o lgalit est atteinte ssi les donnes xn1 ne contiennent pas doccurences dlments de
plus proches que l endroits du bord de droite (voir figure 3.9).
La distribution empirique et la distribution empirique conditionnelle sont dfinies comme
n() n()
f D () := f D (|) := P
k l (3.27)
nk+1 l n( )
P
o les dnominateurs assurent une normalisation correcte, savoir k f D () = 1 et
P D
l f (|) =P1. Asymptotiquement, soit pour n grand, nous avons approximativement
n k + 1 = n et l n() = n(), et ainsi
n() n()
f D ()
= f D (|)
= k l (3.28)
n n()
Afin de souligner le contraste avec les ditributions empiriques, nous dnoterons dornavant les
distributions thoriques correspondantes f M () et f M (|) avec
p()
f M () := p() f M (|) :=
p()
3.5. RECONSTRUCTION DE MODLES DE MARKOV PARTIR DES DONNES 75
Exemple 3.17 La l-ime squence Thue-Morse Dl est une squence binaire construite r-
cursivement comme suit:
D0 = 1 Dl+1 = Dl Dl
l Squence Thue-Morse Dl
0 1
1 10
2 1001
3 10010110
4 1001011001101001
5 10010110011010010110100110010110
6 1001011001101001011010011001011001101001100101101001011001101001
symbole 1 0 total
1 1
frquence empirique relative 2 2 1
bigramme 11 10 01 00 total
frquence empirique relative 10
= 1 21
= 1 21
= 1 11
= 1
1
63 6 63 3 63 3 63 6
trigramme 111 110 101 100 011 010 001 000 total
frquence rel. emp. 0 10
= 16 10
= 16 11
= 16 10
= 16 10
= 16 11
= 16 0 1
62 62 62 62 62 62
Considrons une chane de Markov de r-ime ordre dfinie par la distribution conditionnelle
f M (|) o et r . La probabilit dobserver les donnes xn1 est
n
Y Y Y
P (xn1 ) = p(xr1 ) p(xi |xi1 r
ir ) = p(x1 ) f M (|)n()
i=r+1 r
Thorme 3.11 (formule des types pour les chanes de Markov) Pour les chanes
de Markov dordre r, la probabilit dobserver la distribution empirique condition-
nelle f D (|) (pour tout et r ) est, asymptotiquement,
o
X
Kr (f D ||f M ) := f D () K([f D ||f M ]|) (3.32)
r
X f D (|)
K([f D ||f M ]|) := f D (|) ln (3.33)
f M (|)
En particulier, pour des effectifs donns n() (et donc pour des f D () donns et pour des
f D (|)) donns, la probabilit 3.31 est maximale si et seulement si fM (|) = f D (|):
comme prvu, lestimation de vraisemblance maximale du modle M est simplement donne
par la grandeur empirique correspondante (voir module S1 pour une exposition plus dtaille
du cas indpendant).
3.5. RECONSTRUCTION DE MODLES DE MARKOV PARTIR DES DONNES 77
Exemple 3.18 Considrons une chane de Markov de premier ordre avec deux tats a et b.
Dans un tat donn (a ou b), le systme reste dans le mme tat avec la probabilit 0.9, et
change avec la probabilit 0.1. Cest--dire f M (a|a) = 0.9, f M (b|a) = 0.1, f M (b|b) = 0.9
et f M (a|b) = 0.1. Supposons que les donnes soient de la forme
D aaaa
| {z
aaaa}
n fois
f D (a|a) f D (b|a)
K([f D ||f M ]|a) = f D (a|a) ln M
+ f D (b|a) ln M =
f (a|a) f (b|a)
1 0
= 1 ln + 0 ln = 0.105 nats
0.9 0.1
Dautre part, ni f D (a|b) ni f D (b|b) ne sont dfinis, puisque le systme na jamais t observ
dans ltat b: les quations 3.27 ou 3.28 retournent la valeur indtermine 0/0 (que lon
considre finie). Donc K([f D ||f M ]|b) nest pas dfini, mais K1 (f D ||f M ) lest:
Ainsi
Exemple 3.19 (exemple 3.18, suite). Par symtrie, la probabilit stationnaire associe la
chane est (a) = (b) = 0.5, et le taux dentropie est
Donc la taille de lensemble des squences typiques augmente jusqu |Tn ()| = exp(0.325
n n
n) = (1.38) , au lieu de 2 pour un processus maximalement alatoire (= indpendant +
uniforme). En dautres termes, la dynamique du systme observ se comporte comme si
seuls 1.38 choix effectifs taient disposition chaque tape, au lieu de 2 choix effectifs (
savoir a et b) pour la dynamique maximalement alatoire.
Supposons que lon observe une squence xn1 n de longueur n avec m := || tats dont
on pense quils sont gnrs par une chane de Markov dordre r. La spcification complte de
cette dernire ncessite que lon dtermine toutes les grandeurs de la forme f M (|) pour tout
et r soit un total de mr (m 1) grandeurs (les grandeurs P f M (|) ne sont pas
compltement libres, mais elles doivent obir aux mr contraintes f M (|) = 1 pour
tout r , do le facteur m 1).
Mais mme pour des valeurs relativement modestes de m et r, le nombre de paramtres libres
mr (m 1) augmente trs rapidement (par exemple 48 paramtres libres pour m = 4 et r = 2,
ou 54 paramtres libres pour m = 3 et r = 3). Par consquent, la quantit de donnes D
requise pour estimer tous ces paramtres avec une marge derreur raisonnable devient trs
grande! Ce phnomne, que lon appelle parfois la maldiction de la dimensionnalit, repr-
sente un inconvnient majeur qui restreint normment lemploi des modles markoviens pour
r grand, malgr la gnralit et la flexibilit de ces derniers.
Concrtement, considrons lestimation de vraisemblance maximale qui consiste estimer
f M (|) comme la valeur fM (|) maximisant P (f D |f M ) pour une f D donne. La formule
des types 3.31 dmontre alors que la recherche de la fM (|) estime est simplement donne
par la distribution empirique correspondante fM (|) = f D (|). Mais une squence D =
xn1 de longueur n contient un maximum de nr transitions distinctes , et si m ou r sont
assez grands, la majorit des transitions observes thoriquement ne se produiront simplement
pas dans D = xn1 , et les estimations de vraisemblances maximales correspondantes seront
donnes par la valeur fM (|) = 0, mme si f M (|) > 0.
Ce problme de transitions inobserves se produit chaque fois que le nombre dtats pos-
sibles m ainsi que lordre de la chane r sont grands en comparaison de la taille chantillon
n. Diffrents remdes ont t proposs afin de pallier ce problme, comme la stratgie du
trigramme qui consiste estimer f M (3 |1 2 ) (pour une chane de Markov dordre r = 2)
comme
fM (3 |1 2 ) = 0 f D (3 ) + 1 f D (3 |2 ) + 2 f D (3 |1 2 )
o le choix optimal des poids non-ngatifs 0 , 1 et 2 , obissant 0 + 1 + 2 = 1 est
typiquement dtermin par essai et erreur et a pour but de maximiser un indice de performance
relativement une application donne.
3.5. RECONSTRUCTION DE MODLES DE MARKOV PARTIR DES DONNES 79
Bien quelles soient parfois satisfaisantes pour une application pratique donne, de telles es-
timations manquent de fondements thoriques et de justification formelle. Cette situation est
quelque peu analogue au problme des espces inobserves qui se produit chaque fois que
le nombre dtats possibles m est si grand en comparaison de la taille chantillon n quil se
peut que certains tats naient pas t observs du tout dans les donnes D. Bien quil ait
t identifi clairement dans les donnes textuelles et biologiques depuis un certain temps, ce
problme na pas reu de solution simple et universellement convenue; on peut toutefois se
rfrer au module L1 pour une stratgie qui vise estimer le nombre total dtats (= observs
+ inobservs) possibles.
Supposons que le modle M soit une chane de Markov dordre r. Alors le thorme 3.10
implique
hM M M M M M M
1 h2 hr hr+1 = hr+2 = hr+3 = . . . = h = h
M
Donc le plus grand k pour lequel dM k est strictement positif indique lordre r = k de la chane
M
de Markov M . Intuitivement, dk mesure la rduction de lincertitude lorsque le dernier sym-
bole dune squence est prdit laide dun pass de longueur k au lieu de k 1, do dMk =0
si k > r.
Comme avec tout problme infrentiel en statistique, la difficult est due au fait que les entro-
pies conditionnelles hM k
k sont des grandeurs thoriques dfinies par (m 1)m paramtres qui
n
ne sont pas directement observables. Mais si les donnes D = x1 sont assez nombreuses, on
sattend ce que hD M
k soit proche de hk , pour k petit. Aussi le rapport nombre de paramtres
log n
estimer/nombre de donnes est-il petit si et seulement si k est petit relativement log m.
Donc les estimations empiriques sont bonnes tant que k kmax , o kmax est de lordre de
log n
log m . Les figures 3.10 et 3.11 suggrent que
1 log n
kmax := (3.34)
2 log m
est un choix pragmatique satisfaisant.
Par consquent, pour k kmax , de grandes valeurs de dDk constituent un signe que le modle
est probablement dordre k, comme le confirme le test de vraisemblance maximale ci-dessous:
80 CHAPITRE 3. PROCESSUS STATIONNAIRES & CHANES DE MARKOV
Le test dordre
2n dD D D 2 2 k1
k = 2n [hk hk+1 ] 1 [(m 1) m ] (3.35)
o dD
k est mesur en nats.
Exemple 3.20 Soit M une chane de Markov binaire dordre 3 spcifie par f M (4 |1 2 3 )
sur = {a, b}. Une squence de longueur n = 1024 est gnre partir de ce modle,
daprs lequel les distributions empiriques f D sont dtermines et les entropies condition-
nelles hD
k (X) calcules.
k hD
k dDk 2n dDk df 20.999 [df]
1 0.692 0 0 1 10.8
2 0.692 0.001 2.05 2 13.8
3 0.691 0.054 110.59 4 16.3
4 0.637 0.006 12.29 8 18.
5 = kmax 0.631 0.0088 18.022 16 20.5
P (f D |fk ) P (f D |fk )
LL := log
P (f D |fk1 ) P (f D |fk1 )
o fk est, (dans le sens ML), le meilleur modle de f D par une chane de Markov dordre
k, et fk1 est le meilleur modle pour f D dordre k 1. Le premier est plus gnral que le
dernier et va donc aboutir un meilleur ajustement, soit P (f D |fk ) P (f D |fk1 ), cest--
dire LL 0. Dautre part, la formule 3.31 des types P (f D | f M ) exp(n Kr (f D ||f M ))
donne
Finalement, les divergences conditionnelles Kr (f D ||fr ) sont, pour n grand, bien reprsen-
tes par leurs approximations quadratiques, les khi-carrs 21n 2 (f D ||fr ). On peut d-
montrer que ces derniers suivent sous le modle fr , une distribution du khi-carr 2 [df] o
df est le nombre de paramtres libres associs au modle dordre r. On a donc dmontr que
la diffrence 2n[Kk1 (f D ||fk1 ) Kk (f D ||fk )], cause par les fluctuations de f D possi-
blement produites par fk mais non par fk1 , se comporte comme un 2 [df] avec df gal la
diffrence des nombres de paramtres libres entre les deux modles.
En assemblant les les pices, on obtient la recette infrentielle rejeter le modle fk1 et
accepter le modle fk au niveau si 2n [Kk1 (f D ||fk1 ) Kk (f D ||fk )] 21 [df] o
df est ici (m 1) mk (m 1) mk1 = (m 1)2 mk1 .
La dmonstration sera complte si nous montrons que Kk1 (f D ||fk1 ) = hD
k (et que
Kk (f D ||fk ) = hD
k+1 ). Mais il rsulte de 3.2 que
X X
k1
hD k
k (X) = H(X1 ) H(X1 )= f D () log f D () + f D () log f D ()
k k1
(a) X X X
= f D () log f D () + f D () log f D ()
k1 k1
(b) X X
= f D () f D (|) log f D (|)
k1
3.5. RECONSTRUCTION DE MODLES DE MARKOV PARTIR DES DONNES 83
Etant donnes les n observations xn1 , et sous lhypothse que le processus sous-jacent est une
chane de Markov dordre r,
on dtermine tout dabord lordre k de la chane (avec k 12 ln ln n
m ) laide du test 3.35.
on estime ensuite les transitions thoriques correspondantes f M (|) (avec et
r ) par les transitions empiriques f D (|) := n() (estimation de vraisemblance
maximale).
A ce stade, on est en position de simuler le processus de Markov en faisant tourner un processus
de k-ime ordre avec la matrice de transition f D (|) partir dun tat initial r tir avec
la probabilit f D ().
Exemple 3.21 Ecrite avec m = 27 tats (lalphabet + les espaces, sans ponctuation), la
version anglaise de la Dclaration Universelle des Droits de lHomme constitue un texte xn1
de longueur n = 8 149 partir duquel les distributions empiriques conditionnelles f D (|)
peuvent tre calcules. On peut imaginer que le texte a t produit par une chane de Markov
dordre r dfinie par lensemble de probabilits conditionnelles thoriques {f M (|)} o
est un r-gramme. Ces probabilits thoriques peuvent tre estimes (estimation ML) daprs
les estimations empiriques correspondantes, soit fM (|) := f D (|), et, en raison de 3.34,
log n 1 log 8 149
lestimation est garantie fiable pour r 21 log m = 2 log 27 = 1.36, qui est plutt petit! Les
simulations bases sur fM (|) = f D (|) avec || = r produisent:
r = 0 (Processus indpendant)
iahthire edr pynuecu d lae mrfa ssooueoilhnid nritshfssmo
nise yye noa it eosc e lrc jdnca tyopaooieoegasrors c hel
niooaahettnoos rnei s sosgnolaotd t atiet
Les transitions de premier ordre sont prises en compte, ce qui rend cet chantillon plus lisible
que le premier (en particulier, les transitions consonnes-voyelles sont respectes).
Le texte ressemble nettement de langlais, avec des mots entiers reproduits correctement.
Cependant, nous sommes au-del de la limite prudente de kmax = 1.36: le texte simul
trahit son origine, savoir la Dclaration Universelle des Droits de lHomme, et non un autre
texte anglais original de taille comparable comme une recette culinaire ou un texte traitant de
mathmatiques. De faon quivalente, les estimations de modle fM (|) = f D (|) avec
|| = 3 sont sur-paramtres.
Tous les mots simuls sont prsents de vritables mots anglais, ce qui reflte la grande
redondance de langlais R = 0.73 (voir exemple 3.5). Entre-temps, le problme de sur-
paramtrage empire....
Le sur-paramtrage a atteint des niveaux scandaleux daprs les standards statistiques: len-
semble {f M (|)} de transitions dordre neuf (|| = 9) contient (27 1) 279 = 6.1 1013
paramtres estims daprs un texte de longueur n = 8.1 103 seulement! Par consquence,
des morceaux entiers du texte original sont reproduits sans altration dans le texte simul.
valuation 22
Histoire et bibliographie
Section 3.3.5. Le comportement irrversible a t reconnu clairement et officiellement pour
la premire fois en Thermodynamique au milieu du XIXime sicle sous le nom de Se-
cond Principe de Thermodynamique, dclarant que lentropie (physique) dun systme
physique isol non-quilibr augmente jusqu atteindre lquilibre . La formulation
moderne du second principe, en termes de thorie de linformation pure, est donne
(dans le cadre des processus de Markov) par le thorme 3.9. Elle montre en particu-
lier que K(f (n) ||) diminue jusqu zro pour n . Si la distribution stationnaire
est uniforme (cest--dire j = 1/m pour tout j = 1, . . . , m), alors K(f (n) ||) =
log m H(f (n) ) o H(f ) est lentropie de Shannon de la distribution f : ici le thorme
3.9 confirme que H(f (n) ) augmente en effet dans n avec la limite log m. Mais dans le
cas gnral, o nest pas uniforme, le Second Principe devrait tre expos plus correc-
tement comme suit: lentropie relative (relativement ) dun systme physique isol
non-quilibr diminue jusqu ce que lquilibre soit atteint .
Section 3.5. La Dclaration Universelle des Droits de lHomme a t adopte par lassemble
gnrale de lONU (rsolution 217 A (III)) du 10 dcembre 1948.
Exercices du module C3
par F. BAVAUD
Exercice 4.1.1:
Une tudiante suivant un certain programme peut chouer ses examens une fois; si elle choue
deux fois, elle est limine du programme. Afin de formaliser le processus, considrons un mo-
dle cinq tats = {a, b, c, d, e} o a = enregistre dans le programme sans stre encore
prsente , b = premire tentative russie , c = premire tentative infructueuse, seconde
tentative faire , d = seconde tentative russie et e = seconde tentative infructueuse
(limine) .
A)
dessinez le diagramme des transitions possibles entre les cinq tats.
quels tats atteignent quels tats ?
quels tats communiquent avec quels tats ?
numrez toutes les classes rcurrentes et transientes.
numrez tous les tats absorbants.
B) Identifiez les tats b et d (qui correspondent tous deux une tentative russie) et rpondez
aux mmes questions.
Exercice 4.1.2:
Considrons la table de changement dopinion suivante N = (njk ), qui donne les effectifs
croiss de lopinion de 493 Danois slectionns au hasard en ce qui concerne la CEE en Oc-
tobre 1971 (lignes j = 1, . . . , 3) par leur opinion envers la CEE en dcembre 1973 (colonnes
87
88 CHAPITRE 4. EXERCICES DU MODULE C3
Introduction
Dans le chapitre prcdent, nous avons introduit la mesure dincertitude de Shannon et plu-
sieurs de ses proprits. Cependant, nous navons pas encore montr quel point cette mesure
peut tre utile sur un plan pratique. Dans ce chapitre, nous prsentons le premier exemple de
problme pratique qui tire avantage de la mesure de Shannon. Ce problme est celui du codage
dune source dinformation discrte laide dune squence de symboles. Nous dveloppons
galement quelques mthodes efficaces pour effectuer de tels codages, puis nous tudions sous
quelles conditions de tel codages peuvent tre efficaces. Dans le cadre prcis des code non am-
bigus, lentropie savre tre la limite fondamentale la compression de donnes, cest--dire
quelle est fortement lie la longueur moyenne de code minimale possible.
Mais demandons nous dabord pour quelles raisons code-t-on une source ? Il y a en fait trois
raisons principales :
coder pour compresser les donnes, cest--dire pour rduire (en moyenne) la longueur des
messages.
Pour ce faire, il faut tenter de supprimer un maximum de redondance des messages.
89
90 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
Ut Zt
Source Codeur
F IG . 5.1 Schma de base pour le codage dune source : le symbole Ut , mis par la source au
temps t, est transform en un mot de code Zt .
En outre, seules les sources stationnaires , cest--dire les sources pour lesquelles P (Ut =
ui ) ne dpend pas de t, sont prises en considration dans ce chapitre. Dans un tel cas, et
lorsquil ny a pas dambigut possible, P (U = ui ) sera dans la suite not simplement pi .
Nous supposons que pi 6= 0 pour tout symbole considr ui dans lalphabet de la source ; ce
qui signifie que nous ne nous proccupons pas des symboles de probabilit nulle.
En ce qui concerne le codeur, seul le cas le plus simple o un seul mot de code est associ
chaque symbole-source est pris en considration. Techniquement parlant, le processus de
codage Z := f (U ) est une application de lalphabet de la source VU lensemble de mots de
code VZ .
Soit Z lensemble de toutes les squences de longueur finie dlments de lalphabet Z.
Lensemble des mots de code VZ est un sous-ensemble de Z qui ne contient pas la chane
vide (cest--dire la squence de longueur 0).
En outre, nous nous concentrons sur les codes dans lesquels deux symboles diffrents de la
source correspondent deux mots de code diffrents. Techniquement parlant, lapplication f
est injective.
De tels codes, o Z = f (U ) est une application injective, sont appels codes non-singuliers .
Dfinition 5.1 (Code non-singulier) On dit que le code dune source dinforma-
tion discrte est non-singulier lorsque deux symboles diffrents de la source cor-
respondent deux mots de code diffrents.
Formellement, en notant zi le mot de code correspondant au symbole-source ui , nous
avons :
ui 6= uj = zi 6= zj .
Tous les codes pris en considration dans le reste de ce chapitre sont non-singuliers.
Puisquil ny a pas de raison de crer des mots de code qui ne sont pas utiliss, cest--dire
qui ne correspondent pas un symbole de la source, lapplication f de VU VZ est surjective ;
cest donc une bijection.
Exemple 5.1 (Codage dune source finie) Un exemple de code trs courant est celui du
code Morse. Ce code est utilis pour coder des lettres usuelles. Il emploie essentiellement
deux symboles : un point () et un tiret ().1 Par exemple, les lettres E, A et K sont respective-
ment codes , et .
tant donn que nous ne nous intressons pas uniquement au codage de symboles seuls, mais
galement au codage de messages (cest--dire des squences de symboles), nous examinons
1
En ralit quatre symboles sont employs en Morse : des sparateurs de lettres et des sparateurs de mots sont
galement utiliss.
92 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
des codes qui permettent de dcoder chaque message individuellement. De tels codes sont
appels des codes non-ambigus .
Dfinition 5.2 (Codes non-ambigus) On dit que le code dune source discrte est
non-ambigu si et seulement si chaque squence (de longueur finie) de mots de code
ne correspond qu un seul message de la source.
Plus formellement, on dit quun code est non-ambigu si et seulement si lextension triviale f de
lapplication f lensemble de messages VU , prenant sa valeur dans lensemble de squences
de mots de code de longueur finie VZ (f : VU VZ ), est une bijection.
Exemple 5.2 (Code ambigu) Considrons la source compose des trois symboles a, b et
c. Ses messages peuvent tre nimporte quelle squence de ces symboles ; par exemple
aabca est un message de cette source.
Le codage suivant de cette source :
a 7 1 b 7 00 c 7 11
est ambigu.
Par exemple, une fois cods, il ny a aucun moyen de distinguer le message aaaa du
message cc. En effet, tous deux sont cods 1111.
Parmi les codes non-ambigus, certains prsentent un intrt particulier. Ce sont les codes sans
prfixe. Avant de dfinir ce quest un tel code, il nous faut introduire la notion de prfixe .
On dit quune squence z de longueur n (n 1) est un prfixe dune autre squence z si et
seulement si les n premiers symboles de z forment exactement la squence z. Par exemple,
abba est un prfixe de abbabc. Notez que toute squence est trivialement son propre prfixe.
Dfinition 5.3 (Code sans prfixe) On dit que le code dune source discrte est sans
prfixe lorsquaucun mot de code nest le prfixe dun autre mot de code.
Plus formellement, on dit quun code Z, dont lalphabet est Z et dont lensemble de
mots de code est VZ , est sans prfixe si et seulement si
z VZ y Z (zy VZ = y = )
Codes gnraux
Codes nonsinguliers
Codes nonambigus
Codes instantans
Exemple 5.4 (Code sans prfixe) Considrons la source compose des trois symboles a, b
et c.
Le code suivant de cette source :
a 7 0 b 7 10 c 7 11
est sans prfixe.
Dautre part, le code suivant :
a 7 1 b 7 00 c 7 10
nest pas sans prfixe puisque 1 (le mot de code pour a) est un prfixe de 10 (le mot de code
pour c).
Pourquoi se focaliser sur des codes sans prfixe ? La rponse se trouve dans les deux proprits
suivantes (5.1 et 5.2), qui soulignent leur intrt.
Cependant, il est important de remarquer quil existe des codes non-ambigus qui ne sont pas
sans prfixe comme lexemple 5.3 le montre.
Venons-en maintenant la seconde proprit intressante des codes sans prfixe.
Dfinition 5.4 On dit quun code est instantan si et seulement si chaque mot de
code dans toute chane de mots de code peut tre dcod ds que lon a atteint sa fin.
Cette dfinition garantit quil nest ni ncessaire de mmoriser les mots de code reus ni dat-
tendre les suivants pour effectuer le dcodage. Un tel code permet dconomiser du temps et
de lespace dans le processus de dcodage dun message cod.
Jusqu prsent, nous avons rencontr diffrents types de codes : non-singulier, non-ambigu,
instantan. La faon dont ces diffrents types de codes sont relis les uns aux autres est rsume
sur la figure 5.2.
valuation 23
94 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
noeuds
intrieurs racine
profondeur
feuilles
ui 1 2 3 4
P (U = ui ) 0.5 0.25 0.125 0.125
Considrons donc le codage suivant de cette source, (o zi est le mot de code pour ui ) :
z1 z2 z3 z4
0 10 110 111
valuation 24
Afin dtudier plus en dtail les proprits des codes instantans, nous devons introduire plus
de dfinitions et formuler quelques thormes. Parmi ceux-ci, loutil le plus utile ltude des
codes instantans est sans doute les arbres n-aires.
Pour commencer, rsumons le concept darbre, ainsi que les termes qui sy rapportent (cf
figure 5.3). Un arbre est un graphe (nuds et arcs) qui commence par un nud de racine
(simplement la racine). Chaque nud du graphe est soit une feuille soit un nud intrieur.2
2
Notez que daprs cette dfinition, la racine dun arbre non rduit un seul nud est aussi un nud intrieur.
5.1. CODER UNE VARIABLE ALATOIRE 95
Un nud intrieur a un ou plusieurs fils et est appel le parent de ses fils. Larit dun nud
est le nombre de ses fils. Un nud feuille est un nud sans fils, soit un nud darit 0.
Contrairement un arbre rel, la racine est gnralement reprsente au sommet de la figure
et les feuilles en bas. La profondeur dun nud dans un arbre est le nombre darcs parcourir
pour aller de la racine ce nud. Par convention, la profondeur de la racine est nulle. La
profondeur dun arbre est la profondeur maximale de ses feuilles, soit le nombre maximal
darcs pour aller de la racine une feuille. Finalement, on dit quun nud n1 couvre un autre
nud n2 si le chemin de la racine n2 contient n1 . Notez quun nud se couvre lui-mme, au
minimum.
Dfinition 5.5 (Arbre n-aire) Un arbre n-aire (n 1) est un arbre dans lequel
chaque nud intrieur a comme arit n, cest--dire quil a exactement n fils.
Un arbre n-aire complet est un arbre n-aire dans lequel toutes les feuilles ont la mme
profondeur.
Dfinition 5.6 (Arbre de codage) Un arbre de codage est un arbre n-aire, dont les
arcs sont tiquets par des lettres dun alphabet donn de taille n, de faon ce que
chaque lettre apparaisse tout au plus une fois partir dun nud donn.
Les mots de code dfinis par un tel arbre correspondent des squences dtiquettes
le long des chemins menant de la racine une feuille.
a b c
2
a b c a b c
1
Un arbre de codage ternaire: le mot de code reprsent par la feuille 1 est ac et la feuille 2
reprsente le mot de code c.
96 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
Dfinition 5.7 (Code n-aire) Un code avec un alphabet de taille n est appel un
code n-aire.
Proprit 5.4 Pour tout code instantan n-aire, il existe au moins un arbre de co-
dage n-aire tel que chaque mot de code corresponde la squence dtiquettes dun
chemin (unique) de la racine une feuille.
Inversement, chaque arbre de codage dfinit un code instantan. Les mots de code de
ce code instantan sont dfinis comme les squences dtiquettes de chaque chemin
de la racine chaque feuille de larbre de codage.
0 1
a 0 1
b c
Par convention, les feuilles sont tiquetes par le symbole-source, dont le mot de code est le
chemin partir de la racine.
Notez que lorsque lon reprsente un code (instantan) par un arbre, il peut arriver que cer-
taines feuilles ne correspondent aucun mot de code. De telles feuilles sont appeles feuilles
inutilises.
Dfinition 5.8 (Code complet) On dit que le code est un code complet lorsquil ny
a pas de feuille vide dans larbre de codage n-aire correspondant.
valuation 25
De chaque arbre ci-dessous, dites sil sagit ou non dun arbre de codage ; si oui, dites
1. quelle est son arit,
2. si le code correspondant est complet,
3. quelle est la longueur du mot de code associ au message c.
5.1. CODER UNE VARIABLE ALATOIRE 97
1) 2)
a b c d e
a b c d e f h i j k g
3) 4) 5)
a b c d e a b c
a b c d e f h i j k g
Examinons prsent les conditions essentielles lexistence dun code instantan. Lingalit
de Kraft en est une condition ncessaire et suffisante.
Lorsque lgalit se ralise dans (5.1), le code instantan correpondant est complet.
D MONSTRATION
= Supposons tout dabord quil existe un code instantan D-aire dont les longueurs de
mots de code sont l1 , l2 , . . . , lN . Soit L := max li + 1. Considrons la construction de larbre
i
de codage correspondant Tcode consistant laguer Tcomplet ,3 larbre D-aire de profondeur L.
0 1
Tcode
Tcomplet 0 1 0 1
0 1 0 1 0 1 0 1
cest--dire
N
X
Dli 1.
i=1
En outre, dans le cas o le code considr est complet, tous les nuds correspondent un
mot de code ; donc tous les sous-arbres correspondants dans Tcomplet ont t lagus, et, par
XN
L
consquent, les D feuilles de Tcomplet ont t retires. Ceci signifie que DLli = DL ,
i=1
N
X
cest--dire Dli = 1.
i=1
= Inversement, supposons que l1 , l2 , . . . , lN soient des entiers positifs, de faon ce
que (5.1) soit vrifie. Soit L le plus grand de ces nombres L := max li , et nj le nombre de
i
ces li qui sont gaux j (1 j L).
L
X L1
X
j L
Lingalit peut donc tre note (5.1) nj D 1, cest--dire nL D nj DLj .
j=1 j=1
tant donn que nL 0, nous avons :
L2
X
L
D nL1 D nj DLj ,
j=1
5.1. CODER UNE VARIABLE ALATOIRE 99
cest--dire
L2
X
nL1 DL1 nj DLj1 .
j=1
Et tant donn que tous les nj sont entiers, nous obtenons successivement, pour 0 k
L1
Lk1
X
Lk
nLk D nj DLjk .
j=1
Ces ingalits constituent le point-cl de la construction dun code avec des longueurs de
mots de code l1 , l2 , . . . , lN :
1. commenons par un nud (la racine)
2. pour tout k de 0 L :
(a) on assigne chaque mot de code un nud de profondeur courante (k) tel que
li = k. Ces nk nuds deviennent donc des feuilles de larbre de codage.
(b) on tend tous les nuds restants de profondeur courante avec D fils.
X
Ce faisant, le nombre de nuds qui sont tendus ltape (2b) est Dk nj Dkj menant
jk
X
k+1 k+1j
D nj D nouveaux nuds pour ltape suivante. En raison des ingalits
jk
prcdentes, ce nombre est plus grand que nk+1 , laissant ainsi suffisamment de nuds pour
ltape suivante (2a).
Lalgorithme peut donc toujours assigner des nuds aux mots de code et construire ensuite
tout larbre de codage pour le code.
Par consquent, si les li satisfont lingalit (5.1), nous sommes en mesure de construire un
code instantan avec les longueurs de mots de code correspondant aux li .
P
En outre, dans le cas o i Dli = 1, le nombre de nuds restants aprs ltape (2a) lorsque
j = L est
X N
X X
L Lj L
D nj D =D DLli = DL (1 Dli ) = 0,
jL i=1 i
ce qui signifie que tous les nuds ont t affects un mot de code, cest--dire que le code
est complet.
Notez que cette dmonstration de lingalit de Kraft contient un algorithme efficace pour la
construction effective dun code D-aire instantan tant donnes des longueurs de mots de
code (lorsquun tel code existe).
Exemple 5.9 Existe-t-il un code binaire instantan avec des longueurs de mots de code l1 =
2, l2 = 2, l3 = 2, l4 = 3, et l5 = 4 ?
5
X
La rponse est oui, puisque 2li = 1/4 + 1/4 + 1/4 + 1/8 + 1/16 = 15/16 < 1.
i=1
Lexemple ci-dessous constitue un tel code:
3
Cest--dire en retirant entirement le sous-arbre un nud donn.
100 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
0 1
0 1 0 1 U u1 u2 u3 u4 u5
u1 u2 u
30 1 Z 00 01 10 110 1110
u4
0 1
u5
Exemple 5.10 Existe-t-il un code binaire instantan avec des longueurs de mots de code 1,
deux fois 2, 3, et 4 ?
5
X
La rponse est non, tant donn que 2li = 1/2+1/4+1/4+1/8+1/16 = 19/16 > 1.
i=1
valuation 26
valuation 27
Parmi les arbres suivants, lequel (ou lesquels) a (ou ont) comme longueurs de mots de code :
2, 2, 3, 3 et 4.
u1 u2 u3 u4 u5 u1 u2 u3 u4 u5 u1 u2 u3
u2 u2 u3 u3 u4 u1 u2 u3 u4 u5
Il est temps daborder la question qui nous intressait au dpart, savoir celle du codage par
souci defficacit. Notre objectif est de coder une source dinformation de faon minimiser
la longueur moyenne de codage ; cest--dire la longueur moyenne dune squence de mots de
code.
condition que la source ait certaines proprits gnrales (lesquelles sont pratiquement tou-
jours vrifies) minimiser la longueur moyenne de code quivaut minimiser lesprance de
la longueur de code .
valuation 28
ui 1 2 3 4 5
P (U = ui ) 0.125 0.3 0.125 0.25 0.2
Considrons ensuite le codage suivant de cette source (o zi est le mot de code pour ui ) :
z1 z2 z3 z4 z5
1110 110 10 1111 0
Rappelons quun code instantan dfinit un arbre n-aire dans lequel chaque mot de code cor-
respond une feuille (par son chemin partir de la racine). La distribution de probabilit de
la source coder fournit des probabilits aux mots de code, donc aux feuilles de larbre n-aire
correspondant. Par convention, une probabilit 0 est assigne toute feuille inutilise (cest--
dire qui ne correspond pas un mot de code).
Lattribution de probabilits peut tre tendue aux nuds intrieurs en leur assignant rcursi-
vement, des feuilles la racine, une probabilit gale la somme des probabilits des fils.
Ce faisant, nous crons un arbre n-aire probabilis.
0.3 0.7
u1 u2 u3 0.3
0.4
0.1 0.2
u4 0.1
0.2
u5
0
0.1
Notez que dans un arbre n-aire probabilis, la somme des probabilits des feuilles doit tre un.
D MONSTRATION La probabilit de chaque nud est gale la somme des probabilits des
feuilles du sous-arbre issu de ce nud. Donc la somme des probabilits des nuds intrieurs
est une somme sur les probabilits des feuilles.
En outre, la probabilit dune feuille apparat dans cette somme exactement autant de fois
que la profondeur d de la feuille correspondante. En effet, une feuille la profondeur d est
couverte par exactement d nuds intrieurs : tous les nuds qui sont sur le chemin de la
racine cette feuille.
Ainsi, la somme des probabilits de tous les nuds intrieurs est gale la somme des pro-
duits de chaque probabilit de feuille et sa profondeur. Cette somme est prcisment la dfi-
nition de la profondeur moyenne des feuilles.
Plus formellement, soit i , 1 j M le M des nuds intrieurs et soit j , 1 i N
les N feuilles. En outre, soit Pi la probabilit du nud intrieur i et pj la probabilit de la
feuille j . Enfin, soit (j ) la profondeur de la feuille j . Dnotons par i j le fait que
le nud intrieur i couvre la feuille j .
Alors la somme des probabilits des nuds intrieurs est gale :
XM XM X XN X XN X
Pi = pj = pj = pj 1 .
i=1 i=1 j:i j j=1 i:i j j=1 i:i j
X
En outre, 1 nest rien dautre que le nombre de feuilles couvrant la feuille j . Par
i:i j
consquent, X
1 = (j )
i:i j
et
M
X N
X
Pi = pj (j ) =: E [] .
i=1 j=1
D MONSTRATION Soit Z le code instantan en question. Par dfinition (dun arbre de co-
dage), pi est la probabilit du ime mot de code et, par consquent, Hfeuilles = H(Z).
En outre, tant donn que le code est non-singulier (Z = f (U ) est injective), H(Z) = H(U ).
Par consquent, Hfeuilles = H(U ).
Dfinition 5.12 Soit M le nombre de nuds intrieurs dun arbre n-aire probabilis
et P1 , P2 , . . . , PM leurs probabilits. En outre, soient qi1 , qi2 , . . . , qini les probabilits
des ni fils (feuilles comprises) du ime nud intrieur (dont la probabilit est Pi ).
Lentropie de branchement Hi ce nud est dfinie par
ni
X qij qij
Hi = log , (5.5)
Pi Pi
j=1
Notez quen raison de la seconde proprit de la dfinition dun arbre n-aire proba-
bilis (definition 5.10), nous avons
ni
X
Pi = qij .
j=1
Exemple 5.13 Supposons que les M = 5 nuds pour larbre des exemples 5.9, et 5.11,
page 5.11, soient numrots de telle faon que P1 = 1, P2 = 0.3, P3 = 0.7, P4 = 0.3 et
P5 = 0.1.
Alors
5
X
Hfeuilles = pi log pi 2.12 bit.
i=1
Nous vous laissons, titre dexercice, le soin de montrer que H3 0.985 bit, H4 0.918 bit,
H5 = 0.
5.2. CODAGE EFFICACE 105
Thorme 5.2 (Thorme de lentropie des feuilles) Lentropie des feuilles dun
arbre n-aire probabilis est gale la somme sur tous les nuds intrieurs (racine
comprise) de lentropie de branchement de ce nud pondre par sa probabilit. En
employant les notations dfinies ci-dessus :
M
X
Hfeuille = Pi Hi (5.6)
i=1
Exemple 5.14 Suite de lexemple 5.13. Nous calculons Hfeuille par (5.6) pour obtenir
Thorme 5.3 Pour deux codes instantans de la mme source dinformation, celui
qui a la longueur moyenne du code la plus courte a le plus haut taux dentropie par
symbole.
En rsum, compresser les donnes sans perte dinformation (i.e. code instantan) augmente
lentropie par symbole.
Nous allons maintenant employer les rsultats des sections prcdentes pour obtenir une borne
infrieure fondamentale lesprance de la longueur de code dun code instantan dune source
dinformation.
Borne infrieure lesprance de la longueur moyenne du code pour les codes instanta-
ns.
Thorme 5.4 (Thorme de Shannon sur le codage, 1re partie) Pour toute
source dinformation discrte sans mmoire dentropie H(U ), lesprance de la
longueur de code E [L] de tout code D-aire instantan pour cette source satisfait :
H(U )
E [L] , (5.7)
log D
La limite (5.7) aurait pu tre anticipe de faon intuitive. Il faut H(U ) bits dinformation pour
spcifier la valeur de U . Mais chaque chiffre D-aire du mot de code peut, daprs le tho-
rme 1.2 et la dfinition de linformation mutuelle (quation (1.17)), fournir tout au plus log D
bits dinformation sur U . Nous aurons donc certainement besoin dau moins H(U )/ log D
symboles de code en moyenne pour spcifier U .
106 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
D MONSTRATION
N
X N
X
H(U ) log pi
E [L] = pi l i + pi
log D log D
i=1 i=1
XN
= pi logD Dli + logD pi
i=1
N
X
Soit Q = Dli et qi = Dli /Q. On a alors :
i=1
N
X
H(U )
E [L] = pi ( logD qi + logD pi logD Q)
log D
i=1
N !
X pi
= pi log logD Q
qi
i=1
= K(pi , qi ) logD Q
valuation 29
ui 1 2 3 4
P (U = ui ) 0.5 0.25 0.125 0.125
Considrons ensuite le codage suivant de cette source (o zi est le mot de code pour ui ):
z1 z2 z3 z4
0 10 110 111
Le thorme ci-dessus est le premier exemple pour lequel la rponse une question technique
est naturellement exprime en fonction de lentropie de Shannon. Ceci nest toutefois pas une
justification complte de lutilisation de lentropie, puisque seul un minorant a t spcifi.
5.2. CODAGE EFFICACE 107
Par exemple, la valeur 1 serait aussi un autre minorant lesprance de la longueur de code,
mais nous ne prtendrions pas que cette limite est une justification de quoi que ce soit! Ce nest
que lorsque le minorant donn est, dans un sens, la meilleure borne infrieure possible, quil
peut tre utilis comme justification. Afin de montrer que la limite exprime dans le thorme
ci-dessus est effectivement la borne infrieure, nous devons montrer quil existe des codes dont
lesprance de la longueur de code peut tre arbitrairement proche de celle-ci.
Nous montrons ici comment construire des codes instantans efficaces. Bien quils ne soient
pas optimaux en gnral, ils sont suffisamment proches de la borne infrieure lesprance de
la longueur de code.
Lide-cl est dutiliser comme mot de code pour ui , un mot dont la longueur est
log pi
li = ,
log D
o x dnote pour tout x le seul entier tel que x x < x + 1.
Un tel code est appel un code de Shannon-Fano. En effet, la technique est implicite dans
larticle crit par Shannon en 1948, mais elle sera rendue explicite par Fano.
Mais un tel code instantan existe-t-il toujours ? La rponse est oui en raison de lingalit
de Kraft.
En effet, tant donn que par dfinition li log pi
log D , nous avons
X X log pi X X
Dli D log D = DlogD pi = pi = 1.
i i i i
Mesurons quel point un tel code est bon en termes de son esprance de la longueur de
code. Par dfinition de li nous avons :
log pi
li < + 1. (5.8)
log D
cest--dire
H(U )
E [L] < + 1. (5.10)
log D
Nous voyons que le code de Shannon-Fano a une esprance de longueur de code qui est lin-
trieur dun symbole de la borne infrieure (5.7) valable pour tous les codes instantans. Ce
code est donc plutt bon. En effet, daprs la premire partie du thorme de codage vu prc-
demment, nous savons quaucun code instantan ne peut battre lesprance de la longueur de
code du code de Shannon-Fano de plus dun symbole. Par consquent, lorsque lentropie de la
source code H(U ) est grande, le codage de Shannon-Fano est presque optimal. Mais lorsque
H(U ) est petite, nous pouvons gnralement faire bien mieux que le codage de Shannon-Fano,
comme nous le discuterons dans la section suivante.
Concentrons-nous prsent sur la seconde partie du premier thorme de codage de Shannon.
108 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
Thorme 5.5 (Thorme de codage de Shannon, 2me partie) Pour toute source
dinformation discrte sans mmoire dentropie H(U ), il existe au moins un code
instantan D-aire dont lesprance de la longueur de code E [L] satisfait :
H(U )
E [L] < + 1. (5.11)
log D
Nous construisons donc le code par lalgorithme donn dans la dmonstration de lingalit
de Kraft, pour obtenir le code dont larbre binaire est
0 1
0 1 0 1
u1 u2
1
u3
0 1
u4
H(U ) = 0.4 log 0.4 + 0.3 log 0.3 + 0.2 log 0.2 + 0.1 log 0.1 1.8 bit.
valuation 30
Considrons une source U dont lentropie est 2.15 bit. Pour les valeurs suivantes : 2.75, 2.05,
3.25, 2.15, pensez-vous quil existe un code binaire instantan de U avec une telle esprance de
longueur de code ? Pensez-vous quil peut exister un meilleur code, soit un autre code binaire
instantan de U avec une esprance de longueur de code plus courte ? (oui, non, ou peut-tre)
5.2. CODAGE EFFICACE 109
Nous montrons ici comment construire un code instantan D-aire pour une source dinforma-
tion discrte sans mmoire U avec n symboles. Lalgorithme pour la construction dun tel code
optimal est le suivant:
1. Choisissez n nuds (qui seront finalement les feuilles de larbre de codage) correspon-
dant aux n symboles de la source u1 , u2 , . . . , un .
Assignez la probabilit pi au nud ui pour 1 i n.
Marquez ces n nuds comme actifs.
Calculez le reste r de la division de 1 n par D 1. Notez que, bien que 1 n soit
ngatif, r est positif par dfinition dun reste.
Notez galement que dans le cas binaire (D = 2), r est toujours nul.
2. Groupez, en tant que fils dun nud nouvellement cr, les D r nuds actifs les moins
probables et les r nuds (feuilles) inutiliss:
nouveau
noeud
... ...
... ...
Dr feuilles r feuilles
utiles inutiles
Marquez les D r nuds actifs comme non actifs et le nud nouvellement cr
comme actif.
Assignez au nud nouvellement cr une probabilit gale la somme des probabilits
des D r nuds qui viennent dtre dsactivs.
3. Sil ny a quun seul nud actif, arrtez (ce nud est alors la racine de larbre de codage).
Autrement, posez r = 0 et retournez ltape 2.
Le code instantan rsultant dun tel algorithme de codage est appel un code de Huffman ,
puisque lalgorithme simple dcrit ici fut dcouvert par D. Huffman dans les annes cinquante.
U u1 u2 u3 u4 u5 u6
pi 0.05 0.1 0.15 0.27 0.20 0.23
0 1
0 1 0 1
u
z1 z2 z3 z4 z5 z6
0 1 4 u5 u6
0000 0001 001 01 10 11
0 1 u3
u1 u2
v1 = u 1 u 2 v2 = v1 u 3 v3 = u 5 u 6 v4 = v2 u 4 v5 = v4 v 3
0.15 0.30 0.43 0.57 1
Enfin, notez que E [L] = 2 (0.2 + 0.23 + 0.27) + 3 (0.15) + 4 (0.1 + 0.05) = 2.45 (ou par
le lemme de la longueur de chemin : E [L] = 1 + 0.57 + 0.43 + 0.30 + 0.15 = 2.45), et
X6
H(U ) = pi log pi = 2.42 bit.
i=1
Exemple 5.17 (Codage ternaire de Huffman) Pour la mme source U de lexemple prc-
dent et en employant un code ternaire (D = 3), nous avons pour le reste de 1 n := 1 6 =
5 par D 1 := 2: r = 1. En effet, 5 = 3 2 + 1. Donc une feuille inutilise doit tre
introduite.
Le code ternaire de Huffman est dans ce cas :
a b c
u6 u4
a z1 z2 z3 z4 z5 z6
b c
u3 u5
aab aac ab c ac b
a
b c
u1 u2
v1 = u 1 u 2 v2 = v1 u 3 u 5 v3 = v2 u 6 u 4
0.15 0.50 1
Enfin, notez que E [L] = 1 + 0.5 + 0.15 = 1.65 (par le lemme de la longueur de chemin), et
H(U ) 2.42
log 3 = 1.59 = 1.52.
valuation 31
1 2 3 4 5 6
0.17 0.12 0.10 0.27 0.18 0.16
Le but de cette question est de construire un code de Huffman binaire pour ce d. Pour ce code,
par convention, nous donnerons ltiquette 0 la branche la moins probable et ltiquette 1
la branche la plus probable. En outre, les nouveaux nuds introduits seront appels 7, 8, etc...,
dans cet ordre.
1. Quels sont les deux premiers nuds tre regroups ? Quelle est la probabilit corres-
5.2. CODAGE EFFICACE 111
pondante ?
2. Quels sont donc les deux nuds suivants tre regroups ? Quelle est la probabilit
correspondante ?
3. Continuez donner les noms des deux nuds regrouper et la probabilit correspon-
dante.
4. Donnez le code de Huffman trouv pour cette source :
ui = 1 2 3 4 5 6
zi =
Nous voulons maintenant dmontrer que le codage de Huffman est optimal en ce sens quaucun
autre code instantan ne peut avoir une esprance de longueur de code strictement infrieure
celle rsultant du codage de Huffman.
Cependant, il est important de ne pas oublier quil existe plusieurs codes optimaux : permuter
les symboles-codes ou changer deux mots de code de la mme longueur donnera un autre
code avec la mme longueur moyenne. Lalgorithme de Huffman ne construit quun seul code
optimal.
Avant de prouver loptimalit des codes de Huffman, nous devons donner quelques proprits
des codes optimaux en gnral.
n
X
Un code est optimal si la longueur moyenne pi li est minimale parmi tous les codes ins-
i=1
tantans possibles de la mme source, dnotant li la longueur du mot de code correspondant
au symbole ui .
Lemme 5.2 Pour le code optimal dune source dinformation avec n symboles pos-
sibles, nous avons : i(1 i n) j(1 j n) pi > pj = li lj .
Parce que Z est optimal, E [LY ] E [LZ ]. Par consquent, si pi > pj , lj li doit tre positif.
Lemme 5.3 (Lemme de comptage des nuds) Le nombre de feuilles dans un arbre
D-aire est 1 + M (D 1) o M est le nombre de nuds intrieurs (racine incluse).
112 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
D MONSTRATION Chaque nud intrieur a D fils, donc le nombre total de nuds de larbre
qui sont les fils dun autre nud est M D. Le seul nud de larbre ne pas tre le fils dun
autre nud est la racine. Le nombre total de nuds de larbre est donc M D + 1.
Mais par dfinition, il y a M nuds intrieurs, donc le nombre de feuilles (cest--dire le
nombre de nuds qui ne sont pas des nuds intrieurs) est
M D + 1 M = 1 + M (D 1).
D MONSTRATION Sil y a au moins une feuille inutilise qui nest pas la longueur maxi-
male, lesprance de la longueur de code peut tre diminue en transfrant cette feuille
inutilise lun des mots de code de profondeur maximale. Le code original ne serait donc pas
optimal.
En outre, sil y a plus de D feuilles inutilises profondeur maximale, au moins D de ces
nuds inutiliss peuvent tre regroupes en tant que fils du mme nud et remplacs par cet
unique nud inutilis qui est une profondeur rduite de 1. Par consquent, sil y a plus de
D feuilles inutilises, le code ne peut pas tre optimal.
Enfin, sil y a exactement D 1 feuilles inutilises profondeur maximale, elles peuvent
tre regroupes en tant que fils du mme parent. Celui-ci a galement une feuille utile qui est
son dernier fils. Mais on peut raccourcir le code en retirant simplement ce dernier symbole
inutile. En effet, ce dernier symbole nest pas discriminant puisque tous ses nuds frres sont
des nuds inutiles.
Lemme 5.5 Le nombre de feuilles inutilises dans larbre dun code D-aire instan-
tan optimal pour une source dinformation discrte U avec n symboles possibles est
le reste (positif) de la division de 1 n par D 1.
r = [1 + M (D 1)] n,
ou
1 n = M (D 1) + r.
5.2. CODAGE EFFICACE 113
En outre, daprs le lemme 5.4, nous savons que si le code est optimal, 0 r < D 1 . Il
rsulte donc du thorme de la division euclidienne que r est le reste de la division de 1 n
par D 1 (le quotient tant M ).
Lemme 5.6 Il existe un code D-aire instantan optimal pour une source dinforma-
tion discrte U avec n symboles diffrents (n 2) tels que les D r mots de code les
moins probables diffrent uniquement dans leur dernier chiffre, avec r comme reste
de la division de 1 n par D 1 (donc D r 2).
D MONSTRATION Notez tout dabord que nous ne prtendons pas que tous les codes opti-
maux satisfont cette proprit, mais quen rarrangeant un code optimal existant, nous pou-
vons trouver au moins un code optimal qui satisfasse la proprit.
Considrons un code D-aire instantan optimal pour U (ceci existe puisque le nombre de
codes D-aires instantans pour U est fini). Daprs le lemme 5.5, nous savons quil y a r
feuilles inutilises. Daprs le lemme 5.4, elles sont toutes de profondeur maximale. Consi-
drons les D r frres de ces feuilles inutilises. Ils reprsentent les plus grandes longueurs
de mots de code (puisquils sont de profondeur maximale).
Construisons prsent le code o nous changeons ces D r plus longs mots de code contre
les D r les moins probables. En raison du lemme 5.2, ceci ne change pas la longueur
moyenne (sans quoi le code en question naurait pas t optimal). Donc le code obtenu est
galement optimal. Mais en ce qui concerne ce dernier code, nous sommes srs que les D r
mots de codes les moins probables diffrent uniquement dans leur dernier symbole.
En raison du lemme 5.6, il suffit de chercher un code optimal dans la catgorie des codes o
les D r mots de code les moins probables diffrent uniquement dans leur dernier symbole.
tablissons prsent loptimalit du codage de Huffman.
Thorme 5.6 Le codage de Huffman est optimal : si Z est le code de Huffman dune
source dinformation U et X un autre code non-ambigu pour U , alors E [LX ]
E [LZ ].
n
X
tant donn que pi est indpendant du processus de codage (il ne dpend que
i=nD+r+1
de la source U ), en raison du lemme 5.6 et du fait que Y , par hypothse de rcurrence, est
optimal pour V (qui a moins de n symboles), nous concluons que Z est optimal pour U
(cest--dire que E [LZ ] est minimal).
R SUM DU CHAPITRE 5
Codes instantans:
aucun mot nest le prfixe dun autre
instantan = non-ambigu = non-singulier
sans prfixe instantan
P li
Ingalit de Kraft: code D-aire instantan iD 1
Limite de lentropie la longueur moyenne dun code instantan :
X H(U )
E [L] = pi l i
log D
i
Code de Shannon-Fano:
log pi
li =
log D
X H(U )
E [L] = pi l i < +1
log D
i
5.2. CODAGE EFFICACE 115
Code de Huffman:
1. introduit 1 n mod (D 1) feuilles inutilises avec la probabilit 0
2. regroupe rcursivement les nuds les moins probables
3. est optimal (en ce qui concerne lesprance de la longueur de code) dans la cat-
gorie des codes non-ambigus
Histoire et bibliographie
Ce chapitre naborde que le cas de sources sans mmoire. Cependant, dans la plupart des cas
de la vie relle, comme par exemple la compression de donnes sur ordinateur, les sources
considres sont rarement sans mmoire. La question de la compression de sources avec des
dpendances intrnes est aborde dans le chapitre 7.
Pour plus de dtails sur le codage de compression, veuillez vous rfrer [8].
116 CHAPITRE 5. CODAGE EFFICACE DE LINFORMATION
Chapitre 6
Exercices du module C2
Exercice 6.1.1:
ui 1 2 3 4 5
P (U = ui ) 0.125 0.25 0.025 0.5 0.1
Considrez ensuite le codage ci-dessous (o zi est le mot de code pour ui ) de cette source :
z1 z2 z3 z4 z5
01 111 110 10 00
Exercice 6.1.2:
Pour les codes suivants, dterminez si le code est sans prfixe, et/ou non-ambigu. Si le code
est sans prfixe, dessinez larbre de codage correspondant. Si le code est ambigu, donnez une
squence de symboles qui pourraient tre dcods en deux messages-sources diffrents.
117
118 CHAPITRE 6. EXERCICES DU MODULE C2
Exercice 6.1.3:
a- Existe-t-il un code binaire sans prfixe ayant pour longueurs de ses mots code :
l1 l2 l3 l4 l5 l6 l7 l8 l9 l10
2 3 3 2 3 4 2 3 2 2
Justifiez votre rponse.
b- Quelle est la taille minimale de lalphabet pour un tel code ?
c- Dans le cas minimal, dessinez un arbre de codage possible correspondant ce code.
Exercice 6.2.1:
U u1 u2 u3 u4 u5 u6 u7 u8
pU 1/4 1/8 1/8 1/16 1/16 1/16 5/32 5/32
Exercice 6.2.2:
Le code considr dans lexercice 6.1.1 est-il un code efficace, cest--dire optimal du point de
vue de la longueur moyenne de code ?
6.2. CODAGE EFFICACE 119
Exercice 6.2.3:
1 2 3 4 5 6
0.17 0.15 0.16 0.22 0.18 0.12
Exercice 6.2.4:
char. (space) E T A O I N S
proba. 0.1859 0.1031 0.0796 0.0642 0.0632 0.0575 0.0574 0.0514
char. R H L D U C F M
proba. 0.0484 0.0467 0.0321 0.0317 0.0228 0.0218 0.0208 0.0198
char. W Y G P B V K X
proba. 0.0175 0.0164 0.0152 0.0152 0.0127 0.0083 0.0049 0.0013
char. J Q Z
proba. 0.0008 0.0008 0.0005
a Calculez lentropie de langlais, dans le sens dune source dinformation gnrant des s-
quences indpendantes partir de lalphabet ci-dessus.
b Construisez un code de Huffman binaire pour la source ci-dessus.
c Quel est le taux de compression maximal que lon peut esprer pour la source ci-dessus
(considre comme une source sans mmoire) en utilisant des codes sans prfixe ?
Exercice 6.2.5:
Lobjectif de cet exercice est dillustrer le fait que les principes de codage efficaces peuvent
tre appliqus divers domaines, y compris la thorie de la dcision.
On vous donne 9 pices de monnaie et une balance deux plateaux non biaise. Parmi ces 9
pices, une est de poids diffrent. Le problme est de trouver la pice diffrente en effectuant
un nombre minimal de peses et de dire si elle est plus lourde ou plus lgre que les autres.
120 CHAPITRE 6. EXERCICES DU MODULE C2
Exercice 6.2.6:
121
122 CHAPITRE 7. COMPLMENTS AU CODAGE EFFICACE DE LINFORMATION
7.1.1 Introduction
Les mots de code de longueur variable considrs dans le chapitre 5 ne conviennent pas tou-
jours en pratique. Si les mots de code doivent, par exemple, tre stocks en mmoire, les mots
de code dont la longueur est gale la longueur des mots de la mmoire (c.--d. 8, 16 ou 32
bits) sont certainement prfrables. Toutefois, ctait prcisment la variabilit de la longueur
des mots de code qui faisait lefficacit des codes prsents dans le chapitre 5 ! La question
est alors : est-il possible dobtenir une efficacit de codage similaire lorsque lon force tous les
mots de code avoir la mme longueur ? La rponse est oui, condition que les mots de code
ne soient plus assigns des blocs de longueur fixe de symboles de la source mais plutt des
blocs de longueur variable de symboles de la source, c.--d. quune segmentation longueur
variable de la source doit tre effectue. De tels codes sont appels codes de longueur fixe :
les mots de code D-aires ont tous la mme longueur n, mais la longueur LV , des messages V
auxquels les mots de code sont assigns, est une variable alatoire.
tant donn que n/E [LV ] est le nombre moyen de signes de code D-aires par symbole de la
source, le critre doptimalit dun tel code devient E [LV ], la longueur moyenne de message
cod ; qui doit tre rendue aussi grande que possible.
n o
Exemple 7.1 (Ensemble Propre) Lensemble a, b, ca, cb, cc est un ensemble propre.
n o n o
Les ensembles a, b, ca, cb et aa, ac, b, cb, cc ne sont pas des ensembles propres.
Voici les arbres de codage correspondants :
a b c a b c a b c
a b c a b c a b c a b c
valuation 32
Pour chacun des ensembles suivants, dcidez si lensemble est un ensemble propre ou pas :
7.1. CODES DE LONGUEUR FIXE : CODE DE TUNSTALL 123
Thorme 7.1 Lincertitude H(V ) dun ensemble propre V pour une source din-
formation sans mmoire discrte D-aire, dont lincertitude est H(U ), satisfait :
Nous pouvons maintenant voir comment le thorme de codage sans bruit de Shannon (par-
tie 1) sapplique aux ensembles propres de sources dinformation sans mmoire :
Thorme 7.2 Pour tout code instantan D-aire Z de tout ensemble propre de mes-
sages V pour une source dinformation discrte sans mmoire U , le rapport de la
longueur moyenne de mot de code E [LZ ] sur la longueur moyenne de message cod
E [LV ], satisfait
H(U ) E [LZ ]
log D E [LV ]
o H(U ) est lincertitude dun seul symbole de la source.
H(V )
E [LZ ] ,
log D
124 CHAPITRE 7. COMPLMENTS AU CODAGE EFFICACE DE LINFORMATION
donc :
H(U )
E [LV ] E [LZ ] .
log D
La section suivante examine la procdure efficace pour construire des codes de longueur fixe
efficaces, mais nous avons tout dabord besoin dune autre dfinition ; ce qui est le sujet de
cette section.
0.7
0.3
0.7 0.3 0.49
0.21
0.09
0.343
0.49 0.21 0.21 0.147
Les ensembles de messages de Tunstall sont des codes de longueur fixe optimaux, c.--d.
quils fournissent un maximum de longueur de message cod moyenne, comme stipul par
le thorme suivant :
D MONSTRATION Prouvons tout dabord que si un ensemble propre nest par un ensemble
de Tunstall, il ne peut ds lors pas maximiser la longueur de message cod moyenne.
Soit W un ensemble propre qui nest pas un ensemble de Tunstall. Il existe alors dans larbre
de codage correspondant une feuille w et un nud interne n tels que
P (n ) < P (w)
Considrons ensuite larbre de codage obtenu par dplacement du sous-arbre situ en-dessous
7.1. CODES DE LONGUEUR FIXE : CODE DE TUNSTALL 125
n*
0.7 0.3 0.7
0.3
0.49 0.09
0.49 0.09 0.21 0.21
w 0.21 0.21
0.343 0.147 0.063 0.027
0.063 0.027
0.103 0.044
P P
Il faut noter que les deux sommes nN (T ) p(n) et nN (T ) p(n) ont le mme nombre
P termes (puisque T et T ont mme arit P
de et mme nombre de feuilles) et donc
wN (T )F (T ) p(w) (1 + ) (dvelope) et les autres nN (T ) p(n) ont galement le
126 CHAPITRE 7. COMPLMENTS AU CODAGE EFFICACE DE LINFORMATION
n N (T ) w F (T ) p(t) p(w),
et donc : X X
p(n) p(w) (1 + )
les autres nN (T ) wN (T )F (T )
(ces deux sommes ayant autant de termes, chacun des termes de la premire pouvant tre
appari (bijection) un terme plus petit (ou gal) de la seconde).
Do : X X
p(n) p(n)
nN (T ) nN (T )
Soit n la taille dsire des mots de code, et soient DU et DZ respectivement larit de la source
U et larit du code Z. Le nombre maximal de mots de code est alors DZ n .
Nous voulons construire un ensemble de Tunstall de taille M pour U (M DZ n ), c.--d. que
nous cherchons (entre autres) un code complet, c.--d. sans feuilles inutiles (ensemble propre).
Nous devons donc avoir M de la forme (voir lemme 5.3) :
M = 1 + k (DU 1)
k boucles :
1) prolonger la racine
valuation 33
Nous cherchons un code de longueur fixe binaire 4 bits optimal de la source ternaire, dont
les probabilits des symboles sont P (U = a) = 0.6, P (U = b) = 0.3 et P (U = c) = 0.1.
code de longueur fixe : codage de blocs de longueur variable de la source dinformation par
des mots de code qui ont tous la mme taille.
ensemble propre : un ensemble complet de feuilles dun arbre de codage (pas de feuilles
inutiles).
ensemble de Tunstall : un ensemble propre tel que chaque nud de larbre de codage cor-
respondant soit au moins aussi probable que nimporte laquelle de ses feuilles.
optimalit des ensembles de Tunstall : un ensemble propre maximise la longueur de mes-
sage cod moyenne si et seulement si cest un ensemble de Tunstall.
n
algorithme de Tunstall : k = DDZU 1
1
,M = 1 + k (DU 1), prolonger k fois le nud le
plus probable.
n 1 2 3 4 5 6 7 8
Z0 (n) 1 10 11 100 101 110 111 1000
ce qui est assez proche de loptimum thorique dans le cas le plus gnral (log2 n).
Ce code souffre toutefois dun inconvnient majeur : il est loin dtre instantan. En fait, chaque
mot de code Z0 (n) est le prfixe dinfiniment beaucoup dautres mots de code !
La premire ide mise par Elias fut dajouter un code de longueur |Z0 (n)| devant Z0 (n) pour
rendre le code instantan. Le code finalement propos consiste ajouter |Z0 (n)| 1 zros
devant Z0 (n). Voici un exemple de ce code, que nous appelons Z1 :
n 1 2 3 4 5 6 7 8
Z1 (n) 1 010 011 00100 00101 00110 00111 0001000
Z1 est maintenant un code instantan. Sa longueur est toutefois loin de celle dsire : il est
deux fois plus long :
|Z1 (n)| = 2log2 n + 1
7.2. CODAGE DES ENTIERS POSITIFS 129
Le truc intelligent utilis par Elias pour se dbarrasser de cet inconvnient fut de changer
le codage de la longueur fait par des zros en le code Z1 de cette longueur. Un mot de code est
ainsi fait de lenchanement de Z1 (|Z0 (n)|) et de Z0 (n).
Par exemple, 7 est cod en 111 par Z0 , ayant ainsi une longueur de 3. Ceci donne le prfixe
Z1 (3) =011, et 7 est donc cod en 011111 (=011,111). Voici dautres exemples :
n 1 2 3 4 5 6 7 8
Z2 (n) 11 01010 01011 011100 011101 011110 011111 001001000
Notez que Z0 (n) commence toujours avec un 1, qui nest maintenant plus requis pour viter
lambigut. On peut donc se dbarrasser de ce 1 inutile. Ceci nous mne au code dElias final
pour les entiers, dsign ici par Z2 :
n 1 2 3 4 5 6 7 8
Z2 (n) 1 0100 0101 01100 01101 01110 01111 00100000
et pour le prfixe :
|Z1 (|Z0 (n)|)| = 2log2 (log2 n + 1) + 1
Donc :
Il est assez remarquable quElias ait trouv un code binaire sans prfixe pour les entiers, dont
la longueur est assez proche de loptimum log2 n, et qui est de plus facilement implmentable.
valuation 34
Les codes dElias sont des codes binaires instantan pour les entiers, dont la longueur est
(asymptotiquement) proche de loptimum log2 (n).
Ces codes rsultent de lenchanement dun prfixe, fait du premier code dElias de la lon-
gueur de la reprsentation binaire habituelle du nombre coder, et dun suffixe, fait de
la reprsentation binaire habituelle sans son bit le plus significatif.
130 CHAPITRE 7. COMPLMENTS AU CODAGE EFFICACE DE LINFORMATION
Exemple 7.4 Considrons, comme exemple dune source avec des dpendances internes,
la source oscillante U consistant en une source binaire stationnaire telle que pU (0) =
pU (1) = 0.5 et :
(et pas dautres dpendances plus long terme), c.--d. P (Ui |Ui1 ...U1 ) = P (Ui |Ui1 ),
sinon au moins une des quations ci-dessus ne serait pas vrifie).
Lentropie dun symbole seul de cette source est clairement H(U ) = 1 bit. Quen est-il du
taux dentropie ?
o e
h(p) est lentropie dune variable alatoire binaire de paramtre p :
7.3. CODAGE DE SOURCES MMOIRE 131
e
h(p) = p log(p) (1 p) log(1 p).
Pour de telles sources stationnaires discrtes, la premire partie du thorme de codage sans
bruit de Shannon se gnralise :
Thorme 7.4 La longueur moyenne E [LZ ] dun code D-aire Z sans prfixe pour
des segments de longueur k dune source discrte stationnaire U vrifie :
h (U ) E [LZ ]
log D k
Une manire simple de coder efficacement des sources stationnaires consiste segmenter le
flux de symboles de la source en squences de longueur fixe k et de considrer cette nouvelle
source, dsigne ci-aprs par U (k) , pour le code de Huffman (sans mmoire).
Par exemple, si le flux dorigine est 001010011010... et si nous prenons k = 3, nous
considrerons les messages 001, 010, 011, etc... sparment.
Plus grand est k, plus U (k) traite de dpendances et plus efficace sera le code de Huffman cor-
respondant. Cette solution requiert malheureusement trop de puissance de calcul pour pouvoir
tre utilise en pratique pour des grands k.
Exemple 7.5 Voici le code de Huffman de la source oscillante de lexemple 7.4 avec des
blocs de taille 3.
U P (U )
000 0.5 0.01 0.01 = .00005
001 0.5 0.01 0.99 = .00495
010 0.5 0.99 0.99 = .49005
011 0.5 0.99 0.01 = .00495
100 0.5 0.99 0.01 = .00495
101 0.5 0.99 0.99 = .49005
110 0.5 0.01 0.99 = .00495
111 0.5 0.01 0.01 = .00005
0.50995
0.0199
0.01
0.00505
0.0001 0.0099
Rn (v) est donc le nombre de symboles reus au temps n depuis la dernire rception
de v (avant n).
Pour que le compte de prcdence soit dfini pour chaque n possible (mme les
premiers), une convention doit tre choisie pour donner une valeur dindex initiale
tous les symboles possibles.
Dfinition 7.4 (Suite des (compte de) prcdences) La suite des prcdences N
associe un processus alatoire V est le processus alatoire dfini par Nn =
Rn (Vn ).
vn Rn (0) Rn (1) Nn
0 2 1 2
1 1 2 2
0 2 1 2
1 1 2 2
1 2 1 1
0 3 1 3
1 1 2 2
0 2 1 2
1
Elias-Willems utilise en fait le rang dans les comptes de prcdence, qui est gnralement plus petit que le
compte de prcdence mais naffecte par les rsultats gnraux prsents ici.
7.3. CODAGE DE SOURCES MMOIRE 133
valuation 35
Considrant une source binaire avec des symboles un bit et la convention que 0 a lindex par
dfaut initial -1 et 1 0, quelle est la suite des prcdences pour la squence source correspon-
dante : 0001101000111 ?
valuation 36
Considrant une source binaire avec des symboles un bit et la convention que 0 a lindex par
dfaut initial -1 et 1 0, quelle est la squence source correspondant la suite des prcdences :
1,3,1,3,1,3,2,2 ?
Voici maintenant une proprit qui nous sera utile pour apprcier lefficacit du schma dElias-
Willems.
Prouvons maintenant que le code dElias du compte de prcdence effectue un code qui est
asymptotiquement efficace, c.--d. tendant asymptotiquement vers loptimum thorique donn
par le thorme 7.4.
Thorme 7.5 La longueur moyenne E [|Z2 (N )|] dun code dElias-Willems avec
des blocs de taille k dune source stationnaire U vrifie :
E [|Z2 (N )|] c 2 ck (U ) + 1) + 1
h (U ) hk (U ) + log2 (k h
k k k
Corollaire 7.1 La longueur moyenne E [|Z2 (N )|] dun code dElias-Willems avec
des blocs de taille k dune source stationnaire U vrifie :
E [|Z2 (N )|]
lim = h (U )
k k
E [|Z2 (Ri (v))|] log2 (Ri (v)) + 2 log2 (log2 (Ri (v)) + 1) + 1
et de la proprit 7.1
X X
E [|Z2 (N )|] pV (v) log2 (pV (v)) + 2 pV (v) log2 (1 log2 (pV (v))) + 1
vVV vVV
ck (U ), donc :
Notez finalement que H(V ) = H(U (k) ) = H(U1 , ..., Uk ) = k h
E [|Z2 (N )|] c 2 1
hk (U ) + log2 (k hk (U ) + 1) +
k k k
valuation 37
Lide du trs populaire codage de Lempel-Ziv est assez similaire celle du schma de codage
dElias-Willems : en utilisant des ides similaires celle de compte de prcdence, il vise aussi
tre universel, c.--d. bien fonctionner pour diffrents types de sources stationnaires sans
connatre prcisment toutes leurs proprits statistiques.
7.3. CODAGE DE SOURCES MMOIRE 135
Ces algorithmes sont les algorithmes de compression les plus utiliss en pratique (p.ex. en zip,
compress, gzip, ...). Les raisons principales sont que ces algorithmes donnent de manire
efficace un bon taux de compression. Ces algorithmes sont en effet linairement complexes et
nexigent que peu de mmoire.
Dans cette section, nous nous concentrons sur le noyau de ces algorithmes de compression en
prsentant le plus simple dentre-eux : LZ77.
Pour ce code, les mots de code sont des uplets (i, j, u). i et j sont des nombres entiers et u est
un symbole de la source.
Le mot de code (i, j, u) reprsente une squence de symboles qui peuvent tre obtenus partir
de la squence courante
en copiant j symboles en partant depuis i positions en arrire
et en ajoutant le symbole u la fin.
Si i est nul, j est ignor.
Exemple 7.7 (Mot de code LZ77) Par exemple, si la squence courante dcode est
10010, le mot de code (3, 2, 1) reprsente la squence 011 : en copiant 2 symboles (01) en
partant de 3 positions en arrire (10|010), et en ajoutant 1 la fin.
Si j est plus grand que i, la copie du caractre continue avec les caractres nouvellement
copis (c.--d. que le tampon dbutant i positions en arrire est cyclique).
Par exemple, si la squence courante dcode est 10010, le mot de code (3, 5, 1) reprsente
la squence 010011 : en partant de trois positions en arrire (10|010) en copiant cinq
symboles : dabord les trois symboles existant dj en i = 3 positions en arrire (010), ce qui
donne 10010|010, et en continuant avec les deux caractres suivants, 01 depuis le caractre
nouvellement ajout, ce qui donne 1001001001. Le dcodage se termine finalement par
laddition du 1 (dernier lment du mot de code) la fin, ce qui donne 10010010011.
En rsum : 10010 + (3, 5, 1) = 10010010011.
Lalgorithme de codage correspondant, qui utilise un tampon fentre glissante pour se rappe-
ler du contexte pass, est le suivant :
1. chercher dans le contexte courant (c.--d. le dbut de la squence restant coder) la
squence la plus courte qui nest pas encore dans le tampon ;
2. retirer le dernier caractre u de cette squence inobserve et chercher dans le tampon la
squence correspondante la plus proche ;
3. mettre les position en arrire (i) et longueur (j) correspondantes, suivies par le dernier
caractre retir (u)
4. mettre jour le tampon (avec la squence nouvellement code) et retourner en 1 tant
quil reste une entre.
Voici un exemple ce cet algorithme de codage :
valuation 38
7.3. CODAGE DE SOURCES MMOIRE 137
valuation 39
En quoi la squence (0,0,0) (1,2,1) (2,5,0) est-elle dcode (en faisant lhypothse dun codage
LZ77) ?
thorme de codage sans bruit de Shannon pour des codes sans prfixe dune source sta-
tionnaire : hlog
(U )
D
E[LZ ]
k .
compte de prcdences Rn (v) est le nombre de symboles reus au temps n jusqu la der-
nire rception de v (avant n).
codes dElias-Willems codage dElias du compte de prcdence.
algorithme de Lempel-Ziv LZ77 : utilise un tampon (cyclique) se rappelant la squence
passe, code des squences avec des mots de code consistant en une position en arrire
dans le tampon, une longueur et un caractre ajouter en fin de la squence actuelle.
R SUM DU CHAPITRE 7
passe, code des squences avec des mots de code constitu de : une position (en ar-
rire) dans le tampon, une longueur et un caractre ajouter en fin de la squence
actuelle.
Histoire et bibliographie
En dpit de son importance fondamentale, le travail de Tunstall ne fut jamais publi dans la
littrature. La thse de doctorat de Tunstall (A. Tunstall, Synthesis of Noiseless Compression
Codes , Ph.D. thesis, Georgia Institute of Technology, Atlanta, GA, 1968), qui contient ce tra-
vail, resta non remarque pendant de longues annes avant de devenir familire aux thoriciens
de linformation.
Chapitre 8
Exercices du module I1
Exercice 8.1.1:
1 2 3 4 5 6
0.12 0.15 0.16 0.17 0.18 0.22
a Avec un code de Tunstall binaire codant sur 4 bits, combien de squences de ce d peut-on
coder ? Lesquelles (c.--d, dessinez larbre de codage) ?
e Coder la squence 1664 laide de ce codes.
Exercice 8.2.1:
P (0|0) = p P (0|1) = 1 p
(p < 1/3)
P (1|0) = 1 p P (1|1) = p
139
140 CHAPITRE 8. EXERCICES DU MODULE I1
a Calculer lentropie dun symbole quelconque la source (cela un sens puisque la source
est stationnaire).
Calculer la longueur moyenne dun code binaire par symbole de cette source (ne cher-
chez pas trop loin : ceci est vraiment trivial !).
b Calculer lentropie assymptotique de la source, c.--d.
H (U ) = lim H(Un |U1 ... Un1 )
n
Exercice 8.3.1:
Lexercice prcdent illustre lapport des techniques de codage par blocs pour des sources
mmoire . Le problme de telles approches reste cependant le choix de la taille du bloc
qui, pour tre optimal, reste tributaire de la connaissance de la source (c.--d. la connaissance
de P (Un |U1 ... Un1 )). Il existe cependant de nombreuses techniques de compression, dites
universelles , dont le taux de compression tant assymptotiquement vers H (U ) sans pour
autant connatre les caractristiques fines de la source1 . Une telle technique est lalgorithme
de Lempel-Ziv utilis2 par exemple dans les programmes compress ou gzip. En voici le
principe :
a La premire tape consiste dcouper le message coder en sous-chanes (en commenant
par la chane vide) de sorte ne jamais rpter deux fois la mme sous-chane et
toujours crer la sous-chane la plus courte possible. Effectuer ce3 dcoupage sur le
message 0110100100100101011010.
1
Il faut cependant faire des hypothses de stationnarit et dergodicit de la source.
2
avec divers raffinements. Lalgorithme prsent ici est connu sous le nom LZ78.
3
car il est unique
8.3. CODAGE DE SOURCES MMOIRE 141
Module C4 : Transmission
dinformation en prsence de bruit
Introduction
Lorsquon traite d information , lun des objectifs principaux est de la transmettre de fa-
on fiable. Dans ce contexte, transmettre signifie aussi bien transmettre une information
dun point un autre , comme nous lentendons gnralement, que la transmettre travers
le temps ; par exemple, pour la stocker quelque part (la mmoriser) puis la rcuprer plus
tard. Dans les deux cas, cependant, la transmission de linformation peut rarement tre accom-
plie de faon totalement fiable dans la vie relle. Il existe toujours un risque de distorsion de
linformation transmise : du bruit sur la ligne, une fuite dans la mmoire ou le disque dur o
linformation est stocke, etc.
Quel effet le bruit a-t-il sur la transmission de messages ? Plusieurs situations sont possibles :
il nest jamais possible de transmettre des messages de faon fiable (trop de bruit) ;
il est possible de transmettre des messages avec une probabilit derreur raisonnable ;
143
144 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
il est possible de transmettre des messages avec une probabilit derreur aussi faible que lon
veut ( laide de codes correcteurs).
Lobjectif du prsent chapitre est prcisment dtudier en quoi le codage peut aider trans-
mettre linformation de faon fiable, mme en prsence de bruit pendant la transmission. Lide
de base de tels codages est de tenter dajouter de la redondance au message cod. Ainsi, sa
transmission dans des conditions de bruit raisonnables conserve suffisamment dinforma-
tion intacte, de faon ce que le destinataire soit en mesure de reconstituer le message original
sans distorsion.
Bien entendu, il est ncessaire de dfinir plus prcisment les notions de redondance suffi-
sante et de conditions de bruit raisonnables ; elles doivent mme tre quantifies et relies
lune lautre. Cela se fait en formalisant tout dabord la notion de transmission bruite
par lintroduction de la notion de canal de communication (section 9.1).
Comme nous le verrons dans la section 9.3, les deux notions fondamentales rgissant les trans-
missions en prsence de bruit sont la capacit de canal et le taux de transmission des symboles
des messages. Ces notions sont galement introduites dans la section 9.1.
Bruit
Message
Source reu
Codeur Canal Decodeur
n
Ui z1i ... zni z 1 ... z U
{
{
Zi Z
Mot de code Mot de code
transmis reu
F IG . 9.1 Communication avec correction derreur travers un canal bruit.
Le cadre gnral dans lequel se place ce chapitre est rsum en figure 9.1.
Dfinition 9.1 (Canal discret sans mmoire (DMC)) Le canal discret sans m-
moire (DMC ) est le type de canal de communication le plus simple. Formellement,
un DMC est dfini par les trois objets suivants :
1. un alphabet dentre discret VX , dont les lments reprsentent les symboles
possibles mis pour tous les messages dentre (la source X);
2. un alphabet de sortie discret VY , dont les lments reprsentent les symboles
possibles reus (squence de sortie); et
3. pour chaque x VX , les distributions de probabilit conditionnelles pY |X=x
qui dcrivent le comportement du canal de faon ce que pour tout n =
1, 2, 3, . . . :
Exemple 9.1 (Canal binaire symtrique) Le cas le plus simple (et non trivial) de DMC est
le canal binaire symtrique (BSC ), pour lequel VX = VY = {0, 1} ( binaire ) et
1
La notion de message a t dfinie dans le chapitre 5.
146 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
( symtrique ). Cette valeur p = pY |X=0 (1) = pY |X=1 (0) est appele le taux derreur et
est le seul paramtre du BSC. En effet, pY |X=0 (0) = pY |X=1 (1) = 1 p.
Un BSC est alors reprsent par le diagramme suivant :
1p
1 1
p
X p Y
0 1p 0
Exemple 9.2 (Transmission bruite via un canal binaire symtrique) Supposons que
nous voulions transmettre les 8 messages suivants : 000, 001, 010, 011, 100, 101, 110
et 111.
Supposons que le canal utilis pour la transmission soit bruit, et quil modifie un symbole
sur dix, indpendamment de tout le reste; cest--dire que chaque symbole a une probabilit
p = 0.1 dtre chang (0 en 1, et 1 en 0). Un tel canal est donc un BSC avec un taux
derreur gal p = 0.1,
Quelle est alors la probabilit de transmettre correctement un de nos messages ?
Sans tenir compte de quel message est envoy, cette probabilit est :
3
Quelle est la probabilit de changer 2 symboles correspondants ? Seulement 1 p2 (1p)4 =
3 p2 (1 p)4 .
De la mme faon, la probabilit de changer 4 symboles correspondants est 3 p4 (1 p)2 , et
la probabilit de changer les six symboles est p6 .
Donc la probabilit de ne pas dtecter une erreur est
Ce qui est beaucoup plus petit ! Cela signifie que la probabilit de commettre une erreur la
rception (cest--dire de faire confiance un message sans sapercevoir quil est erron) est
0.02, soit 2% seulement.
Conclusion : certains codages sont meilleurs que dautres pour la transmission de messages
via un canal bruit .
Clarifions maintenant la situation o un DMC est utilis sans retour , cest--dire lorsque la
distribution de probabilit des entres ne dpend pas de la sortie. Plus formellement, on dit
quun DMC est sans retour lorsque :
pour tout n = 1, 2, 3, . . . . Notez que (9.2) nimplique pas que nous choisissions chaque sym-
bole dentre indpendamment des symboles dentre prcdents, mais simplement que nous
nutilisons absolument pas les symboles de sortie prcdents lorsque nous choisissons des sym-
boles dentre successifs (comme nous pourrions le faire si un canal dinformation en retour
tait disponible de la sortie lentre du DMC).
Donnons prsent un rsultat fondamental sur le DMC sans retour.
Thorme 9.1 Pour tout DMC sans retour, nous avons pour tout n N :
n
X
H(Y1 . . . Yn |X1 . . . Xn ) = H(Yi |Xi )
i=1
Le rle dun canal est de transmettre des messages ( information ) dun point (lentre)
un autre (la sortie). La capacit dun canal mesure prcisment cette comptence : cest la
quantit maximale dinformation moyenne que la sortie du canal peut fournir sur lentre.
Souvenez-vous quun DMC est entirement spcifi par les distributions de probabilit condi-
tionnelle pY |X=x (o X reprsente lentre du canal et Y la sortie). La distribution de probabi-
lit dentre pX (x) ne fait pas partie du canal, mais uniquement de la source dentre utilise.
La capacit dun canal est donc dfinie comme linformation mutuelle maximale I(X; Y ) qui
peut tre obtenue parmi tous les choix possibles de pX (x). Plus formellement :
148 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
Dfinition 9.2 (Capacit dun canal) La capacit C dun canal discret sans m-
moire est dfinie comme
C = max I(X; Y ), (9.3)
pX
Nous verrons brivement que cette dfinition est effectivement trs utile pour ltude des trans-
missions bruites. Mais donnons tout dabord un premier exemple.
Exemple 9.3 (Capacit dun BSC) Quelle est la capacit C dun BSC, comme dfini dans
lexemple 9.1?
Notez tout dabord que par dfinition de linformation mutuelle,
C = max H(Y ) H(Y |X) .
pX
puisquil ne dpend pas de pX . Par ailleurs, puisque Y est une variable alatoire binaire,
nous avons (par le thorme 1.2) : H(Y ) log 2, cest--dire H(Y ) 1 bit. Ce maximum
peut-il tre atteint pour certains pX ? Oui, en effet : si X est distribue uniformment, nous
avons pY (0) = p pX (1) + (1 p) pX (0) = 0.5 p + 0.5 (1 p) = 0.5; ce qui signifie
que Y est aussi distribue uniformment, ce qui mne H(Y ) = 1 bit. Par consquent :
maxX H(Y ) = 1 bit et donc
C =1e
h(p) (en bit).
valuation 40
Quelle est la capacit du canal symtrique perte dfini par le graphe suivant :
1p
0 0
p
X (perte) Y
p
1 1
1p
Ici, nous considrons uniquement des DMC ayant un alphabet fini, cest--dire un nombre fini
K de symboles dentre et un nombre fini J de symboles de sortie.
Dfinition 9.3 On dit quun tel DMC est symtrique lentre si les distributions de
probabilit derreur sont toutes les mmesapour tous les symboles dentre; cest--
dire que les ensembles pY |xi (y) : y VY sont indpendants de xi .
a
une permutation prs
Un BSC est symtrique lentre. Celui de la figure (a) ci-dessus est galement symtrique
lentre, mais le canal de la figure (b) nest pas symtrique lentre.
Lemme 9.1 Pour un DMC symtrique lentre, H(Y |X) est indpendant de la
distribution pX , et H(Y |X) = H(Y |xi ) pour tout xi VX .
o {p1 , p2 , . . . , pJ } est lensemble des probabilits transition pY |xi (y), qui est indpendant
du symbole dentre xi . Par consquent,
X X
H(Y |X) = pX (x)H(Y |X = x) = pX (x)H0 = H0
x x
Pour un DMC symtrique lentre, trouver la probabilit dentre qui ralise la capacit (i.e.
atteint le maximum de )se rduit simplement trouver la distribution dentre qui maximise
lincertitude de la sortie.
150 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
Un canal symtrique lentre est un canal dans lequel les probabilits sortant de chaque
symbole dentre sont identiques. Nous considrons prsent des canaux ayant la proprit
que les probabilits entrant sur chaque symbole de sortie sont identiques.
a
Certains auteurs ont appel cette proprit faible symtrie en sortie .
Exemple 9.5 (Canal symtrique en sortie) Tout BSC (voir exemple 9.1) est symtrique en
sortie. Le canal de lexemple 9.4, figure (b), est symtrique en sortie, mais celui de la fi-
gure (a) ne lest pas.
Lemme 9.2 Pour un DMC symtrique en sortie, une distribution de probabilit den-
tre uniforme (cest--dire pX (xi ) est la mme pour tout xi ) conduit une distribu-
tion de probabilit de sortie uniforme (cest--dire que pY (yi ) est la mme pour tout
yi ).
D MONSTRATION
X 1 X
pY (yj ) = pY |xi (yj )pX (xi ) = p (yj )
xi
|VX | x Y |xi
i
Mais puisque le DMC est symtrique en sortie, la somme de droite dans cette dernire qua-
tion est indpendante de yj . Donc pY est indpendant de yj ; cest--dire quil est la distribu-
tion de probabilit uniforme.
Proprit 9.2 Pour tout DMC symtrique en sortie (dentre X et de sortie Y ), nous
avons :
max H(Y ) = log |VY |. (9.6)
pX
9.1. CANAL DE COMMUNICATION 151
Dfinition 9.5 (Canal symtrique) Un DMC est symtrique lorsquil est la fois
symtrique en entre et symtrique en sortie.
Thorme 9.2 La capacit dun canal symtrique (dont lentre est X et la sortie
Y ) est donne par :
C = log |VY | H0 (9.7)
o H0 = H(Y |X = xi ) pour nimporte lequel des symboles dentre xi VX .
Exemple 9.6 Le BSC (voir exemple 9.1) est un canal pour lequel H0 = e
h(p) = p log p
(1 p) log(1 p). Ainsi,
CBSC = log 2 e
h(p) = 1 e
h(p) (en bit)
Notez que |VU | reprsente galement le nombre de mots de code possibles (code non-singulier
dterministe).
En pratique, on utilise larit du code comme base b pour le logarithme dans le calcul du taux
de transmission.
Exemple 9.7 Le taux de transmission (binaire) du code utilis dans lexemple 9.2 est R =
log 8 3 1
6 = 6 = 2 . Cela semble raisonnable puisque ce code rpte chaque message deux fois,
cest--dire quil utilise deux fois les symboles mis lorigine.
valuation 41
Sur un canal bruit, nous prvoyons dutiliser un code consistant tripler chaque symbole des
messages. Par exemple, a sera transmis aaa.
Quel est le taux de transmission R dun tel code ?
(Si vous tes perplexes au sujet de la base, choisissez pour cette dernire larit de la source,
cest--dire le nombre de symboles diffrents que la source peut mettre.)
152 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
Nous avons dfini la capacit dun canal comme tant la quantit maximale dinformation que
la sortie du canal peut fournir sur lentre. Que peut-on dire si nous employons plusieurs fois
le mme canal (comme ce devrait tre le cas dans la vie relle !) ?
Lemme 9.3 Si un DMC sans retour, de capacit C est utilis n fois, nous avons :
I(X1 . . . Xn ; Y1 . . . Yn ) n C
Ici, nous considrons la situation illustre en figure 9.2, o plusieurs processeurs sont em-
ploys successivement. Les processeurs considrs ici sont des botes noires totalement
arbitraires. Ils peuvent tre dterministes ou stochastiques. Ils peuvent mme ne rien contenir
du tout. Tout ce que la figure 9.2 affirme, cest quil ny a pas de chemin cach par lequel
X peut affecter Z, cest--dire que X ne peut affecter Z quindirectement travers son effet
sur Y . En termes mathmatiques, cette contrainte peut tre exprime ainsi :
pour tout y tel que pY (y) 6= 0, ce qui signifie que lorsque y est donn, z nest pas influenc
par x.
9.2. QUELQUES LEMMES 153
X Processeur Y Processeur Z
no. 1 no. 2
Le lemme du traitement des donnes dit essentiellement que linformation ne peut tre aug-
mente daucune faon par un quelconque traitement (bien quelle puisse ventuellement tre
mise sous une forme plus accessible !).
Lemme 9.4 (Lemme de traitement des donnes) Lorsque (9.8) est valable, nous
avons :
I(X; Z) I(X; Y ) (9.9)
et
I(X; Z) I(Y ; Z). (9.10)
prsent, pour la premire fois depuis le dbut de notre tude de la thorie de linformation,
nous introduisons la notion d erreurs . Supposons que nous pensions la variable alatoire
b comme tant une estimation de la variable alatoire U . Afin que cela ait un sens, U
U b doit
prendre les valeurs du mme alphabet que U . Une erreur est alors simplement lvnement
b 6= U et la probabilit derreur, Pe , est donc
U
b 6= U ).
Pe = P (U (9.11)
Nous sommes maintenant prts pour lun des rsultats les plus intressants et les plus impor-
b ).
tants en thorie de linformation, et qui relie Pe lincertitude conditionnelle H(U |U
Nous pouvons maintenant aborder linterprtation du lemme de Fano. Tout dabord, nous ob-
servons que la fonction gauche de (9.12), esquisse en figure 9.3, est concave en Pe et est
positive pour tout Pe (0 < Pe 1) .
b ) est donne, (9.12) spcifie implicitement une
Ainsi, lorsquune valeur positive de H(U |U
borne infrieure positive sur Pe .
b soient binaires (i.e., D = 2) et que H(U |U
Exemple 9.8 Supposons que U et U b) = 1
bit.
2
Alors (9.12) donne
e 1
h(Pe )
2
154 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
~
h(Pe) + P e log(D 1)
log D
log(D 1)
0 D1 1 Pe
D
b ).
F IG . 9.3 Evolution en fonction de Pe de la borne sur H(U |U
Le fait quici (9.12) donne galement une borne suprieure non-triviale sur Pe est une cons-
quence du fait que le H(U |U b ) donn excde la valeur prise par le ct gauche de (9.12)
lorsque Pe = 1, savoir log2 (D 1) = 0. Ce nest pas toujours le cas. Par exemple, avec
D = 3 et H(U |U b ) = 1 bits nous obtiendrions, daprs (9.12)
2
e 1
h(Pe ) + Pe ,
2
qui conduit
Pe .084.
mais ne fournit pas de borne suprieure.
La borne suprieure triviale Pe 1 est en effet la seule borne suprieure qui puisse tre
tablie.
Le rle de cette section est de donner un exemple concret de codes correcteurs derreurs trs
simples (voire nafs). Des exemples plus ralistes seront prsents et tudis dans le cha-
pitre 11.
Il y a donc peu de choses apprendre dans cette section, si ce nest que le codage naf par
rptition nest pas trs bon et que dautres codes plus appropris devraient tre considrs en
pratique.
Les codes binaires rptition sont des codes Rk pour lesquels chaque symbole dentre
(binaire) est rpt n = 2 k + 1 fois (k > 1). Par exemple, le code R1 a t employ dans
lexemple 9.2. Nous ne considrons quun nombre impair de rptitions car le dcodage de
tels codes se fait par la majorit. Nous vitons donc le non-dterminisme quun nombre pair de
rptitions pourrait introduire (dans des cas o le mot de code reu contient autant de 0s que
de 1s).
Avec de tels codes, la probabilit dune mauvaise dcision concernant le dcodage dun sym-
bole est la probabilit quau moins k + 1 erreurs se sont produites sur le bloc correspondant.
Considrons le cas o un tel code est employ sur un BSC. Dans ce cas, le nombre derreurs
commises par le canal suit une distribution binomiale de paramtres (n, p). Par consquent, le
nombre derreurs moyen au niveau de la transmission de symboles de mots de code est n p.
Pour p < 0.5, ce nombre moyen est infrieur k + 0.5, donc la probabilit quau moins k + 1
erreurs se soient produites sur un mot de code (soit un bloc de codage), tend tre ngligeable
quand k (et donc n) tend vers linfini. En dautres termes, la probabilit que lon prenne une
mauvaise dcision en dcodant devient ngligeable mesure que le nombre de rptitions
augmente (et donc aussi la longueur des mots de code). Nous pouvons donc compenser, un
degr aussi fin que lon veut, la perte due au bruit sur le canal en choisissant un nombre de
rptitions assez grand.
Cependant, dans ce cas, le prix payer est trs lev en termes defficacit. En effet, le taux de
transmission dun tel code est n1 ... ...qui tend aussi vers 0 lorsque n tend vers linfini ! Pour n
grand, cela devient assurment un taux de transmission inacceptablement bas.
Limportance du thorme de codage bruit est prcisment quil garantit pour tout taux de
transmission donn au-dessous de la capacit lexistence de codes corrigeant suffisamment
156 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
dvnements. Le taux de transmission peut tre fix a priori et na pas besoin dtre ridi-
culement petit comme dans lexemple des codes par rptition. Il faut seulement quil soit
au-dessous de la capacit du canal.
e-nnexe : Codes par rptition sur un BSC
valuation 42
Sur un BSC de probabilit derreur p, nous envisageons dutiliser le code par rptition R1
consistant tripler chaque symbole des messages. Le dcodage est fait la majorit dans le
bloc reu.
En fonction de p, quelle est la probabilit Pb derreur par bit en sortie pour un tel systme de
communication ?
1. p2 p3
2. p2
3. 3p2 2p3
4. 2p2 3p3
5. p3
Dans cette section, nous montrons quil est impossible de transmettre de linformation de faon
fiable via un DMC un taux de transmission suprieur la capacit de ce DMC. Sans perte
de gnralit, nous supposons que l information transmettre est la sortie dune source
binaire symtrique (BSS ), pour Binary Symmetric Source , qui est une source binaire sans
mmoire telle que P (0) = P (1) = 21 . Ici, nous considrons le cas o le DMC est sans retour
(voir figure 9.1).
Donnons maintenant un rsultat important (introduit par C. Shannon) sur les transmissions via
un tel canal.
1
Ici, nous avons crit e
h pour la fonction inverse de lentropie dune variable alatoire binaire.
1
Elle est dfinie par e
h (x) = min{p : p log(p) (1 p) log(1 p) = x}, o le minimum
est slectionn de sorte rendre cet inverse unique (voir figure 9.4).
Une consquence importante de ce thorme est que chaque fois que R > C, (9.13) spcifiera
une borne infrieure positive sur la probabilit Pb derreur par bit de sortie quaucun code
9.3. LE THORME DE CODAGE EN PRSENCE DE BRUIT 157
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
1
F IG . 9.4 La fonction e
h , fonction inverse de lentropie dune variable binaire, dfinie par
1
e
h (x) = min{p : p log(p) (1 p) log(1 p) = x}.
correcteur, aussi complexe soit-il, ne pourra rduire. En clair : il est impossible de transmettre
des informations de faon fiable un taux suprieur la capacit du canal.
Avant dexaminer la dmonstration du thorme, donnons un exemple de son utilisation.
Cela signifie quau moins 11% des symboles binaires ne seront pas transmis correctement.
(mme aprs dcodage)
D MONSTRATION Nous voulons montrer que lorsque R > C, il y a une borne infrieure
positive sur Pb quaucune faon de coder ne pourra dpasser.
Soit PB la probabilit derreur par mot :
m
X
b=
PB = P (U 6 U) = bi 6= Ui )
P (U
i=1
A noter que :
1
PB Pb PB mPb (9.14)
m
(on a en effet PB = 1 (1 Pb )m et Pb = 1 (1 PB )1/m ).
Par lutilisation du lemme de Fano, nous avons, dans le cas binaire considr ici :
e
h(PB ) = e b 6= U )) H(Ui |Ubi )
h(P (U
En outre, puisque e
h(x) est concave en x (pour 0 x 1) et que e
h(0) = 0 :
1 e e 1
h(PB ) h PB . (9.15)
m m
Et comme e
h est croissante sur [0, 0.5] :
1 e
h(PB ) e
h(Pb )
m
puisque dans le cas o la source dentre U est une BSS, H(U ) = H(U (1) . . . U (m) ) =
log 2m = m .
b) ?
Quen est-il de I(U ; U
Si nous prenons pour processeur 1 et processeur 2 de la figure 9.2 respectivement le
codeur et le canal de la figure 9.1, en utilisant le lemme du traitement des donnes,
nous obtenons :
b ) I(Z; U
I(U ; U b) (9.16)
et donc
e n
h(Pb ) 1 C
m
cest--dire, par dfinition du taux de transmission R:
e C
h(Pb ) 1
R
valuation 43
Sur un DMC sans retour de capacit C, nous voulons transmettre un message avec une proba-
bilit derreur par bit Pb infrieure une valeur donne Pb max ]0, 12 [.
Nous ne savons pas encore quel type de code sera utilis. Cependant, nous souhaitons dter-
miner le taux de transmission maximal Rmax que nous pouvons utiliser sur ce canal (et qui soit
compatible avec Pb Pb max ).
Quel est Rmax en termes de C et Pbmax ?
1. C
1
2. e
h (Pb max )
3. C e
h(Pb max )
C
4.
(1 e
h(Pb max ))
1
5.
(C h1 (Pb max ))
1
6. e
h (1 C/Pb max )
Jusqu prsent, nous avons vu quil est impossible davoir une erreur de transmission au-
dessous dun certain niveau si le taux de transmission R est plus grand que la capacit du canal.
Nous tudions maintenant ce qui se passe lorsque nous souhaitons transmettre les messages
dune BSS sur une DMC un taux infrieur sa capacit.
zi Z
zj
zk
Souvenez-vous tout dabord que la capacit dun BSC est C = 1 e h(p), o p est la
probabilit derreur du canal et o e
h(x) est lentropie dune variable alatoire binaire :
e
h(x) = x log x (1 x) log(1 x).
Puisque 0 < R < C, nous avons 1 > 1 R > e
h(p), et par consquent :
~
h(x)
1
1R
~
h(p)
0 1111
0000 x
p ~
h1(1R) 0.5
puisque R + e
h() 1 < 0.
Donc pour tout > 0 donn, il existe n0 tel que
p (1 p) e
n n0 2
+ 2n (R+h()1)
n ( p)
Pour des raisons techniques qui seront plus claires par la suite, nous avons galement besoin
davoir n tel que n = max {q N : q n} > n p. Cest le cas condition que n >
1
n1 = (p) .
En rsum, jusquici, nous sommes parvenus au rsultat suivant :
En fait, ceci est vrai pour tout n > max {n0 , n1 } dfinis ci-dessus.
Nous avons donc trouv lune des longueurs de mots de code appropries n . Proc-
dons alors comme expliqu au dbut avec M = 2n R mots de code et r = n =
max {m N : m n}. Dans ce schma de codage, pour un mot de code zi , une erreur
se produit lorsque (voir figure 9.5)
1 plus de r erreurs de transmission se sont produites : d(b
z , zi ) > r
ou
2 a) d(bz , zi ) r
et
162 CHAPITRE 9. TRANSMISSION DINFORMATION EN PRSENCE DE BRUIT
b) z C, z 6= zi : d(b z , z) r
et
c) i 6= 1
o C = {z1 , ..., zM } reprsente le code.
Par consquent, la probabilit Perr (zi ) quun mot de code donn zi ne soit pas transmis cor-
rectement (dcodage inclus) est born par
E[d(b
z , zi )] = n p z , zi )) = n p (1 p)
var(d(b
n p (1 p)
z , zi ) n p| r n p)
P (|d(b
(r n p)2
Par consquent :
z , zi ) > r) P (d(b
P (d(b z , zi ) r) = P (d(b
z , zi ) n p r n p)
P (|d(b
z , zi ) n p| r n p)
n p (1 p)
(9.19)
(r n p)2
P (z C \ {zi } : d(b
z , z) r)
z , z1 ) r ou ... ou d(b
= P (d(b z , zi1 ) r ou d(b z , zi+1 ) r ou ... ou d(b
z , zM ) r)
X
z , z) r) = (M 1) P (d(b
P (d(b z , z) r)
zC\{zi }
et donc
r
1 X n
z , z) r) = n
P (d(b
2 k
k=0
En outre, comme nous allons le montrer la toute fin de cette dmonstration, nous avons
pour tout 0 r n2 :
Xr
n e r
2n h( n ) ,
k
k=0
n
donc (souvenez-vous que M = 2nR et que r 2 puisque < 0.5) nous avons trouv,
finalement :
2nR 1 n eh( r )
P (z C \ {zi } : d(b
z , z) r) 2 n
2n
e r
2n(R+h( n )1) (9.20)
n p (1 p) e r
Perr (zi ) + 2n(R+h( n )1)
(r n p)2
r
X X n
n n
= (k r)
k k
k=0 k=0
1 si t 0
o (t) =
0 autrement
r
X n (1 + x)n
i.e.
k xr
k=0
r
ce qui est vrai en particulier pour x = nr , avec r n/2:
r
X r n
n (1 + nr )
r r
k ( nr )
k=0
r
X n r r
i.e. 2nlog(1+ nr )rlog( nr )
k
k=0
r r
Mais : n log(1 + ) r log( )
n r n r
r
1 r n
= n log( ) log( )
1 nr n 1 nr
r r r r
= n log (1 ) log(1 )
n n n n
e )r
= n h(
n
ce qui conclut la dmonstration.
valuation 44
Considrons ici lutilisation dun BSC de probabilit derreur p (dont la capacit est donc
C = 1e h(p)). Dans les cas suivants, dites si un code remplissant les conditions demandes
R et Pb pourrait tre construit :
canal p 3% 6%
C 0.807 0.673
code R 2/3 3/4 9/10 2/3 3/4 9/10
Pb (en %) 1 2.2 1 2.2 1 2.2 1 2.2 1 2.2 1 2.2
existe ?
Thorme de Shannon en prsence de bruit : Pour tout > 0 et tout R < C, C tant la
capacit dun canal discret sans mmoire, il existe un code dont le taux de transmission
est R et dont la probabilit derreur par bit en sortie Pb est au-dessous de .
Inversement, tous les codes pour lesquels le taux de transmission est au-dessus de la
1
capacit du canal ont une probabilit Pb suprieure e h 1 CR .
R SUM DU CHAPITRE 9
logb |VU |
Code/Taux de transmission : Rb = n
Capacit de canaux symtriques lentre : C = max [H(Y )] H(Y |X = xi ) pour
PX
nimporte quel xi VX .
Capacit de canaux symtriques : C = log |VY | H(Y |X = xi ) pour nimporte quel
xi VX .
Lemme du traitement des donnes : pZ|x,y (z) = pZ|y (z) = I(X; Z)
I(X; Y ) et I(X; Z) I(Y ; Z)
Lemme de Fano : e b)
h(Pe ) + Pe log2 (|VU | 1) H(U |U
Thorme de Shannon en prsence de bruit : Pour tout > 0 et tout R < C, C tant la
capacit dun DMC, il existe un code dont le taux de transmission est R et dont la
probabilit derreur par bit en sortie Pb est au-dessous de .
Inversement, tous les codes dont le taux de transmission est au-dessus de la capacit
1
de canal ont une probabilit derreur par bit en sortie Pb suprieure e
h 1 C
R .
Histoire et bibliographie
Ce thorme fut une vritable bombe lors de sa publication dans larticle de C. Shannon
en 1948 [9]. Avant cela, on pensait gnralement que pour tablir des communications plus
fiables, il tait ncessaire de rduire le taux de transmission (ou, ce qui est quivalent, daug-
menter le rapport signal/bruit , comme les ingnieurs lauraient dit en 1947). Shannon a
dissip ces mythes en montrant qu condition que le taux de transmission soit au-dessous de
la capacit de canal, on pouvait augmenter la fiabilit en augmentant la complexit du systme
de codage, sans changer le rapport signal/bruit.
La premire dmonstration rigoureuse du thorme de Shannon en prsence de bruit est due
Feinstein, en 1954 [4]. Une dmonstration plus simple employant le codage alatoire tel que
prsent ici fut publie par Gallager en 1965 [5]. La partie rciproque du thorme fut prouve
par Fano en 1952, et publie dans ses notes de cours.
Exercices du module C4
Exercice 10.1.1:
Considrons le canal dfini par le graphe suivant (o reprsente le message vide, o p est la
probabilit derreur et q la probabilit de perte):
1pq
0 0
q
p
p
q
1 1pq 1
Exercice 10.1.2:
a Dmontrez que la mise en cascade (les uns aprs les autres) dun nombre quelconque de
BSC, mme diffrents, mne finalement un BSC.
b Dans le cas spcial o le mme BSC (ayant une probabilit derreur p) est cascaded N fois,
quelle relation de rcurrence la probabilit derreur obtenue PN vrifie-t-elle ?
167
168 CHAPITRE 10. EXERCICES DU MODULE C4
Exercice 10.1.3:
Quelle est la capacit dun canal ternaire (cest--dire dont les alphabets dentre et de sortie
ont 3 symboles diffrents), the transmission probability matrix is:
1 0 0
M = 0 2/3 1/3
0 1/3 2/3
Exercice 10.1.4:
a En supposant que les deux sources X1 et X2 soient indpendantes et que le canal rsultant
vrifie P (Y |X) = P (y1 |x1 ) P (y2 |x2 ) (forte supposition dindpendance1 ), calculez la
capacit de canal rsultante.
b Et si nous considrions une seule source sans mmoire U et utilisions le canal en envoyant
un symbole sur un canal, puis le suivant sur le second canal, etc..; cest--dire si nous
prenions X1 = U2 n et X2 = U2 n+1 ?
Exercice 10.1.5:
Considrons un canal binaire (cest--dire que les alphabets dentre et de sortie sont binaires)
mais non symtrique (par exemple avec une fuite de masse, cest--dire une plus grande
probabilit de produire 0 que 1).
1
Notez que ce nest pas le cas en gnral : deux variables alatoires indpendantes ne sont pas toujours ind-
pendantes daprs une troisime !
10.1. CANAUX DE COMMUNICATION 169
p = P (Y = 0|X = 1) et q = P (Y = 1|X = 0)
de
h(r) 1r
= log2
ds r
o r = s + p.
d La capacit dun canal binaire symtrique (avec la probabilit derreur p) est 1 e
h(p).
Trouvez ce rsultat daprs votre calcul prcdent.
Exercice 10.1.6:
1 pi
0 0
pi
pi
1 1
1 pi
Supposons en outre que la probabilit derreur soit indpendante des messages transmis et donc
que les sorties Yi du canal soient indpendantes conditionnellement la squence dentre
X1 , ..., Xn :
n
Y
P (Y = (y1 , ..., yn )|X = (x1 , ..., xn )) = P (Yi = yi |Xi = xi )
i=1
Enfin, supposons que X soit une source sans mmoire, cest--dire que les entres Xi soient
indpendantes.
Exercice 10.2.1:
Cet exercice rsume une partie des control questions du module C4.
Considrons un DMC ayant des alphabets dentre et de sortie binaires, et ayant une distri-
bution de probabilit conditionnelle dfinie par P (Y = y|X = x) = p si x 6= y (et donc
P (Y = y|X = x) = 1 p si x = y).
Sur ce canal, nous prvoyons demployer le code R3 qui consiste tripler chaque symbole
dentre. Par exemple, 0 est cod 000. Le dcodage se fait la majorit : par exemple, 010
est dcod 0, et 110 1.
b Quel est le taux de transmission R du code R3 ?
c Sur ce canal, quelle est the symbol error probability Pb du code R3 , en fonction de p?
d Supposons que p = 0.173. Quelle est la symbol error probability correspondante Pb ?
Quelle est la capacit de canal C ? Est-elle suprieure ou infrieure au taux de transmis-
sion R ?
Ces rsultats sont-ils compatibles avec le thorme de codage en prsence de bruit ?
possible.
Exercice 10.2.2:
Un ingnieur a dcouvert un code utiliser sur un BSC la probabilit derreur p qui aboutit
une probabilit output bit error probability de Pb = 8p2 .
Introduction
171
172 CHAPITRE 11. CODES CORRECTEURS DERREURS
Grce ses bases fortement mathmatiques, la thorie du codage algbrique est maintenant
bien tablie en tant que domaine scientifique part entire, avec des applications beaucoup
de problmes qui ne se limitent pas au codage de canal.
Le but de ce chapitre nest certainement pas de fournir une vue exhaustive des codes correcteurs
derreurs algbriques (un livre entier y parviendrait peine), mais plutt de prsenter les ides-
cls du domaine. Le lecteur qui est intress par ce sujet peut se rfrer la littrature plutt
vaste dans le domane.
Ltude de ce chapitre requiert quelques connaissances mathmatiques, particulirement dans
de domaine des structures algbriques.
11.1.1 Introduction
Le contexte du prsent chapitre est la transmission en prsence de bruit telle que prsente
dans lintroduction du chapitre 9.
Lorsquun mot de code zi est transmis sur un canal bruit et que zb est finalement reu, lerreur
de transmission correspond la diffrence entre zb et zi : e = zb zi .
Lide-cl derrire le codage algbrique est dajouter une structure algbrique lensemble des
mots de code de sorte que lerreur de transmission puisse aisment tre exprime en termes des
oprations dfinissant cette structure algbrique ( commencer par lopration diffrence
ci-dessus).
Par exemple, si nous traitons des codes binaires (p.ex.10011) la diffrence naturelle sur
les mots binaires est la diffrence bit par bit (connue aussi sous le nom de ou exclusif pour
les lecteurs familiers avec linformatique), c.--d. la diffrence chaque position telle quil y
a un 0 si les deux bits correspondants sont les mmes et un 1 dans le cas contraire : 0 - 1 = 1
et, comme dhabitude, 0 - 0 = 0, 1 - 1 = 0, 1 - 0 = 1.
Exemple 11.1 (Diffrence Binaire) Voici un exemple de diffrence entre deux mots (bi-
naires) :
11011 01101 = 10110
des lments de lespace vectoriel GF(2)n (o n est la longueur des mots de code). Cette base
stend aisment nimporte quel code D-aire utilisant une arithmtique modulo D .
Dfinition 11.1 (Code par Bloc) Un code par bloc D-aire de longueur n est un
sous-ensemble non vide de lespace vectoriel des n-uplets GF(D)n (c.--d. des mots
D-aires de mme longueur n, considrs comme des vecteurs ligne ).
Exemple 11.2 (Codes par Bloc) Lensemble {1101, 0110, 1110} est un exemple de code
par bloc binaire.
Un autre exemple de code par bloc, considrant les codes ternaires utilisant les symboles
0 1 et 2, tels que 1 + 2 = 0 (c.--d. arithmtique GF(3)), est donn par lensemble
{120, 201, 222, 010}.
Lensemble {011, 110, 10} nest pas un code par bloc, ces mots ntant pas tous de mme
longueur.
Deux notions importantes dans le domaine des codes derreur algbriques sont maintenant
prsentes : la distance de Hamming entre des mots et le poids dun mot. La relation entre ces
notions et le problme de la correction derreurs est donne dans la section suivante.
Dfinition 11.3 (Poids dun mot de code) Le poids dun mot est le nombre de
symboles non nuls quil contient.
Exemple 11.4 (Poids dun mot de code) Le poids de 10110 est 3, tandis que le poids de
00000000 est 0 et que le poids de 001000 est 1.
Proprit 11.1 La distance de Hamming entre deux mots de code est le poids de leur
diffrence :
d(zi , zj ) = w(zi zj )
en dsignant la distance de Hamming par d() et le poids par w().
174 CHAPITRE 11. CODES CORRECTEURS DERREURS
d(10110, 11010) = 2
w(10110 11010) = w(01100) = 2
Voici maintenant quelques proprits utiles des poids des mots de code.
Proprit 11.2 Le poids dun mot de code est toujours positif ou nul.
Dfinition 11.4 (mot de code nul) Le mot de code nul est le mot de code constitu
uniquement de zros.
Il sera dsign par 0.
Proprit 11.3 Le poids dun mot de code est 0 si et seulement si ce mot de code est
la mot de code nul 0.
Proprit 11.4 Le poids est symtrique : pour chaque mot de code zi , w(zi ) =
w(zi ) (o zi est le mot dans lequel chaque symbole est loppos du symbole
correspondant dans zi ).
Exemple 11.6 (Symtrie du poids) En considrant les codes ternaires utilisant les symboles
0 1 et 2, tels que 1 + 2 = 0 (c.--d. une arithmtique GF(3)), nous avons :
Notez que dans le cas binaire, la dernire proprit est triviale car dans ce cas zi = zi pour
chaque zi .1
1
Rappel : dans le cas binaire, 1 = 1.
11.1. NOTIONS DE BASE 175
En considrant les codes ternaires utilisant les symboles 0 1 et 2 comme ci-dessus, on a par
exemple :
(Rappel : on travaille ici dans GF(3), i.e. 1 + 2 = 0 et laddition de mots de codes seffectue
sans retenue, symbole par symbole).
valuation 45
Comment un dcodeur de code par bloc pourrait-il prendre la dcision de dcoder un mot
reu ? Une rponse intuitive naturelle est de supposer le plus petit nombre derreurs (c.--d.
w(e) minimal), ce qui, daprs ce qui vient dtre dit, amne prendre le mot de code le plus
proche (c.--d. d(b
z , zi ) minimal).
Par exemple, si les deux seuls mot de code possibles sont 000 et 111, et que 010 est reu,
nous voudrions certainement 2 le voir dcod en 000.
2
ne connaissant rien dautre
176 CHAPITRE 11. CODES CORRECTEURS DERREURS
D(b
z ) = Argmin d(z, zb)
zC
P (Y = zb|X = z) P (X = z)
Argmax P (X = z|Y = zb) = Argmax
zC zC P (Y = zb)
= Argmax P (Y = zb|X = z) P (X = z)
zC
= Argmax P (Y = zb|X = z)
zC
puisquil y a exactement d(z, zb) symboles qui ont t corrompus par la transmission et n
d(z, zb) qui ont t transmis correctement.
Il est alors ais de voir que le mot de code z qui maximise P (Y = zb|X = z) est celui qui
minimise la distance d(z, zb).
Ceci prouve que, pour un BSC, le dcodage distance minimale et le dcodage vraisemblance
maximale sont quivalents.
3
ou mme de lestimer, bien que cela soit possible.
11.1. NOTIONS DE BASE 177
Existe-t-il un moyen de savoir priori combien derreurs un code donn peut corriger ? ou
dtecter ?4 La rponse est oui et repose principalement sur une caractristique importante dun
code par bloc : sa distance minimale.
Dfinition 11.6 (Distance Minimale dun Code) La Distance Minimale dmin (C)
dun code C = {z1 , ..., zi , ..., zM } est la distance de Hamming minimale (non nulle)
entre toute paire de ses mots de code :
et un schma derreur e de poids entre t + 1 et t + s qui nest pas dtecte mais dcod en un
autre mot de code zj : D(zi + e) = zj . En introduisant lerreur e = zj (zi + e), nous avons
aussi D(zj + e ) = zj , c.--d. que e est une erreur qui est corrige lorsquelle est applique
zj . Comme w(e ) = d(zj + e , zj ) = d(zi + e, zj ) d(zi + e, zi ) ( cause du dcodage
distance minimale), nous avons w(e ) t + s et D(zj + e ) = zj . Donc w(e ) doit tre
infrieur (ou gal) t. Ceci nous permet de conclure de manire similaire ci-dessus :
Exemple 11.8 Un code par bloc ayant une distance minimale de 8 peut tre utilis pour lun
ou lautre des points suivants :
corriger tous les schmas derreur de moins que 3 (inclus) erreurs et dtecter tous les
schmas 4 erreurs (t = 3, s = 1) ;
corriger tous les schmas derreur de moins que 2 erreurs et dtecter tous les schmas de 3
5 erreurs (t = 2, s = 3) ;
corriger tous les schmas derreur de 1 erreur et dtecter tous les schmas de 2 6 erreurs
(t = 1, s = 5) ;
dtecter tous les schmas de moins que 7 (inclus) erreurs (t = 0, s = 7).
Un code par bloc ayant une distance minimale de 7 peut (lun ou lautre)
corriger tous les schmas derreur de moins que 3 (inclus) erreurs (t = 3, s = 0) ;
corriger tous les schmas derreur de moins que 2 erreurs et dtecter tous les schmas de 3
4 erreurs (t = 2, s = 2) ;
corriger tous les schmas derreur de 1 erreur et dtecter tous les schmas de 2 5 erreurs
(t = 1, s = 4) ;
dtecter tous les schmas de moins que 6 (inclus) erreurs (t = 0, s = 6).
Exemple 11.9 Pour tre capable de corriger tous les schmas 1 erreur (et cest ce quon
recherche), un code par bloc doit avoir une distance minimale gale 3 au moins.
valuation 46
code par bloc : un ensemble non vide de mots de mme longueur, considrs comme des
vecteurs ligne .
poids : (dun mot) le nombre de symboles non nuls.
distance de Hamming : le nombre de coordonnes par lesquelles deux vecteurs diffrent.
La distance de Hamming entre deux mots est le poids de leur diffrence.
dcodage distance minimale : structure de correction derreurs dans laquelle chaque mot
reu est dcod en le mot de code le plus proche (daprs la distance de Hamming).
180 CHAPITRE 11. CODES CORRECTEURS DERREURS
A cause de leurs proprits et de leur simplicit, les codes linaires, dont il est question dans
cette section, sont dun intrt majeur pour le codage derreurs. Un de leurs avantages princi-
paux dans la pratique est quils sont aisment implmentables.
11.2.1 Dfinitions
Les codes linaires sont des codes par bloc sur lesquels une structure algbrique a t ajoute
pour aider au dcodage : la structure despace vectoriel.
En regardant la dfinition des codes par bloc, la dfinition ci-dessus peut tre reformule : un
code linaire est un code par bloc qui est un espace vectoriel.
Exemple 11.10 (Code Linaire) Le code {1101, 0110, 1110} donn dans lexemple 11.2
nest pas un code linaire car 0000 nen fait pas partie (il ne pourrait donc pas tre un espace
vectoriel).
Le code (binaire) {0000, 1101, 0110, 1011} est un code linaire comme toute combinaison
linaire (binaire) de mots de code est aussi un mot de code. Il est de plus un code linaire
binaire (4, 2) car sa dimension (c.--d. la dimension du sous-espace vectoriel) est de 2 et sa
longueur de 4.
Notez en outre que la distance minimale de ce code est 2 (aisment vrifiable) et que ce code
ne peut donc tre utilis que pour la dtection derreurs uniques (voir thorme 11.1).
valuation 47
Pour chacun des codes binaires suivants, spcifiez si le code est un code linaire ou non. Si
oui, donnez les deux nombres n et m de la dfinition :
1. C = {0000, 1000, 0001, 1001}
2. C = {1000, 0001, 1001}
3. C = {00, 01, 11}
4. C = {0000, 1000, 1100, 0100, 1101, 0001, 0101, 1001}
5. C = {0, 1, 10, 11}
6. C = {00, 11, 10, 01}
7. C = {0000, 0001, 0010, 0100}
Ceci vient directement du fait quun code linaire est un (sous-) espace vectoriel.
tudions maintenant de manire plus approfondie ces codes linaires. Premirement, combien
de mots de code un code linaire (n, m) D-aire contient-il ?
Proprit 11.9 Un code linaire (n, m) D-aire contient Dm mots de code diffrents
(le mot de code nul inclus).
Notez que cette proprit peut tre utilise pour dterminer rapidement que les codes avec un
mauvais nombre de mots de code (qui nest pas une puissance de D) ne sont pas linaires. Pour
les codes linaires, ceci peut aussi tre utilis pour une rapide dtermination de m (p.ex. pour
deviner la taille dune base).
vectoriel).
Pour un code (n, m) D-aire, il y a donc exactement Dm mots de code diffrents : toutes les
Dm combinaisons linaires.
D MONSTRATION Rappel : le taux de transmission dun code D-aire qui code une source
de M messages diffrents par des mots de code de longueur n est R = logD
n
M
.
Combien de messages diffrents peuvent tre cods en utilisant un code linaire (n, m) ?
Autant que de mots de code, c.--d. Dm .
Ainsi,
logD Dm m
R= =
n n
Ce rsultat est trs important en pratique, car wmin (C)est beaucoup plus facile calculer que
dmin (C).
D MONSTRATION Pour un code C = {z1 , ..., zi , ...}, on a par la dfinition 11.6 dmin (C) =
mini6=j d(zi , zj ).
Donc, en utilisant la proprit 11.1, dmin (C) = mini6=j w(zi zj ).
Mais si C est un code linaire, pour toute paire de mots de code zi et zj , zi zj est aussi un
mot de code. Cest en outre le mot de code nul si et seulement si zi = zj (c.--d. i = j).
Ainsi dmin (C) wmin (C).
Rciproquement, pour tout mot de code zi , w(zi ) = d(zi , 0). Comme 0 fait partie de tout
code linaire, on obtient : wmin (C) dmin (C), ce qui conclut la dmonstration.
Ce code peut donc corriger tous les schmas derreur avec 1 ou 2 erreurs (voir proprit 11.7).
[La vrification de la linarit effective de ce code est laisse comme exercice.]
valuation 48
valuation 49
Combien derreurs peuvent (au plus) corriger les codes linaires suivants :
1. C = {0000, 1000, 1100, 0100, 1101, 0001, 0101, 1001}
2. C = {000000000, 000000111, 000111000, 000111111, 111000000, 111000111, 111111000, 111111111}
Laccent doit maintenant tre mis sur la relation liant les messages coder aux mots de code
correspondants : il est temps de voir comment utiliser efficacement les codes linaires pour
coder des messages.
Si les m mots de code choisis pour former une base dun code linaire (n, m) (espace vecto-
riel)5 sont dsigns par z1 , ..., zm , alors tout mot de code zi peut tre crit comme
m
X
zi = ui,k zk
k=1
o ui est le vecteur ligne (ui,1 , ..., ui,m ) et G la matrice dont les lignes sont z1 , ..., zm .
Il est alors tout naturel de choisir de coder le message m symboles par le mot de code zi qui
rsulte de la multiplication par G ci-dessus.
Pour cette raison, la matrice G est appele matrice gnratrice du code.6
5
Rappel : dans la plupart des cas, le choix nest pas unique
6
Notez que, pour un code donn, cette matrice gnratrice nest pas unique : elle dpend de la base choisie pour
reprsenter le code.
184 CHAPITRE 11. CODES CORRECTEURS DERREURS
Dfinition 11.8 (Matrice Gnratrice) Une matrice m n G est dite matrice gn-
ratrice dun code linaire (n, m) C si et seulement si ses m vecteurs ligne sont une
base de lespace vectoriel C.
Le codage dun message u (de taille m) est alors effectu par z = u G.
Lutilisation dune matrice gnratrice rend le codage trs facile implmenter en pratique.
Dans le cas binaire par exemple, seuls quelques7 portes ou -exclusif (XOR) peuvent raliser
le codage.
Parmi toutes les matrices gnratrices possibles, une dentre elles est particulirement intres-
sante (si elle existe) : celle sous forme systmatique.
Dfinition 11.9 (Forme Systmatique) Une matrice gnratrice G dun code li-
naire (n, m) est dite sous forme systmatique si elle est de la forme
1 0 0 p1,1 p1,nm
0 1 0 p2,1 p2,nm
G = [Im P ] = . . .
.. .. . . ... ..
.
..
.
..
.
0 0 1 pm,1 pm,nm
7
au plus n (m 1), en fait
11.2. CODES LINAIRES 185
Notez que, lorsquelle existe pour un code donn, la matrice gnratrice systmatique est
unique.
Dfinition 11.10 (Code Linaire Systmatique) Un code linaire utilisant une ma-
trice gnratrice sous forme systmatique est appel code (linaire) systmatique.
Lorsquun code linaire (n, m) utilise une matrice gnratrice de forme systmatique, les m
premiers symboles des n symboles dun mot de code sont exactement les symboles du message
cod :
zi = (ui,1 ui,2 ... ui,m zi,m+1 , ... zi,n )
En dautres termes, les codes systmatiques envoient dabord le message non cod puis (nm)
symboles de codage utiliss pour la dtection/correction derreurs.
Exemple 11.13 Si on se rappelle lexemple 11.12, un autre choix pour les vecteurs de la base
aurait pu tre z1 = 1011, z2 = 0110, ce qui donne
1 0 1 1
G=
0 1 1 0
Exemple 11.14 (Bit de vrification de parit) Pour les messages binaires, le bit de vrifi-
cation de parit est le bit qui correspond la parit du message, c.--d. la somme (binaire)
de ses bits.
Par exemple, le bit de vrification de parit pour 01101 est 1 + 1 + 1 = 1 et le bit de
vrification de parit pour 00101 est 1 + 1 = 0.
Le code par bit de parit consiste simplement envoyer dabord le message tel quel, suivi de
son bit de parit. En termes de codes, ceci correspond au code binaire linaire (m + 1, m),
dont la matrice gnratrice est
1
G = Im ...
1
qui est sous forme systmatique.
Notez que la distance minimale de ce code est 2 (en utilisant le thorme 11.2), ce code nest
donc capable de faire que de la dtection derreurs uniques (voir thorme 11.1).
valuation 50
ce niveau, nous savons comment coder avec des codes linaires. Mais quen est-il du d-
codage ? Comment les erreurs peuvent-elles tre corriges ? Aprs tout, cest bien l toute
lhistoire !
Cest prcisment maintenant que la linarit des codes est importante.
Supposons avoir trouv une matrice F telle que, pour tout mot de code z, z F = 08 . Alors, si
une erreur e survient durant la transmission de z et zb = z + e est reu, nous avons
zb F = (z + e) F = z F + e F = 0 + e F = e F
Ce denier rsultat est trs utile comme zb F est indpendant du mot de code z mis mais
ne dpend que de lerreur e. Le rsultat de cette erreur de transmission apparat comme une
combinaison linaire des lignes de F . Pour corriger/dtecter lerreur, les vecteurs de lespace
vectoriel gnr par les lignes de F doivent simplement correspondre au message de cor-
rection (ou de dtection) correspondant.
Ceci est lide-cl qui va maintenant tre formalise et tudie un peu plus profondment.
Pour de bonnes raisons mathmatiques9 , lquation ci-dessus z F = 0 est toujours donne
sous la forme suivante :
z HT = 0
o T est loprateur de transposition et H = F T .
z GF(D)n z H T = 0 z C
En dautres termes, une matrice de vrification pour un code C est une matrice dont
le noyau est C.
8
Comme vous le verrez dans un moment, ce nest pas si difficile.
9
orthogonalit : G H T = 0
11.2. CODES LINAIRES 187
Notez quun code linaire donn pourrait avoir plusieurs matrices de vrification diffrentes :
toute matrice dont les lignes sont une base de lespace vectoriel orthogonal au code linaire10
est une matrice de vrification pour ce code.
Comment trouver des matrices de vrification ?
Dans le cas o le code est systmatique, il est facile de trouver une matrice de vrification,
comme le montre le thorme suivant :
Thorme 11.3 Pour un code linaire (n, m) systmatique dont la matrice gnra-
trice sous forme systmatique est
G = [Im P ] ,
la matrice
H = P T Inm
est une matrice de vrification.
zi = u i G
= ui [Im P ]
c.--d.
(zi,1 , ..., zi,m ) = ui
(zi,m+1 , ..., zi,n ) = ui P
Donc
(zi,m+1 , ..., zi,n ) = (zi,1 , ..., zi,m ) P
c.--d.
(zi,1 , ..., zi,m ) P + (zi,m+1 , ..., zi,n ) = 0
ou, sous forme matricielle :
P
zi =0
Inm
T
Nous avons donc trouv une matrice ( P T Inm ) telle que son produit avec chaque mot
de code donne le vecteur nul.
Il est ais de voir que la construction inverse a pour rsultat que chaque mot x tel que x
T
P T Inm = 0 vrifie
x = (x1 , ..., xm ) G
et se trouve donc tre un mot de code.
10
rappel : un code linaire est un sous-espace vectoriel
188 CHAPITRE 11. CODES CORRECTEURS DERREURS
Alors (n = 5 et m = 2)
" #
T 1 1 1 0 0
1 0 1
H= I3 = 0 1 0 1 0
1 1 1
1 1 0 0 1
valuation 51
Donnez une matrice de vrification pour le code linaire dont la matrice de codage sous forme
systmatique est
1 0 0 0 0 1 0 1 0
0 1 0 0 0 1 1 0 0
G= 0 0 1 0 0 0 1 0 1
0 0 0 1 0 1 1 1 1
0 0 0 0 1 0 0 1 1
valuation 52
Le mot z =1001101 est-il un mot de code du code dont une matrice de vrification est
1 1 1 0 1 0 0
H = 0 1 1 0 0 1 0 ?
0 0 1 1 0 0 1
11.2.6 Syndromes
zb H T = (z + e) H T = z H T + e H T = 0 + e H T = e H T
Ceci illustre le fait important que zb H T ne dpend que du schma derreur effectif e et absolu-
ment pas du mot de code transmis zb. Pour cette raison, ce rsultat zb H T est dune importance
particulire pour le dcodage. Ceci est appel syndrome (de zb relatif H).
En outre, le schma derreur e est dcompos en erreurs lmentaires ek (c.--d. faites dune
seule erreur sur un seul symbole) : e = (e1 , ..., en ), alors
X
z ) = zb H T = e H T =
s(b ek hk
k
Exemple 11.16 (Tableau de correction base sur les syndromes) Supposons que
1 1 1 0 0
H= 0 1 0 1 0
1 1 0 0 1
Syndrome Correcteur
101 10000
111 01000
100 00100
010 00010
001 00001
Syndrome Correcteur
000 00000
001 00001
010 00010
011 ?
100 00100
101 10000
110 ?
111 01000
Notez que :
190 CHAPITRE 11. CODES CORRECTEURS DERREURS
1. Le syndrome nul pointe toujours vers aucune correction, cause de la dfinition 11.11 ;
2. Pour 011 et 110, le correcteur nest dans cet exemple pas unique : par exemple 011 =
010 + 001 donne 00011 (00001 + 00010), mais 011 = 111 + 100 donne une autre
correction, 01100.
Ceci est d au fait que la distance minimale de ce code est 3 (voir section suivante), et
que ce code ne peut donc corriger que tous les schmas 1 erreur, mais pas tous les
schmas 2 erreurs !
Ces deux syndromes correspondent en fait deux erreurs de transmission.
En pratique, le tableau de correspondance entre les syndromes et les erreurs est stock dans une
mmoire, et le mcanisme gnral pour dcoder (et corriger) un message reu zb est le suivant :
z ) = zb H T ;
1. Calculer le syndrome s(b
2. Obtenir la correction c = e (c.--d. loppos de lerreur) par la combinaison linaire
des correcteurs stocks en mmoire ;
3. Dcoder z = zb + c.
Exemple 11.17 (Dcodage avec un Code Linaire) Continuons avec le dernier exemple
(exemple 11.16), dont la gnratrice est
1 0 1 0 1
G=
0 1 1 1 1
Supposons devoir transmettre u = 10. Ce message est cod par z = 10101 avec le code
linaire binaire (5, 2) ci-dessus.
Supposons que zb = 00101, c.--d. que le premier bit ait t corrompu.
Le calcul du syndrome donne s = zb H T = 101, ce qui nous donne le correcteur e = 10000
(voir tableau des correcteurs donn dans lexemple 11.16).
Le mot de code dcod est ainsi zb+e = 00101+10000 = 10101, ce qui nous donne le mes-
sage dcod (les deux premiers bits correspondant au message originel, un code systmatique
ayant t utilis) : 10, ce qui correspond au message originel.
valuation 53
0 0 1 1 1 0 0 0 1
La prsentation gnrale des codes linaires se termine maintenant par un rsultat utile, qui
permet le calcul de la distance minimale dun code 11 directement depuis sa matrice de vrifi-
cation.
11
et donc le nombre maximal derreur pouvant tre corriges
11.2. CODES LINAIRES 191
D MONSTRATION Pour tout vecteur z, zH T est une combinaison linaire de w(z) colonnes
de H. Et, par la dfinition 11.11 : z C si et seulement si z H T = 0.
Ainsi, si z C, il existe alors w(z) colonnes de H qui sont linairement dpendantes ; et
rciproquement, si q colonnes de H sont linairement dpendantes, il existe un mot de code
de poids q.
Donc wmin (C) est le nombre minimal de colonnes de H qui sont linairement dpendantes,
et on conclut en utilisant le thorme 11.2.
Pour un code linaire binaire C avec un matrice de vrification H, ce rsultat implique que
Si H na pas de colonne nulle, dmin (C) > 1.
Si H na en outre pas deux fois la mme colonne, dmin (C) > 2.
Exemple
11.18 Un code linaire binaire dont une matrice de vrification est H =
1 1 1 0 0
0 1 0 1 0 a une distance minimale de 3.
1 1 0 0 1
En effet, H na pas de colonne nulle, ni deux fois la mme colonne, donc dmin (C) > 2. En
outre, il y a un ensemble de 3 colonnes de H qui sont linairement dpendantes. Par exemple,
h1 , h3 et h5 .
dmin (C) n m + 1.
D MONSTRATION Les colonnes de H sont des vecteurs de GF(D)(nm) , donc tout en-
semble de n m + 1 de ces colonnes est linairement dpendant. Donc, en utilisant le
thorme 11.4, dmin (C) n m + 1.
valuation 54
Quelle est la distance minimale dun code dont la matrice de vrification est
1 1 0 1 0 1 0 0 0
0 1 1 1 0 0 1 0 0
H= 1 0 0 1 1 0 0 1 0 ?
0 0 1 1 1 0 0 0 1
tudions maintenant plus en profondeur quels sont les bons codes, qui peuvent corriger
une erreur (dans le cas binaire).
Comme nous ne cherchons quune seule erreur, le syndrome na besoin dindiquer que la
position o se trouve lerreur. Lide est de disposer dun code dont le syndrome indique di-
rectement la position de lerreur ; par exemple sous forme de son code binaire (0...001 pour la
premire position, 0...010 pour la seconde, 0...011 pour la troisime, etc.).
Rappel : une erreur simple en position k donne un syndrome qui est la k-me colonne de H.
Lide ci-dessus est donc de construire une matrice de vrification dont les colonnes sont les
reprsentations binaires de leur position (voir exemple ci-dessous).
Ce qui nest pas encore clair est
1. quelles dimensions cette matrice de vrification devrait avoir ?
2. cette construction mne-t-elle effectivement une matrice de vrification dun code ?
3. un tel code peut-il effectivement corriger tous les schmas 1 erreur ?
A propos du premier point, rappelez-vous que la taille dun syndrome dun code linaire (n, m)
est n m. Si le syndrome code directement la position de lerreur, il pourrait alors reprsenter
2nm 1 positions. Aucune place nest donc perdue si le nombre total de positions repr-
senter (c.--d. la longueur n du mot de code) est n = 2nm 1.
En dpit du cas trivial n = 3, m = 1, voici quelques tailles possibles pour de tels codes :
n m r =nm
7 4 3
15 11 4
31 26 5
63 57 6
.. .. ..
. . .
Il est facile de rpondre la deuxime question ci-dessus : oui, cette construction donne un
code linaire comme les matrices construites de cette faon sont de rang plein (c.--d. que
rank(H) = n m), puisquil est ais de construire la matrice identit Inm partir de leurs
colonnes (prendre la premire, deuxime, quatrime, huitime colonne, etc.). La dimension de
leur noyau est donc m, ce qui donne un code linaire (n, m).
Finalement, pour rpondre la dernire question (un tel code peut-il effectivement corriger
tous les schmas 1 erreur ?), nous devons calculer sa distance minimale. Les matrices de
vrification rsultant de la construction ci-dessus nont jamais de colonne nulle ni deux fois
11.2. CODES LINAIRES 193
la mme colonne, et donc au minimum dmin (C) 3. En outre, les trois premires colonnes
(reprsentations binaires de 1, 2 et 3) sont toujours linairement indpendantes. La distance
minimale de tels codes est donc toujours 3. De tels codes peuvent donc corriger tous les sch-
mas 1 erreur.
De tels codes sont appels codes de Hamming (binaires) .
Proprit 11.13 Tout code de Hamming binaire peut corriger tous les schmas une
erreur.
Pour trouver la matrice gnratrice, nous cherchons 4 vecteurs z tels que z H T = 0, par
exemple (facile vrifier, et il y en a beaucoup dautres) :
z1 = 1110000
z2 = 1101001
z3 = 1000011
z4 = 1111111
ce qui donne
1 1 1 0 0 0 0
1 1 0 1 0 0 1
G=
1
0 0 0 0 1 1
1 1 1 1 1 1 1
en troisime position) qui est 0001111, ce qui est effectivement le mot de code mis.
code linaire : un code par bloc qui est un espace vectoriel (c.--d. que toute combinaison
de mots de code est aussi un mot de code).
Un code linaire (n, m) D-aire est un sous-espace vectoriel de dimension m de les-
pace vectoriel de dimension n de mots de code D-aires.
distance minimale : pour les codes linaires, la distance minimale est gale au poids mini-
mal.
matrice gnratrice : (dun code linaire (n, m)) une matrice m n dont les lignes sont
une base du code (elle sont donc linairement indpendantes).
forme systmatique : une matrice gnratrice m n dun code linaire (n, m) est dite sous
forme systmatique seulement si sa sous-matrice m m la plus gauche est la matrice
identit (de taille m).
codage : le codage avec des codes linaires est effectu par multiplication matricielle : le
mot u coder est multipli par une matrice gnratrice du code choisie G, produisant
le mot de code z = u G.
Si la matrice gnratrice est sous forme systmatique, les m premiers symboles du mot
de code sont exactement les symboles du message. Ainsi, seuls les n m derniers
symboles doivent tre calculs.
matrice de vrification : une matrice (n m) n H est une matrice de vrification pour
un code linaire (n, m) C si et seulement si
z GF(D)n z H T = 0 z C
11.3.1 Introduction
Bien que les codes cycliques soient la catgorie de codes correcteurs derreurs dont lutilisation
est la plus rpandue, seule une introduction trs courte de ce sujet est prsente ici. En effet, une
prsentation approfondie des codes cycliques constituerait elle seule un cours part entire,
et est donc hors de propos ici. Le lecteur intress approfondir le sujet pourra se rfrer la
littrature plutt vaste dans de ce domaine.
Dfinition 11.14 Un code cyclique est un code linaire tel que, pour tout mot de
code zi n symboles zi = zi,1 ...zi,n , le mot zi,2 ...zi,n zi,1 rsultant dune permutation
cyclique (vers la gauche) (aussi appele dcalage ) des symboles de zi soit aussi
un mot de code.
Notez que cette dfinition implique alors que toute permutation cyclique dun mot de code soit
aussi un mot de code.
Exemple 11.20 (Code cyclique) Le code linaire (binaire) suivant est un code cyclique :
(qui est linaire) nest pas cyclique car, par exemple, la permutation cyclique 100 de z3 nest
pas un mot de code.
Les codes cycliques sont une sous-catgorie importante des codes linaires car ils possdent
beaucoup de proprits algbriques qui simplifient les implmentations du codage et du dco-
dage.
valuation 55
Pour chacun des codes binaires suivants, spcifiez sil sagit ou non dun code cyclique.
1. C = {0000, 1000, 0001, 1001}
2. C = {1000, 0001, 0100, 0010}
196 CHAPITRE 11. CODES CORRECTEURS DERREURS
n1
X
X zi (X) = zi,1 + zi,k+1 X nk
k=1
n1
X
= zi,k+1 X nk + zi,1 X nn
k=1
ce qui correspond effectivement au mot de code zi,2 ...zi,n zi,1 , le rsultat du dcalage vers la
gauche de zi .
Comme les codes cycliques traitent justement de la permutation cyclique de leurs mots de
code, les polynmes semblent tre un moyen tout fait appropri pour les reprsenter. Cet
aspect sera approfondi aprs un court exemple.
11.3. CODES CYCLIQUES 197
Exemple 11.21 (Arithmtique modulo (X n 1)) Voici un court exemple dun calcul
modulo (X n 1) :
(X 2 + 1) (X + 1) = X 3 + X 2 + X + 1
= 1 + X 2 + X + 1 mod (X 3 1)
= X 2 + X + (1 + 1) mod (X 3 1)
= X2 + X mod (X 3 1)
car en binaire 1 + 1 = 0.
Exemple 11.22 (Reprsentation polynmiale dun code cyclique) Revenons sur le code
cyclique binaire de lexemple prcdent :
z1 (X) = 0
z2 (X) = 1 X 2 + 0 X + 1 = X 2 + 1
z3 (X) = 0 X 2 + 1 X + 1 = X + 1
z4 (X) = 1 X 2 + 1 X + 0 = X 2 + X
Notez en outre que X z2 (X) = z3 (X) mod (X 3 1), ce qui est lexpression du fait que
z3 est le dcalage vers la gauche de z2 .
valuation 56
valuation 57
Considrant les deux mots de code z1 et z2 dun code cyclique, que vaut z1 z2 dans les cas
suivants :
1. z1 = 010110, z2 = 000100
2. z1 = 1010, z2 = 0101
3. z1 = 11001, z2 = 01010
La condition dfinissant les codes cycliques peut maintenant tre utilise pour caractriser plus
avant les codes cycliques en utilisant les proprits des polynmes :
198 CHAPITRE 11. CODES CORRECTEURS DERREURS
Thorme 11.5 Pour tout code cyclique (n, m) C, il existe un polynme gC (X) de
degr n m tel que
c.--d. que tout polynme dun mot de code est un multiple de gC (X), et rciproque-
ment.
En dautres termes, le code C est gnr par gC (X). gC (X) est en fait appel le
gnrateur de C.
Le codage dun mot u en utilisant un code cyclique C pourrait alors simplement consister
envoyer z(X) = u(X) gC (X). Toutefois, le codage sous forme systmatique, c.--d. le
codage de manire ce que les premiers symboles correspondent au message lui-mme, est
souvent prfr.
Pour un code cyclique (n, m), la procdure est alors la suivante :
1. multiplier le polynme du message u(X) par X nm (ce qui revient en pratique effec-
tuer n m dcalages vers la gauche sur le message) Notez que n m est le degr du
gnrateur.
2. diviser X nm u(X) par le gnrateur g(X) et obtenir le reste r(X)
3. le codage de u(X) est alors z(X) = X nm u(X) r(X) (qui est un multiple de g(X),
dont les m symboles les plus levs correspondent aux m symboles de u).
Exemple 11.23 (Codage systmatique avec un code cyclique) Considrons par exemple
le code cyclique binaire (7, 4)
X 2 + 1.
Divisons tout dabord X 3 u(X) = X 6 + X 5 + X 3 par g(X) :
X 6 +X 5 + X3 X3 + X + 1
6
X + X +X 3
4 X3 + X2 + X + 1
X 5+ X 3 +X 2
4
X + X 2 +X
X 3+ X+1
1
valuation 58
Comment les messages suivants sont-ils cods sous forme systmatique avec un code, dont le
gnrateur est g(X) = X 6 + X 3 + 1 :
1. 000
2. 111
3. 101
11.3.3 Dcodage
Nous savons maintenant comment coder des messages avec des codes cycliques. Quen est-il
alors du dcodage ?
Le processus de dcodage est similaire au cadre utilis pour les codes linaires en gnral :
1. dabord calculer un syndrome partir du mot reu (qui ne dpend que de lerreur, pas
du mot mis, et qui est nul lorsque le mot reu est un mot de code)
2. en dduire le correcteur (loppos de lerreur)
3. finalement, appliquer le correcteur au mot de code reu.
La construction du syndrome dun mot zb(X) est simple : cest le reste de la division de zb(X)
par le gnrateur g(X) de ce code.
En effet, nous savons que chaque mot de code z(X) est un multiple de g(X). Le reste de
z(X) + e(X) (par rapport g(X)) est le mme que celui de e(X) :
z(X) = (X)g(X)
= z(X) + e(X) = [(X) + (X)]g(X) + s(X)
e(X) = (X)g(X) + s(X)
Les correcteurs, qui correspondent tous les syndromes non nuls, peuvent tre obtenus par
division par g(X). Notez que
pour une erreur seule X i de degr i infrieur n m (le degr de g(X)), le syndrome est
simplement X i ;
pour lerreur seule X (nm) , le syndrome est X (nm) g(X).
Exemple 11.24 (Dcodage avec un code cyclique) Continuons lexemple prcdent : le
message 1101 a t cod en 1101001 et est maintenant transmis travers un canal bruit.
Supposons que le second symbole ait t chang, c.--d. que nous recevions 1001001. Quel
est le mot dcod correspondant ?
1001001 correspond zb(X) = X 6 + X 3 + 1, dont la division par g(X) donne :
X 6+ X 3+ 1 X3 + X + 1
X +X +X 3
6 4 X3 + X
X 4+ X 2 +X
X 2 +X+1
syndrome correcteur
1 1
X X
X2 X2
X +1 X3
X2 + X X4
X2 + X + 1 X5
X2 + 1 X6
[Les quatre premires lignes ont t obtenues en utilisant les remarques ci-dessus. Les trois
dernires par division de lerreur par g(X)]
Nous avons donc trouv que le correcteur doit tre X 5 et que le mot dcod est finalement
z(X) = zb(X) + X 5 = X 6 + X 5 + X 3 + 1, c.--d. 1101001.
Comme un code systmatique a t utilis, les 4 premiers symboles de ce mot de code sont
les 4 bits du message originel : 1101.
valuation 59
Considrons le code linaire (7, 4) dont le gnrateur est g(X) = X 3 + X 2 + 1. Comment les
messages reus suivants seront-ils dcods ?
1. 1001011
2. 1011001
3. 0000001
(en supposant un codage sous forme systmatique).
11.4. CODES CONVOLUTIONNELS 201
Code cyclique : un code linaire tel que tout dcalage (des symboles) de tout mot de code
est aussi un mot de code.
reprsentation polynmiale : z = z1 ...zn est reprsent par le polynme z(X) = z1
X n1 + z2 X n2 + ... + zn1 X + zn , c.--d. que le j-me symbole zj dun mot de
code z de taille n est le coefficient de X nj dans le polynme correspondant z(X).
La multiplication polynmiale par X (monme du premier degr) correspond au dca-
lage (dune position) vers la gauche.
Toutes les oprations sont faites modulo X n 1.
gnrateur : Pour tout code cyclique, il existe un polynme tel que tout polynme reprsen-
tant un mot de code en soit multiple, et rciproquement.
codage sous forme systmatique : La mthode de codage telle que les m premiers sym-
boles dun mot de code sont exactement les m symboles du message cod.
Pour les codes cycliques, le codage sous forme systmatique est accompli par les tapes
suivantes :
1. multiplier le polynme du message u(X) par X nm
2. diviser X nm u(X) par le gnrateur g(X) et obtenir le reste r(X)
3. coder u(X) par z(X) = X nm u(X) r(X).
dcodage : Le processus de dcodage est similaire au cadre utilis pour les codes linaires
en gnral :
1. calculer le syndrome du mot reu : cest le reste de la division de ce mot par le
gnrateur du code ;
2. en dduire le correcteur partir dun calcul pralable de la correspondance syn-
dromes/correcteurs (la multiplication du gnrateur par le correcteur donne le
syndrome)
3. finalement, appliquer le correcteur au mot de code reu et dcoder les mots ori-
ginels comme les m premiers symboles du mot de code dcod ( condition que
le codage systmatique ait t utilis).
z 2i1
+
mise en srie
z 2i1z 2i
ui u i1 u i2
+
z 2i
11.4.1 Introduction
Dans cette section, un schma de codage qui nest pas par bloc est considr : les codes convo-
lutionnels. Les codes convolutionnels diffrent des codes par bloc par le fait que le mcanisme
de codage garde en mmoire les symboles cods.
En un sens, les codes convolutionnels peuvent tre considrs comme des codes par bloc sans
limites, c.--d. des codes par bloc avec des blocs de taille infinie . Toutefois, il y a une
diffrence significative dans la conception de ces techniques de codage/dcodage. En outre,
les codes convolutionnels se sont montrs bien suprieurs aux codes par bloc dans beaucoup
dapplications.
11.4.2 Codage
Le point de dpart dun code convolutionnel est le codeur. Plutt que de commencer avec
des dfinitions prcises et une analyse gnrale des codes convolutionnels, nous prfrerons
commencer avec un exemple simple qui contient toutefois les caractristiques principales du
codage convolutionnel.
Le codeur de lexemple choisi pour cette section est reprsent dans la figure 11.1.
A chaque pas de temps i, un symbole ui du message entre dans le codeur et deux sym-
boles de mot de code z2i1 z2i sont mis ; c.--d. que u = (u1 , ..., ui , ...) est cod en z =
(z1 , z2 , ..., z2i1 , z2i , ...). Le taux de ce code est donc 1/2.
Les symboles ui du message et les symboles zj du mot de code considrs ici sont tous des
chiffres binaires. Les additions montres dans la figure 11.1 sont des additions binaires (c.--d.
des ou exclusifs ).
De manire plus formelle, le codeur reprsent dans la figure 11.1 peut tre crit comme
c.--d.
ui 7 (ui2 + ui , ui2 + ui1 + ui )
Ces quations peuvent tre vues comme une convolution discrte de la squence dentre
avec les squences 1, 0, 1, 0, 0, . . . et 1, 1, 1, 0, 0, . . . respectivement. Ceci explique le terme de
code convolutionnel .
11.4. CODES CONVOLUTIONNELS 203
Toutefois, ni les quations ci-dessus, ni la figure 11.1 ne dterminent compltement les mots de
code, comme les valeurs de ui2 et de ui1 sont requises. Quelles sont-elles au temps i = 1,
c.--d. quel est ltat initial du systme ?
La convention est quils sont toujours nuls, c.--d. u1 = u0 = 0.
Pour tre sr que ce soit toujours le cas, c.--d. que chaque fois quun nouveau message doit
tre cod ltat initial du codeur soit toujours 0 dans toutes les mmoires, le codage dun
message prcdent doit laisser le codeur dans cet tat nul. Tout codage dun message doit
donc contenir assez de zros la fin pour tre sr que toutes les mmoires du systme soient
revenues 0. Dans le cas de le codeur prsent dans la figure 11.1, ceci revient dire que le
codage de chaque message se terminera par le codage de deux zros ou plus.
Exemple 11.25 (Codage avec un code convolutionnel) Supposons vouloir envoyer le mes-
sage u = 101 en utilisant le codeur reprsent dans la figure 11.1. Comment cela marche-t-
il ?
Traons tous les composants du codage :
valuation 60
Considrons le code convolutionnel, dont le codeur est dcrit par le diagramme suivant :
z 4i3
+
z 4i2
mise en srie
Demandons-nous maintenant quel est en gnral le code gnr par le codeur reprsent dans
la figure 11.1 ?
Considrons par exemple un message de 3 bits u = (u1 , u2 , u3 ). Comme nous lavons vu, ce
qui doit tre effectivement cod est (u1 , u2 , u3 , 0, 0), c.--d. que deux bits zro sont ajouts
la fin du message originel de faon remettre la mmoire du codeur dans son tat initial. La
taille du mot de code correspondant est ainsi 2 5 = 10.
Les bits de ces mots de code sont donns par les quations (11.1) et (11.2), c.--d. sous forme
matricielle :
1 1
(z2i1 , z2i ) = (ui2 , ui1 , ui ) 0 1 (11.3)
1 1
Le mot de code entier z est ainsi obtenu en multipliant (u1 , u2 , u3 , 0, 0) par la matrice
1 1 0 1 1 1 0 0 0 0
0 0 1 1 0 1 1 1 0 0
G3 =
0 0 0 0 1 1 0 1 1 1 ,
0 0 0 0 0 0 1 1 0 1
0 0 0 0 0 0 0 0 1 1
Dfinition 11.15 Un code convolutionnel (n, k, r) D-aire est un code linaire non
born, dont la matrice gnratrice est de la forme suivante (infinie) :
F0 F1 F2 Fr [0] [0] [0]
[0] F0 F1 Fr1 Fr [0] [0]
G = [0] [0] F F
0 r2 Fr1 Fr [0]
.. .. . . .. .. ..
. . . . . .
avec Fi une matrice k n, et [0] la matrice nulle k n ; c.--d. que chaque ensemble
de k lignes de G est le mme que lensemble de k lignes prcdent mais dcal de n
places vers la droite.
Un message u de longueur finie m, u = (u1 , ..., um ) est cod en z = u Gm o u
est le vecteur de longueur m = qk, avec q = m k , tel que u = (u1 , ..., um , 0, ..., 0),
et o Gm est la sous-matrice suprieure gauche de G de taille qk n(r + q).
Notez que u = u, c.--d. que m = m si m est un multiple de k (en particulier lorsque
k = 1 !).
Dans la dfinition ci-dessus, k correspond en fait au nombre de symboles du message qui vont
dans le codeur (k lignes dentre), n est le nombre de symboles de mot de code sortants par
entre (n lignes de sortie) et r le nombre maximal de mmoires (aussi appeles registres )
sur une ligne dentre.
Exemple 11.26 Le codeur montr en exemple dans la figure 11.1 construit un code convo-
lutionnel (2, 1, 2) : k = 1 ligne dentre avec r = 2 mmoires, produisant n = 2 bits de mot
de code pour chaque bit dentre.
Comme nous lavons vu dans la section 11.4.2, pour un message dentre de longueur 3, sa
matrice gnratrice est la matrice 3 10
1 1 0 1 1 1 0 0 0 0
G3 = 0 0 1 1 0 1 1 1 0 0
0 0 0 0 1 1 0 1 1 1
Notez que les codes convolutionnels sont linaires : toute combinaison de mots de code est
aussi un mot de code (avec la convention que les mots de code plus courts sont rallongs avec
des zros la fin pour que la combinaison linaire ait un sens, c.--d. que tous les mots ajouts
aient la mme longueur).
valuation 61
(b) (7, 4, 1)
(c) (3, 1, 4)
(d) (4, 1, 3)
(e) (7, 1, 4)
(f) (1, 3, 7)
2. Quelle est la matrice gnratrice de ce code ?
(a) Combien de blocs F y a-t-il ?
(b) Quelle est la taille de chaque bloc F : ?? ?
(c) Donnez tous les blocs F .
L tat dun systme est lensemble des paramtres internes (mmoires, aussi appeles
registres ) requis pour calculer la sortie correspondant un bloc dentre donn. Pour le
codeur de la figure 11.1 par exemple, ltat au temps i est le contenu actuel des deux mmoires,
c.--d. Si = (ui1 , ui2 ).
Le comportement du codeur ne dpend que de son tat et de lentre : un codeur code
convolutionnel est une machine tat. Lensemble de son fonctionnement est dcrit par un
diagramme dtat.
Exemple 11.27 (Diagramme dtat) Par exemple, pour le codeur de la figure 11.1, nous
avons :
1 / 01
u i / z 2i-1 z 2i
11
1 / 10 0 / 10
0 / 01
10 01
1 / 00
1 / 11 0 / 11
00
0 / 00
o chaque nud reprsente ltat du codeur c.--d. ltat des deux mmoires internes, le
11.4. CODES CONVOLUTIONNELS 207
label bleu est lentre qui provoque le changement dtat , et le rouge les symboles de sortie
correspondants.
Si par exemple, dans ltat 01, un 1 est reu comme symbole dentre, ltat devient alors
10 et les deux symboles de sortie sont 00.
Lensemble des mots de code dun code convolutionnel (n, k, r), correspondant tous les
messages
m de m bits possibles, est donc lensemble de toutes les squences (de taille n(r +
k )) correspondant tous les chemins de longueur m dans le diagramme dtat partant de
ltat nul (zro partout) et reviennent cet tat nul.
Le dploiement dans le temps de tous les chemins de mme longueur dans le diagramme dtat
est appel treillis de taille m du code convolutionnel (n, k, r).
Exemple 11.28 (Treillis) Pour le code (2, 1, 2) considr dans les exemples prcdents, le
treillis de longueur m = 3, reprsentant les codages de tous les messages dentre de 3 bits
est :
01
11 11
10 10
10
10
01 01 01
01 01
01 00
11
10 10 10 11
11
11 11
11
00 00 00 00 00
00 00 00 00 00 00
dans lequel larc le plus (dirig vers le) haut sortant dun nud correspond au bit dentre 1
et le plus bas 0.
Les trois premires colonnes darcs correspondent donc au codage de messages de 3 bits, et
les deux dernires colonnes darcs correspondent aux zros terminaux13 , ces dernires nont
donc que des arcs pointant au plus bas.
Exemple 11.29 (Codage dans le Treillis) Par exemple, le codage du message u = 101 cor-
respond au chemin suivant :
01
11 11
10 10
10
10
01 01 01
01 01
01 00
11
11
10 10 10
11
11 11
11
00 00 00 00 00
00 00 00 00 00 00
c.--d. au mot de code z = 1101000111.
valuation 62
11.4.5 Dcodage
Comme nous venons de le voir, un mot de code correspond un chemin du nud de dpart au
nud de fin du treillis.
Le dcodage consiste alors trouver le chemin le plus appropri correspondant au message
reu dcoder. Dans le cadre du dcodage distance minimale, c.--d. le dcodage du mot
de code avec un nombre minimal derreurs, le chemin le plus appropri signifie le chemin
avec la distance de Hamming minimale par rapport au message dcoder.
La recherche de ce chemin le plus proche peut tre effectue en utilisant la programmation
dynamique, c.--d. lalgorithme de Viterbi.
Cet algorithme dcode un bloc de mot de code aprs lautre (c.--d. des paquets de n bits du
message les uns aprs les autres), en ne gardant chaque tape que les solutions localement op-
timales, c.--d. gardant, pour chaque nud dans la colonne correspondant au bloc couramment
dcod, le meilleur chemin menant ce nud.
A la fin, le meilleur chemin trouv pour le dernier nud est le message dcod.
Ce qui est important et utile propos de cet algorithme est que le nombre de meilleurs chemins
possibles qui sont gards chaque tape de temps est toujours infrieur ou gal au nombre
dtats de le codeur.
Donnons maintenant plus de prcisions sur lalgorithme.
Introduisons tout dabord un peu de notation. Pour chaque tat s du codeur, soit i (s) le
meilleur (c.--d. le plus proche, c.--d. avec un nombre derreurs minimal) dcodage de lon-
gueur i finissant dans ltat s
i (s) = min
z1 ,...,z2i
d(z1 ...z2i , zb1 ...b
z2i )
finissant en s
n
Le dcodage complet correspond donc |bz | (00) |b
z| = m + 2 = 2 ici o |b
z | est la longueur
du message dcoder.
Il est facile de voir que pour toute paire dtats de codage (s, s ), nous avons :
i (s) = z minz d(z2i1 z2i , zb2i1 zb2i ) + i1 (s ) .
2i1 2i
de s s
0 (00) = 0
Pouri de 1 |b
z|
Pour touts
i (s) = min
(d(z2i1 z2i , zb2i1 zb2i ) + i1 (s ))
s s
Marquer le/un arc de s s qui ralise le minimum
Reconstruire le chemin optimal en sens inverse, de ltat final ltat nul initial.
Exemple 11.30 Supposons que le mot de code z = 1101000111 soit envoy travers un
canal bruit et que zb = 0101010111 soit reu, c.--d. que deux erreurs soient survenues.
Lalgorithme ci-dessus passera donc par les tapes suivantes, o le nombre minimal derreurs
i (s) ce point i est crit en rouge au-dessus de chaque tat s dans le treillis :
3
01 01
11 11 11 11
10 10 10 10
1
10
10
10
10
01
01
01 01
01
01
01 01
01 01
1 01 00 1 01 2 00
11
11
11
11
10 10 10 10 10 10
11
11
11 11 11 11
0 1 11 0 1 2 11
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
zb = 01 01 01 01 11 zb = 01 01 01 01 11
3 3 3 3
01 01
11 11 11 11
10 10 10 10
1 2 1 2 2
10
10
10
10
01
01
01 01
01
01
01 01
01 01
1 01 2 00 2 1 01 2 00 2
11
11
11
11
10 10 10 10 10 10
11
11
11 11 11 11
0 1 2 11 2 0 1 2 11 2 3
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
zb = 01 01 01 01 11 zb = 01 01 01 01 11
3 3 3 3
01 01
11 11 11 11
10 10 10 10
1 2 2 1 2 2
10
10
10
10
01
01
01 01
01
01
01 01
01 01
1 01 2 00 2 1 01 2 00 2
11
11
11
11
10 10 10 10 10 10
11
11
11 11 11 11
0 1 2 11 2 3 2 0 1 2 11 2 3 2
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
zb = 01 01 01 01 11 zb = 01 01 01 01 11
Lalgorithme continue comme a jusqu ltape finale, o ltat nul est atteint avec un
nombre minimal derreurs de 2.
La toute dernire tape est la reconstruction en sens inverse du chemin, qui est dessin en
bleu sur la dernire image. Ce chemin correspond au mot de code 1101000111.
Ltape finale du dcodage est de reconstruire le message originel partir du mot de code,
ce qui se fait en sachant quel arc (0 ou 1) a t suivi (ou simplement en regardant le premier
bit de chaque tat). Dans ce cas, nous obtenons 10100, et en supprimant les 2 derniers zros
qui ne font pas partie du message originel, nous obtenons finalement 101.
valuation 63
Pour le code utilis dans la question de contrle prcdente, comment est dcod
1011101011111101101001100010 ?
Comme prsent dans la section 11.4.3, un code convolutionnel est un code linaire. Donc, par
le thorme 11.2, sa distance minimale est gale son poids minimal.
Proprit 11.15 (Poids minimal dun code convolutionnel) Pour un code convo-
lutionnel, le poids minimal est le nombre minimal de symboles non nuls sur un chemin
menant de ltat nul ltat nul.
Exemple 11.31 Considrons le code convolutionnel que nous avons trait depuis le dbut de
cette section. Le meilleur moyen de reprsenter les chemins du diagramme dtat est dutiliser
le treillis. Pour le calcul du poids minimal, le treillis de taille deux est suffisant, car chaque
arc prsent dans le treillis de taille trois qui nest pas prsent dans le treillis de taille deux
reviendra dans un mme tat avec un plus grand nombre de symboles non nuls, et ne peut
donc faire partie du chemin minimal.
Dans notre cas, a donne :
11
10
10 Poids=6
10 10
01 01
11 Poids=5
11
01 01
11 11
00 00 00 00
00 00 00 00 00
11.4. CODES CONVOLUTIONNELS 211
valuation 64
Quelle est la distance minimale du codeur donn dans les questions de contrle prcdentes ?
code convolutionnel : Un code convolutionnel (n, k, r) D-aire est un code linaire illimit,
dont la matrice gnratrice (infinie) est telle que chaque ensemble de k lignes est le
mme que lensemble de k lignes prcdent, mais dcal de n positions vers la droite.
Ceci correspond la description matricielle de lalgorithme de codage, qui est souvent
donn sous forme de dessin dun circuit avec k lignes dentre, n lignes de sortie et au
plus r mmoires sur un chemin dentre vers sortie.
codage : Un u de longueur finie m, u = (u1 , ..., um ) est cod en z = u Gm o
mmessage
q = k , m = qk, u est le vecteur de longueur m tel que u = (u1 , ..., um , 0, ..., 0),
et Gm la matrice suprieure gauche de taille qk n(r + q) de la matrice gnratrice.
tat (interne) du codeur : lensemble des tats des mmoires (ou registres) du codeur.
diagramme dtat : Le diagramme dtat dun codeur est un graphe, dont les nuds sont
tous les tats internes possibles du codeur. Un arc entre un nud Si et un nud Sj
dans ce graphe reprsente le fait quil existe une entre qui, lorsquelle est reue dans
ltat Si amne le codeur dans ltat Sj .
Ces arcs sont tiquets avec le(s) symbole(s) dentre et les symboles de sortie corres-
pondants.
reprsentation par treillis : La reprsentation du dploiement dans le temps de tous les
chemins possibles du diagramme dtat.
algorithme de dcodage de Viterbi : Lalgorithme de programmation dynamique qui, pour
un message dcoder donn, trouve le chemin le plus court (en termes derreurs)
dans le treillis.
R SUM DU CHAPITRE 11
code par bloc : un ensemble non vide de mots de mme longueur, considrs comme des
vecteurs ligne .
poids : (dun mot) le nombre de symboles non nuls.
distance de Hamming : le nombre de coordonnes par lesquelles deux vecteurs diffrent.
La distance de Hamming entre deux mots est le poids de leur diffrence.
dcodage distance minimale : structure de correction derreurs dans laquelle chaque mot
reu est dcod en le mot de code le plus proche (daprs la distance de Hamming).
dcodage vraisemblance maximale : structure de correction derreurs dans laquelle
chaque mot reu zb est dcod en le (un des) mot(s) le(s) plus vraisemblable(s) z, c.--d.
un mot de code tel que P (Y = zb|X = z) soit maximale (avec X lentre du canal
212 CHAPITRE 11. CODES CORRECTEURS DERREURS
bruit et Y sa sortie).
distance minimale dun code : la distance de Hamming minimale (non nulle) entre toute
paire de mots de code (diffrents).
capacit de correction et de dtection derreurs : Un code par bloc C de longueur n uti-
lisant le dcodage distance minimale peut, pour toute paire dentiers t et s tels que
0 t n et 0 s n t, corriger tous les schmas t ou moins erreurs et dtecter
tous les schmas t+1, ..., t+s erreurs si et seulement si sa distance minimale dmin (C)
est strictement suprieure 2t + s :
code linaire : un code par bloc qui est un espace vectoriel (c.--d. que toute combinaison
de mots de code est aussi un mot de code).
Un code linaire (n, m) D-aire est un sous-espace vectoriel de dimension m de les-
pace vectoriel de dimension n de mots de code D-aires.
distance minimale dun code linaire : pour les codes linaires, la distance minimale est
gale au poids minimal.
matrice gnratrice dun code linaire : (dun code linaire (n, m)) une matrice m n
dont les lignes sont une base du code (elle sont donc linairement indpendantes).
forme systmatique de la matrice gnratrice dun code linaire : une matrice gnra-
trice m n dun code linaire (n, m) est dite sous forme systmatique seulement
si sa sous-matrice m m la plus gauche est la matrice identit (de taille m).
codage avec un code linaire : le codage avec des codes linaires est effectu par multipli-
cation avec une matrice : le mot u coder est multipli par une matrice gnratrice du
code choisie G, produisant le mot de code z = u G.
Si la matrice gnratrice est sous forme systmatique, les m premiers symboles du mot
de code sont exactement les symboles du message. Ainsi, seuls les n m derniers
symboles doivent tre calculs.
matrice de vrification dun code linaire : une matrice (n m) n H est une matrice de
vrification pour un code linaire (n, m) C si et seulement si
z GF(D)n z H T = 0 z C
Histoire et bibliographie
Le travail sur les codes correcteurs derreurs est bien sr parti du travail de pionnier de Shannon
en 1948. La conception de bons codes efficaces a commenc dans les annes cinquante avec les
travaux de Hamming, Slepian et beaucoup dautres. Pendant les annes cinquante, la plupart
des travaux dans ce domaines taient destins au dveloppement dune vraie thorie du codage
(codes linaires, codes par bloc et codes convolutionnels).
Les codes convolutionnels ont t prsents pour la premire fois en 1955 par Elias [3] comme
une alternative aux codes par bloc. Wozencraft proposa plus tard une mthode de dcodage
squentiel efficace pour de tels codes [13]. Puis, en 1967, Viterbi proposa un algorithme de
dcodage vraisemblance maximale [12] assez facile implmenter qui mne plusieurs
applications des codes convolutionnels, en particulier aux communications avec les satellites
dans lespace lointain.
Un dplacement de la thorie vers la pratique fut effectu dans les annes soixante-dix, avec
une accroissement rapide des applications militaires et de communications spatiales.
Exercices du module I2
Exercice 12.1.1:
1 0 0 1 1
G= 0 1 0 1 1
0 0 1 0 0
b Quelle est alors la distance minimale de ce code ? Combien derreurs peut-il au plus corri-
ger ?
1
Lorsque la matrice gnratrice nest pas donne sous forme systmatique, pour obtenir la forme systmatique
quivalente on transforme la matrice laide de permutations sur les lignes et/ou sur les colonnes, multiplications
de ligne ou colonne par un scalaire non nul ou encore par addition de lignes (mais laddition de colonnes est
interdite !).
215
216 CHAPITRE 12. EXERCICES DU MODULE I2
Exercice 12.1.2:
Considrons le code linaire binaire dont la partie parit est engendre par les quations :
z5 = s2 + s3 + s4
z6 = s1 + s2 + s3
z7 = s1 + s2 + s4
z8 = s1 + s3 + s4
le mot de source tant compos des bits (u1 , u2 , u3 , u4 ) et le message cod : (z1 , z2 , z3 , z4 , z5 , z6 , z7 , z8 ).
a
a Quelle est la matrice gnratrice de ce code (sous forme systmatique) ?
b Coder la squence 010110010111.
c Quelle est la matrice de vrification de ce code ?
d Montrer que la distance minimale de ce code est 4.
e Combien derreurs sur le mot transmis ce code peut-il corriger au maximum ? Combien
peut-il corriger de schmas derreur diffrents (c.--d. combien a-t-il de syndromes dif-
frents) ?
f On envisage lutilisation de ce code sur un canal symtrique binaire. Pour cela les 15 sch-
mas derreur corriger choisis sont les 15 schmas derreur les plus probables. crire
la table de correction (c.--d. la table donnant pour chaque syndrome la correction
appliquer).
g laide de la table prcdente, dcoder 1111110000001100.
Exercice 12.1.3:
Exercice 12.2.1:
Tous les codes cycliques de longueur n possibles2 sont obtenus en utilisant comme polynme
gnrateur un diviseur de X n 1.
Montrer quil existe uniquement 3 codes cycliques binaires non triviaux de longueur 3. Donner
le polynme gnrateur dans chaque cas.
Remarque : en binaire, c.--d. sur le corps GF(2), X n 1 et X n + 1 sont les mme polynmes.
Exercice 12.3.1:
Considrons le systme de codage convolutif suivant, mettant 3 bits pour tout bit du message
coder :
+ 1
Squenceur
ui ui1 ui2 + 2 X
+ 3
2
et non triviaux, c.--d. diffrent du code nul compos dun seul mot de code, le vecteur nul
218 CHAPITRE 12. EXERCICES DU MODULE I2
Exercice 12.3.2:
Considrons le systme de codage convolutif suivant, traitant le message dentre coder par
blocs de 2 bits et mettant 3 bits pour chaque ensemble de 2 bits du message dentre :
b u2 i u2 i2 + 1
Squenceur
u2 i u2 i+1 + 2
b u2 i+1 u2 i1 + 3
Module I3 : Cryptographie
Introduction
219
220 CHAPITRE 13. CRYPTOGRAPHIE
Fraudeur
DESTINATAIRE
cryptage dcryptage
EXPDITEUR
C=e(M,K) D=d(C,K)
Message M canal public
Cl K
canal scuris
Le cadre gnral de la cryptographie est de coder des messages de manire assurer leur
confidentialit ou leur authenticit.
Comme dcrit dans le chapitre 5, un message M est une squence de symboles dun alphabet
. En cryptographie, le codage du message est appel cryptage ou chiffrement. Dans le cadre de
travail considr dans ce chapitre, le cryptage sera effectu par lutilisation dune fonction e et
dune cl K, qui est elle-mme une squence finie de symboles dun alphabet, habituellement
mais pas ncessairement le mme que lalphabet du message .
Le message crypt, ou cryptogramme, est alors C = e(M, K). La fonction de cryptage est
suppose ici dterministe. C est donc parfaitement dtermin une fois M et K donns, c.--d.
H(C|M, K) = 0.
Le dcryptage (ou dchiffrement) est effectu par une fonction d et la cl K, telle que (sans
surprise !) d(e(M, K), K) = M . Nous faisons lhypothse que le dcryptage aussi est dter-
ministe, c.--d. H(M |C, K) = 0.
Notez que H(C|M, K) = 0 et H(M |C, K) = 0 nimpliquent pas que H(K|M, C) = 0 ;
plusieurs cls pourraient effectivement tre possibles pour une paire (M, C) donne. Cest
toutefois rarement le cas (et une mauvaise ide) en pratique, et donc H(K|M, C) vaut aussi
presque toujours 0.
La structure gnrale sur laquelle se concentre la cryptographie peut tre rsume par le dessin
de la figure 13.1.
Le but de la cryptographie est de protger le message contre
une mauvaise rception ( confidentialit ) : il devrait tre impossible dobtenir le message
13.1. CADRE GNRAL 221
Avant dtudier plus avant les notions fondamentales de la cryptographie avec des outils mo-
dernes de la thorie de linformation, donnons dabord trois exemples historiques (mais pas
srs) de cryptogrammes : les chiffrements par substitution, par transposition, et le code de
Vigenre.
Substitution
Exemple 13.1 (Chiffrement par substitution) Considrons des messages faits de lalpha-
bet habituel, fait de 27 lettres (lespace blanc inclus !) : = {A, ..., Z, }. Une cl k , c.--d.
une permutation de , possible pourrait tre :
A R
B I
.. ..
. .
Y B
Z E
L
Transposition
Dans le chiffrement par transposition, la cl consiste en une permutation des d > 1 premiers
entiers (d fait aussi partie de la dfinition de la cl).
Lalgorithme de cryptage est alors le suivant :
1. allonger le message avec des espaces blancs (moins de d 1), de manire ce que la
longueur du message soit un multiple de d ;
2. dcouper le message en blocs de longueur d ;
3. permuter les symboles de chaque bloc selon la permutation K.
Chiffrement de Vigenre
Le dernier exemple historique que nous voulons prsenter est le chiffrement de Vigenre. Dans
ce systme de cryptage, la cl est une squence de symboles du mme alphabet que les
messages. En pratique, cest trs souvent un mot courant ou une phrase de quelques mots.
Lutilisation dun ordre sur (p.ex. lordre alphabtique) permet de transformer la cl en une
squence dentiers, p.ex. A = 1, B = 2, ..., Z = 26 et = 27.
De manire plus formelle, si
n est la taille de ,
i(a) est la position du symbole a dans (daprs lordre choisi sur ), 1 i(a) n,
(i) le i-me symbole de (1 i n, sinon considrer i mod n),
13.2. CONFIDENTIALIT PARFAITE 223
Exemple 13.3 (Chiffrement de Vigenre) Considrons encore une fois des messages faits
des 27 lettres de langlais (espace blanc inclus). La cl est alors une squence de carac-
tres, par exemple k =INFORMATION. Comment le message VIGENERE CIPHER IS
ALSO QUITE SIMPLE est-il cod ?
Si nous dcidons que la lettre A correspond 1 et lespace 27, la lettre I corres-
pond alors 9, et donc la premire lettre du message , V, est donc code en V+9=D, la
deuxime lettre du message I est code en I+N=I+14=W, la troisime lettre G en
G+F=G+6=M, etc.
Voici le codage complet :
VIGENERE CIPHER IS ALSO QUITE SIMPLE
INFORMATIONINFORMATIONINFORMATIONINF
DWMTERSYIRWYVKFRVTTJ FXNWI FFTAX YZK
c.--d. que le message cod est DWMTERSYIRWYVKFRVTTJ FXNWI FFTAX YZK.
R SUM DU CHAPITRE 13
La cryptographie vise transmettre des messages de manire scurise (seules les per-
sonnes autorises peuvent le lire) ou authentifier des messages (aucune personne non-
autorise naurait pu lenvoyer).
Pour ce faire, les messages en clair M sont cods en utilisant une cl K et une fonction
dterministe : C = e(M, K).
Les messages crypts peuvent tre dcods de manire dterministe en utilisant la fonction
de dcodage d et la mme cl K, de faon ce que d(e(M, K), K) = M .
H(C|M, K) = 0.
H(M |C, K) = 0.
Dans la structure dpeinte dans la figure 13.1, o seuls les messages chiffr peuvent tre capts
par des personnes non autorises1 , le systme sera sr si le message chiffr namne aucune
information sur le message originel, c.--d. si
I(C; M ) = 0,
ce qui veut aussi dire que M et C sont des variables alatoires indpendantes.
Thorme 13.1 Dans un systme de chiffrement parfait, il doit exister au moins au-
tant de cls possibles que de messages possibles.
D MONSTRATION
I(C; M ) = 0
implique que pout tout message m, P (C|M = m) = P (C).
Considrons maintenant un cryptogramme possible, c.--d. un message crypt c tel que
P (C = c) 6= 0.
Ainsi, pour chaque message originel possible m, on a P (C = c|M = m) 6= 0, ce qui veut
dire que pour chaque m il existe une cl, note k(m), telle que c = e(k(m), m).
En outre, m 6= m = k(m) 6= k(m ) sinon le dchiffrement ne serais plus dter-
ministe : nous aurions deux messages diffrents qui, avec la mme cl, donnent le mme
cryptogramme c !
Il y a donc au moins autant de cls que de messages m possibles.
Thorme 13.2 Dans un systme de cryptage parfait, lincertitude sur les cls
H(K) est au moins aussi grande que lincertitude sur les messages H(M ) :
H(K) H(M ).
1
Ce type dattaque est appel attaque sur le texte chiffr seulement.
13.2. CONFIDENTIALIT PARFAITE 225
La consquence de ces deux thormes est que dans un systme parfait, les cls doivent tre
suffisamment complexes, au moins plus complexes que les messages eux-mmes.
Par ailleurs :
n
X n
X X
H(C) = H(Ci |C1 ...Ci1 ) = P (c1 ...ci1 )H(Ci |c1 ...ci1 )
i=1 i=1 c1 ...ci1
or
X
P (Ci = c|c1 ...ci1 ) = P (Ki = c m)P (Mi = m|c1 ...ci1 )
mM
1 X
= P (Mi = m|c1 ...ci1 )
|K |
mM
1
=
|K |
2
Laddition binaire (aussi appele ou exclusif pour le lecteur familier avec linformatique) est laddition
modulo 2 habituelle, sans retenue : 1 + 1 = 0 et, comme dhabitude, 0 + 0 = 0, 1 + 0 = 0 + 1 = 1.
226 CHAPITRE 13. CRYPTOGRAPHIE
donc
H(Ci |c1 ...ci1 ) = H(Ki )
P
et donc H(C) = i H(Ki ) = H(K). Ainsi H(C|M ) = H(C).
Nous avons vu que pour quun systme de cryptage soit parfait, la cl doit tre suffisamment
complexe. En pratique, du moins dans le cas dune utilisation large chelle, ceci nest pas
trs commode.
Pour un systme pratique large chelle (p.ex. la scurit sur Internet) la cl doit tre petite
(du moins plus petite que les messages) et pouvoir tre utilise plusieurs fois, c.--d. que le
systme doit tre imparfait dun point de vue formel.
Que pouvons-nous donc dire propos des systmes imparfaits (mais plus pratiques) ?
Pour dterminer quand un systme de chiffrement qui noffre pas de confidentialit parfaite
pourrait en principe tre cass, Shannon introduit ce quon appelle la fonction dquivocation
de la cl, dfinie pour des entiers par
Il semble vident que plus du texte crypt a t vu, moins il reste dincertitude sur la cl. De
manire plus formelle :
lim a(n) = 0
n
La distance dunicit u est alors dfinie comme le n le plus petit tel que a(n) 0.
Ainsi, u est la plus petite quantit de texte chiffr partir de laquelle des personnes non-
autorises sont capables de dterminer la cl secrte de manire quasiment unique. En gros, la
distance dunicit est la plus petite quantit de texte chiffr partir de laquelle le systme de
chiffrement peut tre cass.
Calculons maintenant la distance dunicit dans certaines circonstances.
13.2. CONFIDENTIALIT PARFAITE 227
Thorme 13.4 Si
M et C sont de mme longueur n et du mme alphabet ;
les messages crypts ont en gros une incertitude maximale : H(C1 ...Cn )
n log || (ce qui est ce que tout cryptographe cherche atteindre) ;
la cl et les messages sont indpendants : H(Mn , K) = H(Mn ) + H(K) (ce qui
est aussi trs naturel et habituellement le cas).
Alors la distance dunicit peut tre approxime par
H(K)
u (13.1)
R(M ) log ||
o R(M ) est la redondance du message non crypt M , comme dfinie dans la sec-
tion 3.2.1 du chapitre 3 :
h (M )
R(M ) = 1 .
log ||
D MONSTRATION Faisons lhypothse que n est assez grand pour que H(Mn1 ) n
h (M ) ; ce qui est une hypothse sense (considrer sinon le maximum entre un tel n et
la valeur de u obtenue avec la formule donne).
1)
H(KCn
z }| {
H(K|Cn1 ) = H(Mn1 KCn1 ) H(Mn1 |KCn1 ) H(Cn1 )
= H(Mn1 KCn1 ) H(Cn1 )
= H(Mn1 K) H(Cn1 )
= H(Mn1 ) + H(K) H(Cn1 )
= n h (M ) + H(K) n log ||
ou :
H(K)
u =
log || h (M )
H(K)
=
R(M ) log ||
Exemple 13.5 (distance dunicit) Considrons des messages en anglais (faits de lalphabet
de 27 lettres, incluant lespace blanc) chiffrs avec un code utilisant une cl de 20 lettres
indpendantes. H(K) = 20 log(27).
Sachant que le taux dentropie de langlais est en gros de 2 bits par lettre, la redondance des
228 CHAPITRE 13. CRYPTOGRAPHIE
messages est R(M ) = 1 2/ log(27) 0.58 et la distance dunicit dun tel systme est :
H(K)
u =
R log ||
20 log(27)
= 35
log(27) 2
Shannon tait bien conscient que la formule (13.1) tait valide en gnral et peut tre utilise
pour estimer les caractristiques dquivocation et la distance dunicit des types de chiffres
ordinaires . En fait, les cryptographes utilisent cette formule pour estimer la distance dunicit
de presque tous les chiffres.
Notez aussi que u est, en principe, la quantit de texte chiffr pour dterminer la cl de manire
presque unique. Toutefois, trouver K partir de C1 , C2 , . . . , Cu peut trs bien tre un problme
impossible traiter en pratique. Cette formule dit seulement que toute linformation est l,
mais ne dit pas un mot sur la difficult extraire cette information. Nous reviendrons sur
cet aspect plus tard, dans la section 13.3.
On peut voir de (13.1) quun bon moyen daugmenter la distance dunicit (c.--d. de moins
en dire propos du systme) est de diminuer la redondance des messages, c.--d. daugmenter
leur entropie.
Une bonne ide est par exemple de compresser les messages avant cryptage. En effet, dans les
meilleurs cas de compression, H(Mn1 ) n log || et donc R(M ) 0, alors u .
Une autre possibilit est dutiliser un vieux truc de cryptographique appel substitution ho-
mophonique . Dans ce procd, plusieurs homophones diffrents sont utiliss pour re-
prsenter chaque symbole de lalphabet originel ; plus dhomophones pour les symboles les
plus frquents, de manire ce que les homophones aient une probabilit dapparition presque
gale (ce qui nest pas le cas des symboles originels).
Exemple 13.6 En anglais, le symbole le plus probable est lespace blanc, avec une proba-
bilit denviron .1859, le symbole le plus probable suivant est E, qui a une probabilit
denviron .1031. Le moins probable est Z avec une probabilit denviron .0005.
Si nous voulons convertir un tel texte en anglais en utilisant des symboles probabilit
dapparition gale, nous avons besoin dau moins 1/0.005 = 2000 symboles (pour pou-
voir en avoir au moins un pour le Z). Supposons ainsi utiliser 2000 homophones
pour reprsenter les 27 lettres. Lespace blanc sera reprsent par nimporte lequel des 372
( .1859 2000) symboles choisis pour le reprsenter, E par nimporte lequel des 206
( .1031 2000) autres symboles qui lui sont rservs, etc., et 1 ( .0005 2000) sym-
bole homophone sera utilis pour reprsenter le Z. Le choix dun substitut pour une lettre
de langlais est alors fait par choix alatoire uniforme partir de lensemble de substituts
homophones pour cette lettre. Les choix successifs sont effectus de manire indpendante.
Aprs une telle conversion, chaque symbole homophone du texte converti a par essence une
probabilit dapparition gale nimporte quel autre.
13.3. CONFIDENTIALIT EN PRATIQUE : SCURIT ALGORITHMIQUE 229
Le dcodage peut tre facilement effectu en remplaant chacun des substituts par la lettre
correspondante. Il ny a pas besoin de savoir lavance quels substituts ont t choisis au
hasard au cours du procd de pr-codage.
valuation 65
Quelle est la distance dunicit dun systme de cryptage chiffrant des messages de 96 carac-
tres ayant un taux dentropie de 3 bits par caractre avec des cls dont lentropie est de 33
bits ?
valuation 66
Quelle est la distance dunicit dun systme de cryptage qui code des messages binaires qui
ont une redondance de 25% avec des cls distribues uniformment de 16 symboles binaires ?
H(K)
u
R(M ) log ||
Le but de cette section nest pas de fournir un cours complet sur la complexit algorithmique,
mais de prsenter les concepts de base de manire ce que le reste de la matire concernant la
scurit algorithmique puisse tre suffisamment bien compris.
La complexit algorithmique vise dfinir la complexit des problmes de dcision. Un pro-
blme de dcision est simplement une question oui/non sur une entre bien dfinie. Par exemple,
un nombre entier n donn (l entre ), ce nombre est-il un nombre premier ?
Si la rponse au problme de dcision pourrait tre trouve par quelque algorithme (sur une
machine de Turing), le problme de dcision est dit algorithmique .3
Pour les problmes de dcision algorithmiques, la complexit(-temps)4 est dfinie comme le
plus petit nombre de pas de temps (sur une machine de Turing) des algorithmes qui peuvent
rpondre la question.5
Pour de bonnes raisons fondamentales, cette complexit nest pas exprime exactement, mais
uniquement de la faon dont elle dpend de la taille de lentre : un problme est dit linaire,
quadratique, exponentiel, ... ce qui signifie que sa complexit crot linairement, avec le carr,
exponentiellement, ... avec la taille de lentre.
La complexit est donc exprime en termes de notation grand O .
Dfinition 13.3 (Notation grand O) Pour deux fonctions f et g sur les nombres
rels, g est dite O(f ) si et seulement si
x0 R, c R, x x0 |g(x)| c f (x)
Notez que si g est O(f ) et f est O(h), alors g est aussi O(h). Pour la mesure de la complexit,
3
Dans la thorie de la complexit algorithmique gnrale, les problmes de dcision algorithmiques sont appels
problmes dcidables selon Turing , mais ceci va un peu au-del du propos de ce chapitre.
4
seule la complexit temporelle est considre dans ce chapitre.
5
Nous nentrons pas ici dans les dtails des problmes et co-problmes.
13.3. CONFIDENTIALIT EN PRATIQUE : SCURIT ALGORITHMIQUE 231
nous cherchons le plus petit et plus simple f tel que g soit O(f ) (p.ex. tel que f soit aussi
O(|g|)).
Exemple 13.7 (Notation grand O) 3 n + log n + 4 est O(n). Notez quelle est aussi O(n +
n3 ), O(n log n), O(n2 ), ... qui ne sont pas pertinents pour la mesure de la complexit.
5 x2 12 x7 + 5 x3 est O(x7 ).
1/x est O(1).
La complexit dun problme linaire est O(n), o n est la taille de lentre.
Un problme dont la complexit est O(2n ) est un problme exponentiel.
Un pige classique est de penser que NP signifie not-P ou non-P. Ceci est faux pour plu-
sieurs raisons :
P et NP ne sont pas complmentaires : P est en fait totalement inclus dans NP ;
il existe des problmes qui ne sont ni P ni NP.
Que signifie alors le N de NP ? Il veut dire Non-dterministe . Les problmes NP sont
des problmes qui sont polynmiaux dune manire non-dterministe : choisissez une solution
possible au hasard, vous pouvez conclure (pour cette solution candidate seulement !) en un
temps polynmial.
Manifestement P NP, mais la question de savoir si NP P ou non reste pour linstant
ouverte.
Respectivement cette question, il y a un sous-ensemble de NP qui est dintrt particulier :
les problmes NP-Complets (ou NP-C ).
Cette catgorie est dune importance particulire car si quelquun russit prouver quun seul
NP-C est effectivement dans P, alors tout NP est inclus dans P !
Il y a finalement une dernire catgorie de problmes (les difficiles ) : les problmes NP-
difficiles.
Dfinition 13.6 Un problmea est dit NP-difficile si il est au moins aussi difficile que
tout problme de NP.
a
Dans sa dfinition la plus gnrale, la catgorie NP-difficile inclut aussi les problmes qui ne sont
pas que des problmes de dcision.
232 CHAPITRE 13. CRYPTOGRAPHIE
Les problmes NP-C et NP-difficiles sont souvent confondus. La diffrence entre les problmes
NP-C et NP-difficiles est quun problme NP-difficile na pas besoin dtre dans NP (que ce
soit parce que vous ne vous en proccupiez pas ou ne vouliez pas passer de temps le prouver
ou, plus fondamentalement, parce que cest un problme si difficile que mme le tester sur une
seule solution ne peut tre accompli en un temps polynmial).
(xi1 xj1 xk1 ) (xi2 xj2 xk2 ) (xi3 xj3 xk3 ) ....
Nous avons maintenant tous les ingrdients requis pour laborer un code difficile craquer :
inspirons-nous des problmes NP-difficiles. Concentrons-nous maintenant plus prcisment
sur lutilisation de problmes difficiles en cryptographie : les fonctions sens unique et, plus
tard, les fonctions trappe.
Dfinition 13.7 (Fonction Sens Unique) Une fonction sens unique est une
fonction qui est facile calculer mais difficile inverser (par calcul).
13.3.3 DES
Le standard de cryptage de donnes (abrg DES, pour Data Encryption Standard) est un
exemple de systme de cryptographie algorithmique qui utilise des fonctions sens unique.
Nous prsentons ici lide de base du DES en nous concentrant seulement sur le noyau du
systme, le standard contenant lui-mme plusieurs autres astuces pratiques.
Le DES utilise un problme NP-Complet trs similaire au SAT pour ceci : des systmes dqua-
tions dans GF(2).
x1 x4 + x2 x3 x5 = 1
x2 x3 + x1 x3 x4 = 1
x1 x3 + x1 x2 x5 = 1
C = (Md1 , Md )
7
sinon lallonger et le partager de faon avoir des parts de longueur 2n.
234 CHAPITRE 13. CRYPTOGRAPHIE
f (x1 , x2 , x3 , y1 , y2 , y3 )
= (x1 x2 y1 y2 , x2 x3 y1 y3 , (x1 + x2 )y1 y3 )
K1 = 101, K2 = 011
Itrations :
M2 = M0 + f (K1 , M1 )
= (1, 0, 1) + f ((1, 0, 1), (1, 1, 1))
= (1, 0, 1) + (0, 0, 1) = (1, 0, 0)
M3 = M1 + f (K2 , M2 )
= (1, 1, 1) + f ((0, 1, 1), (1, 0, 0))
= (1, 1, 1) + (0, 0, 0) = (1, 1, 1)
C = (M2 , M3 ) = (1, 0, 0, 1, 1, 1)
Securit du DES
La scurit du DES est base sur un problme NP-Complet. En tant que telle, il existe au moins
trois sources dinscurit :
NP = P : sil apparat un jour que des solutions polynmiales peuvent en fait tre trouves
pour des problmes NP, alors ces problmes difficiles ne seront plus difficiles du tout !
Ceci est toutefois trs peu vraisemblable de nos jours.
La taille de la cl nest pas assez grande (rappel : la complexit crot avec la taille, et donc
seules des entres suffisamment longues mnent un temps de calcul suffisamment long
pour ne jamais tre atteint). En fait, depuis quil a t propos, le DES a t beaucoup
critiqu en raison de sa petite taille de cl de 56 bits. En janvier 1999, DES a t craqu
en 22 heures et 15 minutes. En novembre 2002, DES fut abandonn pour AES (Advanced
Encryption Standard) qui supporte des cl de 128 bits, 192 bits, et 256 bits.
Mais la critique la plus srieuse est certainement que, comme le problme est NP, toute
solution possible peut, par dfinition, tre teste en un temps polynmial, c.--d. que si
lattaquant devine par hasard la bonne cl, il lui est facile de vrifier que cette cl est la
bonne !
La conclusion principale est que la scurit nest pas toujours garantie dans tous les cas :
elle pourrait, par hasard, tre facilement craque dans certains cas spciaux. La scurit vient
uniquement du fait que lattaquant a peu de chances de deviner la cl.
R SUM DU CHAPITRE 13
13.4. CRYPTOGRAPHIE CL PUBLIQUE 235
complexit algorithmique : la faon dont crot le temps dun algorithme par rapport la
taille de son entre.
P et NP : Un problme est dit dans P sil peut tre rsolu par un algorithme dont la com-
plexit est polynmiale.
Un problme est dit dans NP si une solution propose de ce problme peut tre vrifie
en un temps polynmial (par rapport la taille de cette solution).
Pige : NP ne signifie pas non P mais plutt P non-dterministe .
fonction sens unique : une fonction facile calculer mais difficile inverser.
DES : un systme de cryptage bas sur la difficult de rsolution des systmes boolens
non-linaires.
Le problme principal dont on doit soccuper dans les systmes de cryptage large chelle
est : comment transmettre les cls de manire scurise ?
Lide intelligente de Diffie et Hellman est de ne pas transmettre la cl du tout, mais dutiliser
des cls publiques. Chaque paire dutilisateurs peut, en utilisant un systme gnrique pour la
distribution des cls, avoir sa propre cl pour communiquer. Nous prsentons dans cette section
deux systmes diffrents de distribution des cls publiques : le schma de Diffie-Hellman et le
RSA.
Larticle publi par Diffie et Hellman en 1976 provoqua cette poque un choc dans la com-
munaut des cryptographes. Larticle suggrait quil est possible de crer des systmes de
chiffrement algorithmiquement srs sans canal scuris pour lchange des cls !
Il tait en effet bien tabli que les systmes cl publique ne peuvent en fait fournir aucune
scurit inconditionnelle, comme pour de tels systmes H(K) = 0 ! La perce vint de leur ide
intelligente selon laquelle, si lutilisation de la scurit algorithmique a t choisie (comme en
fait dans la plupart des applications pratiques), alors lchange scuris de cls secrtes nest
plus ncessaire.
Cette ide plutt contre-intuitive repose sur les notions fondamentales des fonctions sens
unique, dj prsentes, et des fonctions trappe, qui seront prsentes dans quelques sections.
Mais avant de continuer sur ce sujet, nous avons besoin dun peu plus de mathmatiques.
236 CHAPITRE 13. CRYPTOGRAPHIE
La cryptographie algorithmique moderne est base sur lalgbre des corps finis, plus prci-
sment sur la multiplication modulo p (o p est un nombre premier), c.--d. le groupe
multiplicatif GF (p) du corps de Galois GF(p) : 1, ..., p 1.
Comme ce groupe possde p 1 lments, le thorme dEuler-Fermat assure que :
np1 = 1 mod p
Dfinition 13.8 (Racine primitive) Un entier n est une racine primitive modulo un
nombre premier p si et seulement si il est dordre p 1, c.--d. :
ni 6= 1 mod p, 0 < i < p 1
et np1 = 1 mod p
Thorme 13.5 Pour tout nombre premier p, il existe au moins une racine primitive
dans GF (p).
Exponentiation Discrte
Considrons GF (p) pour un nombre premier p, et soit a une racine primitive. Par exponen-
tiation discrte en base a dans GF (p) nous entendons la fonction expa : GF (p) GF (p)
telle que expa (n) = an .
Comme a est une racine primitive, les p 1 valeurs possibles de expa (x) (lorsque n par-
court GF (p)) sont toutes distinctes. Sa fonction inverse expa 1 existe donc. Cette fonction
est appele logarithme discret en base a et est dsigne par Loga .
Exemple 13.13 Dans GF (5), nous avons vu que 2 est une racine primitive.
Log2 (3) = 3 (dans GF (5)) : en effet, comme vu dans lexemple 13.12, 23 = 3 mod 5.
valuation 67
13.4. CRYPTOGRAPHIE CL PUBLIQUE 237
Lesquels des nombres suivants sont des racines primitives dans GF (11): 2, 4, 5, 6, 9, 10 ?
valuation 68
Tout dabord, lexponentielle discrte est toujours aisment calculable, ncessitant au plus
2 log2 n multiplications dans GF (p) utilisant lalgorithme mettre au carr et multiplier .
Par ailleurs, lalgorithme le plus rapide connu ce jour (2003) pour trouver des logarithmes
discrets est en O(exp((log n)1/3 (log log n)2/3 )).
Toutefois, il ny a aucune preuve quil nexiste aucun algorithme pour calculer le logarithme
discret gnral en un temps plus court.
Diffie, Hellman et Pohlig ont mis lhypothse que lexponentielle discrte dans GF (p) (quand
la base est une racine primitive) est une fonction sens unique, condition que p soit un
nombre lev tel que p 1 ait aussi un facteur premier lev.
Aucune preuve de cette hypothse na t faire ce jour (2003). Mais aucun algorithme na
non plus t trouv qui permette la calcul efficace du logarithme discret. En dautres termes,
les preuves historiques en faveur de lhypothse saccumulent, mais aucune preuve thorique
na encore vu le jour.
Dans leur article de 1976, Diffie et Hellman ont suggr une mthode ingnieuse pour crer
une cl secrte commune entre metteur et destinataire dans un rseau sans recourir un canal
scuris pour lchange des cls secrtes ; leur mthode repose sur le fait que lexponentiation
discrte est sens unique. Supposons que f (x) = ax soit vraiment une fonction sens unique
et soit connue de tous les utilisateurs du rseau.
Chaque personne (lutilisateur A) choisit au hasard (et en secret !) une cl prive (ou secrte)
xA et calcule alors sa cl publique yA = axA , qui est publie publiquement.
Lorsquune autre personne (lutilisateur B) dsire communiquer de manire scurise avec A,
chacun va chercher la cl publique de lautre et utilise cette cl la puissance de sa propre cl
prive pour la communication ; c.--d. que lutilisateur A calcule yB xA et lutilisateur B yA xB .
Ce qui est magique est que ces deux nombres sont en fait le mme : yB xA = (axB )xA =
axA xB = (axA )xB = yA xB . Ce nombre kAB = axA xB , que les deux utilisateurs A et B peuvent
238 CHAPITRE 13. CRYPTOGRAPHIE
calculer, est leur secret commun , quils peuvent utiliser en toute tranquillit comme leur
cl secrte pour communiquer en utilisant un systme de cryptage cl secrte conventionnel.
Ce que fournit la mthode de Diffie-Hellman est donc une manire publique de distribuer des
cls secrtes.
Si quelque personne non autorise dsire craquer la cl, il devrait tre capable de prendre des
logarithmes discrets de yA ou de yB (p.ex. xA = Loga yA ) et dobtenir ensuite la cl secrte
par KAB = yB xA . Mais si lexponentiation discrte utilise est rellement sens unique, cette
attaque est calculatoirement irralisable.
A ce jour (2003), personne na produit dattaque sur le systme de distribution des cls pu-
bliques de Diffie-Hellman qui ne soit algorithmiquement quivalente au calcul du logarithme
discret. Toutefois, il na pas non plus t prouv que toute attaque sur ce systme soit algorith-
miquement quivalente au calcul du logarithme discret.
valuation 69
Les fonctions trappe, le deuxime point crucial prsent par Diffie et Hellman pour leur
systme de cryptographie cl publique, est plus subtil et plus difficile que le premier, les
fonctions sens unique.
Dfinition 13.9 Une fonction trappe est en fait une famille de fonctions bijectives
ft , indexe par un paramtre t (la cl de la trappe ), telle que chaque fonction est
sens unique mais telle que, lorsque t est connu, ft 1 est facile calculer.
Lutilit en cryptographie dune fonction trappe est la suivante : chaque utilisateur choisit au
hasard (et en secret) une cl, disons t, et publie ft (mais pas t elle-mme !). Habituellement ft
est prise dans une famille de fonctions de manire ce que seuls quelques paramtres doivent
tre publis. Ces paramtres sont appels cl publique .
Si quelquun veut communiquer un message M aux personnes dont la fonction trappe publie
est ft , il envoie simplement ft (M ), qui est facile calculer comme ft est sens unique. Pour
13.4. CRYPTOGRAPHIE CL PUBLIQUE 239
obtenir le message correct, le destinataire calcule ft 1 quil lui est facile de calculer comme
il connat la cl t. Ce calcul est toutefois difficile pour toute personne qui ne dispose pas de la
cl.
Un exemple de fonction trappe est donn dans la section suivante.
13.4.4 RSA
Les premires fonctions trappe furent labores en 1978 par R. L. Rivest, A. Shamir et L.
Adleman (abrgs RSA). La fonction trappe de RSA est base sur la difficult suppose de
factoriser des entiers.
Dans ce cadre, le message et le cryptogramme sont reprsents par des (normes !) entiers.
Chaque utilisateur choisit deux nombres premiers (levs) p et q (tels que p 1 et q 1 aient
aussi des facteurs premiers levs) de manire ce que pour tout message M possible, M < pq
(sinon partager M en plusieurs parties de faon ce que chaque partie soit infrieure pq et
considrer chaque partie comme M par la suite).
Soit n = pq et m = (p1)(q1). Lutilisateur choisit alors d < m qui est premier relativement
m (c.--d. que d et m nont aucun diviseur commun) et calcule e tel que ed = 1 mod m. Un
algorithme calculant e partir de d et de m est donn dans lappendice la fin de ce chapitre.
La cl publique ( publier) est alors (e, n) et la cl prive ( garder secrte) est (d, p, q, m).
La fonction de cryptage (qui est publique) est
C = Me mod n
D = Cd mod n
La preuve est vraiment simple, de mme que le corollaire suivant qui nous intresse :
Exemple 13.15 (RSA) Supposons vouloir utiliser un systme RSA pour communiquer, et
que nous choisissions p = 47 et q = 59 (Ceci nest pas vraiment un systme sr, mais
uniquement fait dans le but dillustrer ! En pratique, p et q devraient contenir plus de 150
chiffres.)
Nous calculons alors n = pq = 2773 et m = (p 1)(q 1) = 2668 et choisissons un d qui
soit premier avec m ; p.ex. d = 157.
Finalement, nous calculons e tel que 157 e = 1 mod 2668 en utilisant lalgorithme dEu-
clide tendu pour le plus grand diviseur commun : e = 17.
e et n sont publis : (17, 2773), mais les autres nombres sont gards secrets.
Supposons maintenant que quelquun veuille nous envoyer le message ITS ALL GREEK
TO ME. Par une convention prtablie (et qui est publique : hypothse de Kerckhoff), cette
personne le transforme en nombres :
09 20 19 00 01 12 12 00 07 18 05 05 11 00 ...
Comme M doit tre infrieur n, c.--d. M < 2773, elle le dcoupe la chane ci-dessus en
entiers dau plus 4 chiffres (effectivement, le code maximum sera alors 2626, ce qui corres-
pond ZZ) :
920, 1900, 112, 1200, 718, 505, 1100, ...
Elle calcule alors 92017 mod 2773, 190017 mod 2773, 11217 mod 2773, ... et nous en-
voie les entiers correspondants ; c.--d.
948, 2342, 1084, 1444, 2663, 2390, 778, ...
Ce message est dchiffr en utilisant notre cl prive :
et le dcodage finit en appliquant la convention dans lautre sens : 920, 1900, ... =
09, 20, 19, 00, ... = ITS ...
On peut maintenant se demander comment notre correspondant a calcul 190017 mod 2773,
ou comment nous avons calcul 2342157 mod 2773...
Ceci a t effectu par la mthode de mettre au carr et multiplier et en gardant lesprit
que
a b = mod n
pour tout a = mod n et b = mod n
Par exemple
comme
23422 = 4312 = 2743 mod 2773
23424 = 27432 = 302 = 900 mod 2773
23428 = 9002 = 284 mod 2773
234216 = 2842 = 239 mod 2773
13.4. CRYPTOGRAPHIE CL PUBLIQUE 241
et
2342128 = 1428 mod 2773
valuation 70
Considrez un systme RSA trs simple o deux personnes ont les paramtres suivants :
p q d e
A 3 19 5 29
B 5 11 7 23
Scurit du RSA
R SUM DU CHAPITRE 13
racine primitive : un nombre n infrieur un nombre premier p est dit racine primitive dans
GF (p) si et seulement si la seule puissance 1 < i < p telle que ni = 1 est p 1.
logarithme discret : un entier n est le logarithme discret en base a dun autre entier m de
GF (p) si an = m mod p (o p est un nombre premier et a une racine primitive dans
mGF ).
systme de distribution de cls publiques de Diffie-Hellman : tant donns un nombre
premier p et une racine primitive a dans GF (p), chaque utilisateur choisit une cl
8
voir http://www.rsasecurity.com/rsalabs/challenges/factoring/rsa155.html
pour plus de dtails.
242 CHAPITRE 13. CRYPTOGRAPHIE
kAB = yB xA = yA xB
fonctions trappe : une famille de fonctions sens unique dpendant dun paramtre, telles
que lorsque ce paramtre est connu, la fonction inverse nest plus difficile calculer.
RSA : Chaque utilisateur choisit deux nombres premiers p et q et un nombre d < (p1)(q
1) qui na pas de diviseur commun avec (p1)(q 1). La cl publique est alors (e, pq)
o e est tel que ed = 1 mod (p 1)(q 1), et la cl prive est (d, p, q).
Un message M (qui est un entier infrieur pq) est crypt en utilisant les cls publiques
par C = M e mod pq. Le dcryptage est effectu en utilisant les cls prives : D =
C d mod pq.
13.5 Authentification
O BJECTIFS PDAGOGIQUES DE LA SECTION 13.5
Aprs avoir tudi cette section, vous devriez savoir :
1. pourquoi lauthentification et la scurit sont thoriquement incompatibles ;
2. comment assurer lauthentification en pratique ;
3. en quoi consistent les structures didentification de Diffie-Hellman et de RSA.
Dans cette dernire section, nous voulons maintenant nous tourner vers le second aspect de
la cryptographie : lauthentification, c.--d. les moyens de sassurer que le message a bien
t envoy par une personne autorise. En dautres termes, nous nous demandons ici si le
cryptogramme C reu est valide (lgal) ou sil a t falsifi par une personne non autorise.
Cette limite est serre et peut tre atteinte dans des cas spciaux.
13.5. AUTHENTIFICATION 243
c.--d.
P (C)P (K)
log(PI ) = log E
P (C, K)
Ainsi
PI 2I(C;K)
avec ingalit si et seulement si PP(C)P (K)
(C,K) est constant pour tout (C, K) (tels que P (C, K) >
0), p.ex. si C et K sont indpendants.
Ainsi, pour garantir lauthenticit, c.--d. pour avoir une probabilit dinfraction faible, linfor-
mation mutuelle entre les cryptogrammes et les cls doit tre grande ! Toutefois, pour assurer
une confidentialit parfaite, nous avons vu dans les sections prcdentes que I(C; M ) = 0 est
ncessaire !
Donc, du point de vue strict du contenu de linformation, lauthentification et la confidentialit
semblent tre, dune faon ou dune autre, incompatibles. En effet,
donc I(C; M ) = 0 (et avec lhypothse sense que H(K|M, C) = 0) implique que I(C; K) =
244 CHAPITRE 13. CRYPTOGRAPHIE
Notez quil sagit l dune signature norme comme ki et i ne sont pas des bits mais des cls,
c.--d. des squences de k bits, o k est la taille de cl requise par lalgorithme dencryption.
Lorsque le destinataire reoit le message et sa signature, il peut vrifier que le message a bien
t envoy par la bonne personne en faisant :
si mi = 0, e(si , i ) = i
si mi = 1, e(ti , i ) = i
Un tel procd didentification prsente toutefois plusieurs inconvnients :
beaucoup de matriel doit tre communiqu davance ;
un message de n bits ncessite une signature de k n bits !
les cls secrtes ne le sont plus trs longtemps !
Diffie et Hellman ont aussi montr en 1976 que, tant que le domaine et la porte de la fonction
trappe ft concident pour tout t, ft peut aussi tre utilise pour assurer lauthenticit de
messages avec signature numrique. tant donn que des messages lgitimes ont une structure
interne suffisante pour pouvoir tre correctement distingus de squences alatoires (ce qui est
nouveau loppos de ce qui est ncessaire pour assurer la scurit !), si lutilisateur A dsire
signer un message M de manire assurer quil en est lmetteur, il applique M lalgorithme
de dcryptage avec sa cl prive pour calculer le message sign M = d(M, kA ). Tout autre
utilisateur, soit B, qui obtient M peut utiliser lalgorithme de cryptage avec la cl publique de
A kA pour calculer e(M , kA ) = M . Toutefois, seul lutilisateur A sait comment transformer
13.5. AUTHENTIFICATION 245
valuation 71
Considrons nouveau le systme RSA trs simple o deux personnes ont les paramtres
suivants :
p q d e
A 3 19 5 29
B 5 11 7 23
Scurit de la signature
Pour ce faire, choisissons pour tout secret un polynme dordre k1 dont le plus bas coefficient
est S :
P (X) = S + a1 X + a2 X 2 + ... + ak1 X k1
Les autres coefficients ai sont choisis au hasard, et diffrent dun secret lautre.
Lutilisateur autoris i a reu la partie du secret sous la forme de la valeur du polynme pour
la valeur i :
pi = p(i),
Ceci remplit les conditions ci-dessus : k utilisateurs peuvent recomposer le polynme par in-
terpolation, mais pas k 1 utilisateurs (ou moins).
Exemple 13.17 Le secret S = 0105, partag par n = 5 personnes parmi lesquelles toute
paire peut accder au secret (k = 2)
Ainsi
p1 = 155, p2 = 205, p3 = 255, p4 = 305, p5 = 355
p(2) = S + a1 2 = 205
p(5) = S + a1 5 = 355
13.5. AUTHENTIFICATION 247
Le partage de secret peut tre utile la cration de structures daccs au secret : il y a moins
de n utilisateurs, et certains dentre eux reoivent plus de morceaux que dautres.
Par exemple, imaginons que louverture dun coffre ncessite 1 directeur, ou 2 fonds de pou-
voir, ou 1 fond de pouvoir et 2 caissiers, ou 5 caissiers.
Par exemple, avec k = 10
le directeur de la banque reoit 10 parts,
chaque fond de pouvoir reoit 6 parts,
et chaque caissier 2 parts seulement.
Ainsi
le directeur seul a les 10 parts requises pour ouvrir le coffre,
2 fonds de pouvoir ont 12 parts,
1 reprsentant et 2 caissiers 10 parts,
et 5 caissiers : 10 parts.
Le seul problme dune telle solution est que, pour des situations complexes, le nombre de
parts peut tre lev.
Lauthentification (qui assure que le message a bien t envoy par une personne autorise)
et la confidentialit (qui assure que le message est reu par des personnes autorises)
sont dune certaine faon thoriquement incompatibles, comme la premire ncessite
I(C; K) la plus grande possible et la dernire I(C; M ) aussi petite que possible.
PI 2I(C;K)
systme dauthentification de Diffie-Lamport : peut tre utilis pour signer des messages
binaires. Choisir 2n cls et 2n squences, publier le cryptage de la seconde par la
premire et signer en envoyant lune ou lautre cl, dpendamment des bits du message.
systme dauthentification RSA : La signature est le message lev la puissance de la cl
prive. Lenvoyer crypte avec la cl publique du destinataire.
secrets partags : Laccs un secret commun est diffus parmi plusieurs porteurs de cl
par lutilisation dun polynme.
R SUM DU CHAPITRE 13
La cryptographie vise transmettre des messages de manire scurise (seules les per-
sonnes autorises peuvent le lire) ou authentifier des messages (aucune personne
non-autorise naurait pu lenvoyer).
Pour ce faire, les messages en clair M sont cods en utilisant une cl K et une fonction
dterministe : C = e(M, K).
Les messages crypts peuvent tre dcods de manire dterministe en utilisant la fonction
de dcodage d et la mme cl K, de faon ce que d(e(M, K), K) = M .
248 CHAPITRE 13. CRYPTOGRAPHIE
H(K)
u
R(M ) log ||
kAB = yB xA = yA xB
fonctions trappe : une famille de fonctions sens unique dpendant dun paramtre, telles
que lorsque ce paramtre est connu, la fonction inverse nest plus difficile calculer.
RSA : Chaque utilisateur choisit deux nombres premiers p et q et un nombre d < (p1)(q
1) qui na pas de diviseur commun avec (p1)(q 1). La cl publique est alors (e, pq)
o e est tel que ed = 1 mod (p 1)(q 1), et la cl prive est (d, p, q).
Un message M (qui est un entier infrieur pq) est crypt en utilisant les cls publiques
par C = M e mod pq. Le dcryptage est effectu en utilisant les cls prives : D =
C d mod pq.
Lauthentification (qui assure que le message a bien t envoy par une personne autorise)
et la confidentialit (qui assure que le message est reu par des personnes autorises)
sont dune certaine faon thoriquement incompatibles, comme la premire ncessite
I(C; K) la plus grande possible et le dernier I(C; M ) aussi petite que possible.
PI 2I(C;K)
systme dauthentification de Diffie-Lamport : peut tre utilis pour signer des messages
binaires. Choisir 2n cls et 2n squences, publier le cryptage de la seconde par la
premire et signer en envoyant lune ou lautre cl, dpendamment des bits du message.
systme dauthentification RSA : La signature est le message lev la puissance de la cl
13.5. AUTHENTIFICATION 249
Histoire et bibliographie
Les messages secrets ont t depuis longtemps un sujet dtude passionnant. Cette passion
remonte au moins lgypte antique (1900 avant J.-C.), ou la Chine antique. En Europe,
bien que les Grecs et les Romains (p.ex. le code de Csar ) aient dj utilis des messages
chiffrs, la cryptographie et la cryptanalyse nont rellement dmarr que dans la seconde
moiti du treizime sicle et se sont dveloppes plus srieusement partir du quinzime
sicle.
Autour de 1560, le diplomate franais Blaise de Vigenre (1523-1596) dveloppa son systme
de cryptage partir du travail de plusieurs de ses prdcesseurs : Alberti (1404-1472), Trithme
(1462-1516) et Porta (1535-1615). Le code de Vigenre est rest inviolable pendant 300 ans.
Lhypothse selon laquelle la scurit dun code devrait reposer uniquement sur la confidentia-
lit de sa cl a t avance pour la premire fois en 1883 par Auguste Kerckhoffs (1835-1903) ;
lhistoire de la cryptographie a dmontr sa sagesse. Un ennemi dtermin est gnralement
capable dobtenir les plans complts des mcanismes de chiffrement et de dchiffrement
soit par des dductions intelligentes, soit en les drobant, ou par toute autre mesure entre ces
deux extrmes.
Le premier traitement rellement scientifique de la confidentialit na t fourni par C. Shannon
quen 1949 [10]. La thorie de la confidentialit de Shannon est en fait une application directe
de la thorie de linformation, quil avait formule un an plus tt. Lingniosit de sa publica-
tion de 1949 ne repose pas sur les mthodes utilises, mais plutt sur la nouvelle manire de
voir et la formulation intelligente de Shannon du problme de la confidentialit.
Bien que Shannon ait donn sa thorie de la condentialit en 1949, ce nest quen 1984 que
Simmons donna une thorie analogue de lauthenticit, illustrant la difficult et la subtilit plus
importantes de celle-ci.
Les fondations de la pense cryptographique tremblrent une fois de plus en 1976 lorsque deux
chercheurs de lUniversit de Stanford, Whitfield Diffie et Martin E. Hellman, publirent leur
article intitul New Directions in Cryptography . Diffie et Hellman suggraient quil est pos-
sible davoir des systmes de cryptage algorithmique ne requrant pas de canal scuris pour
lchange des cls secrtes. Ralph Merkle, alors tudiant diplm de lUniversit de Berkeley,
formula de manire indpendante les ides de base de cette cryptographie cl publique et
soumit un article ce sujet presque au mme moment que Diffie et Hellman, mais son article
fut publi presque deux ans aprs le leur, et il perdit ainsi malheureusement le crdit d sa
dcouverte.
La contribution fondamentale de larticle de Diffie-Hellman consistait en les deux dfinitions
cruciales de fonction sens unique (quils empruntrent au travail de R. M. Needham sur les
mots de passe des ordinateurs) et de fonction trappe (qui tait compltement nouvelle), de
mme que des suggestions sur la faon dutiliser de telles fonctions pour liminer le besoin
dchanger des cls secrtes dans des systmes de cryptage algorithmiquement confidentiels.
Bien que Diffie et Hellman aient astucieusement dfini les fonctions trappe dans leur article
de 1976 et aient clairement montr le potentiel cryptographique de telles fonctions, la premire
proposition dune telle fonction ne fut faite que deux ans plus tard, en 1978, par les chercheurs
du M.I.T. R. L. Rivest, A. Shamir et L. Adleman (do RSA !).
250 CHAPITRE 13. CRYPTOGRAPHIE
Pendant ce temps, les bases du DES (1977) virent le jour partir du systme de cryptage dIBM
Lucifer (publies pour la premire fois par Feistel en 1973 !). Toutefois, tandis que le systme
de Lucifer utilisait une cl de 128 bits, le US National Bureau of Standard (connu maintenant
sous le nom de National Institute of Standards and Technology), qui publia le DES ne retint
que 56 bits pour la cl. Depuis la premire proposition du DES, celui-ci a toujours t critiqu
cause de la petite taille de sa cl.
En 1998, lEFF (Electronic Frontier Foundation) a construit une machine, Deep Crack, pour
montrer au monde que le DES nest pas (ou du moins nest plus) un algorithme sr. Deep
Crack, qui cota $250000 et tait compos de 1536 puces spcialises, tait capable de rcu-
prer une cl de 56 bits, en utilisant une recherche exhaustive, en 4 jours en moyenne, vrifiant
92 milliards de cls la seconde.9
Plus tard (le 18 janvier 1999), avec laide de distributed.net, une organisation spcialise dans
la collecte et le contrle du temps dinactivit dordinateurs, ils cassrent une cl DES en 22
heures et 15 minutes ! Plus de 100000 ordinateurs (du plus lent PC aux puissantes machines
multiprocesseurs) ont reu et effectu une petite part du travail ; ceci permit le traitement de
250 milliards de cls la seconde. 10
En novembre 2002, lAES (Advanced Encryption Standard), successeur du DES, fut publi.
LAES utilise un autre type dalgorithme (lalgorithme de Rijndael, invent par Joan Daemen
et Vincent Rijmen) et supporte des tailles de cl de 128 bits, 192 bits, et 256 bits, ce qui semble
suffisant de nos jours (2003).
9
Cette partie a t emprunte http://lasecwww.epfl.ch/memo_des.shtml
10
pour plus de dtails, voir http://www.rsasecurity.com/rsalabs/challenges/des3/index.html
13.5. AUTHENTIFICATION 251
u v r t
60
(0, 60) (1, 7) =8 (8, 4)
7
7
(1, 7) (8, 4) =1 (9, 3)
4
4
(8, 4) (9, 3) =1 (17, 1)
3
(9, 3) (17, 1) (stop)
Exercices du module I3
Exercice 14.1.1:
a Coder laide de la permutation suivante (lespace est note _)
_ A B C D E F G H I J K L M N O P Q R
S D F B P M _ R H I A J L X N Z O W Q
S T U V W X Y Z
T E V G C Y U K
la phrase VOICI_UN_EXERCICE_PASSIONNANT
b Coder la mme phrase avec le systme de codage par transposition 6 lments suivants :
( 2 5 3 6 1 4 ).
c Mme question avec un code de Vigenre de cl CLEFS (avec la convention _ = 0 et
A = +1).
d Coder cette mme phrase en utilisant successivement les trois codes prcdents (dans
lordre des questions, c.--d. appliquer la transposition au rsultat de la permutation et
appliquer le cryptage de Vigenre au rsultat ainsi obtenu).
Exercice 14.1.2:
253
254 CHAPITRE 14. EXERCICES DU MODULE I3
Exercice 14.1.3:
Intrt : Ceci prouve que I(X; Y |Z) > I(X; Y ) est possible.
Exercice 14.1.4:
WHAT_MAKESEYOAU_ADOR_DOAUNWIAIOSUOSROAUNEUAD_OIAS_
UAKOESAT_MAEFOAEAJ_ _DANERLOF
14.2. CONFIDENTIALIT PARFAITE 255
Exercice 14.2.1:
Si lon suppose que lentropie de langlais est comprise entre 1 et 2 bit par lettre, quelles bornes
trouve-t-on pour la distance dunicit.
a dun systme de cryptage par transposition de blocs de taille d ?
b dun systme de cryptage de Vigenre de taille d ?
c Si lon suppose que lentropie de langlais est de 1.5 bit par caractre, quelle taille (d)
doit on prendre pour chacun de ces cryptages afin de sassurer une scurit raisonnable
sur des textes de 100 caractres (c.--d. pour avoir une distance dunicit suprieure
100 ?).
On supposera que les messages nutilisent que les 27 lettres majuscules (espace comprise) et
on fera lapproximation de processus stochastique sans mmoire pour les messages.
Exercice 14.3.1:
Note : on travaille ici en binaire, donc le + est un ou-exclusif et, entre autres, +1 = 1,
x2 = x, 2 x = x + x = x x = 0.
Exercice 14.3.2:
Exercice 14.4.1:
Exercice 14.4.2:
Un assistant envoie votre note au professeur concern par mail encrypt en RSA. La cl pu-
blique du professeur est (7, 55) et le message envoy (i.e. encrypt) est 25.
Quelle est votre note ?
Exercice 14.4.3:
14.5 Authentification
Exercice 14.5.1:
a1 = 33 a2 = 83 b1 = 27 b2 = 51
X1 = 1967 X2 = 1998 Y1 = 67 Y2 = 98
Exercice 14.5.2:
Pour assurer lauthenticit des messages contenant les notes, le professeur demande lassis-
tant de signer ses messages (toujours en utilisant le systme RSA). Sachant que la cl publique
de lassistant est prsent (3, 15) et celle du professeur (7, 77),
a Quel message envoie lassistant pour la note 4 ?
b Quelle note correspond au message 41, 41 ?
c Un message sign 27 a-t-il bien t envoy par lassistant ?
258 CHAPITRE 14. EXERCICES DU MODULE I3
Bibliographie
[2] R. Blahut. Theory and Practice of Error Control Codes. Addison-Wesley, 1983.
[3] P. Elias. Coding for noisy channels. In IRE Conv. Rec., volume 4, pages 3747, 1955.
[4] A. Feinstein. A new basic theorem of information theory. IRE Trans. Information Theory,
IT-4:222, 1954.
[5] R. G. Gallager. A simple derivation of the coding theorem and some applications. IEEE
Trans. Information Theory, IT-11:318, 1965.
[7] S. Lin and D. J. Costello. Error Control Coding: Fundamentals and Applications.
Prentice-Hall, 1983.
[8] David Salomon. Data Compression The complete reference. Springer, 1998.
[10] C. E. Shannon. Communication theory of secrecy systems. Bell Sys. Tech. Journal,
28:656715, 1949.
[12] A. J. Viterbi. Error bounds for convolutional codes and an asymptotically optimum de-
coding algorithm. IEEE Transactions on Information Theory, 13:260269, 1967.
259
260 BIBLIOGRAPHIE
Glossaire
261
262 BIBLIOGRAPHIE
capacit, 147
code
cyclique, 195
linaire, 180
par bloc, 173
dcodage
distance minimale, 176
distance
Hamming, 173
distance minimale
dun code, 177
dcodage (), 176
Hamming
distance, 173
poids, 173
source dinformation, 90
syndrome, 188
263