L = {<m>:TM不接受任何东西}

时间:2018-01-27 11:11:01

标签: computation-theory turing-machines computation tableofcontents

L = { <M> : TM does not accept any thing }      

只要TM接受,我们就可以逐个向TM提供字符串。如果没有这样的字符串,那么这个过程将是无限的时间,所以我们无法决定。因此递归可枚举

P = { <M> : TM accept atleast one string }         

我们可以说它是半可判定的。只要能接受至少一个字符串,我们就可以逐个向TM提供字符串。但是这个过程可以无限时间,并且不能保证TM会停止,因此递归可枚举。
如果以上两个逻辑都是正确的那么L和P(两者都是相互补充的)可以同时递归枚举。

If L and P are complement to each other and both are Recursive Enumerable then L must be Recursive. 
我错在哪里?

2 个答案:

答案 0 :(得分:1)

L是半可判定的,这是错误的。

如果我们小心地为其提供字符串,

P是半可判定的。请参阅以下伪代码

i <- 0;
while (true) {
    foreach x in combanitaions of alphabet, such that |x| <= i {           (\Sigma^*)
        if (Simulate M for up to i steps == Accept) {
            Accept;
        }
    }
    ++i
}

如果M接受至少一个字符串,我们会在某一天找到它,因此P(实际上NONEMPTY)是半可删除的。

NONEMPTY无法推断,可以从通用语言(Lu)可以看作可以归结为NONEMPTY

Lu = { <M,x> | x ∊ L(M) }

Lu <= NONEMPTY成立(可以在以后添加证明)。由于Lu不可扣除,NONEMPTY也无法推断。

因此,根据Post的定理,NONEMTPY(你的L)的补充,甚至不能半推导。

答案 1 :(得分:1)

简短回答:L不是RE。

要使它成为RE,你必须能够在有限时间内确定语言中的字符串/ TM IS。您确定的技术不符合此要求;它允许您确定字符串/ TM在有限时间内不是语言(通过查找TM将接受的输入),但因为TM不需要停止在不被接受的字符串上,所以它可能永远不会停止任何不接受的字符串。因此,它是共同RE,这就是为什么它的赞美是RE(“co”是“互补”的缩写)。

请注意,语言及其补语都可能是RE:该交集将是一种可判定的语言。