解决停止问题实例的oracle调用次数的下限


9

我遇到了以下问题,这是一个简单的练习(如下所示)。

我们给了个有关停止问题的实例(即TMs),我们需要准确地确定其中哪个在上停止。也就是说,我们需要输出。我们为停止问题提供了一个先知,但我们必须使用它最少的次数。nM1,...,Mnϵ{i:Mi halts on ϵ}

不难证明可以通过调用来完成。log(n+1)

我的问题是:我们可以证明下界吗?是否有理由怀疑很难找到这种界限?

问题本身的答案(扰流板,悬停鼠标):

考虑 TM 的情况。我们可以构造一个并行运行的TM,如果其中至少两个停止,则停止(否则卡住)。类似地,我们可以构造一个TM,如果其中至少一个暂停,它会暂停。然后我们可以在上调用oracle 。如果停止,那么我们可以并行运行机器,然后等待其中一个停止。然后,我们可以在最后一个上调用oracle。如果oracle表示“ no”,那么我们在上运行oracle 。如果停止,那么我们将运行机器直到停止一秒钟,这是唯一停止的机器。如果不停止,则没有一个停止。将其扩展到台机器很容易。3H2M1,M2,M3H1H2H1H1n

关于此问题的第一个观察结果是,使用信息理论工具似乎无法解决,因为我们至关重要地依赖于通过不使用Oracle即可运行机器来获取信息的能力。


@Kaveh-正如尼尔·杨(Neal Young)所写,我们需要计算出确切的停机机器集。
Shaull 2013年

Answers:


11

结果可以在

  • Beigel,R.,Gasarch,WI,Gill,J.和Owings,J. Terse,上位和冗长集。通知。和计算。103(1993),第。1,68-85。

他们的证明实际上表明您的问题不能少于 log2n查询任何集合X,更不用说暂停问题了。对于某些表示法,有时会指出您的问题CnK 要么 CnHALT (取决于您最喜欢的暂停问题)。

对于此以及许多相关结果,另请参见:


10

编辑:我所回答的论点没有错,但是有点误导,因为它只表明上限对于某些 n (实际上是微不足道的,因为当 n=2 范围是1)。

这是一个更精确的论点。它表明,如果log2n 对于任何特定事物都松散 n,那么对于所有人 n 所需的oracle调用数为 O(1)

(当然不是 O(1),因此上限永远不会松动!但是我实际上并没有在这里证明这一点,并且给出了该问题的其他答案,这似乎不值得追求。)

考虑计算最大输出的问题:

给定一个 n-元组 (M1,,Mn) 的图灵机,计算最大输出(如果在 ϵ)。如果它们都不停止,则返回0。

根据 n,计算此函数所需的最坏情况的oracle调用次数与确定哪个 n给定机器停止。(如果知道哪些机器停止运行,则可以轻松地计算出最大输出。相反,如果我想知道哪些机器停止运行,则可以按照问题陈述中的构造来构造机器{Mi} (i=1,2,,n) 哪里 Mi 运行所有 n 给定并行的机器,然后停止并输出 i 如果 i他们曾经停下来。最大输出将告诉我停止的次数。据此,我可以准确计算出哪一个暂停。)

现在,让 n0 是最小的整数 n (如果有的话),以便满足以下条件:

使用 C(n)=max{kZ:2k<n} oracle调用,可以计算出的最大输出 n给定的机器。(也就是说,对于n

明显地 n0>1,因为 C(1)=1。事实上,n0>2 还有,因为 C(2)=0,但无法确定的最大输出 2给定的机器(没有oracle调用)。现在考虑更大n

索赔: 如果n0 那么,对于任何 n,可以计算出的最大输出 n 给定机器 C(n0)oracle调用。(请注意,如果n0 是有限的,那么 C(n0)=O(1)

证明。。我们通过归纳证明n。基本案例是nn0,根据定义 n0C

Q0 是给定的TM n0 图灵机,仅使用 C(n0) 调用oracle。

修复任何 n>n0。给予任何n 机器 M1,,Mn,计算最大输出,如下所示。

专注于第一 M1,,Mn0机器。考虑跑步Q0 在这些上 n0机器。注意Q0 使 C(n0) 到oracle的调用,并且只有 n=2C(n0)oracle对这些调用的可能响应。请注意,根据定义n=2C(n0)<n0。让oi 表示 i可能的回应。对于每个i=1,,n,建一台机器 Mi 模拟 Q0 在这些计算机上,如下所示:

TM值 Mi (输入时 ϵ):

  1. 模拟 Q0n0 机器 (M1,,Mn0),而不是调用oracle,而是假设oracle根据 oi
  2. 此模拟可能不会停止(例如,如果 oi 不是oracle实际返回的内容)。
  3. 如果模拟停止,则让 hi 成为最大输出 Q0 说会被给予。
  4. 燕尾全部 n0 机器 (M1,,Mn0)。如果其中之一曾经输出hi,停止并输出 hi

现在,按照给定的顺序 n 机器,替换第一个 n0 机器 M1,,Mn0 通过这些 n<n0 机器 M1,,Mn。返回通过按以下顺序递归计算得出的值n(n0n)<n机器。(请注意,递归之前不会调用oracle,因此只有在达到基本情况后才调用oracle。)

这就是为什么此计算正确的原因。为了i 这样 oi 是oracle的``正确''响应 Q0 查询 Mi 会暂停并给出原始的正确最大输出 n0机器。因此,最大输出n 机器 (M1,,Mn) 至少是 n0 机器 (M1,,Mn0)。另一方面,在第4步中,否Mi 可以提供大于最大输出的输出 (M1,,Mn0)。因此,最大输出n 机器 (M1,,Mn) 等于最大输出 n0他们替换的机器。优质教育

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.