Union de langues régulières non régulière

12

Je suis tombé sur cette question: "Donnez des exemples de deux langues régulières dont leur union ne produit pas une langue régulière."

C'est assez choquant pour moi parce que je crois que les langues régulières sont fermées sous l'union. Ce qui signifie pour moi que si je prends deux langues régulières et les union, je dois avoir une langue régulière.

Et je pense que j'en comprends la preuve: selon mes mots, si les langues sont régulières, alors il existe des automates qui les reconnaissent. Si nous prenons tous les états (union), et nous ajoutons un nouvel état pour le point d'entrée, et nous modifions la fonction de transition pour le nouvel état avec epsilon, nous sommes ok. Nous montrons également qu'il existe un chemin de chaque état, etc.

Pouvez-vous me dire où je me trompe, ou peut-être une autre façon d'aborder la question.

Source de la question, exercice 4, en français.

En outre, la même question est posée avec l'intersection.

Dave
la source
Une autre façon de le voir. Supposons qu'une telle union infinie donne un langage régulier. Considérez une langue non régulière . Vous pouvez diviser ses éléments en un nombre infini de sous-langues où chacun des est fini (et donc régulier). Maintenant, faites l'union de tous les . Par hypothèse, il s'agit d'un langage régulier, mais nous avons supposé que était un langage non régulier, d'où une contradiction. Permettre la fermeture sous l'union infinie rendrait toutes les langues régulières. L i L i L i LLLiLiLiL
Bakuriu
Pour une union infinie: prenez n'importe quel langage non régulier et considérez chaque . Clairement est régulier. L i = { w i } L iL={w1,w2,w3,}Li={wi}Li
Pål GD du

Réponses:

26

Il y a une différence significative entre la question telle que vous la posez et la question posée dans l'exercice. La question demande un exemple d'un ensemble de langues régulières telles que leur union n'est pas régulière. Notez la plage de l'union: à . Les langues régulières sont fermées sous l' union finie , et les preuves vont dans le sens que vous esquissez dans la question, mais cela tombe sous l' union infinie . Nous pouvons le montrer en prenant pour chaque (avecL = i = 1 L i 1 L i = { 0 i 1 i } i Σ = { 0 , 1 } L = { 0 i 1 ii N }L1,L2,

L=i=1Li
1Li={0i1i}iΣ={0,1}). L'union infinie de ces langages donne bien sûr le langage canonique non régulier (hors contexte) .L={0i1iiN}

En passant, nous pouvons voir facilement où la preuve normale échoue. Imaginez la même construction où nous ajoutons un nouvel état de démarrage et des transitions aux anciens états de démarrage. Si nous faisons cela avec un ensemble infini d'automates, nous avons construit un automate avec un nombre infini d'états, contredisant évidemment la définition d'un automate fini .ε

Enfin, je suppose que la confusion peut provenir de la formulation de la question originale, qui commence "Donner deux exemples des suites de langages ...", qui est (à peu près , mon français est un peu rouillé, mais vérifié de l'extérieur!) "Donnez deux exemples de séquences de langues ...", plutôt que "Donnez deux exemples de langues ...". Une lecture imprudente peut cependant confondre la seconde avec la première.

Luke Mathieson
la source
1
Et en définissant comme le complément d' de , leur intersection serait également non régulière. Votre lecture en français est juste, pas seulement grossièrement . L iMiLi
Laurent LA RIZZA
Vous avez raison sur la partie traduction française. Je pensais que cette séquence n'était pas importante. haha. Merci pour la réponse, la différence est maintenant claire pour moi.
Dave
3

Pour votre deuxième question, considérez les langues définies par Observez que pour tout , est régulier, car (1) l'ensemble gauche est fini et donc régulier, (2) l'ensemble droit est désigné par l'expression régulière est donc régulier, et (3) les langues régulières sont fermées sous des unions finies, comme vous le savez déjà.

Mn={ak21kn}{ajj(n+1)2}
n1Mnanaa

Il n'est pas trop difficile de montrer que pour tout entier nous avons et donc donc inductivement nous avons (dont nous n'avons pas réellement besoin ici, mais c'est trop joli pour être laissé de côté).n1Mn+1MnMnMn+1=Mn+1

i=0nMi=Mn

Maintenant, observez que ne contient pas , donc aucune de ces chaînes sera dans l'intersection complète. En conséquence, nous aurons qui est connu pour ne pas être un langage régulier. (Si vous ne le saviez pas, c'est dans de nombreux textes théoriques et la preuve en vaut la peine.)Mnan2+1,an2+2,,a(n+1)21

i=0Mi={an2n1}
Rick Decker
la source
1

Pourquoi choisir des langues régulières compliquées pour montrer que les ensembles réguliers ne sont pas fermés sous une union infinie? Les langues singleton suffisent à montrer que toute langue RE est une union infinie d'ensembles réguliers.

Prenez une langue récursive dénombrable . Chaque chaîne a un indice d'énumération . Soit . Chaque est un ensemble singleton, donc régulier. Mais est RE.w L i = i n d e x ( w ) L i = { w i = i n d e x ( w ) } L i L = i = 1 L iLwLi=index(w)Li={wi=index(w)}LiL=i=1Li

De même, en définissant , nous avons les ensembles qui sont réguliers en complément d'un ensemble singleton. Alors qui est le complément de , donc co-RE. Et cela peut être réalisé avec n'importe quel ensemble co-RE.M i i = 1 M i = Σ LMi=ΣLiMii=1Mi=ΣLL

Par conséquent, tout langage récursif est une union infinie d'ensembles réguliers, et aussi une intersection infinie d'ensembles réguliers (pas les mêmes, mais leurs compléments :).

L'infini est plein de surprises, et ce qui est vrai pour des valeurs arbitrairement grandes peut ne pas être vrai à l'infini.

babou
la source
1

{ϵ}{a}{b}{aa}{bb}{aaa}{aba}{bab}{bbb} ...

Σ{pi}pii

Andres
la source