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

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

Lema do Bombeamento – Gramáticas Livres do Contexto

Apresentações semelhantes


Apresentação em tema: "Lema do Bombeamento – Gramáticas Livres do Contexto"— 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: A  BC ou A  a 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 Prova : Por indução sobre n S Base da indução a |w| = 1 1 regra aplicada Tamanho da derivação = 1 2. 1 – 1 = 1 Logo : Tamanho da derivação = 2n-1 w = a

4 Suponhamos que para toda palavra de comprimento k
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 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 C b B A C c a b a c

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

6 Quando um caminho contém variáveis repetidas ?
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

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

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 ≤ 2n-1 Tamanho do maior caminho = Número de níveis da árvore de derivação Se número de níveis = n então : Nivel 1 Nivel 2 Nivel n-2 Número máximo de elementos na última camada = 2n-1 Nivel n-1 Nivel n

9 Se a palavra derivada tem comprimento > 2n-1
Consequentemente : Se a palavra derivada tem comprimento > 2n-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 > 2K-1 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 ?
w x y S A A v w x u v x x y y

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 a c K = número de variáveis da gram. = 4 |z| = 9 > 24-1 = 8

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

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

14 Restrição “na quebra em 5”
Se |z| > n = 2k-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 > 2k-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 SA 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 SA é z’ = v w x Altura de SA é ≤ k +1 Logo |z’| ≤ 2k ≤ n

15 Altura > k A A

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

17 Como detectar se uma linguagem nao é livre do contexto ?
Se o texto abaixo não é verdadeiro então L não é livre do contexto Existe n > 0 (n = 2K-1, K = número de variáveis da gramática que gera L) tal que Para toda palavra z em L com |z| > n 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 u vi w xi y pertence a L

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

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

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

21 Exemplo Mostrar que {0k1k2k | k ≥ 0} não é livre do contexto (não é gerada por uma Gramática LC) Seja n > 0 Considere w = = 0n1n2n Seja w = u v w y x com |vwy| ≤ n Então necessariamente uma das possibilidades a seguir se verifica: 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. vwy está contida no grupo de 2’s. Análogo a (1) vwy está contida no grupo de 1’s. Análogo a (1) 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) v contém 1’s e 2’s: Análogo a (4)

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


Carregar ppt "Lema do Bombeamento – Gramáticas Livres do Contexto"

Apresentações semelhantes


Anúncios Google