简而言之:Turing Machine可以对(无限指定)无限数据进行(无限指定)无限计算,并产生(无限指定)无限结果。基本思想是可以将这些无穷大定义为以数学上合适的方式定义的有限实体的极限。这是计算的数学语义学的基础。如果您考虑使用程序而不是图灵机,那么这些程序也可以包含(有限指定)无限的数据结构。最后,将制表函数fact
作为一种可能算法的情况作为程序或TM模型进行分析,并带有与无限对象的惰性求值的关系的提示。
还有更多细节
关于您的最后一个问题,TM不会根据任意数字进行计算,而是根据这些数字的符号表示形式(任意(无界)长字符串表示它们)。适当的模数编码,它们可以通过这些表示来比较或对这些数字进行算术运算是正确的。
但是最初的问题是关于无穷大在图灵机中的总体作用。
这个问题的一个常见答案是,图灵机永远不会处理无穷大。它们是有限定义的,并且它们的计算结果都是在有限的时间内在磁带的有限部分上计算的(因此,较大的有限磁带就足够了)。确实,TM的空间需求时间是无限的,这与无限不同。
因此,由TM计算的任何答案也可以由有限状态自动机(FSA)计算,这在某种程度上是查看列表的一种方式。困难在于某些输入大小(如果仅读取输入,几乎总是这样)会超过自动机的大小。但是,然后,我们可以使用更大的一个。因此,如果我们要考虑无限制的输入大小,则需要可以执行计算的FSA无限序列。实际上,我们可能需要比传统FSA复杂一些的有限状态机,因为可能要计算输出(而不是是/否的答案),但是有限状态传感器可能应该这样做。
因此,如果我们要研究的问题具有无限的实例集,例如计算GCD,或者只是对任意大小的整数使用算术,我们就会看到无限性通过后门回到我们身边,因为这种无限FSA套。
π
再一次,我们可以用有限机器的无限计算序列来代替它。但是我们在作弊吗?
从物理角度来看,这是我们可以做的最好的事情。我们仅知道如何至少根据当前的物理技术来制造有限的机器,在不久的将来,这在该问题上不会有太大的改变。
但是,从数学的角度来看,我们如何以一致且易于处理的方式处理这些无限性。
当您考虑可以无限协作地计算无穷答案集的FSA无限集时,您将无法任意执行。您需要一些保护措施以确保您所做的事情有意义。众所周知,您可以使用无穷大的常规集并实际上使用无穷大的单例集来构建任何集。因此,考虑自动机的任意无限并集而没有任何限制将无济于事。您甚至会考虑在同一组自动机中得出不一致的答案。
您真正想要的是定义一致性的概念。但这需要一些预防措施。让我们假设您使用无限的自动机序列来模拟回答是或否或不停止的TM。问题在于,FSA总是会停止回答,例如“是”或“否”。但是,如果您使用的FSA的大小实际上不足以容纳所选输入,那么它应该回答什么。对于FSA实际上终止TM计算的情况,保留“是”和“否”,并且将这些答案之一与未完成的计算一起使用只会导致混淆。您想要的答案是:“ 对不起,我太小了,我无法分辨。请和这个家庭中的大个子一起尝试 ”。换句话说,您想要答案,例如
溢出或不知道⊥
因此,您需要具有3种状态的自动机:接受,不接受和未定义。未定义状态可以视为代表自动机缺失部分的状态,该状态迫使计算停止。因此,当计算停止时,根据其停止的状态,您会得到答案yes,no或undefined。
现在,您看到您想要的是无限的自动机序列,它们是consistent。无论是和没有与一致的
不确定,但肯定不是一致没有。当两个自动机在相同输入上给出一致的答案时,它们就是一致的。
π3.14 ⊥ ⊥ ⊥ ⊥ 。。。3.1415 ⊥ ⊥ ⊥ ⊥ 。。。⊥ 。⊥ 5159 ⊥ ⊥ ⊥ ⊥ 。。。3.1416 ⊥ ⊥ ⊥ ⊥ 。。。3.1416 ⊥ ⊥ ⊥ ⊥ 。。。π
我将不进一步发展这些理论方面,基于Turing Machines,这有点尴尬。关键是这些概念导致了这样一个想法,即计算域(无论是数据还是机器)形成了诸如格子之类的数学结构,其中无限大的对象可以适当地定义为无限增加(即定义得越来越好)序列的极限。有限的对象。定义无限序列需要更多的设备和连续性的概念。从根本上讲,这就是达纳·斯科特(Dana Scott)的语义学理论所针对的,并且它对可计算性的概念给出了不同的看法。
然后,可以将图灵机或其他可以进行“无限计算”的形式设备定义为机器的有限逼近序列的界限,它们的定义越来越好。无论机器输入或输出的数据是什么,情况都是如此。
我读过的最简单的文档是达纳·斯科特(Dana Scott)的一组手写的讲义,通常被称为阿姆斯特丹讲义。但我无法在网上找到它。任何指向副本的指针(甚至是不完整的,因为我有一部分)都将受到欢迎。但是您可以查看Scott的其他早期出版物,例如
《计算数学理论纲要》。
回到问题的最初例子
这些近似概念适用于数据以及程序。该函数fact
是递归定义的,这意味着它是函数的最小不固定点,可用于计算的有限收敛近似序列fact
。越来越多的定义有限函数的序列收敛到一个无限实体,这就是您所谓的函数fact
。
fact
⊥
的确,如果考虑计算的基本TM模型,那么这种形式的无限数组是无法表达的。这并不意味着没有意义。一个图灵机可能还有第二盘磁带,应该用一些函数的列表值初始化fact
。只要该函数是可计算的,它就不会改变TM的计算能力,即只要该表可以用可以为相关函数计算所有自变量-值对的另一个TM的无限计算初始化。
但是实际上,您无法完成无限的计算。因此,正确的方法是延迟计算表,即仅在需要时才填充条目。正是通过记忆来完成,这是我为您先前的问题提供的答案,具有不同的根据。