Vous êtes sur la page 1sur 32

Automatos Finitos

Renato E. N. Moraes
Universidade Federal do Esprito Santo

Abril 2015

Renato E. N. Moraes, UFES

Aut
omatos Finitos

1/31

Conteudo

Aut
omato finito

Aut
omato finito determinstico

Linguagem de aut
omato finito determinstico

Aut
omato finito Nao Determinstico

Renato E. N. Moraes, UFES

Aut
omatos Finitos

2/31

Conteudo

Aut
omato finito

Aut
omato finito determinstico

Linguagem de aut
omato finito determinstico

Aut
omato finito Nao Determinstico

Renato E. N. Moraes, UFES

Aut
omatos Finitos

3/31

Automato finito

Definicao
Aut
omato finito e um procedimento (ou maquina) que so pode conter
uma quantidade finita e limitada de informacao a qualquer momento.
Essa informacao e representada por um estado da maquina, e so existe
um n
umero finito de estados.
I

Um procedimento e uma sequencia finita de instruc


oes claramente
descritas, que podem ser executadas mecanicamente em tempo
finito.
I
I

Renato E. N. Moraes, UFES

mecanicamente: n
ao h
a d
uvidas sobre o que ser feito
em tempo finito: n
ao h
a d
uvidas de que a instruc
ao pode ser levada
ate sua conclus
ao

Aut
omatos Finitos

4/31

Conteudo

Aut
omato finito

Aut
omato finito determinstico

Linguagem de aut
omato finito determinstico

Aut
omato finito Nao Determinstico

Renato E. N. Moraes, UFES

Aut
omatos Finitos

5/31

Automato finito determinstico


Definicao
Um Aut
omato finito determinstico M, sobre um alfabeto e um
sistema (K , , , i, F ), onde
K e um conjunto de estados finito, nao vazio;
e um alfabeto de entrada (finito)
: K K e a funcao de transicao
i K e o estado inicial
F K e o conjunto de estados finais.
I

Diz-se determinstico pois:


I

Renato E. N. Moraes, UFES

e uma func
ao que determina o pr
oximo estado a ser assumido
quando a m
aquina M se encontra no estado q e le da entrada o
smbolo a: o estado (q, a)

Aut
omatos Finitos

6/31

Automato finito determinstico


Definicao
Um Aut
omato finito determinstico M, sobre um alfabeto e um
sistema (K , , , i, F ), onde
K e um conjunto de estados finito, nao vazio;
e um alfabeto de entrada (finito)
: K K e a funcao de transicao
i K e o estado inicial
F K e o conjunto de estados finais.
I

Diz-se determinstico pois:


I

Renato E. N. Moraes, UFES

e uma func
ao que determina o pr
oximo estado a ser assumido
quando a m
aquina M se encontra no estado q e le da entrada o
smbolo a: o estado (q, a)

Aut
omatos Finitos

6/31

Automato finito determinstico

Informalmente, um aut
omato finito determinstico:
1. parte de um estado inicial de uma cadeia
2. muda de estado de acordo com a func
ao de transic
ao
3. atinge um estado final ao terminar de ler a cadeia

Renato E. N. Moraes, UFES

Aut
omatos Finitos

7/31

Automato finito determinstico

Uma das maneiras de visualizar o funcionamento de um automato


finito determinstico e atraves de um controle finito que le smbolos
de uma fita de entrada (onde se encontra a cadeia de entrada),
sequencialmente, da esquerda para a direita.

ControleFinito
estadoq

Renato E. N. Moraes, UFES

Aut
omatos Finitos

8/31

Exemplo
I

Considere o aut
omato finito determinstico M = (K , , , i, F ), onde
temos
I
I
I
I

K = {q0, q1, q2, q3}


= {a, b}
i = q0
F = {q3}

onde a funcao de transicao e dada pela tabela abaixo


: {q0, q1, q2, q3} {a, b} {q0, q1, q2, q3}

q0
q1
q2
q3

Renato E. N. Moraes, UFES

a
q1
q0
q3
q2

b
q2
q3
q0
q1

Aut
omatos Finitos

9/31

Exemplo
I

Podemos representar o aut


omato finito determinstico M por um
diagrama de transic
oes, ou diagrama de estados.

q0
q1
q2
q3

a
q1
q0
q3
q2

b
q2
q3
q0
q1

q0

q1

a
b

a
q2

q3

Renato E. N. Moraes, UFES

Aut
omatos Finitos

10/31

Exemplo

Cada estado de um autonomo finito corresponde a uma informacao


sobre a parte da cadeia de entrada ja lida
Para o exemplo, podemos dizer: se o estado atingido e q2, entao
1. o n
umero de smbolos a j
a lidos e par, e
2. o n
umero de smbolos b j
a lidos e mpar

Em resumo, temos:

q0
q1
q2
q3

Renato E. N. Moraes, UFES

quantidade de a
par
mpar
par
mpar

quantidade de b
par
par
mpar
mpar

Aut
omatos Finitos

11/31

Conteudo

Aut
omato finito

Aut
omato finito determinstico

Linguagem de aut
omato finito determinstico

Aut
omato finito Nao Determinstico

Renato E. N. Moraes, UFES

Aut
omatos Finitos

12/31

Linguagem de automato finito determinstico


a
q0

q0
q1
q2
q3

q1

quantidade
a
b
par
par
mpar
par
par
mpar
mpar mpar

a
q2

q3

a
I

A linguagem aceita ou reconhecida por M e a linguagem formada


pelas cadeias em que a quantidade de a e de b sao ambos mpares.

Isso se deve ao fato de que o u


nico estado final e q3
Por exemplo:

I
I

a cadeia abaa e da linguagem de M


com essa cadeia, os seguintes estados s
ao atingidos:
I

Renato E. N. Moraes, UFES

q0 q1 q3 q2 q3

Como o u
ltimo estado e final, a cadeia e aceita.
Aut
omatos Finitos

13/31

Linguagem de automato finito determinstico

Formalmente:
I

I
I
I

configurac
ao de M: par composto pelo estado corrente e pela
cadeia de entrada x que ainda n
ao foi lida, (q, x) K
a configurac
ao (i, x) e a configurac
ao inicial de M para a cadeia x
qualquer configurac
ao (q, ) e uma configurac
ao final se q F
A mudanca de configurac
ao e caracterizada pela relac
ao `, definida
como: (q, ax) ` (p, x) se e somente se (q, a) = p

Podemos definir a linguagem L(M) por:


L(M) = {x |(i, x) ` (f , ), com f F }

Renato E. N. Moraes, UFES

Aut
omatos Finitos

14/31

Exemplo

a
q0

q0
q1
q2
q3

quantidade
a
b
par
par
mpar
par
par
mpar
mpar mpar

q1

a
b

a
q2

q3

a
I

Para mostrar que abaa L(M), basta observar que


(q0, abaa) ` (q1, baa) ` (q3, aa) ` (q2, a) ` (q3, )

Para mostrar que abab


/ L(M), basta observar que
(q0, abab) ` (q1, bab) ` (q3, ab) ` (q2, b) ` (q0, ),

Assim, M aceita a linguagem


L(M) = {x {a, b}| os n
umeros de a e de b em x sao mpares}

Renato E. N. Moraes, UFES

Aut
omatos Finitos

15/31

Linguagem de automato finito determinstico

Uma caracterizacao alternativa de L(M) pode ser baseada em uma


extensao da funcao , feita de forma a aceitar cadeias no segundo
argumento
I
I

domnio K , em vez de K
Pode-se definir a nova func
ao : K K por

) = q, q K
(q,
ax) = ((q,

(q,
a), x), q K , x , a
Para mostrar que abaa L(M), basta observar que

(q0, abaa) = (q1,


baa) = (q3,
aa) = (q2,
a) = (q3,
) = q3 F

Renato E. N. Moraes, UFES

Aut
omatos Finitos

16/31

Conteudo

Aut
omato finito

Aut
omato finito determinstico

Linguagem de aut
omato finito determinstico

Aut
omato finito Nao Determinstico

Renato E. N. Moraes, UFES

Aut
omatos Finitos

17/31

Automato finito nao determinstico

Em oposicao ao que acontece com o afd, a funcao de transicao de


um afnd nao precisa determinar exatamente qual deve ser o proximo
estado.

A funcao de transicao fornece uma lista (um conjunto) de estados


para os quais a transicao poderia ser feita.

Essa lista pode ser vazia, ou ter um n


umero qualquer positivo de
elementos.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

18/31

Automato finito nao determinstico

A possibilidade de escolha entre varios caminhos a serem seguidos


nos leva a modificar a definicao de aceitacao.
I
I

Um afd aceita se o u
ltimo estado atingido e final;
um afnd aceita se existe uma sequencia de escolhas tal que o u
ltimo
estado atingido e final.

Pode-se alternativamente imaginar que o afnd escolhe, adivinha, o


caminho certo para a aceitacao, uma vez que a existencia de
escolhas erradas, que nao levam a um estado final, e irrelevante.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

19/31

Exemplo

Considere o afnd dado pelo diagrama abaixo e a cadeia de entrada


ababa.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

20/31

Exemplo

A cadeia ababa e aceita, porque uma das possibilidades e a


sequencia de estados q0, q1, q1, q1, q1, q2.

Naturalmente, com a mesma cadeia, poderamos escolher a


sequencia q0, q1, q1, q1, q1, q1 que nao leva a um estado final.

Ou a sequencia q0, q1, q1, q2 interrompida, porque q2 nao preve


uma transicao com o segundo b.

Nos casos em que o automato adivinhou errado nao criam


problemas para a aceitacao, porque existe um caminho certo.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

21/31

Exemplo

Este afnd aceita a linguagem das cadeias de comprimento maior ou


igual a 2, cujo primeiro e u
ltimo smbolos sao a, sendo os restantes
quaisquer.
Exerccio: Crie um afd que aceita a mesma linguagem e compare
com este afnd.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

22/31

Automato finito nao determinstico

Definicao
Formalmente, um Aut
omato finito n
ao determinstico (afnd) M,
sobre um alfabeto e um sistema (K , , , i, F ), onde
K e um conjunto finito, nao vazio de estados;
e um alfabeto de entrada (finito)
: K ( {}) P(K ) e a funcao de transicao
i K e o estado inicial
F K e o conjunto de estados finais.
I

A notacao P(K ) indica o conjunto partes de K (conjunto potencia


de K , ou, ainda, powerset de K ), o conjunto de todos os
subconjuntos de K .

Renato E. N. Moraes, UFES

Aut
omatos Finitos

23/31

Automato finito nao determinstico


Definicao
Formalmente, um Aut
omato finito n
ao determinstico (afnd) M,
sobre um alfabeto e um sistema (K , , , i, F ), onde
K e um conjunto finito, nao vazio de estados;
e um alfabeto de entrada (finito)
: K ( {}) P(K ) e a funcao de transicao
i K e o estado inicial
F K e o conjunto de estados finais.
I

Pela definicao e uma funcao que aceita como argumentos q e a


onde:
I

q e um estado e a pode ser um smbolo de ou a cadeia vazia .

Em qualquer caso, (q, a) e sempre um conjunto de estados, ou seja,


um subconjunto de K .

Renato E. N. Moraes, UFES

Aut
omatos Finitos

24/31

Automato finito nao determinstico

Se tivermos (q, a) = p1 , p2 , . . . , pk , entendemos que o automato


M, a partir do estado q, pode escolher um dos estados p1 , p2 , . . . , pk
para ser o pr
oximo estado.

Se a = , nenhum smbolo da entrada e lido;

se a 6= , o smbolo a da entrada e lido.

Podemos considerar o caso a = como correspondendo a transicoes


espontaneas: M muda de estado sem estmulo da entrada.

Se tivermos (q, a) = , nao ha transic


oes possveis a partir do
estado q com o smbolo a.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

25/31

Linguagem de automato finito nao determinstico

Definimos configurac
oes para o caso do afnd da mesma forma que
anteriormente.
I

A mudanca de configurac
ao e caracterizada pela relac
ao `, definida
como:
(q, ax) ` (p, x) se e somente se p (q, a)

Note que a pode ser a cadeia vazia, caso em que temos


(q, x) ` (p, x) se e somente se p (q, )

Podemos definir a linguagem L(M) por:


L(M) = {x |(i, x) ` (f , ), com f F }

Renato E. N. Moraes, UFES

Aut
omatos Finitos

26/31

Exemplo (continuacao)

Temos, para a mesma cadeia ababa de entrada,


(q0, ababa) ` (q1, baba) ` (q1, aba) ` (q1, ba) ` (q1, a) ` (q3, )

e, portanto, ababa L(M).

Temos tambem o caminho errado


(q0, ababa) ` (q1, baba) ` (q1, aba) ` (q1, ba) ` (q1, a) ` (q1, )

que leva `a configuracao nao final (q1, ), e nao permite nenhuma


conclusao.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

27/31

Exemplo (continuacao)

Cadeias como bab e abab nao levam a configurac


oes finais e nao sao
aceitas.

Da configuracao (q0, bab) nenhuma configuracao e atingvel;

para abab temos:


(q0, abab) ` (q1, bab) ` (q1, ab) ` (q1, b) ` (q1, )

Adicionalmente, temos um outro caminho


(q0, abab) ` (q1, bab) ` (q1, ab) ` (q2, b)

Renato E. N. Moraes, UFES

Aut
omatos Finitos

28/31

Exemplo
I

Considere o afnd dado pelo diagrama abaixo.

M aceita cadeias da forma cyc, onde c pode ser a ou b e y pode ser


qualquer cadeia de as e bs.

Renato E. N. Moraes, UFES

Aut
omatos Finitos

29/31

Exemplo
I
I

A cadeia ababa = c y c = a bab a e aceita por M, atraves da


sequencia de configurac
oes abaixo,
a primeira e a u
ltima transic
oes sao realizadas atraves de
transic
oes-.
(A, ababa)
` (B, ababa)
` (C , baba)
` (C , aba)
` (C , ba)
` (C , a)
` (D, )
` (I , )

Renato E. N. Moraes, UFES

M
M
M
M
M
M
M
M

le e adivinha que c = a
le a e confere que c = a
le b
le a e adivinha que este a faz parte de y
le b
le a e adivinha que este a e o u
ltimo c
le e adivinha que a cadeia acabou
aceita

Aut
omatos Finitos

30/31

Exemplo
I

Todas as configurac
oes atingveis (caminhos certos e errados) estao
indicadas abaixo:

(A, ababa)
` (B, ababa)

` (C , baba)

` (C , aba)

` (C , ba)

` (C , a)

` (C , )
nao aceita

` (D, )

` (I , )
Ok! aceita

` (D, ba)

` (I , a)
bloqueado
` (F , ababa)
bloqueado

Renato E. N. Moraes, UFES

Aut
omatos Finitos

31/31