证明我们可以决定图灵机是否对某些输入至少采取 100 步
Prove that we can decide whether a Turing machine takes at least 100 steps on some input
我们知道问题“这个图灵机是否对那个输入至少采取有限步数?”是可判定的,因为它总是回答yes 或 no,如果机器达到给定的步数,它会说 yes 并且 否 如果在此之前停止
现在这是我的疑问:如果它在到达那么多步骤之前停止 - 即输入 (1) 被接受或 (2) 被拒绝或者可能 (3) 如果它没有停止而是进入一个无限循环——那么,当我们遇到情况 (3) 时,我们如何确定它会一直处于该循环中?
我的意思是说,如果它不会永远 运行 而是在某个时间点退出循环,那么它可能会超过要求的步数,现在就可以做出决定,而这在以前是不可能的.如果是这样,那么当我们知道被困在一个循环中我们将无法对结果说任何话时,我们怎么能得出结论它是可判定的呢?
很可能是“条件结构不够debuged/developed,以至于多个条件经常相互冲突。错误报告不是确定的,所以它使用半抽象概念作为“可确定的”和“不可判定”
作为半示例,我几年前在 vbs 中写了一个“64 位 rom 内存”模拟器,因为我试图管理内存单元,其中 i/o read/write 位置归属,使用 manny设置从十进制到二进制的转换以及所有操作、索引等的公式和条件
我也 运行 遇到了错误,因为条件不是 perfect.Why?因为该程序有一些未解决的有点武断的结果,这些结果可能会在 :
print.debug "decidable"
On Error Resume h
h:
print.debug "undecidable"
这是一个范围明确且结果值得商榷的示例。
继续回答您的问题:>“那么我们如何得出结论它是可判定的??”
wikipedia :
The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). With this model, Turing was able to answer two questions in the negative:
Does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task)?
Does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol?
Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the ('decision problem').
(我在编辑的时候已经大致回答了你的问题。)
问题是,决策系统(图灵机、算法或任何其他等效形式)将图灵机 M、数字 N 和一个值 X,以及 returns yes 或 no,完全控制它如何在 X 上执行 M。它一步一步地模拟它。所以它可以 运行 M(X) 的一步,递增一个指令计数器,将它与 N 进行比较,并且一旦达到给定的步数,它停止并且returns 是。在这一点上,模拟机 M 不需要处于最终状态,实际上完整的计算 M(X) 可以很好发散。我们不关心,因为我们只 运行 前 N 步骤。
我们知道问题“这个图灵机是否对那个输入至少采取有限步数?”是可判定的,因为它总是回答yes 或 no,如果机器达到给定的步数,它会说 yes 并且 否 如果在此之前停止
现在这是我的疑问:如果它在到达那么多步骤之前停止 - 即输入 (1) 被接受或 (2) 被拒绝或者可能 (3) 如果它没有停止而是进入一个无限循环——那么,当我们遇到情况 (3) 时,我们如何确定它会一直处于该循环中? 我的意思是说,如果它不会永远 运行 而是在某个时间点退出循环,那么它可能会超过要求的步数,现在就可以做出决定,而这在以前是不可能的.如果是这样,那么当我们知道被困在一个循环中我们将无法对结果说任何话时,我们怎么能得出结论它是可判定的呢?
很可能是“条件结构不够debuged/developed,以至于多个条件经常相互冲突。错误报告不是确定的,所以它使用半抽象概念作为“可确定的”和“不可判定”
作为半示例,我几年前在 vbs 中写了一个“64 位 rom 内存”模拟器,因为我试图管理内存单元,其中 i/o read/write 位置归属,使用 manny设置从十进制到二进制的转换以及所有操作、索引等的公式和条件
我也 运行 遇到了错误,因为条件不是 perfect.Why?因为该程序有一些未解决的有点武断的结果,这些结果可能会在 :
print.debug "decidable"
On Error Resume h
h:
print.debug "undecidable"
这是一个范围明确且结果值得商榷的示例。
继续回答您的问题:>“那么我们如何得出结论它是可判定的??”
wikipedia : The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). With this model, Turing was able to answer two questions in the negative:
Does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task)?
Does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol?
Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the ('decision problem').
(我在编辑的时候已经大致回答了你的问题。)
问题是,决策系统(图灵机、算法或任何其他等效形式)将图灵机 M、数字 N 和一个值 X,以及 returns yes 或 no,完全控制它如何在 X 上执行 M。它一步一步地模拟它。所以它可以 运行 M(X) 的一步,递增一个指令计数器,将它与 N 进行比较,并且一旦达到给定的步数,它停止并且returns 是。在这一点上,模拟机 M 不需要处于最终状态,实际上完整的计算 M(X) 可以很好发散。我们不关心,因为我们只 运行 前 N 步骤。