Ma question porte essentiellement sur trois langues A, B et L, où L est A et B concaténés ensemble et B se révèle non régulier, est-il possible de trouver un A qui rend L régulier?
formal-languages
regular-languages
Kenny Loveall
la source
la source
Réponses:
Si nous permettonsA être la langue vide, qui est régulière, alors nous avons cette L={w1w2|w1∈A,w2∈B}=∅=A .
Pour le problème légèrement plus intéressant dans lequel A doit être un langage régulier non vide, alors nous pouvons construire unB de telle sorte qu'aucun non vide A entraîne une L
LaisserB={bcndn|n>0} . LaisserA être une langue régulière et considérer L={w1w2|w1∈A,w2∈B} . Notez que, contrairement à l'hypothèse de J.-E. Réponse de Pin,B est irrégulier mais ne contient pas le mot vide.
SupposerL est régulier. Il existe des DFA,M=(S,Σ,δ,q0,F) , qui accepte L . Peu importe commentA est construit, nous savons que chaque mot L doit avoir une dernière occurrence de b . LaisserQ être l'ensemble des États parcourus immédiatement après la dernière b dans toutes les traversées acceptables possibles. Notez queQ ne peut pas être vide, car la chaîne la plus courte de B est bcd . LaisserS′ être l'ensemble des états visités dans toutes les traversées acceptables possibles à un moment donné après la dernière b . ConstructionM′=(S′,Σ,δ′,q′0,F) , où δ′ se comporte de façon identique à δ , sauf pour le fait que δ′(q0,ε)=Q .
Je déclare que ce NFA accepte la langueC={cndn|n>0} . Pour toutew′∈C , nous devons avoir qu'il y a une certaine traversée d'un élément de Q à un élément de F , depuis M doit accepter une chaîne avec ceci comme suffixe. Pour toutew′∈Σ∗∖C , nous pouvons choisir un w∈A et former le mot wbw′ . SiM′ accepte w′ , il faut alors que M accepte wbw′ , car il doit y avoir eu une traversée d'un état dans Q à F qui est également valable pour M . Cependant, en raison de notre choix dew′ , il ne peut pas être le cas wbw′∈L , donc M′ doit rejeter w′ .
DoncM′ accepte C , mais ce langage n'est pas régulier, ce qui conduit à une contradiction.
Par conséquent, siA n'est pas vide, alors L ne peut pas être régulier.
la source
Oui c'est possible. Prenons l'exemple donné ci-dessous:
LaisserB=1p où p est premier. Ce n'est pas régulier. LaisserA=1n où n∈N . C'est régulier.
la source
LaisserΣ être un alphabet non vide. LaisserB être une langue non régulière surΣ contenant le mot vide et laissez A=Σ∗ . alorsL=AB=A est régulier.
la source
Étant donné une langueB , la langue ∅B=∅ est régulier. En dehors de cette solution triviale, il n'est pas toujours possible de trouver une langue non videA tel que AB={uv∣u∈A∧v∈B} est régulier. Il est possible pour de nombreux non réguliersB (par exemple, siB contient le mot vide , ou siB est sur un alphabet unaire ) mais pas pour tousB .
PrendreB={can∣n∈P} où P est l'ensemble des nombres premiers. Peu importeA est, si A n'est pas vide alors AB n'est pas régulier, car pour tester l'appartenance à AB , il est nécessaire (en raison du symbole «bouchon» c ) pour utiliser une mémoire potentiellement illimitée pour tester la primauté du nombre de a est à la fin.
Pour le prouver, laissezu∈A (puisque nous avons supposé que A n'est pas vide). SiAB est régulier, alors L1=AB∩uca∗ , tout comme le quotient gauche deL1 par le singleton {uc} lequel est L2={w∣ucw∈AB∧ucw∈uca∗}={w∈a∗∣ucw∈AB} . Cette langue est justeL3={an∣n∈P} (si w∈L2 alors il existe v∈A et k∈N tel que ucw=vcak , et depuis w contient b ^ kno c , Cela implique que w=ak∈L3 ; inversement, siw∈L3 puis cw∈B donc ucw∈AB ). L3 est une langue non régulière bien connue, nous avons une contradiction.
la source
Alors que votre question demande une preuve existentielle, elle me rappelle la branche de comp. sci. appelé Approximations régulières.
L'idée est de prendre une langue non régulièreL puis trouver une langue régulière A tel que L⊖A→0 sous une certaine condition / sous-ensemble de L (où ⊖ est la différence symétrique ), c'est-à-dire trouver un langage régulier qui est "arbitrairement proche" deL pour un sous-ensemble qui vous tient à cœur. Souvent, vous accomplissez cela en prenant un sous-ensemble fini deL avec une grande mesure sur votre sous-ensemble d'intérêt, puis concaténer avec une langue régulière soigneusement choisie.
Vous pouvez trouver de nombreuses lectures intéressantes sur Google Scholar si vous recherchez quelque chose comme "approximation du langage normal sans contexte".
la source