Ling. Formais e Autômatos Autômatos finitos

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

Linguagens Livre-de-contexto
TEORIA DA COMPUTAÇÃO Parte I  Introdução  Linguagens Regulares
FAPE - Curso de Ciência da Computação
FAPE - Curso de Ciência da Computação
Fluxo em Redes Prof. Ricardo R. Santos.
Tópicos em Compiladores
Variantes de Máquina de Turing
Linguagem Fabrício Dias
II – Análise léxica DEI Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: Aho, Sethi e Ullman –
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.
Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado e Gomes da Costa
Análise Léxica (Parte 2)
TEORIA DOS AUTÓMATOS FINITOS E DAS SUAS LINGUAGENS
3 AUTÓMATOS FINITOS.
Programação Lógica ProLog
Máquinas de Turing Não Deterministas
Equivalência de Autômatos
Máquinas de Turing Teoria da Computação.
Teoria da Computação Sandra de Amo
Complexidade de Linguagens Influência do Modelo de Computação
Inteligência Artificial
Linguagens Livres de Contexto
Strings, Linguagens, Autômatos
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 de Prog. e Programas
Autômatos Finitos Determinísticos
Construção de Compiladores
Informática Teórica Engenharia da Computação
Máquinas de Turing, Procedimentos, Algoritmos e Tese de Church
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
Compiladores, Aula Nº 5 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Aspectos Formais da Computação CCO 410
Gramáticas Livres de Contexto
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
Uma introdução ao seu funcionamento
Informática Teórica Engenharia da Computação
4 - DECIDIBILIDADE Universidade Federal da Paraíba
SIPSER – Capítulo 3: A tese de Church-Turing
Ling. Formais e Autômatos AFN-ε
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
TÉCNICAS DE PROGRAMAÇÃO
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
Inteligência Artificial
Máquina de Turing Universal
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Estado Final Único para NFAs e DFAs
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Computabilidade e Linguagens Formais
Engenharia/Ciência da Computação
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE
Informática Teórica Engenharia da Computação
Transcrição da apresentação:

Ling. Formais e Autômatos Autômatos finitos

Na aula de hoje... Autômatos finitos Introdução AF Determinístico AF Não-determinístico Equivalência entre AFD e AFN

Modelo matemático de um sistema, com entradas e saídas discretas 1. Introdução Um Autômato Finito é um sistema de estados finitos, o qual constitui um modelo computacional seqüencial Modelo matemático de um sistema, com entradas e saídas discretas estado estímulo externo

Exemplo Travessia do rio Um grupo formado por um homem, um lobo, uma cabra e um repolho, posicionados do lado esquerdo da margem de um rio. O problema consiste em transportá-los para a margem direita. existe um barco com capacidade para transportar somente o homem e um dos outros três elementos do grupo o lobo e a cabra não podem ficar sozinhos no mesmo lado a cabra e o repolho também não podem ficar sozinhos

Exemplo H L C R

Exemplo HC H H HC HL HL HR HR HÁ INFINITAS SOLUÇÕES PARA O PROBLEMA! HLCR/ ─ LR/HC HLR/C H HC HL HL HR HR R/HLC L/HCR HÁ INFINITAS SOLUÇÕES PARA O PROBLEMA! HC HC HC HC HCR/L HLC/R H: homem L: lobo C: cabra R: repolho HR HL HR HL C/HLR HC H HC/LR ─/HLCR H HC

Autômato Finito Determinístico Definição O autômato finito determinístico é aquele que se encontra em um único estado depois de ler uma seqüência qualquer de entradas O termo “determinístico” se refere ao fato de que, para cada entrada, existe um e somente um estado ao qual o autômato pode transitar a partir de seu estado atual q0 a b q1 q2

Autômato Finito Determinístico Definição Um autômato finito determinístico consiste em: Um conjunto finito de estados: Q Um conjunto finito de símbolos de entrada: Σ Uma função de transição que toma como argumentos um estado e um símbolo de entrada, e retorna um estado: δ Um estado inicial (que está em Q) Um conjunto de estados finais F (F é um subconjunto de Q)

Autômato Finito Determinístico Notação: A = (Q, Σ, δ, q0, F)

Exemplo 1 L = { w | w é uma seqüência de 0’s e 1’s, com número par de 0’s e de 1’s } Como seria o AFD que aceita essa linguagem?

L = { w | w é uma seqüência de 0’s e 1’s, Exemplo 1 L = { w | w é uma seqüência de 0’s e 1’s, com número par de 0’s e de 1’s } 1 P0P1 P0I1 1 1 I0P1 I0I1 1

Exemplo 2 L = { w | w é um número binário múltiplo de 3 } Como seria o AFD que aceita essa linguagem?

L = { w | w é um número binário múltiplo de 3 } Exemplo 2 L = { w | w é um número binário múltiplo de 3 } 1 Resto Resto 1 Resto 2 1 1 Esse AFD aceita cadeia vazia - ε

L = { w | w é um número binário múltiplo de 3 } Exemplo 2 L = { w | w é um número binário múltiplo de 3 } Início 1 1 Resto Resto 1 Resto 2 1 1 Esse AFD não aceita cadeia vazia - ε

L(A) = { w | δ(q0, w) está em F } Linguagem de um AFD A linguagem de um AFD A = (Q, Σ, δ, q0, F) é denotada por L(A) e definida por: L(A) = { w | δ(q0, w) está em F } ^

Autômato Finito Não-determinístico Definição O autômato finito não-determinístico pode estar em vários estados ao mesmo tempo Capacidade de “adivinhar” algo sobre sua entrada O AFN aceita as mesmas linguagens aceitas por um AFD São mais sucintos e mais fáceis de projetar q0 a a q1 q2

Autômato Finito Não-determinístico Definição Um autômato finito não-determinístico consiste em: Um conjunto finito de estados: Q Um conjunto finito de símbolos de entrada: Σ Uma função de transição que toma como argumentos um estado e um símbolo de entrada, e retorna um subconjunto de Q: δ Um estado inicial (que está em Q) Um conjunto de estados finais F (F é um subconjunto de Q)

Autômato Finito Não-determinístico Notação: A = (Q, Σ, δ, q0, F)

Exemplo L = { w | w aceita todas as strings que terminam em 01 } Como seria o AFN que aceita essa linguagem?

L = { w | w aceita todas as strings que terminam em 01 } Exemplo L = { w | w aceita todas as strings que terminam em 01 } q0 q1 q2 1 0, 1 O fato de outras escolhas usando os símbolos de entrada de w levarem a um estado de não-aceitação ou não levarem a nenhum estado em absoluto (a seqüência de estados “morre”), não impede w de ser aceito pelo AFN como um todo,

q2 é um estado de aceitação, então 00101 é aceito! Exemplo L = { w | w aceita todas as strings que terminam em 01 } q0 q0 q0 q0 q0 q0 q1 q1 q1 q2 q2 0 0 1 0 1 q2 é um estado de aceitação, então 00101 é aceito! paralisado paralisado

Linguagem de um AFN A linguagem de um AFN A = (Q, Σ, δ, q0, F) é denotada por L(A) e definida por: L(A) = { w | δ(q0, w) ∩ F ≠ Ø } ^

Equivalência entre AFD e AFN Introdução Toda linguagem que pode ser descrita por um AFN também pode ser descrita por um AFD Na prática, um AFD tem quase tantos estados quanto os que o AFN tem, embora com freqüência tenha mais transições No pior caso, o menor AFD pode ter 2n estados, enquanto o menor AFN para a mesma linguagem tem apenas n estados

L = { w | w aceita todas as strings que terminam em 01 } Exemplo L = { w | w aceita todas as strings que terminam em 01 } q0 q1 q2 1 0, 1 0 1 {q0} {q0,q1} {q0} {q1} ─ {q2} {q2} ─ ─ *

L = { w | w aceita todas as strings que terminam em 01 } Exemplo L = { w | w aceita todas as strings que terminam em 01 } q0 q1 q2 1 0, 1 Como o conjunto de estados é {q0, q1, q2}, a construção de subconjuntos produz um AFD com 23 = 8 estados

O oitavo estado, que não aparece na lista, seria o estado Ø Exemplo q0 q1 q2 1 0, 1 0 1 {q0} {q0,q1} {q0} {q1} ─ {q2} {q2} ─ ─ {q0,q1} {q0,q1} {q0,q2} {q0,q2} {q0,q1} {q0} {q1,q2} ─ {q2} {q0,q1,q2} {q0,q1} {q0,q2} O oitavo estado, que não aparece na lista, seria o estado Ø * * * *

Exemplo 1 q0 q1 q2 1 1 1 q0q1q2 q0q1 q0q2 q1q2 1 1

Exemplo 1 q0 q1 q2 1 1 1 q0q1q2 q0q1 q0q2 q1q2 1 1 De todos os estados listados, só podemos acessar os estados {q0}, {q0q1} e {q0q2}. Os estados inacessíveis não precisam constar. Portanto...

Exemplo 1 q0 q0q1 q0q2 1 1

Na próxima aula... AF com ε-transições Expressões regulares Introdução Operadores

Sérgio Donizetti Zorzo zorzo@dc.ufscar.br Paulo R. M. Cereda paulo_cereda@dc.ufscar.br Universidade Federal de São Carlos