Montrer que {xy | x | = | y |, x ≠ y} est sans contexte


43

Je me souviens d’avoir rencontré la question suivante au sujet d’une langue supposée être sans contexte, mais j’ai été incapable de trouver une preuve de ce fait. Est-ce que je me suis peut-être mal souvenu de la question?

Quoi qu'il en soit, voici la question:

Montrer que la langue est sans contexte.L={xy|x|=|y|,xy}


5
Oh, c'est un bon! <3
Raphael

Réponses:


35

Revendication : est sans contexte.L

Idée prouvée : il doit y avoir au moins une différence entre la première et la seconde moitié; nous donnons une grammaire qui veille à en générer une et laisse le reste arbitraire.

Preuve : Pour simplifier, supposons un alphabet binaire . La preuve s'étend facilement à d'autres tailles. Considérons la grammaire :Σ={a,b}G

SABBAAaaAaaAbbAabAbBbaBaaBbbBabBb

Il est clair que cela génère

L(G)={w1kxw2v1k+lyv2l|w1|=|w2|=k,|v1|=|v2|=l,xy}Σ;

le suspect peut effectuer une induction imbriquée sur et avec une distinction de casse sur les paires . Maintenant, et commutent (intuitivement, et peuvent échanger des symboles car ils contiennent tous deux des symboles choisis indépendamment du reste du mot). Par conséquent, et ont la même position (dans leur moitié respective), ce qui implique car n'impose aucune autre restriction à son langage.kl(x,y)w2v1w2v1xyL(G)=LG


Le lecteur intéressé peut avoir deux problèmes de suivi:

Exercice 1 : Préparez un PDA pour !L

Exercice 2 : Qu'en est-il de ?{xyz|x|=|y|=|z|,xyyzxz}


Si nous utilisons cette grammaire, nous pouvons générer une chaîne du type: Après cela, nous avons obtenu un S comme abba! Ce n'est pas égal au langage brut L, y a-t-il une erreur ici? SAB Aa BbBa,thenBb
George.Zhao

@ George.Zhao je ne suis pas. Cleary, avec et ? abbaLx=aby=ba
Raphaël
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.