Algorithmes connus pour passer d'un DFA à une expression régulière


28

Je me demandais s'il y avait un `` meilleur '' algorithme (j'expliquerai dans quel sens) pour partir d'un DFA et construire une expression régulière r telle que L ( A ) = L ( r ) , que celle du livre de Hopcroft et Ullman (1979). Dans ce document, les ensembles R k i j sont utilisés pour représenter des ensembles de chaînes qui font passer le DFA de l'état q i à q j sans passer par un état numéroté supérieur à k . Cette construction, bien qu'évidemment correcte et très utile, est plutôt technique.ArL(A)=L(r)Rijkqiqjk

J'écris une monographie sur la théorie des automates algébriques et je ne veux pas distraire mon public avec trop de détails techniques (du moins pas avec des détails qui ne sont pas pertinents pour les résultats que je veux montrer), mais je veux inclure un preuve de l'équivalence entre DFA et les expressions régulières par souci d'exhaustivité. Pour mémoire, j'utilise les automates Glushkov pour passer d'une expression régulière à un DFA. Cela semblait plus intuitif que les transitions , que je n'ai pas du tout défini (encore une fois, car je n'en ai pas besoin).ε

Quels autres algorithmes sont connus pour passer d'un DFA à une expression régulière? Je privilégie la simplicité à l'efficacité (c'est `` mieux '' pour moi dans ce cas), mais ce n'est pas une exigence.

Merci d'avance pour votre aide!


1
Ce n'est pas un algorithme différent, mais l'algorithme peut être exprimé algébriquement, en utilisant la k ème puissance d'une matrice d'expressions régulières dans l'algèbre appropriée. Peut-être trouverez-vous cela plus élégant / concis. Je cherche une référence. Rijkk
Max

1
L' algorithme est essentiellement une variante de l'algorithme Floyd-Warshall pour le problème All-pairs-shortest-path, vous pouvez donc trouver la présentation en termes de multiplication matricielle en recherchant ces mots clés. Rijk
Jan Johannsen

2
Je suis d'accord. Il s'agit essentiellement de l'algorithme Floyd-Warshall. Il peut également être dérivé en utilisant des techniques de programmation dynamique standard (tout comme Floyd-Warshall).
David

Je suis sûr d'avoir déjà répondu à une question comme celle-ci, mais je ne la trouve pas.
Raphael

@Max pourriez-vous trouver une référence? Je m'intéresse à la représentation matricielle, elle devrait être plus attrayante pour les algèbres en fait.
Janoma

Réponses:


17

Deux autres constructions: Brzozowski-McCluskey aka élimination d'état [1] et élimination gaussienne dans un système d'équations utilisant le lemme d'Arden. La meilleure source à ce sujet est probablement le livre de Jacques Sakarovitch [2].

[1] J. Brzozowski, E. McCluskey Jr., Techniques de graphes de flux de signaux pour les diagrammes d'état de circuits séquentiels, Transactions IEEE sur les ordinateurs électroniques EC-12 (1963) 67–76.

[2] J. Sakarovitch, Éléments de la théorie des automates. Cambridge University Press, 2009.


2
Je trouve l'approche de résolution d'équations utilisant le lemme d'Arden la plus simple et la plus facile à expliquer, c'est pourquoi je la présente de cette façon dans une classe de théorie d'introduction.
Jan Johannsen

La méthode d'un système d'équations semble brillante. Malheureusement, la bibliothèque de mon université n'a pas le livre que vous mentionnez (Sakarovitch), mais je vais chercher ailleurs.
Janoma

4
La comparaison des constructions se trouve également dans l'article de Sakarovitch "The Language, the Expression and the (small) Automaton", CIAA 2005, LNCS 3845, Springer (2006) 15-30. Voir infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber

2
Notez également que l'ordre dans lequel les états sont traités peut affecter considérablement la taille de l'expression régulière résultante. Cela est toujours vrai: que vous le fassiez avec le lemme d'Arden, McNaughton-Yamada, l'élimination de l'état ou une autre variante. Plusieurs heuristiques simples pour choisir un bon ordre d'élimination sont disponibles.
Hermann Gruber

15

Le livre de Kozen "Automata & Computability" mentionne une généralisation élégante de cet algorithme de Floyd-Warshall. Puisque vous avez mentionné avoir fait appel aux algèbres, vous pourriez trouver cela utile. Vous le trouverez à la page 58-59 de ce texte. (Je pense que Google Books a un aperçu.)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Une autre dérivation des structures d'algèbre de Kleene sur les matrices apparaît dans A The Completeness Theorem for Kleene Algebras and the Algebra of Regular Events by Kozen.


12

La procédure la plus agréable que j'ai vue est de loin celle mentionnée par Sylvain. En particulier, il semble donner des expressions plus concises que d'autres.

J'ai écrit ce document expliquant la méthode aux étudiants l'été dernier. Il se rapporte directement à une conférence spécifique; la référence mentionnée est la définition typique des expressions régulières. Une preuve du lemme d'Arden est contenue; un pour l'exactitude de la méthode est manquant. Comme je l'ai appris en cours, je n'ai malheureusement pas de référence.


Je préfère également cette preuve. Je trouve cela élégant et facile à expliquer. Même le lemme d'Arden n'est pas difficile. Je pense que ce sera la méthode que j'inclurai dans mon document.
Janoma

+
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.