检查2种语言是图灵可识别还是共识图识别

时间:2017-05-22 21:46:24

标签: turing-machines decidable

我有这两种语言

A new Git repository has been created for you in C:\<path to your solution>
Commit ______ created locally in repository.

我相信这两个是不可判定的,但我不确定它们是图灵可识别还是共同图灵可识别。

1 个答案:

答案 0 :(得分:1)

B是Turing可识别的,因为我们可以在所有可能的输入磁带上交错M的执行。如果n的{​​{1}}个正在运行的实例中有M个停止接受,则停止接受。

我们知道A不能识别图灵,因为如果是,语言B' = {<N> | N is a TM and L(N) contains no more than n strings }将是图灵可识别的(我们可以将识别器的执行交错​​为1,2,... ,n和停止接受,如果其中任何一个做了)。这意味着BB'都是可判定的,因为B'必须是可识别的共同图像。

如果A是共同图灵可识别的,我们可以识别接受多个不同于n的字符串的机器。特别是,让n = 1。我们可以为TM构造的语言包含n字符串以外的机器运行识别器,以便为每个可能的字符串L(M) \ {w}接受w。在每个阶段,我们运行所有现有机器的一个步骤,然后构建一个新机器,并重复,从而交错执行并确保所有TM最终可以任意运行多个步骤。

假设|L(M)| = 1,其中一个TM将暂停接受(删除L(M)中唯一的字符串的那个),其余的将停止拒绝或永久运行。因此,|L(M)| != 1的识别器可用于构造|L(M)| = 1的识别器。这通过减去所有可能的|L(M)| != k输入字符串集来推广到|L(M)| = kk

因此,如果A是共同图灵可识别的,它也可以是图灵可识别的,因此是可判定的。我们已经知道这是错的,所以我们必须得出结论,A不是可识别的共同图灵;也不是图灵可识别的。