Escolar Documentos
Profissional Documentos
Cultura Documentos
2 Ecb 83 Ad
2 Ecb 83 Ad
2 Ecb 83 Ad
Apresentação
Ao se falar de computação, remete-se imediatamente à ideia de um computador atrelado a
recursos avançados. Mas o que é um computador? O conceito de computador é complexo e
baseado em abstrações matemáticas formais chamadas de "modelos computacionais". O modelo
computacional é a representação de máquinas por meio de um computador teórico ou não, que
busca destacar somente detalhes relevantes.
Em teoria da computação, há alguns modelos computacionais, dos mais simples aos mais
complexos. Há um tipo de modelo computacional extremamente simples, com memória limitada e
restrita a somente seus estados: o autômato finito determinístico (AFD), ou máquina de estados
finitos. O AFD faz parte da classe das linguagens regulares e aceita/rejeita sequências de símbolos,
gerando uma sequência única de computação de acordo com a cadeia inserida na entrada.
Bons estudos.
No Infográfico a seguir, você verá a classificação das linguagens formais, entre elas a linguagem
regular, que é usada no autômato finito determinístico.
No capítulo Autômatos finitos determinísticos, base teórica desta Unidade de Aprendizagem, você
aprenderá os conceitos de computador e modelos computacionais e a sua relação com os AFDs.
Além disso, verá o conceito um AFD, seu algoritmo de otimização de AFD e os passos de uma
computação a partir de uma cadeia.
Boa leitura.
LINGUAGENS
FORMAIS E
AUTÔMATOS
Autômatos finitos
determinísticos
Leonardo Brendo Gomes Nascimento
OBJETIVOS DE APRENDIZAGEM
Introdução
O autômato finito determinístico (AFD), ou máquina de estado finita, é uma
abstração matemática de modelos computacionais teóricos-formais que utilizam
uma quantidade de memória extremamente restrita e pequena em relação às
aplicações dos modelos computacionais modernos (LEWIS; PAPADIMITRIOU,
2004). Nos AFDs, é gerado apenas um único ramo de computação para cada
cadeia fornecida na entrada. Isto se dá por meio da rejeição ou aceitação das
cadeias formadas pelos símbolos disponíveis nas transições entre os estados
finitos e pré-definidos dos autômatos (SIPSER, 2007). É importante salientar
que os AFDs são reconhecedores eficientes de linguagens regulares (HOPCROFT;
MOTWANI; ULLMAN, 2003).
Os aspectos que caracterizam os AFDs podem ser vistos a seguir: deter-
minismo dos símbolos e estados, um único estado inicial para o autômato,
função de transição total para qualquer cadeia fornecida para ser aceita ou
não, muitos estados de aceitação e um conjunto finito de estados em que
acontecerão as transições.
2 Autômatos finitos determinísticos
Figura 1. Autômato finito representado por uma máquina contendo estados finitos.
Fonte: Menezes (2011, p. 70).
Autômatos finitos determinísticos 3
O autômato finito, por sua vez, está dividido entre (MENEZES, 2011):
Este capítulo está dedicado somente ao estudo dos AFDs. Como já men-
cionado anteriormente, os AFDs têm pouca memória e com isso os compu-
tadores que estes vão representar também são restritos, podendo realizar
atividades que exijam pouca memória. Neste momento, o caro leitor pergunta
o que se pode fazer com um computador que possui memória extremamente
limitada? Muitas coisas em nosso cotidiano, pois esse tipo de computador é
usado o tempo todo em vários dispositivos eletromecânicos, como o sistema
lógico para controlar um elevador, o regulador usado em ar-condicionado e
o controlador para porta automática. Para fins de explicação, será utilizado
o exemplo do controlador para uma porta automática, com a finalidade de
trazer uma abordagem inicialmente prática do AFD. A Figura 2 apresenta a
visão superior do controlador para uma porta automática que abre/fecha de
acordo com a aproximação de algum objeto detectado pelo sensor.
Conforme pode ser visto na Figura 2, tem-se uma situação que pode ser
modelada como um AFD. Essa situação envolve um controlador de porta
automática que possui um tapete à sua frente e outro na sua dianteira. Esse
dispositivo é geralmente utilizado em entradas e saídas de shoppings, lojas,
supermercados e outros estabelecimentos. Esse tipo de porta abre e fecha
automaticamente à proporção que a pessoa ou objeto se aproxima. Trazendo
para a realidade de AFD, pode-se elencar os estados e os símbolos (condições)
que promovem o bom funcionamento do controlador da porta automática,
a saber:
Símbolos
Quadro 2. AFD que aceita somente cadeias que tenha no mínimo três 1
Símbolos — 0 1
q1 q1 q2
Estados
q2 q2 q3
Q = {q0, q1 e q2},
Σ = {a, b},
δ é desenhada como exemplificado no Quadro 3:
a b
q0 q0 q1
q1 q2 q1
q2 q1 q1
q0 é o estado inicial;
F = {q1}.
Autômatos finitos determinísticos 9
Conforme pode-se ver, a evolução de (a) chegando a (b) foi por meio das
contínuas sucessões de aplicações da função de transição estendida para
cada símbolo consumido da cadeia fornecida, sendo a um símbolo prefixo
qualquer da palavra w. A seguir você verá um exemplo da aplicação da função
de transição estendida. Desenvolva o resultado da computação da palavra
00 a partir de q0:
Símbolos - 0 1
q0 q1 q2
q1 qf q2
Estados
q2 q1 qf
qf qf qf
Problema 1
L(Ma) = {w ∈ (0, 1)* | |w| > 0 e w termina com 1}. Exemplos de cadeias aceitas
por essa linguagem: 1, 01, 11, 001, 011, 101.... Esboce o diagrama de estados e
a construção formal do AFD que reconheça esta linguagem. A Figura 7 apre-
senta a figura do AFD que reconhece a L(Ma) e o Quadro 5 ilustra os estados
e transições utilizados na L(Ma) .
Resposta 1
Q = {q0 e q1};
Σ = {0, 1};
δ é desenhada conforme exemplificado no Quadro 5.
12 Autômatos finitos determinísticos
0 1
q0 q0 q1
q1 q0 q1
q0 é o estado inicial;
F = {q1}.
Problema 2
L(Mb) = {w ∈ (0, 1)* | w não termina com 1}. Exemplos de cadeias aceitas por
essa linguagem: 10, 010, 110, 0110, 1010, 1000.... Esboce o diagrama de esta-
dos e a construção formal do AFD que reconheça esta linguagem. A Figura 8
apresenta o AFD que reconhece a L(Ma) e o Quadro 6 dispõe das transições
utilizadas no AFD em questão.
Resposta 2
Q = {q0 e q1},
Σ = {0, 1},
δ é desenhada como no Quadro 6:
Autômatos finitos determinísticos 13
0 1
q0 q0 q1
q1 q0 q1
q0 é o estado inicial;
F = {q0}.
Problema 3
L(Mc) = {w ∈ (0, 1)* | |w| > 0 e w começa e termina o mesmo símbolo}. Exemplos
de cadeias aceitas por essa linguagem: 1, 0, 11, 00, 1001, 0110.... Esboce o
diagrama de estados e a construção formal do AFD que reconheça esta lin-
guagem. A Figura 9 mostra o AFD que reconhece a L(Mc) e o Quadro 7 apresenta
as transições necessárias para o AFD em questão.
Resposta 3
0 1
s q1 r1
r1 r2 r1
r2 r2 r1
q1 q1 q2
q2 q1 q2
s é o estado inicial;
F = {r1, q1}.
Problema 4
L(Md) = {w ∈ (0, 1)* | w contém a subcadeia 001}. Exemplos de cadeias aceitas por
essa linguagem: 1001, 0110, 10011, 00001, 1000101, 0100110.... Esboce o diagrama
de estados e a construção formal do AFD que reconheça esta linguagem. A
Figura 10 apresenta o AFD que reconhece a L(Md) e o Quadro 8 apresenta as
transições utilizadas no AFD em questão.
Resposta 4
0 1
q0 q1 q0
q1 q2 q0
q2 q2 q3
q3 q3 q3
q0 é o estado inicial;
F = {q3}.
Você sabia que o AFD utiliza operações regulares? O que é isso? São
mecanismos usados para detectar se uma linguagem é regular ou não,
podendo definir estratégias de como manipular uma linguagem. São definidas
três operações sobre linguagens regulares, sendo elas:
união (A U B = { x | x ∈ A ou x ∈ B});
concatenação (A • B = { xy | x ∈ A ou y ∈ B})
estrela (A* = { x 1x 2...xk | k ≥ 0 e cada xi ∈ A }).
Referências
DIVERIO, T. A.; MENEZES, P. B. Teoria da computação: máquinas universais e computa-
bilidade. 3. ed. Porto Alegre: Bookman, 2011. 288 p. (Série Livros Didáticos Informática
UFRGS, 5).HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introdução à teoria de autômatos,
linguagens e computação. Rio de Janeiro: Campus; Elsevier, 2003. 560 p.
LEWIS, H. R.; PAPADIMITRIOU, C. H. Elementos da teoria da computação. 2. ed. Porto
Alegre: Bookman, 2004. 344 p.
MENEZES, P. B. Linguagens formais e autômatos. 6. ed. Porto Alegre: Bookman, 2011.
256 p. (Série Livros Didáticos Informática UFRGS, 3).
SIPSER, M. Introdução à teoria da computação. São Paulo: Cengage Learning, 2007. 459 p.
Dica do professor
O software JFLAP apresenta muitos recursos implementados (autômato finito, máquina de Mealy e
Moore, entre outros), entre eles a criação e as simulações de AFD, podendo realizar ainda outras
operações com AFD. Por meio do JFLAP, é possível ver em tempo real o AFD sendo construído e
funcionando, bem como as movimentações entre os estados a partir dos símbolos consumidos.
Na Dica do Professor, você verá a criação e a simulação de um AFD para reconhecer determinada
linguagem, buscando, assim, a fixação do conteúdo por meio da utilização de uma interação gráfica
ou software chamado JFLAP.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Exercícios
A) É a capacidade que um autômato finito tem de chegar a dois estados diferentes por meio da
transição espontânea épsilon, sendo essa transição determinante no estado de aceitação.
B) É a capacidade que um autômato finito com estado finito tem de assegurar que pode ou não
utilizar um símbolo, ficando a cargo do estado não consumir todos os símbolos do alfabeto,
sendo o consumo dos símbolos optativo.
D) É a capacidade que um autômato finito tem de gerar um único ramo de computação para
cada cadeia de entrada fornecida. Esse autômato pode ser expressado por meio da quíntupla
da formalização.
E) É a capacidade que um autômato finito tem de realizar sua computação na função programa
por meio de três estados iniciais e dois estados de aceitação, sendo esta a quantidade mínima
de estados apropriados.
A)
B)
C)
D)
E)
3) O diagrama de estados usado no AFD é um recurso gráfico muito expressivo para representar
muitas máquinas, entre elas as máquinas de estados finitas. Com esse diagrama, é possível
estabelecer a transição de um estado para outro por meio do consumo de todos os símbolos
disponíveis no alfabeto usado em determinada linguagem. A seguir, é esboçado o diagrama
2.Determine a linguagem L(M2) aceita pelo AFD M2 representado no diagrama.
A) L(M2) = {w ∈ (0, 1)* | w é formada por uma cadeia de comprimento ímpar e
contendo sequencialmente 0s e 1s}.
B) L(M2) = {w ∈ (0, 1)* | w é formada por uma cadeia de comprimento ímpar, tendo 0
no meio e terminando em 1}.
C) L(M2) = {w ∈ (0, 1)* | w é formada por um cadeia que deve ter uma sequência
mínima de três 1s consecutivos}.
D) L(M2) = {w ∈ (0, 1)* | w é formada por uma cadeia que deve ter uma sequência
mínima de quatro 1s consecutivos}.
E) L(M2) = {w ∈ (0, 1)* | w é formada por uma cadeia que deve ter uma sequência
mínima de cinco 1s consecutivos}.
I. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q1, q3} e Σ = {p, a, i}.
II. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q3}, δ(q0, a) = q0.
III. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q3}, Σ = {p, i}, q0 = q1.
IV. Esse AFD tem Q = {q0, q1}, F = {q2} e Σ = {p, a, i}, δ(q2, a) = q2, δ(q2, p) = q2.
V. Esse AFD tem Q = {q0, q1, q2, q3, q4}, Σ = {p, a, i}, δ(q0, i) = q0.
A) I e IV.
B) I e V.
C) I, II e III.
D) II e III.
E) II e V.
5)
Em AFDs, pode haver muitas soluções para o mesmo problema, incluindo aquelas soluções
com muitos estados. Ao implementar um AFD, uma pergunta pertinente que se deve fazer é
se o AFD foi construído com o menor número possível de estados. Com isso, é apropriada a
utilização do algoritmo de minimização de autômatos.
( ) Neste algoritmo, os estados finais e os não finais são separados na primeira interação,
depois são unidos, chegando a ser indissolúveis.
( ) O algoritmo procura uma partição, de forma que os estados não equivalentes estejam no
mesmo bloco.
A) F, V, F, V.
B) F, V, F, F.
C) V, F, V, V.
D) V, F, F, V.
E) F, V, V, F.
Na prática
Atualmente há muitos acidentes causados por erros em sistemas que controlam elevadores
prediais, sendo este um problema que merece atenção por conta dos perigos envolvidos com os
seus usuários. É comum que determinado andar de um prédio não esteja ou não seja acessível a
partir do elevador; dessa forma, deve-se evitar que tal andar seja solicitado.
Neste Na Prática, você acompanhará um problema que ocorre em muitas situações do cotidiano
nos sistemas que controlam elevadores, em que é proposto um autômato finito determinístico para
modelar o problema em questão.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Minimização de AFDs
No link a seguir, você verá uma videoaula sobre a minimização de autômatos finitos determinísticos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.