查看“︁判定器”︁的源代码
←
判定器
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
在[[可计算性理论]]中,'''总是停机的机器'''也叫做'''判定器'''({{lang|en|Sipser}},1996年)或'''全图灵机'''({{lang|en|Kozen}},1997年)是对所有输入总是停机的[[图灵机]]。 因为它总是停机,这个机器有能力判定给定字符串是否是一个[[形式语言]]的成员。可由这种机器判定的语言类精确的是[[递归语言]]的集合。但是由于[[停机问题]],判定任意[[图灵机]]是否在任意输入上停机的问题自身是[[不可判定性|不可判定]]的[[判定问题]](參見[[哥德爾不完備定理]])。 == 全图灵机可计算的函数 == 在实践中,很多有价值的函数都是用总是停机的机器可计算的。通过限制它的[[控制流|流控制]]能力就可以强制机器对所有输入都停机,使得没有程序可以导致机器进入[[無窮迴圈]]。作为平凡的例子,实现有限[[判定树]]的机器将总是停机。 不要求机器完全免除循环能力来保证停机。如果我们限制循环为有可预测的有限大小,我们可以表达所有[[原始递归函数]](Meyer and Ritchie, 1967)。Brainerd 和 Landweber (1974) 的玩具[[编程语言]] PL- {GOTO} 就是这种机器的一个例子。 我们可以进一步的定义能确保更复杂的函数总是停机的一个编程语言。例如,不是原始递归函数的[[阿克曼函数]],但它是通过带有在它的参数上的[[良序关系|简约排序]]的[[项重写]]系统可计算的全可计算函数(Ohlebusch, 2002, pp.67)。 == 与偏图灵机的关系 == 一般的图灵机可以计算偏函数。有关于偏图灵机和全图灵机之间关系的两个问题: # 所有用偏图灵机可计算的偏函数都可以被扩展(就是说扩大它的定义域)成为全可计算函数吗? # 有可能改变图灵机的定义使得特定类的全图灵机计算所有全可计算函数? 对这两个问题的答案都是否定的。 下列定义证明了对总是停机的机器是可计算的函数不包括所有偏可计算函数的扩展,这蕴涵了上述第一个问题有否定答案。这个问题密切关系于[[停机问题]]的算法上不可解。 :'''定理'''。有不能扩展成全图灵机可计算函数的图灵可计算偏函数。特别是偏函数 ''f'',它被定义得使 ''f''(''n'') = ''m'',当且仅当带有附标 ''n'' 的图灵机停机于输入 ''0'' 并输出 ''m'',它没有到全可计算函数的扩展。 反证法进行证明。如果 ''g'' 是扩展 ''f'' 的全可计算函数,则 ''g'' 将对某个图灵机是可计算的;固定 ''e'' 作为这样一个机器的附标。使用[[Kleene递归定理]]建造一个图灵机 ''M'',它在输入 ''0'' 上模拟运行在 ''M'' 的一个附标 ''n<sub>M</sub>'' 上的带有附标 ''e'' 的机器(因此机器 ''M'' 可以生成自身的一个附标;这是递归定理扮演的角色)。通过假定,这个模拟将最终返回一个答案。定义 ''M'' 使得如果 ''g''(''n<sub>M</sub>'') = ''m'' 则''M'' 的返回值是 ''m + 1''。因此 ''f''(''n<sub>M</sub>''),''M'' 在输入 ''0'' 上的真返回值将不等于 ''g''(''n<sub>M</sub>'')。这矛盾于 ''g'' 扩展 ''f'' 的假定。 第二个问题在本质上问是否有另一个合理的计算模型只计算全函数并计算所有全可计算函数。非形式的说,如果这种模型存在,则它的每个计算机都可以被一个图灵机模拟。因此如果这个新计算模型由一序列机器 <math>M_1,M_2,\ldots</math> 组成,则会有计算全函数的图灵机的[[递归可枚举]]序列 <math>T_1,\ldots T_2,\ldots</math>,因而所有全可计算函数都对机器 ''T<sub>i</sub>'' 之一是可计算的。这是不可能的,因为机器 <math>T</math> 可以被构造的使得在输入 ''i'' 上机器 ''T'' 返回 <math>T_i(i)+1\,</math>。那么 ''T'' 将是全机器,因为每个 ''T<sub>i</sub>'' 是全的,并且由 ''T'' 可计算的函数不能出现在列表中。这证明了第二个问题有否定的答案。 == 全图灵机的附标的集合 == 有附标 ''e'' 的图灵机是否在所有输入上停机的[[判定问题]]是不可判定的。事实上,这个问题位于[[算数阶层|算术层次]]的 <math>\Pi^0_2</math> 级别。因此这个问题严格的比[[停机问题]]更困难,它问有附标 ''e'' 的机器是否停机在输入 ''0'' 上。直觉的说,在不可解决性上的这个困难在于每个“全机器”问题的实例提出无限多个停机问题的实例。 == 引用 == * Brainerd, W.S., Landweber, L.H. (1974), ''Theory of Computation'', Wiley. * Meyer, A.R., Ritchie, D.M. (1967), ''The complexity of loop programs'', Proc. of the ACM National Meetings, 465. * Sipser, M. (1996), ''Introduction to the Theory of Computation'', PWS Publishing Co. * Kozen, D.C. (1997), ''Automata and Computability'', Springer. * Ohlebusch, E. (2002), ''Advanced Topics in Term Rewriting'', Springer. {{形式语言与形式文法}} [[Category:图灵机]]
该页面使用的模板:
Template:Lang
(
查看源代码
)
Template:形式语言与形式文法
(
查看源代码
)
返回
判定器
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息