110 likes | 256 Views
Lema da Bomba ( Pumping Lemma ) para linguagens livre de contexto. Este lema é útil para mostrar que uma dada linguagem não é uma linguagem livre de contexto. Seu uso é análogo àquele visto para linguagens regulares. D. S. P. P’. A. D. . . . . A. . v. y. x.
E N D
Lema da Bomba (Pumping Lemma) para linguagens livre de contexto • Este lema é útil para mostrar que uma dada linguagem não é uma linguagem livre de contexto. • Seu uso é análogo àquele visto para linguagens regulares.
D S P P’ A D A v y x • Suponha G na FNC e seja m=2k+1, onde k=|V|. • se |w| m, então uma àrvore de derivação para w em G tem altura mínima > k w= =vxy S*D*A*vAy*vxy S*vAy*vvAvy *viAyi
Teorema. Seja L uma linguagem livre de contexto infinita. Então existe algum inteiro positivo m tal que para qualquer w L com |w| m ela pode ser decomposta como w = uvxyz (1) com |vxy| m (2) e |vy| 1 (3) tal que, para todo i =0,1,2,…: uvixyiz L
EXEMPLO: Mostre que L = {anbncn : n 0} não é livre de contexto. SOLUÇÃO: (dos diabos :-) 1. O diabo escolhe m; 2. tomamos a cadeia ambmcm em L. 3. O diabo tem várias escolhas.
3a. Se ele escolhe vxy contendo somente a’s, então o bombeamento acarreta obviamente que a cadeia não está em L. 3b. Se ele escolhe uma cadeia contendo número igual de a’s e b’s então a cadeia bombeada akbkck com km pode ser gerada, e não está em L.
De fato, a única maneira do diabo tentar nos impedir de vencer é tomar vxy tal que vy tenha o mesmo número de a’s, b’s e c’s. Mas isto não é possível pela restrição (2): |vxy| m. Portanto, L não é livre de contexto.
Mais Exemplo L={ww|w{a,b}*} não é LC. • Considere a cadeia ambm ambm; • uma possível escolha para uvxyz: • u= am-l, v=al, x=bm-(n+p), y=bn, z=bpambm • mas com i (do lema) igual a zero: • ak bjambm, com k,j<m, e não está em L • outras escolhas são análogas.
Ainda mais Exemplo! L={anbj|n=j2} não é LC. • Seja m, do lema e am2bm. • De todas as escolhas possíveis aquelas que requerem mais cuida-do tem a forma geral: • u=am2-(k1+p), v=ak1, x=apbm-(k2+q), y=bk2 e z=bq. • bombeando i vezes obteremos m2+(i-1)k1 a’s e m+(i-1)k2 b’s
para termos |vy|>1: • se k1=0 então k2>1 e uma cadeia com m2 a’s e m-k2 b’s (i=0) não está em L; • se k2=0 então k1>1 e uma cadeia com m2-k1 a’s e m b’s (i=0) também não está em L; • se k1,k2>0, com i=0: (m-k2)2 ≤ (m-1)2 = m2 - 2m + 1 < m2 - k1 • e a cadeia obtida não está em L.
Propriedades das LLCs • É fechada sobre união, concatenação, fecho de Kleene e homomorfismo; • mas não é fechada sob interseção nem complementação! • L1={anbncm|n,m≥0} • L2={anbmcm|n,m≥0} • L1L2={anbncn|n≥0} • L1L2=(L1 L2)
Propriedades de Decidibilidade • Existe algoritmo para decidir se: • L é vazia ou não; • L é infinita ou não; • xL; • Não existe para: • L(G)=* • L(G1)L(G2) • L(G1)=L(G2) • L(G) é regular • L(G1)L(G2)=