• Aucun résultat trouvé

1 + 1 = 0 ou comment corriger les erreurs

N/A
N/A
Protected

Academic year: 2022

Partager "1 + 1 = 0 ou comment corriger les erreurs"

Copied!
93
0
0

Texte intégral

(1)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

1 + 1 = 0 ou comment corriger les erreurs

Nicolas Billerey

Laboratoire de Mathématiques Université Blaise Pascal – Clermont-Ferrand 2

Journée IREM – Vendredi 7 octobre 2016

(2)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Canal imparfait

Canal

a a?

Erreur e

(3)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Sommaire

1 Les chiffres et les lettres

2 Détecter les erreurs

3 D’un mot à l’autre

4 Pour aller plus loin

(4)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps. Un élément de l’ensembleF2 s’appelle unbit. Une suite de bits s’appelle unmot (binaire).

(5)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps. Un élément de l’ensembleF2 s’appelle unbit. Une suite de bits s’appelle unmot (binaire).

(6)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps. Un élément de l’ensembleF2 s’appelle unbit. Une suite de bits s’appelle unmot (binaire).

(7)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps.

Un élément de l’ensembleF2 s’appelle unbit. Une suite de bits s’appelle unmot (binaire).

(8)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps.

Un élément de l’ensembleF2 s’appelle unbit.

Une suite de bits s’appelle unmot (binaire).

(9)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Arithmétique modulo 2

On noteF2 l’ensemble{0,1}muni des deux lois d’addition et de multiplication suivantes

× 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 0

L’ensembleF2 ainsi construit est uncorps.

Un élément de l’ensembleF2 s’appelle unbit.

Une suite de bits s’appelle unmot (binaire).

(10)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Un intérêt pratique

Les bits forment les briques du langage des ordinateurs :

0↔ le circuit est ouvert (le courant ne passe pas) 1↔ le circuit est fermé (le courant passe)

(11)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Un intérêt pratique

Les bits forment les briques du langage des ordinateurs : 0↔ le circuit est ouvert (le courant ne passe pas)

1↔ le circuit est fermé (le courant passe)

(12)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

Un intérêt pratique

Les bits forment les briques du langage des ordinateurs : 0↔ le circuit est ouvert (le courant ne passe pas) 1↔ le circuit est fermé (le courant passe)

(13)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

La représentation ASCII

On dispose de 128 caractères (caractères latins, chiffres, signes de ponctuation, etc) :

Chaque caractère est représenté par un mot de 7 bits. Par exemple, a correspond à 1100001, et 1111000 à x.

(14)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

La représentation ASCII

On dispose de 128 caractères (caractères latins, chiffres, signes de ponctuation, etc) :

Chaque caractère est représenté par un mot de 7 bits. Par exemple, a correspond à 1100001, et 1111000 à x.

(15)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

La représentation ASCII

On dispose de 128 caractères (caractères latins, chiffres, signes de ponctuation, etc) :

Chaque caractère est représenté par un mot de 7 bits.

Par exemple, a correspond à 1100001, et 1111000 à x.

(16)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Le corpsF2 ASCII

La représentation ASCII

On dispose de 128 caractères (caractères latins, chiffres, signes de ponctuation, etc) :

Chaque caractère est représenté par un mot de 7 bits.

(17)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Sommaire

1 Les chiffres et les lettres

2 Détecter les erreurs

3 D’un mot à l’autre

4 Pour aller plus loin

(18)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Comment faire ?

Il faut ajouter de la redondance...

mais pas trop !

Codage Canal Décodage

a m m' a?

Erreur e

(19)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Comment faire ?

Il faut ajouter de la redondance...

mais pas trop !

Codage Canal Décodage

a m m' a?

Erreur e

(20)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Comment faire ?

Il faut ajouter de la redondance...

mais pas trop !

Codage Canal Décodage

a m m' a?

Erreur e

(21)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Comment faire ?

Il faut ajouter de la redondance... mais pas trop !

Codage Canal Décodage

a m m' a?

Erreur e

(22)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité : définition

mot de 7 bits mot de 8 bits (=octet).

Le 8-ième bit, appelé bit de parité, vaut

0 si le nombre de 1 du mot de 7 bits est pair 1 si le nombre de 1 du mot de 7 bits est impair Maintenant a est codé par 11000011et x par 11110000

(23)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité : définition

mot de 7 bits mot de 8 bits (=octet).

Le 8-ième bit, appelé bit de parité, vaut

0 si le nombre de 1 du mot de 7 bits est pair 1 si le nombre de 1 du mot de 7 bits est impair

Maintenant a est codé par 11000011et x par 11110000

(24)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité : définition

mot de 7 bits mot de 8 bits (=octet).

Le 8-ième bit, appelé bit de parité, vaut

0 si le nombre de 1 du mot de 7 bits est pair 1 si le nombre de 1 du mot de 7 bits est impair Maintenant a est codé par 11000011et x par 11110000

(25)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et addition dans F

2

Définition

On appellecode de paritél’ensemble des mots de 8 bits de la forme b1b2b3b4b5b6b7(b1+b2+b3+b4+b5+b6+b7)

oùbi =0 ou 1 et l’addition est celle deF2.

01101010, 10101010, 00001111 sont des éléments du code de parité.

00001110, 11000001, 01010111 ne le sont pas.

(26)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et addition dans F

2

Définition

On appellecode de paritél’ensemble des mots de 8 bits de la forme b1b2b3b4b5b6b7(b1+b2+b3+b4+b5+b6+b7)

oùbi =0 ou 1 et l’addition est celle deF2.

01101010, 10101010, 00001111 sont des éléments du code de parité.

00001110, 11000001, 01010111 ne le sont pas.

(27)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et addition dans F

2

Définition

On appellecode de paritél’ensemble des mots de 8 bits de la forme b1b2b3b4b5b6b7(b1+b2+b3+b4+b5+b6+b7)

oùbi =0 ou 1 et l’addition est celle deF2.

01101010, 10101010, 00001111 sont des éléments du code de parité.

00001110, 11000001, 01010111 ne le sont pas.

(28)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et détection

Si on change 1 bit dans un octet du code de parité, le résultat n’est plus dans le code de parité (et vice-versa).

Le code de parité détecte donc 1 erreur, mais il ne la corrige pas.

On parle de code détecteur.

(29)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et détection

Si on change 1 bit dans un octet du code de parité, le résultat n’est plus dans le code de parité (et vice-versa).

Le code de parité détecte donc 1 erreur, mais il ne la corrige pas.

On parle de code détecteur.

(30)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et détection

Si on change 1 bit dans un octet du code de parité, le résultat n’est plus dans le code de parité (et vice-versa).

Le code de parité détecte donc 1 erreur, mais il ne la corrige pas.

On parle de code détecteur.

(31)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Code de parité et détection

Si on change 1 bit dans un octet du code de parité, le résultat n’est plus dans le code de parité (et vice-versa).

Le code de parité détecte donc 1 erreur, mais il ne la corrige pas.

On parle de code détecteur.

(32)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Le numéro INSEE

Les deux derniers chiffres du numéro INSEE correspondent à la clé.

La clé est définie par

97−(le reste de la division euclidienne deN par 97), où N est le nombre formé des 13 premiers chiffres.

Nicolas Billerey 1+1=0 ou comment corriger les erreurs

(33)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Le numéro INSEE

Les deux derniers chiffres du numéro INSEE correspondent à la clé.

La clé est définie par

97−(le reste de la division euclidienne deN par 97), où N est le nombre formé des 13 premiers chiffres.

(34)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Le numéro INSEE

Les deux derniers chiffres du numéro INSEE correspondent à la clé.

La clé est définie par

97−(le reste de la division euclidienne deN par 97), où N est le nombre formé des 13 premiers chiffres.

(35)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Le numéro INSEE

Les deux derniers chiffres du numéro INSEE correspondent à la clé.

La clé est définie par

(36)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Code de parité

Les codes détecteurs dans la vie courante

Comment corriger les erreurs trouvées ?

(37)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Choisir un entier entre 0 et 15.

Répondre aux sept questions suivantes. On a le droit de mentir au plus UNE fois.

1 L’entier choisi est-il inférieur ou égal à 7 ?

2 L’entier choisi est-il dans l’ensemble{0,1,2,3,8,9,10,11}?

3 L’entier choisi est-il dans l’ensemble{0,1,4,5,8,9,12,13}?

4 L’entier choisi est-il pair ?

5 L’entier choisi est-il dans l’ensemble{0,2,5,7,9,11,12,14}?

6 L’entier choisi est-il dans l’ensemble{0,3,4,7,9,10,13,14}?

7 L’entier choisi est-il dans l’ensemble{0,3,5,6,8,11,13,14}?

(38)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Choisir un entier entre 0 et 15.

Répondre aux sept questions suivantes. On a le droit de mentir au plus UNE fois.

1 L’entier choisi est-il inférieur ou égal à 7 ?

2 L’entier choisi est-il dans l’ensemble{0,1,2,3,8,9,10,11}?

3 L’entier choisi est-il dans l’ensemble{0,1,4,5,8,9,12,13}?

4 L’entier choisi est-il pair ?

5 L’entier choisi est-il dans l’ensemble{0,2,5,7,9,11,12,14}?

6 L’entier choisi est-il dans l’ensemble{0,3,4,7,9,10,13,14}?

7 L’entier choisi est-il dans l’ensemble{0,3,5,6,8,11,13,14}?

(39)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Choisir un entier entre 0 et 15.

Répondre aux sept questions suivantes. On a le droit de mentir au plus UNE fois.

1 L’entier choisi est-il inférieur ou égal à 7 ?

2 L’entier choisi est-il dans l’ensemble{0,1,2,3,8,9,10,11}?

3 L’entier choisi est-il dans l’ensemble{0,1,4,5,8,9,12,13}?

4 L’entier choisi est-il pair ?

5 L’entier choisi est-il dans l’ensemble{0,2,5,7,9,11,12,14}?

6 L’entier choisi est-il dans l’ensemble{0,3,4,7,9,10,13,14}?

(40)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Sommaire

1 Les chiffres et les lettres

2 Détecter les erreurs

3 D’un mot à l’autre

4 Pour aller plus loin

(41)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

trouvent prouvent

On corrige au plus proche.

(42)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

trouvent prouvent

On corrige au plus proche.

(43)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

2

xxtrouvent

prouvent

On corrige au plus proche.

(44)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

2

xx

3

&&

trouvent prouvent

On corrige au plus proche.

(45)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

2

xx

3

&&

trouvent prouvent

On corrige au plus proche.

(46)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

2

xx

3

&&

trouvent prouvent

On corrige au plus proche.

(47)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

« Des chercheurs qui cherchent, on en trouve. Des chercheurs qui triqvent, on en cherche. »

triqvent

2

xx

3

&&

trouvent prouvent

On corrige au plus proche.

(48)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Une distance entre les mots binaires ?

Définition intuitive : pourm etm0 deux mots de même longueur,

d(m,m0) =]{bits différents entre met m0}

Propriétés élémentaires

d(m,m) =0 et d(m,m0) =d(m0,m) quels que soientm et m0.

(49)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Une distance entre les mots binaires ?

Définition intuitive : pourm etm0 deux mots de même longueur, d(m,m0) =]{bits différents entre met m0}

Propriétés élémentaires

d(m,m) =0 et d(m,m0) =d(m0,m) quels que soientm et m0.

(50)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Une distance entre les mots binaires ?

Définition intuitive : pourm etm0 deux mots de même longueur, d(m,m0) =]{bits différents entre met m0}

Propriétés élémentaires

d(m,m) =0 et d(m,m0) =d(m0,m) quels que soientm et m0.

(51)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

L’inégalité triangulaire

m

m''

m'

d(m,m0)≤d(m,m00) +d(m00,m0)

(52)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

L’inégalité triangulaire

m

m''

m'

d(m,m0)≤d(m,m00) +d(m00,m0)

(53)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

L’inégalité triangulaire

m

m''

m'

d(m,m0)≤d(m,m00) +d(m00,m0)

(54)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2. Un code de distance de Hamming d détecte

d −1

erreurs.

(55)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2. Un code de distance de Hamming d détecte

d −1

erreurs.

(56)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2. Un code de distance de Hamming d détecte

d −1

erreurs.

(57)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2. Un code de distance de Hamming d détecte

d −1

erreurs.

(58)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est

2.

Un code de distance de Hamming d détecte d−1 erreurs.

(59)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2.

Un code de distance de Hamming d détecte d−1 erreurs.

(60)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et détection

Définition

Un code est un ensemble de mots de même longueur. La longueur du code est la longueur des mots.

Définition

La distance de HammingdH d’un code est la distance minimale entre deux mots distincts du code.

La distance de Hamming du code de parité est 2.

(61)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xxtrouvent

trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(62)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xxtrouvent

trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(63)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xx

2

&&

trouvent trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(64)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xx

2

&&

trouventoo 3 //trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(65)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xx

2

&&

trouventoo 3 //trichent

Lequel choisir ?

On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(66)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xx

2

&&

trouventoo 3 //trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout motm0, il existe au plus un élément m∈C tel qued(m0,m)≤t.

(67)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction

triqvent

2

xx

2

&&

trouventoo 3 //trichent

Lequel choisir ? On ne sait pas !

Définition

Un codeC est ditt-correcteur s’il permet de corriger t erreurs, autrement dit, si pour tout mot 0, il existe au plus un élément

(68)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction (suite)

Un code de distance de Hamming d est

jd−1 2

k

-correcteur.

En particulier, un code de distance 3 corrige j3−1 2

k

=1 erreur...

(69)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction (suite)

Un code de distance de Hamming d est jd−1 2

k

-correcteur.

En particulier, un code de distance 3 corrige j3−1 2

k

=1 erreur...

(70)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Distance de Hamming et correction (suite)

Un code de distance de Hamming d est jd−1 2

k

-correcteur.

En particulier, un code de distance 3 corrige j3−1 2

k

=1 erreur...

(71)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3]

Le code de Hamming[7,4,3]est le code de longueur 7 constitué des seize mots suivants :

0000000, 0001111, 0010011, 0011100, 0100101, 0101010, 0110110, 0111001, 1000110, 1001001, 1010101,

1011010, 1100011, 1101100, 1110000, 1111111

C’est l’ensemble des mots de la forme

b1b2b3b4(b1+b2+b4)(b1+b3+b4)(b2+b3+b4) avecbi =0 ou 1.

(72)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3]

Le code de Hamming[7,4,3]est le code de longueur 7 constitué des seize mots suivants :

0000000, 0001111, 0010011, 0011100, 0100101, 0101010, 0110110, 0111001, 1000110, 1001001, 1010101,

1011010, 1100011, 1101100, 1110000, 1111111 C’est l’ensemble des mots de la forme

b1b2b3b4(b1+b2+b4)(b1+b3+b4)(b2+b3+b4)

(73)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3] (suite)

Le code de Hamming[7,4,3]correspond (bijectivement) à l’image deF42 par la matrice

G =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1

∈ M7,4(F2)

appelée matrice génératrice. C’est donc un sous-espace vectoriel de dimension 4 deF72. Sa distance de Hamming vaut 3.

(74)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3] (suite)

Le code de Hamming[7,4,3]correspond (bijectivement) à l’image deF42 par la matrice

G =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1

∈ M7,4(F2)

C’est donc un sous-espace vectoriel de dimension 4 deF72. Sa distance de Hamming vaut 3.

(75)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3] (suite)

Le code de Hamming[7,4,3]correspond (bijectivement) à l’image deF42 par la matrice

G =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1

∈ M7,4(F2)

Sa distance de Hamming vaut 3.

(76)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le code de Hamming [7, 4, 3] (suite)

Le code de Hamming[7,4,3]correspond (bijectivement) à l’image deF42 par la matrice

G =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1

∈ M7,4(F2)

(77)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11} b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13} b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(78)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11} b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13} b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(79)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11} b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13} b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(80)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11} b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13} b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(81)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13} b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(82)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13}

b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(83)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13}

b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14} b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(84)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13}

b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14}

b1+b3+b4 =0⇐⇒N ∈ {0,3,4,7,9,10,13,14} b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(85)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13}

b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14}

b2+b3+b4 =0⇐⇒N ∈ {0,3,5,6,8,11,13,14}

(86)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Correction et distance Détecter et corriger Le code de Hamming[7,4,3]

Le tour déjoué

On a{0, . . . ,15}←→1:1 F42 par l’application qui à un entierN associe ses décimales(b1,b2,b3,b4) dans son écriture binaire :

N =b4+2b3+4b2+8b1.

b1 =0⇐⇒N ≤7

b2 =0⇐⇒N ∈ {0,1,2,3,8,9,10,11}

b3 =0⇐⇒N ∈ {0,1,4,5,8,9,12,13}

b4 =0⇐⇒N est pair

b1+b2+b4 =0⇐⇒N ∈ {0,2,5,7,9,11,12,14}

(87)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Sommaire

1 Les chiffres et les lettres

2 Détecter les erreurs

3 D’un mot à l’autre

4 Pour aller plus loin

(88)

Les chiffres et les lettres Détecter les erreurs Interlude : un tour de prestidigitation D’un mot à l’autre Pour aller plus loin

Michel Demazure. Cours d’algèbre. Primalité. Divisibilité. Codes. Cassini, Paris, 1997. xviii+302 pp.

Jean-Guillaume Dumas, Jean-Louis Roch, Eric Tannier, Sébastien Varrette.Théorie des codes. Compression, cryptage, correction. Dunod, 2013 - 2ème édition - 384 p.

http ://www.sagemath.org/

1 Pour tout entier r ≥2, il existe un code binaire, linéaire, 1-correcteur parfait de paramètres [2r −1,2r −r−1,3].

2 Il existe un seul codet-correcteur parfait avec t >1 : le code de GolayG23 (de longueur 23, dimension 12 avec

dH(G23) =7).

3 Il existe une notion de code sur tout corps fini.

4 Les codes de Reed-Solomon sont utilisés pour les transmissions par satellite ou la lecture des codes QR.

Références

Documents relatifs

Bon, manifestement, il n'était pas très

[r]

Voici une série d’images comportant des erreurs de français repérées dans les médias, dans la presse, dans la publicité, … Il s’agit d’erreurs d’orthographe ou de

Voici une série d’images comportant des erreurs de français repérées dans les médias, dans la presse, dans la publicité, … Il s’agit d’erreurs d’orthographe ou de

Les phrases suivantes contiennent à chaque fois une erreur de syntaxe (= phrase mal construite). Recopie entièrement chaque phrase en corrigeant l’erreur. 1) Il

6) Je me souviens du moment lorsque je l'ai rencontré pour la première fois. Je me souviens du moment où je l'ai rencontré pour la première fois. 7) Le suspect se demandait

Travailler la résolution de problèmes en classe à partir d’Ateliers de Compréhension.

En effet, on ne peut envisager un bou- leversement dans des domaines aussi différents que la science des matériaux, l’électronique et les technologies de l’information, la biologie,