Estive revisando a Teoria da Computação por diversão e essa pergunta me incomoda há um tempo (engraçado nunca pensei nisso quando aprendi a Teoria dos Autômatos na minha graduação). Então, "por que" exatamente estudamos autômatos finitos determinísticos e não determinísticos (DFA / NFAs)? Então, aqui estão algumas respostas que eu encontrei após o solilóquio, mas ainda não consegui ver sua contribuição geral ao momento 'aha':
- Estudar o que são e o que não são capazes, isto é, limitações
- Por quê?
- Uma vez que eles são os modelos básicos de computação teórica e estabeleceriam as bases de outros modelos de computação mais capazes.
- O que os torna "básicos"? Será que eles têm apenas um bit de armazenamento e transições de estado?
- Ok, e daí? Como tudo isso contribui para responder à questão da computabilidade? Parece que as máquinas de Turing ajudam a entender isso muito bem e existem modelos de computação 'menores', como PDAs, DFA / NFAs / Regexes etc.
Portanto, embora eu "entenda" até certo ponto, sou incapaz de responder a essa pergunta para mim mesmo? Qual a melhor explicação para você 'por que estudar D / N-FAs'? Qual é a pergunta que eles procuram responder? Como isso ajuda e por que é a primeira coisa ensinada na Teoria dos Autômatos?
PS: Estou ciente dos vários aplicativos lexicográficos e correspondentes de padrões que podem ser implementados como tais. No entanto, eu não quero saber para que praticamente ele pode ser usado, mas qual foi o motivo de seu uso / invenção / design durante o culminar do estudo da teoria da computação. Historicamente falando, o que levou alguém a começar com isso e a qual entendimento "aha" ele deveria levar? Se você explicasse a importância deles para os alunos de ciências da computação que estão começando a estudar a teoria dos autômatos, como você fez isso?