Automate de Parikh

Un automate de Parikh.

En informatique théorique, et notamment en théorie des automates, un automate de Parikh est un automate fini non déterministe dont les transitions comportent des vecteurs d’entiers naturels qui permettent de tester si la somme des vecteurs d'un calcul satisfait une contrainte semi-linéaire. L'intérêt de cette famille d'automates est qu'elle possède d'autres caractérisations équivalentes, sous forme de machine de Turing et sous une forme plus algébrique, dite RCM.

Description informelle

Un automate de Parikh est un automate fini dont les transitions sont étiquetées par des couples ( a , v ) {\displaystyle (a,v)} , où a {\displaystyle a} est une lettre de l’alphabet d’entrée et v {\displaystyle v} est un vecteur de N d {\displaystyle \mathbb {N} ^{d}} , pour un entier d {\displaystyle d} . Un chemin est une suite

q 0 a 1 , v 1 q 1 a 2 , v 2 q n 1 a n , v n q n {\displaystyle q_{0}\xrightarrow {a_{1},v_{1}} q_{1}\xrightarrow {a_{2},v_{2}} \cdots q_{n-1}\xrightarrow {a_{n},v_{n}} q_{n}}

de transitions qui calcule le mot a 1 a n {\displaystyle a_{1}\cdots a_{n}} et le vecteur v 1 + + v n {\displaystyle v_{1}+\cdots +v_{n}} , où la somme est faite composante par composante. La condition d’acceptation est donnée par un ensemble d’états terminaux et un ensemble semi-linéaire. Un chemin est un calcul réussi si, partant de l’état initial, il atteint un état final et si son vecteur appartient à l’ensemble semi-linéaire donné.

Les automates de Parikh ont été introduits en 2003 dans l’étude de la logique du second ordre[1]. Ces automates acceptent les mêmes langages formels que les machines de Turing à compteurs à renversements bornées (en anglais « reversal bounded »)[2]. Cette famille coïncide à son tour avec une classe définie par Massazza sous le nom de classe RCM[3].

Exemple

L’automate de l'introduction[4], avec la contrainte { ( n 1 , n 2 , n 1 + n 2 n 1 , n 2 0 } {\displaystyle \{(n_{1},n_{2},n_{1}+n_{2}\mid n_{1},n_{2}\geq 0\}} , accepte l’ensemble des mots w {\displaystyle w} sur l’alphabet { a , b , c } {\displaystyle \{a,b,c\}} qui commence et finissent par un a {\displaystyle a} , et tels que | w | a + | w | b = | w | c {\displaystyle |w|_{a}+|w|_{b}=|w|_{c}} . `

Automates de Parikh

Ensemble semi-linéaire

Article détaillé : théorème de Parikh.

Un sous-ensemble de N d {\displaystyle \mathbb {N} ^{d}} est linéaire s'il est de la forme

u 0 + u 1 N + + u k N = { u 0 + t 1 u 1 + + t m u m t 1 , , t m N } {\displaystyle u_{0}+u_{1}\mathbb {N} +\cdots +u_{k}\mathbb {N} =\{u_{0}+t_{1}u_{1}+\ldots +t_{m}u_{m}\mid t_{1},\ldots ,t_{m}\in \mathbb {N} \}}

pour des vecteurs u 0 , , u m {\displaystyle u_{0},\ldots ,u_{m}} . C'est donc l'ensemble des combinaisons linéaires, à coefficients entiers naturels, d'un ensemble fini de vecteurs de N d {\displaystyle \mathbb {N} ^{d}} , auxquels est ajouté le vecteur u 0 {\displaystyle u_{0}} . Par exemple, pour d = 3 {\displaystyle d=3} , l'ensemble ( 1 , 0 , 0 ) + ( 1 , 1 , 1 ) N = { ( n + 1 , n , n ) | n N } {\displaystyle (1,0,0)+(1,1,1)\mathbb {N} =\{(n+1,n,n)|n\in \mathbb {N} \}} est un ensemble linéaire très simple.

Un sous-ensemble de N d {\displaystyle \mathbb {N} ^{d}} est semi-linéaire s'il est une union finie de parties linéaires. Tout ensemble semi-linéaire possède une représentation inambigue, où les unions sont disjointes et où les écritures comme combinaisons linéaires sont uniques.

Définition des automates

Un automate de Parikh de dimension d 1 {\displaystyle d\geq 1} est un tuple A = ( Σ , Q , q I , F , C , Δ ) {\displaystyle {\mathcal {A}}=(\Sigma ,Q,q_{I},F,C,\Delta )} , où

  • Σ {\displaystyle \Sigma } est l'alphabet,
  • Q {\displaystyle Q} est l'ensemble d'états
  • q I Q {\displaystyle q_{I}\in Q} est l'état initial
  • F Q {\displaystyle F\subset Q} est l’ensemble des états terminaux
  • C N d {\displaystyle C\subset \mathbb {N} ^{d}} est l'ensemble des contraintes semi-linéaires
  • Δ Q × ( Σ × N d ) × Q {\displaystyle \Delta \subset Q\times (\Sigma \times \mathbb {N} ^{d})\times Q} est la relation de transition.

Un chemin dans l'automate est une suite

q 0 a 1 , v 1 q 1 a 2 , v 2 q n 1 a n , v n q n {\displaystyle q_{0}\xrightarrow {a_{1},v_{1}} q_{1}\xrightarrow {a_{2},v_{2}} \cdots q_{n-1}\xrightarrow {a_{n},v_{n}} q_{n}}

où, pour 1 i n {\displaystyle 1\leq i\leq n} , le triplet ( q i 1 ) , ( a i , v i q i ) {\displaystyle (q_{i-1),(a_{i},v_{i}}q_{i})} est dans Δ {\displaystyle \Delta } . L'étiquette de ce chemin est le couple ( a 1 a n , v 1 + + v n ) {\displaystyle (a_{1}\cdots a_{n},v_{1}+\cdots +v_{n})} . Le chemin est réussi ou acceptant si q 0 = q I {\displaystyle q_{0}=q_{I}} , q n F {\displaystyle q_{n}\in F} et si de plus le vecteur v 1 + + v n {\displaystyle v_{1}+\cdots +v_{n}} est dans C {\displaystyle C} . Dans ce cas, le mot w = a 1 a n {\displaystyle w=a_{1}\cdots a_{n}} est accepté ou reconnu par l'automate A {\displaystyle {\cal {A}}} . Le langage reconnu par A {\displaystyle {\cal {A}}} est noté L ( A ) {\displaystyle L({\cal {A)}}} .

Automates inambigus

Un automate de Parikh faiblement inambigu pour les contraintes n 1 = n 2 + n 3 {\displaystyle n_{1}=n_{2}+n_{3}} et n 2 < n 3 {\displaystyle n_{2}<n_{3}}

Un automate de Parikh est faiblement inambigu[4] si, pour tout mot, il existe au plus un chemin réussi[5]. L'automate de la figure ci-contre est faiblement inambigu. Il a pour ensemble semi-linéaire de contraintes l'ensemble C = { ( n 1 , n 2 , n 3 ) n 1 = n 2 + n 3  et  n 2 < n 3 } {\displaystyle C=\{(n_{1},n_{2},n_{3})\mid n_{1}=n_{2}+n_{3}{\text{ et }}n_{2}<n_{3}\}} . Si on oublie la partie semi-linéaire, l'automate sous-jacent, qui reconnait le langage c ( a + b ) + {\displaystyle c^{*}(a+b)^{+}} , est en revanche un automate fini ambigu.

La famille des langages reconnus par des automates de Parikh faiblement inambigus est fermée par intersection ; la fermeture par union ou par complémentation est une question encore ouverte[4]. Il existe des langages inhéremment faiblement inambigus au sens que tout automate de Parikh les reconnaissants est faiblement ambigu[4].

Caractérisation par machines de Turing

Une machine de Turing à k {\displaystyle k} compteurs est une machine de Turing qui possède, en plus de ses attributs usuels, un ensemble de k {\displaystyle k} compteurs[2]. La machine, dans l'état q {\displaystyle q} et en lisant une lettre a {\displaystyle a} sur sa bande d'entrée, peut examiner ses compteurs, et incrémenter ou décrémenter certains de ses compteurs. La machine ne connaît pas la valeur de ses compteurs mais sait tester s'ils sont nuls ou non. Une machine de Turing est à renversements bornés (en anglais « reversal bounded ») si sa tête de lecture ne peut changer de direction qu'un nombre borné de fois ; plus précisément, elle est ( m , n ) {\displaystyle (m,n)} -bornée si elle peut changer de direction au plus m {\displaystyle m} fois, et si chaque compteur ne peut alterner l'incrémentation et la décrémentation au plus n {\displaystyle n} fois. Une machine de Turing, à k {\displaystyle k} compteurs et ( m , n ) {\displaystyle (m,n)} -bornée est inambigue si, de plus, chaque mot possède au plus un calcul acceptant.

Théorème — Les automates de Parikh reconnaissent les mêmes langages que les machines de Turing à compteurs et à renversements bornés[6],[1].

L'égalité de ces familles de langages n'est plus vraie dans le cas déterministe[6]. En revanche, la version inambigue est valide :

Théorème — Les automates de Parikh faiblement inambigus reconnaissent les mêmes langages que les machines de Turing à compteurs et à renversements bornés inambigus[4].

Langages RCM

Paolo Massazza[3] a introduit en 1993 une famille de langages appelée RCM[7]. La construction rappelle, mais de loin, la représentation des langages algébriques par langages de Dyck. Ces langages sont définis comme suit.

On se donne un alphabet A = { a 1 , , a d } {\displaystyle A=\{a_{1},\ldots ,a_{d}\}} totalement ordonné avec a 1 < < a d {\displaystyle a_{1}<\cdots <a_{d}} . À tout ensemble semi-linéaire C {\displaystyle C} de dimension d {\displaystyle d} on associe le langage [ C ] = { w A ( | w | a 1 , , | w | a d ) C } {\displaystyle [C]=\{w\in A^{*}\mid (|w|_{a_{1}},\ldots ,|w|_{a_{d}})\in C\}} . Ce langage est l'ensemble des mots dont les nombres d'occurrences de chaque lettre satisfont les contraintes de C {\displaystyle C} . Si par exemple C 0 = { ( n , m , n , m ) | n , m 0 } {\displaystyle C_{0}=\{(n,m,n,m)|n,m\geq 0\}} et l'alphabet est a < b < c < d {\displaystyle a<b<c<d} , le langage [ C 0 ] {\displaystyle [C_{0}]} est l'ensemble de tous les mots sur ces 4 lettres qui ont autant d'occurrences de a {\displaystyle a} que de c {\displaystyle c} et autant de b {\displaystyle b} que de d {\displaystyle d} .

Par définition, un langage L {\displaystyle L} sur un alphabet Σ {\displaystyle \Sigma } appartient à la famille RCM s'il existe un langage rationnel R {\displaystyle R} sur A = { a 1 , , a d } {\displaystyle A=\{a_{1},\ldots ,a_{d}\}} , un ensemble semi-linéaire C N d {\displaystyle C\subset \mathbb {N} ^{d}} et un morphisme préservant la longueur μ : A Σ {\displaystyle \mu :A^{*}\to \Sigma ^{*}} qui est injectif sur R [ C ] {\displaystyle R\cap [C]} tels que

L = μ ( R [ C ] ) {\displaystyle L=\mu (R\cap [C])} .

Par exemple, le langage L a b a b = { a n b m a n b m | n , m 0 } {\displaystyle L_{abab}=\{a^{n}b^{m}a^{n}b^{m}|n,m\geq 0\}} est dans la famille RCM parce qu'il s'écrit sous la forme L a b a b = μ ( R [ C 0 ] ) {\displaystyle L_{abab}=\mu (R\cap [C_{0}])} , où C 0 {\displaystyle C_{0}} est l'ensemble semi-linaire défini ci-dessus et μ {\displaystyle \mu } identifie a {\displaystyle a} et c {\displaystyle c} respectivement b {\displaystyle b} et d {\displaystyle d} .

Le lien entre les langages RCM est les automates de Parikh est le résultat suivant :

Théorème — Les automates de Parikh faiblement inambigus reconnaissent exactement les langages de la famille RCM[4].

Notes et références

  1. a et b Klaedtke et Rueß 2003.
  2. a et b Ibarra 1978.
  3. a et b Massazza 1993.
  4. a b c d e et f Bostan et al. 2020.
  5. Il existe aussi une notion d'automate de Parikh inambigu, définie dans (Cadilhac, Finkel et McKenzie 2013) mais qui est strictement plus forte. La définition ci-dessus correspond à la notion usuelle.
  6. a et b Cadilhac, Finkel et McKenzie 2012
  7. Le nom vient de que ces langages sont définis à l'aide de langages réguliers, de contraintes semi-linéaires et de morphismes.

Bibliographie

  • Alin Bostan, Arnaud Carayol, Florent Koechlin et Cyril Nicaud, « Weakly-unambiguous Parikh automata and their link to holonomic series », 47th International Colloquium on Automata, Languages, and Programming,‎ , p. 114:1-114:16 (DOI 10.4230/LIPIcs.ICALP.2020.114, lire en ligne, consulté le ).
  • Michaël Cadilhac, Alain Finkel et Pierre McKenzie, « Affine Parikh automata », RAIRO Theor. Inf. and Applic., vol. 46, no 4,‎ , p. 511-545 (DOI 10.1051/ita/2012013).
  • Michaël Cadilhac, Alain Finkel et Pierre McKenzie, « Unambiguous constrained automata », Int. J. Found. Comput. Sci., vol. 24, no 7,‎ , p. 1099-1116 (DOI 10.1142/S0129054113400339).
  • Giusi Castiglione et Paolo Massazza, « On a class of languages with holonomic generating functions », Theoretical Computer Science, vol. 658,‎ , p. 74–84 (DOI 10.1016/j.tcs.2016.07.022).
  • Thomas Colcombet, « Unambiguity in automata theory », dans Jeffrey Shallit et Alexander Okhotin, Descriptional Complexity of Formal Systems - 17th International Workshop, Springer, coll. « LectureNotes in Computer Science » (no 9118), (DOI 10.1007/978-3-319-19225-3_1), p. 3–18.
  • Oscar H. Ibarra, « Reversal-bounded multicounter machines and their decision problems », Journal of the ACM, vol. 25, no 1,‎ , p. 116-133 (DOI 10.1145/322047.322058).
  • Felix Klaedtke et Harald Rueß, « Monadic second-order logics with cardinalities », dans Automata, Languages and Programming, 30th International Colloquium, Springer, coll. « LectureNotes in Computer Science » (no 2719), (DOI 10.1007/3-540-45061-0_54), p. 74–84.
  • Paolo Massazza, « Holonomic functions and their relation to linearly constrained languages », RAIRO - Informatique Théorique et Applications, vol. 27, no 2,‎ , p. 149-161 (DOI 10.1051/ita/1993270201491).
  • Shibashis Guha, Ismaël Jecker, Karoliina Lehtinen et Martin Zimmermann, « Parikh Automata over Infinite Words », Leibniz International Proceedings in Informatics (LIPIcs), Schloss Dagstuhl – Leibniz-Zentrum für Informatik, vol. 250 « 42nd IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2022) »,‎ , p. 40:1–40:20 (ISBN 978-3-95977-261-7, DOI 10.4230/LIPIcs.FSTTCS.2022.40, lire en ligne)
  • Enzo Erlich, Shibashis Guha, Ismaël Jecker et Karoliina Lehtinen, « History-deterministic Parikh Automata », arXiv,‎ (arXiv 2209.07745)

Articles liés

  • icône décorative Portail de l'informatique théorique