AccueilđŸ‡«đŸ‡·Chercher

Algorithme de Sardinas-Patterson

En théorie des codes, l'algorithme de Sardinas-Patterson permet de déterminer si une partie d'un monoïde libre est un code en temps polynomial. Il est nommé d'aprÚs August Sardinas et George Patterson, qui le publiÚrent dans un article de 1953[1].

Objectif

On considÚre un monoïde libre . On appelle code à longueur variable ou code une partie de telle que le sous-monoïde engendré est libre. L'algorithme de Sardinas-Patterson prend en entrée un alphabet et une partie finie de et détermine si est un code.

L'objectif est de pouvoir transcrire un mot dans un alphabet en un mot dans l'alphabet en associant Ă  chaque lettre de un nombre variable de lettres de , Ă©tant alors l'ensemble des codages des lettres de . On cherche alors Ă  ce que ce code ne soit pas ambiguĂ«. Par exemple, en code Morse, A est codĂ© par .-, E par . et F par ..-.. Mais alors, ..-. peut ĂȘtre interprĂ©tĂ© comme EAE ou comme F. Le code Morse nĂ©cessite ainsi l'usage d'un autre caractĂšre sĂ©parant les lettres[2].

Description de l'algorithme

Si et sont deux parties de , on pose . On note le mot vide. L'algorithme calcule les éléments de la suite d'ensembles définie par récurrence :

  • et
  • pour .

Si lors du calcul, on obtient un égal à un des précédents, alors est un code. Si l'un des contient , alors n'est pas un code[2].

Terminaison

Chacun des est une partie de l'ensemble des facteurs des Ă©lĂ©ments de . Or est fini, donc l'ensemble des facteurs de ses Ă©lĂ©ments est fini (dans un monoĂŻde libre, chaque Ă©lĂ©ment ayant un nombre fini de facteurs), donc l'ensemble des parties de cet ensemble est fini. Par consĂ©quent, des termes de la suite se rĂ©pĂštent. L'algorithme s'arrĂȘte donc nĂ©cessairement[2].

Correction

La correction de l'algorithme s'Ă©nonce comme suit.

ThéorÚme. n'est pas un code si, et seulement si l'un des contient .

DĂ©monstration.

(⇒) Supposons que n'est pas un code. Si , alors . Sinon, on dispose de et Ă©gaux avec et deux suites d'Ă©lĂ©ments de telles que . On peut voir ce mot comme un segment, par exemple :

A0B0-----------------A1--------B1---------B2-----A2-----------------B3---------A3B4

Les lettres en majuscules notent des positions dans le mot, de maniĂšre que , et ainsi de suite et de mĂȘme pour les , avec les crochets notant le facteur dĂ©limitĂ© par les deux positions. ExĂ©cutons l'algorithme sur cet exemple : comme et (avec ) sont dans , alors est dans . Ensuite, comme est dans , on a . Ensuite, puis . On peut ainsi faire augmenter de 1 l'indice de la lettre de gauche Ă  chaque Ă©tape, en utilisant le terme de droite de l'union si l'ordre de et change dans les crochets, le terme de gauche sinon. Finalement, on arrive au mĂȘme point Ă  gauche et Ă  droite : et on obtient le critĂšre voulu. Comme la suite des est dĂ©finie par rĂ©currence, elle ne peut pas se rĂ©pĂ©ter avant d'inclure .

(⇐) RĂ©ciproquement, supposons pour un entier (le cas est immĂ©diat). Par exemple, on a avec et . Alors . De mĂȘme, on a par exemple , et donc . En dĂ©veloppant les obtenus jusqu'Ă  arriver dans , on obtient une Ă©galitĂ© donc chaque membre est une concatĂ©nation d'Ă©lĂ©ments de . Par construction, le dernier mot de ces deux suites est diffĂ©rent : l'un est , l'autre en est un suffixe strict. On a donc obtenu un mĂȘme mot en concatĂ©nant deux suites diffĂ©rentes de : ce dernier n'est donc pas un code[3].

Notes et références

  1. (en) Sardinas, August Albert and Patterson, George W, « A necessary and sufficient condition for unique decomposition of coded messages », Proceedings of the Institute of Radio Engineers,‎ , p. 425-425 (lire en ligne)
  2. (en) Howie, John M. (John Mackintosh), Fundamentals of semigroup theory, Oxford, Clarendon, , 351 p. (ISBN 0-19-851194-9 et 978-0-19-851194-6, OCLC 32969870, lire en ligne)
  3. (en) Bandyopadhyay, G, « A simple proof of the decipherability criterion of Sardinas and Patterson », Information and Control,‎ , p. 331-336 (lire en ligne)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.