可计算函数

在可计算性理论中，可计算函数（computable function）或图灵可计算函数是研究的基本对象。它们使我们直觉上的算法概念更加精确。使用可计算函数来讨论可计算性而不提及任何具体的计算模型，如图灵机或寄存器机。但是它们的定义必须提及某种特殊的计算模型。

在可计算函数的精确定义之前，数学家经常使用非正式术语可有效计算的。这个术语因此可以被认同为可计算函数。尽管这些函数被叫做有效的，它们可能极其困难。可行可计算性和计算复杂性研究可有效计算的函数。

依据邱奇-图灵论题，可计算函数精确的是使用给出无限数量的时间和存储空间的机器计算设备来计算的函数。等价的说，这个论题声称有算法的任何函数都是可计算的。

可以使用布盧姆公理来在可计算函数的集合上定义抽象计算复杂性理论。在计算复杂性理论中，确定一个可计算函数的复杂性的问题叫做功能性问题。

定义

计算函数是在自然数上的有限偏函数。每个可计算函数接受固定数目个自然数作为参数；不同的函数接受不同数目的参数。因为函数是部分的，它们可以不定义在所有可能的输入选择上。如果定义了一个可计算函数，则它返回一个单一自然数作为输出（这个输出可以被解释为使用配对函数的一列数）。记号指示偏函数被定义在参数上，而记号指示被定义在参数上而返回的值是。这些函数也叫做偏递归函数。在可计算理论中，函数的定义域是函数被定义在其上的所有输入的集合。

定义在所有参数上的函数叫做全函数。如果可计算函数是全函数，它叫做全可计算函数或全递归函数。

有很多等价方式定义可计算函数的类。为了具体，本文余下部分将假定可计算函数已经被定义可以被图灵机计算的那些偏函数。有很多计算的等价模型定义同一类可计算函数。这些计算模型包括
 图灵机
 Mu-递归函数
 Lambda演算
 Post机，也叫做标记系统
 寄存器机
等等。

可计算集合和关系

自然数的集合A被叫做可计算的（同义词：递归的，可决定的），如果有可计算函数f使得对于每个自然数n，如果n在A中，并且如果n不在A中。

自然数的集合被叫做计算可枚举的（同义词：递归可枚举的，半可判定的），如果有可计算函数f使得对于每个自然数n，f(n)是有定义的，当且仅当n在这个集合中。所以一个集合是计算可枚举的，当且仅当它是某个可计算函数的定义域。使用词可枚举的因为对于自然数的非空子集B下列是等价的：
 B是可计算函数的定义域。
 B是全可计算函数的值域。如果B是无限的则这个函数可以被假定为单射的。
如果集合B是函数f的值域，则这个函数可以被看作B的枚举，因为列表f(0), f(1), ...将包含B的所有元素。

因为在自然数上的每个有限关系都可以被识别为对应的自然数的有限序列的集合，可计算关系和计算可枚举关系的概念可以从它们的集合类似物来定义。

形式语言 
在计算机科学的可计算性理论中，经常考虑形式语言。它包括任意集合的一个字母表，在字母表上的字是来自字母表的符号的有限序列；同一个符号可以出现多于一次。例如，二进制字符串精确的是在字母表上的字。语言是在固定字母表上的所有字的搜集的子集。例如，精确的包含三个字母的所有二进制字符串的搜集是在二进制字母表上的一个语言。

形式语言的一个关键性质是对判定一个给定字是否在这个语言中的难度级别。必须开发某种编码系统来允许可计算函数来接受在语言中的任意字作为输入；这通常是要认真处置的例程。一个语言被称为是可计算的（同义词：递归的、可判定的），如果存在一个可计算函数使得对于在字母表上的每个字w，如果这个字在这个语言中，并且如果这个字不在这个语言中。所以一个语言在有一个过程能正确的判定任意的字是否在这个语言中的情况下是可计算的。

一个语言是计算可枚举的（同义词：递归可枚举的，半可判定的），如果有可计算函数f使得是有定义的，当且仅当字w在这个语言中。术语可枚举同自然数的计算可枚举集合有同样的语源。

例子

 常数函数f : Nk→ N, f(n1,...nk) := n。
 加法f : N2→ N, f(n1,n2) := n1 + n2。
 给出一个数的素因数列表。
 两个数的最大公约数。
 贝祖等式，线性的丢番图方程。

如果f和g是可计算的，则：f + g, f * g, 如果f是一元的，max(f,g), min(f,g)和更多的组合都是可计算的。

相關條目

 可計算數
 可定義數

 引用 

Enderton, H.B. Elements of recursion theory.  Handbook of Mathematical Logic (North-Holland 1977) pp. 527–566.

Rogers, H.  Theory of recursive functions and effective computation (McGraw-Hill 1967).

Turing, A. (1936), On Computable Numbers, With an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, Volume 42 (1936). Reprinted in M. Davis (ed.), The Undecidable'', Raven Press, Hewlett, NY, 1965.

递归论
計算理論
函数