Existe-t-il des permutations et une grammaire sans contexte de taille polynomiale (dans | w | = n ) qui décrivent le langage fini { w π 1 ( w ) π 2 ( w ) } sur l'alphabet { 0 , 1 } ?
MISE À JOUR: Pour une permutation c'est possible. π est l'inversion ou la modification relativement mineure de l'inversion.
Réponses:
Forme normale de Chomsky
Un CFG est en CNF (forme normale de Chomsky) si les seules productions sont de la forme et A → B C ; une grammaire peut être amenée à CNF avec seulement une explosion quadratique.A→a A→BC
Pour une grammaire en CNF, nous avons le joli sous-lemme: si G génère un mot w , alors pour chaque ℓ ≤ w , il y a un sous-mot x de w de longueur ℓ / 2 ≤ | x | < ℓ qui est généré par un non-terminal de G . Preuve: Descendez l'arbre de syntaxe (binaire), en allant toujours vers l'enfant qui génère le sous-mot le plus long. Si vous avez commencé avec un sous-mot de taille au moins ℓ , vous ne pouvez pas être passé en dessous de ℓ / 2 .G G w ℓ≤w x w ℓ/2≤|x|<ℓ G ℓ ℓ/2
Solution
Sans perte de généralité, nous pouvons supposer qu'une grammaire pour (un tel langage avec π 1 , π 2 ∈ S n spécifique ) est en forme normale de Chomsky. Le langage L n est composé des mots w ( x ) = x π 1 ( x ) π 2 ( x ) pour tout x ∈ { 0 , 1 } n .Ln π1,π2∈Sn Ln w(x)=xπ1(x)π2(x) x∈{0,1}n
Plus d'exemples
J'apprécierais une référence pour cette méthode de preuve.
la source