是否有任何现有的问题都无法通过停止甲骨文解决?


11

我知道,如果可以使用暂停的预言机(或者,我认为等同于超计算),那么大多数问题都是微不足道的。但是,应用显示停止问题的参数对于Turing机器是不可能的,这也表明Turing + oracle无法决定Turing + oracle的停止问题。是否有任何实际的,实际的,通过停止先知无法解决的问题的示例?

注意:“甲骨文”是指标准图灵机的甲骨文,而不是具有甲骨文本身的TM。


2
这里 “任意不可判定”的问题,例如参见这里。我不了解“实用”示例(也与您选择的标题不匹配);什么对您而言具有“实用性”?
拉斐尔

那并不是为了回答这个问题而作的。我承认,下一级别的暂停问题仍然存在。
ike 2014年

此外,并非递归可枚举的所有语言都无法还原为HALT。例子包括有限的,空,二CFG的派生是否相同的语言,等等

Answers:


15

只需解决一个图灵度大于,这就是The Halting Oracle的度数。就算术层次而言,您希望问题高于。这样的问题(实施例其中是个部分可计算函数和是 -可计算的集合):0Σ10ϕnnWn={kNϕn(k) is defined}n

  • {nNφn terminates for finitely many inputs}是 -complete。Σ20
  • {nNφn is a total function}是完成。Π20
  • {nNWn is a computable set}是。Σ30

即使您拥有Oracle Halting,也无法解决所有这些问题。例如,考虑第二个示例,“总计吗?” 给定停止Oracle将如何帮助我们确定图灵机是否在每个输入上都由停止编码?φnnn


[2014-06-03添加]对于所有这一切的“实用”方面,请考虑以下问题:程序员编写了一个函数void charge_credit_card(int card_number, int amount),我们想知道该函数是否在所有输入上都终止。通常,不可能编写可以自动检查该编译器的编译器。而且,即使我们允许编译器向我们询问“ charge_credit_card给定输入时是否终止(k,m)?” 形式的问题,仍然是不可能的。


2
说“我不理解这个例子”,而没有解释使您感到困惑的是没有效果的。您是否阅读了我指向的相关维基百科页面?这些与您的问题直接相关,因此,您应该首先了解的是基本概念。
Andrej Bauer 2014年

1
@ike,这个例子显然有无限量的int。您是否真的需要我写东西BigInt或类似的东西,或者您会抱怨计算机内存有限?
Andrej Bauer

1
随你。我告诉你问题的答案是什么。如果您不想真诚地理解它,那么就不要问我们问题。
Andrej Bauer 2014年

2
一个实际的例子是,是对暂停的补充。这是 给定任意程序并输入到该程序,请确定该程序是否不停止。这个问题以及其他所有不可递归枚举的语言都不会减少为HALT。HALT¯{<M,w>:M doesn't halt on w}

1
@tAllan:您应该将其发布为答案。OP认为OP是“实用的”,这使我感到震惊,但您的榜样肯定比我的好。
Andrej Bauer 2014年
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.