Autômatos e computabilidade

Documentos relacionados
Universidade Federal de Alfenas

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares

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

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

Linguagens Formais e Autômatos (LFA)

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

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

Matemática Discreta para Ciência da Computação

Histórico e motivação

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

Linguagens Formais e Problemas de Decisão

LR's: Lema do Bombeamento e Propriedades de Fechamento

Expressões Regulares e Gramáticas Regulares

Matemática Discreta Bacharelado em Sistemas de Informação Resolução - 4ª Lista de Exercícios. Indução e Recursão

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Expressões regulares

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

1 Expressões Regulares e Linguagens

Modelos de Computação

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE

Capítulo 1. Os Números. 1.1 Notação. 1.2 Números naturais não nulos (inteiros positivos) Última atualização em setembro de 2017 por Sadao Massago

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

Alfabeto, Cadeias, Operações e Linguagens

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

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

Gramáticas Regulares

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Fundamentos da Teoria da Computação

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Capítulo 1. Os Números. 1.1 Notação. 1.2 Números naturais (inteiros positivos)

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

Aula 4 - Somatórios. Profa. Sheila Morais de Almeida Mayara Omai. Universidade Tecnológica Federal do Paraná - Ponta Grossa

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

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

5. SEQUÊNCIAS E SOMAS

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

Máquinas de Turing - Computabilidade

Matemática Discreta - 05

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

Como construir um compilador utilizando ferramentas Java

Análise na Reta - Verão UFPA 1a lista - Números naturais; Corpos ordenados

Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas

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

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Análise léxica. Parte 01. Geovane Griesang

Linguagens Formais e Autômatos P. Blauth Menezes

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Gramáticas e Linguagens Independentes de Contexto

19 AULA. Princípio da Boa Ordem LIVRO. META Introduzir o princípio da boa ordem nos números naturais e algumas de suas conseqüências.

Teoria da Computação

Soluções dos exercícios propostos

Aula 3: Autômatos Finitos

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

Gramáticas Livres de Contexto

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

a n Sistemas de Estados Finitos AF Determinísticos

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação

PCS 3115 (PCS2215) Conteúdo

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Linguagem (formal) de alfabeto Σ

Notas sobre Definições Recursivas

Capítulo 1: Alfabetos, cadeias, linguagens

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

Interpolação polinomial: Diferenças divididas de Newton

Introdução à Teoria da Computação Exercícios

Lema do Bombeamento para Linguagens Livres do Contexto

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

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

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

PCS 3115 (PCS2215) Sistemas Digitais I. Módulo 05 Álgebra Booleana. Prof. Dr. Edison Spina. Sobre o material do Prof. Dr. Marcos A. Simplicio Jr.

Todos os pássaros têm pena. Nem todos os passáros voam. Todo inteiro primo maior que dois é ímpar

IBM1088 Linguagens Formais e Teoria da

a * Expressões Regulares (ER)

Fundamentos da Teoria da Computação

significa ( x)[(x S P (x)) (P (x) x S)]

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Teoria de Conjuntos. Matemática Discreta I. Rodrigo Ribeiro. 6 de janeiro de 2013

Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos

Linguagens Formais e Autômatos

Aula 9: Máquinas de Turing

1 FUNÇÃO - DEFINIÇÃO. Chama-se função do 1. grau toda função definida de por f(x) = ax + b com a, b e a 0.

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Apostila Minicurso SEMAT XXVII

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

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Um polinômio com coeficientes racionais é uma escrita formal

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Prova 3.1 (points: 100; bonus: 0 ; time: 64 ) FMC2, (Turma N12 do Thanos) Regras: Nome: 21/06/2019

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

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

Linguagens Formais - Preliminares

2 A Teoria de Conjuntos - Preliminares

Topologia de Zariski. Jairo Menezes e Souza. 25 de maio de Notas incompletas e não revisadas RASCUNHO

Prof. Adriano Maranhão COMPILADORES

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

Transcrição:

Autômatos e computabilidade Expressões regulares Pedro A D Rezende UnB IE CIC Cadeia vazia: l (ou e) é a cadeia tal que l = 0

Expressões Regulares A notação algébrica que denota Concatenação como produto União de conjuntos como soma e Fecho de Kleene como série de potências serve para descrever linguagens formais. Uma fórmula nesta notação é dita, por motivos que ficarão óbvios, expressão regular d q para q' por a

Definição recursiva de Expressão Regular Dado S, são expressões regulares (ER) sobre S: (o conjunto vazio) l (ER que denota {l} ) a (ER que denota {a}, a S ) Se x, y são ERs que denotam as linguagens X e Y respectivamente, também são ERs as expressões (x+y), (xy) e (x*) denotando, respectivamente, X Y, X Y e X* OBS: x + abrevia xx * ; x n abrevia xx...x n vezes

Definição recursiva de Expressão Regular Dado S, são expressões regulares (ER) sobre S: (o conjunto vazio) l (ER que denota {l} ) a (ER que denota {a}, a S ) Se x, y são ERs que denotam as linguagens X e Y respectivamente, também são ERs as expressões (x+y), (xy) e (x*) denotando, respectivamente, X Y, X Y e X* OBS: x + abrevia xx * ; x n abrevia xx...x n vezes

Definição recursiva de Expressão Regular Dado S, são expressões regulares (ER) sobre S: (o conjunto vazio) l (ER que denota {l} ) a (ER que denota {a}, a S ) Se x, y são ERs que denotam as linguagens X e Y respectivamente, também são ERs as expressões (x+y), (xy) e (x*) denotando, respectivamente, X Y, X Y e X* OBS: x + abrevia xx * ; x n abrevia xx...x n vezes

Definição recursiva de Expressão Regular Dado S, são expressões regulares (ER) sobre S: (o conjunto vazio) l (ER que denota {l} ) a (ER que denota {a}, a S ) Se x, y são ERs que denotam as linguagens X e Y respectivamente, também são ERs as expressões (x+y), (xy) e (x*) denotando, respectivamente, X Y, X Y e X* OBS: x + abrevia xx * ; x n abrevia xx...x n vezes

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Notação simplificada Usando a precedência das operações homônimas, omite-se ( ) onde possível Exemplos ( fixando S={0, 1} ): 01 * +0 simplifica ((0(1 * ))+0) (0+1) * 0 denota L = {a0 a S * } (10+1) * denota L = {a S * a começa com 1 e não repete 0s} (0+1) * 00(0+1) * denota L = {a S * a repete 0 pelo menos uma vez}

Expressões Regulares geram Linguagens Regulares Dado r ER, existe M lfa tal que L(r) = L(M) Demonstração: Por indução sobre op(r) = operações em r, usando grafos para lfas P(0): (zero operações em r) r = r = l r = a

Expressões Regulares geram Linguagens Regulares Dado r ER, existe M lfa tal que L(r) = L(M) Demonstração: Por indução sobre op(r) = operações em r, usando grafos para lfas P(0): (zero operações em r) r = r = l r = a

Expressões Regulares geram Linguagens Regulares Dado r ER, existe M lfa tal que L(r) = L(M) Demonstração: Por indução sobre op(r) = operações em r, usando grafos para lfas P(0): (zero operações em r) r = r = l r = a

Expressões Regulares geram Linguagens Regulares Dado r ER, existe M lfa tal que L(r) = L(M) Demonstração: Por indução sobre op(r) = operações em r, usando grafos para lfas P(0): (zero operações em r) r = r = l r = a

Expressões Regulares geram Linguagens Regulares Dado r ER, existe M lfa tal que L(r) = L(M) Demonstração: Por indução sobre op(r) = operações em r, usando grafos para lfas P(0): (zero operações em r) r = r = l r = a

ER geram Linguagens Regulares (cont) n N [P(n) P(n+1)]: (supondo L(r) L Reg se op(r)=n Renomeando estados, lfa M que reconhece r = r 1 +r 2

ER geram Linguagens Regulares (cont) n N [P(n) P(n+1)]: (supondo L(r) L Reg se op(r)=n Renomeando estados, lfa M que reconhece r = r 1 r 2

ER geram Linguagens Regulares (cont) n N [P(n) P(n+1)]: (supondo L(r) L Reg se op(r)=n Renomeando estados, lfa M que reconhece r = r 1 *

Linguagens Regulares são descritas por ERs Dado M DFA, existe ER r tal que L(M) = L(r) Demonstração: Por indução sobre (k) em R ij(k), com Q = {q 1 (start),..., q n } ordenado, R ij(k) dado por: R ij(k) = R ik(k-1) (R kk(k-1) )*R ij(k-1) R kj(k-1) R ij(0) = {a d(q i,a)=q j } [ {l} se i = j ] (R ij(k) são as cadeias correspondentes aos caminhos de q i a q j que não passam por nenhum q s s > k ; L(M) = R 1s(n) q s F)

Linguagens Regulares são descritas por ERs Dado M DFA, existe ER r tal que L(M) = L(r) Demonstração: Por indução sobre (k) em R ij(k), com Q = {q 1 (start),..., q n } ordenado, R ij(k) dado por: R ij(k) = R ik(k-1) (R kk(k-1) )*R ij(k-1) R kj(k-1) R ij(0) = {a d(q i,a)=q j } [ {l} se i = j ] (R ij(k) são as cadeias correspondentes aos caminhos de q i a q j que não passam por nenhum q s s > k ; L(M) = R 1s(n) q s F) s

Linguagens Regulares são descritas por ERs Dado M DFA, existe ER r tal que L(M) = L(r) Demonstração (cont): P(0): (base da indução) R ij(0) = {a s1,..., a sn }[ l] é descrita por a s1 +...+a sn [+l] n N [ P(n) P(n+1) ]: (passo da indução) R ij(k) é descrita por r ik(k-1) (r kk(k-1) )*r ij(k-1) + r ij(k-1) (R ij(k) são as cadeias correspondentes aos caminhos de q i a q j que não passam por nenhum q s s > k ; L(M) = R 1s(n) q s F)

Linguagens Regulares são descritas por ERs Dado M DFA, existe ER r tal que L(M) = L(r) Demonstração (cont): P(0): (base da indução) R ij(0) = {a s1,..., a sn }[ l] é descrita por a s1 +...+a sn [+l] n N [ P(n) P(n+1) ]: (passo da indução) R ij(k) é descrita por r ik(k-1) (r kk(k-1) )*r ij(k-1) + r ij(k-1) (R ij(k) são as cadeias correspondentes aos caminhos de q i a q j que não passam por nenhum q s s > k ; L(M) = R 1s(n) q s F)

Linguagens Regulares são descritas por ERs Dado M DFA, existe ER r tal que L(M) = L(r) Demonstração (cont): P(0): (base da indução) R ij(0) = {a s1,..., a sn }[ l] é descrita por a s1 +...+a sn [+l] n N [ P(n) P(n+1) ]: (passo da indução) R ij(k) é descrita por r ik(k-1) (r kk(k-1) )*r ij(k-1) + r ij(k-1) (R ij(k) são as cadeias correspondentes aos caminhos de q i a q j que não passam por nenhum q s s > k ; L(M) = R 1s(n) q s F) s