Complexité en états
La complexité en états (en anglais Modèle:Citation étrangère) est un thème en informatique théorique qui traite de la taille d'automates abstraits, tels que les diverses variantes des automates finis reconnaissant un langage rationnel donné. Un exemple typique dans ce domaine est le résultat selon lequel un automate fini non déterministe à états peut être simulé par un automate fini déterministe à au plus états, et que cette borne peut être atteinte.
La complexité en états d'un langage régulier est la taille, mesurée en nombre d'états, du plus petit automate fini, soit déterministe, soit non déterministe qui reconnaît ce langage. La complexité opérationnelle (en anglais Modèle:Citation étrangère) est la description de la complexité en états des diverses opérations sur les langages qui préservent leur régularité.
On distingue entre plusieurs problèmes dans cette thématique : la transformation d'un modèle d'automate en un autre, et la complexité des opérations sur les langages et leurs automates. Parfois, des résultats existent sur des sous-familles de langages réguliers. Enfin, il apparaît que dans le cas des langages sur un alphabet de taille donnée, et notamment sur un alphabet à une seule lettre (alphabet unaire), des résultats plus précis peuvent être formulés. Plusieurs exposés de synthèse ont été rédigés sur ces problèmes, par Holzer et Kutrib[1]Modèle:,[2] et par Gao Modèle:Et al.[3].
La détermination de la complexité d'un opération ou d'une transformation demande deux informations : d'abord un procédé général dont on sait majorer le coût, en nombre d'états, dans tous les cas ; ensuite un jeu d'exemples qui montrent que la majoration est en fait une borne supérieure, c'est-à-dire effectivement atteinte. L'exemple le plus connu est la déterminisation d'un automate fini non déterministe à n états : l'algorithme de la construction par sous-ensembles fournit un automate qui a toujours au plus états ; la deuxième étape demande de fournir des exemples où cette borne est effectivement atteinte.
Transformation entre variantes d'automates finis
Un automate fini peut être déterministe ou non déterministe, unidirectionnel (noté AFD, AFN) ou bidirectionnel (noté alors 2AFD, 2AFN). D'autres types sont les automates inambigus (notés UFA), Modèle:Lien (SVFA) et les automates alternants (AFA). Ces automates peuvent également être bidirectionnels (les classes sont ntées 2UFA, 2SVFA, 2AFA).
Tous ces modèles de machines reconnaissent exactement les langages rationnels. Toutefois, la taille de ces différents types d'automates, mesurée en nombre d'états, peut être différente. Le gain (la perte) de complexité entre deux de ces types d'automates est une fonction , qui, pour un automate du premier type à état, associe le nombre minimal d'état d'un automate du deuxième type qui est reconnaît le même langage.
Voici les résultats de complexité pour les diverses opérations de transformation.
- De AFN en AFD: états. C'est la construction par sous-ensembles de Rabin et Scott[4], l'optimalité a été prouvée par Lupanov[5].
- De UFA en AFD : états[6]. Une borne inférieure plus petite est de Schmidt[7].
- De AFN en UFA : états[6]. Une borne inférieure plus petite est de Schmidt[7].
- De SVFA en AFD : états[8]
- De 2AFD en AFD : états[9]. Une construction plus ancienne par John Cedric Shepherdson[10] utilise plus d'états, et une borne inférieure par Frank R. Moore [11] est moins bonne.
- De 2AFD en AFN : états[9]. Une construction antérieure par Birget[12] utilise plus d'états.
- De 2AFN en AFN : [9].
- De AFA en AFD : états, démonstration par Ashok K. Chandra, Dexter Kozen et Larry Stockmeyer en 1981[13]
- De AFA en AFN : états[14]
- De 2AFA en AFD : états[15]
- De 2AFA en AFN : états[16]
Résumé
Complexité de transformation AFD UFA AFN AFN - UFA - SVFA 2AFD 2AFN AFA 2AFA
Le problème 2AFD versus 2AFN et l’espace logarithmique
Le problème suivant est ouvert : Peut-on déterminiser un automate bidirectionnel non déterministe (2AFN), c'est-à-dire le convertir en un automate bidirectionnel déterministe (2AFD) ayant un nombre polynomial d'états, en d'autres termes avec états pour un automate de départ à et un polynôme . Ce problème a été posé en 1978 par William J. Sakoda et Michael Sipser[17]. Piotr Berman et Andrzej Lingas[18] ont découvert une relation entre ce problème et le problème ouvert du lien etre les classes de complexité L et NL. Cette relation a été apporfondie par Christos Kapoutsis[19].
Complexité en états d'opérations entre langages
Étant donné une opération binaire entre langages formes préservant la régularité et une famille d'automates (déterministe, non déterministe etc.) la complexité en états de l'opération est une fonction telle que
- pour toute paire d'automates à états et à états de la famille , il existe un automate à états de la famille qui accepte le langage
- pour toute paire d'entiers , il existe un automate à états et un automate à états dans la famille X telle que tout automate de la famille acceptant a au moins états.
Des définitions analogues valent pour des opérations a plus de deux arguments.
Les premiers résultats sur la complexité des opérations, pour les automates finis déterministes, ont été publiés par A. N. Maslov en 1970[20], d'autre travaux pionniers, plus récents sont de Sheng Yu, Qingyu Zhuang et Kai Salomaa en 1994[21] et de Markus Holzer et Martin Kutrib en 2003[22]
On suppose que est accepté par un automate à états, et par un automate à états ; on demande le nombre d'états.
Union
Nombre d'états nécessaires pour :
- AFD: états, démontré par Maslov[20] et Yu, Zhuang et Salomaa[21].
- AFN: états, établi par Holzer et Kutrib[22].
- UFA: entre et états[23]
- SVFA: états[24]
- 2AFD: entre et états[25]
- 2AFN: états[26]
Intersection
Nombre d'états nécessaires pour :
- AFD: états[20]Modèle:,[21].
- AFN: états[22].
- UFA: états[23].
- SVFA: états[24].
- 2AFD: soit soit états, par Kunc et Okhotin[25].
- 2AFN: soit soit états[26].
Complémentation
Si le langage L requiert états, le complément demande le nombre d'états suivant :
- AFD: états, en échangeant les états acceptants et les autres.
- AFN: états, par Birget[27]
- UFA: au moins pour tout et au plus états d'après Raskin (2018)[28] pour la borne inférieure et Indzhev et Kiefer[29] pour la borne supérieure.
- SVFA: états, par échange d'états acceptants et non acceptants.
- 2AFD: au moins et au plus états[30].
Concaténation
Nombre d'états requis pour le produit :
- AFD: états, déjà Maslov [20] et Yu, Zhuang et Salomaa[21].
- AFN: états, Holzer et Kutrib[22].
- UFA: états[23].
- SVFA: états[24].
- 2AFD: au moins et au plus états[31].
Voir aussi Bordihn, Hospodár et. al. (2019)[32].
Étoile de Kleene
- AFD: états, déjà Maslov[20] et Yu, Zhuang et Salomaa[21].
- AFN: états[22].
- UFA: états[23].
- SVFA: états[24].
- 2AFD: au moins et au plus états[31].
Transposé
- AFD: états, par Boris G. Mirkin[33], Ernst Leiss[34], et Yu, Zhuang et Salomaa[21].
- AFN: états[22].
- UFA: états.
- SVFA: états[24].
- 2AFD: soit soit états[31].
Résumé
La table suivante résume les complexités ; elle figure aussi en partie dans l'article d'Okhotin et Salomaa[35] où contient les bornes connues en 2017 pour la complexité des opérations pour les automates finis déterministes (AFD), inambigus (UFA), non déterministes(AFN).
Complexité des opérations binaires AFD AFN UFA SVFA 2AFD 2AFN union intersection complément concaténation étoile transposé
Une variante est la complexité en états d'opérations inambigues sur les automates. Des résultats ont été présentés à la International Conference on Descriptional Complexity of Formal Systems (2018) ; l'article détaillé intitulé « State complexity of unambiguous operations on finite automata » de Galina Jirásková et Alexander Okhotin paraît en décembre 2019[36]. La borne en états pour le complémentaire d'un automate fini non ambigu avec états est d'Emil Indzhev et Stefan Kiefer[29]
Automates finis sur un alphabet unaire
L'étude de la complexité en états des automates finis sur un alphabet à une seule lettre (alphabet « unaire ») a été initiée par Marek Chrobak en 1986[37]. Les résultats sont différents car la structure particulière des automates unaires fait naturellement appel à des fonctions de théorie des nombres.
Soit la fonction de Landau.
Transformation entre modèles
Les transformations sont parfois plus efficaces que dans le cas général.
- De AFN en AFD: états[37].
- De 2AFD en AFD: états[37] et Kunc et Okhotin[38]
- De 2AFN en AFD: états[38], Mereghetti et Giovanni Pighizzini[39] et Geffert, Mereghetti et Pighizzini[40].
- De AFN en 2AFD: au plust [37].
- De 2AFN en 2AFD: au plua états ; majoration établie avec la méthode du théorème de Savitch[40].
- De UFA en AFD: états[41].
- De AFN en UFA: états[41].
Union
- AFD: états, par Yu, Zhuang et Salomaa[21].
- AFN: états, par Holzer et Kutrib[22].
- 2AFD: entre et états[25].
- 2AFN: états[26].
Intersection
- AFD: états, par Yu, Zhuang et Salomaa[21].
- AFN: états, par Holzer et Kutrib[22].
- 2AFD: entre et états[25].
- 2AFN: entre et états[26].
Complémentation
- AFD: états.
- AFN: états[22].
- UFA: au moins et au plus états[41].
- 2AFD: au moins et au plus états[25].
- 2AFN: au moins et au plus états. La majoration est obtenue avec la méthode du théorème d'Immerman-Szelepcsényi[30].
Concaténation
Étoile de Kleene
- AFD: états, déjà Yu, Zhuang et Salomaa[21].
- AFN: états[22].
- UFA: états[41].
- 2AFD: états[25].
- 2AFN: états[25].
Résumé
La table suivante résume ces complexités.
Complexité des opérations binaires AFD AFN UFA 2AFD 2AFN union - intersection - complémentation concaténation - étoile
Opérations combinées
Janusz A. Brzozowski a publié des articles[42], où il étudie l'influence de divers paramètres sur la complexité en états. Il définit une famille de langages qui pour certaines opérations atteignent les bornes supérieures, à l'aide d'une famille particulière d'automates appelés automates de Brzozowski par Caron et al.[43].
La complexité pour des opérations combinées a été étudiée par Bo Cui, Yuan Gao, Lila Kari, Kai Salomaa et Sheng Yu et d'autres dans une série d'articles [44]Modèle:,[45]Modèle:,[46].
La complexité de deux opérations combinées est majorée par la composition des majorations de chacune des opérations, mais les bornes supérieures atteintes dans chacune des opérations peuvent se simplifier dans leur composition, puisque le résultat d'une première opération n'est pas toujours un automate qui peut atteindre la borne pour la deuxième.
Ainsi, la complexité de la concaténation d'un AFD à états et d’un AFD à états est ; la complexité d’une opération booléenne d’un AFD à états et d'un AFD à états est . La combinaison d'une concatéation et d'une intersection (un langage ) est , alors que dans la combinaison avec une union , elle descend à [44].
Jozef Jirásek et Galina Jirásková[47] étudient la complexité du bord d'un langage rationnel. Pour un langage rationnel donné, le bord est par définition le langage
- ,
c'est-à-dire l'intersection de l’étoile d'un langage et de l’étoile de son complémentaire. Ici, la complémentation est notée par l'exposant c. Si est la complexité en état de , alors la complexité du complémentaire est également , et la complexité en état de et de est au plus . Les auteurs montrent que la complexité en état du bord est en . La majoration est, plus précisément, . Cette borne est atteinte sur alphabet à 5 lettres, sur 4 lettres elle est la même à une unité près[47].
Une approche plus algébrique du problème est proposée par Pascal Caron et. al.[43]. Ils montrent que les opérations de la forme se ramènent, quitte à remplacer les langages ou par leur complémentaires, aux trois cas où l'opération est l’union, l'intersection et la différence symétrique. Ils obtiennent des bornes qui s'expriment à l'aide de fonctions connues en combinatoire algébrique. Un autre article[48] traite de concaténations multiples ; ils montrent que la borne supérieure est atteinte sur un alphabet à lettres pour concaténations. Ils précisent aussi l'expression de la complexité en états, et utilisent les automates de Brzozowski dans ces développements[49]. Ils systématisent ensuite leur approche et donnent plusieurs applications[50]Modèle:,[51]Modèle:,[52].
Autres travaux
De nouveaux résultats sur la complexité en états sont présentés régulièrement dans des conférences comme Descriptional Complexity of Formal Systems (DCFS) et Conference on Implementation and Application of Automata (CIAA), et dans diverses autres conférences en informatique théorique ou dans des revues spécialisées[53]Modèle:,[54]Modèle:,[55]. Un autre article concerne les opérations sur les langages unaires[56].
Articles liés
- Automate fini déterministe
- Automate fini inambigu
- Automate fini non déterministe
- Automate fini déterministe bidirectionnel
- Automate à pile visible
Références
Modèle:Traduction/Référence Modèle:Références
- ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesHolzerKutrib2009 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesHolzerKutrib2011 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesGaoMoreiraReisYu - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesRabinScott1959 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesLupanov - ↑ 6,0 et 6,1 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesLeung2005 - ↑ 7,0 et 7,1 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesSchmidt1978 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesJiráskováPighizzini2011 - ↑ 9,0 9,1 et 9,2 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesKapoutsis2005 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesShepherdson1959 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesMoore1971 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesBirget1993a - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesChandraKozen1981 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesFellahJürgensen1990 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesLadnerLipton1984 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesGeffertOkhotin2014 - ↑ Modèle:Article
- ↑ Modèle:Article
- ↑ Modèle:Article
- ↑ 20,0 20,1 20,2 20,3 et 20,4 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesMaslov - ↑ 21,00 21,01 21,02 21,03 21,04 21,05 21,06 21,07 21,08 et 21,09 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesYuZhuang1994 - ↑ 22,00 22,01 22,02 22,03 22,04 22,05 22,06 22,07 22,08 22,09 et 22,10 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesHolzerKutrib2003 - ↑ 23,0 23,1 23,2 et 23,3 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesJirásekJirásková2016 - ↑ 24,0 24,1 24,2 24,3 et 24,4 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesJirásekJirásková2015 - ↑ 25,0 25,1 25,2 25,3 25,4 25,5 25,6 25,7 et 25,8 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesKuncOkhotin2012 - ↑ 26,0 26,1 26,2 et 26,3 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesKuncOkhotin2011 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesBirget1993b - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesRaskin2018 - ↑ 29,0 et 29,1 Modèle:Article.
- ↑ 30,0 et 30,1 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesGeffertMereghetti2007 - ↑ 31,0 31,1 et 31,2 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesJiráskováOkhotin2008 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesBordihnHospodár2019 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesMirkin1966 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesLeiss1985 - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesOkhotinSalomaa2017 - ↑ Modèle:Article.
- ↑ 37,0 37,1 37,2 et 37,3 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesChrobak1986 - ↑ 38,0 et 38,1 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesKuncOkhotin2011b - ↑ Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesMereghettiPighizzini2001 - ↑ 40,0 et 40,1 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesGeffertMereghetti2003 - ↑ 41,0 41,1 41,2 et 41,3 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesOkhotin2012 - ↑ Par exemple Modèle:Article.
- ↑ 43,0 et 43,1 Modèle:Article
- ↑ 44,0 et 44,1 Modèle:Article
- ↑ Modèle:Article
- ↑ Modèle:Article
- ↑ 47,0 et 47,1 Modèle:Article.
- ↑ Modèle:Article
- ↑ Modèle:Article.
- ↑ Modèle:Article.
- ↑ Modèle:Article
- ↑ Modèle:Article.
- ↑ Modèle:Article.
- ↑ Modèle:Article
- ↑ Modèle:Article.
- ↑ Modèle:Article