Linguagens e Programação Automátos Finitos. Paulo Proença

Documentos relacionados
Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Linguagens Formais e Autômatos

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

Lista de exercícios 1

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Expressões Regulares e Gramáticas Regulares

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

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

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

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

Autómatos Finitos Determinísticos (AFD)

Universidade Federal de Alfenas

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Linguagens Regulares. Prof. Daniel Oliveira

Autômatos Finitos Não Determinís5cos (AFN)

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

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

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

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

Fundamentos da Teoria da Computação

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. Expressões Regulares e Autômatos Finitos. Thiago Alves

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

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

Folha 2 Autómatos e respectivas linguagens

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205

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

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 (LFA)

Expressões regulares

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

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

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Fundamentos da Teoria da Computação

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Como construir um compilador utilizando ferramentas Java

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

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR

Autômatos finitos não-determinísticos

Histórico e motivação

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

Conceitos básicos de Teoria da Computação

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

Introdução Definição Conceitos Básicos de Linguagem

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

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

Fundamentos da Teoria da Computação

Autómatos de Pilha e Linguagens Livres de Contexto

Aula 7: Autômatos com Pilha

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

Folha 3 - Análise léxica

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

Linguagem (formal) de alfabeto Σ

1 INTRODUÇÃO E CONCEITOS BÁSICOS

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

a n Sistemas de Estados Finitos AF Determinísticos

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

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

IBM1088 Linguagens Formais e Teoria da

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

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

1 Autómatos Finitos Deterministas

Propriedades de Fecho de Linguagens Regulares.

BCC242. Auômato Finito Determinístico

Apostila 03 - Linguagens Livres de Contexto Exercícios

INF1626 Linguagens Formais e Autômatos em

Algoritmo de Minimização de AFD

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

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

Linguagens Livres de Contexto

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR

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

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

Compiladores. Análise Léxica

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Revisões de Conjuntos

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Instituto Superior Técnico Teoria da Computação - LEIC, LERC 2012/2013 Aula prática 6. 1 Palavras e linguagem gerada por gramática

Modelos de Computação

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

Teoria da Computação Exame 1 30 de Junho de 2003

Linguagens Formais e Autômatos (LFA)

IV Gramáticas Livres de Contexto

Linguagens Formais e Autômatos (LFA)

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

Linguagens Formais e Problemas de Decisão

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

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1

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

Transcrição:

Linguagens e Programação Automátos Finitos

Autómatos finitos Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.

Representação formal AA = (SS, Σ, ss 0, FF, δδ) S é um conjunto finito de estados não vazio Σ é o alfabeto de entrada s 0 é o estado inicial F é o conjunto de estados finais δ é a função de transição Recebe como argumentos um estado um símbolo de entrada Devolve um novo estado

Representação formal Exemplo: AF capaz de processar números binários terminados em 10 Expressão regular: (0 1)*10 Autómato Finito: AA = ( ss 0, ss 2, ss 2, 0,1, ss 0, ss 2, δδ) δδ ss 0, 0 = {ss 0 } δδ ss 0, 1 = {ss 0, ss 1 } δδ ss 1, 0 = {ss 2 }

Representação de um AF Tabela de transições s 0 {s 0 } {s 0, s 1 } s 1 {s 2 } *s 2 Representação gráfica

Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; a) Represente graficamente o autómato capaz de reconhecer a linguagem (a c d)*(ab(a b c d)*)?

Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; b) Defina formalmente o autómato de acordo com a fórmula AA = (SS, Σ, ss 0, FF, δδ) A=( {q0,q1,q2},{a,b,c,d},q0,{q0,q2},d) d(q0,a)={q0,q1}, d(q0,c)={q0}, d(q0,d)={q0}, d(q1,b)={q2}, d(q2,a)={q2}, d(q2,b)={q2}, d(q2,c)={q2}, d(q2,d)={q2}

Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; c) Elabore a tabela de transições respetiva a b c d *q0 {q0,q1} φ {q0} {q0} q1 φ {q2} φ φ *q2 {q2} {q2} {q2} {q2}

Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb a) Represente graficamente o autómato correspondente

Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb b) Defina formalmente o autómato de acordo com a fórmula AA = (SS, Σ, ss 0, FF, δδ) A=( {q0,q1,q2,q3},{a,b},q0,{q3},d) d(q0,a)={q0,q1}, d(q0,b)={q0}, d(q1,b)={q2}, d(q2,b)={q3}

Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb c) Elabore a tabela de transições respetiva a b q0 {q0,q1} {q0} q1 φ {q2} q2 φ {q3} *q3 φ φ

Exercícios Propostos 4. Represente graficamente e através da tabela de transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos. a) aa* bb* a b q0 {q1} {q2} *q1 {q1} φ *q2 φ {q2}

Exercícios Propostos 4. Represente graficamente e através da tabela de transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos. b) (a b)*abb(a b)* a b q0 {q0,q1} {q0} q1 φ {q2} q2 φ {q3} *q3 {q3} {q3}

Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} 0 1(0 1)*00

Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} (0 1)*111(0 1)*

Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} c) L(A) = {u Σ*: u tem um número par de 1 s} (0*10*10*)+ 0*

Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} c) L(A) = {u Σ*: u tem um número par de 1 s} d) L(A) = {u Σ*: u é vazia ou tem dígitos todos iguais, sendo de comprimento par as sequencias de 0 s e de comprimento impar as sequencias de 1 s} (00)* 1(11)*

Exercício de Aula Converta o seguinte AFN num AFD e minimize-o.

Exercicio de Aula 1. Conversão para AFD 1. Criação da tabela de transições A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 1. Criação da tabela de transições A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG *ABFG ACDEG ABG *ACEG AEG ABDFG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}

Exercicio de Aula 1. Conversão para AFD 3. Renomear os estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG *ABFG ACDEG ABG *ACEG AEG ABDFG Renomear A B C B B D C E C D F C E B G F H I G J K *H H L *I J K *J H I *K M K *L J K *M H I

Exercicio de Aula 1. Conversão para AFD A B C B B D C E C D F C E B G F H I G J K *H H L *I J K *J H I *K M K *L J K *M H I

Exercicio de Aula 2. Minimização 1ª Iteração NF FI A B NF C NF B B NF D NF C E NF C NF D F NF C NF E B NF G NF F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI

Exercicio de Aula 2. Minimização 1ª Iteração NF FI A B NF C NF B B NF D NF C E NF C NF D F NF C NF E B NF G NF F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI N O

Exercicio de Aula 2. Minimização 2ª Iteração N O FI A B N C N B B N D N C E N C N D F O C N E B N G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI

Exercicio de Aula 2. Minimização 2ª Iteração N O FI A B N C N B B N D N C E N C N D F O C N E B N G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI P Q R

Exercicio de Aula 2. Minimização 3ª Iteração P Q R O FI A B P C P B B P D Q C E R C P D F O C P E B P G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI S T U

2. Minimização 3ª Iteração S T U Q R O FI Exercicio de Aula A B T C U B B T D Q C E R C U D F O C U E B T G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI S T U T T Q U R U Q O U R T O O FI FI *FI FI FI

Exercicio de Aula 2. Minimização S T U T T Q U R U Q O U R T O O FI FI *FI FI FI

Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Conversão para AFD A {A,B} {A} B {B,C} {A} *C φ {C} {A,B} {A,B,C} {A} *{B,C} {B,C} {A,C} *{A,C} {A,B} {A,C} *{A,B,C} {A,B,C} {A,C} A {A,B} {A} {A,B} {A,B,C} {A} *{A,C} {A,B} {A,C} *{A,B,C} {A,B,C} {A,C} S 0 S 1 S 0 S 1 S 3 S 0 *S 2 S 1 S 2 *S 3 S 3 S 2

Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Conversão para AFD S 0 S 1 S 0 S 1 S 3 S 0 *S 2 S 1 S 2 *S 3 S 3 S 2

Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Minimização: estados não finais (NF) estados finais (F) S 0 S 1 NF S 0 S 1 S 3 F S 0 *S 2 S 1 NF S 2 *S 3 S 3 F S 2 NF NF F F

Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. b) Conversão e Minimização:

Exercícios Propostos 8. Considerando o Σ={A,B,C,,Z, a, b, c,, z}, represente as seguintes linguagens utilizando um AF: a) L(A) = {u Σ*: u começa por um carácter minúsculo e tem no máximo duas maiúsculas} b) L(A) = {u Σ*: u começa por uma maiúscula e termina sempre numa vogal}

Exercícios Propostos 9. Considerando o Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, represente as seguintes linguagens utilizando um AF: a) L(A) = {u Σ*: u é uma sequência numérica crescente}

Exercícios Propostos 11.Indique uma expressão regular e um autómato finito determinístico que reconheça a mesma linguagem que o seguinte autómato finito não determinístico. Expressão Regular: b((a e)b)*ab AFD:

Exercícios Complementares 6. Implemente um AFD para as linguagens: a) Em Σ = {a,b,c,d}, qualquer palavra com um número par de símbolos b.

Exercícios Complementares 6. Implemente um AFD para as linguagens: b) Em Σ = {0,1}, qualquer palavra com um número par de zeros e um número par de uns.

Exercícios Complementares 7. Para cada um dos seguintes AFD indique a ER: a) a*b b) a*bb+

Exercícios Complementares 8. Represente as seguintes linguagens por uma expressão regular e por um automato finito deterministico a) Para o alfabeto Σ = {0, 1} L(A)={u Σ*:u começa por 1 e tem um número par de 1's} Expressão Regular: (10*10*)+ AFD:

Exercícios Complementares 3.3.2.a) Minimize o seguinte AFD

Exercícios Complementares 3.3.2.a) Construção da Tabela de transições A A B B C B *C E D D F B E E D *F A B

Exercícios Complementares 3.3.2.a) 1ª Iteração NF F A A NF B NF B C F B NF D F F B NF E E NF D NF *C E NF D NF *F A NF B NF

Exercícios Complementares 3.3.2.a) 2ª Iteração G H F A A G B H E E G D H D F F B H B C F B H *C E G D H *F A G B H

Exercícios Complementares 3.3.2.a) Autómato minimizado G G H H F H *F G H

Linguagens e Programação Automátos Finitos