Taxonomie des automates d'expression régulière notables

10

J'essaie de dresser une taxonomie d'algorithmes pour transformer des expressions régulières en automates afin d'effectuer des tests empiriques de leurs propriétés de complexité dans des domaines spécifiques.

Je connais plusieurs des plus grands noms, par exemple,


Thompson

"Algorithme de recherche d'expression régulière", Thompson, 1968

Glushkov

"Un nouvel algorithme quadratique pour convertir une expression régulière en automate", Ponty, et. al, 1996

Antimirov

"Dérivés partiels d'expressions régulières et de constructions d'automates finis", Antimirov, 1996

Suivre

"Suivez les automates", Ilie, et. al, 2003;

"Calculer l'automate de suivi d'une expression", Champarnaud, et. al, 2002

Hromkovic

"Traduction d'expressions régulières en petits automates finis non déterministes non électroniques", Hromkovic, et. al, 2001


et leurs propriétés distinctives (absence d'epsilon, déterminisme, taille, minimisation, etc.) mais je sais que cette liste n'est pas exhaustive.

Je suis particulièrement intéressé par les algorithmes qui présentent soit des complexités temporelles significativement différentes de celles listées ci-dessus, et / ou des topologies sensiblement différentes.

Si vous en connaissez d'autres, un lien vers un article qui décrit l'algorithme de construction en détail serait grandement apprécié (lire nécessaire si je veux l'implémenter!)

Modifier: Ajout de quelques références selon la demande.

s8soj3o289
la source
@Radu GRIGore J'ai ajouté quelques références. Ce sont les meilleures références que je connaisse pour ces automates, mais il peut y en avoir d'autres.
s8soj3o289
1
Pour Glushkov, ma référence habituelle est J. Berstel et J.-E. Pin, "Les langues locales et l'algorithme Berry – Sethi", 1996.
Sylvain
1
Par ailleurs, vous pouvez trouver des implémentations de certains de ces algorithmes dans la bibliothèque Vaucanson C ++, pour référence sur la construction de ces algorithmes. trac.lrde.org/vaucanson/browser/include/vaucanson/algorithms (dans laquelle standard_of = Glushkov, thompson_of = Thompson, derived_term_automaton = Antimirov, Brzozowski = Brzozowski)
Michaël Cadilhac
@ michael-cadilhac Merci pour le pointeur. J'aurais aimé le savoir avant d'implémenter les autres moi-même! Je vais certainement y jeter un œil.
s8soj3o289

Réponses:

7

Watson (Tech. Rep. Univ. Eindhoven 1995) a écrit une taxonomie d'algorithmes de construction d'automates finis; quelques développements plus récents se trouvent ci-dessous.

Pour les NFA avec des transitions epsilon, le livre sur la théorie de l'analyse de Sippu / Soisalon-Soininen (Springer, 1998) contient une variante de la construction de Thompson. Ilie et Yu (I&C 2003) et Gulan et Fernau (FSTTCS 2008) donnent des versions raffinées de la construction classique. La taille minimale requise des epsilon-NFA correspondant aux expressions régulières est étudiée plus en détail par Gruber et Gulan (LATA 2010). La structure des digraphes sous-jacents résultant de la construction de Thompson est étudiée par Giammarresi, Ponty, Wood & Ziadi (Discr. Appl. Math 2004) et par Gulan (Tech. Rep. Univ. Trier, 2010).

Concernant les NFA sans epsilon, je veux mentionner les travaux antérieurs de Berry & Sethi (TCS 1986) et de Brüggemann-Klein (TCS 1993), mais qui sont probablement couverts par la taxonomie de Watson.

n2O(logn)

A noter également: Concernant les algorithmes rapides de mise en correspondance des expressions régulières, je connais les travaux récents de Bille et Thorup (ICALP 2009, SODA 2010). Ils utilisent la construction classique de Thompson (plus bien sûr de nombreuses astuces pour gagner en vitesse).

Hermann Gruber
la source
1
c'est une excellente réponse, merci beaucoup. je vois que vous avez également récemment publié un livre sur le sujet - pourrais-je aussi demander si a. il est disponible en ligne sous n'importe quelle forme, et b. est-ce le cas, ou avez-vous déjà examiné la complexité des «cas moyens» pour des domaines spécifiques? Je suis principalement intéressé par les applications au PNL où certaines preuves encore largement anecdotiques suggèrent que la complexité moyenne des cas de certains de ces algorithmes diffère considérablement des pires scénarios décrits dans la littérature cs.
s8soj3o289
aussi je ne sais pas trop ce que l'étiquette dicte en termes de sélection d'une réponse. votre réponse est clairement supérieure à celle que j'ai choisie précédemment.
s8soj3o289
Seul le teaser du livre est disponible en ligne gratuitement.
Hermann Gruber
En ce qui concerne la complexité moyenne de l'état des cas, il y a aussi l'article sur la taille moyenne des NFA pour les langues finies avec M. Holzer (TCS 2007); mais le plus apparenté semble être le travail de Nicaud sur les automates Glushkov (LATA 2009); il y a aussi un prochain article de Nicaud, Pivoteau & Razet (FSTTCS 2010) avec un titre intéressant - je n'ai pas encore pu y jeter un œil.
Hermann Gruber
Gouveia, Moreira & Reis (CiE 2010) ont mené des expériences sur la conversion RE en NFA. Broda, Machiavelo, Moreira & Reis (DLT 2010) comparent le nombre d'états des automates de position (Glushkov) et des automates d'équation (Antimirov) en moyenne. Cela pourrait également être intéressant.
Hermann Gruber
5

L'un des éléments non pris en compte dans votre liste est Derivatives of Regular Expressions de Janusz Brzozowski, Journal of the ACM 1964, qui a récemment été reconsidéré par Scott Owens, John Reppy et Aaron Turon dans les dérivés d'expression régulière réexaminés. Journal of Functional Programming (2009), 19: 173-190 , qui fournit une mise en œuvre pratique de la technique d'une notation étendue pour les expressions régulières.

Dave Clarke
la source
2
Antimirov est une variante non déterministe de Brzozowski.
Sylvain
Le nom semblait certainement familier.
Dave Clarke
merci pour l'article "revu", je n'avais pas vu ça!
s8soj3o289