Informática Teórica Engenharia da Computação

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

Linguagens Livre-de-contexto
Capítulo 3 Propriedades semânticas da Lógica Proposicional
Linguagem Fabrício Dias
I - Noções dum compilador
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Linguagens Formais e Autômatos
Teoria da Computação FIC– Ciência da Computação
LIMITE DE UMA FUNÇÃO II Nice Maria Americano Costa Pinto.
Nice Maria Americano da Costa
Introdução a Algoritmos Seqüenciais
Ling. Formais e Autômatos Autômatos finitos
Teste de Software Parte 3.
Máquinas de Turing Não Deterministas
Lema do Bombeamento – Gramáticas Livres do Contexto
Pós-graduação em Ciência da Computação – UFU
Minimização; Lema do Bombeamento.
Linguagens Livre de Contexto
Lema da Bomba (Pumping Lemma) para linguagens livre de contexto
esquerda p/ direita,read only
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
autômatos finitos com transições e
Identificando Linguagens Não Regulares
Linguagem C Estruturas de Controle de Fluxos
Linguagem de Prog. e Programas
Exercícios Linguagens Formais.
Indução Métodos de prova já vistos Excepções
3 - Equações Lineares de Segunda Ordem
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
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
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Lema do Bombeamento Linguagens Livres de Contexto
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
GEOMETRIA AXIOMÁTICA, SEGMENTOS DE RETA
Informática Teórica Engenharia da Computação
CAPÍTULO 2 - CONJUNTOS.
MATEMÁTICA APLICADA REVISÃO BÁSICA.
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.
Linguagem de Programação JAVA
CONJUNTO Um conjunto se pode entender como uma coleção ou agrupamento bem definido de objetos de qualquer classe. Os objetos que formam um conjunto são.
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
Inteligência Artificial
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Prof. Ilydio Pereira de Sá
POLÍGONO.
BCC101 – Matemática Discreta
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Fundamentos de linguagens de programação
PROGRESSÃO ARITMÉTICA P.A.
Linguagens Formais - aula 02
Linguagem de 1ª ordem da teoria de conjuntos
Computabilidade e Linguagens Formais
Engenharia/Ciência da Computação
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
TEORIA DOS NÚMEROS Aula 2 – Princípio da Indução Finita
Prof. Mário Alves Aula de Revisão da AV1 FUNDAMENTOS DE ANÁLISE I.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação. Autômatos Com Pilha São como autômatos finitos não-determinísticos mas com uma pilha. São como autômatos.
Informática Teórica Engenharia da Computação. REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de.
MATEMÁTICA 1º ANO Conjuntos Numéricos PROFESSOR: ALEXSANDRO DE SOUSA E.E. Dona Antônia Valadares
Transcrição da apresentação:

Informática Teórica Engenharia da Computação

Lema do Bombeamento O lema do bombeamento diz que qualquer linguagem infinita de dada classe pode ser "bombeada" (pumped) e ainda pertencer àquela classe (as linguagens finitas são todas regulares). A linguagem pode ser bombeada se qualquer cadeia suficientemente longa na linguagem pode ser quebrada em pedaços, alguns dos quais podem ser repetidos um número arbitrário de vezes para produzir uma cadeia mais longa na linguagem.

Lema do Bombeamento para Linguagens Regulares Para toda linguagem regular A, há um autômato AFD a aceita. Seja o AFD mais simples possível, isto é, aquele com o menor número de estados possível. Seja p, a quantidade de estados desse AFD. Seja s  A, t.q. |s|  p Logo, existe uma sequência de estados q1, ..., qf (qf é final e q1 inicial), para reconhecer s. Como o AFD tem apenas p estados e |s|  p, deverá haver ao menos um estado "repetido", i.e. visitado mais de uma vez. (pelo princípio da casa dos pombos). Seja qr o estado repetido.

Lema do Bombeamento para Linguagens Regulares Vamos dividir s em três subcadeias: s=xyz. x é a parte que aparece antes de qr, y é a parte que aparece entre as duas ocorrências de qr e z a parte restante, que aparece após a segunda ocorrência de qr. y qr x z qf q1

Lema do Bombeamento para Linguagens Regulares Então, para todo i ≥ 0, xyiz ∈ L y qr x z qf q1

Lema do Bombeamento O lema do bombeamento descreve uma propriedade fundamental das linguagens regulares. Para qualquer linguagem regular L, existe um número p tal que qualquer cadeia s de comprimento igual ou maior que p pode ser dividida em três subcadeias, s = xyz, tal que a parte do meio (não-vazia), y, pode ser repetida um número arbitrário de vezes (inclusive 0 vezes, o que significa remover y), gerando uma nova cadeia que também pertence a L. Esse processo de repetição é conhecido como "bombeamento".

Linguagens regulares Lema do Bombeamento Lema: Seja L uma linguagem regular. Então existe um inteiro p ≥ 1 (chamado "comprimento de bombeamento") tal que cada cadeia s de L com comprimento maior ou igual a p pode ser escrita como s = xyz satisfazendo as seguintes condições: para todo i ≥ 0, xyiz ∈ L |y| ≥ 1 |xy| ≤ p y é a subcadeia que pode ser bombeada (removida ou repetida arbitrariamente).

Linguagens regulares Lema do Bombeamento ...cada cadeia s de L, |s|  p pode ser escrita como s = xyz satisfazendo as seguintes condições: para todo i ≥ 0, xyiz ∈ L |y| ≥ 1 |xy| ≤ p Podemos repetir arbitrariamente (e inclusive omitir) a subcadeia y, e a cadeia xyz resultante pertencerá a L. Para poder ser bombeada, y precisa ter comprimento maior ou igual a 1; y precisa estar entre os p primeiros caracteres;

Lema do Bombeamento O lema do bombeamento para linguagens regulares determina se uma dada linguagem não é regular. Se é regular então condição. Se não condição então não é regular (contra-positiva) Ele não pode ser usado para determinar se a linguagem é regular. Embora ele seja verdadeiro para todas as LRs. Mas, ele é válido para algumas linguagens não regulares.

Lema do Bombeamento Exemplos Vamos mostrar como o lema se aplica a LRs. Seja L= a(bc)*a. Então um AFD para L seria: p = 4 s = xyz x=a, y=bc e z=a c b a 1.i ≥ 0, xyiz ∈ L 2. |y| ≥ 1 3. |xy| ≤ p

Lema do Bombeamento Exemplos Mostre que o lema se aplica para L = {abna| n >=1 e impar} b a p = 4 s = xyz x=ab, y=bb e z=a 1.i ≥ 0, xyiz ∈ L 2. |y| ≥ 1 3. |xy| ≤ p

Lema do Bombeamento Exemplos Mostre que o lema se aplica para L = {bcdncb | n 0} d b c c b p = 5 s = xyz x=bc, y=d e z=cb 1.i ≥ 0, xyiz ∈ L 2. |y| ≥ 1 3. |xy| ≤ p

Lema do Bombeamento Exemplos Mostre que L = {0n1n | n 0} não é regular Vamos fazer uma prova por contradição. Vamos supor que L é regular, logo o lema se aplica. Seja s = 0p1p. (|s|  p, logo o lema pode se aplicar) Se y possui apenas 0s. Nesse caso, xyyz  L. Temos uma contradição. Se y possui apenas 1s. Nesse caso |xy|  p, violando a condição 3. Se y possui 0s e 1s, a condição 3 tb é violada. Além disso, xyyz não pertencerá à linguagem.

Lema do Bombeamento Exemplos Mostre que L = {ww | w  {0,1}*} não é regular Vamos supor que L é regular. Seja s = 0p10p1 (como |s|  p, logo o lema pode se aplicar) Se x= e y possui apenas 0s. Nesse caso, xyyz  L. Temos uma contradição. Se x=z=, xyiz  L. Mas, |xy|  p, violando a condição 3. Observe que a escolha da cadeia deve ser tal que ela mostre a não regularidade da linguagem Por exemplo, a cadeia 0p0p  L pode ser bombeada, não seria uma boa escolha.

Lema do Bombeamento Exemplos Precisamos prestar bastante atenção na escolha da cadeia. Deve ser uma cadeia onde todas as divisões (em x,y e z) possíveis não obedecem ao lema. Se existir apenas uma divisão onde o lema se aplica, a cadeia pode ser bombeada e portanto não seria um bom exemplo. No exemplo anterior, se s = 0p0p, x = 0p-2, y=02, teríamos o lema aplicado.

Lema do Bombeamento Exemplos Exemplo de linguagem não-regular na qual o lema se aplica: L = {w=uukv | w  {0,1}*}.