Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato...

27
Autômato Finito Não Determinístico

Transcript of Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato...

Page 1: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Autômato Finito Não Determinístico

Page 2: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Autômato Finito Não Determinístico (AFN)

• Um AFN é uma quíntupla (Q, Σ, δ, I, F), onde:– Q é um conjunto finito de um ou mais de estados;– Σ é um alfabeto;– I, um subconjunto de Q, é um conjunto não vazio de

estados iniciais;– F, um subconjunto de Q, é o conjunto de estados

finais;– δ, a função de transição, é uma função total de Q x Σ

para ℘(Q).

• Observe que um AFD é um caso particular de AFN.

Page 3: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Exemplo AFN

• ({e1, e2}, {0,1}, δ, {e1}, {e2}), em que δ é

δ∅e2

{e1}{e1, e2}e1

10δ

Page 4: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Função de transição estendida

• Seja um AFN M=(Q, Σ, δ, I, F). A função de transição estendida , é uma função de ℘(Q) x Σ* para ℘(Q), definida recursivamente como:

para todo w ∈ Σ*

para todo A ⊆ Qpara todo A ⊆ Q , a ∈ Σ e y ∈ Σ*.

δ̂

)),,((ˆ),(ˆ

),(ˆ

),(ˆ

yaqayA

AA

w

Aq δδδ

εδ

φφδ

∈∪=

=

=

}),(ˆ|*{)( φδ ≠∩∑∈= FwIwML

Page 5: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Exercícios

• Construa AFNs para as seguintes linguagens:

1. {0,1}*{1010}, Σ= {0,1}

2. {0,00}{11}*, Σ= {0,1}3. {a,b,c}*{abc}{a,b,c}*, Σ= {a,b,c}

4. {a,b,c}* {abc,bca} , Σ= {a,b,c}

Page 6: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

6

AFN � AFDConstrução de subconjuntos de estados

Dado um AFN N = (Q, Σ, δ, I, F ), o AFD equivalente é

M(N ) = (Q’, Σ, δ’, q0’, F’ ) onde– O conjunto de estados de M é o conjunto potência

de Q : Q’ =P (Q )={todos os subconjuntos de Q }– Cada estado de aceitação de M consiste de um

subconjunto que contém um estado de aceitação. I.e. F’ = {S ⊆ Q | S ∩F ≠ ∅ }

– O estado inicial de M é o conjunto q0’ = I

a função δ’ é descrita a seguir:

Page 7: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

7

AFN � AFD Função de transição Delta.

Considere o exemploAntes de ler 1:

Depois de ler 1:

Q: Porque δ’({q1,q2 },1) = {q2,q3 } ?

0,10,1

0

0

1

1

0,10,1

0

0

1

1

q0

q1

q2

q3

Page 8: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

8

AFN � AFD Função de transição Delta.

De modo geral temos:

Isso completa a definição formal da construçãodo AFD cujos estados são subconjuntos de estados do AFN original.

{ }),δ(',),δ( ),(δ aqqSqQq'aqaS’Sq

∈∈∃∈==∈

U

Page 9: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

9

AFN � AFD: na prática.Vamos ver como o procedimento de

conversão funciona na prática.

Q1: Qual é a linguagem aceita peloAFN?

Q2: Quantos estados tem o AFD correspondente nesse caso?

Page 10: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

10

AFN � AFD: na prática.

R1: L = {x∈{a,b}* | 3o. bit de x a partir da direita é a}

R2: 16 = 24 estados.É um número bastante grande! Seria bom se pudermos

construir apenas os estados úteis, i.e., aquelesatingíveis a partir do estado inicial.

Page 11: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

11

AFN � AFD: na prática.

Podemos de fato construir apenas os estadosde que precisamos. Começando a partir do estado inicial, fazemos uma pesquisa emlargura sobre o grafo!

O primeiro estado será {1}:

Page 12: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

12

AFN � AFD: na prática.

Comece com {1}:

Page 13: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

13

AFN � AFD na prática.

Prossiga: note que δ(1,a) = {1,2}.

Page 14: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

14

AFN � AFD na prática.

Prossiga: note que δ’({1,2},a) = {1,2,3}.

Page 15: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

15

AFN � AFD na prática.

Prossiga: note que δ’({1,2,3},a) = {1,2,3,4}

Page 16: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

16

AFN � AFD na prática.

Continue

Page 17: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

17

AFN � AFD : na prática.

Page 18: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

18

AFN � AFD : na prática.

Page 19: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

19

AFN � AFD : na prática.

Page 20: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

20

AFN � AFD : na prática.

Page 21: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

21

AFN � AFD : na prática.

Resumindo:

Portanto, economizamos 50% do esforço nãoconstruindo todos os possíveis estados.

Page 22: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Exercício

• Transforme os AFNs do exercício anterior em AFDs.

Page 23: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

AFN Estendido (AFNE)

• Um AFNE é uma quíntupla (Q, Σ, δ, I, F), onde:– Q, Σ, I e F são como os de um AFN e– δ é uma função parcial QxD para P(Q), onde D é

algun subconjunto finito de Σ*.

• Exemplo: M=({1,2,3},{0,1}, δ,{1},{2,3})

{3}∅∅∅3∅{2}∅∅2

∅∅{3}{2}1

11001εδ

Page 24: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

AFN com transições ε (AFN-ε)

• Um AFN-ε é uma quíntupla (Q, Σ, δ, I, F), onde:– Q, Σ, I e F são como os de um AFN e– δ é uma função total Qx(Σ ∪ {ε}) para P(Q).

• Exemplo: M=({1,2,3,4,5},{0,1}, δ,{1},{2,3})

{3}∅∅5∅{2}∅4

{5}∅∅3

∅{4}∅2∅{3}{2}1

10εδ

Page 25: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Fecho-ε

• Seja um AFN-ε M=(Q, Σ, δ, I, F). A função fecho ε para M, fε, é uma função de P(Q) em P(Q), definida recursivamente como:– fε(∅) = ∅– fε(X) = X ∪ fε(∪e∈X δ(e, ε), para X ≠ ∅.

• Exemplo: AFN-ε M=({p0, p1, i0,i1},{0,1},δ,{p0},{i1})

{p1}{i1}∅i1

{p1}

ε

{i0}{p0}i0

{i1}{p1}p1

{p0}{i0}p0

10δ

Page 26: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

AFN-ε � AFN

• Para obter um AFN equivalente a um AFN-ε, basta eliminar as transições ε, utilizando a função fecho-ε.

• Seja um AFN-ε M =(Q, Σ, δ, I, F). Uma AFN equivalente a M seria M’ = (Q, Σ, δ’, I’, F), onde:– I’ = fε(I)– δ’(e, a) = fε(δ(e, a)), para cada e ∈ Q e a ∈ Σ.

Page 27: Autômato Finito Não Determinístico - DECOM-UFOP · AFN AFD: na prática. Podemos de fato construir apenas os estados de que precisamos. Começando a partir do estado inicial, fazemos

Exercício

• Construa AFDs para:– {uavbxcy | u,v,x,y ∈ {a,b,c}*}

– {w ∈ {a,b}* | w começa com a e tem tamanho par}

– {w ∈ {a,b}* | w tem um número ímpar de b’s}