递归在可计算性理论中的重要性


Answers:


20

在1920年代和1930年代,人们试图弄清楚“有效地计算功能”是什么意思(请记住,周围没有通用的计算机,而计算是人为完成的)。

提出了“可计算”的几个定义,其中三个最为人所知:

  1. 该演算λ
  2. 递归函数
  3. 图灵机

事实证明,这些定义了同一类的数论函数。由于递归函数比Turing机器更旧,并且甚至没有立即接受甚至更老的 -calculus作为可计算性的适当概念,因此形容词“递归”被广泛使用(递归函数,递归集,递归可枚举集等)。λ

后来,有一项由Robert Soare推广的努力,将“递归”更改为“可计算”。因此,如今我们谈论可计算的功能和可计算的集合。但是,许多较旧的教科书和许多人仍然喜欢“递归”术语。

历史这么多。从纯数学的角度来看,我们还可以问递归对于计算是否重要?答案是非常明确的“是!”。递归是通用编程语言的基础(即使while循环也while p do c与相同,所以循环只是递归的一种形式if p then (c; while p do c)),并且许多基本数据结构(如列表和树)都是递归的。在计算机科学中,特别是在可计算性理论中,递归是不可避免的。


1

可计算性理论是对可计算函数的研究:-)。

此类功能通常(在该社区中)定义为可以用图灵机表达的功能。

更正式地讲,函数如果存在图灵,则是可计算的,因此,如果的输入为,则的输出为f:NNTTx=1nT1f(x).

事实证明,如果您以这种方式定义可计算函数(程序),它们等同于可以使用此处描述的规则获得的一组函数 。它们被称为递归函数,因为获得此类函数的规则之一是递归定义(请参阅Wikipedia的第5条规则)。

因此,递归理论如此重要的原因等同于为什么可计算函数如此重要的问题。后者的答案应该很明显:)

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.