810 likes | 1.17k Views
Lycée Jules Verne. Codes Correcteurs d’Erreurs. Limours, 19 Novembre 2003 Michel Waldschmidt. Applications des codes correcteurs d’erreurs. Télévision, Cd, CdRom, minitel, DVD, ordinateurs, internet,… Transmissions dans l’espace : Voyager 1 et 2, satellites, sondes spatiales, … Téléphonie,
E N D
Lycée Jules Verne Codes Correcteurs d’Erreurs Limours, 19 Novembre 2003 Michel Waldschmidt
Applications des codes correcteurs d’erreurs • Télévision, Cd, CdRom, minitel, DVD, ordinateurs, internet,… • Transmissions dans l’espace : Voyager 1 et 2, satellites, sondes spatiales, … • Téléphonie, téléphonie mobile, …
Ecouter un CD rayé • Sur un disque compact comme sur un ordinateur, chaque son est codé par une suite de 0 et de 1, regroupés par paquets (les octets). • Pour garantir la fidélité de l’enregistrement, on rajoute d’autres octets qui permettent de repérer et de corriger les petites erreurs dues aux poussières et aux rayures.
Un disque compact de bonne qualité contient facilement 500 000 erreurs! • 1 seconde de signal audio = 1 411 200 bits. • La théorie mathématique des codes correcteurs d’erreur permet d’augmenter la fiabilité du son tout en diminuant le coût du codage. Elle s’applique aussi à la transmission des informations par internet ou satellites.
Codage du son sur un CD En utilisant un corps fini à 256 éléments, on peut corriger 2 erreurs sur chaque mot de 32 octets avec 4 octets de contrôle pour 28 octets d’information.
Olympus Mons sur la planète Mars Image obtenue par la sonde spatiale Mariner 2 en 1971.
La sonde envoyait à la terre ses informations en utilisant un code correcteur d’erreurs capable de corriger jusqu’à 7 bits erronés sur 32. Dans chaque groupe de 32 bits, 26 étaient des bits de contrôle et les 6 autres constituaient l’information nette.
Voyager 1 et 2 (1977) • Itinéraire: Cap Canaveral, Jupiter, Saturne, Uranus, Neptune. • Envoyait les informations en utilisant un code binaire permettant de corriger 3 erreurs sur des mots de longueur 24.
Codes et Maths • Algèbre (mathématiques discrètes, corps finis, algèbre linéaire,…) • Géométrie • Probabilités et statistiques
Construire des codes qui détectent et corrigent le plus grand nombre possible d’erreurs, tout en allongeant le moins possible les messages, et qui soient faciles à décoder.
Envoyer deux fois le même message 2 mots autorisés sur 4=22 (1 lettre utile sur 2) Mots autorisés (deux lettres) 0 0 1 1 Taux: 1/2 Détecter une erreur
Principe du codage : on autorise seulement certains « mots » (code = dictionnaire des mots autorisés). Les lettres « utiles » sont celles qui portent l’information, les autres (bits de contrôle, clefs) permettent de détecter des erreurs. Taux: nombre de lettres utiles / nombre total de lettres
Principe du codage permettant de détecter une erreur: deux mots autorisés distincts ont au moins deux lettres différentes
Envoyer trois fois le même message 2 mots autorisés sur 8=23 (1 lettre utile sur 3) Mots autorisés (trois lettres) 0 0 0 1 1 1 Taux: 1/3 Corriger une erreur
On corrige 0 0 1 en 0 0 0 • 0 1 0 en 0 0 0 • 1 0 0 en 0 0 0 et • 1 1 0 en 1 1 1 • 1 0 1 en 1 1 1 • 0 1 1 en 1 1 1
Principe du codage permettant de corriger une erreur: deux mots distincts autorisés ont au moins trois lettres différentes S’il y a une erreur et une seule, il y a exactement un mot du code qui la corrige.
Un autre code détectant une erreurAméliorer le taux 1/2 du code {(0,0), (1,1)} Mots autorisés (trois lettres): 0 0 0 0 1 1 1 0 1 1 1 0 bit de parité: (x y z) avec z=x+y modulo 2. 4=22=22 mots autorisés sur 8=2 2 2=23 (2 lettres utiles sur 3). Taux: 2/3
Mots autorisés Mots Interdits 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 Deux mots autorisés distincts ont au moins deux lettres différentes.
Un autre code corrigeant une erreurAméliorer le taux 1/3 du code {(0,0,0), (1,1,1)} Mots de 7 lettres Mots autorisés: (16=24 sur 128=27) (a b c d e f g) Avec (modulo 2) e=a+b+d f=a+c+d g=a+b+c Taux: 4/7
0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 Le code binaire de Hamming et Shannon (1948) 16 mots de 7 lettres autorisés Deux mots distincts ont au moins trois lettres différentes.
Distance de HammingRichard W. Hamming (1915-1998) • La distance de Hamming de deux mots est le nombre de lettres différentes. • Un code permettant de détecter n erreurs est un code dont la distance de Hamming entre deux mots distincts est au moins n+1. • Un code permettant de corriger n erreurs est un code dont la distance de Hamming minimale est au moins 2n+1.
But: décrire des codes dont les mots ont des distances de Hamming mutuelles grandes, avec un taux maximal. Cela revient à trouver des « points » dont les distances mutuelles sont aussi grandes que possible.
Outils mathématiques Algèbre linéaire: les bits de contrôle sont déterminés par des équations linéaires. Théorie des corps finis (Evariste Galois, 1811-1832). Résolution des équations algébriques par radicaux. Géométrie algébrique, codes géométriques.
Le code binaire de Hamming et Shannon C’est un code linéaire (la somme de deux mots du code est un mot du code) et les 16=24 boules de rayon 1 centrées aux mots du code recouvrent l’espace formé par les 128=27 mots binaires de longueur 7=23-1 (chaque mot a 7 voisins, et (7+1)16= 256).
Empilement de sphères • Problème de Kepler:densité maximale d'empilement desphèresidentiques: p / Ö 18=0,740 480 49… Conjecturé en1611. Démontré en1999 par Thomas Hales. • Liens avec la cristallographie.
Le problème des chapeaux • Trois personnes ont chacune un chapeau, blanc ou noir, sur la tête. Les couleurs sont choisies au hasard. Chacun voit la couleur du chapeau sur la tête des deux autres, mais ne connaît pas la couleur de son propre chapeau. Ils ne communiquent pas. • Chacun écrit sur un papier la couleur qu’il devine pour son propre chapeau: blanc, noir, ou bien il s’abstient.
L’équipe gagne si une au moins des trois personnes ne s’est pas abstenue, et tout ceux qui ne se sont pas abstenus ont donné une réponse correcte.
Stratégie simple: ils conviennent à l’avance que deux d’entre eux s’abstiennent, le troisième donne une réponse au hasard. La probabilité qu’ils gagnent est : 1/2. • Peut-on améliorer cette probabilité?
Indication: Améliorer les chances en utilisant l’information disponible: chacun connaît la couleur des deux autres.
Meilleure stratégie: si l’un des trois voit deux chapeaux (sur la tête des autres) de la même couleur, il parie que son chapeau est de l’autre couleur. S’il voit deux chapeaux de couleurs distinctes, il s’abstient.
L’équipe gagne exactement quand les trois chapeaux ne sont pas tous de la même couleur, c’est-à-dire dans 6 cas sur 8 • Probabilité de gagner: 3/4.
Y a-t-il de meilleures stratégies? Réponse: NON! • Y a-t-il d’autres stratégies donnant la probabilité de gagner 3/4? Réponse: OUI!
Pile ou Face • Lancer une pièce de monnaie trois fois de suite • Il y a 8 résultats possibles: (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1).
Si vous pariez que le résultat sera (0,1,0), vous avez : • Les trois valeurs justes si la suite est (0,1,0). • Exactement deux bonnes valeurs si c’est (0,1,1), (0,0,0) ou (1,1,0), • Exactement une bonne valeur si c’est (0,0,1), (1,1,1)ou (1,0,0), • Aucune bonne valeur pour (1,0,1).
Quelque soit le résultat final (8 possibilités), chaque pari a les trois valeurs justes dans 1 cas a exactement deux valeurs justes dans 3 cas a exactement une valeur juste dans 3 cas has zéro valeur juste dans 1 cas
But: être sûr d’avoir au moins deux valeurs justes • Évidemment, un seul pari ne suffit pas • Suffit-il de deux paris? On rappelle qu’il y a 8 résultats possibles et que chaque pari a au moins 2 réponses justes dans 4 cas.
Réponse: OUI, deux paris suffisent! Par exemple si on parie (0,0,0) et (1,1,1) dans tous les cas, l’un des deux chiffres 0et 1 sortira plus d’une fois. Donc un (et seulement un) des deux paris aura deux ou trois résultats justes.
Autres solutions: • On choisit deux tickets n’ayant pas de chiffre commun, comme (0 0 1) et (1 1 0) Ou bien le résultat est l’un de ces deux, ou bien il a exactement un chiffre au même endroit en commun avec l’un des deux et deux en commun avec l’autre.
Revenons au cas de (0,0,0) et (1,1,1) Les 8 mots formées de 3 lettres 0 et 1 Se répartissent en deux groupes: celles qui ont deux ou trois 0 et celles qui ont deux ou trois 1
(0,0,1) (0,0,0) (0,1,0) (1,0,0) (1,1,0) (1,1,1) (1,0,1) (0,1,1)