Вы находитесь на странице: 1из 17

Captulo 2: Maquinas de Estados Finitos

Newton Jose Vieira Isabel Gomes Barbosa


Departamento de Ciencia da Computa cao
Universidade Federal de Minas Gerais
19 de agosto de 2010
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Sumario
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Quebra-cabecas
O Leao, o coelho e o repolho
Um homem, um leao, um coelho e um repolho devem atravessar
um rio usando uma canoa, com a restricao de que o homem deve
transportar no maximo um dos tres de cada vez de uma margem `a
outra. Alem disso, o leao nao pode car na mesma margem que o
coelho sem a presen ca do homem, e o coelho nao pode car com o
repolho sem a presenca do homem. O problema consiste em
determinar se e possvel fazer a travessia.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Modelagem do problema
Na fase de modelagem:
a) as informac oes relevantes sao identicadas (abstra cao);
b) as informac oes relevantes sao estruturadas (ou seja,
representadas), de forma a facilitar a posterior solu cao.
= Menos informac oes solucao mais facil e/ou eciente.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Modelagem do quebra-cabecas
Informacoes relevantes abstradas para o quebra-cabecas:
a) em um dado instante, em que margem do rio estao o homem,
o leao, o coelho, e o repolho; representacao;
b) a sequencia de movimenta coes entre as margens que propiciou
a situacao indicada em (a).
Representacao das informa coes:
a) A {h, l , c, r } representa os elementos em A estao na
margem esquerda e os em {h, l , c, r } A estao na direita;
b) palavra a
0
a
1
a
2
. . . a
n
, em que cada a
i
pode ser s, l, c ou r,
representa a sequencia de movimentos ate o momento.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Estados e transic oes
Estado: uma fotograa da realidade;
Transi cao de um estado para outro: provocada por uma acao.
Solu cao: sequencia de ac oes que levam de um estado inicial
a um estado nal.
Para o quebra-cabecas:
a) Estado: um subconjunto de {h, l , c, r }
inicial: {h, l , c, r };
nal: {}.
b) Transi cao: provocada por uma das a c oes: s, l, c ou r.
c) Solu cao: uma palavra no alfabeto {s, l, c, r}
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Diagrama de estados
Representacao do espa co de estados e transi c oes por meio de um
grafo:
Estado: vertice do grafo
inicial: ressaltado por uma seta que o aponta;
nal: oval dupla.
Transi cao de e para e

provocada por s: aresta de e para e

com rotulo s.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Diagrama de estados para Leao-coelho-repolho

_
`

{h, l , c, r }
c

_
`

{l , r }
s

_
`

{h, l , r }
l

_
`

{r }
c

c
`
_
`

{h, c, r }
_
`

{l }
c

`
c
_
`

{h, l , c}

r
r

l
l
_
`

{c}

s
_
`

{h, c}

c
_
`

{}
Formalizacao
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Computacao
Dada w {s, l, c, r}

:
w e reconhecida se o caminho correspondente vai do
estado inicial ao nal.
w e rejeitada, caso contrario.
Congura cao instantanea durante processamento de w: [e, y],
sendo:
e: o estado atual apos processar um prexo x de w;
y: o suxo ainda nao processado (assim, w = xy).
Relacao : [e
1
, w] [e
2
, y] se existe uma transicao de e
1
para e
2
sob a e w = ay.
Exemplo de computa cao:
[{l , r }, sllr] [{h, l , r }, llr] [{r }, lr] [{h, l , r }, r] [{l }, ].
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Caractersticas do aut omato do quebra-cabecas
para cada transi cao existe uma transicao inversa;
ha um unico estado nal;
determinismo: para cada par (estado, smbolo) existe, no
maximo, uma transi cao;
o conjunto de estados e nito.
=

Unica caracterstica geral: a ultima.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Probleminha de matematica
Binario divisvel por 6
Seja o problema de projetar uma maquina que, dada uma
sequencia de 0s e 1s, determine se o n umero representado por ela
na base 2 e divisvel por 6. O que se deseja e um projeto
independente de implementa cao, ou seja, que capture apenas a
essencia de tal maquina, nao importando se ela sera mecanica,
eletronica, um programa ou o que quer que seja.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Projetando o aut omato
Se (x) mod 6 = r , entao:
(x0) mod 6 = 2r mod 6; e
(x1) mod 6 = (2r + 1) mod 6.
Segue-se um aut omato com as caractersticas:
um estado para cada resto de 0 a 5;
do estado correspondente ao resto r emanam duas transic oes:
transicao sob 0 para o estado correspondente a 2r mod 6, e
transicao sob 1 para o estado correspondente a (2r +1) mod 6;
o estado correspondente a resto 0 e o estado inicial;
o estado correspondente a resto 0 e estado nal.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Diagrama de estados

_
`

1
_
`

0
_
`

0
_
`

1
_
`

0
_
`

1
`
1

0
`
0
Formalizacao
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Elevador para 3 andares
Modelagem de elevador
Modelar um elevador destinado a servir a um predio de tres
andares, satisfazendo:
1
caso nao haja chamada, o elevador ca parado onde estiver;
2
o elevador da prioridade ao chamado mais pr oximo no sentido
em que estiver se movimentando;
3
um chamado pode ser desligado manualmente. Assim, por
exemplo, e possvel existir uma chamada para um andar em
certo instante e, logo em seguida, nao existir mais, sem que o
elevador se mova.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Modelando o elevador para 3 andares
As informacoes relevantes:
o andar em que o elevador se encontra (estado);
o sentido em que o elevador esta se movendo (estado);
os andares em que o elevador esta sendo solicitado (provoca
transi cao);
sada em transi cao: subir, descer, car im ovel.
Opcoes de quanto ao funcionamento do elevador:
se o elevador esta sendo chamado para o andar em que ja
esta, ele ca parado;
o elevador da preferencia para o sentido em que esta se
movendo.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Componentes do aut omato
Alguns detalhes:
Estados: 1, 2 , 2 e 3;
Nao ha estado inicial ou nal;
Alfabeto de entrada: P({1, 2, 3});
Alfabeto de sada: {, , };
= O aut omato e uma maquina de Mealy.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Diagrama de estados para o elevador

_
`

, [1]/

{2}, {3}, {2, 3}/


_
`

, [2]/

{1}/

{3}, {1, 3}/


_
`

`
, [3]/

{1}, {2}, {1, 2}/


_
`

`
, [2]/

{3}/
`
{1}, {1, 3}/
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Computacao da maquina de Mealy
Conguracao instantanea: [e, x, y], em que:
e: estado atual;
x: suxo a ser processado;
y: sequencia das sadas emitidas ate o momento.
Exemplo de computacao:
[1, {2, 3}{1, 3}{1}, ] [2 , {1, 3}{1}, ] [3, {1}, ] [2 , , ].
(Apesar do ultimo conjunto de chamadas ser {1}, o elevador nao
vai ate o primeiro andar, porque alguem desligou manualmente o
chamado depois que o elevador partiu do terceiro em direcao ao
segundo andar.)
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O que e aut omato nito determinstico
AFD
Um automato nito determinstico (AFD) e uma quntupla
(E, , , i , F) em que:
E e um conjunto nito nao vazio de estados;
e um alfabeto;
: E E e a funcao de transi cao, uma fun cao total;
i E e o estado inicial;
F E e o conjunto de estados nais.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Propriedades dos AFDs
Determinismo: a partir do estado inicial e atingido um unico
estado, para uma dada palavra de entrada.
Funcao de transicao total: para toda palavra de entrada,
atinge-se um estado consumindo-se toda a palavra.
Um unico estado inicial: com varios o poder computacional
nao e maior.
Varios estados nais: com um s o, o poder computacional e
menor.
Conjunto nito de estados: com conjunto innito, o poder
computacional e maior.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
AFD para o quebra-cabecas
M = (E, {s, l, c, r}, , {h, l , c, r }, {{}})
E = {{h, l , c, r }, {l , r }, {h, l , r }, {l }, {r }, {h, l , c}, {h, c, r }, {c}, {h, c}, {}, t}
s l c r
{h, l , c, r } t t {l , r } t
{l , r } {h, l , r } t {h, l , c, r } t
{h, l , r } {l , r } {r } t {l }
{l } t t {h, l , c} {h, l , r }
{r } t {h, l , r } {h, c, r } t
{h, l , c} t {c} {l } t
{h, c, r } t t {r } {c}
{c} {h, c} {h, l , c} t {h, c, r }
{h, c} {c} t {} t
{} t t {h, c} t
t t t t t
Diagrama de Estados
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Uma convencao em diagramas de estados
Se nao ha transi cao de e sob a no diagrama de estados, entao
existe e

(estado de erro) tal que:


existe uma transi cao de e para e

sob a;
e

nao e estado nal;


existe uma transi cao de e

para e

sob cada smbolo do


alfabeto.
Diagrama de estados simplicado: aquele em que foram
omitidos todos os estados de erro porventura existentes.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
AFD para o probleminha de matematica
M = ({0, 1, 2, 3, 4, 5}, {0, 1}, , 0, {0})
0 1
0 0 1
1 2 3
2 4 5
3 0 1
4 2 3
5 4 5
Diagrama de Estados
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Funcao de transicao estendida
Seja um AFD M = (E, , , i , F). A fun cao de transi cao estendida
para M,

: E

E, e denida recursivamente como segue:


1

(e, ) = e;
2

(e, ay) =

((e, a), y), para todo a e y

.
Exemplo:

(0, 1010) = . . . (para o probleminha de matematica)
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Linguagem reconhecida por um AFD
A linguagem reconhecida por um AFD
A linguagem reconhecida por um AFD M = (E, , , i , F) e:
L(M) = {w

(i , w) F}.
Uma palavra w

e dita ser reconhecida por M se



(i , w) F.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Algoritmo para simular AFDs
Algoritmo
Entrada: 1. o AFD, dado por i , F e D, e
2. a palavra de entrada, dada por prox.
Sada: sim ou nao.
e i ; s prox();
enquanto s = fs fa ca
e D[e, s]; s prox();
menquanto;
se e F entao
retorne sim
senao
retorne nao
mse
Desempenho: O(n) (n: n umero de smbolos da palavra).
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Uma aplica cao: Analise Lexica

_
`

e0

+,-

d
`
`
`
`
_
`

e1

d

.
_
`

e4
d
`
_
`

e2

.
_
`

e3

E
_
`

e5

+,-
_
`

e6
`
`
`
`
d

-
d
_
`

e7

`
d

E
`
`
`
`
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Analise Lexica
M = (E, , , e0, {e3, e7}), em que:
E = {e0, e1, e2, e3, e4, e5, e6, e7, ee}
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, , E}
d . + - E
e0 e2 e4 e1 e1 ee
e1 e2 e4 ee ee ee
e2 e2 e3 ee ee e5
e3 e3 ee ee ee e5
e4 e3 ee ee ee ee
e5 e7 ee e6 e6 ee
e6 e7 ee ee ee ee
e7 e7 ee ee ee ee
ee ee ee ee ee ee
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Mais exemplos
Exemplos: AFDs que reconhecam:
{w {0, 1}

| w tem n umero par de smbolos}.


{w {0, 1}

| w tem n umero par de 0s e n umero par de 1s}.


AFDs equivalentes
Dois AFDs, M
1
e M
2
, sao ditos equivalentes se, e somente se,
L(M
1
) = L(M
2
).
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Duas perguntas
Existe AFD mnimo?
Ha como construir um AFD, a partir de AFDs M
1
e M
2
, que
reconheca:
L(M
1
) L(M
2
)?
L(M
1
) L(M
2
)?
L(M
1
) L(M
2
)?
L(M
1
)L(M
2
)?
L(M
1
)

?
= Resposta para ambas: SIM!!!
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O que e AFD mnimo
AFD mnimo
Um AFD M e dito ser um AFD mnimo para a linguagem L(M) se
nenhum AFD para L(M) contem menor n umero de estados que M.
Para obter um AFD mnimo:
1. Eliminar estados nao alcancaveis a partir do estado inicial.
2. Substituir cada grupo de estados equivalentes por um unico
estado.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Equivalencia de estados
Estados equivalentes
Seja um AFD M = (E, , , i , F). Entao e, e

E sao ditos
equivalentes, e e

, se, e somente se:


para todo y

(e, y) F

(e

, y) F.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Por que reduzir estados equivalentes a um so?
Seja um AFD M = (E, , , i , F).
1
se e e

: um suxo y e reconhecido passando-se por e sse


ele e reconhecido passando-se por e

; logo e e e

podem se
tornar um so!
2
se e e

(existe y


(e, y) F e

(e

, y) F ou
vice-versa): se um suxo y levar a estado de F, a palavra e
aceita, caso contrario, nao e. Logo, e e e

nao podem se
tornar um so!
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O conceito de automato reduzido
[e]: classe de equivalencia de e na particao induzida por .
AFD reduzido
Seja um AFD M = (E, , , i , F). Um aut omato reduzido
correspondente a M e o AFD M

= (E

, ,

, i

, F

), em que:
E

= {[e] | e E};

([e], a) = [(e, a)] para todo e E e a ;


i

= [i ];
F

= {[e] | e F}.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Obtencao de passo a passo
Seja um AFD M = (E, , , i , F) e um estado e E. Entao:
1
e
0
e

se, e somente se, (e, e

F ou e, e

E F);
2
para n 0: e
n+1
e

se, e somente se, e


n
e

e
(e, a)
n
(e

, a) para todo a .
Teorema que justica
n
:
Seja um AFD M = (E, , , i , F). Entao e
n
e

se, e somente se,


para todo w

tal que |w| n,



(e, w) F

(e

, w) F.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Obtencao das partic oes [e]

passo a passo
[e]
n
: classe de equivalencia de e na particao induzida por
n
.
Obtencao de cada [e]
n
:
1
[e]
0
=

F se e F
E F se e E F;
2
para n 0, [e]
n+1
= {e

[e]
n
| [(e

, a)]
n
= [(e, a)]
n
para
todo a }.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Um exemplo de minimizacao
Automato inicial

_
`

1
_
`

0
_
`

0
_
`

1
_
`

0
_
`

1
`
1

0
`
0
Evolucao das partic oes
S
0
: {0}, {1, 2, 3, 4, 5}
S
1
: {0}, {1, 2, 4, 5}, {3}
S
2
: {0}, {1, 4}, {2, 5}, {3}
S
3
: {0}, {1, 4}, {2, 5}, {3}
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Um exemplo de minimizacao
Aut omato inicial

_
`

1
_
`

0
_
`

0
_
`

1
_
`

0
_
`

1
`
1

0
`
0
Aut omato reduzido

_
`

{0}

1
_
`

{1, 4}

0

1
_
`

{2, 5}

0
_
`

{3}
`
1

0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Produto de AFDs
Simulacao do funcionamento em paralelo de dois AFDs:
Sejam M
1
= (E
1
, ,
1
, i
1
, F
1
) e M
2
= (E
2
, ,
2
, i
2
, F
2
).
M
3
= (E
3
, ,
3
, i
3
, F
3
), em que:
E
3
= E
1
E
2
;

3
([e
1
, e
2
], a) = [
1
(e
1
, a),
2
(e
2
, a)] e
1
E
1
, e
2
E
2
, a ;
i
3
= [i
1
, i
2
].
F
3
: depende do que se quer para M
3
.
Sejam e
1
E
1
e e
2
E
2
de M
3
. Entao,

3
([e
1
, e
2
], w) = [

1
(e
1
, w),

2
(e
2
, w)], para todo w

.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Complemento, intersecao e uniao
Sejam M
1
= (E
1
, ,
1
, i
1
, F
1
) e M
2
= (E
2
, ,
2
, i
2
, F
2
).
1
AFD para L(M
1
):
(E
1
, ,
1
, i
1
, E
1
F
1
).
2
L(M
1
) L(M
2
):
produto de M
1
e M
2
com F
3
= F
1
F
2
.
3
L(M
1
) L(M
2
):
produto de M
1
e M
2
com F
3
= (F
1
E
2
) (E
1
F
2
)
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo de produto/interse cao e uniao
Reconhecendo {0}{0, 1}

e {0, 1}

{1}:

_
`

>
>
>
>
>
>
0
_
`

c0


0,1

1
_
`

c1


0,1

_
`

>
>
>
>
>
>
0
_
`

t0

1
_
`

t1

1
`
0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo de produto/interse cao
Reconhecendo {0}{0, 1}

{0, 1}

{1}:

_
`

[, ]
>
>
>
>
>
0
_
`

[c0, t0]

0
_
`

[c0, t1]

1
_
`

[c1, t1]

`
1

1
_
`

[c1, t0]

`
0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo de produto/uniao
Reconhecendo {0}{0, 1}

{0, 1}

{1}:

_
`

[, ]
>
>
>
>
>
0
_
`

[c0, t0]

0
_
`

[c0, t1]

1
_
`

[c1, t1]

`
1

1
_
`

[c1, t0]

`
0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Linguagens nitas
Para toda linguagem nita existe um AFD.
AFD com diagrama de estados simplicado sem ciclos:
arvore em que o estado inicial e a raiz.
Exemplo: Um pequeno dicionario:
K = {a, alma, asa, barco, brasa, broa, ca, calma, casa, disco}
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
AFD para o pequeno dicionario

`
`
`
`
`
`
`
`
`
`
`-
d

`
`
`
`
`
`
c

>
>
>
l

>
>
> b

>
>
>
a

/
/
/
/
/
/
/
/
// `
a

>
>
>
l

Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O AFD minimizado para o dicionario

o
`
s
`
c

Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Uma liguagem nao reconhecvel por AFD
L = {a
n
b
n
| n 0}. Seja um AFD M para L com k estados. M
passa por um ciclo quando le o prexo a
k
de a
k
b
k
.
Seja v a subpalavra consumida ao se percorrer o ciclo. Nesse caso,
a
k
b
k
= uvw, onde:
u = a
n
1
, n
1
0;
v = a
i
, i 1;
w = a
n
2
b
k
, n
2
0;
Como o ciclo pode ser percorrido quantas vezes se queira,
uv
i
w L para todo i 0. Mas uv
2
w L. Contradicao!
Logo, nao existe AFD para L.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Um teorema util para provar que nao ha AFD
A tecnica empregada no Exemplo leva a um teorema:
Teorema para provar que nao ha AFD
Seja um AFD M de k estados, e z L(M) tal que |z| k. Entao
existem palavras u, v e w tais que:
z = uvw;
|uv| k;
v = ; e
uv
i
w L(M) para todo i 0.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Alguns problemas de decisao envolvendo AFDs
Existem procedimentos de decisao para determinar, para qualquer
AFD M, se:
1
L(M) = ; e
2
L(M) e nita.
Seja M

um AFD mnimo equivalente a M. Entao:


1
L(M) = se, e somente se, M

nao tiver estados nais;


2
L(M) e nita se, e somente se, o diagrama de estados
simplicado de M

nao possui ciclo.


Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo de aut omato nito nao determinstico (AFN)

_
`

e
1

0, 1

0
_
`

e
2
Nao determinismo: no estado e
1
existem duas transic oes
possveis sob o smbolo 0.
Computac oes possveis para a palavra 1010:
[e
1
, 1010] [e
1
, 010] [e
1
, 10] [e
1
, 0] [e
1
, ]
[e
2
, 10] [e
2
, ]
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Reconhecimento para AFN
Uma palavra e reconhecida se, e somente se, existe uma
computacao que a consome e termina em estado nal;
Em todo ponto de indecisao, a maquina adivinha qual
escolha (se houver alguma) leva a uma computacao que
resulta em sucesso no reconhecimento.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O que e AFN
Denicao de AFN
Um AFN e uma quntupla (E, , , I , F), em que:
E e um conjunto nito nao vazio de estados;
e um alfabeto;
I E e um conjunto nao vazio de estados iniciais;
F E, e um conjunto de estados nais;
: E P(E) e a funcao de transicao, uma funcao total.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo de AFN

_
`

e
1

0, 1

0
_
`

e
2
({e
1
, e
2
}, {0, 1}, , {e
1
}, {e
2
})
0 1
e
1
{e
1
, e
2
} {e
1
}
e
2

Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Linguagem reconhecida por um AFN
A fun cao de transi cao estendida para um AFN
M = (E, , , I , F),

: P(E)

P(E), e denida
recursivamente como segue:

(, w) = , para todo w

(A, ) = A, para todo A E;

(A, ay) =

(

eA
(e, a), y), para A E, a e y

.
Linguagem reconhecida por um AFN
Seja M = (E, , , I , F).
L(M) = {w

(I , w) F = }.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo 1: AFN AFD
AFN e AFD que aceitam {0, 1}

{1010}:

_
`

x

1

0,1
_
`

x1

0
_
`

x10

1
_
`

x101

0
_
`

x1010

_
`

x

1

0
_
`

x1

0

1
_
`

x10

1

0
_
`

x101

0

1
_
`

x1010

1

0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Exemplo 2: AFN AFD
AFN e AFD que aceitam {w {0, 1}

| |w| 3 e o terceiro
smbolo da direita para a esquerda e 1}:

_
`

x

1

0,1
_
`

x1

0,1
_
`

x1a

0,1
_
`

x1ab

_
`

000

1

0
_
`

001

1
_
`

011

1

0
_
`

111

1
_
`

100

0
`
0

1
_
`

010

1

0
_
`

101

1
`
1
_
`

110

0

`
0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Equivalencia entre AFDs e AFNs
Para qualquer AFN existe um AFD equivalente.
Ideia: Um estado sera um conjunto, signicando todos os estados
do AFN atingidos por todas as computa coes possveis para a
mesma palavra.
Um AFD equivalente a um AFN M = (E, , , I , F), e:
M

= (P(E), ,

, I , F

), em que:
para cada X E e a ,

(X, a) =

eX
(e, a);
F

= {X E | X F = }.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Equivalencia entre AFDs e AFNs
Diagrama de estados de um AFN e do AFD equivalente.
`
_
`

1

0
`
_
`

2

0
_
`

1
_
`

4

1
_
`

_
`

{1, 2}

0
_
`

`
0,1
_
`

{2, 3}

0
_
`

{3}

1
_
`

{4}

1

_
`

{3, 5}
0

0

Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
O que e AFN estendido
AFN estendido
Um AFN estendido e uma quntupla (E, , , I , F), em que:
E, , I e F sao como em AFNs; e
e uma funcao parcial de E D para P(E), em que D e
algum subconjunto nito de

.
Exemplo: AFNE para
{w {0}

| |w| e par} {w {1}

| |w| e mpar}:

_
`

1
>
>
>
>
>

1
_
`

00
_
`

11
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Tirando transicoes sob palavras de mais de um smbolo
Uma transicao da forma
_
`

e

a
1
a
2
. . . a
n
_
`

pode ser substituda por n transic oes:


_
`

e

a
1
_
`

e
1

a
2
_
`

e
2

_
`

e
n1

a
n
_
`

Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
AFN com transic oes
Denicao de AFN
Um AFN e uma quntupla (E, , , I , F), em que:
E, , I e F sao como em AFNs; e
e uma funcao total de E ( {}) para P(E).
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
A funcao fecho
Seja um AFN M = (E, , , I , F).
A funcao fecho para M, f: P(E) P(E), e denida
recursivamente como:
X f(X);
se e f(X), entao (e, ) f(X).
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
A funcao de transicao estendida
Seja um AFN M = (E, , , I , F).
A fun cao de transi cao estendida,

: P(E)

P(E), e
denida recursivamente como:
1

(, w) = , para w

;
2

(A, ) = f(A), para A E;
3

(A, ay) =

(

ef(A)
(e, a), y), para A E, a e
y

.
Linguagem reconhecida por um AFN
Seja M = (E, , , I , F).
L(M) = {w

(I , w) F = }.
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Um exemplo de AFN
AFD para L
1

_
`

p0

0
_
`

i 0

1
AFD para L
2

_
`

p1

1
_
`

i 1

0
AFN para L
1
L
2

_
`

p0

0
_
`

i 0

1

`

_
`

p1

1
_
`

i 1

0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Obtencao de AFN equivalente a AFN
Seja um AFN M = (E, , , I , F).
Um AFN equivalente a M e M

= (E, ,

, I

, F), em que:
I

= f(I ); e

(e, a) = f((e, a)), para cada e E e a .


Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Um exemplo
AFN

_
`

1
_
`

2

0
_
`

0
_
`

3

1
_
`

1
AFN

_
`

_
`

2

0
_
`

0
_
`

3

1
_
`

1
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Outro exemplo
AFN para L
1
L
2

_
`

p0

0
_
`

i 0

1

`

_
`

p1

1
_
`

i 1

_
`

p0

0
_
`

i 0

0

`
1

_
`

p1

1
_
`

i 1

0
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos
Relac oes entre automatos nitos

e um caso especial de

pode ser transformado em


_

AFD
_

`
`
_

AFN
_

`
`
_

AFN
_

`
`
_

AFNE
Newton Jose Vieira, Isabel Gomes Barbosa Captulo 2: Maquinas de Estados Finitos

Вам также может понравиться