Vous êtes sur la page 1sur 3

Autmato Finito No Determinstico (AFN)

O no-determinismo uma importante generalizao dos modelos de mquinas, sendo de


fundamental importncia no estudo da teoria da computao e da teoria das linguagens formais.
Nem sempre a facilidade do no-determinismo aumenta o poder de reconhecimento de linguagens
de uma classe de autmatos. Por exemplo, conforme ser mostrado adiante, qualquer Autmato
Finito No-Determinstico pode ser simulado por um Autmato Finito Determinstico.

A facilidade do no-determinismo para autmatos finitos interpretada como segue: a
funo programa, ao processar uma entrada composta pelo estado corrente e o smbolo lido, tem
como resultado um conjunto de novos estados. Visto que uma mquina composta por fita,
unidade de controle e programa; pode-se afirmar que um AFN assume um conjunto de estados
alternativos, como se houvesse uma multiplicao da unidade de controle, uma para cada
alternativa, processando independentemente, sem compartilhar recursos com as demais. Assim, o
processamento de um caminho no influi no estado, smbolo lido e posio da cabea de leitura
dos demais caminhos alternativos.











Observe que, ao contrrio do que acontece nos AFDs, nos AFNs, um mesmo smbolo pode
ser lido a partir de um dado estado para dois ou mais estados. Isto , pode haver mais de uma
transio, a partir de um mesmo estado, com o mesmo smbolo a ser lido.

Um AFN uma quntupla M = (E, Q, o, q
0
, F), onde:
E = Alfabeto
Q = Conjunto finito de estados
o = Funo de transio ou programa. ( o: Q x E 2
Q
)
q
0
= estado inicial do AF. (q
0
e Q)
F = Conjunto de estados finais. F _ Q

Funo de Transio ou Programa (o)

uma funo total. Ou seja, definida para todos os elementos do domnio Q x E.

Ex.: Dado o AFN M
1








q
p
2
p
N
p
1

a
a
a
...
estado anterior
smbolo lido
conjunto de novos estados
q
o
q
1
q
2
1
1
0
1
1
Cada uma das suas partes poderia ter sido representada separadamente:

Alfabeto = {0,1}
Conjunto de Estados = {q
0
, q
1
, q
2
}
Estado Inicial = q
0
Conjunto de Estados Finais = {q
0
, q
2
}
Funo de Transio ou Programa:

o 0 1 A funo de transio ou programa sempre estar definida para todo o
domnio. No pior caso, o resultado dela ser o conjunto vazio, que
tambm um elemento do conjunto das partes de Q.
q
0
C {q
1
, q
2
}
q
1
{q
2
} C
q
2
C {q
1
, q
2
}

OBS.: Todo AFD um AFN, mas nem todo AFN um AFD.



Funo de Transio ou Programa Estendida a Palavras (o*)

o*(q, c) = {q}
o*(q, aw) = {p| - r e o(q, a) e p e o*(r, w)}

Para provar formalmente se uma palavra w aceita por um AFN qualquer M = (E, Q, o, q
0
,
F), deve ser verificado se o*(q
0
, w) F = C. Ou seja, o conjunto de estados onde possvel parar
no autmato, aps a leitura da palavra w, deve ter algum estado em comum com o conjunto de
estados finais deste.

Caso se deseje provar que uma palavra aceita, basta provar por um dos caminhos que
ela lida e aceita. Para se provar que uma palavra no aceita por um autmato, deve-se provar
por todos os caminhos possveis que ela no pode ser aceita.


Funo de Transio ou Programa Estendida a Conjunto de Estados (o)

Dado um conjunto de estados P = {p
1
, ... , p
N
} e um smbolo a de um alfabeto, a funo de
transio ou programa estendida ao conjunto de estados P, denotada por o(P, a), a unio dos
resultados da aplicao da funo programa a cada um dos elementos de P. Ou seja:

o(P, a) = o(p
1
, a) ... o(p
N
, a)


Converso de AFN para AFD

Para todo e qualquer AFN, possvel encontrar um AFD que seja equivalente a ele, ou seja, que
reconhea a mesma linguagem reconhecida pelo AFN.

Dado um AFN M
1
= (E, Q, o, q
0
, F), possvel encontrar um AFD M
1
= (E, Q, o, {q
0
}, F), onde:

Q = 2
Q

F = {p e Q | p F = C}

Ao final do processo de converso, todos os estados que no fazem parte de um caminho que leve
do estado inicial {q
0
} a qualquer um dos finais deve ser eliminado, para que o autmato seja
minimizado. Ou seja, se um estado no consegue ser atingido a partir do inicial, ou ainda se ele
no d acesso a um estado final, ele pode ser desprezado.
Ex.: Dado o AFN M
1
abaixo, podemos encontrar um AFD M
2
que seja equivalente a ele. A
linguagem aceita por eles deve ser L = { w e {a, b}* | a sufixo de w }.






Construo do AFD M
2
:

Q = { C, {q
0
}, {q
1
}, {q
0
, q
1
} }
F = { {q
1
}, {q
0
, q
1
} }

o a B
C C C
{q
0
} {q
0
, q
1
} {q
0
}
{q
1
} C C
{q
0
, q
1
} {q
0
, q
1
} {q
0
}
















Os estados C e {q1}
podem ser eliminados,
pois ambos no podem
ser atingidos a partir do
estado inicial ({q0}).
Os estados restantes,
agora, podem ser
renomeados.
q
o
q
1
a, b
a
b
b

{q
1
}

{q
0
,q
1
}


C

{q
0
}
a, b
a, b
a
a
b
b

{q
0
,q
1
}


{q
0
}
a
a
b

q
1



q
0

a
a
b

Vous aimerez peut-être aussi