学习有限自动机后,我应该得到什么启示?


247

我一直在有趣地修改计算理论,这个问题让我困扰了一段时间(当我在本科学习自动机理论时,从来没有想到过这个有趣的事情)。那么“为什么”我们到底要研究确定性和非确定性有限自动机(DFA / NFA)?所以这是我自言自语后得出的一些答案,但仍然看不到它们对“ aha”时刻的总体贡献:

  1. 研究它们是什么和没有能力,即限制
    • 为什么?
  2. 由于它们是理论计算的基本模型,将为其他更强大的计算模型奠定基础。
    • 是什么使它们“基本”?是否只有一点点的存储和状态转换?
  3. 好吧,那又如何呢?所有这些如何有助于回答可计算性问题?似乎图灵机确实很好地理解了这一点,并且有诸如P​​DA,DFA / NFA / Regexes等之类的“较少”计算模型。但是,如果人们不知道FA,它们会丢失什么呢?

因此,尽管我在某种程度上“明白了”,但我无法对自己回答这个问题?您如何最好地解释“为什么要学习D / N-FA”?他们想回答什么问题?它有什么帮助?为什么它是自动机理论中教授的第一件事?

PS:我知道可以如此实现的各种字典应用程序和模式匹配器。但是,我不希望知道它可以实际使用什么,但是在学习计算理论的高潮中,他们为什么要使用/发明/设计的原因是什么。从历史上讲,是什么促使人们从这一点开始的?它应该导致什么“啊哈”理解?如果要向刚开始学习自动机理论的CS学生解释他们的重要性,您将如何做?


10
那么,这是TCS中研究水平的问题吗?
亨德里克2012年1

13
与其说是研究问题,还不如是要求对一个主题有一个大的视角。我们在这里有许多这样的问题。如果您想进一步讨论此类问题的适当性,建议您不要在评论中进行辩论,而是鼓励您在meta上发布问题。
Suresh Venkat 2012年

6
博士:您的问题给出了很好的答案,所以我感谢您。您的陈述是诚实的,我无意取消您或您的问题的资格。实际上,这与我的评论所建议的是相反的:我已经看到其他一些问题,使用常见问题解答中的引号就很容易将其驳回。您是对的Suresh:这不是开始辩论的地方。抱歉。
亨德里克2012年1

1
@HendrikJan-哦,不用担心!文字隐藏音调。我从来没有那样说过。我以为你在问我这是否是我的研究问题。
博士

16
我在公共论坛上很少遇到过这样文明的人,对博士学位和Hendrik表示敬意。
卢卡斯

Answers:


342

我个人喜欢几个啊哈!学习基本自动机理论的片刻。NFA和DFA构成了整个理论计算机科学的缩影。

  1. 非确定性会导致效率吗?在标准示例中,一种语言的最小确定性自动机比最小的不确定性自动机成指数增长。了解图灵机的这种差异是(理论上)计算机科学的核心。我知道NFA和DFA提供了最简单的示例,您可以在其中明确看到确定性和非确定性之间的严格差距。
  2. 可计算性!=复杂性。的NFA和DFA的都代表正规语言,并在相当的东西,他们计算。他们在不同的如何,他们计算。
  3. 机器优化语言。这与我们计算的内容和计算方式不同。您可以将可计算语言(和函数)视为定义自动机的等价类。这是TCS的一个基本的视角变化,我们不仅关注什么,还关注计算的方式,并在设计算法时尝试选择正确的“方式”,或者在研究复杂性类别时理解不同方式的空间。
  4. 规范表示法的价值。DFA是允许规范表示的数据结构的典型示例。每种常规语言都具有唯一的最小DFA。这意味着在给定的DFA最少的情况下,重要的操作(如语言包含,补充和检查单词的接受程度)变得微不足道。在开发算法时,设计和利用规范表示是一个有用的技巧。
  5. 规范表示的缺失。没有公认的正则表达式或NFA规范表示。因此,尽管有上述几点,规范表示并不总是存在。您将在计算机科学的许多不同领域看到这一点。(例如,命题逻辑公式也没有规范表示,而ROBDD却有)。
  6. 规范表示的成本。您甚至可以将NFA和DFA之间的区别理解为算法上的免费午餐定理。如果我们要检查NFA之间的语言包含或补充NFA,则可以确定并最小化它,然后从那里继续。但是,这种“减少”操作是有代价的。您将在计算机科学的其他多个领域中看到规范化的示例。
  7. 无限!=不确定。一个普遍的误解是无限性的问题本质上是无法确定的。常规语言包含无限多个字符串,但具有几个可确定的属性。常规语言的理论向您展示了无限本身并不是不确定性的根源。
  8. 在自动机的掌中握住Infinity。您可以仅将有限自动机视为表示无限集的数据结构。ROBDD是用于表示布尔函数的数据结构,您可以将其理解为表示有限集。有限自动机是ROBDD的自然的,无限的扩展。
  9. 卑微的处理器。现代处理器具有很多功能,但是您可以将其理解为有限自动机。正是这种认识使计算机体系结构和处理器设计对我而言就不那么令人恐惧了。它还表明,实际上,如果您精心构造和操纵状态,那么有限自动机将带给您很大的帮助。
  10. 代数观点。常规语言构成句法半形词,可以从该角度进行研究。更笼统地说,您可以在以后的研究中提出,对应于某些计算问题的正确的代数结构是什么。
  11. 组合视角。有限自动机是带标签的图。检查单词是否被接受减少了在标记图中找到路径的过程。自动机算法相当于图形转换。理解常规语言的各个子族的自动机的结构是一个活跃的研究领域。
  12. 代数-语言-组合爱三角。Myhill-Nerode定理使您可以从一种语言开始,并生成自动机或句法半形体。在数学上,我们获得了非常不同类型的数学对象之间的转换。牢记此类翻译并在计算机科学的其他领域中寻找它们,并根据您的应用在它们之间移动是很有用的。
  13. 数学是大图片的语言。常规语言的特征在于NFA(图形),正则表达式(形式语法),只读图灵机(机器),句法半形体(代数),Kleene代数(代数),一元二阶逻辑等。现象是,重要的,持久的概念具有许多不同的数学特征,每个特征都为我们对该概念的理解带来了不同的风味。
  14. 适用于数学家的引理。Pumping Lemma是一个理论工具的很好的例子,您可以利用它来解决不同的问题。与Lemmas一起工作是尝试在现有结果的基础上进行的良好实践。
  15. 必要!=足够。Myhill-Nerode定理为您使语言正常化提供了必要和充分的条件。抽水引力为我们提供了必要的条件。比较两者并在不同情况下使用它们有助于我理解数学实践中必要条件和充分条件之间的区别。我还了解到,可重复使用的必要和充分条件是一种奢侈。
  16. 编程语言视角。正则表达式是一种简单而美观的编程语言示例。在串联中,您具有顺序组成的类似物,在Kleene star中,您具有迭代的类似物。在定义正则表达式的语法和语义时,通过查看归纳定义和组成语义,您可以朝编程语言理论的方向迈出一步。
  17. 编译器透视图。从正则表达式到有限自动机的转换也是一种简单的理论编译器。您可以看到解析,中间代码生成和编译器优化之间的差异,这是因为在读取正则表达式,生成自动机以及然后最小化/确定自动机方面存在差异。
  18. 迭代的力量。在看到您可以在带有循环而没有一个循环的有限自动机中可以做什么时,您会体会到迭代的强大功能。这可以帮助理解电路和机器之间,经典逻辑和定点逻辑之间的差异。
  19. 代数和Coalgebra。常规语言形成句法半形体,它是代数结构。有限自动机形成了范畴论的语言,称为合子。在确定性自动机的情况下,我们可以轻松地在代数表示形式和合并代数表示形式之间移动,但是对于NFA,这并不是那么容易。
  20. 算术观点。计算与数论之间有着深厚的联系。您可以选择将其理解为关于数论力量和/或计算普遍性的陈述。您通常知道有限自动机可以识别偶数个符号,并且它们的计数不能足够匹配括号。但是他们有多少算术能力?有限自动机可以决定Presburger算术公式。我知道的关于Presburger算术的最简单的决策程序将公式简化为自动机。这是您可以一窥希尔伯特第10个问题的一瞥,它的解决导致发现了Diophantine方程和Turing机器之间的联系。
  21. 逻辑视角。可以从纯粹的逻辑角度理解计算。有限自动机的特征是对有限字的微弱二阶逻辑。这是我最喜欢的,不重要的计算设备逻辑特征示例。描述性复杂性理论表明,许多复杂性类也具有纯粹的逻辑特征。
  22. 有限的自动机隐藏在您从未想过的地方。 (马丁·贝格(Martin Berger)评论与编码理论的联系的提示)准晶体的发现获得了2011年诺贝尔化学奖。准晶体后面的数学连接到非周期性平铺。飞机的一种特定的非周期性平铺称为车轮平铺,它由风筝形状和领结形状组成。您可以将这些形状编码为0和1,然后研究这些序列的属性,这些序列编码模式的序列。实际上,如果将0映射到01并将1映射到0,并将此映射重复应用于数字0,则将得到0、01、010、01001等。请注意,这些字符串的长度遵循斐波那契数列。以这种方式生成的单词称为斐波那契单词。在彭罗斯(Penrose)拼贴中观察到的某些形状序列可以编码为斐波那契单词。已经从自动机理论的角度研究了此类单词,并猜测什么,有限自动机可以接受某些单词家族,甚至为标准算法(例如Hopcroft的最小化算法)提供了最坏情况行为的示例。请告诉我你头晕。

我可以继续。(并且继续。)*我发现将自动机放在脑后,不时地回想一下它们,以了解新概念或获得有关高级数学思想的直觉非常有用。我怀疑我上面提到的所有内容是否可以在课程的前几节课甚至第一门课程中进行传达。这些是基于在自动机理论课程的初始授课中进行的初始投资而获得的长期奖励。

为了解决您的头衔:我并不总是寻求启发,但是当我这样做时,我更喜欢有限自动机。保持口渴,我的朋友。


27
漂亮的清单。我想补充一点,自动机是Schuetzenberger率先提出的有关编码理论的有趣观点。此外,现代并发理论和过程理论是对自动机理论的概括,其中自动机可以并行组成并同步其动作。
Martin Berger

6
哇。(最后一句+ 0.5。:-)
LarsH 2012年

6
刚加入TCS.SE就是为了对此+1。
Tynam

5
尽管几乎了解此列表中的所有内容,但我还是以某种方式对阅读它感到有启发。(此外,(等等)*让我发笑。)
CA McCann

2
老实说,我从未考虑过大多数此类内容(以及一些我从未听说过的定理),而且我确实参加了计算理论课程。是否必须要有一位特别优秀的老师或课程来指出这些启示?
肯·布鲁姆

33

研究N / DFA有很多良好的理论理由。立即想到的两个是:

  1. 图灵机(我们认为)捕获了所有可计算的东西。但是,我们可以问:图灵机的哪些部分是“必需的”?当您以各种方式限制图灵机时会发生什么?DFA是一个非常严格且自然的限制(占用内存)。PDA的限制并不那么严格,等等。从理论上讲,了解给您的内存是什么,当您没有它时会发生什么。在我看来,这是一个非常自然和基本的问题。

  2. 图灵机需要无限的磁带。我们的宇宙是有限的,因此从某种意义上讲,每个计算设备都是DFA。似乎是一个重要且又自然的研究主题。

当真正有趣的事情是他的完备定理时,问一个人为什么应该学习DFA类似于问一个为什么要学习Godel的完备定理。

它们是自动机理论中的第一个主题的原因是因为从较不复杂的模式构建更复杂的模式是很自然的。


2
#1很有道理,我想我明白了原因。但是,您将如何解释FA继续前进的原因?那些对ToC有所了解的人可以回顾和思考。如何最好地向开始学习自动机理论并且只知道FA的学生解释“为什么”?我们只是说我们是从一台机器开始的,因为它们是基本的-为什么?如何最好地回答“那”的原因?回答这个问题时,希望对ToC的总体知识有所帮助:)
博士

2
“向前”的论点来自这样一个事实(如Sariel所述),状态机可能是计算设备中最基本的。您处于一种状态:发生了某些事情,然后您进入了一个新状态。请注意,马尔可夫链(在机器学习中非常重要)只是概率性FSM。
Suresh Venkat 2012年

31

为其余的答案再加上一个视角:因为与图灵机相比,您实际上可以使用有限的自动机来完成任务。

图灵机几乎所有有趣的特性都无法确定。相反,对于有限自动机,几乎所有事物都是可判定的。语言平等,包容,空虚和普遍性都是可以决定的。与有限自动机相结合,几乎可以想到的每一个操作都是封闭的,而且这些操作都是可计算的,因此您几乎可以完成有限自动机想要做的任何事情。

这意味着,如果您可以使用有限自动机捕获某些内容,则会自动获得许多工具来对其进行分析。例如,在软件测试中,可以将系统及其规格建模为有限自动机。然后,您可以自动测试系统是否正确实施了规范。

因此,图灵机和有限自动机可以教给人们一种有趣而无处不在的对比:更多的描述能力与更少的可处理性并存。有限的自动机不能描述太多,但是我们至少可以对它们进行处理。


2
“ ...实际上,与图灵机相比,您可以用有限的自动机来完成任务。” 理解pt,但是从上下文中
删除

27

州。您需要了解一个人可以将世界(针对某些问题)建模为有限的状态空间,并且可以考虑在这种设置下的计算。这是一个简单的见解,但是如果您进行任何编程,则非常有用-您会一次又一次地遇到状态,FA会为您提供一种思考状态的方式。我认为这是教授完整课程的充分借口。当然,状态可以是确定性的或不确定性的。因此是DFA和NFA,但您可以在它们之间进行转换等。

要学习的第二件事是停止定理。这与戈德尔不完备定理有关。(您无法构建能够计算所有内容的机器,并且存在无法证明或无法证明的数学主张,因此需要将其视为公理。也就是说,我们生活在一个没有有限描述或真实存在的世界中甲骨文-对我们来说是!)

现在,我在数学系读了本科,然后就习惯了这样的想法:学习东西,却不知道为什么要学习(群论,测度论,集合论,希尔伯特空间等,等等,等等[都是好东西,BTW])。关于学习如何学习,有话要说-下次您必须学习一些怪异的数学(因为您需要使用它来在现实世界中做一些事情),看起来步履蹒跚。具体来说,要学习的第三件事是数学成熟度-能够对事物进行认真辩论,知道何时证明正确或不正确,写下证明等。如果已经有了,这门课程很容易,而且您也不会在乎您为什么要学习它。

除此之外,与其他所有课程一样,该课程完全浪费您的时间。具体来说,您可以在不了解这些知识的情况下过上幸福的生活。但这在所有知识上都是真实的。或多或少。对我来说,如果您对世界学习后的看法有所不同,那么大学课程是值得的。这绝对是改变我对世界的看法的课程之一。你还想问什么?


21

尽管这并不是最初研究它们的原因,但是有限自动机和它们所识别的常规语言非常易于处理,因此已被用作更复杂的数学理论的基础。在这种情况下,尤其要注意自动组(其中组可以用常规语言的字符串表示元素,并且组生成器的元素乘积可以通过有限状态换能器计算的组)和自变子移位(移位空间的子移位,禁止的单词构成一种常规语言)。因此,即使您对纯数学而不是计算机科学感兴趣,也有研究它们的理由。

有限自动机也已用于其他类型对象的算法设计中。例如,用于测试一维细胞自动机是否可逆的Culik算法涉及构造,修改和测试某些NFA的属性。Natarajan1986年发表的FOCS论文展示了如何通过将其简化为关于有限自动机的计算来解决机械装配线设计中的某个问题。


18

您在问(至少)两个不同的问题:(a)如今,理论的哪些部分基于有限自动机?(b)为什么首先要开发有限自动机?我认为解决后者的最好方法是查看旧报纸,例如:

这是前两段:

图灵机被广泛认为是数字计算机的抽象原型。但是,该领域的工作人员越来越感到图灵机的概念过于笼统,无法用作实际计算机的精确模型。众所周知,即使对于简单的计算,也不可能对图灵机进行任何给定的计算所需的磁带数量给出先验上限。正是这一功能使图灵的概念变得不切实际。

在最近几年中,有限自动机的思想出现在文献中。这些机器仅具有有限数量的内部状态,可用于存储和计算。有限性的限制似乎可以更好地近似物理机器的概念。当然,这样的机器不能像图灵机那样做,但是能够计算任意的通用递归函数的优点是可疑的,因为在实际应用中很少有这些函数。

简而言之,它们被开发为具有有限资源的真实计算机的模型。


16

另一个原因是它们是相对实用的理论模型。除了无限磁带的可能性之外,图灵机对于计算机编程的感觉来说有点尴尬(请注意,这并不是一个很好的类比!)。但是,从PDA / DFA设计通常可以很容易地转换为实际程序的意义上讲,PDA和DFA非常适合作为实际程序的模型。例如,编译器设计广泛使用它们。因此,在理论与实践之间的这种联系点上,我们掌握了如何将它们联系在一起以及我们可以做什么和不能做什么。


10

在此处查看“ Living Binary Adder”游戏:http : //courstltc.blogspot.com/2012/12/living-binary-adder-game.html 我曾经在有关DFA /的早期章节中向我的学生介绍了该游戏NFA。它说明了自动机理论中的两个重要方面:

  1. 如何将一个心理过程转变为一个简单的机械过程
  2. 抽象到底意味着什么。就像上面的C和Z状态一样,两个状态可以是任何状态:计算机中的晶体管,液压机构或两个人类玩家!

这有时会给我的学生带来“阿哈”时刻。


9

DFA的概念对于设计针对多种类型问题的有效解决方案非常有用。网络就是一个例子。每个协议都可以实现为状态机。以这种方式实施解决方案可使代码变得越来越简单,意味着更低的缺陷率。这也意味着对代码的更改更容易且影响更小,缺陷率也更低。

某些人发现很难将网络协议视为状态机,但是可以做出跳跃的人发现它在努力回报方面非常有益。


听起来很吸引人,但您能解释一下吗?它很难想象一个网络协议作为状态机。谢谢。
hkoosha 2015年

3

实际上,我的学生有时会问这个问题-在将一学期的大部分时间花在有限的自动机上并最终到达图灵机之后。如果有更强大的形式主义,为什么要花那么多时间?因此,我解释了表达能力与分析复杂性之间的固有权衡。较丰富的模型通常更难分析。DFA与TM的二分法非常极端,因为成员资格问题对一个人来说微不足道,而对另一个而言则无可争议。另一个不太极端的例子是DFA与PDA。后者的成员资格问题可以有效解决,但解决方案并非微不足道。我们在数学和科学的许多分支中都看到了这种现象:研究一个简单的模型以获得尽可能完整的理解,这通常也会导致对更复杂的模型的见解。


-4

我看到几个答案称FM比图灵机“小”。

我在研究生课程中主要关注的是它们的等效性,而不是区别。对于我们研究的每个FSM模型,我们都必须证明它们与Turing Machines等效。这是通过在FSM中实现图灵机来完成的。在IIRC中,我们还研究了其他一些无法实现TM的计算模型,但我忘记了它们是什么。关键是,如果可以实现TM,则可以给模型运行任何TM程序,只要有足够大的磁带模拟用于运行问题。

这个问题的答案的重点是:TM是基本的可计算性模型,但是在构建有用的机器时不是很实用。因此,FSM模型。

当大约在同一时间(1984年),我发现FORTH语言时,这才回到我的内心。它的执行引擎完全基于Dual Stack PDA的实现。更深入地讲,我喜欢表达式编译器下的相同引擎

尽管对我而言,FSM的真正影响是发现了18岁时Trakhtenbrot和Korzynski(?)撰写的“有限自动机理论”一书,这一发现从根本上给了我职业生涯。


1
我假设尽管您没有证明非确定性有限自动机和图灵机之间的等效性。OP就是问这个特定的对象,而我们其他人都称其为“小”。
维杰D

2
FA与FSM不同。
Suresh Venkat 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.