Complexité en états

De testwiki
Aller à la navigation Aller à la recherche

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 à n états peut être simulé par un automate fini déterministe à au plus 2n é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 2n é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 f, qui, pour un automate du premier type à n état, associe le nombre minimal f(n) 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: 2n é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 : 2n états[6]. Une borne inférieure plus petite est de Schmidt[7].
  • De AFN en UFA : 2n1 états[6]. Une borne inférieure plus petite est de Schmidt[7].
  • De SVFA en AFD : Θ(3n/3) états[8]
  • De 2AFD en AFD : n(nn(n1)n) é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 : (2nn+1)=O(4nn) états[9]. Une construction antérieure par Birget[12] utilise plus d'états.
  • De 2AFN en AFN : (2nn+1)[9].
  • De AFA en AFD : 22n états, démonstration par Ashok K. Chandra, Dexter Kozen et Larry Stockmeyer en 1981[13]
  • De AFA en AFN : 2n états[14]
  • De 2AFA en AFD : 2n2n états[15]
  • De 2AFA en AFN : 2Θ(nlogn) états[16]

Résumé

Complexité de transformation
AFD UFA AFN
AFN 2n 2n1 -
UFA 2n -
SVFA Θ(3n/3)
2AFD n(nn(n1)n) (2nn+1)
2AFN (2nn+1)
AFA 22n 2n
2AFA 2n2n 2Θ(nlogn)

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 p(n) états pour un automate de départ à n et un polynôme p(n). 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 X d'automates (déterministe, non déterministe etc.) la complexité en états de l'opération est une fonction f(m,n) telle que

  • pour toute paire d'automates A à m états et B à n états de la famille X, il existe un automate à f(m,n) états de la famille X qui accepte le langage L(A)L(B)
  • pour toute paire d'entiers m,n, il existe un automate A à m états et un automate B à n états dans la famille X telle que tout automate de la famille X acceptant L(A)L(B) a au moins f(m,n) é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 L1 est accepté par un automate à m états, et L2 par un automate à n états ; on demande le nombre d'états.

Union

Nombre d'états nécessaires pour L1L2 :

  • AFD: mn états, démontré par Maslov[20] et Yu, Zhuang et Salomaa[21].
  • AFN: m+n+1 états, établi par Holzer et Kutrib[22].
  • UFA: entre mn+m+n et O(n20.79m) états[23]
  • SVFA: mn états[24]
  • 2AFD: entre m+n et 4m+n+4 états[25]
  • 2AFN: m+n états[26]

Intersection

Nombre d'états nécessaires pour L1L2 :

  • AFD: mn états[20]Modèle:,[21].
  • AFN: mn états[22].
  • UFA: mn états[23].
  • SVFA: mn états[24].
  • 2AFD: soit m+n soit m+n+1 états, par Kunc et Okhotin[25].
  • 2AFN: soit m+n soit m+n+1 états[26].

Complémentation

Si le langage L requiert n états, le complément demande le nombre d'états suivant :

  • AFD: n états, en échangeant les états acceptants et les autres.
  • AFN: 2n états, par Birget[27]
  • UFA: au moins nd pour tout d et au plus n+12n/2 états d'après Raskin (2018)[28] pour la borne inférieure et Indzhev et Kiefer[29] pour la borne supérieure.
  • SVFA: n états, par échange d'états acceptants et non acceptants.
  • 2AFD: au moins n et au plus 4n états[30].

Concaténation

Nombre d'états requis pour le produit L1L2={w1w2w1L1,w2L2} :

  • AFD: mm2n2n1 états, déjà Maslov [20] et Yu, Zhuang et Salomaa[21].
  • AFN: m+n états, Holzer et Kutrib[22].
  • UFA: 342m+n1 états[23].
  • SVFA: Θ(3n/32m) états[24].
  • 2AFD: au moins 2Ω(n)logm et au plus 2mm+12nn+1 états[31].

Voir aussi Bordihn, Hospodár et. al. (2019)[32].

Étoile de Kleene

  • AFD: 342n états, déjà Maslov[20] et Yu, Zhuang et Salomaa[21].
  • AFN: n+1 états[22].
  • UFA: 342n états[23].
  • SVFA: 342n états[24].
  • 2AFD: au moins 1n2n21 et au plus 2O(nn+1) états[31].

Transposé

  • AFD: 2n états, par Boris G. Mirkin[33], Ernst Leiss[34], et Yu, Zhuang et Salomaa[21].
  • AFN: n+1 états[22].
  • UFA: n états.
  • SVFA: 2n+1 états[24].
  • 2AFD: soit n+1 soit n+2 é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 mn m+n+1 mn+m+nm+O(n20.79m) mn m+n4m+n+4 m+n
intersection mn mn mn mn m+nm+n+1 m+nm+n+1
complément n 2n n2o(1)n+12n/2 n n4n
concaténation m2n2n1 m+n 3/42m+n1 Θ(3n/32m) 2Ω(n)logm2mm+12nn+1
étoile 3/42n n+1 3/42n 3/42n 1n2n/212O(nn+1)
transposé 2n n+1 n 2n+1 n+O(1)

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 n+12n/2 états pour le complémentaire d'un automate fini non ambigu avec n é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 g(n)=eΘ(nlnn) 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: g(n)+O(n2) états[37].
  • De 2AFD en AFD: g(n)+O(n) états[37] et Kunc et Okhotin[38]
  • De 2AFN en AFD: O(g(n)) états[38], Mereghetti et Giovanni Pighizzini[39] et Geffert, Mereghetti et Pighizzini[40].
  • De AFN en 2AFD: au plust O(n2)[37].
  • De 2AFN en 2AFD: au plua nO(logn) états ; majoration établie avec la méthode du théorème de Savitch[40].
  • De UFA en AFD: eΘ(n(lnn)23) états[41].
  • De AFN en UFA: g(n)+O(n2) états[41].

Union

  • AFD: mn états, par Yu, Zhuang et Salomaa[21].
  • AFN: m+n+1 états, par Holzer et Kutrib[22].
  • 2AFD: entre m+n et 2m+n+4 états[25].
  • 2AFN: m+n états[26].

Intersection

  • AFD: mn états, par Yu, Zhuang et Salomaa[21].
  • AFN: mn états, par Holzer et Kutrib[22].
  • 2AFD: entre m+n et m+n+1 états[25].
  • 2AFN: entre m+n et m+n+1 états[26].

Complémentation

  • AFD: n états.
  • AFN: g(n)+O(n2) états[22].
  • UFA: au moins n2o(1) et au plus eΘ(n(lnn)23) états[41].
  • 2AFD: au moins n et au plus 2n+3 états[25].
  • 2AFN: au moins n et au plus O(n8) états. La majoration est obtenue avec la méthode du théorème d'Immerman-Szelepcsényi[30].

Concaténation

  • AFD: mn états[21].
  • AFN: entre m+n1 et m+n états[22].
  • 2AFD: eΘ((m+n)log(m+n)) états[25].
  • 2AFN: eΘ((m+n)log(m+n)) états[25].

Étoile de Kleene

  • AFD: (n1)2+1 états, déjà Yu, Zhuang et Salomaa[21].
  • AFN: n+1 états[22].
  • UFA: (n1)2+1 états[41].
  • 2AFD: Θ((g(n))2) états[25].
  • 2AFN: Θ(g(n)) états[25].

Résumé

La table suivante résume ces complexités.

Complexité des opérations binaires
AFD AFN UFA 2AFD 2AFN
union mn m+n+1 - m+n2m+n+4 m+n
intersection mn mn - m+nm+n+1 m+nm+n+1
complémentation n g(n)+O(n2) n2o(1)eΘ(n(lnn)23) n2n+3 nO(n8)
concaténation mn m+n1m+n - eΘ((m+n)log(m+n)) eΘ((m+n)log(m+n))
étoile (n1)2+1 n+1 (n1)2+1 Θ((g(n))2) Θ(g(n))

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 à m états et d’un AFD à n états est (m1)2n+2n1 ; la complexité d’une opération booléenne d’un AFD à n états et d'un AFD à p états est np. La combinaison d'une concatéation et d'une intersection (un langage L1(˙L2L3)) est (m1)2np+2np1, alors que dans la combinaison avec une union L1(˙L2L3), elle descend à (m1)(2n+p2n2p+2)+2n+p2[44].

Jozef Jirásek et Galina Jirásková[47] étudient la complexité du bord d'un langage rationnel. Pour un langage rationnel L donné, le bord est par définition le langage

B(L)=L*(Lc)*,

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 n est la complexité en état de L, alors la complexité du complémentaire Lc est également n, et la complexité en état de L* et de (Lc)* est au plus 3/42n. Les auteurs montrent que la complexité en état du bord B(L)=L*(Lc)* est en O(4n). La majoration est, plus précisément, 3/84n+2n223n2(n2) . 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 L1(˙L2L3) se ramènent, quitte à remplacer les langagesL2 ou L3 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 à k+1 lettres pour k 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

Références

Modèle:Traduction/Référence Modèle:Références

Modèle:Palette Modèle:Portail

  1. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées HolzerKutrib2009
  2. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées HolzerKutrib2011
  3. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées GaoMoreiraReisYu
  4. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées RabinScott1959
  5. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Lupanov
  6. 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ées Leung2005
  7. 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ées Schmidt1978
  8. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées JiráskováPighizzini2011
  9. 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ées Kapoutsis2005
  10. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Shepherdson1959
  11. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Moore1971
  12. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Birget1993a
  13. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées ChandraKozen1981
  14. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées FellahJürgensen1990
  15. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées LadnerLipton1984
  16. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées GeffertOkhotin2014
  17. Modèle:Article
  18. Modèle:Article
  19. Modèle:Article
  20. 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ées Maslov
  21. 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ées YuZhuang1994
  22. 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ées HolzerKutrib2003
  23. 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ées JirásekJirásková2016
  24. 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ées JirásekJirásková2015
  25. 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ées KuncOkhotin2012
  26. 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ées KuncOkhotin2011
  27. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Birget1993b
  28. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Raskin2018
  29. 29,0 et 29,1 Modèle:Article.
  30. 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ées GeffertMereghetti2007
  31. 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ées JiráskováOkhotin2008
  32. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées BordihnHospodár2019
  33. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Mirkin1966
  34. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Leiss1985
  35. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées OkhotinSalomaa2017
  36. Modèle:Article.
  37. 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ées Chrobak1986
  38. 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ées KuncOkhotin2011b
  39. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées MereghettiPighizzini2001
  40. 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ées GeffertMereghetti2003
  41. 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ées Okhotin2012
  42. Par exemple Modèle:Article.
  43. 43,0 et 43,1 Modèle:Article
  44. 44,0 et 44,1 Modèle:Article
  45. Modèle:Article
  46. Modèle:Article
  47. 47,0 et 47,1 Modèle:Article.
  48. Modèle:Article
  49. Modèle:Article.
  50. Modèle:Article.
  51. Modèle:Article
  52. Modèle:Article.
  53. Modèle:Article.
  54. Modèle:Article
  55. Modèle:Article.
  56. Modèle:Article