Lema do Bombeamento Linguagens Livres de Contexto

Documentos relacionados
Lema do Bombeamento Linguagens Livres de Contexto

Lema do Bombeamento Motivação

Lema do Bombeamento. Aplicação para Linguagens Regulares e Livres de Contexto. Maria Adriana Vidigal de Lima. Abril

Propriedades das Linguagens Livres do Contexto

Linguagens Não-Regulares

Segunda Lista de Exercícios 2004/2...

Faculdade de Computação

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Complexidade de Tempo

Linguagens Formais e Autômatos P. Blauth Menezes

Terceira Lista de Exercícios 2004/2...

Linguagens Livres-do-Contexto

Lema do Bombeamento para Linguagens Livres do Contexto

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção

MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3

Problemas Algoritmicos

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

AFNs, Operações Regulares e Expressões Regulares

Linguagens Regulares, Operações Regulares

Modelos Universais de Computação

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

LR's: Lema do Bombeamento e Propriedades de Fechamento

Linguagens Regulares, Operações Regulares

Primeira Maratona de Matemática - Gabarito

Aula de 28/10/2013. sticas; Implementação. em Ruby

Teoria dos Conjuntos. (Aula 6) Ruy de Queiroz. O Teorema da. (Aula 6) Ruy J. G. B. de Queiroz. Centro de Informática, UFPE

Aula 8: Gramáticas Livres de Contexto

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Existem infinitos números de Carmichael, mas não provaremos isso neste curso.

Os números primos de Fermat complementam os nossos números primos, vejamos: Fórmula Geral P = 2 = 5 = 13 = 17 = 29 = 37 = 41 = Fórmula Geral

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Estruturas de Dados II

Dedução Indução Contra-exemplos Contradição Contrapositiva Construção Diagonalização

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Raiz, filho, pai, irmão, ancestral, descendente, folha.

Análise Sintática Bottom-up

Linguagens Livres de Contexto

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Aula 7: Autômatos com Pilha

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Linguagens Formais e Autômatos P. Blauth Menezes

Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações

14.1 Linguagens decidíveis ou Turing reconhecíveis

Estrutura de Dados: Aula 3 - Linguagem C

MA21: Resolução de Problemas - gabarito da primeira prova

Analisadores Sintáticos LR

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

Os números reais. Capítulo O conjunto I

Dada uma gramática G = (V, T, P, S), tal que ε ² L(G), construir G, sem produções-ε, de modo a que L(G) = L(G ).

Variantes de Máquinas de Turing

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

a * Lema do Bombeamento Linguagens regulares e não-regulares

Marcos Castilho. DInf/UFPR. 21 de março de 2019

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Capítulo II Gramáticas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 13 a Aula Definição de tipos

Aula 9: Máquinas de Turing

Expressões regulares

LLC's: Lema do Bombeamento e Propriedades de Fechamento

Lógica Proposicional

Linguagens Livres de Contexto

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Bases Matemáticas. Como o Conhecimento Matemático é Construído. Aula 2 Métodos de Demonstração. Rodrigo Hausen. Definições Axiomas.

Teoria da Computação Aula 02 Introdução

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Linguagens Livres de Contexto

Gramáticas Livres de Contexto

Introdução à Teoria dos Grafos. Isomorfismo

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

Linguagens Formais e Autômatos P. Blauth Menezes

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Análise Sintática Introdução

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Árvores - Conceitos. Roseli Ap. Francelin Romero

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

BCC242. Auômato Finito Determinístico

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Universidade Federal de Mato Grosso Estrutura de Dados II

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.

Linguagens Formais - Preliminares

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Transcrição:

Lema do Bombeamento Linguagens Livres de Contexto

Agenda Lema do Bombeamento para CFL s Motivação Teorema Prova Exemplos de provas usando o lema

0 Bombeando FA s 1 x y z 1 0 1 0 Strings de comprimento 3 ou mais no AFD acima podem ser bombeados, pois tais strings correspondem a caminhos de comprimento 3, e portanto visitam 4 vértices. O princípio da Casa dos Pombos guarante então que algum vértice é visitado mais de uma vez, resultando em um ciclo de bombeamento.

Bombeando PDA s (, ε X ), X ε q ε, ε $ r ε, $ ε s Entretanto, o lema de bombeamento para linguagem regular falha nesse exemplo. Q: Dê um exemplo de string que não pode ser bombeado.

Bombeando PDA s (, ε X ), X ε q ε, ε $ r ε, $ ε s R: ( n ) n não pode ser bombeado na primeira metade. Entretanto, poderíamos bombear dois substrings de uma vez. I.e. tomar k parênteses da esquerda e k da direita.

Bombeamento Duplo DEF: Um string s em L é dito duplamente bombeável se podemos dividir s em s = uvxyz de modo que para todo i 0 temos que s = uv i xy i z L sendo pelo menos um de v,y não vazio. Q1: 00111 é duplamente bombeável em 0*111? Q2: 00100 é duplamente bombeável em {0 n 10 n }? Q3: 00100100 é duplamente bombeável em {0 n 10 n 10 n }?

Bombeamento Duplo R1: Sim. Todo string bombeável é também duplamente bombeável, fazendo-se y = ε. Neste caso, tomamos u = ε, v = 00, x = y = ε, z = 111. uv i xy i z =(00) i 111 está de fato em 0*111. R2: Sim. Faça u = ε, v = 00, x = 1, y = 11 e z = ε uv i xy i z =(00) i 1(00) i está de fato em {0 n 10 n } R3: NÃO! Bombeando duplamente 00100100 ou leva a excesso de 1 s, ou aumenta 2 das seqüências de 0 s, sem aumentar a seqüência de 0 s restante.

Bombeamento Duplo Em geral, como bombeamento implica bombeamento duplo, toda linguagem regular (infinita) é duplamente bombeável. Também é verdade que toda linguagem livre de contexto (infinita) é duplamente bombeável. Mas Q3 pode ser generalizada de modo a mostrar que {0 n 10 n 10 n } não admite bombeamento duplo para strings com comprimento maior do que um determinado. Isso termina provando que {0 n 10 n 10 n } não é livre de contexto:

Lema do Bombeamento Livre de Contexto THM: Dada uma linguagem livre de contexto L, existe um número p (no. de bombeamento duplo) tal que todo string em L de comprimento p é duplamente bombeável dentro de um substring de comprimento p. Em outras palavras, para todo s L com s p podemos escrever : s = uvxyz vy 1(partes bombeávei não vazias) vxy p (bombeamento dentro da porção p) uv i xy i z L for all i 0 (bombea v e y)

CFPL Intuição t k t 2 t 1 s k s 2 s 1 -v -y p -u q -x r -z s s k s 2 s 1 Intuitivamente s = uvxyz é encontrado do seguinte modo: Apenas um número finito de mudanças na pilha podem ocorrer em um ciclo do grafo de comprimento n (o número de estado). Portanto, se s é suficientemente longo, existirão estados q,r tais que o mesmo string empilhado em q é desempilhado em r e tais que o caminho de q a r começa e termina com a mesma configuração de pilha. Com essa hipótese, podemos bombear juntos v e y já que v empilha o que y desempilha

CFPL - Prova O que foi mostrado anteriormente pode ser formalizado para provar o Lema do Bombeamento para linguagens livres de contexto. Entretanto a prova é muito mais complicada do que a prova formal baseada em gramática: Prova do CFPL: Seja L uma linguagem livre de contexto. Considere uma árvore de derivação de um string de L na qual algum nodo de variável tem ele próprio como ancestral:

CFPL Prova S a A A f o r y o u c h u g a a n d a c h o o Podemos substituir a última ocorrência de A pela primeira. I.e., substituir na árvore A * and a por A * chuga and a choo Obtendo o seguinte:

CFPL Prova S a A c h u g a A A f o r y o u c h o o c h u g a a n d a c h o o E novamente:

CFPL Prova S a A c h u g a c h u g a A A A f o r y o u c h o o c h o o c h u g a a n d a c h o o

CFPL Prova S a A A f o r y o u c h u g a a n d a c h o o Ou podemos substituir A * chuga and a choo A * and a obtendo o resultado a seguir: por

CFPL Prova S a A a n d a f o r y o u No nosso caso particular, podemos criar qualquer string da forma a (chuga) i and a (choo) i for you

CFPL Prova De modo geral, qualquer caminho na árvore de derivação que tenha uma variável repetida dá origem a strings da forma uv i xy i z, todos em L. O restante da prova é apenas um argumento de contagem que garante a ocorrência de uma variável repetida.

CFPL Prova Q: Se n é o número de variáveis da gramática, para qual altura da árvore se pode garantir que pelo menos uma variável ocorre repetida? (Lembre-se: a altura da árvore trivial apenas a raiz é 0)

CFPL Prova R: Se n é o número de variáveis da gramática, qualquer subárvore de altura h = n+1 terá uma variável repetida. Isso porque o nível inferior de uma árvore de derivação é composto de terminais, portanto altura n+1 (= n+2 níveis) garante n+1 níveis de variáveis, em pelo menos um ramo da árvore. O princípio da casa dos pombos garante que alguma variável ocorre 2 vezes!

CFPL Prova Q: Se a gramática está na Forma Normal de Chomsky, de que tipo é qualquer árvore de derivação?

CFPL Prova R: Uma árvore binária! Q: Qual é o número máximo de folhas que uma árvore binária de altura n pode ter?

CFPL Prova A: 2 n Q: Qual é o número máximo de folhas que pode ter uma árvore de derivação de uma gramática na Forma Normal de Chomsky, se a altura da árvore de derivação é n+1?

CFPL Prova A: Também 2 n! Isso porque a única maneira de obter um terminal é por uma regra da forma A a e, portanto, não há dois ramos no último nível. Q: Que comprimento de string garante que sua árvore de derivação tem altura n+1?

CFPL Prova R: 2 n. Isso porque nenhuma árvore com comprimento < n+1 poderia gerar essa quantidade de folhas, ou terminais. Isso nos leva a definir o número de bombeamento duplo como p=2 n. O resto do teorema segue das considerações feitas previamente. Apenas precisamos verificar que o bombeamento pode ocorrer em um substring de comprimento p. Isso decorre de ocorrer uma variável repetida nos últimos n+2 níveis da árvore.

Provando que L não CFL Método padrão p/ aplicar o lema do bombeamento Apenas no. 3 muda de exemplo p/ exemplo: 1. Suponha que a linguagem é livre de contexto. 2. Então existe um no. de bombeamento p. 3. Encontre um string s que não seja duplamente bombeável, em um substring de comprimento p 4. 2 e 3 se contradizem, portanto, 1 deve ser falso e a linguagem não é livre de contexto.

Provando que L não CFL L ={1 n 0 n 1 n 0 n n 0 } Exemplo 1

Provando que L não CFL Exemplo 1 A parte difícil é a número 3!!! Tente s = 1 p 0 p 1 p 0 p Existem 3 casos onde a janela de visão vxy poderia estar. I III 1 10 01 10 0 II

Provando que L não CFL Exemplo 1 Caso I. Bombear p/ baixo (ou p/ cima) modificaria o no. de 0 s e/ou o no. de 1 s na primeira metado do string, sem alterar a segunda metade. Isso viola a definição da language. I III 1 10 01 10 0 II

Provando que L não CFL Exemplo 1 Casos II e III. Mesmo argumento do Caso I. (Caso III causaria mudança na segunda metade sem alterar a primeira. Caso II causaria mudaça na parte do meio, sem alterar os primeiros 1 p ou os últimos.) Isso completa a prova. I III 1 10 01 10 0 II I III 1 10 01 10 0 II

Provando que L não CFL Exemplo 2 ADD = { x=y+z x, y, e z são bitstrings que satisfazem a equação }

Provando que L não CFL Exemplo 1 A parte difícil é a número 3! Seja s: 1 p+1 =1 p +10 p Existem duas posições onde o substring vxy pode ocorrer. (Janela-p) I 1 p+1 =1 p +10 p II

Provando que L não CFL Exemplo 1 Caso I. v deve ocorrer à esq. de = enquanto y deve ocorrer à dir. já que, caso contrário, o bombeamento resultaria em excesso de símbolos =, ou afetaria um lado da equação mas não o outro. Seja k o comprimento de v e l o comprimento de y. Bombeando p/ baixo obtemos a suposta equação: 1 p+1-k =1 p- l +10 p. A equação não é válida porque o lado direito é muito maior do que o lado esquerdo. I 1 p+1 =1 p +10 p II

Provando que L não CFL Exemplo 1 Caso II. O bombeamento deve ocorrer à direita de = : O lado direito é afetado sem que haja alteração do lado esquerdo. Isso não mantém a propriedade de que o string satisfaz a equação. Isso conclui a prova de que a linguagem ADD não é livre de contexto. I 1 p+1 =1 p +10 p II

Exercícios {1 n n é primo} {0 n 1 n 0 n 1 n } {int x; x = 3; x é um string alfabético} Portanto, dizer que Java é livre de contexto não é exato. (Se x = 3 ocorre, x deve ser previamente declarado!)