AccueilđŸ‡«đŸ‡·Chercher

Automate séquentiel

En informatique thĂ©orique, et notamment en thĂ©orie des automates, un automate sĂ©quentiel est un automate fini dĂ©terministe avec sorties. C'est un cas particulier d'un transducteur fini, oĂč l'automate des entrĂ©es est dĂ©terministe. Une sous-famille des automates sĂ©quentiels est celle des automates sĂ©quentiels dits purs, oĂč certaines modalitĂ©s de calcul sont simplifiĂ©es. Lorsque de plus les sorties sont des lettres, un automate sĂ©quentiel est un automate de Mealy. Les transductions rationnelles rĂ©alisĂ©es par les automates sĂ©quentiels sont des fonctions (partielles) appelĂ©es fonctions sĂ©quentielles.

DĂ©finition informelle

Les automates sĂ©quentiels sont des automates finis dĂ©terministes qui produisent un mot de sortie. Un tel automate peut rĂ©aliser certaines transformations comme l’addition des entiers dans une certaine reprĂ©sentation, la multiplication par une constante ou divers codages et dĂ©codages.

Dans un automate sĂ©quentiel, comme dans une transducteur fini, les transitions sont Ă©tiquetĂ©es par des couples formĂ©s d’une lettre d'entrĂ©e et d’un mot de sortie. De plus l’état initial est Ă©tiquetĂ© par un mot appelĂ© le « prĂ©fixe initial » et chaque Ă©tat porte de plus un mot qui est la valeur d'une « fonction terminale ». Le mot de sortie calculĂ© pour un mot d’entrĂ©e s’obtient en lisant l’entrĂ©e depuis l’état initial et en produisant les sorties spĂ©cifiĂ©es par les transitions ; le mot formĂ© par ces sorties est prĂ©fixĂ© par le prĂ©fixe initial et suffixĂ© par le mot donnĂ© pour l’état final atteint. Si la fonction terminale n'est pas dĂ©finie pour cet Ă©tat, aucune sortie n'est produite. Lorsque le prĂ©fixe initial et la fonction terminale sont triviales, l'automate est un automate sĂ©quentiel pur.

La fonction rĂ©alisĂ©e par un automate sĂ©quentiel est une fonction sĂ©quentielle. C'est un cas particulier de transduction rationnelle fonctionnelle. Lorsque l'automate sous-jacent est pur, la fonction rĂ©alisĂ©e est elle-mĂȘme dite pure. Un automate sĂ©quentiel pur est un transducteur fini particulier : l’automate d'entrĂ©e sous-jacent est dĂ©terministe (mais pas nĂ©cessairement complet).

Exemple

Voici un exemple[1] pour Ă©clairer le concept :

Un premier automate séquentiel.

Cet automate a deux états ; l'état initial 1 a pour préfixe initial 11 ; la fonction terminale associe à l'état 1 le mot vide et à l'état 2 le mot 00. L'automate est déterministe et incomplet. La lecture du mot fait passer l'automate progressivement par les états 1,2,2,1 et produit les sorties : ; préfixée de 11, concaténées et suivies de 00, on obtient 110100100. La fonction réalisée par cet automate prend donc, pour le d'entrée , la valeur 110100100.

DĂ©finition

On définit d'abord un automate séquentiel pur[1] : un automate séquentiel pur est un tuple

oĂč

  • est un ensemble fini d'Ă©tats,
  • et sont les alphabets finis d'entrĂ©e et de sortie respectivement
  • est l'Ă©tat initial
  • est la fonction partielle de transition
  • est la fonction partielle de sortie

Les fonctions de transition et de sortie ont le mĂȘme domaine de dĂ©finition . On note l'absence de dĂ©finition explicite d'Ă©tats terminaux : un Ă©tat est terminal s'il appartient au domaine de dĂ©finition de la fonction de sortie

Un automate sĂ©quentiel est un tuple oĂč est un automate sĂ©quentiel pur, m∈B∗ est le prĂ©fixe initial et est une fonction (partielle), appelĂ©e la fonction terminale.

La fonction de transition s’étend Ă  en posant et, si et sont dĂ©finies,

.

La fonction de sortie s’étend Ă  en posant et, si et sont dĂ©finies,

.

Cette derniÚre formule exprime simplement que, lors d'un cheminement dans l'automate, les sorties des transitions sont concaténées à la suite.

La fonction réalisée par un automate séquentiel pur est l'application (partielle) définie sur un mot si est définie, et qui prend la valeur

. La fonction réalisée par un automate séquentiel pur est l'application (partielle)

définie sur un mot si est définie, et qui prend la valeur

.

La valeur est donc le mot obtenu en concaténant le préfixe initial avec le mot produit dans l'automate pur, suivi de la valeur que prend la fonction terminale sur l'état d'arrivée (si cet état est atteint et si la fonction terminale est définie sur cet état).

La fonction rĂ©alisĂ©e par un automate sĂ©quentiel pur est appelĂ©e une fonction sĂ©quentielle pure. De mĂȘme, la fonction rĂ©alisĂ©e par un automate sĂ©quentiel est appelĂ©e une fonction sĂ©quentielle.

Exemples

Exemples de fonctions séquentielles pures

Morphisme

Tout morphisme peut ĂȘtre rĂ©alisĂ© par un automate sĂ©quentiel pur Ă  un seul Ă©tat

Remplacer une suite d'espaces par un seul espace

Par exemple, le mot ab———a—a est transformĂ© en ab—a—a.

Codage et décodage
Automate séquentiel de décodage d'un code préfixe.

Un codage défini par

comme tout morphisme, peut ĂȘtre rĂ©alisĂ© par un automate sĂ©quentiel pur Ă  un seul Ă©tat. Le dĂ©codage est possible par un automate sĂ©quentiel pur si le code est prĂ©fixe, et plus prĂ©cisĂ©ment le dĂ©codage est une fonction sĂ©quentielle si et seulement si le code est Ă  dĂ©lai de dĂ©chiffrage fini[2]. Ici, l'ensemble est bien un code prĂ©fixe et un automate sĂ©quentiel pur de dĂ©codage existe, donnĂ© sur la figure ci-contre[1]. Pour le mot

010101101000101101010110

le décodage donne

Exemples de fonctions séquentielles

Fonction +1

Une fonction qui ajoute 1 au nombre écrit en binaire retournée (bit le plus faible à gauche), par exemple

, et aussi .
Additionneur binaire
Automate séquentiel d'addition en binaire.

Un additionneur binaire prend en argument deux entiers naturels écrits en binaire, et produit en sortie la suite binaire qui représente la somme des deux entiers. Les nombres en arguments sont écrits comme couples de bits, donc sur l'alphabet produit , le plus court des deux nombres binaires est éventuellement complété par des 0 ; l'écriture se fait avec le bit de plus petit poids à gauche[3]. Les deux états 0 et 1 de l'automate correspondent à l'absence respectivement la présence d'une retenue. Par exemple, pour , dont l'écriture binaire est 01101 et , dont l'écriture binaire complétée par un 0 à droite est 10110, la lecture des couples (0,1)(1,0)(1,1)(0,1)(1,0) fait passer successivement par les états 0,0,0,1,1,1; les lettres émises sont 1,1,0,0,0; la fonction de sortie fournit un 1 supplémentaire correspondant à la retenue, de sorte que le mot obtenu est 110001 qui est l'écriture binaire de .

Autres exemples

ModĂšle chĂšvre chou loup
  • Multiplicateur par une constante, division avec reste par une constante
  • Multiplication ou division de polynĂŽmes Ă  coefficients dans un corps fini par un autre fixe
  • Analyse lexicale
  • ModĂ©lisation de certains systĂšmes finis, comme la fameuse devinette du transport d'une chĂšvre, d'un chou et d'un loup.

Caractérisations des fonctions séquentielles

La caractérisation des fonctions séquentielles et fonctions séquentielles pures fait appel à des notions topologiques :

  • La distance gĂ©odĂ©sique[1] ou distance prĂ©fixe[4] entre deux mots u et v est le nombre oĂč est le plus long prĂ©fixe commun de et . Si on voit les mots comme Ă©tiquetant les arcs des chemins dans un arbre, le plus long prĂ©fixe commun et plus petit ancĂȘtre commun (« least common ancestor » ou « lca » en anglais). Par exemple, pour et , on a , donc . C'est la somme des longueurs des suffixes de et qui restent quand on leur enlĂšve leur prĂ©fixe commun.
  • Une fonction est lipschitzienne s’il existe un tel que pour tout

ThĂ©orĂšme (Ginsburg et Rose (1966)[5]) — Une fonction est une fonction sĂ©quentielle pure si et seulement si

  1. est lipschitzienne ;
  2. préserve les préfixe (si est préfixe de , alors est préfixe de ;
  3. préserve les langages réguliers.

ThĂ©orĂšme (Choffrut (1979)[6]) — Une fonction dont le domaine de dĂ©finition est prĂ©fixiel (fermĂ© par prĂ©fixe) est une fonction sĂ©quentielle si et seulement si

  1. est lipschitzienne ;
  2. préserve les langages réguliers.

Un autre résultat caractérise des fonctions séquentielles parmi les fonctions rationnelles, c'est-à-dire les transductions rationnelles qui sont des fonctions. Pour cela, on dit qu'une fonction est uniformément bornée si, pour tout entier , il existe un entier tel que pour tous dans le domaine de définition de .

ThĂ©orĂšme[4] — Soit une fonction rationnelle. Les conditions suivantes sont Ă©quivalentes :

  • est sĂ©quentielle ;
  • est lipschitzienne ;
  • est uniformĂ©ment bornĂ©e.

Propriétés

Les fonctions séquentielles (pures) sont fermées par composition. En d'autres termes, le composé de deux fonctions séquentielles (pures) est encore une fonction séquentielle (pure).

Il est décidable si une fonction rationnelle est séquentielle (pure).

Note historique

Le terme de sequential transducer apparaĂźt dĂ©jĂ  dans les travaux de Seymour Ginsburg sous le nom de « generalized sequential machine (gsm) »[7]. Un long chapitre est consacrĂ© Ă  ces machines et fonctions dans le traitĂ© de Samuel Eilenberg. Marcel-Paul SchĂŒtzenberger[8] appelle sous-sĂ©quentielle une fonction sĂ©quentielle, et sĂ©quentielle une fonction pure, et ne s'Ă©carte ainsi pas des dĂ©finitions de ses prĂ©dĂ©cesseurs. Jacques Sakarovitch[4] emploie la terminologie utilisĂ©e ici, reprise Ă  sa suite aussi par Jean-Éric Pin[3] - [2].

Notes et références

Bibliographie

  • [Pin 2006] Jean-Eric Pin, chap. I/9 « Algorithmique et Programmation. Automates finis », dans Jacky Akoka et Isabelle Comyn-Wattiau (Ă©diteurs), EncyclopĂ©die de l’informatique et des systĂšmes d’information, Paris, Vuibert, (ISBN 978-2711748464, HAL hal-00143940/document), p. 966-976
  • [Pin 2013] Jean-Éric Pin, « Petit cours sur les fonctions sĂ©quentielles », Sainte-Marie de RĂ©, LIAFA, CNRS et UniversitĂ© Denis Diderot, (consultĂ© le )
  • [Sakarovitch 2003] Jacques Sakarovitch, ÉlĂ©ments de thĂ©orie des automates, Vuibert, , 816 p. (ISBN 978-2-7117-4807-5)
  • [Monmege et Schmitz 2011] Benjamin Monmege et Sylvain Schmitz, « Notes de rĂ©vision : Automates et langages », PrĂ©paration Ă  l’agrĂ©gation de mathĂ©matiques 2011–2012, LSV, ENS Cachan & CNRS, (consultĂ© le ).
  • [SchĂŒtzenberger 1977] Marcel-Paul SchĂŒtzenberger, « Sur une variante des fonctions sĂ©quentielles », Theoretical Computer Science, vol. 4, no 1,‎ , p. 47-57 (ISSN 0304-3975, DOI 10.1016/0304-3975(77)90055-X, lire en ligne, consultĂ© le ).
  • [Eilenberg 1974] Samuel Eilenberg, Automata, Languages and Machines, Vol. A, Academic Press, coll. « Pure and Applied Mathematics » (no 58), , xvi+451 (ISBN 978-0-12-234001-7).
  • [Ginsburg 1966] Seymour Ginsburg, The Mathematical Theory of Context-free Languages, New York, McGraw-Hill, .
  • [Choffrut 1979] Christian Choffrut, « A generalization of Ginsburg and Rose's characterization of G-S-M mappings », dans ICALP 1979: Automata, Languages and Programming, Springer, coll. « Lecture Notes in Computer Science » (no 71), (ISSN 0302-9743, DOI 10.1007/3-540-09510-1_8), p. 88–103.
  • [Ginsburg et Rose 1966] Seymour Ginsburg et Gene F. Rose, « A characterization of machine mappings », Can. J. Math., vol. 18,‎ , p. 381–388 (MR 0191763).

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.