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→aA→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 .GGwℓ≤wxwℓ/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∈SnLnw(x)=xπ1(x)π2(x)x∈{0,1}n
w(x)s(x)
n2≤|s(x)|<n
A(x)p(x)
p(x)=p(y)A(x)=A(y)|s(x)|<ns(x)xπ2(x)w(x)xw(x)xαs(x)βA(x)s(x)s(x)=s(y)
s(y)π1(y)π2(y)n/4n/4y23n/4y∈{0,1}np(x)=p(y)A(x)=A(y)3np(y)
2n/43n
π1,π2∈S{0,1}nnn/4πi(y)23n/4y
Plus d'exemples
N0N≥1
J'apprécierais une référence pour cette méthode de preuve.