Théorie de
l’information
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
© Richard G. Terrat
Octobre 2008
© Richard G. Terrat
Octobre 2008
Objectif
Etude de la mesure de l’Information
selon les théories de Claude Shannon et
ses applications dans deux domaines :
Compression de données
Détection et correction d’erreurs
Sommaire
I. Mesure de l’Information p. 3
II. Codes détecteurs & correcteurs d’erreurs p. 47
Master Informatique Théorie de l'Information 1
© Richard G. Terrat
Octobre 2008
Bibliographie
• Codage, cryptologie et applications - Bruno Martin -
Presses polytechniques et universitaires romandes -
Collection technique et scientifique des
télécommunications - 2004 - www.ppur.org
• Théorie des Codes - Dumas, Roch, Tannier, Varrette -
DUNOD - Sciences Sup - 2007 - www.dunod.com
• Théorie de l'Information et du Codage - Olivier Rioul -
Hermes Science - Lavoisier -2007
• The mathematics of coding theory - Paul Garett - Pearson
Prentice Hall - 2004
Master Informatique Théorie de l'Information 2
© Richard G. Terrat
Octobre 2008
I
Mesure de
l’information
Sommaire
1. Information et Entropie p. 5
2. Codage optimal p. 17
3. Capacité d’un canal p. 29
Master Informatique Théorie de l'Information 3
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 4
© Richard G. Terrat
Octobre 2008
I.1
Information et Entropie
Sommaire
1. Objectifs
2. De la pratique à la théorie
3. Théorie probabiliste
4. Autres théories
5. Entropie
6. Codage & Incertitude
Master Informatique Théorie de l'Information 5
© Richard G. Terrat
Octobre 2008
1. Objectifs
• Evaluation et minimisation des coûts de
– Transmission
– Stockage
 Compression
• Contrôle des erreurs de transmission
– Détection
– Correction
• Cryptologie
– Cryptographie
– Cryptanalyse
Applications
• Informatique
– Compression, codage, cryptologie
– Reconnaissance des formes (I.A.)
• Physique
– Modèles quantiques
– Théorie des trous noirs et du « big bang »
• Biologie moléculaire
– A.D.N.
• Sociologie
– Communication
Master Informatique Théorie de l'Information 6
© Richard G. Terrat
Octobre 2008
2. De la pratique ...
• Compression
– Code MORSE
• Contrôle des erreurs de transmission
– Codes de parité
– Codes à répétition
• Cryptologie
– Crypte de CÆSAR
Samuel Morse
(1791 - 1872)
Le télégraphe
(1840)
Jules Cæsar
(-100 -44)
... à la théorie
• Hartley (1928)
– Information : élément d'un ensemble fini E
– E = {e1, e2, ...ek, ...en} |E| = n
– ∀k I (ek) = log2 (n) en bits
– Ex : n = 256 I (ek) = 8 bits
Ralph Hartley
(1888-1970)
Master Informatique Théorie de l'Information 7
© Richard G. Terrat
Octobre 2008
3. Théorie probabiliste
Shannon-Weaver 1948
• Information : élément d'un ensemble E
– Dans le cas où E est fini :
– E = {e1, e2, ...ek, ...en} |E| = n
– ∀k on définit p (ek) telle que :
• 0 ≤ p (ek) ≤ 1
• ∑ p (ek) = 1
– p est une mesure de probabilité
• Pour E infini on utilise la mesure de
– “densité de probabilité”
Claude Shannon
(1916-2001)
Warren Weaver
(1894-1978)
• information certaine => mesure nulle
– p (ek) = 1 => I (ek) = 0
• plus c'est rare ... plus c'est cher
– p (ei) ≤ p (ej) => I (ei) ≥ I (ej)
• si ei indépendant de ej
– p (ei et ej) = p (ei) x p (ej)
– I (ei et ej) = I (ei) + I (ej)
Master Informatique Théorie de l'Information 8
© Richard G. Terrat
Octobre 2008
Définition
I(x) = log2
1
p(x)
•I(x) est la mesure de l’information x (x connu)
l’incertitude de x (x inconnu)
•I(x) est exprimé en bits pour un log en base 2
Exemples
• X = {0, 1, 2, . . . , 255}
– p(0) = p(1) = p(2) = . . . = p(255) = 1/256
⇒I(0) = I(1) = . . . I(255) = log2 256 = 8 bits
• X = {0, 1, 2, . . . , 9}
– p(0) = p(1) = p(2) = . . . p(9) = 1/10
⇒I(0) = I(1) = . . . I(9) = log2 10 = 3,32 bits
Master Informatique Théorie de l'Information 9
© Richard G. Terrat
Octobre 2008
Exemples
• X = {a, b, c, d, e, f, g, h}
– p(a) = p(b) = 1/4
– p(c) = p(d) = 1/8
– p(e) = p(f) = p(g) = p(h) = 1/16
⇒
– I(a) = I(b) = 2 bits
– I(c) = I(d) = 3 bits
– I(e) = I(f) = I(g) = I(h) = 4 bits
4. Autres théories
• Kolomogorov Solomonoff & Chaitin
– Mesure basée sur la complexité algorithmique
– L’information est définie par l’algorithme minimal
capable de la reconstituer
Андрей Николаевич Колмогоров
(1903-1987)
Gregory Chaitin
(1947 )
Ray Solomonoff
(1926)
Master Informatique Théorie de l'Information 10
© Richard G. Terrat
Octobre 2008
5. Entropie
• X = {x1, x2, . . . xk. . . xn} |X| = n
• Moyenne des informations
• H(X) est appelée l’ ENTROPIE de la source X
I(xk) = p(xk)
k=1
n
! log2
1
p(xk)
= H(X)
Source X
xk
Entropie
• Etymologie
– Entropia (grec) : « retour en arrière »
• Thermodynamique
– Mesure de l’irréversibilité des transformations d’énergie :
principe de dégradation
• Informatique
– Mesure de l’information (incertitude) d’une source :
principe de dispersion
• Point commun
– Mesure de « désordre »
Léon Brillouin
(1889-1969)
Master Informatique Théorie de l'Information 11
© Richard G. Terrat
Octobre 2008
Exemple 1
X = {x1, x2, ...xk, ...xn} |E| = n
∃k p (xk) = 1
donc ∀j j≠k p(xj) = 0
H(X) = p(xi)
i=1
n
! log2
1
p(xi)
= p(xk)log2
1
p(xk)
+ p(xi)
i!k
" log2
1
p(xi)
=
! p(xi)
i"k
# log2
p(xi) = ? (Souvenir : xlog(x) x!0
" !"" 0)
H(X) = 0
Exemple 2
• X = {x1, x2, ...xk, ...xn} |E| = n
– ∀k p (xk) = 1 / n
H(X) = p(xi)
i=1
n
! log2
1
p(xi)
=
1
ni=1
n
! log2
n = log2n
Donc pour des informations équiprobables et |X| = n
H(X) = log2n
Master Informatique Théorie de l'Information 12
© Richard G. Terrat
Octobre 2008
Propriétés
• L’entropie mesure
– l’incertitude de la source
– le « désordre » de la source
– l’information de la source
• On montre que pour |X|= n
0 ! H(X) ! log2 n
6. Codage & Incertitude
SOURCE
x y
CODEUR
Master Informatique Théorie de l'Information 13
© Richard G. Terrat
Octobre 2008
Un exemple
X = {a, b, c, d, e, f, g, h}
p(a) = p(b) = 1/4 ⇒ I(a) = I(b) = 2 bits
p(c) = p(d) = 1/8 ⇒ I(c) = I(d) = 3 bits
p(e) = p(f) = p(g) = p(h) = 1/16 ⇒
I(e) = I(f) = I(g) = I(h) = 4 bits
H(X) = 2x2x1/4 + 2x3x1/8 + 4x4x1/16 = 2,75 bits
Codage f : X → {0,1}*
a → 00 b → 01 c → 100 d → 101
e → 1100 f → 1101 g → 1110 h → 1111
Soit e émis y = f(e) = 1100 = y1y2y3y4
On reçoit d’abord y1=1 information partielle
Nouvelle distribution
p(a/y1) = p(b /y1) = 0 p(c /y1) = p(d /y1) = 1/4
p(e/y1) = p(f/y1) = p(g/y1) = p(h/y1) = 1/8
H(X/y1) = 2x1/4x2 + 4x1/4x3 = 2,5 bits
Représente l’incertitude restant sur X sachant y1
On a donc « appris » H(X) - H(X/y1) = 0,25 bits
ce qui représente l’information apportée par y1
Master Informatique Théorie de l'Information 14
© Richard G. Terrat
Octobre 2008
On reçoit ensuite y2=1 ⇒ nouvelle distribution
p(a/y1y2) = p(b/y1y2) = p(c/y1y2) = p(d/y1y2) = 0
p(e/y1y2) = p(f/y1y2) = p(g/y1y2) = p(h/y1y2) = 1/4
H(X/y1y2) = 4x1/4x2 = 2 bits incertitude restant sur X
On a donc « appris » H(X/y1) - H(X/y1y2) = 0,5 bits
On reçoit ensuite y3= 0 ⇒ nouvelle distribution
p(a/y1y2y3) = p(b/y1y2y3) = p(c/y1y2y3) = p(d/y1y2y3) = 0
p(e/y1y2y3) = p(f/y1y2y3) = 1/2 p(g/y1y2y3) = p(h/y1y2y3) = 0
H(X/y1y2y3) = 1 bit incertitude restant sur X
On a donc « appris » H(X/y1y2) - H(X/y1y2y3) = 1 bit
On reçoit ensuite y4=0 ⇒ nouvelle distribution
p(x/y1y2y3y4) = 0 pour x ≠ e p(e/y1y2y3y4) = 1
H(X/y1y2y3y4) = 0 bit incertitude restant sur X
On a donc « appris » H(X/y1y2y3) - H(X/y1y2y3y4) = 1 bit
Conclusion
incertitude information apprise
restant à l’étape cumulée
Avant réception 2,75 bits 0 bit 0 bit
Après réception de y1 2,5 bits 0,25 bits 0,25 bits
Après réception de y2 2 bits 0,5 bits 0,75 bits
Après réception de y3 1 bit 1 bit 1,75 bits
Après réception de y4 0 bit 1 bit 2,75 bits
Master Informatique Théorie de l'Information 15
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 16
© Richard G. Terrat
Octobre 2008
I.2
Codage optimal
Sommaire
1. Codages & Codes
2. Codes préfixes, Codes séparables
3. Codage de Huffman
4. Premier théorème de Shannon
Master Informatique Théorie de l'Information 17
© Richard G. Terrat
Octobre 2008
1. Codages & Codes
SOURCE PUITSDécodeurCodeur CANAL
Codage
• X = {x1, x2, . . . , xk, . . . , xn}
• A = {a, b, c, …} : alphabet du code |A| = D
• A* : monoïde libre engendré par A
• Codage f : X → A* injective
– Exemple
– X = {r, v, b} A = {0, 1}
– f : r → 01
v → 0
b → 10
Master Informatique Théorie de l'Information 18
© Richard G. Terrat
Octobre 2008
Code
• Définition C = f (X) image de X
• Décodage f-1 : C → X (f injective)
• Mot du code m ∈ C
– Longueur d’un mot l(m)
• Propriétés
– longueur fixe ∀m ∈ C l(m) = l
– longueur variable
Propriétés
• Longueur d’un code
– Moyenne des longueurs des mots du code
• Code binaire
– A = {0, 1} D=2
L(C) = p(xk) l( f (xk))
k=1
n
!
Master Informatique Théorie de l'Information 19
© Richard G. Terrat
Octobre 2008
Extension de codage
– X* monoïde libre engendré par X
– λ mot vide
– g : X* → A* extension de f
• g (λ) = λ
• x ∈ X , y ∈ X* g(xy) = f(x) g(y)
– Exemple
• g (rvvb) = 010010
Décodage
 f injective ⇒ g injective est faux !
• Exemple
– g (rvvb) = 010010
– g (vbrv) = 010010
– g (rvrv) = 010010
• Donc g-1 n’existe pas et on ne peut décoder !
Master Informatique Théorie de l'Information 20
© Richard G. Terrat
Octobre 2008
2. Codes préfixes,
Codes séparables
• Préfixe strict s d’un mot m
– s = ps (m) ssi s = pref (m) et s ≠ m
– Un exemple d’un préfixe strict ps (010010) = 010
• C est un code préfixe ssi
– ∀ m ∈ C , ∀ s = ps (m) s ∉ C
– Exemple
– X = {r, v, b} A = {0, 1}
– f : r → 11 v → 0 b → 10
Codes séparables
• ∀ y ∈ X* g(y) s’écrit de façon unique
– g (y) = f(u) f(v)…. u,v … ∈ X
– Exemple
– g (rvvb) = 110010 = f(r) f(v) f(v) f(b)
• Propriété
– g-1 existe donc le mot g(y) est décodable
– y = u v …
Master Informatique Théorie de l'Information 21
© Richard G. Terrat
Octobre 2008
Théorème
• Un code préfixe est séparable
• Preuve algorithmique y ∈ X* m ∈ A*
m = g (y) ; i=0 ; tant que m ≠ λ
{ s = pref (m) tel que s ∈ C -- s unique
t = pref (m) l(t) < l(s) t ∉ C (t=ps(s) ∉ C)
t = pref (m) l(t) > l(s) t ∉ C (t∈ C ⇒ s=ps(t) ∉ C)
-- i++ ; m = ms ; si = s}
g (y) = s1 s2 …
Arbre d’un code préfixe
• Exemple
0 1
0 1
V
R B
 les feuilles sont étiquetées par les
éléments à coder : xk
 les chemins de la racine à une
feuille sont étiquetés par les codes
des xk
Codage V → 0
R → 10
B → 11
Master Informatique Théorie de l'Information 22
© Richard G. Terrat
Octobre 2008
Théorème
• Il existe au moins un code préfixe C tel que
– Donc pour un alphabet binaire (D=2)
H(X)
log2D
! L(C) <
H(X)
log2D
+1
H(X) ! L(C) < H(X) +1
3. Codage de Huffman (1952)
Algorithme
S = X ; tant que |S| ≠ 1
{ choisir a, b ∈ S tels que
∀c ∈ S, a ≠ b ≠ c p (a) ≤ p (b) ≤ p (c) ;
S = S + d avec p (d) = p (a) + p (b) ;
construire l’arbre binaire
S = S  a  b }
David Huffman
(1925-1999)
0 1
a b
d
Master Informatique Théorie de l'Information 23
© Richard G. Terrat
Octobre 2008
Exemple
• X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}équiprobables
0 1 2 3 4 5
6 7 8 9
1/10 1/10
2/10
1/10 1/10
2/10
4/10
1/10 1/10
2/10
1/10 1/10
2/10
1/10 1/10
2/10
4/10
6/10
1
Code
0 → 000 1 → 001
2 → 010 3 → 011
4 → 100 5 → 101
6 → 1100 7 → 1101
8 → 1110 9 → 1111
• L(C) = 6 x 0,1 x 3 + 4 x 0,1 x 4 = 3,4 bits
• H(X) = log210 = 3,32 bits
Master Informatique Théorie de l'Information 24
© Richard G. Terrat
Octobre 2008
Efficacité
– Pour un code binaire
e =
H(X)
L(C)log2D
! 1
e =
H(X)
L(C)
! 1
4. Premier théorème de
Shannon
• Xn Extension d’ordre n de X
– (xa, xb, …) ∈ Xn
– Codage fn : Xn → A* injective
 rien à voir avec l’extension de codage !
 fn est une nouvelle fonction
• Cn = f n(Xn) image de Xn
Master Informatique Théorie de l'Information 25
© Richard G. Terrat
Octobre 2008
Propriétés
• On montre que
H(Xn) ≤ n H(X)
• Et … si les n éléments du n-uple sont indépendants
(non corrélés)
H(Xn) = n H(X)
H(Xn
) ! L(Cn ) < H(Xn
) + 1
n H(X) ! L(Cn ) < n H(X) + 1
H(X) !
L(Cn )
n
< H(X) +
1
n
L(Cn )
n
n!"
# !## H(X)
Pour des n-uples indépendants
Master Informatique Théorie de l'Information 26
© Richard G. Terrat
Octobre 2008
Énoncé du Théorème
• L(Cn) / n
– longueur moyenne du code par élément de X
• « il est toujours possible de trouver un code dont la
longueur moyenne par élément à coder est aussi
proche que l’on veut de l’entropie de la source »
Exemple
• X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}équiprobables
• Codes de longueur fixe
extension longueur l(Cn) par élément l(Cn)/n
1 4 4
2 7 3,5
3 10 3,33
4 14 3,5
. . . . . . . . .
∞ ∞ 3,32 = H(X)
Master Informatique Théorie de l'Information 27
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 28
© Richard G. Terrat
Octobre 2008
I.3
Capacité d’un canal
Sommaire
1. Modèle de transmission
2. Équivoque
3. Transinformation
4. Mesure du bruit
5. Capacité d’un canal
6. Second théorème de Shannon
Master Informatique Théorie de l'Information 29
© Richard G. Terrat
Octobre 2008
1. Modèle de transmission
• X = {x1, x2, … , xk, … , xn} |X| = n
– Alphabet de l’émetteur
• Y = {y1, y2, … , yj, … , ym} |Y| = m
– Alphabet du récepteur
• On mesure p (xk/yj)
SOURCE PUITSCANAL
xk yj
I(x /y) = log2
1
p(x /y)
Point de vue du Récepteur
(Puits)
• x est un symbole inconnu
• y est un symbole connu
• x et y sont corrélés non indépendants
• Mesure en bits l’incertitude sur x connaissant y
Master Informatique Théorie de l'Information 30
© Richard G. Terrat
Octobre 2008
Un exemple
X = {a, b} p(a) = p(b) = 1/2 I(a) = I(b) = 1 bit
Y = {c, d} p(a/c) = p(b/d) = 3/4 p(b/c) = p(a/d) = 1/4
I(a/c) = I(b/d) = log2(4/3) = 2 - log23 bits
I(b/c) = I(a/d) = log2(4) = 2 bits
I(a/c) = 2 - log23 < 1 donc I(a/c) < I(a)
l’incertitude sur a a diminué en connaissant c
la connaissance de c apporte de l’information sur a
I(a/d) = 2 > 1 donc I(a/d) > I(a)
l’incertitude sur a a augmenté en connaissant d
la connaissance de d apporte de la « désinformation » sur a
2. Équivoque
Mesure en bits l’information sur x apportée par y
I(x;y) = I(x) ! I(x /y)
= log2
1
p(x)
! log2
1
p(x /y)
I(x;y) = log2
p(x /y)
p(x)
Master Informatique Théorie de l'Information 31
© Richard G. Terrat
Octobre 2008
Exemple
• I(a;c) = I(a) - I(a/c) =
1 - 2 + log3 = log3 - 1 > 0
c apporte une information positive sur a
• I(a;d) = I(a) - I(a/d)
1 - 2 = -1 < 0
d apporte une information négative sur a
Incertitude sur la source pour yj reçu
• Mesure en bits l’incertitude moyenne sur la source X
connaissant un symbole reçu yj ∈ Y
• On montre que
H(X/yj) ≤ H(X)
• La connaissance d’un symbole reçu diminue toujours
l’incertitude sur la source
H(X /y j ) = p(xk /y j
k=1
n
! )log2
1
p(xk /y j )
Master Informatique Théorie de l'Information 32
© Richard G. Terrat
Octobre 2008
Incertitude sur la source
H(X /Y) = p(y j
j=1
m
! ) H(X /y j ) =
p(y j
j=1
m
! ) p(xk /y j ) log2
k=1
n
!
1
p(xk /y j )
H(X /Y) =
j=1
m
! p(xk " y j ) log2
k=1
n
!
1
p(xk /y j )
Equivoque
• H(X/Y) mesure en bits l’incertitude en moyenne sur la
source connaissant en moyenne les symboles reçus ou
l’entropie de la source connaissant le puits
• On montre que
H(X/Y) ≤ H(X)
• La connaissance moyenne des symboles reçus diminue
toujours l’incertitude sur la source
• Cette mesure s’appelle aussi
EQUIVOCATION ou EQUIVOQUE
Master Informatique Théorie de l'Information 33
© Richard G. Terrat
Octobre 2008
3. Transinformation
• Mesure en bits l’information sur la source X apportée par la connaissance du
puits Y
• On montre que
I (X;Y) = I (Y;X) ≥ 0
• Cette quantité est appelée
TRANSINFORMATION ou
INFORMATION MUTUELLE
I(X;Y) = H(X) ! H(X /Y)
Propriétés
I(X;Y) = H(X) - H(X/Y) =
I(Y;X) = H(Y) - H(Y/X)
– L’information apportée par le puits sur la source est égale à
l’information apportée par la source sur le puits (symétrie source/puits)
0 ≤ I(X;Y) ≤ H(X)
0 ≤ I(X;Y) ≤ H(Y)
– L’information apportée par Y sur X est au plus égale à l’incertitude sur
X ou Y
Master Informatique Théorie de l'Information 34
© Richard G. Terrat
Octobre 2008
Cas extrêmes
• H(X/Y) = 0
– l’incertitude sur X est nulle quand on connaît Y
– I(X;Y) = H(X)
– l’information apportée par Y égale l’incertitude sur X
• H(X/Y) = H(X)
– X et Y sont indépendants
– L’incertitude sur X reste la même quand on connaît Y
– I(X;Y) = 0
– Y n’ « apprend » rien sur X
4. Mesure du bruit
Matrice de bruit
du canal
p(yj/xk)
Probabilité que
xk se « transforme » en yj
SOURCE PUITSCANAL
xk yj
Y yj
X !
xk " p(yj/xk )
#
$
%
%
%
&
'
(
(
(
Master Informatique Théorie de l'Information 35
© Richard G. Terrat
Octobre 2008
Bruit & Incertitude
• On connaît
– la distribution de la source p(xk)
– le bruit du canal p(yj/xk)
distribution de chaque sortie (yj) pour chaque entrée (xk)
propriété
• On en déduit
– la distribution du puits p(yj)
– La distribution de la source p(xk/yj)
connaissant le puits
p(y j
j=1
m
! /xk ) = 1
Calculs
• Théorèmes de Bayes
– Distribution du puits
– Incertitudes sur la source
p(y j ) = p(y j
k=1
n
! /xk ) • p(xk )
p(xk /y j ) = p(y j /xk ) • p(xk ) p(y j )
Master Informatique Théorie de l'Information 36
© Richard G. Terrat
Octobre 2008
Dégradation de l’information
• Les distributions
– source et puits p (xk) et p (yj)
– source connaissant le puits p (xk/yj)
– permettent de mesurer
• l’entropie de la source H (X)
• l’équivoque de la transmission H (X/Y)
Mesure globale et synthétique du bruit
• l’information transmise I (X;Y)
• L’équivoque est une mesure en bits de la dégradation
de l’information transmise avec du bruit
Propriétés d’un canal
• stationnaire ∀j,k p(yj/xk) indépendant du temps
• sans mémoire ∀j,k p(yj/xk) indépendant de la
suite des xk transmis
• symétrique |X|=|Y| et ∀j,k p(yj/xk) = p(yk/xj)
• binaire |X|=|Y|=2
• déterministe ∀k (∃i p(yi/xk) = 1,∀j≠i p(yj/xk) = 0)
 on montre que I(X ; Y) = H(Y)
Master Informatique Théorie de l'Information 37
© Richard G. Terrat
Octobre 2008
Caractéristiques du bruit d’un canal
• sans brouillage |X|=|Y| , déterministe et
∀j (∃i p(yj/xi)=1, ∀k k≠i p(yj/xk)=0)
 on montre que H(X/Y) = 0 et I(X ; Y) = H(X)
 aucune équivoque
• totalement brouillé
H(X/Y) = H(X) I(X;Y) = 0
 aucune information transmise
5. Capacité d’un canal
• Adaptation de la source au bruit du canal
– I(X;Y) représente l’information transmise par le canal
– I(X;Y) dépend de la distribution de la source X
– Il existe donc (au moins) une distribution de X telle que
I(X;Y) soit maximum
– On peut modifier la distribution de X en codant la source
pour l’adapter au bruit du canal
Master Informatique Théorie de l'Information 38
© Richard G. Terrat
Octobre 2008
Définition
• Mesure en bits la quantité maximum d’information
qu’un canal peut transmettre, en faisant varier la
distribution de la source
• C’est une limite infranchissable due au bruit qui
est une caractéristique du canal
C = max
p(xk )
I(X;Y)
Propriétés
• Toute variation de H(X) ⇒ variation de H(X/Y)
⇒variation de I(X;Y) ⇒ ∃ valeur max de I(X;Y)
Master Informatique Théorie de l'Information 39
© Richard G. Terrat
Octobre 2008
6. Second théorème de
Shannon
SOURCE PUITSDécodeurCodeur CANAL
u x y v
bruit
Erreur de transmission
• Erreur : x ≠ y donc u ≠v
• Probabilité p (x≠y)
• Exemple x = x0 x1 … xn-1 xi ∈ {0, 1}
y = y0 y1 …yn-1 yi ∈ {0, 1}
p = p (yi≠ xi) probabilité d’un bit « faux »
-- cas d’un canal binaire symétrique --
p (x ≠ y) = 1 - (1-p)n ≈ np si p « petit »
ex : p = 10-3 n=8 p(x≠y) = 0,007972
Master Informatique Théorie de l'Information 40
© Richard G. Terrat
Octobre 2008
Débit et Capacité
• Débit d’information bits/s
– RT = H(U) / Ts Ts période de la source s
• Capacité de transmission bits/s
– CT = C / Tc Tc période du canal s
SOURCE Codeur CANAL
u x
Codage par blocs
• T période de stockage et de codage d’un mot u ∈ U*
composé d’une suite de symboles ui
– Le « bloc » à coder contient TxRT symboles
– Si U = {0, 1} 2TxRT symboles possibles
– A chaque séquence de symboles u correspond une séquence de N
symboles du code x ∈ X
• On peut choisir
– i T
– ii le code : C ⊆ X
– iii le codage f : U → X
Master Informatique Théorie de l'Information 41
© Richard G. Terrat
Octobre 2008
Théorème de Shannon
• Si
il est possible de choisir ii et iii tels que
Où f(RT) est une fonction décroissante
indépendante de T telle que f(RT) = 0
pour RT = CT
RT ! CT
p (x ! y) " e#T f (RT )
• Si
– il n’est pas possible de borner p (x≠y)
RT > CT
Claude Shannon montrant
la fonction f (RT)
Master Informatique Théorie de l'Information 42
© Richard G. Terrat
Octobre 2008
Conclusion
• Pour diminuer p (x≠y) on peut
 Augmenter f (RT) donc diminuer RT ce qui diminue
RT/CT donc diminue le débit RT
• Banal  on ajoute de la redondance
Augmenter T pour une valeur de RT donnée
• Génial  pas de diminution du débit
• Mais  on allonge la longueur du code
• Et  on complexifie le codage !
• Enfin on ne connaît aucune méthode constructiviste
Énoncé du théorème
« Pour un débit d’information d’une source inférieur
d’une valeur aussi petite que l’on veut à la
capacité de transmission du canal, il est toujours
possible de trouver un code qui rend la
probabilité d’erreur aussi petite que l’on veut »
p (x ! y) " e#T f (RT )
Master Informatique Théorie de l'Information 43
© Richard G. Terrat
Octobre 2008
Interprétation
• CT - RT < ε1 ⇒ f (RT) < ε2
• e-T f(RT) < ε3 ⇒ T . f (RT) > ln (1/ε3) ⇒
• T > ln (1/ε3) / f(RT) > ln (1/ε3) / ε2
•  cette valeur de T peut être considérable !
p (x ! y) " e#T f (RT )
Redondance
• Exemple U = X = {0, 1}
– u = u0 u1 … um le bloc à coder
– x = x1 x2 …… xn le code de u x = g(u)
– X contient de la redondance ⇒ n > m
– Mesure de la redondance r = (n-m) / m
– Le second théorème de Shannon nous apprend qu’on
peut trouver des codes redondants tels que r → 0 (on ne
diminue pas le débit) quand n → ∞ (on augmente la
longueur du code)
Master Informatique Théorie de l'Information 44
© Richard G. Terrat
Octobre 2008
Signaux continus
• Si X et Y sont des ensembles infinis continus, on
peut aussi calculer CT
• Exemple
– W bande passante du signal
– S énergie du signal
– N énergie du bruit gaussien, de moyenne nulle,
additif et blanc (uniforme en fréquence)
CT (bits / s) = W (Hz) log2(1 +
S
N
)
Master Informatique Théorie de l'Information 45
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 46
© Richard G. Terrat
Octobre 2008
II
Codes détecteurs &
correcteurs d’erreurs
Sommaire
1. Représentation vectorielle p. 49
2. Codes linéaires p. 63
3. Codes de Hamming p. 71
4. Codes polynomiaux p. 81
Master Informatique Théorie de l'Information 47
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 48
© Richard G. Terrat
Octobre 2008
II.1
Représentation vectorielle
Sommaire
1. Codes et codages binaires en blocs
2. Codes systématiques
3. Syndrome
4. Distances et erreurs
5. Théorème fondamental
6. Construction de codes
Master Informatique Théorie de l'Information 49
© Richard G. Terrat
Octobre 2008
1. Codes et codages binaires en
blocs
• Notations
• U = {0,1}k X = {0,1}n C = f (U) ⊆ X code
• Mot à coder u = u1 u2 . . . uk u ∈ U
– k dimension du code
• Mot du code x = x1 x2 … xn x ∈ X
– n longueur du code n > k
u xCODEUR
Redondance & efficacité
• Redondance
• Efficacité
de détection
de correction
 D’après Shannon, on peut trouver des codes ayant une
« bonne » efficacité avec une « faible » redondance
Oui, mais comment ?
R =
n ! k
k
Ed =
probabilité d'un message détecté faux
probabilité d'un message faux
Ec =
probabilité d'un message faux corrigé
probabilité d'un message faux
Master Informatique Théorie de l'Information 50
© Richard G. Terrat
Octobre 2008
Taux d’erreur
• Taux brut τ probabilité d’erreur d’un
message avant détection ou correction
– Exemple canal binaire symétrique stationnaire et
sans mémoire
– p probabilité d’erreur sur 1 bit
– n nombre de bits d’un message
• Taux résiduel q probabilité d’erreur d’un
message après détection ou correction
! = 1 " (1" p)n
# np
q = ! (1 " E)
p « petit »
Taxonomie
Codes détecteurs/correcteurs d’erreurs
codes de blocs+ codes convolutifs
(continus, récurrents)
linéaires+ non linéaires+
polynomiaux non polynomiaux+
cycliques+* non cycliques+
+ on peut aussi classer ces codes en : systématiques / non systématiques
* Il existe aussi des codes cycliques non linéaires
Master Informatique Théorie de l'Information 51
© Richard G. Terrat
Octobre 2008
2. Codes systématiques
• Définition
u = u1 u2 …uk
x = x1 x2 … xk xk+1 … xn
∀ i ∈ [1..k] xi = ui partie « utile »
xk+1 … xn partie « redondante »
• Intérêt
 en absence d’erreur la partie utile est égale au mot émis
 seule la partie redondante est à calculer
Codes de parité simple
• un seul bit de redondance xn
– parité paire ⇒
– parité impaire ⇒
 notation + et ∑ addition modulo 2
xn = xi
i=1
k
! !
xn = xi
i=1
k
! +1!
xi
i=1
n
! = 0!
xi
i=1
n
! =1!
Master Informatique Théorie de l'Information 52
© Richard G. Terrat
Octobre 2008
• Propriétés
– Redondance
– Détection d’un nombre impair d’erreurs
– Erreurs en nombre pair non détectables
– Aucune correction d’erreur
– Efficacités p (m erreurs) = pm
(1! p)n!m
Cn
m
Ed =
pm
(1! p)n!m
Cn
m
m=1,3,5,...
n
"
pm
(1! p)n!m
Cn
m
m=1
n
"
Ec = 0
=
pm
(1! p)n!m
Cn
m
m=1,3,5,...
n
"
1 ! (1! p)n
R =
1
k
3. Syndrome
• Trace d’une erreur
Parité paire Parité impaire
S ∈ {0,1}
• Propriétés
– Pas d’erreur ⇒ S = 0
– Réciproque fausse !
 toutes les erreurs ne sont pas détectables
S = xi
i=1
n
! ! S = xi
i=1
n
! +1!
Master Informatique Théorie de l'Information 53
© Richard G. Terrat
Octobre 2008
Codes de parités croisées
• Définition Codes systématiques k = p x q
p + q bits de redondance
pour i ≤ p j ≤ q
xi,q+1 bit de parité des xi,j
xp+1,j bit de parité des xi,j
Les parités peuvent être paires ou impaires
La parité de xp+1,q+1 peut être ambiguë (dépendante de
l’ordre des calculs) donc inutilisée
x =
x11 ! x1q
! ! !
xp1 ! xpq
!
"
#
#
#
$
%
&
&
&
x1,q+1
!
xp,q+1
!
"
#
#
#
$
%
&
&
&
xp+1,1 ! xp+1,q( ) xp+1,q+1( )
•
•x
• syndrome > 0 x erreur
Propriétés
• Redondance
• Pour tout code binaire
– Détection de la position d’une erreur ⇒
correction possible de cette erreur 0  1
• Codes de parités croisées
– 1 erreur
• détectable et corrigeable
R =
p + q
p ! q
=
1
p
+
1
q
!
Master Informatique Théorie de l'Information 54
© Richard G. Terrat
Octobre 2008
2 erreurs
détectables
non corrigeables
ambiguïté de position (+ : autres possibilités)
idem
••
•x+
•+x
•++x
•++x
Danger de « fausse » correction
• 3 erreurs
– 2 syndromes non nuls
– Correction « à tort »
–  « fausse » correction
• Il y a toujours un « risque »
– mais presque toujours
– p (m+1 erreurs) << p (m erreurs)
–  risque « calculé »
•
xx
•x
Master Informatique Théorie de l'Information 55
© Richard G. Terrat
Octobre 2008
Codes à répétition
• u = u1 u2 … uk
• x = x11 … x1k x21 … x2k … xp1 … xpk
• avec xij = uj u répété p fois
• Redondance R = p-1
• Syndrome S = 0 ssi ∀u,v,w xvu = xwu
• Correction possible si p impair
 correction par vote majoritaire
4. Distances et erreurs
• Représentation géométrique
– x1 x2 … xn coordonnées d’un vecteur (ou d’un point)
x dans l’espace {0, 1}n
– Code C (n,k) ensemble de 2k vecteurs (points)
– distance euclidienne D entre 2 points x et y
– distance de Hamming d théorème de Pythagore
 ∑ défini dans NN
D2 ∈ NN est un entier
• Exemple x = 1 0 1 0 y = 1 1 0 0 d (x, y) = 2
d(x,y) = D2
(x,y) = (yi ! xi )2
i=1
n
" !
Master Informatique Théorie de l'Information 56
© Richard G. Terrat
Octobre 2008
Propriétés
• Poids d’un vecteur x
 ∑ défini dans NN
poids (x) ∈ NN est un entier
• Théorème
• x + y est un vecteur + somme de vecteurs
Preuve
Exemple x = 1 0 1 0 y = 1 1 0 0 x + y = 0 1 1 0
d (x, y) = poids (x + y) = 2
poids (x) = xi
i=1
n
! !
d (x,y) = poids (x + y)!
d (x,y) = (yi ! xi)2
=
i=1
n
" (yi ! xi ) = (yi + xi ) = poids (x + y)
i=1
n
"
i=1
n
"
Détection des erreurs
x vecteur émis
y vecteur reçu
erreur e = x + y y = x + e x = y + e
d (x, y) = poids (e) = nombre de bits « faux »
 chaque bit = 1 dans e représente une erreur
x yCANAL
x
y
e
Master Informatique Théorie de l'Information 57
© Richard G. Terrat
Octobre 2008
l’extrémité du vecteur d’une erreur
de poids e sur le symbole x émis est
située sur la surface de l’hypersphère
de rayon e et de centre x
l’extrémité du vecteur d’une erreur
de poids p < e sur le symbole x émis
est située à l’intérieur de l’hypersphère
de rayon e et de centre x
e
x
ex
p
une erreur de poids ≤ e sur xi
est détectable s’il n’existe
aucun mot du code xj situé à
l’intérieur de l’hypersphère
de rayon e et de centre xi
une erreur de poids ≤ e sur xi
est corrigeable si xi est le
seul mot du code situé à une
distance d ≤ e
Le mot émis du code le plus
probable est alors xi
e
xi
xj
1
e
xi
xj
>e
Master Informatique Théorie de l'Information 58
© Richard G. Terrat
Octobre 2008
5. Théorème fondamental
• Distance d’un code
d (C) = min d (xi, xj) ∀ xi, xj ∈ C xi ≠ xj
• Théorème Tout code C de distance d
– Détecte p = d - 1 erreurs
 peut détecter au moins toutes les erreurs de poids ≤ p
– Corrige q = int ((d - 1) / 2 ) erreurs
 peut corriger au moins toutes les erreurs de poids ≤ q
Illustration
d = 5
4 erreurs détectables
2 erreurs corrigeables
d = 4
3 erreurs détectables
1 erreur corrigeable
xi xj
d=5
2 2
1
xi xj
d=4
2 2
Master Informatique Théorie de l'Information 59
© Richard G. Terrat
Octobre 2008
6. Construction de codes
• Problème
– Trouver un code de dimension k et de longueur
n corrigeant toutes les erreurs de poids au plus
égal à r revient à placer 2k points (les mots du
code) dans un espace de 2n points, chaque point
étant le centre d’une hypersphère de rayon r,
ces sphères devant être disjointes.
 k, n et r sont donc dépendants
Propriétés
r
Dans l’espace de dimension n :
nombre de points dans l’hypersphère de
rayon r à distance du centre d
d = 0 le centre
d = 1
d = 2
. . .
d = r
Soit au total
Cn
1
= n
Cn
2
Cn
r
i= 0
r
! Cn
i
Cn
0
= 1
Pour corriger r erreurs, le code doit être constitué de
2k mots, centres d’hypersphères disjointes de rayon r
Master Informatique Théorie de l'Information 60
© Richard G. Terrat
Octobre 2008
Relation de Hamming
Nombre d’hypersphères
Nombre de points dans chaque hypersphère
Nombre de points dans l’espace
Sphères disjointes
Codes parfaits
– Les points de l’espace sont tous dans une hypersphère
– Il n’y a aucun point « isolé »
 les corrections sont optimales
2k
• Cn
i
i=0
r
! " 2n
!
i=0
r
! Cn
i
!
2k
• Cn
i
i=0
r
! = 2n
!
2k
!
2n
!
Richard Hamming
(1915 - 1998)
Master Informatique Théorie de l'Information 61
© Richard G. Terrat
Octobre 2008
Master Informatique Théorie de l'Information 62
© Richard G. Terrat
Octobre 2008
II.2
Codes linéaires
Sommaire
1. Généralisation des codes de parité
2. Codes & codages linéaires
3. Équivalences de codages & de codes
4. Systématisation
Master Informatique Théorie de l'Information 63
© Richard G. Terrat
Octobre 2008
1. Généralisation des codes de
parité (paire)
• Exemple
k = 4 u = 1101
n = 7 on ajoute 3 bits de parité paire
un bit sur u1u2u4, un bit sur u1u3u4, un bit sur u2,u3,u4
x = 1101 100
soit l’erreur e = 0100 000 poids (e) = 1
mot reçu y = 1001 100 y = x+e d(x,y) = 1
Les bits de parité sur u1u2u4 et u2,u3,u4 sont faux
Le bit de parité sur u1u3u4 est juste
S’il n’y a qu’une erreur elle ne peut être qu’en u2
Propriétés du contrôle de parité paire
xj pour k < j ≤ n est un bit de parité paire pour
certains bits xi pour 1 ≤ i ≤ k ⇔
xj est une combinaison
linéaire des xi
Les bits xi contrôlés par xj sont tels que λi = 1
Relation
xj = !i xi
i=1
k
" , !i #{0,1}!
xj + !i xi
i=1
k
" = 0!
Master Informatique Théorie de l'Information 64
© Richard G. Terrat
Octobre 2008
2. Codes et codages linéaires
• C ⊂ X = {0,1}n linéaire ⇔
∀ x1, x2 ∈ C x1 + x2 ∈ C
– on en déduit 0 ∈ C
– C est un groupe
• f : U → X linéaire ⇔
∀ u1, u2 ∈ U f (u1+ u2) = f (u1) + f (u2)
– on en déduit f (0) = 0
– U est un groupe ⇒ f est un homomorphisme de groupe
• Un codage linéaire engendre un code linéaire
Marie-Ennemond-Camille
Jordan
(1838 - 1922)
Espaces vectoriels
F2 = <{0,1}; +, x ; 0, 1 > corps
F2
n = < {0,1}n ; + ; 0 > groupe
E = < F2, F2
n ; x ; 0 > espace vectoriel sur F2
forme linéaire sur E
{x1, …, xn} base de X
{x1, …, xn} linéairement
indépendants
!i
i=1
m
" xi , !i #F2, xi #X!
Evariste Galois
(1811 - 1832)
!x "X, #$1,...,$n "F2, x = $i xi
i=1
n
% !
!i xi
i=1
n
" = 0 # $i !i = 0!
Niels Abel
(1802 - 1829)
Master Informatique Théorie de l'Information 65
© Richard G. Terrat
Octobre 2008
Vecteurs binaires :
propriétés surprenantes
• Un vecteur binaire n’est pas orienté
– Preuve x = -x x + x = 0
• Un vecteur binaire peut être orthogonal à lui-même
x ⊥ x ⇔ x . x = 0
– Exemple 1010 . 1010 = 0
– Théorème x ⊥ x ⇔ poids (x) pair
– Preuve
x • x = xi . xi = xi
i=1
n
!
i=1
n
! = poids (xi ) mod 2
Matrice de codage
• Le codage linéaire f : U → X peut être représenté
par une matrice dite génératrice
1 j n
1
i
k
gijui • = xj
1 k 1 n
U • G = X
!j " [1: n] x j = ui . gij
i=1
k
#
Master Informatique Théorie de l'Information 66
© Richard G. Terrat
Octobre 2008
Matrice génératrice
• Les lignes de G sont des mots du code C images
des vecteurs u de poids 1 base canonique de U
• L’application G doit être injective donc
– Les lignes de G doivent être linéairement indépendantes
alors
– L’espace vectoriel d’arrivée est un sous-espace vectoriel de
dimension k
– Les lignes de G constituent une base de C
Codage systématique
• G est diagonale-gauche unitaire-gauche
– ∀i ∈ [1:k] xk = uk
1 k n
1
k
I AG =
A (k,n-k) est appelée la matrice de contrôle
Master Informatique Théorie de l'Information 67
© Richard G. Terrat
Octobre 2008
Exemples
k = 3 n = 4
G =
1 0 0 1
0 1 0 1
0 0 1 1
!
"
#
#
#
$
%
&
&
&
x1 = u1 x2 = u2 x3 = u3 x4 = u1 + u2 + u3
Code de
parité paire
k =1 n = 4
G = 1 1 1 1( )
x1 = x2 = x3 = x4 = u1
Code à
répétition
3. Équivalences de Codes & de
Codages
(f1 : U → X) ≡ (f2 : U → X ) ⇔ f1 (U) = f2 (U) = C
si f1 et f2 linéaires de matrices génératrices G1 et G2
alors G1 et G2 se déduisent l’une de l’autre par un
changement de base
GG22 = Q= Q •• GG11 GG11 = Q= Q-1-1
•• GG22
 Q(k,k) matrice régulière (inversible) de rang k
 toute ligne de G1 est une combinaison linéaire des
lignes de G2 et réciproquement
Master Informatique Théorie de l'Information 68
© Richard G. Terrat
Octobre 2008
Codes équivalents
• C ≡ C ' ⇔ ∀ x = (x1, x2, …,xn) ∈ C
∀ x' = (x'1, x'2, …,x'n) ∈ C’
(x'1, x'2, …,x'n) = ∏ (x1, x2, …,xn)
∏ est un opérateur de permutation unique ∀ x, x'
Pour un même domaine U, les matrices génératrices
G et G’ des codes C et C ’ se déduisent l’une de
l’autre par permutation de colonnes
GG’’ = G= G •• PP G = GG = G’•’• PP-1-1
 P(n,n) matrice de permutation
 Propriété Invariance des distances
Codages équivalents
• (f1 : U → C) ≡ (f 2 : U → C ') ⇔
G1 et G2 , matrices génératrices de f1 et f2,
∃ une matrice Q (k,k) régulière
∃ une matrice de permutation P (n,n)
GG22 = Q= Q •• GG11 •• PP GG11 = Q= Q-1-1
•• GG22 •• PP-1-1
 Propriété Invariance des distances
Master Informatique Théorie de l'Information 69
© Richard G. Terrat
Octobre 2008
4. Systématisation
• À tout code linéaire C correspond au moins un
code linéaire systématique équivalent
Preuve algorithmique G génératrice de C
pour i = 1 à k
{ si gii=0 -- ∃ m > i, gim = 1 -- alors G.i  G.m
-- permutation des colonnes i et m -- ;
pour tout j≠i { si gji = 1 Gj = Gj. + Gi.
-- ligne j = somme des lignes j et i -- } }
Exemple
1 1 1 0 0 0 0
0 1 0 1 0 1 0
1 0 0 1 1 0 0
1 1 0 1 0 0 1
!
"
#
#
#
#
$
%
&
&
&
&
1 1 1 0 0 0 0
0 1 0 1 0 1 0
0 1 1 1 1 0 0
0 0 1 1 0 0 1
!
"
#
#
#
#
$
%
&
&
&
&
1 0 1 1 0 1 0
0 1 0 1 0 1 0
0 0 1 0 1 1 0
0 0 1 1 0 0 1
!
"
#
#
#
#
$
%
&
&
&
&
1 0 0 1 1 0 0
0 1 0 1 0 1 0
0 0 1 0 1 1 0
0 0 0 1 1 1 1
!
"
#
#
#
#
$
%
&
&
&
&
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
!
"
#
#
#
#
$
%
&
&
&
&
→ →
→ →
G =
→
!
"
#
#
#
#
I
0 1 1
1 0 1
1 1 0
1 1 1
$
%
&
&
&
&
Master Informatique Théorie de l'Information 70
© Richard G. Terrat
Octobre 2008
II.3
Codes de Hamming
Sommaire
1. Propriétés des codes linéaires
2. Théorème fondamental
3. Matrice de vérification & syndrome
4. Construction des codes de Hamming
Master Informatique Théorie de l'Information 71
© Richard G. Terrat
Octobre 2008
1. Propriétés des codes linéaires
• C linéaire ⇒
{d (x1, x2) : x1, x2 ∈ C} = {poids (x3) : x3 ∈ C}
– Preuve
• ∀ x1, x2 ∈ C ∃ x3 ∈ C : d (x1, x2) = poids (x3)
 d (x1, x2) = poids (x1 + x2) et x3 = x1 + x2 ∈ C
⇒ {d (x1, x2) : x1, x2 ∈ C} ⊆ {poids (x3) : x3 ∈ C}
• ∀ x3 ∈ C ∃ x1, x2 ∈ C poids (x3) = d (x1, x2)
 x1 = x3 x2 = 0
⇒ {d (x1, x2) : x1, x2 ∈ C} ⊇ {poids (x3) : x3 ∈ C}
C.Q.F.D.
Distance et poids d’un code linéaire
• Poids d’un code
– poids (C) = min (poids (x)) ∀ x ∈ C, x ≠ 0
• Théorème : C linéaire ⇒ d (C) = poids (C)
– Preuve
{d (x1, x2) : x1, x2 ∈ C} = {poids (x3) : x3 ∈ C}
{d (x1, x2) : x1, x2 ∈ C}  0 = {poids (x3) : x3 ∈ C}  0
min {d (x1, x2) : x1, x2 ∈ C}  0 = min {poids (x3) : x3 ∈ C}  0
C.Q.F.D.
Master Informatique Théorie de l'Information 72
© Richard G. Terrat
Octobre 2008
Borne de Singleton
• C (n,k) linéaire ⇒ d (C) ≤ n - k + 1
– Preuve
• C’ code systématique équivalent à C de matrice G
• les lignes de G : Gi. sont des mots du code (base)
• d (C) = d (C’) = poids (C’) ≤ max (poids (Gi.))
• G est diagonale gauche ⇒ au moins k-1 zéros dans Gi.
• max (poids (Gi.)) = n - (k - 1) = n - k + 1
• d (C) ≤ n - k + 1
C.Q.F.D.
2. Théorème fondamental
• C linéaire ⇒ une erreur de vecteur e est
détectable si et seulement si e ∉ C
• Preuve
– x émis ∈ C y reçu y = x + e
 le théorème est de type A si et seulement si B
 on démontre (1) ¬B ⇒ ¬A et (2) ¬A ⇒ ¬B
(1) e ∈ C ⇒ y = x + e ∈ C ⇒ e non détectable
(2) e non détectable ⇒ y ∈ C ⇒ e = x + y ∈ C
Master Informatique Théorie de l'Information 73
© Richard G. Terrat
Octobre 2008
Dépendances linéaires
• G matrice génératrice d’un code C (n,k)
– G est de dimension (k,n) et de rang k
– Les n vecteurs-colonnes de G (G.j)
sont linéairement dépendants
– n-k relations
entre coordonnées
– soit
!i 1" i " k gim • hm = 0
m=1
n
#
!i, j 1" j " n # k, 1" i " k gim • hjm = 0
m=1
n
$
G.m • hm = 0
m=1
n
!
3. Matrice de vérification
• les hjm forment une matrice H (n-k,n)
• Matrice transposée tH(n, n-k) thmj = hjm
GG •• tt
H = 0H = 0 HH •• tt
GG = 0= 0 GG ⊥⊥ HH
• H (n-k,n) est appelée matrice de vérification
!i, j 1" j " n # k, 1" i " k gim • t
(hmj ) = 0
m=1
n
$
Master Informatique Théorie de l'Information 74
© Richard G. Terrat
Octobre 2008
Syndrome
u : mot à coder x : mot du code (vecteurs)
y : mot reçu e : erreur y = x + e
• Syndrome de y s(y) = H • ty s linéaire
– Propriétés
H • tG = 0 ⇒ ∀u H • tG • tu = 0 ⇒
∀u H • t(u • G) = 0 ⇒ ∀x H • tx = 0
• s (x) = 0
• s(y) = s(e) s(y) = s(x+e) = s(x)+s(e) = s(e)
• e = 0 ⇒ s(y) = s(e) = 0
 réciproque fausse erreurs non détectables
Codes systématiques
• G de la forme
• H de la forme
1 k n
1
k
I AG =
1 k n
1
n-k
H = ItA
Master Informatique Théorie de l'Information 75
© Richard G. Terrat
Octobre 2008
Vérification
1 i k j n
1
i
k
I AG • tH =
1 j n-k1
i
k
j
n
•
A
I
!i, j gim • t
(hmj ) =
m=1
n
" aij + aij = 0!
= 0
1
i
k
1 j n-k
C.Q.F.V.
1
1
Exemples
k = 3 n = 4
G =
1 0 0 1
0 1 0 1
0 0 1 1
!
"
#
#
#
$
%
&
&
&
x1 = u1 x2 = u2 x3 = u3 x4 = u1 + u2 + u3
H = 1 1 1 1( )!
x1 + x2 + x3 + x4 = 0!
Code de parité
paire
k =1 n = 4
G = 1 1 1 1( )
x1 = x2 = x3 = x4 = u1
H =
1 1 0 0
1 0 1 0
1 0 0 1
!
"
#
#
#
$
%
&
&
&
x1 + x2 = 0
x1 + x3 = 0
x1 + x4 = 0Code à répétition
Master Informatique Théorie de l'Information 76
© Richard G. Terrat
Octobre 2008
4. Construction des codes de
Hamming
• Hypothèse poids (e) = 1
e = (0 …1…0) avec 1 en position j
y = x + e s (y) = s (e) = H • te
1 j n
1
i
n-k
•
1
j
n
0
1
0
=
1
i
n-k
= H.j
H • te = H.j
Correction d’une erreur
• Le syndrome d’une erreur de poids 1 dont le bit j = 1 est
égal à la colonne j de la matrice H s(e) = H.j
• Pour corriger une erreur, la matrice H doit avoir toutes ses
colonnes non nulles et distinctes
• La position de l’erreur est alors la position du syndrome
dans une et une seule des colonnes de H
• Un code ayant cette propriété est appelé
code de Hamming
• La distance d’un tel code est égale à 3
Master Informatique Théorie de l'Information 77
© Richard G. Terrat
Octobre 2008
Codes optimaux
• Colonnes de H (n-k,n) non nulles et distinctes
⇔ n ≤ 2n-k - 1 ⇔ 2n-k ≥ n + 1 ⇔ n - k ≥ log2 (n + 1)
• Un code de Hamming est optimal si sa redondance
et minimale
R = (n-k) / k ≥ (log2 (n + 1)) / k
• Codes optimaux n-k = log2 (n + 1)
• Théorème
Les codes optimaux de Hamming sont des codes parfaits
Preuve n - k = log2 (n + 1) ⇒ (n + 1) 2k = 2n
Vérification du second théorème
de Shannon
• Codes de Hamming optimaux
n n-k k R
3 2 1 2
7 3 4 3/4
15 4 11 4/11
31 5 26 5/26
… … … …
∞ 0
Master Informatique Théorie de l'Information 78
© Richard G. Terrat
Octobre 2008
Exemple
• n = 7 k = 4
H =
0 1 1 1
1 1 0 1
1 0 1 1
!
"
#
#
#
1 0 0
0 1 0
0 0 1
$
%
&
&
&
G =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
!
"
#
#
#
#
0 1 1
1 1 0
1 0 1
1 1 1
$
%
&
&
&
&
⇒
U = 1 0 1 0( ) X = U • G = 1 0 1 0 1 1 0( )
E = 0 0 0 1 0 0 0( )
Y = X + E = 1 0 1 1 1 1 0( )
s(Y) =
1
1
1
!
"
#
#
#
$
%
&
&
&
⇒
⇒
⇒
⇒
erreur
bit 4
Distances et matrice de vérification
• Théorème : C (n, k) linéaire de matrice de
vérification H et de distance d (C) = d ⇔
(1) d-1 colonnes de H linéairement indépendantes &
(2) d colonnes de H linéairement dépendantes
Preuve
∀x ∈ C ⇔ H • tx = 0
d (C) = d ⇔ ∃ x ∈ C poids (x) = d (3) &
∀ x ∈ C poids (x) ≥ d (4)
 on va montrer que (3) ⇔ (2) et ¬(4) ⇔ ¬(1)
Master Informatique Théorie de l'Information 79
© Richard G. Terrat
Octobre 2008
(3) ⇔ (2)
∃ x ∈ C poids (x) = d et H • tx = 0 ⇔
d colonnes de H linéairement dépendantes
¬(4) ⇔ ¬(1)
∃ x ∈ C poids (x) = d - 1 et H • tx = 0 ⇔
d - 1 colonnes de H linéairement dépendantes
C.Q.F.D.
Master Informatique Théorie de l'Information 80
© Richard G. Terrat
Octobre 2008
II.4
Codes polynomiaux
Codes cycliques
Sommaire
1. Représentation polynomiale
2. Polynôme et matrice générateurs
3. Distances, erreurs & syndrome
4. Systématisation
5. Codes cycliques
Master Informatique Théorie de l'Information 81
© Richard G. Terrat
Octobre 2008
1. Représentation polynomiale
a = a0 a1 … an-1 , ai ∈ {0,1} mot de longueur n
a → Pa(x) = a0x + a1x + … an-1xn-1
Pa : polynôme de degré < n à coefficients dans F2
Polynômes anneau commutatif unitaire intègre
Anneau des polynômes
• Propriétés
a b = b a commutatif
∃ 1 ∈ A, a.1 = 1.a = a unitaire
a.b = 0 ⇔ a = 0 ou b = 0 intègre
• Idéal (bilatère) I ⊆ A, A commutatif
∀ a,b ∈ I, a+b ∈ I et ∀ a ∈ A, ∀ x ∈ I , a.x ∈ I
• Idéal principal
∃ x ∈ I, ∀ y ∈ I, ∃ a ∈ A, y = a.x I = {a.x | a ∈ A}
x est le générateur de I
Ernst Eduard Kummer
(1810 - 1893)
Master Informatique Théorie de l'Information 82
© Richard G. Terrat
Octobre 2008
Code polynomial
codeura(x) b(x)
g(x)
degré < k degré < n
degré r = n-k
g0 = 1
a(x) = a0 + a1x + … ak-1xk-1 polynôme à coder
b(x) = b0 + b1x + …… bn-1xn-1 polynôme du code
g(x) = 1 + g1x + … xr polynôme générateur
b(x) = g(x).a(x)
Propriétés
• Tout code polynomial est linéaire
– Preuve
g(x).(a(x) + a’(x)) = g(x).a(x) + g(x).a’(x)
• Tout code polynomial C (n,k) admet comme base
g(x), x g(x), x2 g(x),… xk-1 g(x)
– Preuve
g(x), x.g(x), x2.g(x),… xk-1.g(x) linéairement indépendants
∀ b(x) ∈ C, b(x) = a(x).g(x) = a0.g(x) + a1.x.g(x) + … ak-1.xk-1.g(x)
⇒ b(x) est une combinaison linéaire de ces polynômes
Master Informatique Théorie de l'Information 83
© Richard G. Terrat
Octobre 2008
2. Polynôme et matrice
générateurs
• Forme générale
les lignes de G sont une base
 ce n’est pas une matrice
diagonale !
Le codage engendré n’est
pas systématique
• Exemple
k=3 n=6
g(x) = 1 + x + x3
G =
g(x)
x.g(x)
x2
.g(x)
…
xk!1
.g(x)
"
#
$
$
$
$
$
$
%
&
'
'
'
'
'
'
!!
G =
1 1 0 1 0 0
0 1 1 0 1 0
0 0 1 1 0 1
!
"
#
#
#
$
%
&
&
&
3. Distances, erreurs & syndrome
• Théorème C polynomial ⇒ d (C) > 1
⇒ détecte toutes les erreurs de poids 1
– Preuve
C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C
e (x) = xj erreur de poids 1 sur le bit j, 0 ≤ j <n
e (x) ∈ C ⇒ e(x) = g(x).p(x) = (1 +…+ xr).p(x) ⇒
e(x) = p(x) + …+xr.p(x) ⇒
e(x) comporte au moins 2 termes
donc e(x) ∉ C
C.Q.F.D.
Master Informatique Théorie de l'Information 84
© Richard G. Terrat
Octobre 2008
Paquet d’erreurs
• Définition
e : paquet de longueur s dans un mot de longueur n
e = ei …e i+s-1 s > 0 i ≥ 0 i + s ≤ n
ei = ei+s-1 = 1 0 ≤ j < i ou i + s ≤ j < n ej = 0
e → e(x) = xi .(1 + … + xs-1)
• Lemme de Gauss
A anneau factoriel anneau des polynômes
∀a, b, c ∈ A , b.c multiple de a, b premier avec a ⇒ c multiple de a
Carl Friedrich Gauß
(1777 - 1855)
0 01 … 1
0 i i+s n-1
Détection de paquets d’erreurs
• Théorème
C (n,k) polynomial ⇒
tout paquet d’erreur de longueur s ≤ n-k est détectable
Preuve
C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C
e(x) ∈ C ⇒ e (x) = xi .(1 + … + xs-1) multiple de g(x)
xi premier avec g(x) ⇒ (1 + … + xs-1) multiple de g(x)
⇒ degré (1 + … + xs-1) ≥ degré (g(x)) ⇒ s > n-k
donc e(x) ∉ C
C.Q.F.D.
Master Informatique Théorie de l'Information 85
© Richard G. Terrat
Octobre 2008
Erreurs impaires
• Théorème C polynomial générateur g(x)
g(x) multiple de (1+xm) ⇒
e(x), poids (e(x)) impair est détectable
Preuve
C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C
Lemme de Descartes
p(x) multiple de (x-a) ⇔ a racine de p(x)
e(x) ∈ C ⇒ e(x) multiple de g(x) ⇒ e(x) multiple de (1+xm) ⇒
1 racine de e(x) ⇒ poids (e(x)) pair
donc e(x) ∉ C
C.Q.F.D.
René Descartes
(1596 - 1650)
Erreurs doubles
• Théorème C polynomial générateur g(x)
(1+xm) n’est pas multiple de g(x), 0 < m < n ⇒
C détecte toutes les erreurs de poids ≤ 2
Preuve
C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C
e(x) = xu + xv = xu.(1 + xv-u) , 0 ≤ u < v < n
e(x) ∈ C ⇒ xu.(1 + xm), 0 < m < n, multiple de g(x)
xu premier avec g(x) ⇒ (1 + xm) multiple de g(x)
donc e(x) ∉ C
C.Q.F.D.
Master Informatique Théorie de l'Information 86
© Richard G. Terrat
Octobre 2008
Syndrome
b(x) ∈ C ⇒ b(x) mod g(x) = 0
erreur e(x) ⇒ mot reçu c(x) = b(x) + e(x)
• Syndrome s(e(x)) = e(x) mod g(x)
Propriété
s(c(x)) = s (b(x) + e(x)) = s (b(x)) + s (e(x)) = s (e(x))
e(x) détectable ⇔ e(x) ∉ C ⇔ s(e(x)) ≠ 0
4. Systématisation
• Théorème
G matrice génératrice d’un code polynomial ⇒
∃ G’≡ G, G’ matrice génératrice systématique du même code
polynomial
Preuve r = n-k
a(x) = a0 + … + ak-1.xk-1 mot à coder
xr.a(x) = a0.xr + … + ak-1.xn-1
t(x) = (xr.a(x)) mod g(x)
xr.a(x) = g(x).q(x) + t(x) degré(t(x)) < r
b(x) = xr.a(x) + t(x) = g(x).q(x)
C.Q.F.D.
Master Informatique Théorie de l'Information 87
© Richard G. Terrat
Octobre 2008
Illustration
a(x) = a0 + … + ak-1.xk-1
xr.a(x) = a0.xr + … + ak-1.xn-1
t(x) = xr.a(x) mod g(x)
b(x) = xr.a(x) + t(x)
a0 ……………ak-1
0 … 0 a0……………ak-1
r
t0…tr-1
t0…tr-1 a0……………ak-1
Construction
• Codage a(x) → b(x)
– calcul de xr.a(x)
– calcul de t(x) = (xr.a(x)) mod g(x) degré < r
– b(x) = xr.a(x) + t(x)
t0 t1 t2 tr-2 tr-1
g0 g1
g2
g3 gr-1 gr
circuit de division
Master Informatique Théorie de l'Information 88
© Richard G. Terrat
Octobre 2008
5. Codes cycliques
• A(n) ensemble des polynômes de
coefficients ai ∈ {0,1} et de degré < n
• On définit l’opération produit • par
∀ a(x), b(x) ∈ A(n) a(x) • b(x) = (a(x).b(x)) mod (xn + 1)
Propriété <A(n) ; +, • > est un anneau
commutatif, unitaire, non intègre
Décalage circulaire
• Théorème x • a(x) est un décalage circulaire
de 1 position de a(x)
Preuve
a(x) = a0 + … + an-2.xn-2 + an-1.xn-1
x.a(x) = a0.x + … + an-2.xn-1 + an-1.xn
x.a(x) = a0.x + … + an-2.xn-1 + an-1.(xn+1) + an-1
an-1.(xn+1) mod (xn+1) = 0
x • a(x) = an-1 + a0.x + … + an-2.xn-1
C.Q.F.D.
Master Informatique Théorie de l'Information 89
© Richard G. Terrat
Octobre 2008
Codes polynomiaux cycliques
• Définition
C cyclique b(x) ∈ C ⇒ xi • b(x) ∈ C
• Théorème
C cyclique ⇔ b(x) ∈ C ⇒ x • b(x) ∈ C
Preuve
• ⇒ i = 1
• ⇐ par récurrence
xi • b(x) ∈ C ⇒ xi+1 • b(x) ∈ C
Propriétés
• Théorème C (n,k) polynomial cyclique de
générateur g(x) ⇔ g(x) divise xn + 1
Preuve
b(x) ∈ C ⇒ b(x) multiple de g(x) ⇒
x.b(x) multiple de g(x)
x • b(x) = x.b(x) + bn-1.(xn + 1)
bn-1 = 0 ⇒ ∀ g(x), x • b(x) ∈ C
bn-1 = 1 ⇒ (xn + 1) = x.b(x) + x • b(x)
x • b(x) ∈ C ⇔ xn + 1 multiple de g(x)
C.Q.F.D.
Master Informatique Théorie de l'Information 90
© Richard G. Terrat
Octobre 2008
• Théorème
C (n,k) polynomial cyclique de générateur g(x) ⇒
C idéal principal de A(n) de générateur g(x)
Preuve
a(x) = a0 + a1.x + … + an-1.xn-1 ∈ A(n)
b(x) = b0 + b1.x + … + bn-1.xn-1 ∈ C
a(x) • b(x) = (a0.b(x) + a1.x.b(x) + … + an-1.xn-1.b(x)) mod (xn + 1)
= c(x)
C polynomial cyclique ⇒ ∀i xi.b(x) ∈ C ⇒ c(x) ∈ C
∀ b(x) ∈ C ∃ a(x) ∈ A(n), b(x) = g(x) • a(x)
C.Q.F.D.
Syndrome
Polynôme de vérification h(x)
h(x) = (xn + 1) / g(x)
Propriété
g(x) • h(x) = 0
Syndrome
s(c(x)) = c(x) • h(x)
Propriétés
b(x) ∈ C ⇒ s (b(x)) = b(x) • h(x) = a(x) • g(x) • h(x) = 0
c(x) = b(x) + e(x) ⇒ s (c(x)) = s (b(x) + e(x)) = s (e(x))
Master Informatique Théorie de l'Information 91
© Richard G. Terrat
Octobre 2008
Construction & exemples
• Recherche d’un code cyclique C (n,k) ⇒
recherche des diviseurs de xn + 1 ⇒
factorisation de xn + 1 ⇒ extensions de F2
• Exemple x7+ 1 = (x + 1).(x3 + x + 1).(x3 + x 2 + 1)
g(x) = x3 + x + 1 et g’(x) = x3 + x 2 + 1
engendrent des codes de Hamming
• Codes polynomiaux normalisés
– UIT x16 + x12 + x5 + 1
– Ethernet x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8
+ x7 + x5 + x4 + x2 + x + 1
Codes cycliques non linéaires
• Exemple codes m sur n m < n
– Définition x ∈ C (m/n) ⇔ poids (x) = m
– Propriétés
• C (m/n) non linéaire
– Preuve 0 ∉ C
• Redondance R =
2n
Cn
m
!1
Master Informatique Théorie de l'Information 92
© Richard G. Terrat
Octobre 2008
– Distance d (C (m/n)) = 2
Preuve
x émis, e erreur, y = x + e reçu
• ∀e, poids(e) = 1 ⇒ poids (y) = poids (x) ± 1 ⇒
y ∉ C ⇒ d (C) ≥ 2
• ∃e, poids (e) = 2 , i ≠ j, ei = ej = 1,
xi = 1, xj = 0 ⇒ yi = 0, yj = 1 ⇒
poids (y) = poids (x) ⇒ y = x + e ∈ C ⇒ d (C) ≤ 2
C.Q.F.D.
Master Informatique Théorie de l'Information 93
© Richard G. Terrat
Octobre 2008
Théorie de l’information
TD & Annales d’examens
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
TD N°1
Entropie & Codage
Exercice 1
Une séquence expérimentale d'ADN est définie comme une suite de symboles certains ou
incertains.
Un symbole certain est un élément de l'alphabet : B = {A, T, G, C} .
Un symbole incertain peut être incertain d'ordre 2 ou incertain d'ordre 3.
Un symbole incertain d'ordre 2 est un élément de l'ensemble des Arrangements de 2 éléments de
B ; il y a donc un ordre interprété comme le fait que la première lettre de l'Arrangement est plus
probable que la seconde. Par exemple : TA est un symbole incertain d'ordre 2 ; AT en est un
autre.
Un symbole incertain d'ordre 3 est un élément de l'ensemble des Combinaisons de 3 éléments de
B ; il n'y a donc pas d'ordre. Par exemple TGA ou AGT ou TAG etc... sont des notations d'un
même symbole incertain d'ordre 3.
Une série d'expériences a montré les résultats suivants sur un ensemble de séquences :
1. les symboles certains sont équiprobables entre eux
2. tous les symboles incertains (ordre 2 et 3 confondus) sont aussi équiprobables entre eux
3. la probabilité d'un symbole certain dans une séquence est la même que celle d'un symbole
incertain.
1. Calculer l'information d'un symbole certain et l'information d'un symbole incertain dans une
séquence expérimentale.
2. Calculer l'entropie d’une séquence expérimentale.
3. Trouver un codage optimal pour chaque symbole d'une séquence expérimentale.
4. Un génome humain est une suite de 3,5 Milliards de symboles. En supposant cette suite
composée de symboles indépendants, et en se plaçant dans le même cadre expérimental, que
doit on prévoir comme capacité de stockage sur un support exempt d'erreurs pour archiver la
séquence expérimentale d'un génome ?
Exercice 2
Calculer l’Entropie HX d’une source binaire X = {0,1} telle que
prob (x=0) = p prob (x=1) = 1-p
Etudier et interpréter HX(p)
TD N°2
Entropie & Codage
Exercice 1
On considère la distribution X sur {a, b, c, d, e } définie par
p (a ) = 0,32
p (b ) = 0,23
p (c ) = 0,20
p (d ) = 0,15
Utiliser l’algorithme de Huffman pour trouver un codage préfixe optimal
Comparer la longueur moyenne de ce codage avec H(X)
Comparer avec un codage binaire naïf
Exercice 2
Le patron d’un tripot décide de faire jouer ses parieurs par réseau.
Il cherche, bien sûr, à minimiser les coûts de transmission.
Le jeu est le 421 avec 3 dés identiques à 6 faces et avec un seul lancé à chaque pari.
Les paris portent sur les 5 événements suivants, résultats possibles d’un lancé des dés :
1. 421
2. Trois nombres identiques (par exemple 555)
3. Trois nombres successifs (par exemple 345)
4. Deux et seulement deux nombres identiques (par exemple 446)
5. Autres résultats
Calculer le nombre de lancés possibles de chacun de ces 5 événements.
En déduire la probabilité de chacun de ces 5 événements
Calculer la quantité d’information associée à chaque événement
Calculer l’entropie du jeu en résultant
En déduire le codage optimal de ces événements, selon la méthode de Huffman
Calculer la longueur moyenne du codage
Exercice 3
On considère la distribution uniforme X sur un ensemble de cardinal n avec 2k
≤ n ≤ 2k+1
1. Trouver un code préfixe C tel que l (C ) = k + 2 – 2k+1
/ n
Indication : Coder 2k+1
– n éléments en une chaîne de longueur k, et les éléments restants en
une chaîne de longueur k + 1
2. Illustrer la construction pour n = 6. Calculer l (C ) et H (X) sur cet exemple
TD N°3
Transmission bruitée
Exercice 1
On s'intéresse à un nouveau standard de Télévision TBD : Très Basse Définition pour des
applications militaires. Une image est composée de Pixels. Chaque pixel est défini par de l’une
des 3 couleurs : R, V, B. On a mesuré sur une grande série d'images la répartition en probabilités
des 3 couleurs :
R : 1/4 V : 1/2 B : 1/4
Question 1
Quelle est la quantité d'information associée à chacune des 3 couleurs ?
Quelle est l'entropie de la source ?
Donner le codage optimal d’un pixel
La transmission a lieu dans un environnement très bruité.
La matrice de transmission est ainsi définie :
soit X le symbole émis et Y le symbole reçu, appartenant chacun à l'alphabet {R,V,B}
Pr (Y/X) = 1/2 si Y = X , 1/4 sinon
Question 2
Quelle est la matrice de réception Pr (X/Y) donnant pour chaque symbole reçu la probabilité du
symbole émis ?
Calculer l'entropie de la source de chrominance après réception : H(X/Y)
Calculer la quantité d’information transmise I (X; Y)
On donne : log23 = 1,58 log25 = 2,32 log27 = 2,81
Exercice 2
On considère une source binaire symétrique X = {0,1} , donc avec p = 1/2 émettant sur un canal
bruité symétrique, stationnaire et sans mémoire vers un puits également binaire et symétrique Y
= {0,1}
La matrice de bruit BY/X(q) est définie par la seule quantité q telle que :
prob (y=1/x=0) = prob (y=0/x=1) = q
prob (y=0/x=0) = prob (y=1/x=1) = 1-q
Calculer les quantités :
prob (x=0/y=0) prob (x=0/y=1) prob (x=1/y=0) prob (x=1/y=1)
prob (y=0) prob (y=1)
En déduire HY , HX/Y et IX;Y en fonction de q
Etudier et interpréter IX;Y (q)
TD N°4
Mesure et construction de codes
Exercice 1 Mesure des erreurs de transmission
On a mesuré que les erreurs de transmission sur une boucle locale hertzienne pouvaient être
modélisées par un canal binaire symétrique et sans mémoire, avec une probabilité d’erreur de
1/1 000 sur chaque bit transmis.
On transmet sur ce canal des trames d’une longueur de 1 000 bits.
Questions
Sachant que les erreurs sont indépendantes pour chaque bit :
1. Calculer le taux brut d’erreur d’une trame (probabilité d’au moins un bit erroné)
2. Calculer le taux résiduel d’erreur après utilisation d’un code de parité simple
Indications
1. ln (1+)  
2. l’efficacité du code de parité sera calculée en faisant le quotient de la probabilité de
détection d’une seule erreur sur la probabilité d’occurrence d’une ou deux erreurs
Exercice 2 Construction empirique d’un code correcteur
On souhaite pouvoir construire un code susceptible de corriger jusqu'à 2 erreurs, pour une
trame de 2 bits.
Questions
1. Quelle doit être la distance minimum de ce code ?
Soit k = 2 le nombre de bits à coder, r le nombre de bits de contrôle à ajouter à k pour la
correction des erreurs et n = k+r
La théorie des codes de Hamming nous indique que, pour pouvoir corriger une erreur, les r bits
de contrôle doivent pouvoir coder soit l’absence d’erreur, soit la position de l’erreur quand il y
en a une. Il faut donc que : r ≥ log2 (n+1)
2. En s'inspirant des codes de Hamming, exprimer l'inéquation permettant de calculer la valeur
minimum à donner à r pour pouvoir corriger jusqu'à 2 erreurs. On calculera pour cela le
nombre de possibilités d'avoir 0, 1 ou 2 erreurs.
Résoudre cette inéquation en prenant la plus petite valeur de r la satisfaisant. On pourra, pour
ce faire, essayer bêtement les valeurs successives de r en partant de 1 par pas de 1.
3. En utilisant les résultats des questions précédentes, plus un peu d'imagination et d' I.N.
(Intelligence Naturelle), construire un code, éventuellement systématique, de longueur n = 8
bits pouvant corriger deux erreurs pour un bloc à coder de dimension k = 2 bits.
Justifier la construction et les propriétés de ce code.
TD N°5
Capacité d’un canal
Exercice 1 Canal dissymétrique
On considère un canal binaire, dissymétrique, stationnaire et sans mémoire.
La transmission d’un bit égal à 0 se fait sans erreur.
La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50%
Calculer
l’équivoque et la transinformation pour une source équiprobable
la capacité de ce canal
Exercice 2 Canal à « effacement »
On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un
mécanisme approprié.
L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu »
Soit p la probabilité de perte d’un bit.
Calculer
l’équivoque et la transinformation pour une source équiprobable
la capacité de ce canal pour p = 1/2
TD N°6
Codes linéaires
On considère le code linéaire C dont la base est formée par les trois mots :
00111
10101
11011
Questions
1. Vérifier que ces mots forment bien une base
2. Quelles sont les valeurs de
k dimension de C
n longueur de C
R redondance de C
3. Construire la matrice génératrice G de C
4. Construire les mots du code C
5. Montrer que la distance de ce code est égale à son poids
6. En conservant le même code, construire la matrice G' permettant un codage
systématique (ou séparable). Expliquer sa construction.
7. Construire la matrice de vérification H' correspondant à G'
8. Calculer à nouveau à partir de H' la distance d(C)
9. Est-ce un code de Hamming ? Justifier
10. Le récepteur reçoit le mot Y1 = 11111
Quel est son syndrome ?
Quel mot a été émis ?
11. Même question avec le mot Y2 = 10011
12. Quelle corrélation y a-t-il avec la distance du code ?
13. Combien ce code permet-il de détecter et de corriger d'erreurs ?
TD N°7
Codes polynomiaux
On considère le code cyclique C (7,4) engendré par le polynôme générateur :
g(x) = x3 + x + 1
Question 1
Montrer que le polynôme générateur est bien celui d'un code cyclique.
Question 2
Ce code peut-il détecter :
toutes les erreurs simples ?
toutes les erreurs doubles ?
toutes les erreurs de poids impair ?
Justifier chacune des réponses. On pourra utiliser des théorèmes connus en les citant.
Question 3
Soit f(x) = x3 + x un bloc à coder.
Quel est le mot du code c(x) correspondant ?
On considère le polynôme h(x) tel que : g(x).h(x) = x7 + 1
On appelle syndrome d'un polynôme a(x) l'expression :
S (a(x)) = (h(x).a(x)) mod (x7 + 1)
Montrer que le syndrome de c(x) est nul.
Question 4
Soit e(x) = x2 (x2 + x + 1) un polynôme d'erreur.
Quel est le polynôme d(x) reçu pour c(x) transmis avec l'erreur e(x) ?
Quel est le syndrome de d(x) ?
L'erreur e(x) est elle détectable ? Justifier .
Question 5
Le code engendré par g(x) par multiplication polynomiale est-il systématique ?
Pourquoi ?
Comment engendrer un code systématique à partir de g(x) ?
Quel est dans ce cas le mot du code c'(x) engendré pour le bloc à coder f(x) précédent ?
Peut-on détecter l'erreur e(x) précédente ? Si oui comment ? Justifier.
Master Informatique Partiel
Théorie de l’Information Durée 0h30
Avril 2005 Tous documents autorisés
MESURE DE L’INFORMATION
TRUCAGE D’UN DE
Un dé (à 6 faces) a volontairement été truqué pour tricher au jeu!
Le tricheur a conçu le trucage pour obtenir les probabilités suivantes :
p(4) = p(2) = 1/4 p(1) = p(3) = p(5) = p(6) = 1/8
Questions
1. La distribution est-elle bien une loi de probabilité ? Justifier
2. Quelles sont les quantités d’information associées à chaque tirage ?
3. Quelle est l’entropie de ce dé truqué ?
4. Quelle est la meilleure façon de coder les tirages ?
5. Comparer les 2 résultats précédents à ceux d’un dé « honnête »
6. Reprendre les questions 1 à 5 pour 3 dés distincts (par ex : un bleu B, un blanc W et un
rouge R - dans ce cas le tirage B=2, W=1, R=4 est différent de B=4, W=2, R=1 -)
Master Informatique Session 1
Théorie de l’Information Durée 1h
Juillet 2005 Tous documents autorisés
1 : MESURE DE L’INFORMATION
On considère un canal binaire, dissymétrique, stationnaire et sans mémoire.
La transmission d’un bit égal à 0 se fait sans erreur.
La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50%
On demande de calculer l’information mutuelle (ou trans-information) véhiculée par ce canal,
dans le cas où la source est symétrique (en moyenne, autant de 0 que de 1 émis), de deux façons
différentes :
1. En calculant la différence entre l’entropie de la source et l’équivoque (ou incertitude) de
la source vue du puits.
2. En calculant la différence entre l’entropie du puits et l’équivoque (ou incertitude) du
puits vu de la source.
Comparer les résultats et interprétez les.
NB : tous les calculs intermédiaires doivent explicitement être détaillés, sous peine de nullité
des réponses données.
Aides : on admettra sans vergogne que 0.log0 = 0
log23 ≈ 1,585 log2 5 ≈ 2,322
2 : CODES
On considère le code suivant :
C = { 00000000, 00011111, 11111000, 11100111 }
Question 1
Calculer
1. Sa longueur n
2. Sa dimension k
3. Sa redondance R
4. Sa distance D
5. Le nombre d’erreurs détectables Ed
6. Le nombre d’erreurs corrigeables Ec
Question 2
Montrer que ce code est linéaire. Construire une matrice génératrice G
Question 3
Montrer que ce code n’est pas systématique. Construire une matrice génératrice G’ d’un code
systématique équivalent. Construire la matrice de vérification H’ correspondante
Question 4
Le mot 11 est émis puis codé à partir du code systématique de matrice G’
Une malencontreuse série de 2 erreurs transforme ces 2 bits en 00
Ces erreurs sont-elles détectables ? Justifier
Ces erreurs sont-elles corrigeables ? Sinon pourquoi ? Si oui comment ?
Master Informatique Session 1
Théorie de l’Information Tous documents autorisés
Juin 2006 Durée 1h
1 : MESURE DE L’INFORMATION
On considère un canal binaire, dissymétrique, stationnaire et sans mémoire.
La transmission d’un bit égal à 0 se fait sans erreur.
La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50%
Calculer la capacité de ce canal
On exprimera les réponses intermédiaires en fonction de q : probabilité d’émission d’un
bit à 0
log23 ≈ 1,585 log2 5 ≈ 2,322
2 : CODES
Le code CC (7,4) engendré par le polynôme g(x) = 1 + x2
+ x3
est-il équivalent à un code de Hamming ? Justifiez.
est-ce un code cyclique ? Justifiez.
On notera les polynômes et la matrice génératrice G de CC avec les poids faibles en tête.
On construira la matrice G’ équivalente à G diagonale-gauche.
Master Informatique Session 2
Théorie de l’Information Tous documents autorisés
Septembre 2006 Durée 1h
1. MESURE DE L’INFORMATION
On considère l’ensemble X des sommes possibles obtenues à partir du lancement de deux dés
honnêtes à 6 faces (chaque face porte un nombre de 1 à 6).
Exemple : pour le lancement (4, 2) la somme est 6
Calculer l’entropie de X
Proposer un codage optimal des éléments de X et calculer la longueur moyenne du code ainsi
obtenu
log23 ≈ 1,585 log2 5 ≈ 2,322
2. CODES
Montrer tous les codes cycliques linéaires possibles de longueur 6.
Indiquer pour chacun d’eux leurs caractéristiques essentielles : polynôme générateur,
dimension, matrice de codage, distance, capacité de détections d’erreurs.
Quels sont, parmi ces codes, ceux permettant de détecter une erreur double sur 2 bits
consécutifs ?
Mêmes questions avec des codes de longueur 8.
Master Informatique Partiel
Théorie de l’Information Tous documents autorisés
Mai 2007 Durée 1h
1. MESURE de l’INFORMATION
On considère une source émettant une suite non bornée de chiffres décimaux (10 symboles)
équiprobables, telle que les chiffres de rang pair et impair sont de parité différente
(exemple : 271829)
1.1 Calculer l’entropie par symbole émis de cette source
1.2 Comparer cette entropie avec celle d’une source émettant une suite quelconque de
symboles sur le même alphabet
1.3 En déduire une façon simple de compresser cette (première) source
Indications log2 3 = 1,585 log2 5 = 2,322
2. CODES
On considère le code cyclique C (7,4) engendré par le polynôme générateur
g(x) = x3 + x2 + 1
2.1 Montrer que le polynôme générateur est bien celui d'un code cyclique.
2.2 Ce code peut-il détecter :
2.2.1 toutes les erreurs simples ?
2.2.2 toutes les erreurs doubles ?
2.2.3 toutes les erreurs de poids impair ?
Justifier chacune des réponses. On pourra utiliser des théorèmes connus en les citant.
Soit f(x) = x3 + 1 un bloc à coder
2.3 Quel est le mot du code c(x) correspondant ?
2.4 Calculer h(x) tel que : g(x).h(x) mod (x7 + 1) = 0
On appelle syndrome d'un polynôme a(x) l'expression : s (a(x)) = h(x).a(x) mod (x7 + 1)
2.5 Calculer le syndrome de c(x)
Soit e(x) = (x5 + x3) un polynôme d'erreur.
2.6 Calculer le polynôme d(x) reçu pour c(x) transmis avec l'erreur e(x)
2.7 Calculer le syndrome de d(x)
2.8 L'erreur e(x) est elle détectable ? Justifier
Master Informatique Session 1
Théorie de l’Information Tous documents autorisés
Mai 2007 Durée 1h
1. MESURE de l’INFORMATION
On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un
mécanisme approprié.
L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu »
Soit p la probabilité de perte d’un bit.
Calculer l’équivocation et l’information transmise par ce canal pour une source équiprobable
2. CODES
Rechercher tous les codes cycliques linéaires possibles de longueur 5.
Montrer que le résultat de votre recherche est exhaustif
Indiquer pour chacun de ces codes leurs caractéristiques essentielles : polynôme générateur,
dimension, matrice de codage, distance, capacité de détections d’erreurs.
Quels sont, parmi ces codes, ceux permettant de détecter une erreur quadruple sur 4 bits
consécutifs ?
Master Informatique Session 2
Théorie de l’Information Tous documents autorisés
Juin 2007 Durée 1h
1. MESURE de l’INFORMATION
On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un
mécanisme approprié ; la probabilité de perte d’un bit est égale à 1/2
L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu »
Soit p la probabilité d’émission d’un bit à 1
Calculer la capacité de ce canal
2. CODES
On considère les codes polynomiaux suivants :
C1 (5,4) défini par le polynôme générateur : g1(x) = x+1
C2 (5,1) défini par le polynôme générateur : g2(x) = x4
+x3
+x2
+x+1
Caractériser ces deux codes
C1 est-il cyclique ? Pourquoi ?
C2 est-il cyclique ? Pourquoi ?
Existe-t-il d’autres codes cycliques de même longueur ? Lesquels ?
Pour chacun de ces 2 codes C1 et C2 :
construire les matrices génératrices et de contrôle pour des codes systématiques équivalents.
Justifier leur construction
calculer leurs distances et capacités de détection et de correction
Université Montpellier 2 Théorie de l’Information
UFR des Sciences Janvier 2008
Master Informatique Tous documents autorisés
1. MESURE de l’INFORMATION
On considère un canal symétrique dont les symboles d’entrée comme de sortie peuvent prendre
4 valeurs de distribution uniforme: X = Y = {0, 1, 2, 3} 1
Le taux d’erreur sur chaque symbole émis x est de 1/2, uniformément réparti sur les deux
symboles voisins : (x-1) mod 4 et (x+1) mod 4
Calculer l’équivoque et la transinformation de cette transmission
2. CODES DETECTEURS/CORRECTEURS d’ERREURS
On cherche à construire des codes polynomiaux de redondance minimale pour une dimension
supérieure à 2, pouvant détecter 2 erreurs indépendantes et des erreurs indépendantes en nombre
impair
Expliquez comment construire ces codes et exprimer pour chacun d’eux son polynôme
générateur et sa distance
Choisir un de ces codes et indiquer, en les justifiant, ses propriétés :
Quelle longueur maximum d’un paquet d’erreur peut-il détecter ?
Est-ce un code de Hamming ?
Est-ce un code parfait ?
Pour quelle longueur minimum est-il cyclique ?
1
Ce mode de transmission correspond à une modulation de phase de valence 4 portant deux
symboles binaires sur les phases : 0, π/2, π, 3π/2
3. COMPRESSION
Exercice 1:
Une source emet des symboles de l'alphabet A = {a,b,c,d,e} avec les probabilités :
P(a) = 0.15, P(b) = 0.04, P(c) = 0.26, P(d) = 0.05 et P(e) = 0.50
1. Calculer l'entropie de cette source
2. Trouver un code de Huffman pour cette source
3. Calculer la longueur moyenne du code de Huffman
Exercice 2:
Une source emet des symboles de l'alphabet A = {a,b,c} avec les
probabilités conditionnelles suivantes:
P(b|a) = 0.5, P(c|a) = 0.5, P(a|b) = 1, P(a|c) = 0.5, P(b|c) = 0.5
La source émet 4 symboles et commence par émettre "a".
1. Quelles sont les séquences possibles émises par la source ?
2. Calculer la longueur d'un code LZ obtenu pour chaque séquence
3. En déduire la longueur moyenne du codage LZ pour la source
Université Montpellier 2 Théorie de l’Information
UFR des Sciences Mars 2008
Master Informatique Tous documents autorisés
1. ENTROPIE & CODAGE
On considère un ensemble de n éléments : E = {e1, e2, …, en} et une source émettant à
intervalles réguliers des sous-ensembles S de E.
Question 1
Sachant que la source tire les éléments aléatoirement et indépendamment les uns des autres
selon une distribution uniforme
Quelle est la probabilité d'envoyer un ensemble S de taille quelconque ?
Quelle est l'entropie de la source si elle envoie des ensembles S quelconques ?
Quelle est la probabilité d'envoyer un ensemble S de taille au plus k ?
Si nous savons que la source émet seulement des ensembles de taille au plus k, quelle est son
entropie ?
Question 2
Parmi les deux codes possibles :
A. Je code les éléments un à un par la méthode de Huffman, et donc j'envoie pour chaque
ensemble la liste des codes de ses éléments.
B. Je code directement un ensemble d'éléments par la méthode de Huffman et donc je n'envoie
que les codes des ensembles.
Laquelle est la plus efficace :
- si la source envoie des ensembles de taille quelconque
- si la source envoie des ensembles de taille au plus k
N'oubliez pas l'en-tête dans la compression de Huffman.
2. CODES DETECTEURS/CORRECTEURS d’ERREURS
On cherche à construire des codes polynomiaux de redondance minimale pour une dimension
supérieure à 2, pouvant détecter 2 erreurs indépendantes et des erreurs indépendantes en nombre
impair
Expliquez comment construire ces codes et exprimer pour chacun d’eux son polynôme
générateur et sa distance
Choisir un de ces codes et indiquer, en les justifiant, ses propriétés :
Quelle longueur maximum d’un paquet d’erreur peut-il détecter ?
Est-ce un code de Hamming ?
Est-ce un code parfait ?
Pour quelle longueur minimum est-il cyclique ?

Théorie de l'information

  • 1.
    Théorie de l’information Université MontpellierII Faculté des Sciences Département Informatique Master Richard G. TERRAT © Richard G. Terrat Octobre 2008
  • 2.
    © Richard G.Terrat Octobre 2008
  • 3.
    Objectif Etude de lamesure de l’Information selon les théories de Claude Shannon et ses applications dans deux domaines : Compression de données Détection et correction d’erreurs Sommaire I. Mesure de l’Information p. 3 II. Codes détecteurs & correcteurs d’erreurs p. 47 Master Informatique Théorie de l'Information 1 © Richard G. Terrat Octobre 2008
  • 4.
    Bibliographie • Codage, cryptologieet applications - Bruno Martin - Presses polytechniques et universitaires romandes - Collection technique et scientifique des télécommunications - 2004 - www.ppur.org • Théorie des Codes - Dumas, Roch, Tannier, Varrette - DUNOD - Sciences Sup - 2007 - www.dunod.com • Théorie de l'Information et du Codage - Olivier Rioul - Hermes Science - Lavoisier -2007 • The mathematics of coding theory - Paul Garett - Pearson Prentice Hall - 2004 Master Informatique Théorie de l'Information 2 © Richard G. Terrat Octobre 2008
  • 5.
    I Mesure de l’information Sommaire 1. Informationet Entropie p. 5 2. Codage optimal p. 17 3. Capacité d’un canal p. 29 Master Informatique Théorie de l'Information 3 © Richard G. Terrat Octobre 2008
  • 6.
    Master Informatique Théoriede l'Information 4 © Richard G. Terrat Octobre 2008
  • 7.
    I.1 Information et Entropie Sommaire 1.Objectifs 2. De la pratique à la théorie 3. Théorie probabiliste 4. Autres théories 5. Entropie 6. Codage & Incertitude Master Informatique Théorie de l'Information 5 © Richard G. Terrat Octobre 2008
  • 8.
    1. Objectifs • Evaluationet minimisation des coûts de – Transmission – Stockage  Compression • Contrôle des erreurs de transmission – Détection – Correction • Cryptologie – Cryptographie – Cryptanalyse Applications • Informatique – Compression, codage, cryptologie – Reconnaissance des formes (I.A.) • Physique – Modèles quantiques – Théorie des trous noirs et du « big bang » • Biologie moléculaire – A.D.N. • Sociologie – Communication Master Informatique Théorie de l'Information 6 © Richard G. Terrat Octobre 2008
  • 9.
    2. De lapratique ... • Compression – Code MORSE • Contrôle des erreurs de transmission – Codes de parité – Codes à répétition • Cryptologie – Crypte de CÆSAR Samuel Morse (1791 - 1872) Le télégraphe (1840) Jules Cæsar (-100 -44) ... à la théorie • Hartley (1928) – Information : élément d'un ensemble fini E – E = {e1, e2, ...ek, ...en} |E| = n – ∀k I (ek) = log2 (n) en bits – Ex : n = 256 I (ek) = 8 bits Ralph Hartley (1888-1970) Master Informatique Théorie de l'Information 7 © Richard G. Terrat Octobre 2008
  • 10.
    3. Théorie probabiliste Shannon-Weaver1948 • Information : élément d'un ensemble E – Dans le cas où E est fini : – E = {e1, e2, ...ek, ...en} |E| = n – ∀k on définit p (ek) telle que : • 0 ≤ p (ek) ≤ 1 • ∑ p (ek) = 1 – p est une mesure de probabilité • Pour E infini on utilise la mesure de – “densité de probabilité” Claude Shannon (1916-2001) Warren Weaver (1894-1978) • information certaine => mesure nulle – p (ek) = 1 => I (ek) = 0 • plus c'est rare ... plus c'est cher – p (ei) ≤ p (ej) => I (ei) ≥ I (ej) • si ei indépendant de ej – p (ei et ej) = p (ei) x p (ej) – I (ei et ej) = I (ei) + I (ej) Master Informatique Théorie de l'Information 8 © Richard G. Terrat Octobre 2008
  • 11.
    Définition I(x) = log2 1 p(x) •I(x)est la mesure de l’information x (x connu) l’incertitude de x (x inconnu) •I(x) est exprimé en bits pour un log en base 2 Exemples • X = {0, 1, 2, . . . , 255} – p(0) = p(1) = p(2) = . . . = p(255) = 1/256 ⇒I(0) = I(1) = . . . I(255) = log2 256 = 8 bits • X = {0, 1, 2, . . . , 9} – p(0) = p(1) = p(2) = . . . p(9) = 1/10 ⇒I(0) = I(1) = . . . I(9) = log2 10 = 3,32 bits Master Informatique Théorie de l'Information 9 © Richard G. Terrat Octobre 2008
  • 12.
    Exemples • X ={a, b, c, d, e, f, g, h} – p(a) = p(b) = 1/4 – p(c) = p(d) = 1/8 – p(e) = p(f) = p(g) = p(h) = 1/16 ⇒ – I(a) = I(b) = 2 bits – I(c) = I(d) = 3 bits – I(e) = I(f) = I(g) = I(h) = 4 bits 4. Autres théories • Kolomogorov Solomonoff & Chaitin – Mesure basée sur la complexité algorithmique – L’information est définie par l’algorithme minimal capable de la reconstituer Андрей Николаевич Колмогоров (1903-1987) Gregory Chaitin (1947 ) Ray Solomonoff (1926) Master Informatique Théorie de l'Information 10 © Richard G. Terrat Octobre 2008
  • 13.
    5. Entropie • X= {x1, x2, . . . xk. . . xn} |X| = n • Moyenne des informations • H(X) est appelée l’ ENTROPIE de la source X I(xk) = p(xk) k=1 n ! log2 1 p(xk) = H(X) Source X xk Entropie • Etymologie – Entropia (grec) : « retour en arrière » • Thermodynamique – Mesure de l’irréversibilité des transformations d’énergie : principe de dégradation • Informatique – Mesure de l’information (incertitude) d’une source : principe de dispersion • Point commun – Mesure de « désordre » Léon Brillouin (1889-1969) Master Informatique Théorie de l'Information 11 © Richard G. Terrat Octobre 2008
  • 14.
    Exemple 1 X ={x1, x2, ...xk, ...xn} |E| = n ∃k p (xk) = 1 donc ∀j j≠k p(xj) = 0 H(X) = p(xi) i=1 n ! log2 1 p(xi) = p(xk)log2 1 p(xk) + p(xi) i!k " log2 1 p(xi) = ! p(xi) i"k # log2 p(xi) = ? (Souvenir : xlog(x) x!0 " !"" 0) H(X) = 0 Exemple 2 • X = {x1, x2, ...xk, ...xn} |E| = n – ∀k p (xk) = 1 / n H(X) = p(xi) i=1 n ! log2 1 p(xi) = 1 ni=1 n ! log2 n = log2n Donc pour des informations équiprobables et |X| = n H(X) = log2n Master Informatique Théorie de l'Information 12 © Richard G. Terrat Octobre 2008
  • 15.
    Propriétés • L’entropie mesure –l’incertitude de la source – le « désordre » de la source – l’information de la source • On montre que pour |X|= n 0 ! H(X) ! log2 n 6. Codage & Incertitude SOURCE x y CODEUR Master Informatique Théorie de l'Information 13 © Richard G. Terrat Octobre 2008
  • 16.
    Un exemple X ={a, b, c, d, e, f, g, h} p(a) = p(b) = 1/4 ⇒ I(a) = I(b) = 2 bits p(c) = p(d) = 1/8 ⇒ I(c) = I(d) = 3 bits p(e) = p(f) = p(g) = p(h) = 1/16 ⇒ I(e) = I(f) = I(g) = I(h) = 4 bits H(X) = 2x2x1/4 + 2x3x1/8 + 4x4x1/16 = 2,75 bits Codage f : X → {0,1}* a → 00 b → 01 c → 100 d → 101 e → 1100 f → 1101 g → 1110 h → 1111 Soit e émis y = f(e) = 1100 = y1y2y3y4 On reçoit d’abord y1=1 information partielle Nouvelle distribution p(a/y1) = p(b /y1) = 0 p(c /y1) = p(d /y1) = 1/4 p(e/y1) = p(f/y1) = p(g/y1) = p(h/y1) = 1/8 H(X/y1) = 2x1/4x2 + 4x1/4x3 = 2,5 bits Représente l’incertitude restant sur X sachant y1 On a donc « appris » H(X) - H(X/y1) = 0,25 bits ce qui représente l’information apportée par y1 Master Informatique Théorie de l'Information 14 © Richard G. Terrat Octobre 2008
  • 17.
    On reçoit ensuitey2=1 ⇒ nouvelle distribution p(a/y1y2) = p(b/y1y2) = p(c/y1y2) = p(d/y1y2) = 0 p(e/y1y2) = p(f/y1y2) = p(g/y1y2) = p(h/y1y2) = 1/4 H(X/y1y2) = 4x1/4x2 = 2 bits incertitude restant sur X On a donc « appris » H(X/y1) - H(X/y1y2) = 0,5 bits On reçoit ensuite y3= 0 ⇒ nouvelle distribution p(a/y1y2y3) = p(b/y1y2y3) = p(c/y1y2y3) = p(d/y1y2y3) = 0 p(e/y1y2y3) = p(f/y1y2y3) = 1/2 p(g/y1y2y3) = p(h/y1y2y3) = 0 H(X/y1y2y3) = 1 bit incertitude restant sur X On a donc « appris » H(X/y1y2) - H(X/y1y2y3) = 1 bit On reçoit ensuite y4=0 ⇒ nouvelle distribution p(x/y1y2y3y4) = 0 pour x ≠ e p(e/y1y2y3y4) = 1 H(X/y1y2y3y4) = 0 bit incertitude restant sur X On a donc « appris » H(X/y1y2y3) - H(X/y1y2y3y4) = 1 bit Conclusion incertitude information apprise restant à l’étape cumulée Avant réception 2,75 bits 0 bit 0 bit Après réception de y1 2,5 bits 0,25 bits 0,25 bits Après réception de y2 2 bits 0,5 bits 0,75 bits Après réception de y3 1 bit 1 bit 1,75 bits Après réception de y4 0 bit 1 bit 2,75 bits Master Informatique Théorie de l'Information 15 © Richard G. Terrat Octobre 2008
  • 18.
    Master Informatique Théoriede l'Information 16 © Richard G. Terrat Octobre 2008
  • 19.
    I.2 Codage optimal Sommaire 1. Codages& Codes 2. Codes préfixes, Codes séparables 3. Codage de Huffman 4. Premier théorème de Shannon Master Informatique Théorie de l'Information 17 © Richard G. Terrat Octobre 2008
  • 20.
    1. Codages &Codes SOURCE PUITSDécodeurCodeur CANAL Codage • X = {x1, x2, . . . , xk, . . . , xn} • A = {a, b, c, …} : alphabet du code |A| = D • A* : monoïde libre engendré par A • Codage f : X → A* injective – Exemple – X = {r, v, b} A = {0, 1} – f : r → 01 v → 0 b → 10 Master Informatique Théorie de l'Information 18 © Richard G. Terrat Octobre 2008
  • 21.
    Code • Définition C= f (X) image de X • Décodage f-1 : C → X (f injective) • Mot du code m ∈ C – Longueur d’un mot l(m) • Propriétés – longueur fixe ∀m ∈ C l(m) = l – longueur variable Propriétés • Longueur d’un code – Moyenne des longueurs des mots du code • Code binaire – A = {0, 1} D=2 L(C) = p(xk) l( f (xk)) k=1 n ! Master Informatique Théorie de l'Information 19 © Richard G. Terrat Octobre 2008
  • 22.
    Extension de codage –X* monoïde libre engendré par X – λ mot vide – g : X* → A* extension de f • g (λ) = λ • x ∈ X , y ∈ X* g(xy) = f(x) g(y) – Exemple • g (rvvb) = 010010 Décodage  f injective ⇒ g injective est faux ! • Exemple – g (rvvb) = 010010 – g (vbrv) = 010010 – g (rvrv) = 010010 • Donc g-1 n’existe pas et on ne peut décoder ! Master Informatique Théorie de l'Information 20 © Richard G. Terrat Octobre 2008
  • 23.
    2. Codes préfixes, Codesséparables • Préfixe strict s d’un mot m – s = ps (m) ssi s = pref (m) et s ≠ m – Un exemple d’un préfixe strict ps (010010) = 010 • C est un code préfixe ssi – ∀ m ∈ C , ∀ s = ps (m) s ∉ C – Exemple – X = {r, v, b} A = {0, 1} – f : r → 11 v → 0 b → 10 Codes séparables • ∀ y ∈ X* g(y) s’écrit de façon unique – g (y) = f(u) f(v)…. u,v … ∈ X – Exemple – g (rvvb) = 110010 = f(r) f(v) f(v) f(b) • Propriété – g-1 existe donc le mot g(y) est décodable – y = u v … Master Informatique Théorie de l'Information 21 © Richard G. Terrat Octobre 2008
  • 24.
    Théorème • Un codepréfixe est séparable • Preuve algorithmique y ∈ X* m ∈ A* m = g (y) ; i=0 ; tant que m ≠ λ { s = pref (m) tel que s ∈ C -- s unique t = pref (m) l(t) < l(s) t ∉ C (t=ps(s) ∉ C) t = pref (m) l(t) > l(s) t ∉ C (t∈ C ⇒ s=ps(t) ∉ C) -- i++ ; m = ms ; si = s} g (y) = s1 s2 … Arbre d’un code préfixe • Exemple 0 1 0 1 V R B  les feuilles sont étiquetées par les éléments à coder : xk  les chemins de la racine à une feuille sont étiquetés par les codes des xk Codage V → 0 R → 10 B → 11 Master Informatique Théorie de l'Information 22 © Richard G. Terrat Octobre 2008
  • 25.
    Théorème • Il existeau moins un code préfixe C tel que – Donc pour un alphabet binaire (D=2) H(X) log2D ! L(C) < H(X) log2D +1 H(X) ! L(C) < H(X) +1 3. Codage de Huffman (1952) Algorithme S = X ; tant que |S| ≠ 1 { choisir a, b ∈ S tels que ∀c ∈ S, a ≠ b ≠ c p (a) ≤ p (b) ≤ p (c) ; S = S + d avec p (d) = p (a) + p (b) ; construire l’arbre binaire S = S a b } David Huffman (1925-1999) 0 1 a b d Master Informatique Théorie de l'Information 23 © Richard G. Terrat Octobre 2008
  • 26.
    Exemple • X ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}équiprobables 0 1 2 3 4 5 6 7 8 9 1/10 1/10 2/10 1/10 1/10 2/10 4/10 1/10 1/10 2/10 1/10 1/10 2/10 1/10 1/10 2/10 4/10 6/10 1 Code 0 → 000 1 → 001 2 → 010 3 → 011 4 → 100 5 → 101 6 → 1100 7 → 1101 8 → 1110 9 → 1111 • L(C) = 6 x 0,1 x 3 + 4 x 0,1 x 4 = 3,4 bits • H(X) = log210 = 3,32 bits Master Informatique Théorie de l'Information 24 © Richard G. Terrat Octobre 2008
  • 27.
    Efficacité – Pour uncode binaire e = H(X) L(C)log2D ! 1 e = H(X) L(C) ! 1 4. Premier théorème de Shannon • Xn Extension d’ordre n de X – (xa, xb, …) ∈ Xn – Codage fn : Xn → A* injective  rien à voir avec l’extension de codage !  fn est une nouvelle fonction • Cn = f n(Xn) image de Xn Master Informatique Théorie de l'Information 25 © Richard G. Terrat Octobre 2008
  • 28.
    Propriétés • On montreque H(Xn) ≤ n H(X) • Et … si les n éléments du n-uple sont indépendants (non corrélés) H(Xn) = n H(X) H(Xn ) ! L(Cn ) < H(Xn ) + 1 n H(X) ! L(Cn ) < n H(X) + 1 H(X) ! L(Cn ) n < H(X) + 1 n L(Cn ) n n!" # !## H(X) Pour des n-uples indépendants Master Informatique Théorie de l'Information 26 © Richard G. Terrat Octobre 2008
  • 29.
    Énoncé du Théorème •L(Cn) / n – longueur moyenne du code par élément de X • « il est toujours possible de trouver un code dont la longueur moyenne par élément à coder est aussi proche que l’on veut de l’entropie de la source » Exemple • X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}équiprobables • Codes de longueur fixe extension longueur l(Cn) par élément l(Cn)/n 1 4 4 2 7 3,5 3 10 3,33 4 14 3,5 . . . . . . . . . ∞ ∞ 3,32 = H(X) Master Informatique Théorie de l'Information 27 © Richard G. Terrat Octobre 2008
  • 30.
    Master Informatique Théoriede l'Information 28 © Richard G. Terrat Octobre 2008
  • 31.
    I.3 Capacité d’un canal Sommaire 1.Modèle de transmission 2. Équivoque 3. Transinformation 4. Mesure du bruit 5. Capacité d’un canal 6. Second théorème de Shannon Master Informatique Théorie de l'Information 29 © Richard G. Terrat Octobre 2008
  • 32.
    1. Modèle detransmission • X = {x1, x2, … , xk, … , xn} |X| = n – Alphabet de l’émetteur • Y = {y1, y2, … , yj, … , ym} |Y| = m – Alphabet du récepteur • On mesure p (xk/yj) SOURCE PUITSCANAL xk yj I(x /y) = log2 1 p(x /y) Point de vue du Récepteur (Puits) • x est un symbole inconnu • y est un symbole connu • x et y sont corrélés non indépendants • Mesure en bits l’incertitude sur x connaissant y Master Informatique Théorie de l'Information 30 © Richard G. Terrat Octobre 2008
  • 33.
    Un exemple X ={a, b} p(a) = p(b) = 1/2 I(a) = I(b) = 1 bit Y = {c, d} p(a/c) = p(b/d) = 3/4 p(b/c) = p(a/d) = 1/4 I(a/c) = I(b/d) = log2(4/3) = 2 - log23 bits I(b/c) = I(a/d) = log2(4) = 2 bits I(a/c) = 2 - log23 < 1 donc I(a/c) < I(a) l’incertitude sur a a diminué en connaissant c la connaissance de c apporte de l’information sur a I(a/d) = 2 > 1 donc I(a/d) > I(a) l’incertitude sur a a augmenté en connaissant d la connaissance de d apporte de la « désinformation » sur a 2. Équivoque Mesure en bits l’information sur x apportée par y I(x;y) = I(x) ! I(x /y) = log2 1 p(x) ! log2 1 p(x /y) I(x;y) = log2 p(x /y) p(x) Master Informatique Théorie de l'Information 31 © Richard G. Terrat Octobre 2008
  • 34.
    Exemple • I(a;c) =I(a) - I(a/c) = 1 - 2 + log3 = log3 - 1 > 0 c apporte une information positive sur a • I(a;d) = I(a) - I(a/d) 1 - 2 = -1 < 0 d apporte une information négative sur a Incertitude sur la source pour yj reçu • Mesure en bits l’incertitude moyenne sur la source X connaissant un symbole reçu yj ∈ Y • On montre que H(X/yj) ≤ H(X) • La connaissance d’un symbole reçu diminue toujours l’incertitude sur la source H(X /y j ) = p(xk /y j k=1 n ! )log2 1 p(xk /y j ) Master Informatique Théorie de l'Information 32 © Richard G. Terrat Octobre 2008
  • 35.
    Incertitude sur lasource H(X /Y) = p(y j j=1 m ! ) H(X /y j ) = p(y j j=1 m ! ) p(xk /y j ) log2 k=1 n ! 1 p(xk /y j ) H(X /Y) = j=1 m ! p(xk " y j ) log2 k=1 n ! 1 p(xk /y j ) Equivoque • H(X/Y) mesure en bits l’incertitude en moyenne sur la source connaissant en moyenne les symboles reçus ou l’entropie de la source connaissant le puits • On montre que H(X/Y) ≤ H(X) • La connaissance moyenne des symboles reçus diminue toujours l’incertitude sur la source • Cette mesure s’appelle aussi EQUIVOCATION ou EQUIVOQUE Master Informatique Théorie de l'Information 33 © Richard G. Terrat Octobre 2008
  • 36.
    3. Transinformation • Mesureen bits l’information sur la source X apportée par la connaissance du puits Y • On montre que I (X;Y) = I (Y;X) ≥ 0 • Cette quantité est appelée TRANSINFORMATION ou INFORMATION MUTUELLE I(X;Y) = H(X) ! H(X /Y) Propriétés I(X;Y) = H(X) - H(X/Y) = I(Y;X) = H(Y) - H(Y/X) – L’information apportée par le puits sur la source est égale à l’information apportée par la source sur le puits (symétrie source/puits) 0 ≤ I(X;Y) ≤ H(X) 0 ≤ I(X;Y) ≤ H(Y) – L’information apportée par Y sur X est au plus égale à l’incertitude sur X ou Y Master Informatique Théorie de l'Information 34 © Richard G. Terrat Octobre 2008
  • 37.
    Cas extrêmes • H(X/Y)= 0 – l’incertitude sur X est nulle quand on connaît Y – I(X;Y) = H(X) – l’information apportée par Y égale l’incertitude sur X • H(X/Y) = H(X) – X et Y sont indépendants – L’incertitude sur X reste la même quand on connaît Y – I(X;Y) = 0 – Y n’ « apprend » rien sur X 4. Mesure du bruit Matrice de bruit du canal p(yj/xk) Probabilité que xk se « transforme » en yj SOURCE PUITSCANAL xk yj Y yj X ! xk " p(yj/xk ) # $ % % % & ' ( ( ( Master Informatique Théorie de l'Information 35 © Richard G. Terrat Octobre 2008
  • 38.
    Bruit & Incertitude •On connaît – la distribution de la source p(xk) – le bruit du canal p(yj/xk) distribution de chaque sortie (yj) pour chaque entrée (xk) propriété • On en déduit – la distribution du puits p(yj) – La distribution de la source p(xk/yj) connaissant le puits p(y j j=1 m ! /xk ) = 1 Calculs • Théorèmes de Bayes – Distribution du puits – Incertitudes sur la source p(y j ) = p(y j k=1 n ! /xk ) • p(xk ) p(xk /y j ) = p(y j /xk ) • p(xk ) p(y j ) Master Informatique Théorie de l'Information 36 © Richard G. Terrat Octobre 2008
  • 39.
    Dégradation de l’information •Les distributions – source et puits p (xk) et p (yj) – source connaissant le puits p (xk/yj) – permettent de mesurer • l’entropie de la source H (X) • l’équivoque de la transmission H (X/Y) Mesure globale et synthétique du bruit • l’information transmise I (X;Y) • L’équivoque est une mesure en bits de la dégradation de l’information transmise avec du bruit Propriétés d’un canal • stationnaire ∀j,k p(yj/xk) indépendant du temps • sans mémoire ∀j,k p(yj/xk) indépendant de la suite des xk transmis • symétrique |X|=|Y| et ∀j,k p(yj/xk) = p(yk/xj) • binaire |X|=|Y|=2 • déterministe ∀k (∃i p(yi/xk) = 1,∀j≠i p(yj/xk) = 0)  on montre que I(X ; Y) = H(Y) Master Informatique Théorie de l'Information 37 © Richard G. Terrat Octobre 2008
  • 40.
    Caractéristiques du bruitd’un canal • sans brouillage |X|=|Y| , déterministe et ∀j (∃i p(yj/xi)=1, ∀k k≠i p(yj/xk)=0)  on montre que H(X/Y) = 0 et I(X ; Y) = H(X)  aucune équivoque • totalement brouillé H(X/Y) = H(X) I(X;Y) = 0  aucune information transmise 5. Capacité d’un canal • Adaptation de la source au bruit du canal – I(X;Y) représente l’information transmise par le canal – I(X;Y) dépend de la distribution de la source X – Il existe donc (au moins) une distribution de X telle que I(X;Y) soit maximum – On peut modifier la distribution de X en codant la source pour l’adapter au bruit du canal Master Informatique Théorie de l'Information 38 © Richard G. Terrat Octobre 2008
  • 41.
    Définition • Mesure enbits la quantité maximum d’information qu’un canal peut transmettre, en faisant varier la distribution de la source • C’est une limite infranchissable due au bruit qui est une caractéristique du canal C = max p(xk ) I(X;Y) Propriétés • Toute variation de H(X) ⇒ variation de H(X/Y) ⇒variation de I(X;Y) ⇒ ∃ valeur max de I(X;Y) Master Informatique Théorie de l'Information 39 © Richard G. Terrat Octobre 2008
  • 42.
    6. Second théorèmede Shannon SOURCE PUITSDécodeurCodeur CANAL u x y v bruit Erreur de transmission • Erreur : x ≠ y donc u ≠v • Probabilité p (x≠y) • Exemple x = x0 x1 … xn-1 xi ∈ {0, 1} y = y0 y1 …yn-1 yi ∈ {0, 1} p = p (yi≠ xi) probabilité d’un bit « faux » -- cas d’un canal binaire symétrique -- p (x ≠ y) = 1 - (1-p)n ≈ np si p « petit » ex : p = 10-3 n=8 p(x≠y) = 0,007972 Master Informatique Théorie de l'Information 40 © Richard G. Terrat Octobre 2008
  • 43.
    Débit et Capacité •Débit d’information bits/s – RT = H(U) / Ts Ts période de la source s • Capacité de transmission bits/s – CT = C / Tc Tc période du canal s SOURCE Codeur CANAL u x Codage par blocs • T période de stockage et de codage d’un mot u ∈ U* composé d’une suite de symboles ui – Le « bloc » à coder contient TxRT symboles – Si U = {0, 1} 2TxRT symboles possibles – A chaque séquence de symboles u correspond une séquence de N symboles du code x ∈ X • On peut choisir – i T – ii le code : C ⊆ X – iii le codage f : U → X Master Informatique Théorie de l'Information 41 © Richard G. Terrat Octobre 2008
  • 44.
    Théorème de Shannon •Si il est possible de choisir ii et iii tels que Où f(RT) est une fonction décroissante indépendante de T telle que f(RT) = 0 pour RT = CT RT ! CT p (x ! y) " e#T f (RT ) • Si – il n’est pas possible de borner p (x≠y) RT > CT Claude Shannon montrant la fonction f (RT) Master Informatique Théorie de l'Information 42 © Richard G. Terrat Octobre 2008
  • 45.
    Conclusion • Pour diminuerp (x≠y) on peut  Augmenter f (RT) donc diminuer RT ce qui diminue RT/CT donc diminue le débit RT • Banal  on ajoute de la redondance Augmenter T pour une valeur de RT donnée • Génial  pas de diminution du débit • Mais  on allonge la longueur du code • Et  on complexifie le codage ! • Enfin on ne connaît aucune méthode constructiviste Énoncé du théorème « Pour un débit d’information d’une source inférieur d’une valeur aussi petite que l’on veut à la capacité de transmission du canal, il est toujours possible de trouver un code qui rend la probabilité d’erreur aussi petite que l’on veut » p (x ! y) " e#T f (RT ) Master Informatique Théorie de l'Information 43 © Richard G. Terrat Octobre 2008
  • 46.
    Interprétation • CT -RT < ε1 ⇒ f (RT) < ε2 • e-T f(RT) < ε3 ⇒ T . f (RT) > ln (1/ε3) ⇒ • T > ln (1/ε3) / f(RT) > ln (1/ε3) / ε2 •  cette valeur de T peut être considérable ! p (x ! y) " e#T f (RT ) Redondance • Exemple U = X = {0, 1} – u = u0 u1 … um le bloc à coder – x = x1 x2 …… xn le code de u x = g(u) – X contient de la redondance ⇒ n > m – Mesure de la redondance r = (n-m) / m – Le second théorème de Shannon nous apprend qu’on peut trouver des codes redondants tels que r → 0 (on ne diminue pas le débit) quand n → ∞ (on augmente la longueur du code) Master Informatique Théorie de l'Information 44 © Richard G. Terrat Octobre 2008
  • 47.
    Signaux continus • SiX et Y sont des ensembles infinis continus, on peut aussi calculer CT • Exemple – W bande passante du signal – S énergie du signal – N énergie du bruit gaussien, de moyenne nulle, additif et blanc (uniforme en fréquence) CT (bits / s) = W (Hz) log2(1 + S N ) Master Informatique Théorie de l'Information 45 © Richard G. Terrat Octobre 2008
  • 48.
    Master Informatique Théoriede l'Information 46 © Richard G. Terrat Octobre 2008
  • 49.
    II Codes détecteurs & correcteursd’erreurs Sommaire 1. Représentation vectorielle p. 49 2. Codes linéaires p. 63 3. Codes de Hamming p. 71 4. Codes polynomiaux p. 81 Master Informatique Théorie de l'Information 47 © Richard G. Terrat Octobre 2008
  • 50.
    Master Informatique Théoriede l'Information 48 © Richard G. Terrat Octobre 2008
  • 51.
    II.1 Représentation vectorielle Sommaire 1. Codeset codages binaires en blocs 2. Codes systématiques 3. Syndrome 4. Distances et erreurs 5. Théorème fondamental 6. Construction de codes Master Informatique Théorie de l'Information 49 © Richard G. Terrat Octobre 2008
  • 52.
    1. Codes etcodages binaires en blocs • Notations • U = {0,1}k X = {0,1}n C = f (U) ⊆ X code • Mot à coder u = u1 u2 . . . uk u ∈ U – k dimension du code • Mot du code x = x1 x2 … xn x ∈ X – n longueur du code n > k u xCODEUR Redondance & efficacité • Redondance • Efficacité de détection de correction  D’après Shannon, on peut trouver des codes ayant une « bonne » efficacité avec une « faible » redondance Oui, mais comment ? R = n ! k k Ed = probabilité d'un message détecté faux probabilité d'un message faux Ec = probabilité d'un message faux corrigé probabilité d'un message faux Master Informatique Théorie de l'Information 50 © Richard G. Terrat Octobre 2008
  • 53.
    Taux d’erreur • Tauxbrut τ probabilité d’erreur d’un message avant détection ou correction – Exemple canal binaire symétrique stationnaire et sans mémoire – p probabilité d’erreur sur 1 bit – n nombre de bits d’un message • Taux résiduel q probabilité d’erreur d’un message après détection ou correction ! = 1 " (1" p)n # np q = ! (1 " E) p « petit » Taxonomie Codes détecteurs/correcteurs d’erreurs codes de blocs+ codes convolutifs (continus, récurrents) linéaires+ non linéaires+ polynomiaux non polynomiaux+ cycliques+* non cycliques+ + on peut aussi classer ces codes en : systématiques / non systématiques * Il existe aussi des codes cycliques non linéaires Master Informatique Théorie de l'Information 51 © Richard G. Terrat Octobre 2008
  • 54.
    2. Codes systématiques •Définition u = u1 u2 …uk x = x1 x2 … xk xk+1 … xn ∀ i ∈ [1..k] xi = ui partie « utile » xk+1 … xn partie « redondante » • Intérêt  en absence d’erreur la partie utile est égale au mot émis  seule la partie redondante est à calculer Codes de parité simple • un seul bit de redondance xn – parité paire ⇒ – parité impaire ⇒  notation + et ∑ addition modulo 2 xn = xi i=1 k ! ! xn = xi i=1 k ! +1! xi i=1 n ! = 0! xi i=1 n ! =1! Master Informatique Théorie de l'Information 52 © Richard G. Terrat Octobre 2008
  • 55.
    • Propriétés – Redondance –Détection d’un nombre impair d’erreurs – Erreurs en nombre pair non détectables – Aucune correction d’erreur – Efficacités p (m erreurs) = pm (1! p)n!m Cn m Ed = pm (1! p)n!m Cn m m=1,3,5,... n " pm (1! p)n!m Cn m m=1 n " Ec = 0 = pm (1! p)n!m Cn m m=1,3,5,... n " 1 ! (1! p)n R = 1 k 3. Syndrome • Trace d’une erreur Parité paire Parité impaire S ∈ {0,1} • Propriétés – Pas d’erreur ⇒ S = 0 – Réciproque fausse !  toutes les erreurs ne sont pas détectables S = xi i=1 n ! ! S = xi i=1 n ! +1! Master Informatique Théorie de l'Information 53 © Richard G. Terrat Octobre 2008
  • 56.
    Codes de paritéscroisées • Définition Codes systématiques k = p x q p + q bits de redondance pour i ≤ p j ≤ q xi,q+1 bit de parité des xi,j xp+1,j bit de parité des xi,j Les parités peuvent être paires ou impaires La parité de xp+1,q+1 peut être ambiguë (dépendante de l’ordre des calculs) donc inutilisée x = x11 ! x1q ! ! ! xp1 ! xpq ! " # # # $ % & & & x1,q+1 ! xp,q+1 ! " # # # $ % & & & xp+1,1 ! xp+1,q( ) xp+1,q+1( ) • •x • syndrome > 0 x erreur Propriétés • Redondance • Pour tout code binaire – Détection de la position d’une erreur ⇒ correction possible de cette erreur 0  1 • Codes de parités croisées – 1 erreur • détectable et corrigeable R = p + q p ! q = 1 p + 1 q ! Master Informatique Théorie de l'Information 54 © Richard G. Terrat Octobre 2008
  • 57.
    2 erreurs détectables non corrigeables ambiguïtéde position (+ : autres possibilités) idem •• •x+ •+x •++x •++x Danger de « fausse » correction • 3 erreurs – 2 syndromes non nuls – Correction « à tort » –  « fausse » correction • Il y a toujours un « risque » – mais presque toujours – p (m+1 erreurs) << p (m erreurs) –  risque « calculé » • xx •x Master Informatique Théorie de l'Information 55 © Richard G. Terrat Octobre 2008
  • 58.
    Codes à répétition •u = u1 u2 … uk • x = x11 … x1k x21 … x2k … xp1 … xpk • avec xij = uj u répété p fois • Redondance R = p-1 • Syndrome S = 0 ssi ∀u,v,w xvu = xwu • Correction possible si p impair  correction par vote majoritaire 4. Distances et erreurs • Représentation géométrique – x1 x2 … xn coordonnées d’un vecteur (ou d’un point) x dans l’espace {0, 1}n – Code C (n,k) ensemble de 2k vecteurs (points) – distance euclidienne D entre 2 points x et y – distance de Hamming d théorème de Pythagore  ∑ défini dans NN D2 ∈ NN est un entier • Exemple x = 1 0 1 0 y = 1 1 0 0 d (x, y) = 2 d(x,y) = D2 (x,y) = (yi ! xi )2 i=1 n " ! Master Informatique Théorie de l'Information 56 © Richard G. Terrat Octobre 2008
  • 59.
    Propriétés • Poids d’unvecteur x  ∑ défini dans NN poids (x) ∈ NN est un entier • Théorème • x + y est un vecteur + somme de vecteurs Preuve Exemple x = 1 0 1 0 y = 1 1 0 0 x + y = 0 1 1 0 d (x, y) = poids (x + y) = 2 poids (x) = xi i=1 n ! ! d (x,y) = poids (x + y)! d (x,y) = (yi ! xi)2 = i=1 n " (yi ! xi ) = (yi + xi ) = poids (x + y) i=1 n " i=1 n " Détection des erreurs x vecteur émis y vecteur reçu erreur e = x + y y = x + e x = y + e d (x, y) = poids (e) = nombre de bits « faux »  chaque bit = 1 dans e représente une erreur x yCANAL x y e Master Informatique Théorie de l'Information 57 © Richard G. Terrat Octobre 2008
  • 60.
    l’extrémité du vecteurd’une erreur de poids e sur le symbole x émis est située sur la surface de l’hypersphère de rayon e et de centre x l’extrémité du vecteur d’une erreur de poids p < e sur le symbole x émis est située à l’intérieur de l’hypersphère de rayon e et de centre x e x ex p une erreur de poids ≤ e sur xi est détectable s’il n’existe aucun mot du code xj situé à l’intérieur de l’hypersphère de rayon e et de centre xi une erreur de poids ≤ e sur xi est corrigeable si xi est le seul mot du code situé à une distance d ≤ e Le mot émis du code le plus probable est alors xi e xi xj 1 e xi xj >e Master Informatique Théorie de l'Information 58 © Richard G. Terrat Octobre 2008
  • 61.
    5. Théorème fondamental •Distance d’un code d (C) = min d (xi, xj) ∀ xi, xj ∈ C xi ≠ xj • Théorème Tout code C de distance d – Détecte p = d - 1 erreurs  peut détecter au moins toutes les erreurs de poids ≤ p – Corrige q = int ((d - 1) / 2 ) erreurs  peut corriger au moins toutes les erreurs de poids ≤ q Illustration d = 5 4 erreurs détectables 2 erreurs corrigeables d = 4 3 erreurs détectables 1 erreur corrigeable xi xj d=5 2 2 1 xi xj d=4 2 2 Master Informatique Théorie de l'Information 59 © Richard G. Terrat Octobre 2008
  • 62.
    6. Construction decodes • Problème – Trouver un code de dimension k et de longueur n corrigeant toutes les erreurs de poids au plus égal à r revient à placer 2k points (les mots du code) dans un espace de 2n points, chaque point étant le centre d’une hypersphère de rayon r, ces sphères devant être disjointes.  k, n et r sont donc dépendants Propriétés r Dans l’espace de dimension n : nombre de points dans l’hypersphère de rayon r à distance du centre d d = 0 le centre d = 1 d = 2 . . . d = r Soit au total Cn 1 = n Cn 2 Cn r i= 0 r ! Cn i Cn 0 = 1 Pour corriger r erreurs, le code doit être constitué de 2k mots, centres d’hypersphères disjointes de rayon r Master Informatique Théorie de l'Information 60 © Richard G. Terrat Octobre 2008
  • 63.
    Relation de Hamming Nombred’hypersphères Nombre de points dans chaque hypersphère Nombre de points dans l’espace Sphères disjointes Codes parfaits – Les points de l’espace sont tous dans une hypersphère – Il n’y a aucun point « isolé »  les corrections sont optimales 2k • Cn i i=0 r ! " 2n ! i=0 r ! Cn i ! 2k • Cn i i=0 r ! = 2n ! 2k ! 2n ! Richard Hamming (1915 - 1998) Master Informatique Théorie de l'Information 61 © Richard G. Terrat Octobre 2008
  • 64.
    Master Informatique Théoriede l'Information 62 © Richard G. Terrat Octobre 2008
  • 65.
    II.2 Codes linéaires Sommaire 1. Généralisationdes codes de parité 2. Codes & codages linéaires 3. Équivalences de codages & de codes 4. Systématisation Master Informatique Théorie de l'Information 63 © Richard G. Terrat Octobre 2008
  • 66.
    1. Généralisation descodes de parité (paire) • Exemple k = 4 u = 1101 n = 7 on ajoute 3 bits de parité paire un bit sur u1u2u4, un bit sur u1u3u4, un bit sur u2,u3,u4 x = 1101 100 soit l’erreur e = 0100 000 poids (e) = 1 mot reçu y = 1001 100 y = x+e d(x,y) = 1 Les bits de parité sur u1u2u4 et u2,u3,u4 sont faux Le bit de parité sur u1u3u4 est juste S’il n’y a qu’une erreur elle ne peut être qu’en u2 Propriétés du contrôle de parité paire xj pour k < j ≤ n est un bit de parité paire pour certains bits xi pour 1 ≤ i ≤ k ⇔ xj est une combinaison linéaire des xi Les bits xi contrôlés par xj sont tels que λi = 1 Relation xj = !i xi i=1 k " , !i #{0,1}! xj + !i xi i=1 k " = 0! Master Informatique Théorie de l'Information 64 © Richard G. Terrat Octobre 2008
  • 67.
    2. Codes etcodages linéaires • C ⊂ X = {0,1}n linéaire ⇔ ∀ x1, x2 ∈ C x1 + x2 ∈ C – on en déduit 0 ∈ C – C est un groupe • f : U → X linéaire ⇔ ∀ u1, u2 ∈ U f (u1+ u2) = f (u1) + f (u2) – on en déduit f (0) = 0 – U est un groupe ⇒ f est un homomorphisme de groupe • Un codage linéaire engendre un code linéaire Marie-Ennemond-Camille Jordan (1838 - 1922) Espaces vectoriels F2 = <{0,1}; +, x ; 0, 1 > corps F2 n = < {0,1}n ; + ; 0 > groupe E = < F2, F2 n ; x ; 0 > espace vectoriel sur F2 forme linéaire sur E {x1, …, xn} base de X {x1, …, xn} linéairement indépendants !i i=1 m " xi , !i #F2, xi #X! Evariste Galois (1811 - 1832) !x "X, #$1,...,$n "F2, x = $i xi i=1 n % ! !i xi i=1 n " = 0 # $i !i = 0! Niels Abel (1802 - 1829) Master Informatique Théorie de l'Information 65 © Richard G. Terrat Octobre 2008
  • 68.
    Vecteurs binaires : propriétéssurprenantes • Un vecteur binaire n’est pas orienté – Preuve x = -x x + x = 0 • Un vecteur binaire peut être orthogonal à lui-même x ⊥ x ⇔ x . x = 0 – Exemple 1010 . 1010 = 0 – Théorème x ⊥ x ⇔ poids (x) pair – Preuve x • x = xi . xi = xi i=1 n ! i=1 n ! = poids (xi ) mod 2 Matrice de codage • Le codage linéaire f : U → X peut être représenté par une matrice dite génératrice 1 j n 1 i k gijui • = xj 1 k 1 n U • G = X !j " [1: n] x j = ui . gij i=1 k # Master Informatique Théorie de l'Information 66 © Richard G. Terrat Octobre 2008
  • 69.
    Matrice génératrice • Leslignes de G sont des mots du code C images des vecteurs u de poids 1 base canonique de U • L’application G doit être injective donc – Les lignes de G doivent être linéairement indépendantes alors – L’espace vectoriel d’arrivée est un sous-espace vectoriel de dimension k – Les lignes de G constituent une base de C Codage systématique • G est diagonale-gauche unitaire-gauche – ∀i ∈ [1:k] xk = uk 1 k n 1 k I AG = A (k,n-k) est appelée la matrice de contrôle Master Informatique Théorie de l'Information 67 © Richard G. Terrat Octobre 2008
  • 70.
    Exemples k = 3n = 4 G = 1 0 0 1 0 1 0 1 0 0 1 1 ! " # # # $ % & & & x1 = u1 x2 = u2 x3 = u3 x4 = u1 + u2 + u3 Code de parité paire k =1 n = 4 G = 1 1 1 1( ) x1 = x2 = x3 = x4 = u1 Code à répétition 3. Équivalences de Codes & de Codages (f1 : U → X) ≡ (f2 : U → X ) ⇔ f1 (U) = f2 (U) = C si f1 et f2 linéaires de matrices génératrices G1 et G2 alors G1 et G2 se déduisent l’une de l’autre par un changement de base GG22 = Q= Q •• GG11 GG11 = Q= Q-1-1 •• GG22  Q(k,k) matrice régulière (inversible) de rang k  toute ligne de G1 est une combinaison linéaire des lignes de G2 et réciproquement Master Informatique Théorie de l'Information 68 © Richard G. Terrat Octobre 2008
  • 71.
    Codes équivalents • C≡ C ' ⇔ ∀ x = (x1, x2, …,xn) ∈ C ∀ x' = (x'1, x'2, …,x'n) ∈ C’ (x'1, x'2, …,x'n) = ∏ (x1, x2, …,xn) ∏ est un opérateur de permutation unique ∀ x, x' Pour un même domaine U, les matrices génératrices G et G’ des codes C et C ’ se déduisent l’une de l’autre par permutation de colonnes GG’’ = G= G •• PP G = GG = G’•’• PP-1-1  P(n,n) matrice de permutation  Propriété Invariance des distances Codages équivalents • (f1 : U → C) ≡ (f 2 : U → C ') ⇔ G1 et G2 , matrices génératrices de f1 et f2, ∃ une matrice Q (k,k) régulière ∃ une matrice de permutation P (n,n) GG22 = Q= Q •• GG11 •• PP GG11 = Q= Q-1-1 •• GG22 •• PP-1-1  Propriété Invariance des distances Master Informatique Théorie de l'Information 69 © Richard G. Terrat Octobre 2008
  • 72.
    4. Systématisation • Àtout code linéaire C correspond au moins un code linéaire systématique équivalent Preuve algorithmique G génératrice de C pour i = 1 à k { si gii=0 -- ∃ m > i, gim = 1 -- alors G.i  G.m -- permutation des colonnes i et m -- ; pour tout j≠i { si gji = 1 Gj = Gj. + Gi. -- ligne j = somme des lignes j et i -- } } Exemple 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 ! " # # # # $ % & & & & 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 ! " # # # # $ % & & & & 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 ! " # # # # $ % & & & & 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 ! " # # # # $ % & & & & 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 ! " # # # # $ % & & & & → → → → G = → ! " # # # # I 0 1 1 1 0 1 1 1 0 1 1 1 $ % & & & & Master Informatique Théorie de l'Information 70 © Richard G. Terrat Octobre 2008
  • 73.
    II.3 Codes de Hamming Sommaire 1.Propriétés des codes linéaires 2. Théorème fondamental 3. Matrice de vérification & syndrome 4. Construction des codes de Hamming Master Informatique Théorie de l'Information 71 © Richard G. Terrat Octobre 2008
  • 74.
    1. Propriétés descodes linéaires • C linéaire ⇒ {d (x1, x2) : x1, x2 ∈ C} = {poids (x3) : x3 ∈ C} – Preuve • ∀ x1, x2 ∈ C ∃ x3 ∈ C : d (x1, x2) = poids (x3)  d (x1, x2) = poids (x1 + x2) et x3 = x1 + x2 ∈ C ⇒ {d (x1, x2) : x1, x2 ∈ C} ⊆ {poids (x3) : x3 ∈ C} • ∀ x3 ∈ C ∃ x1, x2 ∈ C poids (x3) = d (x1, x2)  x1 = x3 x2 = 0 ⇒ {d (x1, x2) : x1, x2 ∈ C} ⊇ {poids (x3) : x3 ∈ C} C.Q.F.D. Distance et poids d’un code linéaire • Poids d’un code – poids (C) = min (poids (x)) ∀ x ∈ C, x ≠ 0 • Théorème : C linéaire ⇒ d (C) = poids (C) – Preuve {d (x1, x2) : x1, x2 ∈ C} = {poids (x3) : x3 ∈ C} {d (x1, x2) : x1, x2 ∈ C} 0 = {poids (x3) : x3 ∈ C} 0 min {d (x1, x2) : x1, x2 ∈ C} 0 = min {poids (x3) : x3 ∈ C} 0 C.Q.F.D. Master Informatique Théorie de l'Information 72 © Richard G. Terrat Octobre 2008
  • 75.
    Borne de Singleton •C (n,k) linéaire ⇒ d (C) ≤ n - k + 1 – Preuve • C’ code systématique équivalent à C de matrice G • les lignes de G : Gi. sont des mots du code (base) • d (C) = d (C’) = poids (C’) ≤ max (poids (Gi.)) • G est diagonale gauche ⇒ au moins k-1 zéros dans Gi. • max (poids (Gi.)) = n - (k - 1) = n - k + 1 • d (C) ≤ n - k + 1 C.Q.F.D. 2. Théorème fondamental • C linéaire ⇒ une erreur de vecteur e est détectable si et seulement si e ∉ C • Preuve – x émis ∈ C y reçu y = x + e  le théorème est de type A si et seulement si B  on démontre (1) ¬B ⇒ ¬A et (2) ¬A ⇒ ¬B (1) e ∈ C ⇒ y = x + e ∈ C ⇒ e non détectable (2) e non détectable ⇒ y ∈ C ⇒ e = x + y ∈ C Master Informatique Théorie de l'Information 73 © Richard G. Terrat Octobre 2008
  • 76.
    Dépendances linéaires • Gmatrice génératrice d’un code C (n,k) – G est de dimension (k,n) et de rang k – Les n vecteurs-colonnes de G (G.j) sont linéairement dépendants – n-k relations entre coordonnées – soit !i 1" i " k gim • hm = 0 m=1 n # !i, j 1" j " n # k, 1" i " k gim • hjm = 0 m=1 n $ G.m • hm = 0 m=1 n ! 3. Matrice de vérification • les hjm forment une matrice H (n-k,n) • Matrice transposée tH(n, n-k) thmj = hjm GG •• tt H = 0H = 0 HH •• tt GG = 0= 0 GG ⊥⊥ HH • H (n-k,n) est appelée matrice de vérification !i, j 1" j " n # k, 1" i " k gim • t (hmj ) = 0 m=1 n $ Master Informatique Théorie de l'Information 74 © Richard G. Terrat Octobre 2008
  • 77.
    Syndrome u : motà coder x : mot du code (vecteurs) y : mot reçu e : erreur y = x + e • Syndrome de y s(y) = H • ty s linéaire – Propriétés H • tG = 0 ⇒ ∀u H • tG • tu = 0 ⇒ ∀u H • t(u • G) = 0 ⇒ ∀x H • tx = 0 • s (x) = 0 • s(y) = s(e) s(y) = s(x+e) = s(x)+s(e) = s(e) • e = 0 ⇒ s(y) = s(e) = 0  réciproque fausse erreurs non détectables Codes systématiques • G de la forme • H de la forme 1 k n 1 k I AG = 1 k n 1 n-k H = ItA Master Informatique Théorie de l'Information 75 © Richard G. Terrat Octobre 2008
  • 78.
    Vérification 1 i kj n 1 i k I AG • tH = 1 j n-k1 i k j n • A I !i, j gim • t (hmj ) = m=1 n " aij + aij = 0! = 0 1 i k 1 j n-k C.Q.F.V. 1 1 Exemples k = 3 n = 4 G = 1 0 0 1 0 1 0 1 0 0 1 1 ! " # # # $ % & & & x1 = u1 x2 = u2 x3 = u3 x4 = u1 + u2 + u3 H = 1 1 1 1( )! x1 + x2 + x3 + x4 = 0! Code de parité paire k =1 n = 4 G = 1 1 1 1( ) x1 = x2 = x3 = x4 = u1 H = 1 1 0 0 1 0 1 0 1 0 0 1 ! " # # # $ % & & & x1 + x2 = 0 x1 + x3 = 0 x1 + x4 = 0Code à répétition Master Informatique Théorie de l'Information 76 © Richard G. Terrat Octobre 2008
  • 79.
    4. Construction descodes de Hamming • Hypothèse poids (e) = 1 e = (0 …1…0) avec 1 en position j y = x + e s (y) = s (e) = H • te 1 j n 1 i n-k • 1 j n 0 1 0 = 1 i n-k = H.j H • te = H.j Correction d’une erreur • Le syndrome d’une erreur de poids 1 dont le bit j = 1 est égal à la colonne j de la matrice H s(e) = H.j • Pour corriger une erreur, la matrice H doit avoir toutes ses colonnes non nulles et distinctes • La position de l’erreur est alors la position du syndrome dans une et une seule des colonnes de H • Un code ayant cette propriété est appelé code de Hamming • La distance d’un tel code est égale à 3 Master Informatique Théorie de l'Information 77 © Richard G. Terrat Octobre 2008
  • 80.
    Codes optimaux • Colonnesde H (n-k,n) non nulles et distinctes ⇔ n ≤ 2n-k - 1 ⇔ 2n-k ≥ n + 1 ⇔ n - k ≥ log2 (n + 1) • Un code de Hamming est optimal si sa redondance et minimale R = (n-k) / k ≥ (log2 (n + 1)) / k • Codes optimaux n-k = log2 (n + 1) • Théorème Les codes optimaux de Hamming sont des codes parfaits Preuve n - k = log2 (n + 1) ⇒ (n + 1) 2k = 2n Vérification du second théorème de Shannon • Codes de Hamming optimaux n n-k k R 3 2 1 2 7 3 4 3/4 15 4 11 4/11 31 5 26 5/26 … … … … ∞ 0 Master Informatique Théorie de l'Information 78 © Richard G. Terrat Octobre 2008
  • 81.
    Exemple • n =7 k = 4 H = 0 1 1 1 1 1 0 1 1 0 1 1 ! " # # # 1 0 0 0 1 0 0 0 1 $ % & & & G = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ! " # # # # 0 1 1 1 1 0 1 0 1 1 1 1 $ % & & & & ⇒ U = 1 0 1 0( ) X = U • G = 1 0 1 0 1 1 0( ) E = 0 0 0 1 0 0 0( ) Y = X + E = 1 0 1 1 1 1 0( ) s(Y) = 1 1 1 ! " # # # $ % & & & ⇒ ⇒ ⇒ ⇒ erreur bit 4 Distances et matrice de vérification • Théorème : C (n, k) linéaire de matrice de vérification H et de distance d (C) = d ⇔ (1) d-1 colonnes de H linéairement indépendantes & (2) d colonnes de H linéairement dépendantes Preuve ∀x ∈ C ⇔ H • tx = 0 d (C) = d ⇔ ∃ x ∈ C poids (x) = d (3) & ∀ x ∈ C poids (x) ≥ d (4)  on va montrer que (3) ⇔ (2) et ¬(4) ⇔ ¬(1) Master Informatique Théorie de l'Information 79 © Richard G. Terrat Octobre 2008
  • 82.
    (3) ⇔ (2) ∃x ∈ C poids (x) = d et H • tx = 0 ⇔ d colonnes de H linéairement dépendantes ¬(4) ⇔ ¬(1) ∃ x ∈ C poids (x) = d - 1 et H • tx = 0 ⇔ d - 1 colonnes de H linéairement dépendantes C.Q.F.D. Master Informatique Théorie de l'Information 80 © Richard G. Terrat Octobre 2008
  • 83.
    II.4 Codes polynomiaux Codes cycliques Sommaire 1.Représentation polynomiale 2. Polynôme et matrice générateurs 3. Distances, erreurs & syndrome 4. Systématisation 5. Codes cycliques Master Informatique Théorie de l'Information 81 © Richard G. Terrat Octobre 2008
  • 84.
    1. Représentation polynomiale a= a0 a1 … an-1 , ai ∈ {0,1} mot de longueur n a → Pa(x) = a0x + a1x + … an-1xn-1 Pa : polynôme de degré < n à coefficients dans F2 Polynômes anneau commutatif unitaire intègre Anneau des polynômes • Propriétés a b = b a commutatif ∃ 1 ∈ A, a.1 = 1.a = a unitaire a.b = 0 ⇔ a = 0 ou b = 0 intègre • Idéal (bilatère) I ⊆ A, A commutatif ∀ a,b ∈ I, a+b ∈ I et ∀ a ∈ A, ∀ x ∈ I , a.x ∈ I • Idéal principal ∃ x ∈ I, ∀ y ∈ I, ∃ a ∈ A, y = a.x I = {a.x | a ∈ A} x est le générateur de I Ernst Eduard Kummer (1810 - 1893) Master Informatique Théorie de l'Information 82 © Richard G. Terrat Octobre 2008
  • 85.
    Code polynomial codeura(x) b(x) g(x) degré< k degré < n degré r = n-k g0 = 1 a(x) = a0 + a1x + … ak-1xk-1 polynôme à coder b(x) = b0 + b1x + …… bn-1xn-1 polynôme du code g(x) = 1 + g1x + … xr polynôme générateur b(x) = g(x).a(x) Propriétés • Tout code polynomial est linéaire – Preuve g(x).(a(x) + a’(x)) = g(x).a(x) + g(x).a’(x) • Tout code polynomial C (n,k) admet comme base g(x), x g(x), x2 g(x),… xk-1 g(x) – Preuve g(x), x.g(x), x2.g(x),… xk-1.g(x) linéairement indépendants ∀ b(x) ∈ C, b(x) = a(x).g(x) = a0.g(x) + a1.x.g(x) + … ak-1.xk-1.g(x) ⇒ b(x) est une combinaison linéaire de ces polynômes Master Informatique Théorie de l'Information 83 © Richard G. Terrat Octobre 2008
  • 86.
    2. Polynôme etmatrice générateurs • Forme générale les lignes de G sont une base  ce n’est pas une matrice diagonale ! Le codage engendré n’est pas systématique • Exemple k=3 n=6 g(x) = 1 + x + x3 G = g(x) x.g(x) x2 .g(x) … xk!1 .g(x) " # $ $ $ $ $ $ % & ' ' ' ' ' ' !! G = 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 ! " # # # $ % & & & 3. Distances, erreurs & syndrome • Théorème C polynomial ⇒ d (C) > 1 ⇒ détecte toutes les erreurs de poids 1 – Preuve C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C e (x) = xj erreur de poids 1 sur le bit j, 0 ≤ j <n e (x) ∈ C ⇒ e(x) = g(x).p(x) = (1 +…+ xr).p(x) ⇒ e(x) = p(x) + …+xr.p(x) ⇒ e(x) comporte au moins 2 termes donc e(x) ∉ C C.Q.F.D. Master Informatique Théorie de l'Information 84 © Richard G. Terrat Octobre 2008
  • 87.
    Paquet d’erreurs • Définition e: paquet de longueur s dans un mot de longueur n e = ei …e i+s-1 s > 0 i ≥ 0 i + s ≤ n ei = ei+s-1 = 1 0 ≤ j < i ou i + s ≤ j < n ej = 0 e → e(x) = xi .(1 + … + xs-1) • Lemme de Gauss A anneau factoriel anneau des polynômes ∀a, b, c ∈ A , b.c multiple de a, b premier avec a ⇒ c multiple de a Carl Friedrich Gauß (1777 - 1855) 0 01 … 1 0 i i+s n-1 Détection de paquets d’erreurs • Théorème C (n,k) polynomial ⇒ tout paquet d’erreur de longueur s ≤ n-k est détectable Preuve C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C e(x) ∈ C ⇒ e (x) = xi .(1 + … + xs-1) multiple de g(x) xi premier avec g(x) ⇒ (1 + … + xs-1) multiple de g(x) ⇒ degré (1 + … + xs-1) ≥ degré (g(x)) ⇒ s > n-k donc e(x) ∉ C C.Q.F.D. Master Informatique Théorie de l'Information 85 © Richard G. Terrat Octobre 2008
  • 88.
    Erreurs impaires • ThéorèmeC polynomial générateur g(x) g(x) multiple de (1+xm) ⇒ e(x), poids (e(x)) impair est détectable Preuve C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C Lemme de Descartes p(x) multiple de (x-a) ⇔ a racine de p(x) e(x) ∈ C ⇒ e(x) multiple de g(x) ⇒ e(x) multiple de (1+xm) ⇒ 1 racine de e(x) ⇒ poids (e(x)) pair donc e(x) ∉ C C.Q.F.D. René Descartes (1596 - 1650) Erreurs doubles • Théorème C polynomial générateur g(x) (1+xm) n’est pas multiple de g(x), 0 < m < n ⇒ C détecte toutes les erreurs de poids ≤ 2 Preuve C linéaire ⇒ e (x) détectable ⇔ e (x) ∉ C e(x) = xu + xv = xu.(1 + xv-u) , 0 ≤ u < v < n e(x) ∈ C ⇒ xu.(1 + xm), 0 < m < n, multiple de g(x) xu premier avec g(x) ⇒ (1 + xm) multiple de g(x) donc e(x) ∉ C C.Q.F.D. Master Informatique Théorie de l'Information 86 © Richard G. Terrat Octobre 2008
  • 89.
    Syndrome b(x) ∈ C⇒ b(x) mod g(x) = 0 erreur e(x) ⇒ mot reçu c(x) = b(x) + e(x) • Syndrome s(e(x)) = e(x) mod g(x) Propriété s(c(x)) = s (b(x) + e(x)) = s (b(x)) + s (e(x)) = s (e(x)) e(x) détectable ⇔ e(x) ∉ C ⇔ s(e(x)) ≠ 0 4. Systématisation • Théorème G matrice génératrice d’un code polynomial ⇒ ∃ G’≡ G, G’ matrice génératrice systématique du même code polynomial Preuve r = n-k a(x) = a0 + … + ak-1.xk-1 mot à coder xr.a(x) = a0.xr + … + ak-1.xn-1 t(x) = (xr.a(x)) mod g(x) xr.a(x) = g(x).q(x) + t(x) degré(t(x)) < r b(x) = xr.a(x) + t(x) = g(x).q(x) C.Q.F.D. Master Informatique Théorie de l'Information 87 © Richard G. Terrat Octobre 2008
  • 90.
    Illustration a(x) = a0+ … + ak-1.xk-1 xr.a(x) = a0.xr + … + ak-1.xn-1 t(x) = xr.a(x) mod g(x) b(x) = xr.a(x) + t(x) a0 ……………ak-1 0 … 0 a0……………ak-1 r t0…tr-1 t0…tr-1 a0……………ak-1 Construction • Codage a(x) → b(x) – calcul de xr.a(x) – calcul de t(x) = (xr.a(x)) mod g(x) degré < r – b(x) = xr.a(x) + t(x) t0 t1 t2 tr-2 tr-1 g0 g1 g2 g3 gr-1 gr circuit de division Master Informatique Théorie de l'Information 88 © Richard G. Terrat Octobre 2008
  • 91.
    5. Codes cycliques •A(n) ensemble des polynômes de coefficients ai ∈ {0,1} et de degré < n • On définit l’opération produit • par ∀ a(x), b(x) ∈ A(n) a(x) • b(x) = (a(x).b(x)) mod (xn + 1) Propriété <A(n) ; +, • > est un anneau commutatif, unitaire, non intègre Décalage circulaire • Théorème x • a(x) est un décalage circulaire de 1 position de a(x) Preuve a(x) = a0 + … + an-2.xn-2 + an-1.xn-1 x.a(x) = a0.x + … + an-2.xn-1 + an-1.xn x.a(x) = a0.x + … + an-2.xn-1 + an-1.(xn+1) + an-1 an-1.(xn+1) mod (xn+1) = 0 x • a(x) = an-1 + a0.x + … + an-2.xn-1 C.Q.F.D. Master Informatique Théorie de l'Information 89 © Richard G. Terrat Octobre 2008
  • 92.
    Codes polynomiaux cycliques •Définition C cyclique b(x) ∈ C ⇒ xi • b(x) ∈ C • Théorème C cyclique ⇔ b(x) ∈ C ⇒ x • b(x) ∈ C Preuve • ⇒ i = 1 • ⇐ par récurrence xi • b(x) ∈ C ⇒ xi+1 • b(x) ∈ C Propriétés • Théorème C (n,k) polynomial cyclique de générateur g(x) ⇔ g(x) divise xn + 1 Preuve b(x) ∈ C ⇒ b(x) multiple de g(x) ⇒ x.b(x) multiple de g(x) x • b(x) = x.b(x) + bn-1.(xn + 1) bn-1 = 0 ⇒ ∀ g(x), x • b(x) ∈ C bn-1 = 1 ⇒ (xn + 1) = x.b(x) + x • b(x) x • b(x) ∈ C ⇔ xn + 1 multiple de g(x) C.Q.F.D. Master Informatique Théorie de l'Information 90 © Richard G. Terrat Octobre 2008
  • 93.
    • Théorème C (n,k)polynomial cyclique de générateur g(x) ⇒ C idéal principal de A(n) de générateur g(x) Preuve a(x) = a0 + a1.x + … + an-1.xn-1 ∈ A(n) b(x) = b0 + b1.x + … + bn-1.xn-1 ∈ C a(x) • b(x) = (a0.b(x) + a1.x.b(x) + … + an-1.xn-1.b(x)) mod (xn + 1) = c(x) C polynomial cyclique ⇒ ∀i xi.b(x) ∈ C ⇒ c(x) ∈ C ∀ b(x) ∈ C ∃ a(x) ∈ A(n), b(x) = g(x) • a(x) C.Q.F.D. Syndrome Polynôme de vérification h(x) h(x) = (xn + 1) / g(x) Propriété g(x) • h(x) = 0 Syndrome s(c(x)) = c(x) • h(x) Propriétés b(x) ∈ C ⇒ s (b(x)) = b(x) • h(x) = a(x) • g(x) • h(x) = 0 c(x) = b(x) + e(x) ⇒ s (c(x)) = s (b(x) + e(x)) = s (e(x)) Master Informatique Théorie de l'Information 91 © Richard G. Terrat Octobre 2008
  • 94.
    Construction & exemples •Recherche d’un code cyclique C (n,k) ⇒ recherche des diviseurs de xn + 1 ⇒ factorisation de xn + 1 ⇒ extensions de F2 • Exemple x7+ 1 = (x + 1).(x3 + x + 1).(x3 + x 2 + 1) g(x) = x3 + x + 1 et g’(x) = x3 + x 2 + 1 engendrent des codes de Hamming • Codes polynomiaux normalisés – UIT x16 + x12 + x5 + 1 – Ethernet x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 Codes cycliques non linéaires • Exemple codes m sur n m < n – Définition x ∈ C (m/n) ⇔ poids (x) = m – Propriétés • C (m/n) non linéaire – Preuve 0 ∉ C • Redondance R = 2n Cn m !1 Master Informatique Théorie de l'Information 92 © Richard G. Terrat Octobre 2008
  • 95.
    – Distance d(C (m/n)) = 2 Preuve x émis, e erreur, y = x + e reçu • ∀e, poids(e) = 1 ⇒ poids (y) = poids (x) ± 1 ⇒ y ∉ C ⇒ d (C) ≥ 2 • ∃e, poids (e) = 2 , i ≠ j, ei = ej = 1, xi = 1, xj = 0 ⇒ yi = 0, yj = 1 ⇒ poids (y) = poids (x) ⇒ y = x + e ∈ C ⇒ d (C) ≤ 2 C.Q.F.D. Master Informatique Théorie de l'Information 93 © Richard G. Terrat Octobre 2008
  • 96.
    Théorie de l’information TD& Annales d’examens Université Montpellier II Faculté des Sciences Département Informatique Master Richard G. TERRAT
  • 98.
    TD N°1 Entropie &Codage Exercice 1 Une séquence expérimentale d'ADN est définie comme une suite de symboles certains ou incertains. Un symbole certain est un élément de l'alphabet : B = {A, T, G, C} . Un symbole incertain peut être incertain d'ordre 2 ou incertain d'ordre 3. Un symbole incertain d'ordre 2 est un élément de l'ensemble des Arrangements de 2 éléments de B ; il y a donc un ordre interprété comme le fait que la première lettre de l'Arrangement est plus probable que la seconde. Par exemple : TA est un symbole incertain d'ordre 2 ; AT en est un autre. Un symbole incertain d'ordre 3 est un élément de l'ensemble des Combinaisons de 3 éléments de B ; il n'y a donc pas d'ordre. Par exemple TGA ou AGT ou TAG etc... sont des notations d'un même symbole incertain d'ordre 3. Une série d'expériences a montré les résultats suivants sur un ensemble de séquences : 1. les symboles certains sont équiprobables entre eux 2. tous les symboles incertains (ordre 2 et 3 confondus) sont aussi équiprobables entre eux 3. la probabilité d'un symbole certain dans une séquence est la même que celle d'un symbole incertain. 1. Calculer l'information d'un symbole certain et l'information d'un symbole incertain dans une séquence expérimentale. 2. Calculer l'entropie d’une séquence expérimentale. 3. Trouver un codage optimal pour chaque symbole d'une séquence expérimentale. 4. Un génome humain est une suite de 3,5 Milliards de symboles. En supposant cette suite composée de symboles indépendants, et en se plaçant dans le même cadre expérimental, que doit on prévoir comme capacité de stockage sur un support exempt d'erreurs pour archiver la séquence expérimentale d'un génome ? Exercice 2 Calculer l’Entropie HX d’une source binaire X = {0,1} telle que prob (x=0) = p prob (x=1) = 1-p Etudier et interpréter HX(p)
  • 99.
    TD N°2 Entropie &Codage Exercice 1 On considère la distribution X sur {a, b, c, d, e } définie par p (a ) = 0,32 p (b ) = 0,23 p (c ) = 0,20 p (d ) = 0,15 Utiliser l’algorithme de Huffman pour trouver un codage préfixe optimal Comparer la longueur moyenne de ce codage avec H(X) Comparer avec un codage binaire naïf Exercice 2 Le patron d’un tripot décide de faire jouer ses parieurs par réseau. Il cherche, bien sûr, à minimiser les coûts de transmission. Le jeu est le 421 avec 3 dés identiques à 6 faces et avec un seul lancé à chaque pari. Les paris portent sur les 5 événements suivants, résultats possibles d’un lancé des dés : 1. 421 2. Trois nombres identiques (par exemple 555) 3. Trois nombres successifs (par exemple 345) 4. Deux et seulement deux nombres identiques (par exemple 446) 5. Autres résultats Calculer le nombre de lancés possibles de chacun de ces 5 événements. En déduire la probabilité de chacun de ces 5 événements Calculer la quantité d’information associée à chaque événement Calculer l’entropie du jeu en résultant En déduire le codage optimal de ces événements, selon la méthode de Huffman Calculer la longueur moyenne du codage Exercice 3 On considère la distribution uniforme X sur un ensemble de cardinal n avec 2k ≤ n ≤ 2k+1 1. Trouver un code préfixe C tel que l (C ) = k + 2 – 2k+1 / n Indication : Coder 2k+1 – n éléments en une chaîne de longueur k, et les éléments restants en une chaîne de longueur k + 1 2. Illustrer la construction pour n = 6. Calculer l (C ) et H (X) sur cet exemple
  • 100.
    TD N°3 Transmission bruitée Exercice1 On s'intéresse à un nouveau standard de Télévision TBD : Très Basse Définition pour des applications militaires. Une image est composée de Pixels. Chaque pixel est défini par de l’une des 3 couleurs : R, V, B. On a mesuré sur une grande série d'images la répartition en probabilités des 3 couleurs : R : 1/4 V : 1/2 B : 1/4 Question 1 Quelle est la quantité d'information associée à chacune des 3 couleurs ? Quelle est l'entropie de la source ? Donner le codage optimal d’un pixel La transmission a lieu dans un environnement très bruité. La matrice de transmission est ainsi définie : soit X le symbole émis et Y le symbole reçu, appartenant chacun à l'alphabet {R,V,B} Pr (Y/X) = 1/2 si Y = X , 1/4 sinon Question 2 Quelle est la matrice de réception Pr (X/Y) donnant pour chaque symbole reçu la probabilité du symbole émis ? Calculer l'entropie de la source de chrominance après réception : H(X/Y) Calculer la quantité d’information transmise I (X; Y) On donne : log23 = 1,58 log25 = 2,32 log27 = 2,81 Exercice 2 On considère une source binaire symétrique X = {0,1} , donc avec p = 1/2 émettant sur un canal bruité symétrique, stationnaire et sans mémoire vers un puits également binaire et symétrique Y = {0,1} La matrice de bruit BY/X(q) est définie par la seule quantité q telle que : prob (y=1/x=0) = prob (y=0/x=1) = q prob (y=0/x=0) = prob (y=1/x=1) = 1-q Calculer les quantités : prob (x=0/y=0) prob (x=0/y=1) prob (x=1/y=0) prob (x=1/y=1) prob (y=0) prob (y=1) En déduire HY , HX/Y et IX;Y en fonction de q Etudier et interpréter IX;Y (q)
  • 101.
    TD N°4 Mesure etconstruction de codes Exercice 1 Mesure des erreurs de transmission On a mesuré que les erreurs de transmission sur une boucle locale hertzienne pouvaient être modélisées par un canal binaire symétrique et sans mémoire, avec une probabilité d’erreur de 1/1 000 sur chaque bit transmis. On transmet sur ce canal des trames d’une longueur de 1 000 bits. Questions Sachant que les erreurs sont indépendantes pour chaque bit : 1. Calculer le taux brut d’erreur d’une trame (probabilité d’au moins un bit erroné) 2. Calculer le taux résiduel d’erreur après utilisation d’un code de parité simple Indications 1. ln (1+)   2. l’efficacité du code de parité sera calculée en faisant le quotient de la probabilité de détection d’une seule erreur sur la probabilité d’occurrence d’une ou deux erreurs Exercice 2 Construction empirique d’un code correcteur On souhaite pouvoir construire un code susceptible de corriger jusqu'à 2 erreurs, pour une trame de 2 bits. Questions 1. Quelle doit être la distance minimum de ce code ? Soit k = 2 le nombre de bits à coder, r le nombre de bits de contrôle à ajouter à k pour la correction des erreurs et n = k+r La théorie des codes de Hamming nous indique que, pour pouvoir corriger une erreur, les r bits de contrôle doivent pouvoir coder soit l’absence d’erreur, soit la position de l’erreur quand il y en a une. Il faut donc que : r ≥ log2 (n+1) 2. En s'inspirant des codes de Hamming, exprimer l'inéquation permettant de calculer la valeur minimum à donner à r pour pouvoir corriger jusqu'à 2 erreurs. On calculera pour cela le nombre de possibilités d'avoir 0, 1 ou 2 erreurs. Résoudre cette inéquation en prenant la plus petite valeur de r la satisfaisant. On pourra, pour ce faire, essayer bêtement les valeurs successives de r en partant de 1 par pas de 1. 3. En utilisant les résultats des questions précédentes, plus un peu d'imagination et d' I.N. (Intelligence Naturelle), construire un code, éventuellement systématique, de longueur n = 8 bits pouvant corriger deux erreurs pour un bloc à coder de dimension k = 2 bits. Justifier la construction et les propriétés de ce code.
  • 102.
    TD N°5 Capacité d’uncanal Exercice 1 Canal dissymétrique On considère un canal binaire, dissymétrique, stationnaire et sans mémoire. La transmission d’un bit égal à 0 se fait sans erreur. La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50% Calculer l’équivoque et la transinformation pour une source équiprobable la capacité de ce canal Exercice 2 Canal à « effacement » On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un mécanisme approprié. L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu » Soit p la probabilité de perte d’un bit. Calculer l’équivoque et la transinformation pour une source équiprobable la capacité de ce canal pour p = 1/2
  • 103.
    TD N°6 Codes linéaires Onconsidère le code linéaire C dont la base est formée par les trois mots : 00111 10101 11011 Questions 1. Vérifier que ces mots forment bien une base 2. Quelles sont les valeurs de k dimension de C n longueur de C R redondance de C 3. Construire la matrice génératrice G de C 4. Construire les mots du code C 5. Montrer que la distance de ce code est égale à son poids 6. En conservant le même code, construire la matrice G' permettant un codage systématique (ou séparable). Expliquer sa construction. 7. Construire la matrice de vérification H' correspondant à G' 8. Calculer à nouveau à partir de H' la distance d(C) 9. Est-ce un code de Hamming ? Justifier 10. Le récepteur reçoit le mot Y1 = 11111 Quel est son syndrome ? Quel mot a été émis ? 11. Même question avec le mot Y2 = 10011 12. Quelle corrélation y a-t-il avec la distance du code ? 13. Combien ce code permet-il de détecter et de corriger d'erreurs ?
  • 104.
    TD N°7 Codes polynomiaux Onconsidère le code cyclique C (7,4) engendré par le polynôme générateur : g(x) = x3 + x + 1 Question 1 Montrer que le polynôme générateur est bien celui d'un code cyclique. Question 2 Ce code peut-il détecter : toutes les erreurs simples ? toutes les erreurs doubles ? toutes les erreurs de poids impair ? Justifier chacune des réponses. On pourra utiliser des théorèmes connus en les citant. Question 3 Soit f(x) = x3 + x un bloc à coder. Quel est le mot du code c(x) correspondant ? On considère le polynôme h(x) tel que : g(x).h(x) = x7 + 1 On appelle syndrome d'un polynôme a(x) l'expression : S (a(x)) = (h(x).a(x)) mod (x7 + 1) Montrer que le syndrome de c(x) est nul. Question 4 Soit e(x) = x2 (x2 + x + 1) un polynôme d'erreur. Quel est le polynôme d(x) reçu pour c(x) transmis avec l'erreur e(x) ? Quel est le syndrome de d(x) ? L'erreur e(x) est elle détectable ? Justifier . Question 5 Le code engendré par g(x) par multiplication polynomiale est-il systématique ? Pourquoi ? Comment engendrer un code systématique à partir de g(x) ? Quel est dans ce cas le mot du code c'(x) engendré pour le bloc à coder f(x) précédent ? Peut-on détecter l'erreur e(x) précédente ? Si oui comment ? Justifier.
  • 106.
    Master Informatique Partiel Théoriede l’Information Durée 0h30 Avril 2005 Tous documents autorisés MESURE DE L’INFORMATION TRUCAGE D’UN DE Un dé (à 6 faces) a volontairement été truqué pour tricher au jeu! Le tricheur a conçu le trucage pour obtenir les probabilités suivantes : p(4) = p(2) = 1/4 p(1) = p(3) = p(5) = p(6) = 1/8 Questions 1. La distribution est-elle bien une loi de probabilité ? Justifier 2. Quelles sont les quantités d’information associées à chaque tirage ? 3. Quelle est l’entropie de ce dé truqué ? 4. Quelle est la meilleure façon de coder les tirages ? 5. Comparer les 2 résultats précédents à ceux d’un dé « honnête » 6. Reprendre les questions 1 à 5 pour 3 dés distincts (par ex : un bleu B, un blanc W et un rouge R - dans ce cas le tirage B=2, W=1, R=4 est différent de B=4, W=2, R=1 -)
  • 107.
    Master Informatique Session1 Théorie de l’Information Durée 1h Juillet 2005 Tous documents autorisés 1 : MESURE DE L’INFORMATION On considère un canal binaire, dissymétrique, stationnaire et sans mémoire. La transmission d’un bit égal à 0 se fait sans erreur. La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50% On demande de calculer l’information mutuelle (ou trans-information) véhiculée par ce canal, dans le cas où la source est symétrique (en moyenne, autant de 0 que de 1 émis), de deux façons différentes : 1. En calculant la différence entre l’entropie de la source et l’équivoque (ou incertitude) de la source vue du puits. 2. En calculant la différence entre l’entropie du puits et l’équivoque (ou incertitude) du puits vu de la source. Comparer les résultats et interprétez les. NB : tous les calculs intermédiaires doivent explicitement être détaillés, sous peine de nullité des réponses données. Aides : on admettra sans vergogne que 0.log0 = 0 log23 ≈ 1,585 log2 5 ≈ 2,322
  • 108.
    2 : CODES Onconsidère le code suivant : C = { 00000000, 00011111, 11111000, 11100111 } Question 1 Calculer 1. Sa longueur n 2. Sa dimension k 3. Sa redondance R 4. Sa distance D 5. Le nombre d’erreurs détectables Ed 6. Le nombre d’erreurs corrigeables Ec Question 2 Montrer que ce code est linéaire. Construire une matrice génératrice G Question 3 Montrer que ce code n’est pas systématique. Construire une matrice génératrice G’ d’un code systématique équivalent. Construire la matrice de vérification H’ correspondante Question 4 Le mot 11 est émis puis codé à partir du code systématique de matrice G’ Une malencontreuse série de 2 erreurs transforme ces 2 bits en 00 Ces erreurs sont-elles détectables ? Justifier Ces erreurs sont-elles corrigeables ? Sinon pourquoi ? Si oui comment ?
  • 109.
    Master Informatique Session1 Théorie de l’Information Tous documents autorisés Juin 2006 Durée 1h 1 : MESURE DE L’INFORMATION On considère un canal binaire, dissymétrique, stationnaire et sans mémoire. La transmission d’un bit égal à 0 se fait sans erreur. La transmission d’un bit égal à 1 se fait avec une erreur aléatoire de 50% Calculer la capacité de ce canal On exprimera les réponses intermédiaires en fonction de q : probabilité d’émission d’un bit à 0 log23 ≈ 1,585 log2 5 ≈ 2,322 2 : CODES Le code CC (7,4) engendré par le polynôme g(x) = 1 + x2 + x3 est-il équivalent à un code de Hamming ? Justifiez. est-ce un code cyclique ? Justifiez. On notera les polynômes et la matrice génératrice G de CC avec les poids faibles en tête. On construira la matrice G’ équivalente à G diagonale-gauche.
  • 110.
    Master Informatique Session2 Théorie de l’Information Tous documents autorisés Septembre 2006 Durée 1h 1. MESURE DE L’INFORMATION On considère l’ensemble X des sommes possibles obtenues à partir du lancement de deux dés honnêtes à 6 faces (chaque face porte un nombre de 1 à 6). Exemple : pour le lancement (4, 2) la somme est 6 Calculer l’entropie de X Proposer un codage optimal des éléments de X et calculer la longueur moyenne du code ainsi obtenu log23 ≈ 1,585 log2 5 ≈ 2,322 2. CODES Montrer tous les codes cycliques linéaires possibles de longueur 6. Indiquer pour chacun d’eux leurs caractéristiques essentielles : polynôme générateur, dimension, matrice de codage, distance, capacité de détections d’erreurs. Quels sont, parmi ces codes, ceux permettant de détecter une erreur double sur 2 bits consécutifs ? Mêmes questions avec des codes de longueur 8.
  • 111.
    Master Informatique Partiel Théoriede l’Information Tous documents autorisés Mai 2007 Durée 1h 1. MESURE de l’INFORMATION On considère une source émettant une suite non bornée de chiffres décimaux (10 symboles) équiprobables, telle que les chiffres de rang pair et impair sont de parité différente (exemple : 271829) 1.1 Calculer l’entropie par symbole émis de cette source 1.2 Comparer cette entropie avec celle d’une source émettant une suite quelconque de symboles sur le même alphabet 1.3 En déduire une façon simple de compresser cette (première) source Indications log2 3 = 1,585 log2 5 = 2,322 2. CODES On considère le code cyclique C (7,4) engendré par le polynôme générateur g(x) = x3 + x2 + 1 2.1 Montrer que le polynôme générateur est bien celui d'un code cyclique. 2.2 Ce code peut-il détecter : 2.2.1 toutes les erreurs simples ? 2.2.2 toutes les erreurs doubles ? 2.2.3 toutes les erreurs de poids impair ? Justifier chacune des réponses. On pourra utiliser des théorèmes connus en les citant. Soit f(x) = x3 + 1 un bloc à coder 2.3 Quel est le mot du code c(x) correspondant ? 2.4 Calculer h(x) tel que : g(x).h(x) mod (x7 + 1) = 0 On appelle syndrome d'un polynôme a(x) l'expression : s (a(x)) = h(x).a(x) mod (x7 + 1) 2.5 Calculer le syndrome de c(x) Soit e(x) = (x5 + x3) un polynôme d'erreur. 2.6 Calculer le polynôme d(x) reçu pour c(x) transmis avec l'erreur e(x) 2.7 Calculer le syndrome de d(x) 2.8 L'erreur e(x) est elle détectable ? Justifier
  • 112.
    Master Informatique Session1 Théorie de l’Information Tous documents autorisés Mai 2007 Durée 1h 1. MESURE de l’INFORMATION On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un mécanisme approprié. L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu » Soit p la probabilité de perte d’un bit. Calculer l’équivocation et l’information transmise par ce canal pour une source équiprobable 2. CODES Rechercher tous les codes cycliques linéaires possibles de longueur 5. Montrer que le résultat de votre recherche est exhaustif Indiquer pour chacun de ces codes leurs caractéristiques essentielles : polynôme générateur, dimension, matrice de codage, distance, capacité de détections d’erreurs. Quels sont, parmi ces codes, ceux permettant de détecter une erreur quadruple sur 4 bits consécutifs ?
  • 113.
    Master Informatique Session2 Théorie de l’Information Tous documents autorisés Juin 2007 Durée 1h 1. MESURE de l’INFORMATION On considère un canal binaire symétrique sans erreurs, mais avec pertes détectées par un mécanisme approprié ; la probabilité de perte d’un bit est égale à 1/2 L’alphabet de réception comporte donc 3 éléments : 0, 1 et  qui désigne le bit détecté « perdu » Soit p la probabilité d’émission d’un bit à 1 Calculer la capacité de ce canal 2. CODES On considère les codes polynomiaux suivants : C1 (5,4) défini par le polynôme générateur : g1(x) = x+1 C2 (5,1) défini par le polynôme générateur : g2(x) = x4 +x3 +x2 +x+1 Caractériser ces deux codes C1 est-il cyclique ? Pourquoi ? C2 est-il cyclique ? Pourquoi ? Existe-t-il d’autres codes cycliques de même longueur ? Lesquels ? Pour chacun de ces 2 codes C1 et C2 : construire les matrices génératrices et de contrôle pour des codes systématiques équivalents. Justifier leur construction calculer leurs distances et capacités de détection et de correction
  • 114.
    Université Montpellier 2Théorie de l’Information UFR des Sciences Janvier 2008 Master Informatique Tous documents autorisés 1. MESURE de l’INFORMATION On considère un canal symétrique dont les symboles d’entrée comme de sortie peuvent prendre 4 valeurs de distribution uniforme: X = Y = {0, 1, 2, 3} 1 Le taux d’erreur sur chaque symbole émis x est de 1/2, uniformément réparti sur les deux symboles voisins : (x-1) mod 4 et (x+1) mod 4 Calculer l’équivoque et la transinformation de cette transmission 2. CODES DETECTEURS/CORRECTEURS d’ERREURS On cherche à construire des codes polynomiaux de redondance minimale pour une dimension supérieure à 2, pouvant détecter 2 erreurs indépendantes et des erreurs indépendantes en nombre impair Expliquez comment construire ces codes et exprimer pour chacun d’eux son polynôme générateur et sa distance Choisir un de ces codes et indiquer, en les justifiant, ses propriétés : Quelle longueur maximum d’un paquet d’erreur peut-il détecter ? Est-ce un code de Hamming ? Est-ce un code parfait ? Pour quelle longueur minimum est-il cyclique ? 1 Ce mode de transmission correspond à une modulation de phase de valence 4 portant deux symboles binaires sur les phases : 0, π/2, π, 3π/2
  • 115.
    3. COMPRESSION Exercice 1: Unesource emet des symboles de l'alphabet A = {a,b,c,d,e} avec les probabilités : P(a) = 0.15, P(b) = 0.04, P(c) = 0.26, P(d) = 0.05 et P(e) = 0.50 1. Calculer l'entropie de cette source 2. Trouver un code de Huffman pour cette source 3. Calculer la longueur moyenne du code de Huffman Exercice 2: Une source emet des symboles de l'alphabet A = {a,b,c} avec les probabilités conditionnelles suivantes: P(b|a) = 0.5, P(c|a) = 0.5, P(a|b) = 1, P(a|c) = 0.5, P(b|c) = 0.5 La source émet 4 symboles et commence par émettre "a". 1. Quelles sont les séquences possibles émises par la source ? 2. Calculer la longueur d'un code LZ obtenu pour chaque séquence 3. En déduire la longueur moyenne du codage LZ pour la source
  • 116.
    Université Montpellier 2Théorie de l’Information UFR des Sciences Mars 2008 Master Informatique Tous documents autorisés 1. ENTROPIE & CODAGE On considère un ensemble de n éléments : E = {e1, e2, …, en} et une source émettant à intervalles réguliers des sous-ensembles S de E. Question 1 Sachant que la source tire les éléments aléatoirement et indépendamment les uns des autres selon une distribution uniforme Quelle est la probabilité d'envoyer un ensemble S de taille quelconque ? Quelle est l'entropie de la source si elle envoie des ensembles S quelconques ? Quelle est la probabilité d'envoyer un ensemble S de taille au plus k ? Si nous savons que la source émet seulement des ensembles de taille au plus k, quelle est son entropie ? Question 2 Parmi les deux codes possibles : A. Je code les éléments un à un par la méthode de Huffman, et donc j'envoie pour chaque ensemble la liste des codes de ses éléments. B. Je code directement un ensemble d'éléments par la méthode de Huffman et donc je n'envoie que les codes des ensembles. Laquelle est la plus efficace : - si la source envoie des ensembles de taille quelconque - si la source envoie des ensembles de taille au plus k N'oubliez pas l'en-tête dans la compression de Huffman.
  • 117.
    2. CODES DETECTEURS/CORRECTEURSd’ERREURS On cherche à construire des codes polynomiaux de redondance minimale pour une dimension supérieure à 2, pouvant détecter 2 erreurs indépendantes et des erreurs indépendantes en nombre impair Expliquez comment construire ces codes et exprimer pour chacun d’eux son polynôme générateur et sa distance Choisir un de ces codes et indiquer, en les justifiant, ses propriétés : Quelle longueur maximum d’un paquet d’erreur peut-il détecter ? Est-ce un code de Hamming ? Est-ce un code parfait ? Pour quelle longueur minimum est-il cyclique ?