Lema do Bombeamento Operações Fechadas sobre LR s Aplicações

Documentos relacionados
Lema do Bombeamento Operações Fechadas sobre LR s Aplicações

Operações Fechadas sobre LR s Aplicações

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

a n Sistemas de Estados Finitos AF Determinísticos

Linguagens Não-Regulares

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

AF Não-determinísticos Equivalência entre AFND e AFD

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

Linguagens Formais e Autômatos P. Blauth Menezes

Propriedades das Linguagens Livres do Contexto

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

Algoritmo de Minimização de AFD

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

Expressões regulares

LR's: Lema do Bombeamento e Propriedades de Fechamento

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

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

a n Sistemas de Estados Finitos AF Determinísticos

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

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

AF Não-determinísticos Equivalência entre AFND e AFD AFs e GRs Implementação de AFs

Lema do Bombeamento para Linguagens Livres do Contexto

a * Expressões Regulares (ER) AF e ER Equivalências entre AFD, AFND, AF-, ER

a * Expressões Regulares (ER) Conversão de AF para ER no JFLAP Equivalências entre AFD, AFND, AF-, ER, GR

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

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

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

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

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:

a n Sistemas de Estados Finitos AF Determinísticos (H&U, 1979) e (H;M;U, 2001)

AF Não-determinísticos Equivalência entre AFND e AFD

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

a * Minimização de AFD AFD equivalente, com o menor número de estados possível

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

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e

Linguagens Formais e Problemas de Decisão

Linguagens Formais - Preliminares

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

Linguagens Formais e Autômatos P. Blauth Menezes

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

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

Capítulo 4: Autômatos finitos e expressões regulares

Como construir um compilador utilizando ferramentas Java

Prova 2 de INF1626 Linguagens Formais e Autômatos

Máquinas de Turing - Computabilidade

Autômatos Finitos e Não-determinismo

Autómatos Finitos Determinísticos (AFD)

Prova 1 de INF1626 Linguagens Formais e Autômatos

LFA. Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Regulares (RL) 4.1. Propriedades d de fecho das RL ADC/TC/CAP.4/ /LEI/DEIFCTUC 192

Computabilidade e Complexidade (ENG10014)

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

Geradores e relações

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Demonstrações. Terminologia Métodos

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

UNIVERSIDADE DA BEIRA INTERIOR

Expressões e Gramáticas Regulares e Autómatos Finitos

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Fundamentos da Teoria da Computação

Linguagens livres de contexto e autômatos de pilha

ÁLGEBRA DE BOOLE B.1 - DIAGRAMA DE VENN

LLC's: Lema do Bombeamento e Propriedades de Fechamento

Propriedades de Fecho de Linguagens Regulares.

Fundamentos da Teoria da Computação

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ

Expressões Regulares (ER) Uma ER sobre um alfabeto Σ é definida como: a) é uma ER e denota a linguagem vazia b) λ é uma ER e denota a linguagem conten

Modelos de Computação Folha de trabalho n. 8

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Lema do Bombeamento Motivação

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Linguagens Formais e Autômatos (LFA)

Faculdade de Computação

Teoria da Computação

1 Expressões Regulares e Linguagens

Linguagens Livres-do-Contexto

Linguagens Formais e Autômatos

Máquina de Turing. Controle finito

LINGUAGENS FORMAIS E AUTÔMATOS

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

Linguagem (formal) de alfabeto Σ

Linguagens Regulares. Prof. Daniel Oliveira

Problemas Computáveis

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

Lista de exercícios 1

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Revisões de Conjuntos

Transcrição:

a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22)

Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria não conseguir exibir um AF ou uma ER Toda linguagem regular satisfaz o Lema do Bombeamento (LB). Se alguém apresenta a você uma falsa LR, use o LB para mostrar a contradição, pois ela não vai satisfazê-lo. 2

O Lema do Bombeamento (Pumping Lemma) nos diz que qualquer cadeia suficientemente longa w de uma LR pode ser decomposta em 3 partes: w = xyz, de maneira que podemos construir outras cadeias da linguagem pela repetição da parte central y. Isto é, todas as cadeias da forma xy k z estão também na linguagem. Ou seja, podemos acionar a bomba quantas vezes quisermos, para criar quantas sentenças novas da linguagem desejarmos: xz, xyz, xyyz, xyyyz, 3

Mostrando que uma Linguagem não é Regular Para mostrar que uma linguagem não é regular, mostramos que não há como decompor uma cadeia (qualquer, arbitrariamente longa) da linguagem de forma que seja possível bombear e o resultado continuar na linguagem. 4

Lema do Bombeamento Se L é uma linguagem regular, então: existe uma constante natural n (que depende de L) tal que qualquer cadeia w de L, com w n, pode ser decomposta em três subcadeias x, y, z (w=xyz) de forma que: xy n y (isto é, y ) e para qualquer k, xy k z є L. 5

Demonstração (simplificada): Baseia-se no fato de que, para as cadeias longas w, é necessário usar pelo menos um loop de estados num AFD que aceite a linguagem. Assim, os símbolos de x são usados para chegarmos a um estado q do loop; os símbolos de y são usados para dar a volta no loop, de volta ao estado q; os símbolos de z são usados para ir de q até um estado final. Portanto, podemos dar quantas voltas no loop quisermos, e repetir y um número qualquer k de vezes: xy k z. As cadeias curtas (comprimento < n) não são consideradas porque podem ser aceitas sem passar por qualquer loop. 6

Prova formal do Lema do Bombeamento Suponha que L seja regular. Então existe um AFD A, com n estados, que a reconhece. Considere qualquer string w de comprimento n ou maior: w=a a 2 a 3...a m, onde m n, e cada a i é um símbolo de entrada. Para i=,, n, defina o estado p i como (qo,a a 2 a 3...a i ). Isto é, p i é o estado em que A se encontra depois de ler os primeiro i símbolos de w. Note que po=qo. po a a 2 a 3...a i pi 7

Como só existem n estados, não é possível que os n+ diferentes p i, para i=,...n sejam distintos. Desse modo, podemos encontrar dois inteiros diferentes, i e j, com i j n, tais que p i = p j. Agora, podemos dividir w = xyz como a seguir: y=a i+...a j. x = a a 2 a 3...a i 2. y = a i+ a i+2...a j po x=a a 2 a 3...a i pi z=a j+...a m 3. z = a j+ a j+2...a m Observe que x pode ser vazio (i=) e z pode ser vazio, se j=n=m. Mas y não pode ser vazio, pois i é estritamente menor que j. Também é verdade que xy n. Falta verificar a última condição: Vejamos o que acontece com A para entradas xy k z para 8 qualquer k :

y=a i+...a j po x=a a 2 a 3...a i pi z=a j+...a m Se k= (w=xz): A vai de po para pi na entrada x. Tendo em vista que p i =p j, A deve ir de p i para o estado final, para a entrada z. Desse modo, A aceita xz. Se k > (w=xy k z): A vai de po a pi sobre a entrada x, circula de p i para p i k vezes para a entrada y k, e depois vai para o estado de aceitação para a entrada z. Dessa forma, para qualquer k, xy k z também é aceito por A; ou seja, xy k z está em L. 9

Exemplo provando que L não é regular L = {a i b i i }

Considere a cadeia w = a i b i. Qualquer decomposição w=xyz deve ter em y o mesmo número de a s e de b s, para que a propriedade de que o número de a s é igual ao de b s se mantenha nas cadeias x y k z. Se isso não acontecer, quando acrescentarmos mais um y (aumentando k de ), obteremos uma cadeia fora da linguagem. Portanto, y deve ser da forma a j b j, com j >, já que y não pode ser vazia. Mas nesse caso, x y 2 z conterá a cadeia a j b j a j b j, com pelo menos um a e depois um b, o que não pode acontecer na linguagem. Ou seja, nenhuma decomposição é possível, contrariando o Lema, e podemos concluir que L não é regular.

Exemplo: provando que uma LR obedece o LB L =?? 2

Seja L = {ab n a n >= e ímpar} ou {ab 2n+ a n>=} Pelo Lema do Bombeamento, temos que: seja n = 4 (número de estados do AF) Para w = abbba w = 5 >= 4 Sejam: x = ab y = bb xy <= 4; y >= z = a Para todo k >=, ab(bb) k a L 3

Exercícios Mostre que as linguagens abaixo não são regulares: ) L = { xx r x є {,}*} 2) L = { n n n >= } 3) L = { n m 2 n n e m são inteiros quaisquer} 4) L = { n m n <= m} 5) L = { n 2n n >= } 4

Operações que preservam a propriedade de ser uma LR Existem muitas operações que, quando aplicadas a LR, resultam em uma LR (dizemos que são fechadas). Entre elas temos: união, complemento e intersecção (operações booleanas), concatenação, fechamento, diferença e reverso (a a 2...a n a n...a 2 a ). Elas são úteis também como ferramentas de construção de autômatos. 5

Propriedade de Fechamento das Linguagens da Hierarquia de Chomsky operação (op) união concatenação fechamento complemento intersecção diferença reverso LR op LR LR LR LR LR LR LR LR 6

Lema 3. (H&U, 69) União A classe das LR é fechada sobre a união. Se L é LR e L2 é LR então L L2 também é. (Prova via ER: direta) PROVA: Sejam L e L2 reconhecidas por AF M = (Q,,,qo,F) e M2 = (Q2, 2, 2,ro,F2). Suponha Q Q2 = e so Q; so Q2. M3 = (Q Q2 {so}, 2, 3, so, F) é um AFND onde: 7

Se L ou L2 então F = F F2 {so} cc. F = F F2 ) 3(so,a) = { (qo,a), 2(ro,a)} para todo a 2 3 2) 3(q,a) = (q,a) para todo q Q e a 3) 3(q,a) = 2(q,a) para todo q Q2 e a 2 L(M3) = L(M) L(M2) Continuam os mesmos s 8

Exemplo Use o Lema 3. para fazer um AFND que reconheça L(M) = { x {,}* o nro de s em x é múltiplo de 3 OU de 4} 9

q q q2 s r r2 r r3 M3 =? 2

Lema 3.2 (H&U, 69) - Complemento A classe dos conjuntos aceitos por um AF é fechada sobre o complemento (Se L é uma LR então L também é). Prova: M = (Q,,, qo,f) é um AF que aceita um conjunto L. Seja 2 um alfabeto contendo (pode ser o mesmo) e d um estado Q. M2 aceita 2* - L. M2 = (Q {d}, 2, 2, qo, (Q F) {d}) 2

2(q,a) = (q,a) para cada q Q e a (continua o anterior) 2(q,a) = d para cada q Q e a ( 2 - ) do particular estado 2(d,a) = d para cada a 2 Exemplo: Use o Lema 3.2 para reconhecer o complemento de L(M) = (x {}* x possui um nro ímpar de s}. 22

q q2 M: reconhece ímpar q q2 M2: Reconhece par d D é um estado inacessível que pode ser eliminado. Portanto M pode ser reduzido 23

Teo 3.6 (H&U, 69) - Intersecção A classe das LR é fechada sobre a intersecção. Se L é LR e L2 é LR então L L2 também é. Prova: dos Lemas 3. e 3.2 e da Lei de De Morgan, desde que a própria intersecção usa operações de união e complemento. L L2 = L L2 A classe dos conjuntos aceitos por um AF forma uma Álgebra de Boole. Isto é, é uma coleção de conjuntos fechados sobre a união, complemento e intersecção. 24

Teo 3.8 (H&U, 69) - Concatenação A classe dos conjuntos aceitos por um AF é fechada sobre a concatenação. Se L é LR e L2 é LR, então L.L2 é LR. (Prova via ER: direta) Prova: Seja M = (Q,,, q,f) aceitando L e M2 = (Q2, 2, 2, q2,f2) aceitando L2. Assumimos Q e Q2 disjuntos e = = 2. M3 = (Q Q2,, 3, q,f) é um AFND onde: 25

3(q,a) = { (q,a)} para cada q (Q F) e a. M3 age como M para o começo da cadeia possivelmente vazia 3(q,a) = { (q,a), 2(q2,a)} para cada q F e a. M3 continua em M ou vai para M2 3(q,a) = { 2(q,a)} para cada q Q2. M3 age como M2 depois que a cadeia de entrada pertence a L2. Se L2 então F = F2 (vai aceitar em M2) Se L2 então F = F F2 (aceita também cadeias de L). 26

Exemplo qo q2 q 2 q3 eo e3 e2 L={,2, } L2= *(+) 27

Exemplo qo q2 q 2 q3 eo e2 e qo L={,2, } L2= *(+) q q2 2 q3 eo e2 e L3=L.L2 28

Exemplo Use o Lema 3.2 (complemento) e o Teo 3.8 (concatenação) para construir um AF M que a partir de M e M2 reconheça L = L. L2 M q q q2 e M2 e2 e 29

3

3

Teo 3.9 (H&U, 69) - Fechamento A classe dos conjuntos aceitos por um AF é fechada sobre o fechamento. Se L é LR então L* é LR. Prova: Seja M = (K,,, qo,f) um AF que aceita L. M = (K {qo },,, qo, F {qo }) aceita L*. qo é também final pois ao fecho (q,a) = { (q,a), qo)} se (q,a) F { (q,a)} c.c. para q K (todas as transições que estavam chegando no final, ganham uma cópia para voltar ao início) (qo,a) = { (qo,a),qo} se (qo,a) F { (qo,a)} cc 32

Exemplo Use o Teo 3.9 para construir um AF que reconheça o fecho de L = {,} L* = {,,,,,,,,...} qo,, qo q q2 33

Teo 4. (H,M,U,2) Diferença Se L e M são linguagens regulares então L M também é. Prova: L M = L M. Como o complemento e a intersecção de linguagens regulares também são regulares, L M também é. 34

Como testar a pertinência em uma LR Dadas uma cadeia w e uma linguagem regular L, w L? Se L é representada por um AFD: simule o autômato e verifique se um estado final é alcançado. Se w =n e o AFD é representado por um estrutura de dados adequada (matriz de transição), então cada transição exigirá um tempo constante e a verificação levará tempo O(n). (veja que o tamanho da entrada é dado pelo comprimento da cadeia) 35

Como testar a equivalência de LRs, ou se descritores distintos definem a mesma linguagem Há uma forma para minimizar um AFD. Ou seja, sempre é possível encontrar um AFD equivalente que tenha o número mínimo de estados. Esse autômato mínimo é único: dados dois AFDs quaisquer, com número mínimo de estados, sempre podemos renomear os estados de modo que os dois AFDs se tornem iguais. 36