0% acharam este documento útil (0 voto)
27 visualizações16 páginas

Desenvolvimento e Conversão de Autômatos

Este relatório descreve as etapas de desenvolvimento de um trabalho teórico e prático sobre autômatos. Inclui a criação de e-NFAs, teste de palavras, conversão para DFAs manualmente e com JFLAP. Compara os resultados das etapas.

Enviado por

Fernando Abreu
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
27 visualizações16 páginas

Desenvolvimento e Conversão de Autômatos

Este relatório descreve as etapas de desenvolvimento de um trabalho teórico e prático sobre autômatos. Inclui a criação de e-NFAs, teste de palavras, conversão para DFAs manualmente e com JFLAP. Compara os resultados das etapas.

Enviado por

Fernando Abreu
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Relatório

Fernando Abreu de Sousa, Iane Caroline de Lima Ferreira1


1
Instituto de Engenharia e Geociências – Universidade Federal do Oeste do Pará
(UFOPA)
{fernando.as, iane.ferreira}@ufopa.edu.br

Resumo. Este relatório descreve as etapas de desenvolvimento do trabalho


teórico e prático sobre o formalismo envolvendo autômatos, descrevendo a
etapa de criação dos e-NFAs, teste e conversão dos e-NFAs para DFAs, além
de comparar as etapas realizadas manualmente com aquelas realizadas na
plataforma JFLAP.

1. Construção de ε-NFAs e conversão para DFAs


O primeiro passo do trabalho consistiu na criação arbitrária de três épsilon NFAs
contendo pelo menos três transições das quais pelo menos uma deveria ser uma
épsilon-transição.
O segundo passo consistiu em criar palavras e testar cada um dos autômatos criados,
usando a notação de função de transições estendidas.
No terceiro passo implementamos o NFA no JFLAP para comparar os resultados
dos processamentos das string que foram testadas manualmente no passo anterior.
No quarto passo realizamos a conversão de cada e-NFA’s para os DFA’s, usando o
JFLAP.
E ao final retomamos à base teórica do E-fechamento, e continuamos com a
conversão manual.
Sendo assim, inicialmente, definimos os seguintes autômatos:
Seja um autômato definido como 𝐴 = (𝑄, Σ, δ, 𝑞0, 𝐹), onde:

➢ 𝑄 é o conjunto de estados do autômato;


➢ Σ é seu alfabeto;
➢ δ é a função de transição;
➢ 𝑞0 é o estado inicial;
➢ 𝐹 é o conjunto de estados finais.

● 𝐴1 = ({𝑞0, 𝑞1, 𝑞2, 𝑞3}, {0, 1}, δ, 𝑞0, {𝑞3}) 1

1
Observação: Para a especificação formal dos autômatos, as funções de transição podem ser vistas nas
tabelas de transição que podem ser visualizadas após a imagem dos autômatos.
Figura 1. Autômato 𝐴1

ε 0 1

→𝑞0 {𝑞1} {𝑞2} ⊘

𝑞1 ⊘ {𝑞3} ⊘

𝑞2 ⊘ {𝑞3} {𝑞2, 𝑞 }
3

𝑞3 * ⊘ ⊘ {𝑞0}

Tabela 1. Tabela de transição do autômato 𝐴12

● 𝐴2 = ({𝑞0, 𝑞1, 𝑞2}, {𝑎, 𝑏}, δ, 𝑞0, {𝑞2})

Figura 2. Autômato 𝐴2

2
Para as épsilon-transições, utiliza-se a convenção de que, se não há uma épsilon-transição indo de um
estado para outro, a transição é vazia independente de seu ECLOSE conter a si mesmo, conforme os
exemplos utilizados no livro.
ε a b

→𝑞0 ⊘ {𝑞1} ⊘

𝑞1 {𝑞2} ⊘ {𝑞1}

𝑞2 * ⊘ {𝑞0} ⊘

Tabela 2. Tabela de transição do autômato 𝐴2

𝐴3 = ({𝑞0, 𝑞1, 𝑞2}, {𝑎, 𝑏}, δ, 𝑞0, {𝑞0})

Figura 3. Autômato 𝐴3

ε a b

𝑞0 {𝑞0} {𝑞0} {𝑞1}

𝑞1 ⊘ {𝑞0, 𝑞2} ⊘

𝑞2 {𝑞0} ⊘ {𝑞2 }

Tabela 3. Tabela de transição do autômato 𝐴3

2. Processamento de palavras no autômatos criados

2.1. Processamento manual


Após a criação dos autômatos, o segundo passo consistiu em criar palavras e testar cada
um dos autômatos criados, usando a notação de função de transições estendidas. Sendo
criada dez palavras para processamento no autômato 𝐴1, três no autômato 𝐴2 e dez no
autômato 𝐴3.

Para o autômato 𝐴1 as palavras processadas manualmente foram 𝑤1 = 001,


𝑤2 = 000101, 𝑤3 = 101100, 𝑤4 = 111000, 𝑤5 = ε, 𝑤6 =0101, 𝑤7 = 01,
𝑤8 = 01011, 𝑤9 = 010111, 𝑤10 = 011.

Figura 4. Processamento manual da palavra 𝑤1 no autômato 𝐴1.

Figura 5. Processamento manual da palavra 𝑤2 no autômato 𝐴1.

Figura 6. Processamento manual da palavra 𝑤3 no autômato 𝐴1.


Figura 7. Processamento manual das palavras 𝑤4 e 𝑤5 no autômato 𝐴1.

Figura 8. Processamento manual da palavra 𝑤6 no autômato 𝐴1

Figura 9. Processamento manual da palavra 𝑤7 no autômato 𝐴1.


Figura 10. Processamento manual da palavra 𝑤8 no autômato 𝐴1.

Figura 11. Processamento manual da palavra 𝑤9 no autômato 𝐴1


Figura 12. Processamento manual da palavra 𝑤10 no autômato 𝐴1

Para o autômato 𝐴2 foram processadas manualmente as seguintes palavras


𝑤1 = 𝑎𝑏𝑎𝑏𝑎, 𝑤2 = 𝑎𝑏𝑎𝑎𝑏, 𝑤3 = 𝑎𝑎𝑎𝑎.
Figura 13. Processamento manual das palavras 𝑤1, 𝑤2 e 𝑤3 no autômato 𝐴2
Figura 14. Processamento manual da palavra 𝑤4 no autômato 𝐴2

Para o autômato 𝐴3 foram processadas manualmente as seguintes palavras


𝑤1 = 𝑎𝑎, 𝑤2 = 𝑎𝑎𝑏, 𝑤3 = 𝑎𝑏𝑎𝑏, 𝑤4 = 𝑎𝑏𝑏, 𝑤5 = 𝑎𝑎𝑏𝑎, 𝑤6 = 𝑏𝑎𝑎, 𝑤7 = 𝑏𝑏𝑎,
𝑤8 = 𝑏𝑎𝑏𝑎, 𝑤9 = 𝑏𝑎𝑏𝑎𝑏 e 𝑤10 = ε.

Figura 15. Processamento manual das palavras 𝑤1, 𝑤2, 𝑤3, 𝑤4 no autômato 𝐴3
Figura 16. Processamento manual das palavras 𝑤5, 𝑤6 no autômato 𝐴3

Figura 17. Processamento manual das palavras 𝑤7, 𝑤8, 𝑤9 no autômato 𝐴3

2.2. Processamento usando o JFLAP

A seguir podemos observar o processamento das mesmas palavras utilizadas no


processamento manual nos autômatos, porém agora utilizando o software JFLAP.
Vemos que os resultados foram os mesmos. Para o autômato 𝐴1:

Figura 18. Processamento no JFLAP das palavras do autômato 𝐴


1

A seguir também observamos o processamento da palavra vazia, pois não foi


possível adicioná-la junta às outras palavras:

Figura 19. Processamento no JFLAP da palavra vazia do autômato 𝐴


1

Para o Autômato 𝐴2, também os resultados deste, quando testados no


JFLAP, foram os mesmos quando comparados com o processamento manual de 𝐴2:
Figura 20. Processamento no JFLAP das palavras do autômato 𝐴
2

E Para o Autômato 𝐴3, quando testados no JFLAP, também foram os


mesmos quando comparados com o processamento manual de 𝐴3:

Figura 21. Processamento no JFLAP das palavras do autômato 𝐴


3

3. Conversão dos ε-NFAs para DFAs


Com qualquer ε-NFAs podemos encontrar um DFAs correspondente que reconhece a
mesma linguagem. Então, após o processamento das palavras, como próximo passo da
atividade, prosseguimos para a conversão dos autômatos criados, usando o JFLAP e,
após a leitura do livro, fizemos a conversão manual.
Para converter um ε-NFA em DFA, precisa-se, primeiramente, listar todas as
combinações de estados possíveis, tendo em vista que se um ε-NFA tem 𝑛 estados, o
𝑛
DFA correspondente terá potencialmente 2 estados. O segundo passo é encontrar o
estado inicial do DFA, podemos fazer isso fechando o estado inicial do ε-NFA, como
exemplo no autômato 𝐴1, temos:

𝐸𝐶𝐿𝑂𝑆𝐸(𝑞0) = {𝑞0, 𝑞1}, onde o novo estado que consiste na combinação {𝑞0, 𝑞1}, será
o estado inicial do DFA correspondente ao ε-NFA 𝐴1.

Em seguida, usamos a tabela de transição do ε-NFA para encontrar as transições


do DFA, e fechamos os estados resultantes dessas transições, para todas as
combinações, por exemplo:
No ε-NFA 𝐴1, δ(𝑞3, 1) = {𝑞0};

Encontra-se o fechamento de {𝑞0}:

𝐸𝐶𝐿𝑂𝑆𝐸(𝑞0) = {𝑞0, 𝑞1};

Então no DFA a transição δ(𝑞3, 1) = {𝑞0, 𝑞1} , onde {𝑞0, 𝑞1} é um dos novos
estados resultantes da listagem das combinações.
Então fazendo esse processo encontramos os DFAs correspondentes aos ε-NFAs
criados, como podemos ver a seguir:

Figura 22. Conversão manual do autômato 𝐴 para DFA .


1
Figura 23. Conversão manual do autômato 𝐴 para DFA .
2

Figura 24. Conversão manual do autômato 𝐴 para DFA .


3

Ao inserir os autômatos no JFLAP e usarmos a opção Convert to DFA, podemos ver que
o resultado foi o mesmo da conversão manual:
Figura 25. Conversão do autômato 𝐴 para DFA .
1

Figura 26. Conversão do autômato 𝐴 para DFA .


2

Figura 27. Conversão do autômato 𝐴 para DFA .


3
References
Hopcroft, John E., Ullman, Jeffrey D., Motwani, Rajeev. (2002) Introdução à teoria dos
autômatos, linguagens e computação, Campus.

Você também pode gostar