如何知道图灵机是否是一个决策者?

时间:2016-10-30 05:40:05

标签: turing-machines

有一种简单的方法可以解决这个问题吗?我可以通过查看图灵机的图表找到它是否是一个决策者?

3 个答案:

答案 0 :(得分:2)

决策程序是停止所有输入的计算机。 There is no general way to prove whether a given machine halts on all inputs

如果您有特定的计算机,您可以尝试正式证明所有执行路径都停止。例如,如果机器的读头总是在每次转换时向右移动(从不离开),并且在没有更多输入时停止,则对于所有有限输入,机器将停止。一个更简单的例子是只有一个状态的机器:停止。

答案 1 :(得分:0)

TM决定语言L iff 1-字符串L将M置于接受状态 2-字符串NOT IN L将M置于拒绝状态

TM M识别语言L iff 1-字符串L将M置于接受状态 2-字符串NOT IN L.    - 使M进入拒绝状态    - 或导致M循环

@Wanhui乔 你说的是“两个国家之间的TM变化,两个州既不接受也不拒绝国家,这个图灵是否可以判定?” 然后它肯定是无限的,即它进入循环,这是图灵可识别。

答案 2 :(得分:0)

你可以证明一般

DECIDER_tm = { <M> : TM M is a decider } is undecidable.

通过矛盾证明。假设它是可判定的,让R成为DECIDER_tm的决策者。

使用S作为子例程,为HALT_tm构建R决策程序。

S = on input <M,w>
1. construct M_w = " on input x" 
    run M on w
    if M accepts accept. if M rejects reject.
2. Run R on M_w
3. If R accept => accept, if R rejects => reject.

请注意,如果M接受或拒绝wM_w会暂停所有输入,R会接受,因为M_w是决策者。如果Mw循环,M_w在所有输入上循环,R拒绝M_w

我们为HALT_tm建立了一个决策者,因为我们知道HALT_tm是不可判定的,我们的假设是错误的=&gt; DECIDER_tm是不可判定的。