Que language soit régulier.
Une factorisation de est une paire maximale d'ensembles de mots avec
- ,
où | .
est maximal si pour chaque paire avec soit ou Y \ pas \ subseteq Y ' .
Existe-t-il une procédure simple pour savoir quelles paires sont maximales?
Exemple:
Soit . L'ensemble est calculé:
où .
Un autre exemple:
et Ensemble de factorisation Sigma avec
Réponses:
Comme suggéré dans les commentaires à la question, je vais essayer de donner une réponse (malheureusement partielle) à la question, au moins dans la mesure où j'ai compris le problème moi-même (cela implique que vous pourriez bien trouver des erreurs, et si vous trouvez un moyen d'expliquer plus brièvement ou clairement l'un des points ci-dessous, n'hésitez pas à modifier la réponse en conséquence):
Tout d'abord, il convient de noter que nous n'avons pas réellement à calculer l'automate universel d'une langue si nous voulons calculer les factorisations d'une langue.
D'après l'article mentionné dans mon commentaire ¹, il existe une correspondance 1-1 entre les facteurs gauche et droit d'une langue régulière, c'est-à-dire, étant donné un facteur gauche de la langue, le facteur droit correspondant est uniquement déterminé et vice versa. Plus précisément, nous avons les éléments suivants:
Let est une factorisation de L . Alors Y = ⋂ x ∈ X x - 1 L , X = ⋂ y ∈ Y L y - 1 , c'est-à-dire que tout facteur gauche est une intersection de quotients droits, et tout facteur droit est une intersection de quotients gauches. A l' inverse, une intersection de quotients gauche de L est un facteur droit de L , et toute intersection de droite quotients de L est un facteur gauche de L .(X,Y) L
Notez que pour une langue régulière, il n'y a qu'un ensemble fini de quotients gauche et droit, et donc ou le problème se réduit à calculer les quotients gauche et droit d'une langue, puis à calculer leur fermeture stable , c'est-à-dire un minimum surensemble des quotients qui est fermé sous l'intersection. Ceux - ci sont alors précisément les bons facteurs et les facteurs à gauche, et il est généralement facile de voir quelles paires sont des sous - ensembles de L .∩ L
Exemple
Afin d'illustrer les points ci-dessus, considérons le premier exemple de la question (dont je pense également qu'il est incorrect dans le document):
Soit . Maintenant, les quotients de gauche L sont les ensembles x - 1 L pour x ∈ Σ * , qui est, ces mots u dans Σ * qui peut être préfixé par x , soit x u ∈ L . Quand y - 1 L = x - 1 L pour x , y distincts ? C'est le cas si et seulement si xL=Σ∗abΣ∗ L x−1L x∈Σ∗ u Σ∗ x xu∈L y−1L=x−1L x,y x et peut être augmenté de mots en L avec exactement les mêmes suffixes. Cela signifie, pour le dire en termes plus familiers, qu'ils sont équivalents à Nérode, et les suffixes nécessaires pour ajouter des mots dans une classe Nérode sont précisément les quotients de gauche respectifs.y L
Pour , nous voyons que nos classes d'équivalence Nerode sontL
Ils peuvent être augmentés avec les ensembles suivants (c'est-à-dire que ce sont les quotients de gauche des mots dans les classes respectives):
Par conséquent, notre ensemble de factorisation est de la forme ( P 1 , S 1 ) , ( P 2 , S 2 ) , ( P 3 , S 3 ) .FL (P1,S1),(P2,S2),(P3,S3)
Maintenant, pour les facteurs de gauche , nous utilisons les équations du début de cette réponse:Pi
.
Pour , on obtient L ∪ Σ * a , pour P 2 nous obtenons Σ * et P 3 , on obtient L . Vous pouvez le voir par inspection (l'excuse la plus populaire pour être trop paresseux pour énoncer une preuve formelle) ou en calculant explicitement les bons quotients (ce qui est assez analogue, mais pas complètement, au calcul des quotients de gauche). Nos factorisations sont donc données par F L = u , v , w oùP1 L∪Σ∗a P2 Σ∗ P3 L FL=u,v,w
Sommaire
Pour résumer (comme vous demandiez une procédure simple):
la source