Buscar

Autômatos Finitos Determinísticos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

AUTÔMATOS FINITOS 
DETERMINÍSTICOS 
Marcelo Guerra 
INTRODUÇÃO 
 Linguagens formais são mecanismos formais para 
representação e especificação de linguagens, baseados na 
chamada Teoria da Computação. 
 
 As representações podem ser feitas por: 
 
 Reconhecedores: dispositivos formais que servem para 
verificar se uma sentença pertence ou não à determinada 
linguagem 
 Autômatos. 
 
 Geradores: dispositivos formais que permitem a geração 
sistemática de todas as sentenças de uma linguagem. 
 Gramáticas. 
DEFINIÇÃO INFORMAL DE AUTÔMATO 
 Reconhecedor de cadeias de uma dada 
linguagem. 
 
 É um programa que toma como entrada uma 
cadeia x e responde “sim” se x for uma sentença 
da linguagem e “não”, caso contrário. 
EXEMPLO: AUTÔMATO FINITO 
 O seguinte autômato modela um interruptor 
Desligado Ligado Início 
Pressionar 
Pressionar 
DEFINIÇÃO INFORMAL 
 Os estados são representados por círculos. 
 No exemplo, denominados “ligado” e “desligado”. 
 
 Arcos são rotulados com alguma “entrada”. 
 “Pressionar” indica que um usuário, exterior ao 
sistema, acionou o botão. 
 
 Estado inicial: por convenção, usaremos uma seta 
que chega neste estado rotulada por “início”. 
 
 Um estado final indica que uma sequência de 
entradas é válida, ou aceita. 
 Notação: dois círculos concêntricos. 
 
EXEMPLO: RECONHECIMENTO DE CADEIAS 
t th the then 
Início t h e n 
AUTÔMATOS FINITOS 
DETERMINÍSTICOS 
INTRODUÇÃO 
 Autômato Determinístico: existe apenas um 
estado para o qual ele pode transitar a partir do 
estado atual, dada uma certa entrada. 
 
 Não-determinístico: pode se encontrar em vários 
estados ao mesmo tempo. 
 
 Nomenclatura: “Autômato finito”, quando não 
especificado, se refere à variedade determinística 
(DFA ou AFD). 
DEFINIÇÃO 
 Um autômato Finito Determinístico consiste em: 
 
1. Q - Um conjunto finito de estados. 
 
2. Σ - Um conjunto finito de símbolos de entrada. 
 
3. δ (q,a) - Uma função de transição, que toma um estado e 
um símbolo de entrada e retorna um estado. 
 Se q é um estado e a é um símbolo de entrada, então 
δ(q,a) = p , indica que existe um arco rotulado a de q para p. 
 
4. q0 ∈ Q - o estado inicial. 
 
5. F ⊆Q - um conjunto de estados finais ou de aceitação.
 
 
DEFINIÇÃO(CONT.) 
 
 Um AFD pode ser representado pela listagem 
dos seus componentes da seguinte maneira: 
 
A = (Q, Σ, δ, q0, F) 
PROCESSAMENTO DE STRINGS 
 Um AFD aceita ou não uma cadeia de símbolos 
de entrada. 
 
 A linguagem de um AFD é o conjunto de todas as 
palavras que ele aceita. 
PROCESSAMENTO DE STRINGS 
 Suponha que a1,a2,…,an seja uma seqüência de símbolos de 
entrada. 
 
 O AFD começa em seu estado inicial q0. 
 
 Aplicamos a função de transição δ(q0, a1) cujo resultado é, 
digamos, q1. 
 
 Em seguida aplicamos δ sobre q1 e a2, obtendo o próximo estado, e 
assim por diante. Se o último estado qn é um elemento de F, então 
a entrada é aceita. 
 
 Caso contrário, a palavra é rejeitada. 
 
q0 q1 q2 
a1 a2 … qn 
δ(qi-1 , ai) = qi 
EXEMPLO 
 O autômato que aceita todas e somente as strings de 0’s 
e 1’s que têm a seqüência 01 em algum lugar na string. 
 
 L = {w | w é da forma x01y para quaisquer strings x e y que 
consistem somente de 0’s e 1’s} 
 L = {x01y | x e y quaisquer strings de 0’s e 1’s} 
 Exemplos: 
• Pertencem a L 
• 01 
• 11010 
• 100011 
 
 
• Não pertencem a L 
• ε 
• 0 
• 111000 
EXEMPLO - CRIAÇÃO DO AUTÔMATO 
 Σ = {0,1}. 
 Para decidir se 01 é uma substring da entrada, o 
autômato precisa “lembrar”: 
 
1. Se 01 já foi vista, então qualquer seqüência adicional de 
símbolos deve ser aceita. 
 
2. Se 01 ainda não foi lida, mas 0 foi a última entrada: se a 
próxima entrada for 1, então ele pode ler qualquer 
cadeia em seguida. 
 
3. Se 01 não foi lido ainda, mas sua última entrada foi 
nula, ou foi 1, então não deve aceitar a cadeia, até ver 
um 0 seguido de 1. 
 
Cada uma dessas 3 condições pode ser representada por um 
estado. 
ESTADOS E TRANSIÇÕES I 
 A condição (3) é representada pelo estado inicial 
q0 - se virmos um 1 neste estado, não deveremos 
avançar. Assim, temos δ(q0 , 1) = q0. 
 
 Se estamos em q0 e em seguida virmos um 0, 
estamos na condição (2), estado representado por 
q2 : δ(q0 , 0) = q2. 
ESTADOS E TRANSIÇÕES II 
 Se estamos em q2 e virmos um 0, nossa situação não 
muda. Então, devemos continuar em q2 : δ(q2 , 0) = q2. 
 
 Se estamos em q2 quando lermos um 1, então temos a 
substring. Podemos, portanto, ir a um estado de 
aceitação : δ(q2 , 1) = q1 (condição (1)). 
 
 Em q1 a seqüência 01 já foi lida. Independentemente do 
restante da entrada, devemos aceitá-la. Assim, 
δ(q1 , 0) = δ(q1 , 1) = q1. 
 
AUTÔMATO FINAL 
 
 Q = {q0 , q1 , q2 }. 
 q0 é o estado inicial. 
 Σ = {0,1}. 
 δ é definida por 
 δ(q0 , 1) = q0 
 δ(q0 , 0) = q2 
 δ(q2 , 0) = q2 
 δ(q2 , 1) = q1 
 δ(q1 , 0) = δ(q1 , 1) = q1 
 F={q1}. 
 
 
 
 
REPRESENTAÇÕES 
 Há duas notações mais intuitivas para 
autômatos: 
 Diagramas de transição. 
 Tabela de transições – uma listagem tabular da 
função δ. 
DIAGRAMA DE TRANSIÇÕES 
 Um diagrama de transições para o AFD A = (Q, Σ, δ, q0, 
F) é um grafo definido como segue: 
 
a) Para cada estado em Q existe um nó correspondente. 
 
b) Para cada q ∈ Q e a ∈ Σ, seja δ(q, a) = p. Então o diagrama 
tem um arco rotulado a de q até p. 
 Se existem vários símbolos com a transição de q para p, o arco 
será rotulado com todos eles. 
 
c) Existe uma seta no estado inicial rotulada início que não tem 
nó de origem. 
 
d) Os nós correspondentes aos elementos de F são marcados por 
um círculo duplo. 
EXEMPLO 
 
q0 q2 q1 
0 1 Início 
1 0 0,1 
TABELAS DE TRANSIÇÃO 
 É uma representação convencional e tabular de 
uma função que recebe dois argumentos e retorna 
um valor. 
 As linhas correspondem aos estados e as colunas 
às entradas. 
 Exemplo: 
 0 1 
→q0 q2 q0 
 *q1 q1 q1 
 q2 q2 q1 
ESTENDENDO A FUNÇÃO DE TRANSIÇÃO 
AOS STRINGS 
 Um AFD define uma linguagem L: 
 
 L é o conjunto de todas as cadeias que resultam em 
uma seqüência de transições que levam o autômato 
do estado inicial a um dos estados de aceitação. 
 
 No diagrama de transições, L é o conjunto de rótulos 
ao longo de todos os caminhos que levam do estado 
inicial a qualquer estado de aceitação. 
FUNCÃO DE TRANSIÇÃO ESTENDIDA 
 Descreve o que acontece quando começamos em 
qualquer estado e seguimos qualquer seqüência 
de entradas. 
 
 Se δ é a função de transição, δ* é a função 
estendida que toma um estado q e uma string w e 
retorna um estado p. 
 
 p é o estado que o autômato alcança a partir do 
estado q e processa a seqüência de entradas w. 
FUNCÃO DE TRANSIÇÃO ESTENDIDA 
 Definimos δ* por indução sobre o comprimento da 
string de entrada como segue: 
 
1. Base: δ*(q, ε) = q. 
 
2. Indução: suponha que w seja uma string da 
forma xa (a é o último símbolo de w), então: 
 δ*(q, w) = δ (δ*(q, x), a). 
 
EXEMPLO 
 Projetar um AFD para aceitar a linguagem 
 L = {w | w tem ao mesmo tempo um número par de 
0’s e um número par de 1’s}. 
 
 A função do autômato é lembrar se o número de 
0’s lido até certo momento é par ou ímpar (idem 
para os 1’s). 
 
 Existem 4 estados: 
 q0: O número de 0’s vistos até agora e de 1’s é par 
 q1: O número de 0’s épar e o de 1’s é ímpar 
 q2: O número de 0’s é ímpar e o de 1’s é par 
 q3: O número de 0’s e 1’s vistos é ímpar 
 
EXEMPLO (CONT) 
 O estado q0 é o estado 
inicial e ao mesmo 
tempo o único estado 
de aceitação. 
 Antes de ler qualquer 
entrada, o número de 
0’s e 1’s é par. 
 
q1 
q2 
Início 
q0 
q3 
EXEMPLO (CONT) 
 No estado q0, ao 
lermos um 1 da 
entrada, o número de 
1’s passa a ser ímpar 
 Passamos para q1 
 
 Ao recebermos outro 1 
como entrada, 
voltamos a equilibrar 
o número de 1’s 
 Retornamos a q0 
 
q1 
q2 
Início 
q0 
q3 
1 
1 
EXEMPLO (CONT) 
 No estado q0, ao 
lermos um 0 da 
entrada, o número de 
0’s passa a ser ímpar. 
 Passamos para q2. 
 
 Ao recebermos outro 0 
como entrada, 
voltamos a equilibrar 
o número de 0’s. 
 Retornamos a q0. 
 
q1 
q2 
Início 
q0 
q3 
1 
1 
0 0 
EXEMPLO (CONT) 
 Em q1, o número de 
1’s é ímpar e o de 0’s é 
par. 
 
 Em q3, ambas as 
quantidades são 
ímpares. 
 
q1 
q2 
Início 
q0 
q3 
1 
1 
0 0 1 
1 
0 
0 
VERIFICAÇÃO DAS ENTRADAS 
 Vejamos a computação de 
δ*(q0, w) para cada prefixo 
w de 110101: 
 δ*(q0, ε) = q0 
 
 δ*(q0, 1) = δ (δ*(q0, ε),1) = 
δ (q0 , 1) = q1 
 
 δ*(q0, 11) = δ (δ*(q0, 1),1) = 
δ (q1 , 1) = q0 
 
 δ*(q0, 110) = δ (δ*(q0, 11),0) = 
δ (q0 , 0) = q2 
 
 … 
q1 
q2 
Início 
q0 
q3 
1 
1 
0 0 1 
1 
0 
0 
A LINGUAGEM DE UM AFD 
 A linguagem de um AFD A = (Q, Σ, δ, q0, F), 
denotada por L(A) é definida por 
 L(A) = { w | δ*(q0, w) ∈ F} 
 
 Se L é o L(A) para algum AFD A, então dizemos 
que L é uma linguagem regular. 
EXERCÍCIO 
 Represente o AFD M = {{q0, q1, q2}, {0, 1}, δ, q0, 
{q1}}, onde δ é dado por 
 δ(q0, 0) = q0, δ(q0, 1) = q1 
 δ(q1, 0) = q0, δ(q1, 1) = q2 
 δ(q2, 0) = q2, δ(q2, 1) = q1. 
 
EXERCÍCIOS 
 Proponha AFDs que aceitem as linguagens a 
seguir: 
 Todas as cadeias sobre Σ = {0,1} que terminem 
em 01. 
 Todas as cadeias, sobre Σ = {a,b} , com prefixo 
ab. 
 L(M)={x ∈ {0,1}* | x tenha dois zeros 
consecutivos ou dois uns consecutivos.} 
 Escreva uma tabela de transição para o autômato 
que reconhece a linguagem abaixo: 
 L = {w {0,1}* | w tem ao mesmo tempo um número 
par de 0’s e um número par de 1’s} 
 
 
 
 
GABARITO 
q0 q1 q2 
a b 
a,b 
q3 
b 
a 
a,b 
q0 q1 q2 
0 0 
0,1 
q3 
1 
q4 0,1 
1 0 
1 
q0 q1 q2 
0 1 
1 0 
0 
1 
GABARITO 
0 1 
→*q0 q2 q1 
 q1 q3 Q0 
 q2 q0 Q3 
q3 q1 q2 
q1 
q2 
Início 
q0 
q3 
1 
1 
0 0 1 
1 
0 
0

Outros materiais