« Automate fini inambigu » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
ManiacParisien (discuter | contributions)
m →‎Articles connexes : + Palette Automates finis et langages réguliers
ManiacParisien (discuter | contributions)
+ Complexité des opérations
Ligne 47 : Ligne 47 :


L'ambiguïté d'un automate fini est simplement relié à la notion d'ambiguïté dans les grammaires formelles par la 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<ref name="StearnsHunt">{{harvsp|id=StearnsHunt|texte=Stearns, Hunt, 1981|p=}}.</ref>
L'ambiguïté d'un automate fini est simplement relié à la notion d'ambiguïté dans les grammaires formelles par la 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<ref name="StearnsHunt">{{harvsp|id=StearnsHunt|texte=Stearns, Hunt, 1981|p=}}.</ref>

== Complexité des opérations ==

La complexité inambigüe d’un langage, notée usc(''L'') (pour {{Citation étrangère|langue=en|unambiguous state complexité}}) est par définition le nombre minimal d’états d’un automate inambigu reconnaissant le langage ''L''.

Soient ''L'', ''M'' des langages rationnels sur un alphabet commun, avec usc(''L'')=''m'' et usc(''M'')=''n''. On a les résultats suivants<ref name="jj">{{harvsp|id=jj|Jirásek ''et. al.''|2016}}.</ref> :
*image miroir : <math>\text{usc}(L^\sim) = \text{usc}(L)</math>, où <math>L^\sim</math> est le langage miroir ;
*intersection : <math>\text{usc}(L\cap M)\le mn</math>, et la borne est atteinte sur un alphabet à au moins 2 lettres.
*quotient gauche : <math>\text{usc}(L^{-1} M)\le 2^n-1</math>, , et la borne est atteinte sur un alphabet à au moins 2 lettres.
*quotient droit : <math>\text{usc}(L M^{-1})\le 2^n-1</math>, , et la borne est atteinte sur un alphabet à au moins 2 lettres.
*[[Mot (mathématiques)#Terminologie supplémentaire|mélange]] :<math> \text{usc}(L \text{ш} M)\le 2^{nm}-1</math>, et la borne est atteinte sur un alphabet à au moins 5 lettres.
*produit : <math>\text{usc}(L M)\le 3/4 2^{n+m}-1</math>, pourvu que <math>n, m\ge 2</math>, et la borne est atteinte sur un alphabet à au moins 6 lettres.
*[[étoile de Kleene|étoile propre (opération plus)]] : <math>\text{usc}(L)\le 3/4 2^{m}-1</math>, pourvu que <math>m\ge 2</math>, et la borne est atteinte sur un alphabet à au moins 3 lettres.
*[[étoile de Kleene|étoile]] : <math>\text{usc}(L)\le 3/4 2^{m}</math>, pourvu que <math>m\ge 2</math>, 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'[[automate fini déterministe | automates déterministes]], d'automates inambigus et [automate fini non déterministe | 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''<ref name="jj" /> :


{| class="wikitable center" style="width: 60%;font-size:95%;border:0px;text-align:left;line-height:150%;"
|-
! Opération
! sc
! nsc
! usc
|-
| miroir || <math>2^n</math> || <math>n+1</math> || <math>n</math>
|-
| intersection || <math>mn</math> ||<math>mn</math> ||<math>mn</math>
|-
| quotient gauche || <math>2^n-1</math> || <math>n+1</math> || <math>2^n-1</math>
|-
| quotient droit || <math>n</math> || <math>n</math> || <math>2^n-1</math>
|-
| étoile positive || <math>3/4\cdot 2^n-1</math> || <math>n</math> || <math>3/4\cdot 2^n-1</math>
|-
| étoile || <math>3/4\cdot 2^n</math> || <math>n+1</math> || <math>3/4\cdot 2^n</math>
|-
| mélange || <math>\ge2^{(m-1)(n-1)}</math> || <math>mn</math> || <math>2^{mn}</math>
|-
| produit || <math>m\cdot 2^n</math> ||<math> m+n</math> || <math>3/4\cdot 2^{m+n}-1</math>
|-
| complément || <math>n</math> || <math>2^n</math> || <math>\le 2^{0,79n+\log n}</math> <br> <math>\ge n^{2-\varepsilon}</math>
|}


== Notes et références ==
== Notes et références ==
;Références
{{Références}}
{{Références}}
;Bibliographie
== Bibliographie ==
*{{article
* {{article|auteur=Christof Löding |titre=Unambiguous Finite Automata |journal=Developments in Language Theory|année=2013|pages=29–30|url=http://old.automata.rwth-aachen.de/users/loeding/unambiguous-dlt13.pdf}} — Les transparents de sa présentation.
| libellé = '''Löding'''
* {{Article | langue = | auteur1 = Dimitri Isaak | auteur2 = Christof Löding | titre = Efficient inclusion testing for simple classes of unambiguous \u03c9-automata | périodique = Information Processing Letters | éditeur = Elsevier BV | volume = 112 | numéro = 14-15 | mois = août | année = 2012 | pages = 578-582 | ISSN = 0020-0190 | doi = 10.1016/j.ipl.2012.04.010 | url texte = http://old.automata.rwth-aachen.de/download/papers/loeding/IPL-IL12.pdf}}.
|auteur=Christof Löding
* {{Article | langue = | auteur1 = Albert R. Meyer | auteur2 = Larry J. Stockmeyer | titre = The equivalence problem for regular expressions with squaring requires exponential space | périodique = 13th Annual Symposium on Switching and Automata Theory (SWAT 1972) | éditeur = Institute of Electrical & Electronics Engineers (IEEE) | mois = octobre | année = 1972 | doi = 10.1109/swat.1972.29 |pages= 125-129|id=MS}}.
|titre=Unambiguous Finite Automata
* {{Article | langue = | auteur = André Arnold | titre = Rational ω-languages are non-ambiguous | périodique = Theoretical Computer Science | volume = 26 | numéro = 1-2 | mois = septembre | année = 1983 | pages = 221-223 | doi = 10.1016/0304-3975(83)90086-5}}.
|journal=Developments in Language Theory
* {{Article | langue = | auteur = Alexander Okhotin | titre = Unambiguous finite automata over a unary alphabet | périodique = Information and Computation| volume = 212 | mois = mars | année = 2012 | pages = 15-36 | doi = 10.1016/j.ic.2012.01.003|url=http://ac.els-cdn.com/S0890540112000090/1-s2.0-S0890540112000090-main.pdf?_tid=fbc8bd62-2d3d-11e6-b5c9-00000aab0f26&acdnat=1465365672_b3c53f97e1ad2b07bde6f7525860bbd0}}.
|année=2013|pages=29–30
* {{Article | id = StearnsHunt | auteur1 = Richard E. Stearns | auteur2 = Harry B. Hunt | titre = On the equivalence and containment problems for unambiguous regular expressions, grammars, and automata | périodique = 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981) | éditeur = Institute of Electrical & Electronics Engineers (IEEE) | mois = octobre | année = 1981 | doi = 10.1109/sfcs.1981.29}}.
|url=http://old.automata.rwth-aachen.de/users/loeding/unambiguous-dlt13.pdf}} — Les transparents de sa présentation.
* {{article | langue = | auteur1 = Cyril Allauzen | auteur2 = Mehryar Mohri | auteur3 = Ashish Rastogi | titre = General Algorithms for Testing the Ambiguity of Finite Automata | année = 2008| journal= Developments in Language Theory |doi= 10.1007/978-3-540-85780-8_8 | éditeur = Springer Science + Business Media | pages = 108-120 | arxiv=0802.3254 }}.
*{{Article
| libellé = '''Isaak et Löding''' | auteur1 = Dimitri Isaak | auteur2 = Christof Löding
| titre = Efficient inclusion testing for simple classes of unambiguous \u03c9-automata
| périodique = Information Processing Letters
| volume = 112 | numéro = 14-15
| mois = août | année = 2012
| pages = 578-582
| doi = 10.1016/j.ipl.2012.04.010
| url texte = http://old.automata.rwth-aachen.de/download/papers/loeding/IPL-IL12.pdf}}.
*{{Article
| libellé = '''Meyer et Stockmeyer'''
| auteur1 = Albert R. Meyer | auteur2 = Larry J. Stockmeyer
| titre = The equivalence problem for regular expressions with squaring requires exponential space
| périodique = 13th Annual Symposium on Switching and Automata Theory (SWAT 1972)
| éditeur = Institute of Electrical & Electronics Engineers (IEEE)
| mois = octobre | année = 1972 | doi = 10.1109/swat.1972.29 |pages= 125-129|id=MS}}.
*{{Article
| libellé = '''Arnold'''
| auteur = André Arnold
| titre = Rational ω-languages are non-ambiguous
| périodique = Theoretical Computer Science
| volume = 26 | numéro = 1-2 | mois = septembre | année = 1983
| pages = 221-223
| doi = 10.1016/0304-3975(83)90086-5}}.
*{{Article
| libellé = '''Okhotin'''
| auteur = Alexander Okhotin
| titre = Unambiguous finite automata over a unary alphabet
| périodique = Information and Computation
| volume = 212
| mois = mars | année = 2012
| pages = 15-36
| doi = 10.1016/j.ic.2012.01.003
| url=http://ac.els-cdn.com/S0890540112000090/1-s2.0-S0890540112000090-main.pdf?_tid=fbc8bd62-2d3d-11e6-b5c9-00000aab0f26&acdnat=1465365672_b3c53f97e1ad2b07bde6f7525860bbd0}}.
*{{Article | id = StearnsHunt
| libellé = '''Stearns et Hunt'''
| auteur1 = Richard E. Stearns | auteur2 = Harry B. Hunt
| titre = On the equivalence and containment problems for unambiguous regular expressions, grammars, and automata
| périodique = 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981)
| éditeur = Institute of Electrical & Electronics Engineers (IEEE)
| mois = octobre
| année = 1981
| pages=74–81
| doi = 10.1109/sfcs.1981.29}}.
*{{article
|libellé = '''Allauzen et. al.'''
|last1=Allauzen|first1=Cyril|last2=Mohri|first2=Mehryar|last3=Rastogi|first3=Ashish
|title=General algorithms for testing the ambiguity of finite automata and the double-tape ambiguity of finite-state transducers
|journal=International Journal of Foundations of Computer Science
|volume=22|issue=04
|year=2011
|pages=883–904
|doi=10.1142/S0129054111008477|arxiv=0802.3254}}
*{{article
|libellé = '''Colcombet'''
|last1=Colcombet|first1=Thomas
|title=Unambiguity in Automata Theory
|journal = Descriptional Complexity of Formal Systems
| numéro dans collection =9118
| collection=Lecture Notes in Computer Science
| year=2015
| pages=3–18
| doi=10.1007/978-3-319-19225-3_1
| url = https://www.irif.fr/~colcombe/Publications/DCFS15-colcombet.pdf}}
*{{cite journal
|id=jj
|libellé = '''Jirásek et. al.'''
|last1=Jirásek|first1=Jozef|last2=Jirásková|first2=Galina|last3=Šebej|first3=Juraj
|title= Operations on unambiguous automata
|périodique = Developments in Language Theory
|collection =Lecture Notes in Computer Sceince
|numéro dans collection =9840
|year=2016
|pages=243–255
|doi=10.1007/978-3-662-53132-7_20
|url=http://im.saske.sk/~jiraskov/UFA/ufa.pdf}}.


== Articles connexes ==
== Articles connexes ==
Ligne 64 : Ligne 186 :
* [[Automate pondéré]]
* [[Automate pondéré]]
* [[Grammaire formelle]]
* [[Grammaire formelle]]
* [[Complexité en espace]]


{{Palette Automates finis et langages réguliers}}
{{Palette Automates finis et langages réguliers}}

Version du 12 janvier 2017 à 12:27

Un automate fini inambigu à n+1 états reconnaissant les mots qui ont un a en position n depuis la fin. Un automate déterministe équivalent a au moins états

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 n'est pas connu s'il peut être calculé en temps polynomial si A est inambigu.

Définition

Un automate fini non déterministe , où est l'ensemble des transition, l’état initial et l'ensemble des états terminaux, est dit inambigu si, pour tout mot reconnu par l'automate, il existe un seul chemin réussi d'étiquette , donc un seul chemin

, avec .

Exemple

Soit l'ensemble des mots sur l'alphabet binaire dont la lettre en position depuis la fin est un . Les figures ci-contre montrent un automate inambigu reconnaissant ce langage pour n=2, et un automate déterministe pour ce même langage.

Automate inambigu pour le langage .
Automate déterministe pour le langage .

L'automate déterministe minimal acceptant a états, alors que l’automate inambigu pour le même langage n'a que états.

Propriétés

Test d'ambiguïté

On peut tester si un automate fini non déterministe à m transitions est inambigu en temps . 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[1].

Inclusion

Le problème d'inclusion consiste à tester si le langage reconnu par un automate est contenu dans le langage reconnu par un automate . 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[2],[3]. C'est d'ailleurs ce problème, décrit par Meyer et Stockmeyer en 1972[4] 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[2].

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ême 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[5] à 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[2],[6].

L'ambiguïté d'un automate fini est simplement relié à la notion d'ambiguïté dans les grammaires formelles par la 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[3]

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.

Soient L, M des langages rationnels sur un alphabet commun, avec usc(L)=m et usc(M)=n. On a les résultats suivants[7] :

  • image miroir : , où est le langage miroir ;
  • intersection : , et la borne est atteinte sur un alphabet à au moins 2 lettres.
  • quotient gauche : , , et la borne est atteinte sur un alphabet à au moins 2 lettres.
  • quotient droit : , , et la borne est atteinte sur un alphabet à au moins 2 lettres.
  • mélange :, et la borne est atteinte sur un alphabet à au moins 5 lettres.
  • produit : , pourvu que , et la borne est atteinte sur un alphabet à au moins 6 lettres.
  • étoile propre (opération plus)  : , pourvu que , et la borne est atteinte sur un alphabet à au moins 3 lettres.
  • étoile : , pourvu que , 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 [automate fini non déterministe | 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[7] :


Opération sc nsc usc
miroir
intersection
quotient gauche
quotient droit
étoile positive
étoile
mélange
produit
complément

Notes et références

Bibliographie

  • [Löding] Christof Löding, « Unambiguous Finite Automata », Developments in Language Theory,‎ , p. 29–30 (lire en ligne) — Les transparents de sa présentation.
  • [Isaak et Löding] Dimitri Isaak et Christof Löding, « Efficient inclusion testing for simple classes of unambiguous \u03c9-automata », Information Processing Letters, vol. 112, nos 14-15,‎ , p. 578-582 (DOI 10.1016/j.ipl.2012.04.010, lire en ligne).
  • [Meyer et Stockmeyer] Albert R. Meyer et Larry J. Stockmeyer, « The equivalence problem for regular expressions with squaring requires exponential space », 13th Annual Symposium on Switching and Automata Theory (SWAT 1972), Institute of Electrical & Electronics Engineers (IEEE),‎ , p. 125-129 (DOI 10.1109/swat.1972.29).
  • [Arnold] André Arnold, « Rational ω-languages are non-ambiguous », Theoretical Computer Science, vol. 26, nos 1-2,‎ , p. 221-223 (DOI 10.1016/0304-3975(83)90086-5).
  • [Okhotin] Alexander Okhotin, « Unambiguous finite automata over a unary alphabet », Information and Computation, vol. 212,‎ , p. 15-36 (DOI 10.1016/j.ic.2012.01.003, lire en ligne).
  • [Stearns et Hunt] Richard E. Stearns et Harry B. Hunt, « On the equivalence and containment problems for unambiguous regular expressions, grammars, and automata », 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981), Institute of Electrical & Electronics Engineers (IEEE),‎ , p. 74–81 (DOI 10.1109/sfcs.1981.29).
  • [Allauzen et. al.] Cyril Allauzen, Mehryar Mohri et Ashish Rastogi, « General algorithms for testing the ambiguity of finite automata and the double-tape ambiguity of finite-state transducers », International Journal of Foundations of Computer Science, vol. 22, no 04,‎ , p. 883–904 (DOI 10.1142/S0129054111008477, arXiv 0802.3254)
  • [Colcombet] Thomas Colcombet, « Unambiguity in Automata Theory », Descriptional Complexity of Formal Systems,‎ , p. 3–18 (DOI 10.1007/978-3-319-19225-3_1, lire en ligne)
  • [Jirásek et. al.] Jozef Jirásek, Galina Jirásková et Juraj Šebej, « Operations on unambiguous automata », Developments in Language Theory,‎ , p. 243–255 (DOI 10.1007/978-3-662-53132-7_20, lire en ligne).

Articles connexes