Por que devemos estudar todas as três formas de representação de autômatos finitos?


9

DFA, NFA e epsilon NFA, todos os três nos permitem representar uma linguagem regular específica. Com qualquer uma dessas representações, podemos chegar à mesma expressão regular, então por que precisamos estudar todas as três formas de representação de autômatos finitos? Pode haver alguma explicação sobre o que a NFA pode fazer e que o DFA não pode, ou seja, a NFA pode nos ajudar a projetar incertezas. Por exemplo, ao projetar um jogo (xadrez), temos muitas opções para mover uma peça em particular de um local específico que pode ser facilmente representado usando a NFA. Mas qual é a utilidade do epsilon NFA quando o mesmo pode ser feito usando NFA ou DFA?


2
Existem mais de três. Estes são apenas os normalmente encontrados em livros didáticos. As transições épsilon são úteis para provar teoremas, mas não tenho certeza se os vi usados ​​em modelos por si mesmos.
Wvxvw

3
@wvxvw, o algoritmo para traduzir uma expressão regular em um NFA usa transições uma maneira muito natural. Eles não são "apenas para provas", são bastante naturais em um ambiente não determinístico. ϵ
vonbrand 27/02

Respostas:


13

Adicione gramáticas regulares para uma quarta. Há outros...

Parte do interesse em DFA + NFA é que eles são modelos de computação simples, com exemplos de não-determinismo de NFA (e NFA) (uma idéia crucial para modelos mais elaborados). Provar que o DFA e o NFA aceitam o mesmo conjunto de idiomas também está explorando um fenômeno muito importante em um ambiente simples e compreensível.ϵ

Expressões regulares (e também gramáticas regulares) são formalismos completamente diferentes, que descrevem o mesmo conjunto de idiomas. Novamente, a prova desse fato explora importantes relações cruzadas e é um exemplo de que os formalismos podem parecer muito diferentes, baseados em conceitos radicalmente diferentes, mas descrevendo as mesmas linguagens. Mais uma vez, em um ambiente bastante simples.

Para uso no "mundo real", você pode começar com uma expressão regular e obter um DFA mínimo para pesquisas de alto desempenho. Os circuitos digitais são essencialmente DFAs, entendendo-os é central na engenharia de computadores. Por último, mas não menos importante, muitas vezes os sistemas podem ser modelados como "estando em um estado" e "mudando para outro" em estímulos externos, mesmo que o sistema esteja muito longe de um DFA real, visualizando-o desta maneira, possa ajudar a entendê-lo.

Adicionado mais tarde: Conforme observado por Raphael, pode ser mais eficiente interpretar um NFA diretamente para pesquisa, porque a criação de um DFA pode ser caro e um NFA pode ser muito menor.


11
"Existem outros" - dezenas ...
Raphael

11
Você pode mencionar que o NFA pode ser útil (se o DFA for a única alternativa), porque eles podem ser muito menores, mas usar um para verificar se uma palavra é aceita não é muito mais caro.
Raphael

5

há uma grande variedade de razões para estudar as diferentes formas / correspondências de DFAs vs NFAs. Aqui estão alguns destaques selecionados, alguns da teoria avançada da complexidade.

  • Os NFAs são um modelo interessante para "computação paralela". pode-se considerar o avanço dos estados através da NFA como uma versão paralela da computação do DFA. portanto, os cálculos DFA vs NFA refletem algumas das distinções entre computação seqüencial e paralela. comparando os dois contextos, também ajuda a estudar a complexidade algorítmica inerente dos problemas.

  • Os NFAs são freqüentemente usados ​​em sistemas de correspondência de expressões regulares (bastante onipresentes nos idiomas, especialmente os modernos, gerados na era unix), que geralmente permitem descrições de expressões regulares que são convertidas em NFAs e, em seguida, possivelmente convertidas em DFAs para ajudar na pesquisa mais eficiente.

  • existem alguns problemas em aberto que permanecem nas áreas e eles são frequentemente estudados com base na correspondência DFA / NFA. veja, por exemplo, existem problemas em aberto nos DFAs (cstheory stackexchange). Surpreendentemente, alguns deles estão ligados a áreas muito profundas de CS, incluindo o problema P vs NP, isto é, a falta de interseção dos DFAs . também outra área aberta é, por exemplo, calcular o NFA mínimo para um DFA .

  • também para obter algumas dicas relacionadas, consulte esta pergunta semifameada / com destaque em cstheory.se : Qual é a iluminação que devo atingir depois de estudar autômatos finitos?

  • existem aplicações muito diversas de DFAs vs NFAs e a correspondência entre os dois é frequentemente explorada neles. a correspondência de padrões de cadeia é mencionada acima, mas as construções DFA / NFA são usadas frequentemente no reconhecimento de voz (automatizado). veja, por exemplo, este artigo altamente citado: Transdutores de estado finito ponderados em reconhecimento de fala / Mohri, Pereira, Riley


2

Os DFAs têm uma implementação mais fácil que o NFA, já que seu próximo estado é determinado por uma função e os NFAs ajudam o usuário a expressar facilmente o que desejam como saída, porque o NFA pode escolher entre vários caminhos. e o epsilon-NFA é uma extensão do NFA, onde as transições podem ser feitas sem usar nenhum símbolo de entrada.


2
resumo: as AFN transmitem a idéia de não determinismo, que é uma idéia muito profunda (seus "inventores", Michael O. Rabin e Dana S. Scott, ganharam o prêmio Turing por essas idéias)
Ran G.

1

Há uma coisa desagradável no número de estados dos DFAs. Às vezes explode .

Em resumo, se o número de estados for simplesmente muito alto (ainda finito, mas vivemos no mundo físico.), Você precisará aumentar o nível de abstração para lidar com a complexidade em detrimento de alguma desaceleração. Os outros modelos, como NFAs e AFAs, devem fornecer maneiras mais sucintas de representar idiomas regulares.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.