Você está na página 1de 27

Autmato Finito No

Determinstico
Autmato Finito No Determinstico
(AFN)
Um AFN uma quntupla (Q, , , I, F), onde:
Q um conjunto finito de um ou mais de estados;
um alfabeto;
I, um subconjunto de Q, um conjunto no vazio de
estados iniciais;
F, um subconjunto de Q, o conjunto de estados
finais;
, a funo de transio, uma funo total de Q x
para (Q).
Observe que um AFD um caso particular de
AFN.
Exemplo AFN
({e
1
, e
2
}, {0,1}, , {e
1
}, {e
2
}), em que
e
2
{e
1
} {e
1
, e
2
} e
1
1 0
Funo de transio estendida
Seja um AFN M=(Q, , , I, F). A funo de
transio estendida , uma funo de (Q)
x * para (Q), definida recursivamente como:
para todo w *
para todo A Q
para todo A Q , a e y *.

) ), , ( (

) , (

) , (

) , (

y a q ay A
A A
w
A q


=
=
=
} ) , (

| * { ) ( = F w I w M L
Exerccios
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}
6
AFN AFD
Construo de subconjuntos de estados
Dado um AFN N = (Q, , , I, F ), o AFD
equivalente
M(N ) = (Q, , , q
0
, F ) onde
O conjunto de estados de M o conjunto potncia
de Q : Q =P (Q )={todos os subconjuntos de Q }
Cada estado de aceitao de M consiste de um
subconjunto que contm um estado de aceitao.
I.e. F = {S Q | S F }
O estado inicial de M o conjunto q
0
= I
a funo descrita a seguir:
7
AFN AFD
Funo de transio Delta.
Considere o exemplo
Antes de ler 1:
Depois de ler 1:
Q: Porque ({q
1
,q
2
},1) = {q
2
,q
3
} ?
0,1
0,1
0
0
1
1
0,1
0,1
0
0
1
1
q
0
q
1
q
2
q
3
8
AFN AFD
Funo de transio Delta.
De modo geral temos:
Isso completa a definio formal da construo
do AFD cujos estados so subconjuntos de
estados do AFN original.
{ } ) , ( ' , ) , ( ) , ( a q q S q Q q' a q a S
S q
= =

U
9
AFN AFD: na prtica.
Vamos ver como o procedimento de
converso funciona na prtica.
Q1: Qual a linguagem aceita pelo
AFN?
Q2: Quantos estados tem o AFD
correspondente nesse caso?
10
AFN AFD: na prtica.
R1: L = {x{a,b}* | 3
o.
bit de x a partir da direita a}
R2: 16 = 2
4
estados.
um nmero bastante grande! Seria bom se pudermos
construir apenas os estados teis, i.e., aqueles
atingveis a partir do estado inicial.
11
AFN AFD:
na prtica.
Podemos de fato construir apenas os estados
de que precisamos. Comeando a partir do
estado inicial, fazemos uma pesquisa em
largura sobre o grafo!
O primeiro estado ser {1}:
12
AFN AFD:
na prtica.
Comece com {1}:
13
AFN AFD
na prtica.
Prossiga: note que (1,a) = {1,2}.
14
AFN AFD
na prtica.
Prossiga: note que ({1,2},a) = {1,2,3}.
15
AFN AFD
na prtica.
Prossiga: note que ({1,2,3},a) = {1,2,3,4}
16
AFN AFD
na prtica.
Continue
17
AFN AFD :
na prtica.
18
AFN AFD :
na prtica.
19
AFN AFD :
na prtica.
20
AFN AFD :
na prtica.
21
AFN AFD :
na prtica.
Resumindo:
Portanto, economizamos 50% do esforo no
construindo todos os possveis estados.
Exerccio
Transforme os AFNs do exerccio anterior
em AFDs.
AFN Estendido (AFNE)
Um AFNE uma quntupla (Q, , , I, F), onde:
Q, , I e F so como os de um AFN e
uma funo 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
11 00 1
AFN com transies (AFN-)
Um AFN- uma quntupla (Q, , , I, F), onde:
Q, , I e F so como os de um AFN e
uma funo 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
1 0
Fecho-
Seja um AFN- M=(Q, , , I, F). A funo fecho para
M, f, uma funo de P(Q) em P(Q), definida
recursivamente como:
f() =
f(X) = X f(
eX
(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
1 0
AFN- AFN
Para obter um AFN equivalente a um
AFN-, basta eliminar as transies ,
utilizando a funo 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 .
Exerccio
Construa AFDs para:
{uavbxcy | u,v,x,y {a,b,c}*}
{w {a,b}* | w comea com a e tem tamanho
par}
{w {a,b}* | w tem um nmero mpar de bs}

Você também pode gostar