我一直在有趣地修改计算理论,这个问题让我困扰了一段时间(当我在本科学习自动机理论时,从来没有想到过这个有趣的事情)。那么“为什么”我们到底要研究确定性和非确定性有限自动机(DFA / NFA)?所以这是我自言自语后得出的一些答案,但仍然看不到它们对“ aha”时刻的总体贡献:
- 研究它们是什么和没有能力,即限制
- 为什么?
- 由于它们是理论计算的基本模型,将为其他更强大的计算模型奠定基础。
- 是什么使它们“基本”?是否只有一点点的存储和状态转换?
- 好吧,那又如何呢?所有这些如何有助于回答可计算性问题?似乎图灵机确实很好地理解了这一点,并且有诸如PDA,DFA / NFA / Regexes等之类的“较少”计算模型。但是,如果人们不知道FA,它们会丢失什么呢?
因此,尽管我在某种程度上“明白了”,但我无法对自己回答这个问题?您如何最好地解释“为什么要学习D / N-FA”?他们想回答什么问题?它有什么帮助?为什么它是自动机理论中教授的第一件事?
PS:我知道可以如此实现的各种字典应用程序和模式匹配器。但是,我不希望知道它可以实际使用什么,但是在学习计算理论的高潮中,他们为什么要使用/发明/设计的原因是什么。从历史上讲,是什么促使人们从这一点开始的?它应该导致什么“啊哈”理解?如果要向刚开始学习自动机理论的CS学生解释他们的重要性,您将如何做?