User:Parhamhoushmand/Parikh Automaton

In theoretical computer science, and in particular in automata theory , a Parikh automaton is a non-deterministic finite automaton whose transitions include vectors of natural integers which make it possible to test whether the sum of the vectors of a calculation satisfies a semi-linear constraint. The interest of this family of automata is that it has other equivalent characterizations, in the form of a Turing machine and in a more algebraic form, called RCM.

Informal description
A Parikh automaton is a finite automaton whose transitions are labeled by pairs, Oris a letter of the input alphabet andis a vector of, for an integer. A path is a sequence


 * $$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$$

of transitions which calculates the wordand the vector, where the sum is done component by component. The acceptance condition is given by a set of terminal states and a semi-linear set. A path is a successful calculation if, starting from the initial state, it reaches a final state and if its vector belongs to the given semi-linear set.

Parikh automata were introduced in 2003 in the study of second-order logic  . These automata accept the same formal languages ​​as Turing machines with reversal bounded counters  . This family in turn coincides with a class defined by Massazza under the name RCM  class.

Example
The automaton of introduction , with the constraint, accepts all wordsabout the alphabetwhich begins and ends with a, and such that. `

Semi-linear set
A subset of $$\N^d$$ is linear if it is of the form


 * $$u_0+u_1\N+\cdots+ u_k\N=\{u_0+t_1u_1+\ldots+t_mu_m \mid t_1,\ldots,t_m\in\N\}$$

for vectors $$u_0,\ldots,u_m$$. It is therefore the set of linear combinations, with natural integer coefficients, of a finite set of vectors of

$$\N^d$$, to which is added the vector $$u_0$$. For example, for $$d=3$$,$$(1,0,0)+(1,1,1)\N=\{(n+1,n,n)|n\in \N\}$$ is a very simple linear set.

Un sous-ensemble de $$\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\ge1$$ est un tuple $$\mathcal{A}=(\Sigma, Q, q_I, F, C, \Delta)$$, où


 * $$\Sigma$$ est l'alphabet,
 * $$Q$$ est l'ensemble d'états
 * $$q_I\in Q$$ est l'état initial
 * $$F\subset Q$$ est l’ensemble des états terminaux
 * $$C\subset \N^d$$ est l'ensemble des contraintes semi-linéaires
 * $$\Delta\subset Q\times(\Sigma\times \N^d)\times Q$$ est la relation de transition.

Un chemin dans l'automate est une suite


 * $$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\le i\le n$$, le triplet $$(q_{i-1),(a_i,v_i} q_i)$$ est dans $$\Delta$$. Létiquette de ce chemin est le couple $$(a_1\cdots a_n,v_1+\cdots+v_n)$$. Le chemin est réussi ou acceptant si $$q_0=q_I$$, $$q_n\in F$$ et si de plus le vecteur $$v_1+\cdots+v_n$$ est dans $$C$$. Dans ce cas, le mot $$w=a_1\cdots a_n$$ est accepté ou reconnu par l'automate $$\cal A$$. Le langage reconnu par $$\cal A$$ est noté $$L(\cal A)$$.

Automates inambigus
Un automate de Parikh est faiblement inambigu si, pour tout mot, il existe au plus un chemin réussi. 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)\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)^+$$, 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. Il existe des langages inhéremment faiblement inambigus au sens que tout automate de Parikh les reconnaissants est faiblement ambigu.

Caractérisation par machines de Turing
Une machine de Turing à $$k$$ compteurs est une machine de Turing qui possède, en plus de ses attributs usuels, un ensemble de $$k$$ compteurs. La machine, dans l'état $$q$$ et en lisant une lettre $$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)$$-bornée si elle peut changer de direction au plus $$m$$ fois, et si chaque compteur ne peut alterner l'incrémentation et la décrémentation au plus $$n$$ fois. Une machine de Turing, à $$k$$ compteurs et $$(m,n)$$-bornée est inambigue si, de plus, chaque mot possède au plus un calcul acceptant.$$L'égalité de ces familles de langages n'est plus vraie dans le cas déterministe. En revanche, la version inambigue est valide :$$

Langages RCM
Paolo Massazza a introduit en 1993 une famille de langages appelée RCM. 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,\ldots, a_d\}$$ totalement ordonné avec $$a_1<\cdots<a_d$$. À tout ensemble semi-linéaire $$C$$ de dimension $$d$$ on associe le langage $$[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$$. Si par exemple $$C_0=\{(n,m,n,m)|n,m\ge0\}$$ et l'alphabet est $$a<b<c<d$$, le langage $$[C_0]$$est l'ensemble de tous les mots sur ces 4 lettres qui ont autant d'occurrences de $$a$$ que de $$c$$ et autant de $$b$$ que de $$d$$.

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


 * $$L=\mu(R\cap [C])$$.

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

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

Bibliographie



 * 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), 2015 (DOI 10.1007/978-3-319-19225-3_1), p. 3–18.




 * 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), 2003 (DOI 10.1007/3-540-45061-0_54), p. 74–84.





Articles liés

 * Automate fini
 * Machine de Turing
 * Théorème de Parikh