Automate à jetons

Un article de Wikipédia, l'encyclopédie libre.

En informatique théorique, et notamment en théorie des automates, un automate à jetons (en anglais « pebble automaton ») est un type d'automate d'arbres. Les automates à jetons constituent généralisation des automates cheminant dans les arbres ; l'automate est autorisé à employer un nombre fini de « jetons » qui sont utilisés pour marquer son passage dans un nœud. Ce modèle d'automate est plus puissant que les automates cheminant ordinaires, mais toujours encore moins puissant que les automates d'arbres. Les automates à jetons, introduits par Engelfriet et Hoogeboom, sont censés pallier un défaut d'automate cheminant, qui « se perd facilement dans un arbre » (« easily gets lost in a tree ») parce que « dans un arbre binaire, quand tous les nœuds ont la même étiquette, tous les nœuds se ressemblent » (« in a binary tree of which all internal nodes have the same label, all nodes look pretty much the same »)[1].

Description[modifier | modifier le code]

Un automate à jetons est un automate cheminant doté d'un ensemble fini supplémentaire de « jetons », identifiés avec les entiers 1, 2, ... , n. En plus de ses actions usuelles, un automate peut déposer un jeton sur le nœud qu'il est en train de visiter, enlever un jeton de ce nœud, et poser une question du type « est-ce que le i-ième jeton est présent sur le nœud courant » ? L'empilement des jetons est assujetti à des restrictions importantes concernant l'ordre dans lequel les jetons peuvent être déposés ou enlevés : le jeton de numéro i ne peut être posé que si les jetons des numéros de 1 à i-1 sont déjà dans l’arbre; symétriquement, le i-ième jeton ne peut être enlevé que si les jetons de numéro i+1 à n ne figurent pas dans l'arbre. En d'autres termes, le jeton enlevé doit être celui de plus grand numéro présent, le jeton déposé celui de plus petit numéro disponible. Sans ces restrictions, l'automate perd un certain nombre de ses propriétés qui deviennent indécidables, et les langages reconnus excèdent les langages réguliers d'arbres.

Classes de langages[modifier | modifier le code]

La classe de langages reconnus par des automates à n jetons déterministes (resp. non déterministes) est notée (resp. ). On pose

et .

On note enfin TWA la classe des langages reconnus par les automates cheminant ordinaires.

Propriétés[modifier | modifier le code]

  • En ce qui concerne la relation entre automates cheminant et automates à jetons, on sait qu'il existe un langage reconnu par un automate déterministe à 1 jeton qui n'est pas reconnu par un automate cheminant ; ceci implique soit que ou alors que ces deux classes sont incomparables, ce qui constitue un problème ouvert.
  • Les automates à jetons sont strictement moins puissants que les automates d'arbres : . Il existe une variante, les automates à jetons invisibles, qui ont la même puissance d'expression que les automates d'arbres[2].
  • La hiérarchie des automates à jetons est stricte : pour tout n, on a et .

Plusieurs problèmes sont ouverts[2] :

  • on ne sait pas s'il est possible de déterminiser un automate à jetons, donc si  ;
  • on ne sait pas non plus si les langages à jetons sont fermés par complémentation. Pour les langages reconnus par automates à jetons déterministes, la réponse est positive[3].

Il existe une extension des expressions régulières, appelées des expressions chenilles (en anglais « caterpillars »), introduite pour la description des syntaxes d'arbres par Anne Brüggemann-Klein et Derick Wood[4]. Les expressions chenilles décrivent exactement les langages reconnus par automates cheminant, et les langages reconnus par automates à jetons sont décrits par des expressions chenilles augmentées d'une opération de coupure[2].

Automates et logique[modifier | modifier le code]

Les automates à jetons possèdent un caractérisation intéressante en termes de logique. On note l'ensemble des propriétés des arbres décrites par la logique du premier ordre avec fermeture transitive, et les mêmes propriétés pour la fermeture transitive positive. On peut montrer que et que , en d'autres termes, les langages reconnus par automates à jetons sont exactement ceux que l'on peut exprimer dans la logique du premier ordre avec fermeture transitive positive[5].

Notes et références[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • Alfred V. Aho et Jeffrey D. Ullman, « Translations on a context free grammar », Information and Control, vol. 19, no 5,‎ , p. 439–475 (DOI 10.1016/S0019-9958(71)90706-6, lire en ligne)
  • Joost Engelfriet et Hendrik Jan Hoogeboom, « Tree-Walking Pebble Automata », dans J. Karhumäki, H. Maurer, G. Păun et G. Rozenberg (éditeurs), Jewels are Forever, Springer Science, (DOI 10.1007/978-3-642-60207-8_7, lire en ligne), p. 72-83
  • Anne Brüggemann-Klein et Derick Wood, « Caterpillars, context, tree automata and tree pattern matching », dans G. Rozenberg et W. Thomas (éditeurs), Developments in Language Theory 1999, World Scientific, , p. 270-285,
  • Anne Brüggemann-Klein et Derick Wood, « Caterpillars. A context specification technique », Markup Languages, vol. 2, no 1,‎ , p. 81-106
  • Mikołaj Bojańczyk, Mathias Samuelides, Thomas Schwentick et Luc Segoufin, « Expressive Power of Pebble Automata », dans M. Bugliesi, B. Preneel, V. Sassone, I. Wegener (éditeurs), Proceedings ICALP 2006, Venise, Springer, coll. « Lecture Notes in Computer Science, Volume 4051 », (DOI 10.1007/11786986_15, lire en ligne), p. 157-168
  • Anca Muscholl, Mathias Samuelides et Luc Segoufin, « Complementing deterministic tree-walking automata », Information Processing Letters, vol. 99, no 1,‎ , p. 33-39.
  • Mathias Samuelides et Luc Segoufin, « Complexity of Pebble Tree-Walking Automata », dans E. Csuhaj-Varjú et Z. Ésik (éditeurs), Proceedings FCT 2007, Springer, coll. « Lecture Notes in Computer Science, Volume 4639 », (DOI 10.1007/978-3-540-74240-1_40, lire en ligne), p. 458-469
  • Mikołaj Bojańczyk, « Tree-walking automata ».

Articles liés[modifier | modifier le code]