【问题标题】:Prove that this language is undecidable证明这种语言是不可判定的
【发布时间】:2011-10-02 06:06:34
【问题描述】:

下面的语言L是不可判定的吗?

L = {M | M 是图灵机描述,存在一个长度为 k 的输入 x,使得 M 最多停止k 步}

我认为是,但我无法证明。我试图考虑减少停机问题。

【问题讨论】:

  • k 在这里是一个固定常数,对吧?
  • 没有。如果 k 是固定的,那么我认为是可以确定的
  • 如果这是一种幼稚的方法,请原谅我,但是 - 如果我想知道机器 X 是否停止(没有输入),我可以将它包含在另一台机器 Y 中,它会 忽略 输入?也就是说,如果您使用任何输入运行 Y,Y 将只运行 X,也许具有固定数量的开销步骤?如果是,那么当 Y 是 L 的成员时 X 停止,所以 L 是不可判定的。这是一种可行的方法吗?还是必须擦除输入或什么?
  • 你可以这样做。或者如果 Y 的输入是 X,则 Y 可以在 X 上运行,否则循环。这里的问题是 X 是未知的。

标签: turing-machines formal-languages


【解决方案1】:

评论:停机问题的一个实例询问车床 N 是否在输入 y 时停机。已知该问题是不可判定的(但半可判定的)。

您的语言L确实无法确定。这可以通过将停机问题减少到 L 来证明:

  1. 对于停机问题实例 (N, y),为 L 创建一个新机器 M问题。
  2. 在输入 x 上,M 模拟 (N, y) 的长度(x) 步骤。
  3. 如果模拟在该步数内停止,则 M 停止。否则,M 会故意进入无限循环。

这种减少是有效的,因为:

  • 如果 (N, y) 最终在 k 步中停止,则 M 将停止所有长度为 k 或更大的输入,因此 ML 中。
  • 否则 (N, y) 不会停止,那么 M 不会停止任何输入字符串,无论它有多长,因此 M 不在 L 中。

最后,停止问题是不可判定的,因此 L 是不可判定的。

【讨论】:

    猜你喜欢
    • 2017-08-26
    • 2012-02-19
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2019-05-13
    • 2013-12-08
    相关资源
    最近更新 更多