Tag: 有限自动机

图灵的完整性有多有用? neural network是否完整?

在阅读关于经常性neural network的图灵完备性的一些论文时(例如:用neural network的图灵计算能力,Hava T. Siegelmann和Eduardo D. Sontag,1991),我感觉到那里给出的证据并不是真的实际的。 例如,参考论文需要一个neural network,其神经元活动必须具有无限的精确性(以可靠地表示任何有理数)。 其他certificate需要无限大小的neural network。 显然,这不是那么实际。 但是现在我开始想知道是否完全有理由要求图灵的完整性。 严格的定义是,目前没有计算机系统是图灵完备的,因为它们都不能模拟无限大的磁带。 有趣的是,如果编程语言规范完成或者没有完成,那么编程语言规范就会将其最常开放。 这一切都归结为是否能够分配更多的内存以及函数调用堆栈大小是否无限。 大多数规范没有真正指定这个。 当然,这里所有可用的实现都是有限的,所以编程语言的所有实际实现都不是图灵完整的。 所以,你可以说,所有的计算机系统和有限状态机一样强大,而不是更多。 这就引出了一个问题: 图灵完全可以说有多有用? 回到neural network:对于neural network(包括我们自己的大脑)的任何实际实现,它们将不能表示无限数量的状态,即通过对图灵完备性的严格定义,它们不是图灵完备的。 那么问题是否neural network是图灵完全有意义呢? 问题是否像有限状态机一样强大已经早得多了(1954年由明斯基回答,当然答案是肯定的),似乎也更容易回答。 也就是说,至less在理论上,这已经certificate它们和任何一台计算机一样强大。 其他一些问题更多的是我真正想知道的: 有什么理论术语可以对计算机的计算能力做更具体的说明吗? (由于其有限的内存空间) 如何比较neural network的实际实现与计算机的计算能力? (图灵完备性如上所述是没有用的。)

非图灵完整语言的实用性?

几乎所有使用的编程语言都是图灵完成的 ,虽然这提供了表示任何可计算algorithm的语言,但它也带有一套自己的问题 。 看到我写的所有algorithm都是想停下来的,我希望能用一种能保证停止的语言来表示它们。 用于匹配string和有限状态机的 正则expression式在使用时会被使用,但是我想知道是否有一个更一般,广泛的语言不是图灵完整的? 编辑:我应该澄清,通过'通用'我不一定要能够写所有停止algorithm的语言(我不认为这样的语言会存在),但我怀疑有共同的线程在停止certificate,可以推广到产生一种语言,其中所有algorithm都保证停止。 还有另一种方法来解决这个问题 – 消除理论上无限的记忆的需要。 一旦限制了机器的内存容量,机器所处的状态数就是有限且可数的,因此可以确定algorithm是否会停止(不允许机器进入之前的状态)。

有没有一个典型的状态机实现模式?

我们需要在C中实现一个简单的状态机。 标准的switch语句是最好的方法吗? 我们有一个现状(州)和过渡的触发器。 switch(state) { case STATE_1: state = DoState1(transition); break; case STATE_2: state = DoState2(transition); break; } … DoState2(int transition) { // Do State Work … if(transition == FROM_STATE_2) { // New state when doing STATE 2 -> STATE 2 } if(transition == FROM_STATE_1) { // New State when moving STATE 1 -> STATE […]

正则expression式可以用来匹配嵌套模式吗?

是否可以编写一个正则expression式来匹配发生未知次数的嵌套模式? 例如,如果在外括号内嵌套了未知数量的打开/closures大括号,则正则expression式是否可以匹配打开和closures大括号? 例如: public MyMethod() { if (test) { // More { } } // More { } } // End 应该匹配: { if (test) { // More { } } // More { } }