【計算理論】圖靈機 ( 多個帶子的圖靈機 | 計算能力對比 | 證明過程 | 一個帶子圖靈機 )

韓曙亮發表於2020-12-05





一、多個帶子的圖靈機



多個帶子的圖靈機 指的是 圖靈機不止一個帶子 , 下圖是 3 3 3 個帶子的圖靈機 , 每條帶子有一個對應的讀寫頭 , 總共有 3 3 3 個讀寫頭 , 有 一個狀態 , 該狀態根據指令進行操作 ;

在這裡插入圖片描述

3 3 3 個帶子的圖靈機當前所處的狀態是 q \rm q q , 三個讀頭所處的位置分別是 1 , a , b \rm 1 , a , b 1,a,b , 三個帶子的圖靈機根據指令進行操作 ,

首先將所處的 狀態從 q \rm q q 轉換成 p \rm p p 狀態 ,

三個讀寫頭指向的字元需要 同時被擦掉 , 並寫入新字元 , 其操作看起來相當於三個圖靈機同時進行工作 , 有一種錯覺就是三個帶子的圖靈機的計算能力要超過一個帶子的圖靈機 ;

事實上 , 三個帶子的圖靈機的計算能力 , 等同於 一個帶子的圖靈機的計算能力 ;





二、證明過程設計



證明過程 :

三個帶子的圖靈機 , 如果其中兩個帶子不工作 , 等同於一個帶子的圖靈機 , 因此 三個帶子的圖靈機的計算能力 大於等於 一個帶子的圖靈機的計算能力 ;

然後證明 三個帶子的圖靈機的計算能力 不會超過 ( 小於等於 ) 一個帶子的圖靈機的計算能力 ;

最終得到 三個帶子的圖靈機的計算能力 等同於 一個帶子的圖靈機的計算能力 ;





三、模仿操作



給定一個 三個帶子的圖靈機 , 一定能找到一個 一個帶子的圖靈機 , 可以模仿作出三個帶子圖靈機相同的計算任務 ;

相同的計算任務的含義就是 兩個 圖靈機 接受的語言是相同的 ;


使用 一個帶子圖靈機 模仿 三個帶子圖靈機 ;

設計 單個帶子圖靈機 指令集 , 模仿 三個帶子圖靈機 計算過程 ;





四、模仿帶子排列



帶子的字元排列 :

三個帶子圖靈機 一步計算中 , 修改了一次狀態 , 同時讀寫頭修改了 3 3 3 次字元 ;

一個帶子圖靈機 模仿 三個帶子圖靈機 上述 一步計算 , 在一個帶子圖靈機中 , 引入特殊字元 # ,

1 1 1 個 # 與第 2 2 2 個 # 之間的內容是 1 1 1 個帶子的內容 ,

2 2 2 個 # 與第 3 3 3 個 # 之間的內容是 2 2 2 個帶子的內容 ,

3 3 3 個 # 與第 4 4 4 個 # 之間的內容是 3 3 3 個帶子的內容 ;

上述 1 1 1 個帶子 可以模仿 3 3 3 個帶子的內容 ;

特殊字元 # 之間的空間很大 , 可能間隔十幾個到幾十個字元 , 依次排列即可 ;

排列順序如下 : # 1 1 1 個帶子的字串 # 2 2 2 個帶子的字串 # 3 3 3 個帶子的字串 #





五、模仿讀寫頭操作



讀寫頭操作 :

1 1 1 個讀寫頭 模仿 3 3 3 個讀寫頭 操作 :

1 1 1 個讀寫頭 讀寫了 第 1 1 1 個帶子的字串 ,

其並不知道第 2 2 2 個讀寫頭的位置 , 根據字元 a \rm a a 是不能區分當前的讀寫頭位置 , 第 2 2 2 個帶子的字串 中有多個 a \rm a a 字元 ;

在字符集中 引入 特殊字元 , 如下圖中 第 1 1 1 個帶子的字串換中 紅色的 1 1 1 與 黑色的 1 1 1 是不同的字元 , 這兩個顏色 1 1 1 有公共的部分 , 在指令集中 , 這兩個 1 1 1 所起的作用是一樣的 ;

紅色的 1 1 1 標誌的是讀寫頭所在的位置 , 使用紅色表示當前讀寫頭的位置資訊 ;

在這裡插入圖片描述

上圖中紅色的 1 1 1 指的是第一個讀寫頭指向的字元 , 讀寫完畢後 , 繼續向右走 , 走到第二個讀寫頭指向的紅色的 a \rm a a 位置 , 然後以此類推 ;

靠不同的字型顏色 區分出 不同的帶子 對應的 讀寫頭指向的字元 , 這樣就可以實現 1 1 1 個帶子模擬多個帶子的圖靈機 ;

使用 1 1 1 個帶子的圖靈機 模擬 3 3 3 個帶子的圖靈機 的代價是 讀寫頭必須從左向右整個遍歷一遍帶子 , 才能模擬 3 3 3 個帶子的圖靈機 一步的計算 ;

相關文章