Il est bien connu que le complément de est sans contexte. Mais qu'en est-il du complément de ?
fl.formal-languages
context-free
domotorp
la source
la source
Réponses:
Toujours CFL je crois, avec une adaptation de la preuve classique. Voici un croquis.
ConsidéronsL={xyz:|x|=|y|=|z|∧(x≠y∨y≠z)} , qui est le complément de {www} , avec les mots de longueur non 0 mod 3 supprimés.
SoitL′={uv:|u|≡3|v|≡30∧u2|u|/3≠v|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′ .
Par conséquent, enw , c'est la position:
|u|+|v|/3=3p/2+|w|/3−p/2=|w|/3+p,
ou, en d'autres termes, positionnez p en y . Cela montre que u2|u|/3=xp≠yp=v|v|/3 .
Siyp≠zp , alors soit u les 3 premiers32(|w|/3+p) caractères dew , de sorte queu2|u|/3 estyp ; v est le reste dew . Alors:
|u|+|v|/3=2|w|/3+p
donc de même,v|v|/3=zp .
la source
Voici la façon dont je pense à résoudre ce problème, avec un PDA. À mon avis, c'est intuitivement plus clair.
Un motx 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 entiert 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 enregistrert:=|x|−3d , où d est la distance entre ces deux symboles.
Nous accomplissons ceci comme suit: incrémentezt 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 a≠b . Continuez à incrémenter t pour les symboles d'entrée suivants. Acceptez si t=0 (détectable par Z en haut) eta≠b .
La bonne chose à ce sujet est qu'il devrait être très clair comment étendre cela à des pouvoirs arbitraires.
la source
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 wi≠wi+1 . Nous nous concentrons sur w1≠w2 et commençons par une simple grammaire CF qui génère:
Par exemple pourk=3 , nous avons L={ab0,a0b000,a00b00000,...} ,GL={S→ab0|aX00,X→0X00|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
Appliquer la fermeture sous des décalages cycliques àL′ pour obtenir l'ensemble des chaînes de longueur kn non de la forme wk :
Enfin, ajoutez l'ensemble régulier de chaînes dont la longueur n'est pas divisible park afin d'obtenir exactement le complément de {wk} :
la source