Buscar

propriedades-3

Prévia do material em texto

Linguagens Regulares – Propriedades
Linguagens Formais, Autômatos e Computabilidade
Filipe Saraiva
Filipe Saraiva | UFPA | 1 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 2 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 3 / 28
Introdução
Essa aula se dedicará exclusivamente à minimização de Autômatos
Finitos. Na próxima seção serão analisadas as pré-condições e
passos necessários para se efetuar essas operações.
Filipe Saraiva | UFPA | 4 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 5 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 6 / 28
Minimização – Pré-Condições
Um Autômato Finito pode ser reduzido ao menor número de estados
possíveis, e ainda assim conseguir reconhecer a linguagem original
que ele processava, sem perda de expressividade.
Filipe Saraiva | UFPA | 7 / 28
Minimização – Pré-Condições
A redução do número de estados permite um autômato mais
compacto, apesar de não necessariamente impactar na redução do
tempo de processamento computacional ou outra característica.
De fato, para algumas situações um autômato com mais estados é até
mais desejável que algum com menos (por exemplo, para facilitar
implementações).
Filipe Saraiva | UFPA | 8 / 28
Minimização – Pré-Condições
Para que um Autômato Finito possa ser minimizado é necessário
cumprir certas condições:
• O autômato deve ser um Autômato Determinístico;
• Todos os estados devem ser alcançáveis a partir do estado inicial;
• Função programa deve ser total (cada estado tem transições para
todos os símbolos da linguagem).
Filipe Saraiva | UFPA | 9 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 10 / 28
Algoritmo de Minimização
Dada as pré-condições, os passos do algoritmo de minimização serão
os seguintes:
• Passo 1: Cria-se uma tabela com os estados distintos
relacionando-os apenas 1 vez;
• Passo 2: Marcam-se todos os estados trivialmente não
equivalentes (no caso, aqueles que são {final, não final} e
vice-versa;
• Passo 3: Marcam-se os estados não equivalentes. Fazendo para
cada par não marcado {qu, qv } e para cada símbolo a ∈
∑
,
suponha:
Filipe Saraiva | UFPA | 11 / 28
Algoritmo de Minimização
Passo 3: Marcam-se os estados não equivalentes. Fazendo para cada
par não marcado {qu, qv } e para cada símbolo a ∈
∑
, suponha:
δ(qu, a) = pu ; δ(qv , a) = pv
• Se pu = pv : então qu é equivalente a qv para a e portanto não
deve ser marcado;
• Se pu 6= pv e {pu, pv } não marcado: então {qu, qv } são incluídos
em uma lista a partir de {pu, pv } para posterior análise;
• Se pu 6= pv e {pu, pv } é marcado:
• {qu , qv } não é equivalente e deve ser marcado;
• Se {qu , qv } encabeça lista de pares, marcam-se todos os pares da
lista, recursivamente.
Filipe Saraiva | UFPA | 12 / 28
Algoritmo de Minimização
Dada as pré-condições, os passos do algoritmo de minimização serão
os seguintes (continuação):
• Passo 4: Unificar os estados equivalentes, no caso os pares não
marcados, de acordo com:
• Pares não finais são unificados em um novo estado não final;
• Pares finais são unificados em um novo estado final;
• Se algum dos estados a ser unificado for o inicial, o novo estado
será inicial;
• Todas as transições com origem/destino em um estado que foi
unificado passam a ter origem/destino no novo estado unificado.
Filipe Saraiva | UFPA | 13 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 14 / 28
Exemplo
Utilizaremos como exemplo o seguinte autômato a ser minimizado:
M = ({a, b}, {q0, q1, q2, q3, q4, q5}, δ, q0, {q0, q4, q5})
δ a b
q0 q2 q1
q1 q1 q0
q2 q4 q5
q3 q5 q4
q4 q3 q2
q5 q2 q3
Filipe Saraiva | UFPA | 15 / 28
Exemplo
Passo 1 trata-se de criar uma tabela com os estados distintos
relacionando-os apenas 1 vez. A tabela é criada abaixo, removendo da
coluna o primeiro estado e removendo da linha o último estado.
Perceba que a tabela é triângular à esquerda/baixo – os cruzamentos
à direita/cima são descartados.
q1 - - - -
q2 - - -
q3 - -
q4 -
q5
q0 q1 q2 q3 q4
Filipe Saraiva | UFPA | 16 / 28
Exemplo
Passo 2 marcam-se os elementos trivialmente não equivalentes, ou
seja, aqueles pares que cruzam {estados finais, estados não finais} e
vice-versa.
q1 X - - - -
q2 X - - -
q3 X - -
q4 X X X -
q5 X X X
q0 q1 q2 q3 q4
Filipe Saraiva | UFPA | 17 / 28
Exemplo
Passo 3 Nesse passo devem ser marcados os estados não
equivalentes. Para tanto, é necessário verificar as transições nos pares
de estados não marcados na tabela.
{q0, q4}
δ(q0, a) = q2
δ(q4, a) = q3
δ(q0, b) = q1
δ(q4, b) = q2
{q1, q2} e {q2, q3} são não
marcados: {q0, q4} vão para as
listas encabeçadas por {q1, q2} e
{q2, q3}.
{q0, q5}
δ(q0, a) = q2
δ(q5, a) = q2
δ(q0, b) = q1
δ(q5, b) = q3
{q1, q3} é não marcados: {q0, q5}
vão para a lista encabeçadas por
{q1, q3}.
Filipe Saraiva | UFPA | 18 / 28
Exemplo
Passo 3 Tabela após as verificações realizadas:
q1 X - - - -
q2 X l1−2 - - -
q3 X l1−3 l2−3 - -
q4 X X X -
q5 X X X
q0 q1 q2 q3 q4
l1−2 – {q0, q4}
l1−3 – {q0, q5}
l2−3 – {q0, q4}
Filipe Saraiva | UFPA | 19 / 28
Exemplo
Passo 3 Nesse passo devem ser marcados os estados não
equivalentes. Para tanto, é necessário verificar as transições nos pares
de estados não marcados na tabela (continuação).
{q1, q2}
δ(q1, a) = q1
δ(q2, a) = q4
δ(q1, b) = q0
δ(q2, b) = q5
{q1, q4} é marcado: marca-se {q1,
q2}, que encabeça a lista e
portanto vai marcar o par {q0, q4}
também.
{q1, q3}
δ(q1, a) = q1
δ(q3, a) = q5
δ(q1, b) = q0
δ(q3, b) = q4
{q1, q5} e {q0, q4} são marcados:
marca-se {q1, q3}, que encabeça
uma lista que marcará {q0, q5}
também.
Filipe Saraiva | UFPA | 20 / 28
Exemplo
Passo 3 Tabela após as verificações realizadas:
q1 X - - - -
q2 X X - - -
q3 X X l2−3 - -
q4 X X X X -
q5 X X X X
q0 q1 q2 q3 q4
l2−3
Filipe Saraiva | UFPA | 21 / 28
Exemplo
Passo 3 Nesse passo devem ser marcados os estados não
equivalentes. Para tanto, é necessário verificar as transições nos pares
de estados não marcados na tabela (continuação).
{q2, q3}
δ(q2, a) = q4
δ(q3, a) = q5
δ(q2, b) = q5
δ(q3, b) = q4
{q4, q5} é não marcado: {q2, q3}
entram na lista encabeçada por
{q4, q5}.
{q4, q5}
δ(q4, a) = q3
δ(q5, a) = q2
δ(q4, b) = q2
δ(q5, b) = q3
{q2, q3} é não marcado: {q4, q5}
entra na lista encabeçada por {q2,
q3}.
Filipe Saraiva | UFPA | 22 / 28
Exemplo
Passo 3 Tabela após as verificações realizadas:
q1 X - - - -
q2 X X - - -
q3 X X l2−3 - -
q4 X X X X -
q5 X X X X l4−5
q0 q1 q2 q3 q4
l2−3 – {q4, q5}
l4−5 – {q2, q3}
Filipe Saraiva | UFPA | 23 / 28
Exemplo
Passo 4 Finalizada as verificações, chega o momento de unificar
estados. Da tabela, percebe-se que {q2, q3} e {q4, q5} são não
marcados, logo esses pares podem ser unificados:
• {q2, q3} será unificado em q23;
• {q4, q5} será unificado em q45.
Filipe Saraiva | UFPA | 24 / 28
Exemplo
O autômato minimizado, portanto, é o seguinte. Atente para as
transições que agora partem/chegam ao resultado dos estados
unificados.
M = ({a, b}, {q0, q1, q23, q45}, δ, q0, {q0, q45})
δ a b
q0 q2 q1
q1 q1 q0
q23 q45 q45
q45 q23 q23
Filipe Saraiva | UFPA | 25 / 28
Conteúdo
Introdução
Minimização de Autômatos Finitos
Pré-Condições
Algoritmo de Minimização
Exemplo
Conclusões
Filipe Saraiva | UFPA | 26 / 28
Conclusões
• Minimização de autômatos consiste na redução do número de
estados a partir da fusão de certos estados. O autômato
resultante tem a mesma expressividade do autômato original;
• Para que um autômato seja minimizado, ele deve ser um AFD,
conectado, e a função de transiçãodeve ser total/completa;
• O algoritmo de minimização vai comparando pares de autômatos
de forma a verificar se eles são possíveis de serem fundidos;
• Não necessariamente a minimização consiste em um autômato
mais simples de ser entendido.
Filipe Saraiva | UFPA | 27 / 28
Linguagens Regulares – Propriedades
Linguagens Formais, Autômatos e Computabilidade
Filipe Saraiva
Filipe Saraiva | UFPA | 28 / 28
	Introdução
	Minimização de Autômatos Finitos
	Pré-Condições
	Algoritmo de Minimização
	Exemplo
	Conclusões

Continue navegando