Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação
Nesta aula entenderemos a igualdade das linguagens regulares e a minimização de Autômato Finito Determinístico e
Autômato Finito com saída e relacionar com as linguagens Livre de Contexto e os Autômatos com Pilha.
Objetivos
Aprender a aplicar o algoritmo de minimização de Autômatos Finitos;
Ʃ
M = (Q, , δ, q 0 , F ) , onde:
δ é a função de transição, Q × Ʃ → Q , em outras palavras, qualquer estado p ∈ Q ao ser uma entrada a ∈ Ʃ leva a um
outro estado q ou até o mesmo estado também pertencente ao conjunto de estadosQ. i. e δ (p, a) → q
“Seja um autômato determinístico determinado por M acima, os estados p e q ∈ Q são equivalentes se, e somente se, para
qualquer palavra w Ʃ
∈ * :
OU
Em outras palavras, dois estados de um autômato são equivalentes se ambos aceitam ou rejeitam uma palavra da linguagem
que o autômato aceita.
é tal que ACEITA(Mm ) = L, ou seja, um autômato aceita a linguagem e além disso, qualquer outro autômato M que ACEITA(M)
= L tem #Q ≥ #Qm
Em outras palavras, o Autômato Finito Determinístico mínimo que aceita uma linguagem L tem menos estados ou é, no
máximo, igual a qualquer outro Autômato Finito Determinístico que aceite a mesma linguagem L.
b. Todos os estados devem poder ser alcançados a partir do estado inicial (sem estados inalcançáveis).
c. A função “programa” deve ser total, ou seja, a partir de qualquer estado deve haver transições para todos os símbolos
do alfabeto.
c. Transformar a função “programa” em total, introduzindo um novo estado (d) destino não nal com as transições não
previstas. Além disso, incluir um ciclo no novo estado (d) para todos os símbolos do alfabeto.
ALGORITMO DE MINIMIZAÇÃO
1. Construir uma tabela relacionando os pares de estados que só ocorrem uma vez.
2. Marcar os pares não equivalentes do tipo {Estado Final / Estado Não Final}.
3. Marcação dos estados não equivalentes — Para cada par {qu, qv} não já marcado e para cada símbolo a ∈ Ʃ suponha que:
b. Se pu ≠ pv , e o par {Pu , Pv } não está marcado, então o par {qu , qv } é colocado para posterior análise.
II. Se {qu , qv } encabeça uma lista de pares; então, marcar todos os pares da lista (e recursivamente se algum par da
lista encabeça outra).
4. Uni cação dos Estados Equivalentes – Os estados dos pares não marcados são equivalentes e podem ser uni cados:
a. A equivalência é transitiva.
b. Pares de estados não nais equivalentes podem ser uni cados como um único não nal.
c. Pares de estados nais equivalentes podem ser uni cados em um único estado nal.
d. Se algum dos estados equivalentes é inicial, então o correspondente estado uni cado é inicial.
e. Todas as transições com origem e respectivamente destino ou um estado equivalente são preservadas, mas
passam a ter origem e destino no correspondente estado uni cado.
5. Exclusão dos estados inúteis – Um estado q é dito “estado inútil” se não é nal e a partir dele não se chega a um.
Photo by Procreator UX Design Studio (Fonte: Unsplash).
Autômato Finito com Saída
Um dos problemas dos Autômatos Finitos é que eles aceitam ou rejeitam uma linguagem quando param, mas não temos uma
informação especí ca do algoritmo além dessa. Existem duas extensões de Autômatos Finitos Determinísticos em que um
valor de saída pode ser associado:
Em ambas as máquinas a saída não tem cabeça de leitura, apenas de escrita e movimento, sempre para a direita a cada
símbolo gravado.
Máquina de Mealy
De nição:
Ʃ
M = (Q, , δ, q 0 , F , Δ), onde :
δ é a função de transição, δ Ʃ
: Q × → Q → Δ* , a qual é uma função parcial.
A diferença no diagrama de estados é que cada transição tem um rótulo indicando qual símbolo de saída é escrito a cada
transição.
Máquina de Moore
Uma Máquina de Moore é um Autômato Finito Determinístico com
saídas associadas aos estados. Só que, nesse caso, as saídas são
produzidas por uma função que determina essa saída (podendo
também ser vazia), determinando o estado da máquina.
Ela é mais usada em análises léxicas ou traduções de linguagens de modo geral, em que na transição nal a função de saída
gera a informação sobre o conjunto de caracteres, de nindo identi cadores, números etc. Nos outros estados resulta em
palavra vazia ou gera uma saída que seja necessária no processo intermediário de identi cação do Lexema.
De nição:
Ʃ
M O = (Q, , δ, q 0 , F , Δ, δ s ), onde :
δ é a função de transição, δ Ʃ
: Q × → Q , o qual é uma função parcial.
δs é a função de saída.
é
δs : Q → Δ*, o qual uma fun çã o total.
Antes de falar sobre as Linguagens ou Gramáticas livres de contexto vamos fazer uma revisão rápida da de nição
básica de uma Gramática “G”:
G = {V, T, P, S}
V – Conjunto nito de símbolos ou variáveis não terminais, ou seja, são variáveis a serem substituídas por outras variáveis
ou símbolos terminais nos passos de produção das palavras da gramática e nenhum deles deverá aparecer nas palavras
nais da linguagem gerada por ela.
T – Conjunto nito de símbolos terminais DISJUNTOS, ou seja, que não façam parte de V. Eles são ditos “terminais”, pois
são os que farão parte das palavras geradas por essa gramática.
P – Regras ou relações de produção da forma: < L.Esquerdo > à < L.Direito > O “L.Esquerdo” é composto de símbolos de V
e de T; devem ser substituídos por símbolos de V e T do lado direito.
< L.Esquerdo > ou < L.Direito > podem representar símbolos individuais ou palavras formadas por eles, portanto usa-
se uma notação: <>* para indicar “Palavras formadas pelos símbolos”. É claro que um símbolo também pode ser
considerado uma palavra, então <>* já inclui os dois casos. É muito comum usar o símbolo Σ para signi car a união
(V U T) e Σ* para todas as palavras.
+
∑ - Apenas para garantir um formalismo das coisas óbvias que os matemáticos gostam, temos que especi car
que o lado esquerdo da regra de produção não pode ser o elemento “Vazio” (normalmente representado pelo símbolo
“ԑ”. Ora, vamos raciocinar um pouquinho: uma regra que diga ԑ → < Alguma coisa > não faz sentido, faz? Como
podemos substituir algo que não existe (vazio) por alguma coisa? O contrário, obviamente sim, podemos eliminar um
símbolo substituindo por vazio. Por exemplo: A → ԑ. Portanto, de um modo mais formal:
P: (V U T)+ à (V U T)* - Que podemos resumir como: palavras compostas de símbolos do alfabeto com um símbolo
especial de terminação, excluindo-se o símbolo vazio, são substituídos por qualquer palavra composta por símbolos
deste mesmo alfabeto com o símbolo especial de terminação, incluindo o símbolo vazio.
S – Um símbolo especial escolhido à parte de V denominado inicial. Este é o símbolo pelo qual começamos a substituição
das regras de produção.
Relações de Derivação:
A ==>* B – O “*” indica que A pode substituído por B zero ou mais vezes.
A ==>+ B – O “+” indica que A pode ser substituído por B uma ou mais vezes.
Linguagem gerada
Uma gramática tem por nalidade gerar uma linguagem. Normalmente, para as diversas nalidades da computação, como
uma linguagem para a criação de programas ou aplicativos para dispositivos computacionais. A linguagem gerada L por uma
gramática é formalmente de nida como:
T* – Todo o conjunto de palavras constituídas de símbolos terminais; nesse caso o “*” indica que inclui também a palavra vazia.
S ==>
+
w – Indica a geração de cada palavra a partir de um símbolo especial a partir de um ou mais passos.
Uma gramática livre de contexto G = {V, T, P, S}, é tal que sua regra de produção P é da forma:
A → α
Em outras palavras, uma linguagem livre de contexto é tal que uma produção é feita a partir de uma variável ou grupo de
símbolos, independentemente de algum grupo de símbolos anteriores da produção, não deixando a linguagem “dependente”
recursivamente.
(Fonte: blogcyberini)
Formas Normais I
As formas normais criam restrições rígidas nas regras de produção das linguagens livres de contexto. Contudo, isso não
diminui o seu poder de geração de gramáticas. Existem duas formas normais mais conhecidas:
Uma gramática livre de contexto G = {V, T, P, S}, é dita estar na Forma Normal de Chomsky se todas as suas produções P são da
forma
1. A, B e C são variáveis de V.
2. a é um símbolo terminal de T.
3. S é um símbolo especial escolhido aparte de V denominado inicial. Este é o símbolo pelo qual começamos a substituição
das regras de produção.
Uma gramática livre de contexto G = {V, T, P, S}, é dita estar na Forma Normal de Greibach se todas as suas produções P são da
forma
A à a α, onde:
1. A é uma variável de V.
2. a é um símbolo terminal de T.
4. S é um símbolo especial escolhido à parte de V denominado inicial. Este é o símbolo pelo qual começamos a substituição
das regras de produção.
Atividade
1. Minimize o Autômato Finito da gura abaixo:
(Fonte: encrypted-tbn0.gstatic).
2. Considere a máquina de Meally abaixo, que compacta os brancos de um texto em que a é um símbolo qualquer e representa
um branco, como no diagrama abaixo:
Ʃ
M = (Q, , δ, q 0 , F , Δ), onde :
δ é a função de transição, δ Ʃ
: Q × → Q → Δ* , o qual é uma função parcial.
q é o estado inicial.
3. Qualquer expressão aritmética binária pode ser convertida em uma expressão totalmente parentizada, bastando reescrever
cada subexpressão binária a + b com (a + b), em que + denota um operador binário. Expressões nesse formato podem ser
de nidas por regras de uma gramática livre de contexto, conforme apresentado a seguir. Nessa gramática, os símbolos não-
terminais E, S, O e L representam expressões, subexpressões, operadores e literais, respectivamente, e os demais símbolos das
regras são terminais (ENADE, 2008).
E → (S O S)
S→L|E
O→+|-|*|/
L→a|b|c|d|e
Mostre que a expressão (a * ( b / c )) pode ser obtida por derivações das regras acima. Para isso, desenhe a árvore de análise
sintática correspondente.
Notas
Referências
HOPCROFT, J.; ULLMAN, J.; MOTWANI, R. Introdução à teoria dos Autômatos, Linguagens e Computação. Tradução da 2. ed.
original de Vandenberg D. de Souza. Rio de Janeiro: Elsevier, 2002. (Título original: Introduction to automata theory, languages,
and computation. ISBN 85 352 1072 5.)
SIPSER, M. Introdução à teoria da Computação. Tradução técnica da 2. ed.: Rui José Guerra Barretto de Queiroz. Revisão
técnica: Newton José Vieira. São Paulo: Thomson Learning, 2007. (Título original : Introduction to the theory of computation.
ISBN 978-85-221-0499-4.)
Próxima aula
Igualdade de Linguagens Regulares, Minimização de Autômato Finitos Determinísticos e Autômato Finito com Saída;
Análise Léxica.
Explore mais
Leia os livros:
ANDERSON, J. A., Automata Theory with Modern Applications. Rio de Janeiro: Cambridge University Press, 2006.