Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

34
Ling. Formais e Autômatos AFN-ε

Transcript of Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Page 1: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Ling. Formais e Autômatos

AFN-ε

Page 2: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Tópicos

AF com ε-transições

Autômatos finitos

Page 3: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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

ε

Page 4: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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)

Page 5: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

AF com ε-transições

Notação:

A = (Q, Σ, δ, q0, F)

Page 6: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 1

Construir um AFN que reconheça as palavras-chave web e ebay

Como ele poderia ser construído?

Page 7: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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

Page 8: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 1

Construir um AFN que reconheça as palavras-chave web e ebay

O AFN abaixo reconhece a palavra-chave web

q0 q1

w eq2 q3

b

Page 9: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 1

Construir um AFN que reconheça as palavras-chave web e ebay

O AFN abaixo reconhece a palavra-chave ebay

q4 q5

eq6 q8q7

b a y

Page 10: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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!

Page 11: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 1

Construir um AFN que reconheça as palavras-chave web e ebay

q4 q5

eq6 q8q7

b a y

q0 q1

w eq2 q3

b

Início

ε

ε

Acabamos de construir um AFN com ε-transições!

Page 12: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 2

L = { w | qualquer símbolo a antecede qualquer símbolo b }

Como seria o AFN-ε que aceita essa linguagem?

Page 13: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 2

L = { w | qualquer símbolo a antecede qualquer símbolo b }

q0 q1

ε

a b

Page 14: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

ε-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 ε.

Page 15: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

ε-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, ε).

Page 16: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

ε-fechamento de um estado

ECLOSE(1) = { ? }

5

6

7

1

2 3

4

ε

ε ε

ε

εa

b

Page 17: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

ε-fechamento de um estado

ECLOSE(1) = { 1, 2, 3, 4, 6 }

5

6

7

1

2 3

4

ε

ε ε

ε

εa

b

Page 18: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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).

Page 19: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Ling. Formais e Autômatos

Exp. regulares

Page 20: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Tópicos

Expressões regulares

Introdução

Operadores

Page 21: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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.

Page 22: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Linguagens regulares

Um autômato finito reconhece uma linguagem regular!

Page 23: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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

Page 24: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Expressões regulares

Ø é uma expressão regular e denota o conjunto { }

Ε é 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

Page 25: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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, ... }

Page 26: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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+

Page 27: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 1

Considerando o alfabeto Σ={ 0, 1 }

E1 = (0+1)* 00 (0+1)*

O que E1 representa?

Page 28: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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!

Page 29: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Exemplo 2

Considerando o alfabeto Σ={ 0, 1 }

E2 = ((0+1) (0+1))*

O que E2 representa?

Page 30: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

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 tenhamcomprimento par! (ou ε)

Page 31: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Expressões regulares

AFDeterminístico

AF NãoDeterminístico

ExpressõesRegulares

Page 32: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Expressões regulares

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

Page 33: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Expressões regulares

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

Page 34: Ling. Formais e Autômatos AFN-ε. Tópicos AF com ε-transições Autômatos finitos.

Universidade Federal de São Carlos

Sérgio Donizetti Zorzo

[email protected]

Paulo R. M. Cereda

[email protected]