Você está na página 1de 5

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

Equival
encia entre AFD e AFN
Exemplo

Aut
omato Finito N
ao-Determinstico (AFN)
estado anterior

q
a

p1

p2

...

pn

smbolo
lido
conjunto
de novos
estados

L = {w | w (a |a+ b ) }
M = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 }
F = {q0 , q1 }

q0 {q0 , q1 }
q1

{q1 }

a,b

A funcao programa, ao processar um entrada


(estado corrente e smbolo lido), tem como
resultado um conjunto de novos estados.

q0

q1

q2

q3

O nao determinismo e uma importante generalizacao dos


modelos de maquinas, sendo de fundamental importancia no estudo da teoria da computacao e das linguagens formais. Qualquer
AFN pode ser simulado por um AFD.

o ciclo em q0 realiza uma varredura pela entrada de smbolos


as

Pode-se entender que o AFN assume simultaneamente todas


as alternativas de estados possveis {p0 , p1 , ..., pn } a partir do
estado atual (q) e do smbolo lido (a).

o caminho q0 /q1 garante a ocorrencia de a antes da


ocorrencia de bs

Exerccio

AFN - Definic
ao
M = (, Q, , q0 , F )
alfabeto de smbolos de entrada
Q conj. de estados possveis do automato
o qual e finito
funcao de transicao

L = {w | w possui aaa como sufixo}


M = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , qf }
F = {qf }

q0 {q0 , q1 } {q0 }
q1

{q2 }

q0 estado inicial (q0 Q)

q2

{qf }

F conjunto dos estados finais tal que F


esta contido em Q

qf

A linguagem aceita por um automato finito nao-determinstico


M = (, Q, , q0 , F ) denotada por ACEITA(M), ou L(M) e o
conjunto de todas as palavras pertencentes a tais que existe
pelo menos um caminho alternativo que aceita a palavra.
Analogamente, REJEITA(M) e o conjunto de todas as
palavras pertencentes a rejeitadas por todos os caminhos alternativos de M (a partir de q0 ).

Profa. Tiemi Christine Sakata

a,b

q0

q1

q2

qf

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

3. M3 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 , q8 }
F = {q0 }

Exerccios
Desenvolver AFNs que reconhecam as seguintes
linguagens sobre = {a, b}
1. L1 = {w | o prefixo de w e aa}
2. L2 = {w | w possui aa ou bb como
subpalavra}
3. L3 = {w | w possui um numero par de a e b}
4. L4 = {w|w possui um numero mpar de a}

q0
q1
q2
q3
q4
q5
q6
q7
q8

a
{q1 , q3 }
{q0 }
{q0 }
{q5 }
{q4 }
{q7 }
{q6 }
{q0 }

b
{q2 , q6 }
{q0 }
{q4 }
{q3 }
{q0 }
{q0 }
{q8 }
{q7 }

a
q6

Possveis solucoes:

1. M1 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 }
F = {q2 , q3 }

q0
q1
q2
q3

a
{q1 }
{q2 }
{q2 , q3 }
-

q7

a
b

q2
b

q8

b
a

b
{q2 , q3 }
-

q0

a
q1

q5

a,b

a a
b

q3

q4

q0

q1

q2

2. M2 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , qf }
F = {qf }

q0
q1
q2
qf

a,b

q3

4. M4 = (, Q, , q0 , F )
= {a, b}
Q = {q0 , q1 , q2 , q3 }
F = {q1 , q2 }

q0
q1
q2
qf

a
b
{q0 , q1 } {q0 , q2 }
{qf }
{qf }
{qf }
{qf }

a
{q1 , q2 }
{q3 }
{q2 }

b
{q0 }
{q1 }
{q2 }
{q3 }

b
a,b

q0
a

q0

q1

b
q1

q2

a
a
q2

b
qf

q3
a

a,b

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Equival
encia entre AFD e AFN
Um automato finito nao-determinstico pode se
transformar em um automato finito
determinstico equivalente.
Dois automatos sao considerados equivalentes
se aceitam a mesma linguagem.

Embora a facilidade de nao-determinismo seja, aparentemente, um significativo acrescimo ao Automato Finito, na realidade nao aumenta seu poder computacional. Assim, para
cada AFN, e possvel construir um AFD equivalente que realiza o mesmo processamento. O contrario tambem e verdadeiro.

Equival
encia entre AFD e AFN
Para construir um AFD a partir de um AFN
qualquer, devemos realizar os seguintes passos:
1. Construir a tabela de transicoes do AFN ().
2. Construir a tabela de transicoes do AFD ()
atraves do produto cartesiano dos estados de
, incluindo como ultimo conjunto o vazio.
3. Mostrar todos os conjuntos que contem como
elemento estados finais como novo estado final
de .
Exemplo: Considere o AFN seguinte:

a
q0

q1

b
a

Topicos em Computacao I

a
b
q0 {q1, q2}
q1 {q2} {q0, q2}
q2 {q2}
{q0}
2. Construir a tabela de transicoes do AFD () atraves do
produto cartesiano dos estados de , incluindo como ultimo
conjunto o vazio:

S0
S1
S2
S3
S4
S5
S6
S7

= {q0}
= {q1}
= {q2}
= {q0, q1}
= {q0, q2}
= {q1, q2}
= {q0, q1, q2 }
={}

Obs.: Sempre existira 2k combinacoes, onde k e o numero


de estados do AFN.

3. Mostrar todos os conjuntos que contem como elemento


estados finais como novo estado final de :

S0 = {q0}
S1 = {q1}
S2 = {q2}
S3 = {q0, q1}
S4 = {q0, q2}
S5 = {q1, q2}
S6 = {q0, q1, q2 }
S7 = { }

a, b

b
a
q2

1. Construir a tabela de transicoes do AFN ():

Profa. Tiemi Christine Sakata

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

Equival
encia entre AFD e AFN
4. Verificar a ocorrencia de cada conjunto de
em relacao a um smbolo e colocar como
resultado o conjunto correspondente que
pertence a . Quando existir mais de um
elemento no conjunto a ocorrencia passa a ser
a uniao das ocorrencias de todas as transicoes.
5. Eliminar as linhas que possuem transicoes
somente com sadas (nao existe transicao que
chega ate ela, isto e, estado inacessvel).

Equival
encia entre AFD e AFN
6. Montar o AFD a partir de .
7. Eliminar os estados que nao possuem sada
para outro estado e nao sao finais.
8. Verificar se uma cadeia que pertencia ao AFN
tambem pertence ao AFD gerado.

6. Montar o AFD a partir de :


4. Verificar a ocorrencia de cada conjunto de em relacao a
um smbolo e colocar como resultado o conjunto correspondente que pertence a . Quando existir mais de um
elemento no conjunto a ocorrencia passa a ser a uniao das
ocorrencias de todas as transicoes:

S0 = {q0}
S1 = {q1}
S2 = {q2}
S3 = {q0, q1}
S4 = {q0, q2 }
S5 = {q1, q2 }
S6 = {q0, q1 , q2}
S7 = { }

a
S5
S2
S2
S5
S5
S2
S5
S7

b
S7
S4
S0
S4
S0
S4
S4
S7

S0

S5

S4
a, b

b
a
S7

S2

7. Eliminar os estados que nao possuem sada para outro estado e nao sao finais:

S0

S5

b
5. Eliminar as linhas que possuem transicoes somente com
sadas, ou seja, nao existe nenhuma transicao que chega
ate ela (estado inacessvel):

b
a

S4
b

S0 = {q0}
S2 = {q2}
S4 = {q0, q2 }
S5 = {q1, q2 }
S7 = { }

a
S5
S2
S5
S2
S7

Profa. Tiemi Christine Sakata

b
S7
S0
S0
S4
S7

S2

8. Verificar se uma cadeia ababaaba que pertencia ao AFN


tambem pertence ao AFD gerado:

S0
S2

a S5

b S0

a S5
a S5
a

b S4

b S4

a
S
5

FACENS - Faculdade de Engenharia de Sorocaba

Topicos em Computacao I

Transforme os AFNs em AFDs

a,b

b
b
p0
q0

q1

q0

q1

q2

p1

p2

p3

q3

2. p0
p1
p2
p3

=
=
=
=

{q0 }
{q1 }
{q0 , q2 }
{q0 , q1 }

b
b

p0

q2

p1

b
a
p2

p3

1. p0
p1
p2
p3

=
=
=
=

{q0 }
{q0 , q1 }
{q0 , q1 , q2 }
{q0 , q1 , q2 , q3 }

Profa. Tiemi Christine Sakata

Sugestao de exerccios: voce pode transformar os AFNs da


aula 4 em AFDs.

Você também pode gostar