Lema do Bombeamento – Gramáticas Livres do Contexto

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

Linguagens Livre-de-contexto
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Geometria Computacional Galeria de Arte
I - Noções dum compilador
LFA - Ambiguidade - Equivalência de gramáticas - Hierarquia de Chomsky
Teoria da Computação FIC– Ciência da Computação
Computabilidade e Linguagens Formais
Universidade Bandeirante de São Paulo Fundamentos da Álgebra
Forma Normal de Chomsky
Mestrado em Ciência da Computação Profa. Sandra de Amo
Envolvendo Autômatos e Linguagens Livres do Contexto
Gramáticas Livres do Contexto Revisão
Cálculo Relacional Datalog não-recursivo
Complexidade de Linguagens Influência do Modelo de Computação
Teorema da Recursão Teoria da Computação
Pós-graduação em Ciência da Computação – UFU
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.
Linguagens Livres de Contexto
Minimização; Lema do Bombeamento.
Q={s,q1,…,q10,t,r} ={a,b,c} ={├,■,} Função de transição:
Linguagens Livre de Contexto
Lema da Bomba (Pumping Lemma) para linguagens livre de contexto
esquerda p/ direita,read only
autômatos finitos com transições e
Análise Dada uma cadeia de terminais w, queremos saber se wL(G) ou não. Se for o caso, poderemos querer achar uma derivação de w. Um algoritmo que pode.
Uma variação do Lema do Bombeamento
Identificando Linguagens Não Regulares
Árvores e Árvores Binárias
Exercícios Linguagens Formais.
Quão difícil é comunicar? Andreia Teixeira 27 de Maio.
Introdução aos Sistemas de Controle
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
Lema do Bombeamento Linguagens Livres de Contexto
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Linguagens Livres de Contexto
Lema do Bombeamento Linguagens Livres de Contexto
Aula 07 – Limite e Continuidade
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III
Gramáticas Livres de Contexto
Aulas 9,10 Fábio Nakano.
GEOMETRIA AXIOMÁTICA, SEGMENTOS DE RETA
Expressões Regulares e Gramáticas
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
André Luiz da Costa Carvalho
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
Colégio Jardim São Paulo Prof. Mauricio Boni

2.3 Experimentos Fatoriais 22 Efeitos das Interações
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
BCC101 – Matemática Discreta
Redução.
Linguagens Livres de Contexto
A Classe NP Teoria da Computação Profa. Sandra de Amo.

Operações Aritméticas AULA 3 Análise de Algoritmos Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.
Engenharia/Ciência da Computação
Prof. Daniel Morais dos Reis
TEORIA DOS NÚMEROS Aula 2 – Princípio da Indução Finita
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Árvores e Árvores Binárias
Informática Teórica Engenharia da Computação
Árvores Estrutura de dados que se caracteriza por uma relação de
Transcrição da apresentação:

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 Observação: frequentemente suporemos que a gramática está na forma normal de Chomsky

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

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 – 1 + 2 = 2(k+1) – 1 C b B A C c a b a c

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

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

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

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

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.

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

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

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

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

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

Altura > k A A

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

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

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

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

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

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)

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