Comment prouver qu'une langue n'est pas sans contexte?


89

Nous avons appris la classe des langages sans contexte . Il se caractérise à la fois par des grammaires sans contexte et des automates à pile , il est donc facile de montrer qu’une langue donnée est sans contexte.CFL

Comment puis-je montrer le contraire, cependant? Mon assistante professionnelle a insisté sur le fait que, pour ce faire, il faudrait montrer à toutes les grammaires (ou automates) qu’elles ne peuvent pas décrire le langage utilisé. Cela semble être une grosse tâche!

J'ai lu sur certains lemmes de pompage, mais cela semble vraiment compliqué.


Ntpick: il est indécidable de montrer si une langue est sans contexte.
Reinierpost

1
@ reinierpost Je ne vois pas en quoi votre commentaire se rapporte à la question. Il s'agit de prouver des choses, pas de décider (par algorithme).
Raphaël

Il suffit de souligner qu'il n'est pas facile de montrer qu'une langue est sans contexte, en général . Si cela est facile pour frafl, cela doit être dû à certaines conditions spéciales qui ne sont pas valables pour les langues en général, telles que l’attribution d’un automate à pile décrivant la langue.
reinierpost

@reinierpost Ce raisonnement semble supposer qu'indécidable implique (égal à?) difficile à prouver. Je me demande si c'est vrai.
Raphaël

Réponses:


69

À ma connaissance, le lemme de pompage est de loin la technique la plus simple et la plus utilisée. Si vous trouvez cela difficile, essayez d'abord la version régulière , ce n'est pas si grave. Il existe d'autres moyens pour les langues qui sont loin d'être libres de tout contexte. Par exemple, les langues indécidables ne sont trivialement pas dépourvues de contexte.

Cela dit, je suis également intéressé par d'autres techniques que le lemme de pompage s'il en existe.

EDIT: Voici un exemple pour le lemme de pompage: supposons que la langue soit sans contexte ( est l'ensemble des nombres premiers). Le lemme de pompage a beaucoup de quantificateurs , je vais donc en faire un peu comme un jeu:P / L={akkP}P/

  1. Le lemme de pompage vous donne unp
  2. Vous donnez un mot de la langue de longueur au moinspsp
  3. Le lemme de pompage le réécrit comme : avec certaines conditions ( et )| v x y | p | v y | 1s=uvxyz|vxy|p|vy|1
  4. Vous donnez un entiern0
  5. Si n'est pas dans , vous gagnez, n'est pas sans contexte.L LuvnxynzLL

Pour cette langue particulière pour tout (avec et est un nombre premier) fera l'affaire. Alors le lemme de pompage vous donne avec . Ne réfutez pas le contexte-liberté, vous devez trouver tel quen'est pas un nombre premier.un k k p k u v x y z | v y | 1 n | u v n x y n z |sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

Et puis va faire: n'est pas premier si . Le lemme de pompage ne peut pas être appliqué, donc n'est pas sans contexte.k + k | v y | = k ( 1 + | v y | ) u v n x y n z L Ln=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Un deuxième exemple est la langue . Nous devons (bien sûr) choisir une chaîne et montrer qu'il est impossible de la diviser en cinq parties et que chaque chaîne dérivée pompée reste dans la langue.{www{a,b}}

La chaîne est un choix approprié pour cette preuve. Maintenant, il suffit de regarder où et peuvent être. Les éléments clés sont que ou doivent contenir quelque chose (peut-être les deux) et que et (et ) sont contenus dans une sous-chaîne de longueur - ils ne peuvent donc pas être trop éloignés l'un de l'autre. v y v y v y x ps=apbpapbpvyvyvyxp

Cette chaîne offre un certain nombre de possibilités quant à l'endroit où et pourraient se trouver, mais il s'avère que plusieurs cas se ressemblent beaucoup.yvy

  1. v y b * a b | v y | = k pvya ou . Ils sont donc tous deux contenus dans l’une des sections de continguous s ou s. C’est un cas relativement facile à argumenter, car peu importe le pays dans lequel ils se trouvent. Supposons que . vybab|vy|=kp
    • S'ils sont dans la première section d' s, alors, lorsque nous pompons, la première moitié de la nouvelle chaîne est , et la seconde est . Évidemment, ce n'est pas de la forme .a p + k b p - k / 2 b k / 2 a p b p w waap+kbpk/2bk/2apbpww
    • L'argument pour n'importe laquelle des trois autres sections est à peu près le même, c'est juste où et se retrouvent dans les index.k / 2kk/2
  2. vxy chevauche deux des sections. Dans ce cas , le pompage vers le bas est votre ami. Encore une fois, cela peut se produire à plusieurs endroits (trois pour être exact), mais je vais en faire un exemple, et le reste devrait être facile à comprendre à partir de là.
    • On suppose que à cheval sur la frontière entre le premier section et le premier section. Laissez (peu importe précisément où les s et s sont en et , mais nous savons qu'ils sont dans l' ordre). Puis, quand on pompe (c'est-à-dire le cas ), on obtient la nouvelle chaîne , mais si pourrait être divisé en , le milieu doit être quelque part dans la seconde section, donc la première moitié esta b v y = a k 1 b k 2 a b c y i = 0 s ' = a p - k 1 b p - k 2 a p b p s ' w w a a p - k 1 b p - k 2 a ( k 1 + k 2 )vxyabvy=ak1bk2abvyi=0s=apk1bpk2apbpswwa a p - ( k 1 + k 2 ) / 2 b p vyapk1bpk2a(k1+k2)/2et la seconde moitié est . Clairement, ce ne sont pas la même chaîne, donc nous ne pouvons pas mettre et ici.ap(k1+k2)/2bpvy

Les cas restants devraient être assez transparents à partir de là - ce sont les mêmes idées, mettant simplement et dans les 3 autres emplacements dans le premier cas, et 2 dans le second cas. Cependant, dans tous les cas, vous pouvez pomper de manière à ce que la commande soit clairement gâchée lorsque vous divisez la chaîne en deux.yvy


En effet, le jeu de kozen est le moyen d'y parvenir.
Socrates

45

Ogma Lemma

Lemma (Ogden). Soit un langage sans contexte. Il existe alors une constante telle que, pour tout et tout moyen de marquer ou plusieurs positions (symboles) de tant que "positions distinguées", peut alors être écrit sous la forme , de sorte queN z L N z z z = u v w x yLNzL Nzzz=uvwxy

  1. vx a au moins une position distinguée.
  2. Nvwx a au plus positions distinguées.N
  3. Pour tout , .u v i w x i y Li0uviwxiyL

Exemple. Soit . Supposons que est dépourvu de contexte et que soit la constante donnée par le lemme de Ogden. Soit (Qui appartient à ), et supposons que nous marquons comme distinguées toutes les positions du symbole (c'est-à-dire les premières positions de ) . Soit une décomposition de satisfaisant les conditions du lemme de Ogden.L N z = a N b N + N ! c N + 2 N ! L a N z z = u v w x y zL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!LaNzz=uvwxyz

  • Si ou contiennent des symboles différents, alors , car il y aura des symboles dans le mauvais ordre.x u v 2 w x 2 y Lvxuv2wx2yL
  • Au moins un des et doit contenir que les symboles , car seuls les ont été distingués. Ainsi, si ou , alors . Soit. Alors , ce qui signifie que divise. Laissez . Alors doit appartenir à . Cependant, . Puisque a exactement symboles , alorsx a un x L ( b * ) x L ( c * ) v L ( A + ) p = | v | 1 p N p N ! q = N ! / p z ' = u v 2 q + 1 w x 2 q + 1 y LvxaaxL(b)xL(c)vL(A+)p=|v|1pNpN!q=N!/pz=uv2q+1wx2q+1yL u w y N - p a z 2 N ! + N a v x c z 2 N ! + N c z 'L x L ( A + ) x L ( cv2q+1=a2pq+p=a2N!+puwyNpaza symboles . Mais et n'ont pas de , alors aussi symboles , ce qui signifie , ce qui contredit le lemme de Ogden. Une contradiction similaire se produit si ou . Nous concluons que n'est pas sans contexte.2N!+Navxcz2N!+NczLxL(A+)LxL(c)L

Exercice. En utilisant le lemme d'Ogden, montrez que n'est pas dépourvu de contexte.L={aibjckd:i=0 or j=k=}

Lemma de pompage

C'est un cas particulier du lemme d'Ogden dans lequel toutes les positions sont distinguées.

Lemme. Soit un langage sans contexte. Alors il existe une constante telle que pour tout , puisse s'écrire , telle queN z L z z = u v w x yLNzLzz=uvwxy

  1. |vx|>0 .
  2. |vwx|N .
  3. Pour tout , .u v i w x i y Li0uviwxiyL

Le théorème de Parikh

C'est encore plus technique que le lemme d'Ogden.

Définition. Soit . Nous définissons par où est le nombre d'apparences de dans .Ψ Σ : Σ *N n Ψ Σ ( w ) = ( m 1 , ... , m n ) , m i un i wΣ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

Définition. Un sous-ensemble de est appelé linéaire s'il peut s'écrire: N N S = { u 0 + Σ 1 i k a i u i :  pour un certain ensemble de  u iN n  et  un iN }SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

Définition. Un sous-ensemble de est appelé semi-linéaire s'il s'agit de l'union d'un ensemble fini d'ensembles linéaires.N nSNn

Théorème (Parikh). Soit un langage sur . Si est dépourvu de contexte, alors est semi-linéaire.Σ L Ψ Σ [ L ] = { Ψ Σ ( w ) : w L }LΣL

ΨΣ[L]={ΨΣ(w):wL}

Exercice. En utilisant le théorème de Parikh, montrez que n'est pas dépourvu de contexte.L={0m1n:m>n or (m is prime and mn)}

Exercice. En utilisant le théorème de Parikh, montrez que toute langue sans contexte utilisant un alphabet unaire est également régulière.


1
J'ai accepté la réponse de Jmad parce que la question mentionne explicitement Pumping Lemma. J'apprécie beaucoup votre réponse cependant; le fait de rassembler toutes les méthodes principales ici est une bonne chose.
Raphaël

1
C'est bien, mais notez que le lemme de pompage est un cas particulier du lemme d'Ogden ;-)
Janoma

Bien sûr. Pourtant, la plupart des gens vont d'abord essayer PL. beaucoup ne connaissent même pas l'OL.
Raphaël

1
Un théorème de Ginsburg et Spanier, basé sur le théorème de Parikh, donne une condition nécessaire et suffisante pour la suppression du contexte dans le cas délimité. math.stackexchange.com/a/122472
sdcvvc

Pouvez-vous définir les "positions distinguées" en termes d’autres opérations? Ou du moins de manière informelle? Je trouve la définition de l’OL copiée telle quelle dans de nombreux endroits, mais aucun d’eux jusqu’à présent ne voulait expliquer ce que cela voulait dire.
wvxvw

34

Propriétés de fermeture

Une fois que vous avez une petite collection de langages non dépourvus de contexte, vous pouvez souvent utiliser les propriétés de fermeture de comme ceci:CFL

Supposons que . Ensuite, par la propriété de fermeture X (avec Y), . Cela contredit que nous savons détenir, donc .L 'C F L L 'C F L L C F LLCFLLCFLLCFLLCFL

C'est souvent plus court (et souvent moins sujet aux erreurs) que d'utiliser l'un des autres résultats qui utilisent moins de connaissances préalables. C'est aussi un concept général qui peut s'appliquer à toutes sortes de classes d'objets.

Exemple 1: Intersection avec des langages normaux

Nous notons le langage régulier spécifié par toute expression régulière .eL(e)e

Soit . CommeL={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

et est fermé en intersection avec les langages standard, .CFLLCFL

Exemple 2: homomorphisme (inverse)

Soit . À l'homomorphismeL={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

nous avonsϕ(L)={a2nb2na2nnN}.

Maintenant avec

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

nous obtenons .L1=ψ1(ϕ(L)))

Enfin, en croisant avec le langage normal nous obtenons le langage .L1L2=L(abc)L3={anbncnnN}

Au total, nous avons .L3=L2ψ1(ϕ(L))

Supposons maintenant que était sans contexte. Ensuite, depuis est fermé contre homomorphisme, homomorphisme inverse, et l' intersection avec des ensembles réguliers, est sans contexte aussi. Mais nous savons (via Pumping Lemma, si besoin est) que n'est pas dépourvu de contexte, c'est donc une contradiction; nous avons montré que .LCFLL3L3LCFL


Échange lemme

Le lemme d'échange [1] propose une condition nécessaire à la libération du contexte, qui est encore plus forte que le lemme d' Ogden . Par exemple, il peut être utilisé pour montrer que

{xyyzx,y,z{a,b,c}+}CFL

qui résiste à beaucoup d'autres méthodes. C'est le lemme:

Soit . Ensuite, il existe une constante telle que pour tout entier , tout ensemble et tout entier avec il existe chaînes avecLCFLcLn2QnLn=LΣnmnm2k|Qn|cLn2ziQn

  1. zi=wixiyi pour ,i=1,,k
  2. |w1|=|w2|==|wk|,
  3. |y1|=|y2|==|yk|,
  4. m|x1|=|x2|==|xk|>m2 et
  5. wixjyiLn pour tout .(i,j)[1..k]2

L’appliquer signifie trouver et tels que 1.-4. tenir mais 5. est violé. L'exemple d'application donné dans l'article original est très détaillé et est donc laissé ici.n,mQn

Pour le moment, je n'ai pas de référence librement disponible et la formulation ci-dessus est tirée d'une pré-impression de [1] de 1981. J'apprécie l'aide pour retrouver de meilleures références. Il semble que la même propriété ait été (re) découverte récemment [2].


Autres conditions nécessaires

Boonyavatana et Slutzki [3] étudient plusieurs conditions similaires au lemma de pompage et d'échange.


  1. Un «lemme d'échange» pour des langues sans contexte par W. Ogden, RJ Ross et K. Winklmann (1985)
  2. Échanges de lemmes contre des langages normaux et sans contexte par T. Yamakami (2008)
  3. Les lemmes d’échange ou de pompe (DI) pour les langues sans contexte de R. Boonyavatana et G. Slutzki (1988)


19

Il n'y a pas de méthode générale, car l'ensemble des langages non dépourvus de contexte n'est pas semi-décidable (akare). S'il existait une méthode générale, nous pourrions l'utiliser pour décider en partie de cet ensemble.

La situation est encore pire car, dans le cas de deux LFC, il n'est pas possible de décider si leur intersection est également une LFC.

Référence: Hopcroft et Ullman, "Introduction à la théorie des automates, aux langages et au calcul", 1979.


2
Une question intéressante (mais probablement plus avancée et ouverte) serait la catégorisation de la sous-classe de non-CFL dont il peut être prouvé qu’elle n’est pas CFL en utilisant une méthode particulière.
Kaveh

Je ne cherche pas une calculable méthode , mais pour les techniques de preuve et stylo papier. Ce dernier n'implique pas nécessairement le premier.
Raphaël

13

Une version plus forte de la condition d’Ogden ( OC ) est la

État de Bader-Moura (BMC)

Un langage satisfait BMC s’il existe une constante telle que si et nous y étiquetons les positions "distinguées" et "exclues", avec , on peut alors écrire tel que:LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. e ( v x ) = 0d(vx)1 ete(vx)=0
  2. d(vwx)ne(vwx)+1 et
  3. pour chaque , est en .u v i w x i y Li0uviwxiyL

Nous disons qu'une langue si satisfait à la condition de Bader-Moura.LLBMC(Σ)L

Nous avons , de sorte que BMC est strictement plus fort que OC.CFL(Σ)BMC(Σ)OC(Σ)

Référence: C. Bader, A. Moura, Une généralisation du lemme d'Ogden. JACM 29, no. 2, (1982), 404–407


2
Pourquoi ne pas aller juste tout le chemin à la généralisation de Dömösi et Kudlek de dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: Je ne le savais pas! :-) ... peut-être pouvez-vous l'afficher comme nouvelle réponse en indiquant que OC, BMC, PC en sont des cas particuliers (tous distingués ou aucun poste exclu).
Vor

vous êtes invités à l'afficher, vous n'avez pas le temps pour l'instant.
András Salamon le

Cette réponse tirerait profit d'un exemple.
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.