通过机器并将其描述为暂停问题的输入是什么意思?

时间:2018-11-09 13:26:45

标签: automata turing-machines computability

为证明暂停问题,为什么我们必须将机器及其描述作为输入传递?

例如,我本可以通过对机器的描述以及其他一些输入(而不是机器本身),但仍然可以通过矛盾的证据进行验证。

例如,如果a停在“ b”上,则说H(a,b)给出答案“是”,否则给出“否”。

现在,我们创建另一台机器“ H *”,它与H的作用相反。

H停止表示H *进入无限循环,而H不停止表示H *停止。

现在而不是传递H(H *,H *);如果我通过了H(H *,X),那么这意味着如果H *没有在X上停止,H *将会停止,反之亦然(但这仍然是矛盾的证明)。

我不一定会看到传递H(H *,H *)而不是仅仅为某些X传递H(H *,X)的想法。在后一种情况下,证明不起作用吗?

1 个答案:

答案 0 :(得分:1)

  

例如,如果a停在“ b”上,则说H(a,b)给出答案“是”,否则给出“否”。

     

现在,我们创建另一台机器“ H *”,其功能与H的相反。

问题在于这并不总是可能的。正如停顿问题所显示的那样,递归可枚举的语言在补码中不是封闭的。因此,对于它们的某些补码,不存在这样的H *,例如对于停止问题。

构建H *的问题是检测H何时进入无限循环。没有算法可以做到这一点。但是,H *原则上可以存在;但是停顿问题只是集合的一个例子,可以证明它不存在枚举TM。

如果该类在补数下关闭,则您的论点可能会通过。

相关问题