【计算理论】06 可归约性
文章目录
本章要点
- 可归约性定义;
- 映射可归约:若 A ≤ m B A\le_m B A≤m?B且 A A A不可判定,则 B B B也是不可判定证明; A ≤ m B A \le_m B A≤m?B与 A  ̄ ≤ m B  ̄ \overline A \le_m \overline B A≤m?B等价性证明;
- H A L T T M , E T M , R E G U L A R T M , E Q T M HALT_{TM}, E_{TM}, REGULAR_{TM}, EQ_{TM} HALTTM?,ETM?,REGULARTM?,EQTM?的归约;
- E Q T M EQ_{TM} EQTM?和其补都不是图灵可识别的证明。
可归约性
在以图灵机为通用计算机的前提下,可判定章节讨论了一些在图灵机上可解的问题;并给出了一个图灵机不可解的实例: A T M A_{TM} ATM?。
在可归约章节中,将进一步给出其他图灵机不可解的实例,并通过论证 A T M A_{TM} ATM?可以归约到这些实例,证明其不可解性。
简单来说,就是 A T M A_{TM} ATM?问题可以归约到 B B B问题(可以使用 B B B问题构造出 A T M A_{TM} ATM?的判定器),如果 B B B问题可解(可判定),那么 A T M A_{TM} ATM?也会可判定,导致矛盾,从而反证出 B B B不可判定。
映射可归约
和黑书顺序不同,这里先把这个概念明确一下。
映射可归约是一种简单的从一个问题归约到另一个问题的方法。核心理念是,通过一个可计算函数,将问题 A A A转化为问题 B B B的实例,然后解决问题 B B B。这种思想在时间复杂度、空间复杂度的完全性问题,以及本章中将要讨论的几个不可解问题中,有充分体现。
首先给出可计算函数的定义:
定义:称 f : Σ ? → Σ ? f: \Sigma^* \to \Sigma^* f:Σ?→Σ?是一个可计算函数,如果 f f f对所有的输入 w w w都停机,并且停机后只有 f ( w ) f(w) f(w)出现在带子上。
进而定义映射可归约性:
定义:如果存在可计算函数 
     
      
       
       
         f 
        
       
         : 
        
        
        
          Σ 
         
        
          ? 
         
        
       
         → 
        
        
        
          Σ 
         
        
          ? 
         
        
       
      
        f:\Sigma^* \to \Sigma^* 
       
      
    f:Σ?→Σ?,对每个 
     
      
       
       
         w 
        
       
         ∈ 
        
       
         A 
        
       
      
        w \in A 
       
      
    w∈A,都有
  
      
       
        
        
          w 
         
        
          ∈ 
         
        
          A 
         
        
          ? 
         
        
          f 
         
        
          ( 
         
        
          w 
         
        
          ) 
         
        
          ∈ 
         
        
          B 
         
        
       
         w \in A \Leftrightarrow f(w) \in B 
        
       
     w∈A?f(w)∈B
 则称语言 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A映射可归约到语言 
     
      
       
       
         B 
        
       
      
        B 
       
      
    B,记 
     
      
       
       
         A 
        
        
        
          ≤ 
         
        
          m 
         
        
       
         B 
        
       
      
        A \le_m B 
       
      
    A≤m?B,称 
     
      
       
       
         f 
        
       
      
        f 
       
      
    f为 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A到 
     
      
       
       
         B 
        
       
      
        B 
       
      
    B的归约。
定理:如果 A ≤ m B A \le_m B A≤m?B且 B B B是可判定的,则 A A A也是可判定的。
证明:已知 
     
      
       
       
         B 
        
       
      
        B 
       
      
    B可判定,使用 
     
      
       
       
         B 
        
       
      
        B 
       
      
    B的判定器 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M,根据映射可归约的定义,构造 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A的判定器 
     
      
       
       
         N 
        
       
      
        N 
       
      
    N:
  
      
       
        
         
          
           
            
            
              N 
             
            
              = 
             
            
              “对输入 
             
            
              w 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              计算 
             
            
              f 
             
            
              ( 
             
            
              w 
             
            
              ) 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              在 
             
            
              f 
             
            
              ( 
             
            
              w 
             
            
              ) 
             
            
              上运行 
             
            
              M 
             
            
              ,输出 
             
            
              M 
             
            
              的输出。” 
             
            
           
          
         
        
       
         \begin{array}{l} N = \text{“对输入}w:\\ 1.计算f(w);\\ 2.在f(w)上运行M,输出M的输出。\text{”} \end{array} 
        
       
     N=“对输入w:1.计算f(w);2.在f(w)上运行M,输出M的输出。”?
 推论:若 
     
      
       
       
         A 
        
        
        
          ≤ 
         
        
          m 
         
        
       
         B 
        
       
      
        A\le_m B 
       
      
    A≤m?B且 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A不可判定,则 
     
      
       
       
         B 
        
       
      
        B 
       
      
    B也是不可判定的。
证明:若 A ≤ m B A\le_m B A≤m?B且 A A A不可判定,假设 B B B可判定,则根据定理可知, A A A应该是可判定的,矛盾,故 B B B应该是不可判定的。
该推论是证明问题不可判定的常用工具。
由于映射可归约是一种简单的归约方法,故不是所有的归约都属于映射可归约,对于难以找到可计算函数的归约问题,可能采用的就不是映射可归约。事实上,下文可判定归约证明中就有不是映射可归约证明的。
图灵可判定归约证明
图灵可归约的证明通常基于构造已经得证的不可判定图灵机进行,例如构造若B成立,则可由B规约 A T M A_{TM} ATM?,因为 A T M A_{TM} ATM?不可判定,所以B不成立。
H A L T T M HALT_{TM} HALTTM?不可判定
给出 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?的定义,并回顾下 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的定义:
  
      
       
        
        
          H 
         
        
          A 
         
        
          L 
         
         
         
           T 
          
          
          
            T 
           
          
            M 
           
          
         
        
          = 
         
        
          { 
         
        
          < 
         
        
          M 
         
        
          , 
         
        
          w 
         
        
          > 
         
        
          ∣ 
         
        
          M 
         
        
          为图灵机,对输入 
         
        
          w 
         
        
          停机 
         
        
          } 
         
         
         
         
           A 
          
          
          
            T 
           
          
            M 
           
          
         
        
          = 
         
        
          { 
         
        
          < 
         
        
          M 
         
        
          , 
         
        
          w 
         
        
          > 
         
        
          ∣ 
         
        
          M 
         
        
          为图灵机, 
         
        
          M 
         
        
          接受 
         
        
          w 
         
        
          } 
         
        
       
         HALT_{TM} = \{<M, w>| M为图灵机,对输入w停机\}\\ A_{TM} = \{<M, w> | M为图灵机,M接受w\} 
        
       
     HALTTM?={<M,w>∣M为图灵机,对输入w停机}ATM?={<M,w>∣M为图灵机,M接受w}
 证明思路: 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?对 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M拒绝和循环的输出都是拒绝,因此首先使用 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?的判定器判定是否停机,不停机就拒绝;然后再在 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w上模拟 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M。
证明:假设 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?是可判定的,使用 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?归约 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?,设判定 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?的图灵机为 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R,构造判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的图灵机 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S:
  
      
       
        
         
          
           
            
            
              S 
             
            
              = 
             
            
              “对输入 
             
            
              < 
             
            
              M 
             
            
              , 
             
            
              w 
             
            
              > 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              在输入 
             
            
              < 
             
            
              M 
             
            
              , 
             
            
              w 
             
            
              > 
             
            
              上运行 
             
            
              R 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              若 
             
            
              R 
             
            
              拒绝,则拒绝 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              3. 
             
            
              若 
             
            
              R 
             
            
              接受,在 
             
            
              w 
             
            
              上运行 
             
            
              M 
             
            
              ,直到停机 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              4. 
             
            
              若 
             
            
              M 
             
            
              接受,则接受;若 
             
            
              M 
             
            
              拒绝,则拒绝。” 
             
            
           
          
         
        
       
         \begin{array}{l} S = \text{“对输入}<M, w>:\\ 1.在输入<M,w>上运行R;\\ 2.若R拒绝,则拒绝;\\ 3.若R接受,在w上运行M,直到停机;\\ 4.若M接受,则接受;若M拒绝,则拒绝。\text{”} \end{array} 
        
       
     S=“对输入<M,w>:1.在输入<M,w>上运行R;2.若R拒绝,则拒绝;3.若R接受,在w上运行M,直到停机;4.若M接受,则接受;若M拒绝,则拒绝。”?
 从上面的构造可以看出,若 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R可判定 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?,则 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S可判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?,因为 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?是不可判定的,故 
     
      
       
       
         H 
        
       
         A 
        
       
         L 
        
        
        
          T 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        HALT_{TM} 
       
      
    HALTTM?也应该是不可判定的。
E T M E_{TM} ETM?不可判定
给出 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?的定义:
  
      
       
        
         
         
           E 
          
          
          
            T 
           
          
            M 
           
          
         
        
          = 
         
        
          { 
         
        
          < 
         
        
          M 
         
        
          > 
         
        
          ∣ 
         
        
          M 
         
        
          为图灵机, 
         
        
          L 
         
        
          ( 
         
        
          M 
         
        
          ) 
         
        
          = 
         
        
          ? 
         
        
          } 
         
        
       
         E_{TM} = \{<M> | M为图灵机,L(M) = \varnothing\} 
        
       
     ETM?={<M>∣M为图灵机,L(M)=?}
 证明思路:仍然需要构造 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的判定器,但 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?与 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的联系性是比较难想的。这个联系等价于找到 
     
      
       
       
         ? 
        
       
      
        \varnothing 
       
      
    ?与 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w的关系,即如果 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M接受/不接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w,应该推导出 
     
      
       
       
         ? 
        
       
      
        \varnothing 
       
      
    ?。
可以根据 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M和 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w的描述,尝试构造这样一台新的图灵机 
     
      
       
        
        
          M 
         
        
          1 
         
        
       
      
        M_1 
       
      
    M1?:
  
      
       
        
         
          
           
            
             
             
               M 
              
             
               1 
              
             
            
              = 
             
            
              “对输入 
             
            
              x 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              若 
             
            
              x 
             
            
              ≠ 
             
            
              w 
             
            
              , 
             
            
              则拒绝 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              若 
             
            
              x 
             
            
              = 
             
            
              w 
             
            
              , 
             
            
              则在 
             
            
              w 
             
            
              上模拟 
             
            
              M 
             
            
              ,若 
             
            
              M 
             
            
              接受,则接受。” 
             
            
           
          
         
        
       
         \begin{array}{l} M_1 = \text{“对输入}x:\\ 1.若x\ne w, 则拒绝;\\ 2.若x = w, 则在w上模拟M,若M接受,则接受。\text{”} \end{array} 
        
       
     M1?=“对输入x:1.若x=w,则拒绝;2.若x=w,则在w上模拟M,若M接受,则接受。”?
 图灵机 
     
      
       
        
        
          M 
         
        
          1 
         
        
       
      
        M_1 
       
      
    M1?唯一能够识别的串就是 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w,当且仅当 
     
      
       
       
         x 
        
       
         = 
        
       
         w 
        
       
      
        x = w 
       
      
    x=w时, 
     
      
       
       
         L 
        
       
         ( 
        
        
        
          M 
         
        
          1 
         
        
       
         ) 
        
       
         ≠ 
        
       
         ? 
        
       
      
        L(M_1) \ne \varnothing 
       
      
    L(M1?)=?。如果 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?是可判定的,就可以通过判定 
     
      
       
        
        
          M 
         
        
          1 
         
        
       
      
        M_1 
       
      
    M1?的语言是否为 
     
      
       
       
         ? 
        
       
      
        \varnothing 
       
      
    ?,得知 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M是否接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w。设 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?的判定器为 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R,如果 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R接受,则意味着 
     
      
       
       
         L 
        
       
         ( 
        
        
        
          M 
         
        
          1 
         
        
       
         ) 
        
       
         = 
        
       
         ? 
        
       
      
        L(M_1) = \varnothing 
       
      
    L(M1?)=?,即 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M不接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w;反之,则意味着 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w。
证明:假设 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?是可判定的,设其判定器为 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R,构造判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的判定器 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S:
  
      
       
        
         
          
           
            
            
              S 
             
            
              = 
             
            
              对输入 
             
            
              < 
             
            
              M 
             
            
              , 
             
            
              w 
             
            
              > 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              使用 
             
            
              M 
             
            
              和 
             
            
              w 
             
            
              的描述,构造只接受 
             
            
              w 
             
            
              的图灵机 
             
             
             
               M 
              
             
               1 
              
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              使用 
             
            
              R 
             
            
              判定 
             
             
             
               M 
              
             
               1 
              
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              3. 
             
            
              若 
             
            
              R 
             
            
              接受,则拒绝;若 
             
            
              R 
             
            
              拒绝,则接受。” 
             
            
           
          
         
        
       
         \begin{array}{l} S = \text{对输入}<M, w>:\\ 1.使用M和w的描述,构造只接受w的图灵机M_1;\\ 2.使用R判定M_1;\\ 3.若R接受,则拒绝;若R拒绝,则接受。\text{”} \end{array} 
        
       
     S=对输入<M,w>:1.使用M和w的描述,构造只接受w的图灵机M1?;2.使用R判定M1?;3.若R接受,则拒绝;若R拒绝,则接受。”?
 从上面的构造可以看出,若 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R可以判定 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?,则 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S可以判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?,由于 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?是不可判定的,故 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?也应该是不可判定的。
R E G U L A R T M REGULAR_{TM} REGULARTM?不可判定
给出 
     
      
       
       
         R 
        
       
         E 
        
       
         G 
        
       
         U 
        
       
         L 
        
       
         A 
        
        
        
          R 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        REGULAR_{TM} 
       
      
    REGULARTM?的定义:
  
      
       
        
        
          R 
         
        
          E 
         
        
          G 
         
        
          U 
         
        
          L 
         
        
          A 
         
         
         
           R 
          
          
          
            T 
           
          
            M 
           
          
         
        
          = 
         
        
          { 
         
        
          < 
         
        
          M 
         
        
          > 
         
        
          ∣ 
         
        
          M 
         
        
          为图灵机,且 
         
        
          L 
         
        
          ( 
         
        
          M 
         
        
          ) 
         
        
          为正则语言 
         
        
          } 
         
        
       
         REGULAR_{TM} = \{<M>| M为图灵机,且L(M)为正则语言\} 
        
       
     REGULARTM?={<M>∣M为图灵机,且L(M)为正则语言}
 证明思路:与 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?的思路类似,我们需要找到判定正则语言与判定接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w之间的联系,即,如果 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w,则 
     
      
       
       
         L 
        
       
         ( 
        
       
         M 
        
       
         ) 
        
       
      
        L(M) 
       
      
    L(M)为正则语言;如果 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M不接受 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w,则 
     
      
       
       
         L 
        
       
         ( 
        
       
         M 
        
       
         ) 
        
       
      
        L(M) 
       
      
    L(M)为非正则语言。构造图灵机 
     
      
       
        
        
          M 
         
        
          2 
         
        
       
      
        M_2 
       
      
    M2?来描述这种关系(设字母表为 
     
      
       
       
         { 
        
       
         0 
        
       
         , 
        
       
         1 
        
       
         } 
        
       
      
        \{0,1\} 
       
      
    {0,1}):
  
      
       
        
         
          
           
            
             
             
               M 
              
             
               2 
              
             
            
              = 
             
            
              “对输入 
             
            
              x 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              若 
             
            
              x 
             
            
              具有形式 
             
             
             
               0 
              
             
               n 
              
             
             
             
               1 
              
             
               n 
              
             
            
              ,则接受,此时 
             
             
             
               M 
              
             
               2 
              
             
            
              的语言为非正则 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              若 
             
            
              x 
             
            
              具有形式 
             
             
             
               Σ 
              
             
               ? 
              
             
            
              ,则在 
             
            
              w 
             
            
              上运行 
             
            
              M 
             
            
              。若 
             
            
              M 
             
            
              接受 
             
            
              w 
             
            
              ,则接受。此时 
             
             
             
               M 
              
             
               2 
              
             
            
              的语言是正则语言。” 
             
            
           
          
         
        
       
         \begin{array}{l} M_2 = \text{“对输入}x:\\ 1.若x具有形式0^n1^n,则接受,此时M_2的语言为非正则;\\ 2.若x具有形式\Sigma^*,则在w上运行M。若M接受w,则接受。此时M_2的语言是正则语言。\text{”} \end{array} 
        
       
     M2?=“对输入x:1.若x具有形式0n1n,则接受,此时M2?的语言为非正则;2.若x具有形式Σ?,则在w上运行M。若M接受w,则接受。此时M2?的语言是正则语言。”?
 证明:假设 
     
      
       
       
         R 
        
       
         E 
        
       
         G 
        
       
         U 
        
       
         L 
        
       
         A 
        
        
        
          R 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        REGULAR_{TM} 
       
      
    REGULARTM?可判定,且判定器为 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R,构造判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?的判定器 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S:
  
      
       
        
         
          
           
            
            
              S 
             
            
              = 
             
            
              对输入 
             
            
              < 
             
            
              M 
             
            
              , 
             
            
              w 
             
            
              > 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              使用 
             
            
              M 
             
            
              和 
             
            
              w 
             
            
              构造上述的图灵机 
             
             
             
               M 
              
             
               2 
              
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              在输入 
             
            
              < 
             
             
             
               M 
              
             
               2 
              
             
            
              > 
             
            
              上运行 
             
            
              R 
             
            
              ; 
             
            
           
          
         
         
          
           
            
            
              3. 
             
            
              若 
             
            
              R 
             
            
              接受,则接受;若 
             
            
              R 
             
            
              拒绝,则拒绝。? 
             
            
           
          
         
        
       
         \begin{array}{l} S = \text{对输入}<M, w>:\\ 1.使用M和w构造上述的图灵机M_2;\\ 2.在输入<M_2>上运行R;\\ 3.若R接受,则接受;若R拒绝,则拒绝。\ \end{array} 
        
       
     S=对输入<M,w>:1.使用M和w构造上述的图灵机M2?;2.在输入<M2?>上运行R;3.若R接受,则接受;若R拒绝,则拒绝。??
 从上述构造中可以看出,如果 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R可以判定 
     
      
       
       
         R 
        
       
         E 
        
       
         G 
        
       
         U 
        
       
         L 
        
       
         A 
        
        
        
          R 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        REGULAR_{TM} 
       
      
    REGULARTM?,则 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S可以判定 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?,由于 
     
      
       
        
        
          A 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        A_{TM} 
       
      
    ATM?不可判定,故 
     
      
       
       
         R 
        
       
         E 
        
       
         G 
        
       
         U 
        
       
         L 
        
       
         A 
        
        
        
          R 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        REGULAR_{TM} 
       
      
    REGULARTM?应该是不可判定的。
在 M 2 M_2 M2?的构造中, x x x的形式没有固定要求,只要一个是正则一个是非正则就好,因为重点不是 M 2 M_2 M2?识别的语言具体是什么,而是能否用判定器 R R R判定 M 2 M_2 M2?的语言是不是正则语言。
E Q T M EQ_{TM} EQTM?不可判定
给出 
     
      
       
       
         E 
        
        
        
          Q 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        EQ_{TM} 
       
      
    EQTM?的定义:
  
      
       
        
        
          E 
         
         
         
           Q 
          
          
          
            T 
           
          
            M 
           
          
         
        
          = 
         
        
          { 
         
        
          < 
         
         
         
           M 
          
         
           1 
          
         
        
          , 
         
         
         
           M 
          
         
           2 
          
         
        
          > 
         
        
          ∣ 
         
         
         
           M 
          
         
           1 
          
         
        
          , 
         
         
         
           M 
          
         
           2 
          
         
        
          都是图灵机,且 
         
        
          L 
         
        
          ( 
         
         
         
           M 
          
         
           1 
          
         
        
          ) 
         
        
          = 
         
        
          L 
         
        
          ( 
         
         
         
           M 
          
         
           2 
          
         
        
          ) 
         
        
          } 
         
        
       
         EQ_{TM} = \{<M_1, M_2>|M_1, M_2都是图灵机,且L(M_1) = L(M_2)\} 
        
       
     EQTM?={<M1?,M2?>∣M1?,M2?都是图灵机,且L(M1?)=L(M2?)}
 证明思路: 
     
      
       
       
         E 
        
        
        
          Q 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        EQ_{TM} 
       
      
    EQTM?利用 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?来进行构造,同样是要寻找两者之间的联系:令 
     
      
       
       
         L 
        
       
         ( 
        
        
        
          M 
         
        
          1 
         
        
       
         ) 
        
       
         = 
        
       
         ? 
        
       
      
        L(M_1) = \varnothing 
       
      
    L(M1?)=?,若 
     
      
       
       
         E 
        
       
         Q 
        
       
         ( 
        
        
        
          M 
         
        
          1 
         
        
       
         , 
        
        
        
          M 
         
        
          2 
         
        
       
         ) 
        
       
      
        EQ(M_1, M_2) 
       
      
    EQ(M1?,M2?),则 
     
      
       
        
        
          M 
         
        
          2 
         
        
       
      
        M_2 
       
      
    M2?的语言也应该是空的。
证明:假设 
     
      
       
       
         E 
        
        
        
          Q 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        EQ_{TM} 
       
      
    EQTM?可判定,设判定器为 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R,构造判定 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?的判定器 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S:
  
      
       
        
         
          
           
            
            
              S 
             
            
              = 
             
            
              对输入 
             
            
              < 
             
            
              M 
             
            
              > 
             
            
              : 
             
            
           
          
         
         
          
           
            
            
              1. 
             
            
              在输入 
             
            
              < 
             
            
              M 
             
            
              , 
             
             
             
               M 
              
             
               1 
              
             
            
              > 
             
            
              上运行 
             
            
              R 
             
            
              , 
             
             
             
               M 
              
             
               1 
              
             
            
              为拒绝所有输入的图灵机,即 
             
            
              L 
             
            
              ( 
             
             
             
               M 
              
             
               1 
              
             
            
              ) 
             
            
              = 
             
            
              ? 
             
            
           
          
         
         
          
           
            
            
              2. 
             
            
              如果 
             
            
              R 
             
            
              接受,则接受;如果 
             
            
              R 
             
            
              拒绝,则拒绝。” 
             
            
           
          
         
        
       
         \begin{array}{l} S = \text{对输入}<M>:\\ 1.在输入<M, M_1>上运行R,M_1为拒绝所有输入的图灵机,即L(M_1) = \varnothing\\ 2.如果R接受,则接受;如果R拒绝,则拒绝。\text{”} \end{array} 
        
       
     S=对输入<M>:1.在输入<M,M1?>上运行R,M1?为拒绝所有输入的图灵机,即L(M1?)=?2.如果R接受,则接受;如果R拒绝,则拒绝。”?
 从上述构造中可以看出,如果 
     
      
       
       
         R 
        
       
      
        R 
       
      
    R可以判定 
     
      
       
       
         E 
        
        
        
          Q 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        EQ_{TM} 
       
      
    EQTM?,则 
     
      
       
       
         S 
        
       
      
        S 
       
      
    S可以判定 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?,因为 
     
      
       
        
        
          E 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        E_{TM} 
       
      
    ETM?不可判定,故 
     
      
       
       
         E 
        
        
        
          Q 
         
         
         
           T 
          
         
           M 
          
         
        
       
      
        EQ_{TM} 
       
      
    EQTM?也是不可判定的。
图灵可识别的归约性
映射可归约性对求补运算是敏感的,在可判定章节,我们提到了补图灵可识别的概念,这里对其归约性进行说明。
首先给出图灵可识别的归约定理,形式上非常类似映射可归约一节中可判定性的归约定理:
定理:如果 A ≤ m B A \le_m B A≤m?B且 B B B是图灵可识别的的,则 A A A也是图灵可识别的。
只需要将上文中证明的判定器改为识别器,就可以证明该定理。推论同理:
推论:若 A ≤ m B A\le_m B A≤m?B且 A A A不可识别,则 B B B也是不可识别的。
推论: A ≤ m B A \le_m B A≤m?B与 A  ̄ ≤ m B  ̄ \overline A \le_m \overline B A≤m?B具有相同含义。
证明:已知 
     
      
       
       
         A 
        
        
        
          ≤ 
         
        
          m 
         
        
       
         B 
        
       
      
        A \le_m B 
       
      
    A≤m?B,则有对应关系:
  
      
       
        
        
          ? 
         
        
          ? 
         
        
          w 
         
        
          ∈ 
         
        
          A 
         
        
          ? 
         
        
          ? 
         
        
          ? 
         
        
          f 
         
        
          ( 
         
        
          w 
         
        
          ) 
         
        
          ∈ 
         
        
          B 
         
        
       
         \forall\ w \in A \Leftrightarrow \forall\ f(w) \in B 
        
       
     ??w∈A???f(w)∈B
 若 
     
      
       
       
         ? 
        
       
         ? 
        
       
         w 
        
       
         ∈ 
        
        
        
          A 
         
        
           ̄ 
         
        
       
      
        \exist\ w \in \overline A 
       
      
    ??w∈A,使得 
     
      
       
       
         f 
        
       
         ( 
        
       
         w 
        
       
         ) 
        
       
         ? 
        
       
         B 
        
       
      
        f(w) \notin B 
       
      
    f(w)∈/B,则意味着该 
     
      
       
       
         f 
        
       
         ( 
        
       
         w 
        
       
         ) 
        
       
         ∈ 
        
       
         B 
        
       
         ? 
        
       
         w 
        
       
         ∈ 
        
       
         A 
        
       
      
        f(w) \in B \Leftrightarrow w \in A 
       
      
    f(w)∈B?w∈A,导致矛盾。
故 ? ? w ∈ A  ̄ \forall\ w \in \overline A ??w∈A,都应有 f ( w ) ∈ B  ̄ f(w) \in \overline B f(w)∈B。
这个证明记一下,可能会考。
上述定理在证明可识别性归约问题有典型的应用:因为 A T M  ̄ \overline {A_{TM}} ATM??不是图灵可识别的,因此如果想要证明 B B B不是图灵可识别的,可以证明 A T M ≤ m B  ̄ A_{TM} \le_m \overline B ATM?≤m?B,就相当于证明 A T M  ̄ ≤ m B \overline {A_{TM}} \le_m B ATM??≤m?B。
定理: E Q T M EQ_{TM} EQTM?既不是图灵可识别的,也不是补图灵可识别的。
证明:
-  首先证明 E Q T M EQ_{TM} EQTM?不可识别,给出从 A T M A_{TM} ATM?到 E Q T M  ̄ \overline {EQ_{TM}} EQTM??的归约: 
 F = “对输入 < M , w > , M 为图灵机, w 为串 : 1. 构造图灵机 M 1 , M 2 : M 1 = “对任何输入 : ???? a . 拒绝。” M 2 = “对任何输入 : ???? a . 在 w 上运行 M ,若 M 接受,则接受。” 2. 输出 < M 1 , M 2 > 。” \begin{array}{l} F = \text{“对输入}<M, w>, M为图灵机,w为串:\\ 1.构造图灵机M_1, M_2:\\ M_1 = \text{“对任何输入}:\\ \ \ \ \ a.拒绝。\text{”}\\ M_2 = \text{“对任何输入}:\\ \ \ \ \ a.在w上运行M,若M接受,则接受。\text{”}\\ 2.输出<M_1, M_2>。\text{”} \end{array} F=“对输入<M,w>,M为图灵机,w为串:1.构造图灵机M1?,M2?:M1?=“对任何输入:????a.拒绝。”M2?=“对任何输入:????a.在w上运行M,若M接受,则接受。”2.输出<M1?,M2?>。”?
 由于 M 1 M_1 M1?什么也不接受,若 M M M接受 w w w,则 M 2 M_2 M2?接受,两个机器不等价;反之,如果 M M M不接受 w w w,则两个机器等价。因为 A T M  ̄ \overline {A_{TM}} ATM??不是图灵可识别的,且 A T M ≤ m E Q T M  ̄ ? A T M  ̄ ≤ m E Q T M A_{TM} \le_m \overline {EQ_{TM}} \Leftrightarrow\overline {A_{TM}} \le_m EQ_{TM} ATM?≤m?EQTM???ATM??≤m?EQTM?,故 E Q T M EQ_{TM} EQTM?不是可识别的。
-  同理,只需将 M 1 M_1 M1?的描述改为对任何输入都接受,可以得到 A T M A_{TM} ATM?到 E Q T M EQ_{TM} EQTM?的归约,从而证明补图灵不可识别。 
参考
- 《计算理论导引》第二版,机械工业出版社
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!