L_d 问题是一个非常基本的不可判定问题,我们可以非常方便得将 L_d 问题规约到其他问题来证明其他问题的不可判定性。

L_d 的一般数学表达为:给定一个语言 L_d 满足: L_d=\{w_i \mid w_i \in L(TM_i)\}

判断 L_d 是否可决定 (decidable)。 w_i TM_i 分别指第 i 个字符串和第 i 个图灵机。换一句话说,判定一个图灵机是否可以停机接受它自己的编码。

为了证明 L_d 的不可判定性,我们这样思考:

我们假设 L_d 是可判定的,由于 L_d 一定是一个定义在 \{0, 1\} 上的语言,所以 L_d 一定是也是某一个图灵机的语言。我们假设这一个图灵机是第 j 个图灵机,即 L(TM_j) = L_d 。我们同时假设第 j 个字符串为 w_j ,这时,我们考虑,这个 w_j L_d 中吗?

如果 w_j \in L_d ,则 w_j \in L(TM_j) 。根据 L_d 的定义, w_j \not \in L(TM_j) ,所以 w_j \not \in L_d

如果 w_j \not \in L_d ,则 w_j \not \in L(TM_j) 。这时根据 L_d 的定义, w_j \in L_d)

综上所诉,不管 W_j 在不在 L_d 里面,这里都会出现矛盾。我们只能考虑我们的前提错了, L_d 不可判定



发现存在错别字或者事实错误?请麻烦您点击 这里 汇报。谢谢您!