Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos em Computaao I o c
AF - Formalismo
M = (, Q, , q0 , F ) alfabeto de s mbolos de entrada Q conj. de estados poss veis do autmato o o qual nito e funo de transio ( : Q x ( { })) ca ca q0 estado inicial (q0 Q) F conjunto dos estados nais tal que F est contido em Q a
Movimentos vazios constituem uma generalizao dos modeca los de mquinas no-determin a a stica. Pode ser interpretado como um no-determinismo interno ao autmato o qual encapsulado, a o e ou seja, nada observado a no ser a alterao de um estado e a ca para o outro. Uma das vantagens dos AF s o fato de facie litar algumas construoes e demonstraoes relacionadas com os c c autmatos. o
Portanto, excetuando-se pela funo programa, as compoca nentes , Q, F e q0 so como na denio de AFN. Um movia ca mento vazio (ou transio vazia) representado pela aplicao ca e ca da funo programa, em um dado estado q ao s ca mbolo especial .
L = {w | qualquer s mbolo a antecede qualquer s mbolo b } M = ({ a, b}, {q0 , qf }, , q0 , {qf }) a b {qf } {qf } q0 qf a b
q
a a smbolo lido conjunto de novos estados
q0 {q0 } qf -
p1
p2
...
pn
O processamento de um AF anlogo ao de um AFN. O proe a cessamento de uma transio para uma entrada vazia tambm ca e no-determin e a stica. Assim, um AF ao processar uma entrada vazia assume simultaneamente os estados destino e origem. Ou seja, a origem de um movimento vazio sempre um caminho e alternativo.
Tpicos em Computaao I o c
Exerc cio 1
L = (a b) M = (, Q, , q0 , F ) = { a, b} Q = {q0 , qf } F = {q0 , qf } a b q0
q0
Denioes c
closure(S) conjunto de estados que podem ser alcanados a partir do estado S sem c consumir nenhuma entrada. Isto , menor e conjunto T, onde: T =S(
a, b qf
T S repeat T T T T ( until T = T
sT
edge(s, ))
sT
q0 qf qf qf -
edge(s, ))
Exerc cio 2
L = (a b)+ M = (, Q, , q0 , F ) = { a, b} Q = {q0 , qf } F = {qf } a b q0
b q0
closure(q0 ) = {q0 , q1 , q2 } closure(q1 ) = {q1 , q2 } closure(q2 ) = {q2 }
Denioes c
a qf
q0 qf qf qf -
edge(s,c))
Denioes c
Utilizaremos o autmato abaixo para exemplicar o as o uso das denioes. c
a b a
q0
q1
q2
DFAedge verica os estados alcanados a partir de um conc junto de estados consumindo uma determinada entrada, incluindo os poss veis movimentos com o . Como o nosso exemplo no a utiliza , o resultado para DFAedge similar ao resultado obtido e por edge. DFAedge({q0 }, a) = {q0 , q1 , q2 }
DFAedge({q1 }, b) = {q1 , q2 } DFAedge({q2 }, a) = {q2 } DFAedge({q0 , q1 }, a) = {q0 , q1 , q2 } DFAedge({q0 , q1 }, b) = {q1 , q2 } DFAedge({q0 , q2}, a) = {q0 , q1 , q2 } DFAedge({q1 , q2}, a) = {q2 } DFAedge({q1 , q2}, b) = {q1 , q2 } DFAedge({q0 , q1 , q2}, a) = {q0 , q1 , q2 } DFAedge({q0 , q1 , q2}, b) = {q1 , q2 }
Tpicos em Computaao I o c
Escreva um AF para a linguagem abaixo. Transforme o AF em um AFD. L = {w | w possui como suxo a ou bb ou ccc}
a, b, c q1 a
q0
q2
q3
q7
c q4 c q5 c q6
p0 p1 p2 p3 p4 p5 p6
q0q1q2
q1q2
q2
a,b
p1 a a c p0 b p2 b c c b c b p5 b c p6 c a p4
b a
q0
a b a q2 b
q1
p3
O resultado deste exerc encontra-se na aula 4. Observe cio que ao aplicar este algoritmo em um AFN, teremos como resultado o mesmo AFD obtido pelo primeiro algoritmo (visto na aula4). Sugesto de exerc a cios: voc pode transformar os AFNs da e aula 4 em AFDs.