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

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

Lema do Bombeamento – Gramáticas Livres do Contexto Programa de Pós-Graduação em Ciência da Computação Profa. Sandra de Amo.

Apresentações semelhantes


Apresentação em tema: "Lema do Bombeamento – Gramáticas Livres do Contexto Programa de Pós-Graduação em Ciência da Computação Profa. Sandra de Amo."— Transcrição da apresentação:

1 Lema do Bombeamento – Gramáticas Livres do Contexto Programa de Pós-Graduação em Ciência da Computação Profa. Sandra de Amo

2 Forma Normal de Chomsky Toda gramática livre do contexto é equivalente a uma gramática onde as regras são do tipo: Toda gramática livre do contexto é equivalente a uma gramática onde as regras são do tipo: A BC ou A a Observação: frequentemente suporemos que a gramática está na forma normal de Chomsky Observação: frequentemente suporemos que a gramática está na forma normal de Chomsky

3 Relação entre tamanho da palavra e tamanho da derivação Se |w| = n então o tamanho da derivação de w é 2n-1 |w| = 1 S w = a a Prova : Por indução sobre n Base da indução 1 regra aplicada Tamanho da derivação = – 1 = 1 Logo : Tamanho da derivação = 2n-1

4 Hipótese de Indução Suponhamos que para toda palavra de comprimento k o tamanho de uma derivação é 2k-1 Seja w uma palavra de comprimento k+1. No exemplo: w=aba...c b aba c Construimos uma outra Gramática G substituindo a regra C AB por C c A palavra u= aba....c é gerada por G e tem comprimento k, já que |w| = k+1 Pela Hipótese de Indução : tamanho da derivação de u = 2k – 1 Tamanho da derivação de w = 2k – = 2(k+1) – 1 b BA C C c

5 Caminhos na árvore de derivação Caminho = S – A1 – A – An onde S, A1,...,An são variáveis (nós internos) onde S, A1,...,An são variáveis (nós internos) cada A1 é filho de S e cada A i é filho de A i-1 S A1 B A2 a b bc

6 Quando um caminho contém variáveis repetidas ? Seja K = Número de variáveis da gramática. Seja K = Número de variáveis da gramática. Se o caminho tem tamanho maior ou igual a K então com certeza contém variáveis repetidas Se o caminho tem tamanho maior ou igual a K então com certeza contém variáveis repetidas

7 Quando um caminho da raiz até o nível logo acima de uma folha contém variáveis repetidas ? CA A c S A A C c a a S B B A C a ac K = 4 C S -> AB S->a A-> AC A -> a B-> AC C -> c C-> SB Variáveis repetidas

8 Qual a relação entre o tamanho da palavra gerada e o tamanho máximo dos caminhos da árvore de derivação ? Teorema : Se todos os caminhos têm comprimento n então a palavra derivada tem comprimento 2 n-1 Tamanho do maior caminho = Número de níveis da árvore de derivação Se número de níveis = n então : Número máximo de elementos na última camada = 2 n-1 Nivel 1 Nivel 2 Nivel n-1 Nivel n-2 Nivel n

9 Consequentemente : Se a palavra derivada tem comprimento > 2 n-1 então existe um caminho de comprimento > n Portanto: Seja K = Número de variáveis da gramática Se a palavra derivada tem comprimento > Se a palavra derivada tem comprimento > 2 K-1 existe um caminho de comprimento > K então existe um caminho de comprimento > K Se um caminho tem tamanho > K então com certeza contém variáveis repetidas.

10 Como detectar se uma linguagem não é livre do contexto ? S A A u vw xy S A uvxy A v w x xy

11 S -> AB S->a A-> AC A -> a B-> AC C -> c C-> AB z = a c a a a a a c c C A c S A A C C c a a A B B ACa c K = número de variáveis da gram. = 4 |z| = 9 > = 8 A B a AC a a A

12 C S A A C a a S B B A C c A B AC a a S B A S B A C AC a c a c c a c a a a a a c c a c a a a a a a a c a a c c a c a a a a a a a a a c a a c a a c c a a C a S B A A B A A B A C A C a c a a a C u v wxy z = uv v w x x y u v v v w x x x y

13 Como detectar se uma linguagem nao é livre do contexto ? Se L é livre do contexto então Se L é livre do contexto então Existe n > 0 (n > 2 K-1, K = número de variáveis da gramática que gera L) tal que Existe n > 0 (n > 2 K-1, K = número de variáveis da gramática que gera L) tal que Para toda palavra z em L com |z| > n Para toda palavra z em L com |z| > n Existe uma maneira de dividir z em 5 partes Existe uma maneira de dividir z em 5 partes – z = u v w x y Para todo i 0 Para todo i 0 – u v i w x i y pertence a L

14 Restrição na quebra em 5 Restrição na quebra em 5 Se |z| > n = 2 k-1 então existe maneira de dividir z em 5 partes : z = u v w x y tal que : |v w x| n Prova: Se |z| = n > 2 k-1 então existe caminho de comprimento > k Consideremos um destes caminhos Subimos k+1 nós a partir do último nó Com certeza encontramos no caminho 2 nós com a mesma variável A Considere o nó contendo a segunda ocorrência da variável A e pegue a subárvore S A com raiz neste nó. Este vai ser o nó que norteará a divisão de Z em 5 partes. A palavra gerada pela subárvore S A é z = v w x Altura de S A é k +1 Logo |z| 2 k n

15 Altura > k A A

16 Subárvore S A Altura > k A A Altura de S A k+1 Palavra derivada por S A tem comprimento 2k n

17 Como detectar se uma linguagem nao é livre do contexto ? Se o texto abaixo não é verdadeiro então Se o texto abaixo não é verdadeiro então L não é livre do contexto L não é livre do contexto Existe n > 0 (n = 2 K-1, K = número de variáveis da gramática que gera L) tal que Existe n > 0 (n = 2 K-1, K = número de variáveis da gramática que gera L) tal que Para toda palavra z em L com |z| > n Para toda palavra z em L com |z| > n Existe uma maneira de dividir z em 5 partes Existe uma maneira de dividir z em 5 partes – z = u v w x y – | vwx | n – | vx | > 0 tal que (JUSTIFIQUE !!) Para todo i 0 Para todo i 0 – u v i w x i y pertence a L

18 Logo, se a condição abaixo é verificada então L não é livre do contexto Para todo n > 0 Para todo n > 0 Existe uma palavra z em L com |z| > n Existe uma palavra z em L com |z| > n Para toda maneira de dividir z em 5 partes Para toda maneira de dividir z em 5 partes – z= u v w x y – | vwx | n – | vx | > 0 tal que Existe i 0 Existe i 0 – u v i w x i y não pertence a L

19 Condição suficiente para L não ser livre do contexto Para todo n > 0 Para todo n > 0 Existe uma palavra z em L com |z| > n Existe uma palavra z em L com |z| > n Para toda maneira de dividir z em 5 partes Para toda maneira de dividir z em 5 partes – z = u v w x y – | vwx | n – | vx | > 0 tal que Existe i 0 Existe i 0 – u v i w x i y não pertence a L

20 Exemplos Vimos que L = {0 k 1 k | k 0 } não é regular. Vimos que L = {0 k 1 k | k 0 } não é regular. Entretanto L é livre do contexto Entretanto L é livre do contexto L = L(G) L = L(G) S ε S ε S 0 S 1 S 0 S 1

21 Exemplo Mostrar que {0 k 1 k 2 k | k 0} não é livre do contexto (não é gerada por uma Gramática LC) Seja n > 0 Considere w = = 0 n 1 n 2 n Seja w = u v w y x com |vwy| n Então necessariamente uma das possibilidades a seguir se verifica: 1) vwy está contida no grupo de 0 s. Neste caso quando bombeamos v e y obtemos uma palavra com mais 0 s do que 1 s ou 2 s. 2) vwy está contida no grupo de 2 s. Análogo a (1) 3) vwy está contida no grupo de 1 s. Análogo a (1) 4) v contém 0 s e 1 s: bombeando v obtemos uma palavra que não está na linguagem (conterá 0 s seguidos de 1 s) 5) v contém 1 s e 2 s: Análogo a (4)

22 Linguagens Regulares Linguagens livres do contexto Linguagens Turing Decidíveis Todas as linguagens


Carregar ppt "Lema do Bombeamento – Gramáticas Livres do Contexto Programa de Pós-Graduação em Ciência da Computação Profa. Sandra de Amo."

Apresentações semelhantes


Anúncios Google