# Automate fini inambigu

En théorie des automates, un automate fini inambigu (on dit aussi non ambigu, en anglais « unambiguous finite automaton », abrégé en UFA) est un automate fini non déterministe d'un type particulier. C'est un automate qui, pour chaque mot accepté, ne possède qu'un seul calcul réussi. Tout automate fini déterministe est inambigu, mais la réciproque est fausse. Les trois types d'automates : non déterministe, inambigu, déterministe, reconnaissent les mêmes langages formels, à savoir les langages réguliers.
Le nombre d'états d'un automate inambigu peut être exponentiellement plus petit qu'un automate déterministe équivalent. En contre-partie, certains problèmes sont plus difficiles à résoudre pour les automates inambigus que pour les automates déterministes. Par exemple, partant d'un automate A, un automate A' reconnaissant le complément du langage accepté par A se construit en temps linéaire si A est déterministe, mais il a été démontré qu'il ne peut être calculé en temps polynomial si A est inambigu.
La notion d'automate inambigu se généralise à d'autres modèles de machines ou de calcul. Un présentation générale a été donnée par Thomas Colcombet.

## Définition

Un automate fini non déterministe ${\mathcal {A}}=(Q,I,{\mathcal {F}},T)$, où ${\mathcal {F}}$ est l'ensemble des transitions, $I$ l’ensemble des états initiaux et $T$ l'ensemble des états terminaux, est dit inambigu si, pour tout mot $w=a_{1}\cdots a_{n}$ reconnu par l'automate, il existe un seul chemin réussi d'étiquette $w$, donc un seul chemin
    $c=(i,a_{1},p_{1})(p_{1},a_{2},p_{2})\cdots (p_{n-1},a_{n},t)$, avec $i\in I$ et $t\in T$.

## Exemple

Soit $L_{n}=A^{*}aA^{n-1}$ l'ensemble des mots sur l'alphabet binaire $A=\{a,b\}$ dont la lettre en position $n$ depuis la fin est un $a$. Les figures ci-contre montrent un automate inambigu reconnaissant ce langage pour n=2, et un automate déterministe pour ce même langage.
L'automate déterministe minimal acceptant $L_{n}$ a $2^{n}$ états, alors que l’automate inambigu pour le même langage n'a que $n+1$ états.

## Propriétés
### Test d'ambiguïté

On peut tester si un automate fini non déterministe à m transitions est inambigu en temps $O(m^{3})$. On peut même calculer le degré d’ambiguïté, et savoir si l'ambiguïté est bornée, si elle croit polynomialement ou exponentiellement avec la longueur des mots.

### Inclusion

Le problème d'inclusion consiste à tester si le langage reconnu par un automate $A$ est contenu dans le langage reconnu par un automate $B$. Le problème est bien entendu décidable. La question est celle de sa complexité.
Le problème de l'inclusion pour les automates inambigus est décidable en temps polynomial : il est dans la classe PTIME alors que ce même problème est PSPACE-complet pour les automates non déterministes$^,$. C'est d'ailleurs ce problème, décrit par Meyer et Stockmeyer en 1972 qui est le premier problème de cette classe.
La démonstration de cette propriété utilise le fait que le produit cartésien de deux automates inambigus est également inambigu.
Soient $A$ et $B$ deux automates, et $L(A)$ et $L(B)$ les langages acceptés. On a $L(A)\subset L(B)$ si et seulement si $L(A\times B)=L(A)$, où $A\times B$ désigne l'automate produit reconnaissant $L(A)\cap L(B)$. Les deux ensembles $L(A\times B)$ et $L(A)$ sont égaux si et seulement si le nombre de mots de longueur $n$ dans $L(A\times B)$ et égal au nombre de mots de longueur $n$ dans $L(A)$ pour tout $n$. Comme ces suites de nombres de mots satisfont une relation de récurrence linéaire, il suffit de vérifier qu'elles sont égales sur leurs premiers termes, en fait pour $n$ jusqu'au produit du nombre d'états de $A$ et de $B$. Le nombre de mots de longueur $n$ acceptés par un automate peut être calculé sur l'image commutative.

### Universalité et équivalence

Le problème de l'universalité, c'est-à-dire de savoir si un automate accepte tous les mots, et le problème de l'équivalence, c'est-à-dire de savoir si deux automates acceptent les mêmes mots, sont tous deux dans la classe PTIME, par réduction au problème de l'inclusion.

## Extensions

Le coût en place de la transformation d'un automate inambigu en un automate déterministe est difficile à borner. Pour des alphabets unaires, une minoration est donnée par Okhotin à l'aide d'une fonction arithmétique liée à la fonction de Landau.
La notion d’ambiguïté s'étend aux transducteurs finis : un transducteur est fonctionnel si la transformation qu'il réalise est une fonction (partielle), il est inambigu si, pour tout mot, il existe un seul calcul de la valeur de la fonction. Il est décidable si la transduction réalisée par un transducteur est une fonction.
Il y a aussi une interprétation algébrique naturelle du degré d’ambiguïté au moyen d'automates pondérés : on associe à chaque transition le poids 1 dans le monoïde des entiers naturels ; le poids associé à un mot est alors la simplement le nombre de chemins acceptant ce mot.
Enfin, il existe la même notion pour les mots infinis et les automates les reconnaissants comme les automates de Büchi. Dans ce cas, il y a différence entre automates non déterministes et automates déterministes, puisque ces derniers reconnaissent moins de langages. Les automates de Büchi inambigus reconnaissent les mêmes langages que les automates de Büchi non déterministes$^,$.
L'ambiguïté d'un automate fini est simplement relié à la notion d'ambiguïté dans les grammaires formelles par le biais de la correspondance entre les automates et les grammaires régulières : chaque dérivation dans une grammaire régulière correspond à un calcul dans l'automate correspondant. C'est d'ailleurs la notion de grammaire qui est mise en avant dans l'article historique de Stearns et Hunt

## Complexité des opérations

La complexité inambigüe d’un langage, notée usc(L) (pour « unambiguous state complexité ») est par définition le nombre minimal d’états d’un automate inambigu reconnaissant le langage L.

### Bornes connues

Soient L, M des langages rationnels sur un alphabet commun, avec usc(L)=m et usc(M)=n. On a les résultats suivants :
* image miroir : ${\text{usc}}(L^{\sim })={\text{usc}}(L)$, où $L^{\sim }$ est le langage miroir ;
* intersection : ${\text{usc}}(L\cap M)\leq mn$, et la borne est atteinte sur un alphabet à au moins 2 lettres.
* quotient gauche : ${\text{usc}}(L^{-1}M)\leq 2^{n}-1$, et la borne est atteinte sur un alphabet à au moins 2 lettres.
* quotient droit : ${\text{usc}}(LM^{-1})\leq 2^{n}-1$, et la borne est atteinte sur un alphabet à au moins 2 lettres.
* mélange :${\text{usc}}(L{\text{ш}}\ M)\leq 2^{nm}-1$, et la borne est atteinte sur un alphabet à au moins 5 lettres.
* produit : ${\text{usc}}(LM)\leq 3/4\cdot 2^{n+m}-1$, pourvu que $n,m\geq 2$, et la borne est atteinte sur un alphabet à au moins 6 lettres.
* étoile propre (opération plus) : ${\text{usc}}(L)\leq 3/4\cdot 2^{m}-1$, pourvu que $m\geq 2$, et la borne est atteinte sur un alphabet à au moins 3 lettres.
* étoile : ${\text{usc}}(L)\leq 3/4\cdot 2^{m}$, pourvu que $m\geq 2$, et la borne est atteinte sur un alphabet à au moins 3 lettres.
Il est intéressant de comparer la complexité des opérations sur les langages au moyen d' automates déterministes, d'automates inambigus et automates non déterministes. Pour cela, on introduit les notations :
* sc(L), nombre minimal d’états d’un automate déterministe reconnaissant le langage L.
* usc(L), comme ci-dessus le nombre minimal d’états d’un automate inambigu reconnaissant le langage L.
* nsc(L), nombre minimal d’états d’un automate non déterministe déterministe reconnaissant le langage L.
Dans la table suivante, les complexités sont résumées pour des langages donnés de complexité inambiguë n et m :
| Opération | sc | nsc | usc |
| miroir | $2^{n}$ | $n+1$ | $n$ |
| intersection | $mn$ | $mn$ | $mn$ |
| quotient gauche | $2^{n}-1$ | $n+1$ | $2^{n}-1$ |
| quotient droit | $n$ | $n$ | $2^{n}-1$ |
| étoile positive | $3/4\cdot 2^{n}-1$ | $n$ | $3/4\cdot 2^{n}-1$ |
| étoile | $3/4\cdot 2^{n}$ | $n+1$ | $3/4\cdot 2^{n}$ |
| mélange | $\geq 2^{(m-1)(n-1)}$ | $mn$ | $2^{mn}$ |
| produit | $m\cdot 2^{n}$ | $m+n$ | $3/4\cdot 2^{m+n}-1$ |
| complément | $2^{n}$ | $n$ | $\leq 2^{0,79n+\log n}$ $\geq n^{d}\ \forall d$ |

### Calcul de minorants

Il existe une méthode générale pour calculer des minorants de la complexité inambigüe. Couplée avec la construction en général plus facile, d'un automate inambigu, elle fournit une borne inférieur à la complexité d'une opération sur les automates inambigus. La méthode est basée sur le calcul du rang d'une matrice associée à un automate ; elle a été développée par Schmidt dans une thèse non publiée de 1978, puis par Leung, et par Hromkovič et al., et est reprise dans Jirásek et al..
On considère un automate fini non déterministe ${\mathcal {A}}=(Q,I,{\mathcal {F}},T)$ sur un alphabet A, où $I$ et $T$ sont des ensembles d'états initiaux et terminaux.
Un état $q$ est dit accessible à partir de l'état $p$ par le mot $w$ s'il existe un chemin d'étiquette $w$ de $p$ à $q$. Un ensemble $S\subseteq Q$ d'états est dit accessible s'il existe un mot $w$ tel que $S$ est l'ensemble des états accessibles à partir d'un état initial par un chemin d'étiquette $w$. On dit qu'un ensemble $P$ d'états est coaccessible si $P$ est accessible dans l'automate transposé de ${\mathcal {A}}$.
Les ensembles non vides d'états qui sont accessibles ou coaccessibles sont notés
    ${\mathcal {R}}=\{S\subseteq Q\mid S\ {\text{accessible}},S\neq \emptyset \}$ et ${\mathcal {C}}=\{P\subseteq Q\mid P\ {\text{accessible}},P\neq \emptyset \}.$
On a alors la propriété suivante :
    L'automate ${\mathcal {A}}$ est inambigu si et seulement si deux ensembles d'états $S$ de ${\mathcal {R}}$ et $P$ de ${\mathcal {C}}$ quelconques ont au plus un élément en commun : $|S\cap R|\leq 1.$
On s'en sert pour établir le résultat suivant, qui relie la complexité du langage au rang d'une matrice :
Théorème — Soit $M$ la matrice dont les lignes sont indicées par les éléments de ${\mathcal {R}}$ et le colonnes indicées par les éléments de ${\mathcal {C}}$, et dont le coefficient d'indice $(S,P)$ est égal à 0 ou 1 selon que l'intersection de $S$ et $P$ est vide ou non. Alors on a ${\text{usc}}(L)\geq \operatorname {rang} (M)$.

### Exemple

Pour vérifier que la complexité de l'intersection atteint bien la valeur $mn$ pour des automates à $m$ et $n$ états, on considère des langages et automates particuliers, et on montre que l'automate pour l'intersection, qui a $mn$ états, ne peut être remplacé par un automate inambigu plus petit à l'aide du théorème.
On considère les langages sur l'alphabet $\{a,b\}$ définis par $K=\{w\mid |w|_{a}=m-1\}$ et $L=\{w\mid |w|_{b}=n-1\}$, pour $m$ et $n$ fixés. Ce sont donc les langages de mots contenant exactement $m-1$ lettres $a$ respectivement exactement $n-1$ lettres $b$. Des automates inambigus (déterministe et incomplets) acceptant ces langages sont ${\mathcal {A}}=(Q_{A},0,m-1,F_{A})$ et ${\mathcal {B}}=(Q_{B},0,n-1,F_{B})$, avec $Q_{A}=\{0,\ldots ,m-1\}$, $Q_{B}=\{0,\ldots ,n-1\}$, et les flèches de $F_{A}$ composées de $(i,a,i+1)$ pour $0\leq i\leq m-2$ et $(j,b,j)$ pour tout j, et pour $F_{B}$ composées de $(i,a,i)$ pour tout i et $0\leq i\leq m-1$ et $(j,b,j+1)$ pour $0\leq j\leq n-2$.
L’automate produit est l’automate $(Q_{A}\times Q_{B},(0,0),(m-1,n-1),F)$, où l'ensemble de flèches $F$ est composé des flèches $((p,q),a,(p',q'))$ pour $(p,a,p')\in F_{A}$ et $(q,a,q')\in F_{B}$.
Tout ensemble singleton $(i,j)$ est accessible dans l’automate produit (par $a^{i}b^{j}$), et est coaccessible (par $a^{m-1-i},b^{n-1-j}$), et seuls des ensembles singletons sont accessibles ou coaccessibles. La matrice $M$ de l’énoncé est donc la matrice identité d’ordre $mn$, ce qui donne la borne inférieure pour l'intersection.