Ling. Formais e Autômatos AFN-ε

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

FAPE - Curso de Ciência da Computação
FAPE - Curso de Ciência da Computação
Tópicos em Compiladores
Variantes de Máquina de Turing
Compiladores Claudio Benossi
Linguagem Fabrício Dias
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
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 –
III – Análise sintáctica
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
Linguagens Formais e Autômatos
Prof. Yandre Maldonado e Gomes da Costa
Teoria da Computação FIC– Ciência da Computação
Análise Léxica (Parte 2)
TEORIA DOS AUTÓMATOS FINITOS E DAS SUAS LINGUAGENS
3 AUTÓMATOS FINITOS.
Programação Lógica ProLog
Ling. Formais e Autômatos Autômatos finitos
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
Pós-graduação em Ciência da Computação – UFU
Linguagens Livres de Contexto
Strings, Linguagens, Autômatos
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
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
Compiladores, Aula Nº 5 João M. P. Cardoso
Compiladores, Aula Nº 7 João M. P. Cardoso
Gramáticas Livres de Contexto
4 - DECIDIBILIDADE Universidade Federal da Paraíba
SIPSER – Capítulo 3: A tese de Church-Turing
Informática Teórica Engenharia da Computação
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
Expressões Regulares e Gramáticas
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
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
Máquinas de Turing.
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.
Linguagens Formais - aula 02
Computabilidade e Linguagens Formais
Computabilidade e Linguagens Formais
Computabilidade e Linguagens Formais
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.
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Reverso de uma Linguagem Regular
COMPILADORES 03 Prof. Marcos.
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 AFN-ε

Tópicos Autômatos finitos AF com ε-transições

Conveniência de programação AF com ε-transições Definição O autômato finito com ε-transições permite transições sobre ε, a string vazia O AFN-ε tem permissão para fazer uma transição espontaneamente, sem receber um símbolo de entrada Conveniência de programação q0 q1 ε

Um autômato finito com ε-transições consiste em: AF com ε-transições Definição Um autômato finito com ε-transições 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 em Q e um elemento de Σ U {ε}: δ Um estado inicial (que está em Q) Um conjunto de estados finais F (F é um subconjunto de Q)

AF com ε-transições Notação: A = (Q, Σ, δ, q0, F)

Como ele poderia ser construído? Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay Como ele poderia ser construído?

Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay 1.º passo: Construímos uma seqüência completa de estados para cada palavra-chave, como se fosse a única palavra que o autômato precisasse reconhecer

Construir um AFN que reconheça as palavras-chave web e ebay Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay O AFN abaixo reconhece a palavra-chave web q0 q1 q2 q3 w e b

Construir um AFN que reconheça as palavras-chave web e ebay Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay O AFN abaixo reconhece a palavra-chave ebay q4 q5 q6 q7 q8 e b a y

Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay 2.º passo: Adicionamos um novo estado inicial com ε-transições para os estados iniciais dos autômatos anteriores, que correspondem a cada uma das palavras-chave!

Construir um AFN que reconheça as palavras-chave web e ebay Exemplo 1 Construir um AFN que reconheça as palavras-chave web e ebay q0 q1 q2 q3 w e b ε Início ε q4 q5 q6 q7 q8 e b a y Acabamos de construir um AFN com ε-transições!

Exemplo 2 L = { w | qualquer símbolo a antecede qualquer símbolo b } Como seria o AFN-ε que aceita essa linguagem?

L = { w | qualquer símbolo a antecede qualquer símbolo b } Exemplo 2 L = { w | qualquer símbolo a antecede qualquer símbolo b } q0 q1 ε a b

ε-fechamento de um estado Definição informal Usamos o ε-fechamento em um estado q seguindo todas as transições saindo de q rotuladas por ε. Porém, quando chegamos a outros estados seguindo ε, acompanhamos as transições ε que saem desses estados, e assim por diante, encontrando eventualmente todo estado que pode ser alcançado a partir de q ao longo de qualquer caminho cujos arcos são todos rotulados por ε.

ε-fechamento de um estado Definição formal O estado q está em ECLOSE(q). Se o estado p está em ECLOSE(q), e existe uma transição do estado p para o estado r rotulada por ε, então r está em ECLOSE(q). Mais precisamente, se δ é a função de transição do AFN-ε envolvido, e p está em ECLOSE(q), então ECLOSE(q) também contém todos os estados em δ(p, ε).

ε-fechamento de um estado ECLOSE(1) = { ? } 2 3 6 ε ε ε 1 b ε 4 5 7 a ε

ε-fechamento de um estado ECLOSE(1) = { 1, 2, 3, 4, 6 } 2 3 6 ε ε ε 1 b ε 4 5 7 a ε

AF com ε-transições Considerações Dado qualquer AFN-ε E, podemos encontrar um AFD D que aceita a mesma linguagem que E. Para eliminar as ε-transições, aplica-se uma construção muito parecida com a construção de conjuntos, pois os estados de D são subconjuntos dos estados de E. A única diferença é que devemos incorporar as ε-transições de E, o que fazemos por meio do mecanismo do ε-fechamento (ECLOSE).

Ling. Formais e Autômatos Exp. regulares

Tópicos Expressões regulares Introdução Operadores

Linguagens regulares De acordo com a Hierarquia de Chomsky, as linguagens regulares constituem a classe de linguagens mais simples, sendo possível desenvolver algoritmos de reconhecimento, de geração ou de conversão entre formalismos de pouca complexidade, de grande eficácia e de fácil implementação. Entretanto, as linguagens regulares possuem fortes limitações de expressividade.

Um autômato finito reconhece uma linguagem regular! Linguagens regulares Um autômato finito reconhece uma linguagem regular!

Expressões regulares Toda linguagem regular pode ser descrita por uma expressão regular Uma expressão regular é definida a partir de conjuntos (linguagens) básicos e operações de concatenação e de união

Expressões regulares Ø é uma expressão regular e denota o conjunto { } Para cada a Є Σ, a é uma expressão regular e denota o conjunto { a } Se r e s são expressões regulares denotando os conjuntos R e S, então (r+s), (rs) e (r*) são expressões regulares e denotam os conjuntos RUS, RS e R*, respectivamente

Expressões regulares Alfabeto: Σ = { 0, 1 } 00 é expressão regular se 0 é expressão regular L(0) L(0) = { 0 } { 0 } = { 0 } 0+1 é expressão regular se 0 é expressão regular e 1 é expressão regular L(0) U L(1) = { 0 } U { 1 } = { 0, 1 } = Σ 0* é expressão regular se 0 é expressão regular L(0)* = { 0 }* = { ε, 0, 00, 000, 0000, ... }

Expressões regulares Precedência: * , + 0+1* L(0) U L(1)* = { 0 } U L(1)* = { 0 } U { 1 }* = { 0 } U { ε, 1, 11, ...}= = { 0, ε, 1, 11, ... } Abreviamos rr* por r+ 00*11*22* = 0+1+2+

Exemplo 1 Considerando o alfabeto Σ={ 0, 1 } E1 = (0+1)* 00 (0+1)* O que E1 representa?

Uma string que tenha, pelo menos, Exemplo 1 Considerando o alfabeto Σ={ 0, 1 } E1 = (0+1)* 00 (0+1)* = L(E1) = L((0+1)*) . L(0) . L(0) . L((0+1)*) = {0, 1}* . {00} . {0, 1}* Uma string que tenha, pelo menos, 2 zeros consecutivos!

Exemplo 2 Considerando o alfabeto Σ={ 0, 1 } E2 = ((0+1) (0+1))* O que E2 representa?

Considerando o alfabeto Σ={ 0, 1 } Exemplo 2 Considerando o alfabeto Σ={ 0, 1 } E2 = ((0+1) (0+1))* = L(E2) = L((0+1) (0+1))* = (L(0+1) . L(0+1))* = = ({0,1} {0,1})* = {ε, 00, 01, 10, 11}* Cadeias que tenham comprimento par! (ou ε)

Expressões regulares AF Determinístico AF Não Determinístico

Expressões regulares Simplificações Associação Distribuição Equivalência de fecho

Expressões regulares Seja r uma expressão regular. Então existe um AF não determinístico com ε-transições que aceita r.

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