autômato finito não determinístico - decom-ufop · afn afd: na prática. podemos de fato...
TRANSCRIPT
![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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051803/5af9de5f7f8b9a44658e4ea9/html5/thumbnails/27.jpg)
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}