A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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.

2 Suponha G na FNC e seja m=2 k +1, onde k=|V|. se |w| m, então uma àrvore de derivação para w em G tem altura mínima > k S D P D x vy P A A w= S * D * A * vAy * vxy S * vAy * vvAvy = vxy * v i Ay i

3 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,…: uv i xy i z L

4 EXEMPLO: Mostre que L = {a n b n c n : n 0} não é livre de contexto. SOLUÇÃO: (dos diabos :-) 1. O diabo escolhe m; 2. tomamos a cadeia a m b m c m em L. 3. O diabo tem várias escolhas.

5 3a. Se ele escolhe vxy contendo somente as, 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 as e bs então a cadeia bombeada a k b k c k com k m pode ser gerada, e não está em L.

6 De fato, a única maneira do diabo tentar nos impedir de vencer é tomar vxy tal que vy tenha o mesmo número de as, bs e cs. Mas isto não é possível pela restrição (2): |vxy| m. Portanto, L não é livre de contexto.

7 Mais Exemplo L={ww|w {a,b}*} não é LC. Considere a cadeia a m b m a m b m ; uma possível escolha para uvxyz: –u= a m-l, v=a l, x=b m-(n+p), y=b n, z=b p a m b m mas com i (do lema) igual a zero: –a k b j a m b m, com k,j

8 Ainda mais Exemplo! L={a n b j |n=j 2 } não é LC. Seja m, do lema e a m 2 b m. De todas as escolhas possíveis aquelas que requerem mais cuida- do tem a forma geral: u=a m 2 -(k 1 +p), v=a k 1, x=a p b m-(k 2 +q), y=b k 2 e z=b q. bombeando i vezes obteremos m 2 +(i-1)k 1 as e m+(i-1)k 2 bs

9 para termos |vy|>1: –se k 1 =0 então k 2 >1 e uma cadeia com m 2 as e m-k 2 bs (i=0) não está em L; –se k 2 =0 então k 1 >1 e uma cadeia com m 2 -k 1 as e m bs (i=0) também não está em L; se k 1,k 2 >0, com i=0: (m-k 2 ) 2 (m-1) 2 = m 2 - 2m + 1 < m 2 - k 1 e a cadeia obtida não está em L.

10 Propriedades das LLCs É fechada sobre união, concatenação, fecho de Kleene e homomorfismo; mas não é fechada sob interseção nem complementação! L 1 ={a n b n c m |n,m0} L 2 ={a n b m c m |n,m0} L 1 L 2 ={a n b n c n |n0} L 1 L 2 = ( L 1 L 2 )

11 Propriedades de Decidibilidade Existe algoritmo para decidir se: –L é vazia ou não; –L é infinita ou não; –x L; Não existe para: –L(G)= * –L(G 1 ) L(G 2 ) –L(G 1 )=L(G 2 ) –L(G) é regular – L(G 1 ) L(G 2 )=


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google