Skip to content

部分可计算函数

Partial computable function

允许机器在函数未定义的输入上不停机的部分函数。

条目类型
定义

形式陈述

部分函数 f:ΣΣ 称部分可计算,若存在图灵机:当 xdom(f) 时停机并输出 f(x);当 xdom(f) 时允许永不停止。其定义域必为可识别语言;反之,每个可识别语言都是某个部分可计算函数的定义域。全定义的部分可计算函数正是可计算函数。程序的操作语义通常自然给出从输入到输出的部分函数。

直觉

部分可计算函数允许算法在定义域之外永不返回,这精确表达了搜索式计算:找到见证时输出,找不到时可能无限继续。发散不是普通错误码,而是“没有结果”的计算行为;它把“未定义”与“返回某个特殊错误值”严格区分,后者仍是一个全函数值,前者则对应没有终止计算。因此,部分可计算性能够刻画可能不停机的真实程序,而不必为每个输入伪造输出;许多自然程序首先以这种形式出现,再通过额外证明确认它在目标输入域上总停机。

例子与边界

f(P,x) 在程序 P 对输入 x 停机时返回其输出,否则未定义;这是通用模拟给出的部分可计算函数,但其定义域就是停机语言,不可判定。若机器在域外明确拒绝并停机,则仍计算一个全函数(例如带错误标记的结果),不是靠发散定义的部分函数。部分可计算函数相等要求定义域相同且域内输出相同;仅在共同终止输入上一致不够。

定义 φ(M,w):模拟 M(w),若停机则输出其步数,否则不定义。该函数可由通用模拟器部分计算,但若能把它扩成一个同时正确判断“不定义”的全可计算过程,就会判定停机问题。最小化算子也常产生部分函数:搜索最小 y 使谓词 R(x,y) 成立,若不存在这样的 y,搜索不终止。

不要把部分可计算误解为“机器可能随机失败”或“实现有 bug”。定义域本身是数学对象,且在定义域内必须给出确定的正确值;多值关系和概率输出属于其他模型。

推论与应用

部分可计算性是递归可枚举集、通用程序与不可判定性的统一语言。可接受编号把这些偏函数排成可被通用解释器处理的有效序列,而$s$-$m$-$n$ 定理在索引层完成参数固化;两者不改变函数可能发散的语义。可识别语言可由部分特征函数刻画——成员返回 1,非成员允许不停止——因此部分可计算性正是递归可枚举现象的函数版本。

参考资料
  • Hartley Rogers Jr., Theory of Recursive Functions and Effective Computability, MIT Press, 1987,Chs. 1–14。
  • Robert I. Soare, Turing Computability: Theory and Applications, Springer, 2016,Chs. 1–5。
关系图谱15 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

暂未标注直接上位概念。

下位 / 直接特例