Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplo de Automatos (Shift) PDF
Exemplo de Automatos (Shift) PDF
Definição
Um Autômato Finito Determinístico (AFD) é uma quíntupla ordenada, A = (Q, Σ, δ, q0, F)
onde:
• Q é um conjunto finito, não vazio, de estados ,
Exemplo 1:
sobre o alfabeto Σ = {0, 1} consideremos a linguagem L = {w∈ Σ* | a seqüência 01 é parte de w}.
pretendemos construir um Autômato reconhecedor das palavras de L
uma palavra w ∈ Σ* pertence a L, se e somente se, partindo do estado inicial o Autômato
atingir o estado final (de aceitação ou reconhecimento) pela entrada de w.
Diagrama de transições
Tabela de transições
0 1
→ q0 q2 q0
* q1 q1 q1
q2 q2 q1
Exemplo 2:
também sobre o alfabeto Σ = {0, 1} consideremos a linguagem L = {w ∈ Σ* | a seqüência
001 é parte de w} tem como autômato reconhecedor:
Definição: δˆ : Q X Σ* → Q
caso base: δˆ (q, ε) = q
passo indutivo: ∀w = xa, δˆ (q, w) = δ( δˆ (q, x),a)
δ(pi, ai) = pi+1 para todo i = 0, 1, ..., n-1, então δˆ ( p0, w) = pn.
Exemplo 3: construção de um reconhecedor para uma linguagem, sobre o alfabeto Σ = {0, 1},
definida como L = {w | w tem um número par de 0´s e 1´s}
Construção do AFD:
basicamente trata-se de, ao longo de uma dada palavra, contar os 0´s e 1´s, e verificar
se contamos um número par . Há quatro casos a considerar:
− Os 0´s e 1´s já contados, são em número par;
− Já foram contados um número par de 0´s e um número ímpar de 1´s;
− Já foram contados um número par de 1´s e um número ímpar de 0´s;
− Os 0´s e os 1´s já contados, são em número ímpar.
Diagrama de transições:
Tabela de transições:
0 1
*→ q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
Uma aplicação:
De modo informal consideremos,
Σ = {a, b, c, ... ,z} ∪ {0, 1, 2, ..., 9} e L = { w ∈ Σ* | w representa um identificador},
Seguindo a regra habitual de construção de identificadores nas linguagens de
Programação, temos o AFD reconhecedor de identificadores:
O AFD reconhecedor:
A = ({q0, q1, q2, q3, q4}, {0, 1}, δ, q0, {q0})
Diagrama de transições:
O estado qk significa que a cadeia binária já percorrida representa um número decimal cuja
divisão por 5 tem resto igual a k.
Note que o AFD aceita números binários que começam com zeros e, até aceita a cadeia vazia.
Tabela de transições:
0 1
* → q0 q0 q1
q1 q2 q3
q2 q4 q0
q3 q1 q2
q4 q3 q4
Exemplo 5: um reconhecedor da linguagem L, sobre o alfabeto Σ = {0, 1}:
L = {w ∈ Σ+ | w começa por 1 e é a representação binária de um múltiplo de 5}
AFD reconhecedor: A = ({p, q0, q1, q2, q3, q4, r}, {0, 1}, δ, p, {q0})
Diagrama de transições:
Tabela de transições:
0 1
→ p r q1
* q0 q0 q1
q1 q2 q3
q2 q4 q0
q3 q1 q2
q4 q3 q4
r r r
Exercícios
1) Projete um AFD que reconheça cadeias binárias terminadas em 01.
2) Considere a tabela de transição para um AFD, abaixo:
0 1 a) descreva a linguagem do autômato
→ A A B b) Demonstre, por indução, que o autômato
* B B A reconhece essa linguagem.