Buscar

LivoLinguagensAutomatosFomais01

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 20 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 20 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 20 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

LINGUAGENS 
FORMAIS E 
AUTÔMATOS
OBJETIVOS DE APRENDIZAGEM
 > Definir a classe dos autômatos finitos determinísticos.
 > Exemplificar a construção de autômatos finitos determinísticos.
 > Desenvolver o algoritmo de minimização de autômatos finitos determi-
nísticos.
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.
Autômatos finitos 
determinísticos
Leonardo Brendo Gomes Nascimento
Neste capítulo, você vai conhecer o conceito, os componentes, as carac-
terísticas, a formalização, as operações (união, concatenação e estrela) e a 
ideia de minimização de AFDs. É exemplificada a utilização de autômatos por 
meio dos diagramas e das tabelas de mapeamentos dos estados-transições, 
nos quais será possível trabalhar os conceitos de símbolos, alfabeto, cadeias 
aceitas e rejeitadas, estados, estados iniciais e estados finais.
Conceituando o autômato finito 
determinístico 
Para entender o que é AFD, faz-se necessário compreender o que é um autômato 
em si. A ideia de autômato surgiu a partir da necessidade de representação de 
um computador. No entanto, a idealização de um computador é muito complexa, 
por isso utiliza-se um computador idealizado chamado de modelo computacional 
para representar somente os detalhes pertinentes para se fazer uma formaliza-
ção teórica ou não (SIPSER, 2007). Na teoria da computação há muitos tipos de 
modelos computacionais; o mais simples deles, com memória extremamente 
limitada, é escopo de atuação restrita e chamado de máquina de estados finitos 
ou autômatos finitos, podendo ser visualizado na Figura 1. É considerado uma 
máquina formada por três componentes, a saber (MENEZES, 2011):
 � fita: mecanismo que contém as informações de entradas que serão 
processadas;
 � unidade de controle: estrutura que representa o estado atual da 
máquina, possuindo uma unidade responsável por fazer a leitura, 
acessando uma célula da fita por vez, no sentido único da esquerda 
para a direita da fita;
 � função de transição: mecanismo responsável por estabelecer as lei-
turas e definir o estado da máquina de acordo com a informação de 
entrada da fita.
Figura 1. Autômato finito representado por uma máquina contendo estados finitos.
Fonte: Menezes (2011, p. 70).
Autômatos finitos determinísticos2
O autômato finito, por sua vez, está dividido entre (MENEZES, 2011):
 � determinístico (AFD): neste tipo de autômato, o sistema chega em um 
único estado bem determinado, a partir do estado atual e do símbolo 
lido/consumido na entrada da fita;
 � não determinístico (AFN): neste tipo de autômato, o sistema pode 
chegar a um estado que está contido em uma coleção de estados, 
a partir do estado atual e do símbolo lido/consumido na entrada da fita.
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.
Figura 2. Porta lógica que abre/fecha de acordo 
com a aproximação de algum objeto/corpo.
Fonte: Adaptada de Sipser (2007).
Autômatos finitos determinísticos 3
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:
 � estados: aberta e fechada;
 � símbolos: (1) frente (pessoa ou objeto está se aproximando da frente 
da porta); (2) atrás (pessoa ou objeto está na traseira porta); (3) ambos 
(condições 1 e 2 simultaneamente); e (4) nenhum (negação das condições 
1 e 2 simultaneamente). 
A representação gráfica da modelagem do controlador da porta automá-
tica é apresentada a seguir, na Figura 3, por meio do diagrama de estados 1. 
Pode-se ver, no Quadro 1, os estados sendo alcançados por meio do consumo 
dos símbolos.
Figura 3. Diagrama de estados do controlador da porta 
automática. 
Quadro 1. Estados e símbolos do controlador da porta automática 
Símbolos
Nenhum Frente Atrás Ambos
Estados
Fechada Fechada Aberta Fechada Fechada
Aberta Fechada Aberta Aberta Aberta
Autômatos finitos determinísticos4
Conforme pode-se ver na Figura 3, o estado é representado por um círculo 
e consome um símbolo, que pode ir para si mesmo ou para outro estado. 
No exemplo da Figura 3, quando o estado fechado consome o símbolo nenhum, 
ele vai continuar fechado; quando consome o símbolo frente, vai ao estado 
aberto e assim por diante no outro estado, de acordo com as possibilidades 
fornecidas pela quantidade de símbolos; quanto mais símbolos, mais tran-
sições haverá. O Quadro 1 mostra todas as possibilidades de transições que 
este AFD realiza durante o processo de abrir e fechar da porta automática 
por meio do controlador.
Observe que diante da situação da porta automática, é necessário tomar 
uma decisão, para que assim o controlador da porta seja acionado e realize 
a ação correta, abrindo ou fechando. Neste contexto é importante salientar 
que a decisão realizada pelo mecanismo vai determinar a ação que deve 
executar. Ainda sobre o exemplo da porta automática, uma decisão que ela 
deve tomar é abrir ou fechar — abrir quando alguém se aproximar; fechar 
quando não há aproximação. Com isso, surgem alguns detalhes que vão ser 
especificados nos AFDs.
O AFD busca estabelecer que uma informação pode pertencer, ou não, 
a um padrão ou grupo de informações. A informação é chamada de cadeia 
(conjunto de símbolos) e o padrão ou grupo de informações de linguagem, que, 
por sua vez, contém muitas cadeias. Para que uma cadeia venha a pertencer 
a uma linguagem, faz-se necessário que obedeça aos critérios da linguagem; 
traduzindo, para o AFD, uma cadeia será aceita quando seu último símbolo 
for consumido no estado de aceitação. 
O AFD possui um conjunto de estados; dentre eles, só há um inicial, 
no qual o autômato começa seu processamento da entrada e pode ter vários 
de aceitação. O estadode aceitação, ou final, é a estrutura responsável por 
indicar se uma cadeia deve ou não ser rejeitada por uma linguagem: se o 
último símbolo da entrada for utilizado neste, dizemos que esta cadeia deve 
ser aceita. Mas o que seria o símbolo? O símbolo é uma entrada de dados 
contido em um conjunto de símbolos chamado de alfabeto da linguagem. É 
importante destacar que o símbolo é usado para expressar as demais palavras 
do alfabeto, inclusive a vazia, denotado pela letra grega épsilon (ε).
A ideia inicial de AFD já foi introduzida, então, a seguir é apresentada a 
resolução de um exercício para fixação do conteúdo estudado até o momento. 
De acordo com a Figura 4 e o Quadro 2, pode-se ver o AFD que será resolvido 
e suas possibilidades de transições. Desenvolva o AFD por meio do diagrama 
de estados que aceite somente cadeia que contenha no mínimo três 1, em 
Autômatos finitos determinísticos 5
seguida esboce a tabela dos estados e símbolos. Observação: os símbolos 
que podem ser utilizados são 1 e 0.
Figura 4. Diagrama de estados do AFD que aceita somente 
cadeias que tenha no mínimo três 1.
Quadro 2. AFD que aceita somente cadeias que tenha no mínimo três 1
Símbolos — 0 1
Estados
q0 (estado inicial) q0 (estado inicial) q1
q1 q1 q2
q2 q2 q3
q3 (estado final) q3 (estado final) q3 (estado final)
Conforme pode-se ver na Figura 4 e no Quadro 2, há quatro estados 
(q0, q1, q2 e q3) e os dois símbolos (0 e 1) que são consumidos entre os estados. 
Diferente do diagrama apresentado na Figura 3, o diagrama da Figura 4 tem 
alguns recursos gráficos diferentes que desempenham um papel importante. 
O primeiro recurso gráfico diferente é o aplicado ao estado q0; este tem um 
triângulo apontando para si, então, por conversão, este é o estado inicial do 
AFD. O segundo recurso gráfico diferente é o aplicado ao estado q3, que tem 
um círculo menor dentro do círculo que representa o estado q3, então, por 
conversão, este é o estado final ou de aceitação do AFD.
No tocante à resolução deste exercício, é preciso assegurar que haverá 
no mínimo três 1s, independentemente das posições dos 1s. A estratégia 
para resolver esse problema é encadear o consumo de três 1s entre quatro 
estados. No quarto e último estado, pode-se colocá-lo como o estado de 
aceitação, em seguida, o consumo do outro símbolo. A seguir são mostradas 
cadeias que devem ser aceitas e rejeitadas por este AFD.
Autômatos finitos determinísticos6
 � Cadeias aceitas: 111, 0101010, 1110001, 0001110, 100000000000011 e 
11111111110000001.
 � Cadeias rejeitadas: 000, 0101000, 0010001; 1100;10000000000000001 
e 10000001.
Até o presente momento do estudo foram vistas somente as estruturas 
chamadas de estados e símbolos, sendo rapidamente falado de transições. 
Mas o AFD teria outras estruturas além dessas? Sim, e serão vistas na for-
malização do AFD, disposta na subseção a seguir.
Formalização do autômato finito determinístico 
Embora expressar o AFD por meio dos exemplos vistos nos diagramas e tabelas 
seja interessante e intuitivamente didático, pode deixar a definição do que 
se deseja explicar evasiva e com muitas dúvidas, pois exemplos não são uma 
generalização, mas casos isolados e específicos do que seja um AFD. Desta 
forma, é necessário usar a definição formal, por duas razões. A primeira é 
que uma definição formal é precisa, por exemplo, caso seja necessário saber 
se um AFD poderia ter vários estados de aceitação, ou se poderia ter mais de 
um estado inicial. Por meio da consulta à definição formal, saberíamos que 
a primeira assertiva é verdadeira e a segunda é falsa. A segunda razão é que 
a definição formal viabiliza notação. Boas notações chegam muito próximo 
da generalização dos casos que se desejam trabalhar, ajudando a pensar e 
expressar as ideias claramente, pois a notação conduz um significado em 
volta dos objetos utilizados em sua formação. Por fim, a formalização do AFD 
pode ser vista por meio de uma 5-upla (Q, Σ, δ, q0, F) (HOPCROFT; MOTWANI; 
ULLMAN, 2003; SIPSER, 2007; MENEZES, 2011):
 � Q é um conjunto finito e pré-definido de estados;
 � Σ é um conjunto finito de símbolos chamado de alfabeto;
 � δ: Q × Σ → Q é a função de transição ou computação;
 � q0 ∈ Q é o estado inicial utilizado;
 � F ⊆ Q é o conjunto de estados de aceitação. Logicamente, a quantidade 
de estados finais não pode ser maior que a quantidade dos estados 
do autômato em questão.
Autômatos finitos determinísticos 7
Sobre os AFDs, é necessário levar em considerar que: (1) todas as palavras 
são finitas, (2) um AFD sempre vai parar e (3) todo símbolo é consumido e 
processado a cada função de transição. A última consideração origina a função 
de transição estendida, ou computação. A partir do diagrama apresentado 
na Figura 5, que aceita a linguagem L1, pode-se ver, conforme o Quadro 3, 
os itens da formalização de um AFD.
Figura 5. Diagrama de estados usado para exemplificar 
a computação M1 no AFD.
Pode-se expressar M1 formalmente escrevendo M1 = (Q, Σ, δ, q0, F), onde:
 � Q = {q0, q1 e q2},
 � Σ = {a, b},
 � δ é desenhada como exemplificado no Quadro 3:
Quadro 3. Exemplificação da computação da M1 no AFD
a b
q0 q0 q1
q1 q2 q1
q2 q1 q1
 � q0 é o estado inicial;
 � F = {q1}.
Autômatos finitos determinísticos8
Formalização de computação em um autômato 
finito determinístico 
Desta forma, considere M = (Q, Σ, δ, q0, F) um AFD. O processo de computa-
ção de M é definido por uma extensão da função de transição δ: Q × Σ para 
palavras, representada por δ*: Q × Σ*→ Q e chamada de função de transição 
estendida. Essa função é definida de forma indutiva: (HOPCROFT; MOTWANI; 
ULLMAN, 2003; SIPSER, 2007; DIVERIO; MENEZES, 2011):
δ*(q, ε) = q (a) (base da indução)
δ*(q, aw) = δ*(δ(q, a), w) (b) (passo da indução)
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:
δ*(q0, 00) = função estendida sobre 00,
δ*(δ(q0, 0), 0) = processo 00,
δ*(q1, 0) = função estendida sobre 0,
δ*(δ(q1, 0), ε) = processo 0,
δ*(qf, ε) = qf função estendida sobre ε.
Considere M = (Q, Σ, δ, q0, F) um AFD e w = w1w2 … wn uma sequência de 
caracteres, de forma que wi pertence a Σ. Então pode-se dizer que M aceita 
w caso exista uma cadeia de estados r0, r1, r2 … rn que pertença a Q com três 
condições, a saber (SIPSER, 2007):
 � r0 = q0: isto significa que a máquina sempre vai começar no estado 
inicial;
 � δ(ri, wi+1) = ri+1: isto significa que a máquina alcança outros estados a 
partir da execução da função de transição;
 � rn pertence a F: isto significa que a máquina só aceita a sequência se 
a execução da função de transição chegar ao estado de aceitação.
Autômatos finitos determinísticos 9
Entendidas as três condições anteriores, a seguir é apresentado um pro-
blema para fixação da formalização da computação por meio de um AFD 
esboçado pelo Quadro 4. Tenha que o AFD é do formato M1 = ({q0, q1, q2, qf}, 
{0,1}, δ1, q0,{qf}).
Quadro 4. Exemplificação da função de transição δ1
Símbolos - 0 1
Estados
q0 q1 q2
q1 qf q2
q2 q1 qf
qf qf qf
Desenvolva o resultado da computação da palavra 0100 a partir de q0, 
mostrando cada símbolo sendo consumido e o seu diagrama.
Aplicando a função de transição na palavra 0100 a partir de q0, tem-se:
 � δ*(q0, 0100) = função estendida sobre 0100,
 � δ*(δ(q0, 0) ,100) = processo 0100,
 � δ*(q1, 100) = função estendida sobre 100,
 � δ*(δ(q1, 1), 00) = processo 100,
 � δ*(q2, 00) = função estendida sobre 00,
 � δ*(δ(q2, 0), 0) = processo 00,
 � δ*(q1, 0) = função estendida sobre 0,
 � δ*(δ(q1, 0), ε) = processo 0,
 � δ*(qf, ε) = qf função estendida sobre ε.
A Figura 6 representa o diagrama da computação M1 e pode-se concluir que 
a palavra 0100 é aceita por esteAFD, pois após o consumo do último símbolo, 
o estado alcançado foi o estado de aceitação. Fique atento à definição formal 
do AFD, pois a partir desta formalização as dúvidas e incertezas dos exemplos 
sobre as propriedades deste tipo de autômato podem ser dirimidas. É importante 
destacar que cada componente da 5-upla cumpre um papel indispensável, sendo 
possível estabelecer o autômato a partir das cinco informações dispostas na 
formalização. Muita atenção à função de transição, pois esta costuma ser a 
parte mais complexa do AFD.
Autômatos finitos determinísticos10
Figura 6. Diagrama de estados usado para exemplificar 
a computação M1 no AFD.
Implementando autômatos finitos 
determinísticos por meio dos diagramas 
e tabelas
A seguir serão realizados exercícios envolvendo AFDs para fixação do con-
teúdo. Esta seção busca ativamente aprofundar os conhecimentos por meio 
de outros exemplos. Cada exercício será composto por duas partes, a saber: 
problema e resposta.
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.
Autômatos finitos determinísticos 11
Quadro 5. Transições do AFD da L(Ma)
0 1
q0 q0 q1
q1 q0 q1
 � q0 é o estado inicial;
 � F = {q1}.
Figura 7. Diagrama de estados AFD do L(Ma).
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
Figura 8. Diagrama de estados AFD do L(Mb).
 � Q = {q0 e q1},
 � Σ = {0, 1},
 � δ é desenhada como no Quadro 6:
Autômatos finitos determinísticos12
Quadro 6. Transições do AFD da L(Mb)
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
Figura 9. Diagrama de estados AFD do L(Mc).
 � Q = {s, r1, r2, q1 e q2},
 � Σ = {0, 1},
 � δ é desenhada como:
Autômatos finitos determinísticos 13
Quadro 7. Transições do AFD da L(Mc)
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
Figura 10. Diagrama de estados AFD do L(Md).
 � Q = {q0, q1, q2, q3},
 � Σ = {0, 1},
 � δ é desenhada como:
Autômatos finitos determinísticos14
Quadro 8. Transições do AFD da L(Md)
0 1
q0 q1 q0
q1 q2 q0
q2 q2 q3
q3 q3 q3
 � q0 é o estado inicial;
 � F = {q3}.
Uma linguagem pode ter vários AFDs que a reconheçam, possibilitando 
assim múltiplas respostas, desde que atendam as especificações estabeleci-
das. No entanto, há soluções que envolvem mais estados para um problema 
que nem sempre exige muitos estados. Desta forma, existe a possibilidade de 
melhorar um AFD, reduzindo-o para um AFD mais otimizado e com o mesmo 
poder de representação. Na seção a seguir será visto como acontece tal 
mecanismo.
Otimizando o autômato finito 
determinístico 
A estratégia principal aplicada por meio do algoritmo de minimização é 
determinar quais estados de um AFD possuem equivalência, isto é, que se 
comportam identicamente ao consumir um símbolo ou não. Por definição, se 
dois estados X e Y possuem equivalência, então o resultado final (aceitação 
ou rejeição) do processamento de qualquer cadeia w ∈ Σ* deve ser igual se 
iniciado a partir de X ou a partir de Y. Formalmente dois estados possuem 
equivalência se ∀w ∈ Σ*: w é aceita a partir X e ⇔ w é aceita a partir Y (HOP-
CROFT; MOTWANI; ULLMAN, 2003).
A minimização do autômato une os estados equivalentes entre si, não 
alterando o seu funcionamento, visto que estados equivalentes têm o compor-
tamento idêntico para toda cadeia. Em relação aos estados que não possuem 
equivalência, estes não devem ser unidos e permanecem separados (SIPSER, 
2007; MENEZES, 2011). Algumas observações sobre a minimização dos AFDs 
estão listadas a seguir:
Autômatos finitos determinísticos 15
 � Neste mecanismo, o conjunto de estados Q é particionado entre o 
bloco dos estados finais F e dos estados não-finais Q – F.
 � Nenhum estado contido em F pode ser equivalente a algum estado de 
Q – F, pois a cadeia p ∈ Σ* é reconhecida a partir de qualquer estado 
pertencente a F, mas rejeitada a partir de qualquer estado contido em 
Q – F. Em seguida, o algoritmo de minimização separa mais os estados, 
e isto acontece de forma interativa.
 � Os estados X e Y são n-distinguíveis caso tenha uma cadeia s ∈ Σ* de 
comprimento n, de forma que s é aceita a partir de X, mas rejeitada a 
partir de Y, ou vice-versa.
 � O algoritmo procura uma partição, de tal forma que os estados não 
equivalentes fiquem em blocos distintos e que usem o menor número 
possível de blocos.
Por fim, o algoritmo de minimização de autômatos funciona de acordo 
com as etapas a seguir (SIPSER, 2007):
1. Produz uma partição Z0 = {F, Q – F} do conjunto de estados contidos em 
Q, separando os estados finais (F) dos não finais (Q – F).
2. Para cada bloco de estados L na partição Zi, cada símbolo s do alfabeto 
Σ, sendo cada par de estados X, Y contidos no bloco L:
a) sendo O = δ(X, s) e O’ = δ(X, s) os estados que o AFD alcança quando 
consome símbolo s a partir dos estados X, Y pertencentes ao bloco L;
b) caso O e O’ estejam contidos em blocos distintos na partição Zi, então 
os estados X e Y não possuem equivalência e devem ser separados 
na partição Zi+1.
3. Se a partição Zi+1 não for igual à partição Zi, deve-se repetir a etapa 2.
4. O autômato mínimo é formado de tal maneira que os seus estados são 
os blocos contidos da enésima partição Zi+1 gerada.
A seguir, nas Figuras 11 a 14, a execução do algoritmo de minimização de 
AFD é aplicada, sendo mostrada a redução da quantidade de estados em 
cada interação executada.
Autômatos finitos determinísticos16
Figura 11. Diagrama D1 que será minimizado. 
Figura 12. Interação 1 sobre o D1.
Figura 13. Interação 2 sobre o D1.
Autômatos finitos determinísticos 17
Figura 14. Interação 3 sobre o D1. 
Observe que o diagrama D1, que anteriormente tinha 6 estados, após 
a aplicação do algoritmo de minimização de AFD ficou com 4 estados, não 
tendo o funcionamento alterado, apenas o número de estados reduzidos.
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* = { x1x2...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.
Autômatos finitos determinísticos18

Continue navegando