在
可计算性理论中,可计算函数(computable function)或
图灵可计算函数是研究的基本对象。它们使我们直觉上的算法概念更加精确。使用可计算函数来讨论可计算性而不提及任何具体的计算模型,如图灵机或寄存器机。但是它们的定义必须提及某种特殊的计算模型。
定义
计算函数是在
自然数上的有限偏函数。每个可计算函数接受固定数目个自然数作为参数;不同的函数接受不同数目的参数。因为函数是部分的,它们可以不定义在所有可能的输入选择上。如果定义了一个可计算函数,则它返回一个单一自然数作为输出(这个输出可以被解释为使用
配对函数的一列数)。记号指示偏函数被定义在参数上,而记号指示被定义在参数上而返回的值是y。这些函数也叫做偏递归函数。在可计算理论中,函数的
定义域是函数被定义在其上的所有输入的集合。
定义在所有参数上的函数叫做全函数。如果可计算函数是全函数,它叫做全可计算函数或全递归函数。
有很多等价方式定义可计算函数的类。为了具体,本文余下部分将假定可计算函数已经被定义可以被
图灵机计算的那些偏函数。有很多计算的等价模型定义同一类可计算函数。这些计算模型包括
等等。
可计算集合
自然数的集合A被叫做可计算的(同义词:递归的,可决定的),如果有可计算函数f使得对于每个自然数n,如果n在A中,并且如果n不在A中。
自然数的集合被叫做计算可枚举的(同义词:递归可枚举的,半可判定的),如果有可计算函数f使得对于每个自然数n,f(n)是有定义的,当且仅当n在这个集合中。所以一个集合是计算可枚举的,当且仅当它是某个可计算函数的定义域。使用词可枚举的因为对于自然数的非空子集B下列是等价的:
如果集合B是函数f的值域,则这个函数可以被看作B的枚举,因为列表f(0),f(1), ...将包含B的所有元素。
因为在自然数上的每个有限关系都可以被识别为对应的自然数的有限序列的集合,可计算关系和计算可枚举关系的概念可以从它们的集合类似物来定义。
形式语言
在计算机科学的
可计算性理论中,经常考虑
形式语言。它包括任意集合的一个字母表,在字母表上的字是来自字母表的符号的有限序列;同一个符号可以出现多于一次。例如,
二进制字符串精确的是在字母表上的字。语言是在固定字母表上的所有字的搜集的子集。例如,精确的包含三个字母的所有二进制字符串的搜集是在二进制字母表上的一个语言。
形式语言的一个关键性质是对判定一个给定字是否在这个语言中的难度级别。必须开发某种编码系统来允许可计算函数来接受在语言中的任意字作为输入;这通常是要认真处置的例程。一个语言被称为是可计算的(同义词:递归的,可判定的),如果存在一个可计算函数使得对于在字母表上的每个字w,如果这个字在这个语言中,并且如果这个字不在这个语言中。所以一个语言在有一个过程能正确的判定任意的字是否在这个语言中的情况下是可计算的。
一个语言是计算可枚举的(同义词:递归可枚举的,半可判定的),如果有可计算函数f使得是有定义的,当且仅当字w在这个语言中。术语可枚举同自然数的计算可枚举集合有同样的语源。
例子
如果f和g是可计算的,则:f + g,f * g, 如果f是一元的,max(f,g), min(f,g)和更多的组合都是可计算的。