本文主要是关于图灵可确定,不可确定问题和半确定问题等
本文中可判定或不可判定也翻译为可决定(确定),不可决定(确定),这里我统一用可判定与不可判定
预备知识
可数与不可数集合
可数集合
可数集合:一个集合 M M M称为可数的,当 M M M是空的,或者当有一个满射的函数 c : N → M c:\mathbb{N}\rightarrow M c:N→M存在
- 每一个可数集合的元素都可以被枚举出来
- 每一个有限集合都是可数的
- 对于一个可数的无限集合都存在一个双射函数 c : N → M c:\mathbb{N}\rightarrow M c:N→M
- 所有可数的无限集合和自然数集合 N \mathbb{N} N等势
可数集合举例:
- 有限字母集合 Σ \Sigma Σ所有构成的词的集合 Σ ∗ \Sigma^* Σ∗,例如: { 0 , 1 } ∗ \{0,1\}^* { 0,1}∗在卡农顺序下可以枚举为:
ϵ , 0 , 1 , 00 , 01 , 10 , 11 , 000 , 001 , 010 , 011 , 100 , 101 , . . . \epsilon,0,1,00,01,10,11,000,001,010,011,100,101,... ϵ,0,1,00,01,10,11,000,001,010,011,100,101,...
- 哥德尔数Gödelnummer的集合。因为Gödelnummer的词是关于字母集{0,1}的
- 所有图灵机的集合。因为每个图灵机都可以通过一个Gödelnummer表示
符号
对于二维字母集合 Σ = { 0 , 1 } \Sigma=\{0,1\} Σ={ 0,1}我们将在卡农顺序下的第i个词表示为 w i w_i wi
对于第i个卡农顺序下的图灵机Gödelnummer我们记为 M i M_i Mi
不可数聚合
定理:自然数集的幂集 P ( N ) \mathcal{P}(\mathbb{N}) P(N)是不可数的
证明:反证法
-
假设 P ( N ) \mathcal{P}(\mathbb{N}) P(N)是可数的
-
那么令 S 0 , S 1 , S 2 , S 3 , . . . S_0,S_1,S_2,S_3,... S0,S1,S2,S3,...为一个 P ( N ) \mathcal{P}(\mathbb{N}) P(N)的枚举
-
我们定义一个二维无限的邻接矩阵 ( A i , j ) i , j ∈ N (A_{i,j})_{i,j\in \mathbb{N}} (Ai,j)i,j∈N
A i , j = { 1 如 果 j ∈ S i 0 其 他 A_{i,j}= \begin{cases} 1& \quad 如果j\in S_i\\ 0& \quad 其他 \end{cases} Ai,j={ 10如果j∈Si其他
上述两行分别定义对角线集合 S d i a g S_{diag} Sdiag和其补集 S ˉ d i a g \bar S_{diag} Sˉdiag
注:对角线集合 S d i a g S_{diag} Sdiag和其补集 S ˉ d i a g \bar S_{diag} Sˉdiag都是自然数集合的子集,因此在 P ( N ) \mathcal{P}(\mathbb{N}) P(N)存在一个元素 S k , k ∈ N S_k,k\in\mathbb{N} Sk,k∈N使得 S ˉ d i a g = S k \bar S_{diag} = S_k Sˉdiag=Sk
现在有两种情况,都可以导致矛盾:
第 一 种 情 况 : A k , k = 1 ⇒ D e f . S ˉ d i a g k ∉ S ˉ d i a g ⇒ k ∉ S k ⇒ D e f . A A k , k = 0 第一种情况: A_{k,k} = 1\overset{Def. \bar S_{diag}}\Rightarrow k\notin \bar S_{diag} \Rightarrow k\notin S_k \overset{Def. A}\Rightarrow A_{k,k}=0 第一种情况:Ak,k=1⇒Def.Sˉdiagk∈/Sˉdiag⇒k∈/Sk⇒Def.AAk,k=0
第 二 种 情 况 : A k , k = 0 ⇒ D e f . S ˉ d i a g k ∈ S ˉ d i a g ⇒ k ∈ S k ⇒ D e f . A A k , k = 1 第二种情况: A_{k,k} = 0\overset{Def. \bar S_{diag}}\Rightarrow k\in \bar S_{diag} \Rightarrow k\in S_k \overset{Def. A}\Rightarrow A_{k,k}=1 第二种情况:Ak,k=0⇒Def.Sˉdiagk∈Sˉdiag⇒k∈Sk⇒Def.AAk,k=1
所以不存在 P ( N ) \mathcal{P}(\mathbb{N}) P(N)的枚举,因此不可数
不可判定问题
对角线语言
定义: D = { w ∈ { 0 , 1 } ∗ ∣ w = w i 且 M i 不 接 受 w } D=\{w\in\{0,1\}^*|w=w_i且M_i不接受w\} D={ w∈{ 0,1}∗∣w=wi且Mi不接受w}
换句话说:第i个词 w i w_i wi(卡农顺序下对于 { 0 , 1 } ∗ \{0,1\}^* { 0,1}∗)在对角线语言D中,当且仅当第i个图灵机 M i M_i Mi(在卡农顺序下的Gödelnummer)不接受这个词 w i w_i wi。
注:这里图灵机 M i M_i Mi不接受 w w w有两种情况:1.图灵机 M i M_i Mi拒绝了