Escolar Documentos
Profissional Documentos
Cultura Documentos
Relembrando
Autmatos Finitos - AF
So reconhecedores de LINGUAGENS REGULARES.
So o tipo mais simples de Mquina de Turing onde:
- a fita de entrada unidirecional: a cadeia lida da
esquerda para a direita, um smbolo por vez;
- a fita s de leitura: no possvel gravar smbolos. Isso
significa que a nica memria utilizada aquela gasta para
armazenar a cadeia de entrada.
As caractersticas acima garantem que o tempo
necessrio para reconhecer uma cadeia w; |w|=n;
O(n).
ou seja, para cada par (estado, smbolo de entrada), determina o novo estado
do autmato. f(p,a) = q
determinismo
Controle
Finito
p
estado
anterior
5
de smbolos
de V
smbolo
lido
Exemplo
Exemplo 1:
M = ({p1, p2}, {0, 1}, f, p1, {p2})
f = (p1, 0) = p1
(p1, 1) = p2
(p2, 1) = p2
(p2, 0) = p1
0S | 1S | 1
Pelo AFD:
S
0S | 1A
0S|1A|
estado inicial:
p1
P2 *
estados finais: *
Exemplo 2:
Exemplo 4
Seja
L = {w|w da forma x01y para algumas cadeias x e y
que consistem somente de 0s e 1s} ou
L = { x01y | x e y {0,1}* }
Ento 01, 11010 e 100011 L
e , 0 e 111000 L.
Vejamos: Seja A o autmato.
Exerccio
http://www.jflap.org/
14
Exemplo 1
Fazer um AFD M que aceita L(M) = {w | w possui um nro par de 0s e de 1s }
Diagrama
de
Transio
de Estados
Cadeia aceita:
configurao final
VERDE
15
Cadeia no aceita:
configurao final
ROSA
16
Garantindo
a
restrio...
17
Exerccios
Construa gramticas regulares para as
linguagens dos exemplos anteriores de
AFs.
19
AF No-determinsticos
Equivalncia entre AFND e AFD
20
AF NO-Determinstico (AFND)
21
22
Exemplo 1
Seja um autmato que aceita a linguagem das cadeias de 0s
e 1s que terminam em 01: (0+1)*01.
0, 1
q0
Seja a cadeia 00101
Quando est em qo e o smbolo lido 0 ele tem a opo de:
continuar em qo no caso do fim da cadeia no estar prximo OU
ir para q1 porque aposta que o fim est chegando.
E na verdade ele executa as duas opes!
Por isso costumamos pensar que ele advinha qual a alternativa correta entre muitas.
23
AFND
Uma
cadeia
de
entrada
aceita/reconhecida por um AFND
a1a2...an
Exemplo 2
25
Ex 2
26
L(M) = {w | (qo,w) F }
No exemplo 2:
Estado
qo
q1
q2
q3
q4
27
Exemplo 3
Construir um AFND que aceita cadeias
{1,2,3}* tal que o ltimo smbolo na cadeia tenha
aparecido anteriormente. Por exemplo, 121
aceita; 31312 no aceita.
Dica: resolvam para os seguintes vocabulrios
mais simples antes
1)
2)
28
29
30
31
32
i=1
(qi, a);
34
Assim, no exemplo:
({qo},0) ={qo,q1} ({qo},1) = {q1}
({q1},0) =
({q1},1)= {qo,q1}
({qo,q1},0) = {qo,q1}
Pois ({qo,q1},0) = (qo,0) (q1,0) =
{qo,q1} = {qo,q1}
({qo,q1},1) = {qo,q1}
Pois ({qo,q1},1) = (qo,1) (q1,1) =
{q1} {qo,q1} = {qo,q1}
(,0) = (,1) =
F = {{q1},{qo,q1}} isto , estados onde F antigo estava presente
(e3)
{qo} (eo)
{q1}* (e1)
{qo,q1}* (e2)
0,1
eo
36
qo
37
qo
{qo
q1
q2
38
qo
q1
q2
39
{qo}
41
Exemplo
Seja um AFD A que aceita cadeias sobre
{0,1}* de comprimento par
q0
0,1
2n
L(B)= 1*
0,1
2n+1
| n0}
43
Um AF no um programa.....
....mas serve como um bom modelo. Veja no Material HTML
de Referncia Tpicos em Teoria da Computao, em
http://www.icmc.usp.br/~gracan/teoria/Teoria.html
como podemos implementar um AFD:
de forma direta: escrevendo um cdigo que simule as
transies.
controlado por tabela: simulador universal de AFD
45