1 / 22

Lema do Bombeamento – Gramáticas Livres do Contexto

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

evette
Télécharger la présentation

Lema do Bombeamento – Gramáticas Livres do Contexto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 S Prova : Por indução sobre n a Base da indução |w| = 1 1 regra aplicada Tamanho da derivação = 1 2. 1 – 1 = 1 Logo : Tamanho da derivação = 2n-1 w = a

  4. C A B b 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çãode w = 2k – 1 + 2 = 2(k+1) – 1 C c a b a c

  5. Caminhos na árvore de derivação Caminho = S – A1 – A2 - ... – 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 ? S 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 B S a 1 C a A 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. 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. S A A x y v w u A x w v Como detectar se uma linguagem não é livre do contexto ? S A u v x x y y

  11. S B A A A C C S -> AB S->a A-> AC A -> a B-> AC C -> c C-> AB A C c a c B A a a A C B A a A C a 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. S a ca a a a a cc z = B A u v w x y A A A C a ca aa a a a a ca a c c C x y x w u v v A C A C c a ca aa aa a a a a ca a ca a c c a c u y x x v x v v w B B B B S S S A a a C a a C C A A S A B B B A a a A C C A a a A C c c a 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-1entã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 de SA≤ k+1 Subárvore SA Altura > k A 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 = 000...0 111...1 22...2 = 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

More Related