Est le complément de {www | …} Sans contexte?


12

Il est bien connu que le complément de est sans contexte. Mais qu'en est-il du complément de ?{wwwΣ}{wwwwΣ}


1
J'ai découvert qu'il s'agit du Théorème 4 de P. Dömösi, S. Horváth, M. Ito, L. Kászonyi, M. Katsura: Langages formels composés de mots primitifs. link.springer.com/chapter/10.1007/3-540-57163-9_15
domotorp

Réponses:


11

Toujours CFL je crois, avec une adaptation de la preuve classique. Voici un croquis.

Considérons L={xyz:|x|=|y|=|z|(xyyz)} , qui est le complément de {www} , avec les mots de longueur non 0 mod 3 supprimés.

Soit L={uv:|u|3|v|30u2|u|/3v|v|/3} . Clairement, L est CFL, puisque vous pouvez deviner une position p et considérer que u se termine p/2 après cela. Nous montrons que L=L .

  • LL : Soitw=xyzL . Supposons qu'il existe unp tel quexpyp . Écrivez ensuiteu pour les3p/2 premiers caractères p / 2 dew etv pour les autres. Naturellement,u2|u|/3=xp . Maintenant qu'est-ce quev|v|/3 ? Première:

|v|/3=(|w|3p/2)/3=|w|/3p/2.

Par conséquent, en w , c'est la position:

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
ou, en d'autres termes, positionnez p en y . Cela montre que u2|u|/3=xpyp=v|v|/3 .

Si ypzp , alors soit u les 3 premiers32(|w|/3+p)caractères dew, de sorte queu2|u|/3estyp; vest le reste dew. Alors:

|u|+|v|/3=2|w|/3+p
donc de même,v|v|/3=zp.

  • LL : Nous inversons le processus précédent. Soitw=uvL . Écrivezp=2|u|/3 . Alors:
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    Ainsiwp=u2|u|/3v|v|/3=wp+|w|/3 , etwL (puisque siw est de la formexxx , il doit contenir quewp=wp+|w|/3 pour toutp ).

2
Wow, incroyable! Je ne prétends pas avoir suivi tous les détails de votre argument, comme je ne vois pas ce que vous entendez par la dernière ligne («Pour le dernier bit»), ni pourquoi vous ne séparez pas le cas lorsque , mais votre solution fonctionne finalement. Je résumerais l'astuce principale comme 3 a + 3 b = 2 a + ( b - a ) + 2 a + 2 b . L'astuce similaire fonctionne également pour le complément de tout L r = { w r|w|/3<p/23a+3b=2a+(ba)+2a+2b . Je me demande si L = { x y z : | x | = | y | = | z | ( x y ) } est sans contexte ou non. Lr={wr}L={xyz:|x|=|y|=|z|(xy)}
domotorp

1
@domotorp: Cheers! D'accord, "le dernier morceau" n'était pas nécessaire, merci! Quant au "cas où ", je ne sais pas où vous voulez dire cela. Ai-je oublié quelque chose? Quant à votre L ' , je me suis demandé la même chose en faisant cette "preuve"! Pas encore sûr :)|w|/3<p/2L
Michaël Cadilhac

2
Oh, mon mauvais, tient toujours! p/2|w|/3
domotorp

Ce n'est probablement pas un problème, mais peut être étrange, vous devez donc gérer les cas | u | = 3 p / 2 ( ? ) Lorsque p est impair. p|u|=3p/2(?)p
Marzio De Biasi

@MarzioDeBiasi: Oui, c'est précisément pourquoi il s'agit d'un croquis :-)
Michaël Cadilhac

10

Voici la façon dont je pense à résoudre ce problème, avec un PDA. À mon avis, c'est intuitivement plus clair.

Un mot x n'est pas de la forme www ssi (i) |x|0 (mod 3), ce qui est facile à vérifier, ou (ii) il existe un symbole d'entrée a différent du symbole b correspondant qui se produit |w|positions plus tard.

Nous utilisons l'astuce habituelle d'utiliser la pile pour maintenir un entier t en ayant un nouveau symbole "bas de pile" Z , stockant la valeur absolue |t|comme le nombre de compteurs sur la pile, et sgn ( t ) par l'état du PDA. Ainsi, nous pouvons incrémenter ou décrémenter t en effectuant l'opération appropriée.

Le but est d'utiliser le non-déterminisme pour deviner les positions des deux symboles que vous comparez et d'utiliser la pile pour enregistrer t:=|x|3d , où d est la distance entre ces deux symboles.

Nous accomplissons ceci comme suit: incrémentez t pour chaque symbole vu jusqu'à ce que le premier symbole deviné a soit choisi, et enregistrez a dans l'état. Pour chaque symbole d'entrée suivant, jusqu'à ce que vous décidiez d'avoir vu b , décrémentez t de 2 ( 1 pour la longueur d'entrée et 3 pour la distance). Devinez la position du deuxième symbole b et notez si ab . Continuez à incrémenter t pour les symboles d'entrée suivants. Acceptez si t=0 (détectable par Z en haut) etab .

La bonne chose à ce sujet est qu'il devrait être très clair comment étendre cela à des pouvoirs arbitraires.


2
En effet, très soigné!
domotorp

1
Ah, bien mieux en effet :-)
Michaël Cadilhac

4

Juste une perspective différente ("orientée grammaire") pour prouver que le complément de {wk} est CF pour tout k fixe utilisant des propriétés de fermeture.

Notons tout d'abord que dans le complément de {wk} il y a toujours i tel que wiwi+1 . Nous nous concentrons sur w1w2 et commençons par une simple grammaire CF qui génère:

L={a00...0w1b00...0w2...000...0wk|wi|=n}={a0n1b0n(k1)1}

Par exemple pour k=3 , nous avons L={ab0,a0b000,a00b00000,...} ,GL={Sab0|aX00,X0X00|0b0}

Appliquer ensuite la fermeture sous homomorphisme inverse et l' union :

Premier homomorphisme: φ(1)a,φ(0)b,φ(1)0,φ(0)0

Deuxième homomorphisme: φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L) est toujours sans contexte

Appliquer la fermeture sous des décalages cycliques à L pour obtenir l'ensemble des chaînes de longueur kn non de la forme wk :

L=Shift(L)={uuwk|u|=kn} .

Enfin, ajoutez l'ensemble régulier de chaînes dont la longueur n'est pas divisible par k afin d'obtenir exactement le complément de {wk} :

L{{0,1}nnmodk0}={uuwk}

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.