圖靈機工作步驟
準備
- 存儲帶子上的格子初始話 - 設置內部狀態存儲器當前狀態 - 讀寫頭設置初始在存儲帶上所做的格子位置 - 準備好控制指令,即控制程序。
反復執行以下步驟,直到停機
- 讀寫頭讀出當前格子的數字或符號 - 根據當前狀態和讀到的字母或符號找到對應的控制指令 - 根據控制指令,執行以下三個動作 1. 讀寫頭在格子上擦除或寫入一個數字或符號 2. 變更狀態到一個新狀態
讀寫頭向左或向右移動一格
-估計你還是不明白,別急。看過《三體》的同學都知道三體人把地球人看做“蟲子”,三體人的維度比地球三維世界高,就好像我們人類把看蟲子一樣。
下面,我們把蟲子放到一個二維的世界中,以蟲子為例,給大家來說明最簡單的圖靈機模型(注:該例子非原創)。
假設理想的情況一:
蟲子所處的二維世界是一個無限長的紙帶,這個紙帶上被分成了若干小的方格,而每個方格都僅僅只有黑和白兩種顏色。紙帶的片段為:
假設蟲子的感官只有眼睛,并且它的視力短的可憐,只能看到當前所處格子的顏色
蟲子可以向前爬一個格子或向后爬一個格子
蟲子的操作系統、程序為:我們假設黑色是食物區,蟲子吃到食物后前移一格,白色是空白區,沒有食物后退一格,
在這個情況中格子的顏色是蟲子的輸入信息,集合為IN={黑色,白色},輸出集合為 OUT= {前移一格,后移一格}
從開始位置開始,蟲子會怎么移動呢?
開始是黑色,蟲子前移一格,到達第2格
第2還是黑色,蟲子前移一格,到達第3格
第3格還是黑色,蟲子前移一格,到達第4格
第4格為白色,蟲子后移一格,回到第3格
可見,這條帶子上,蟲子在第4格和第3格來回移動循環不止。
假設理想的情況二
現實中蟲子肯定不可能傻到無線循環,蟲子會有饑餓、吃飽的感受,食物吃了后也會消失。因此我們在情況下中改進下模型。
蟲子在黑色的格子時,如果是饑餓狀態,吃掉食物把格子變成白色;如果是吃飽狀態,后移一格
蟲子在白色的格子時,如果是饑餓狀態,停下來等食物長出來涂黑;如果是吃飽狀態,前移一格
蟲子的操作系統、程序為:
在這種情況中,輸入集合為IN={黑色,白色},輸出集合為 OUT= {前移一格,后移一格,吃掉食物涂白,等待食物長出來涂黑},內部狀態S={吃飽,饑餓}
二維紙帶不變,從開始位置開始,蟲子初始是饑餓狀態,蟲子會怎么移動呢?
第1格是黑色,蟲子饑餓,吃掉食物格子變白,蟲子新狀態為吃飽
第1格為白色,蟲子吃飽,蟲子前移一格,到達第2格,蟲子新狀態為饑餓
第2格為黑色,蟲子饑餓,吃掉食物格子變白,蟲子新狀態為吃飽
第2格為白色,蟲子吃飽,蟲子前移一格,到達第3格,蟲子新狀態為饑餓
第3格為黑色,蟲子饑餓,吃掉食物格子變白,蟲子新狀態為吃飽
第3格為白色,蟲子吃飽,蟲子前移一格,到達第4格,蟲子新狀態為饑餓
第4格為白色,蟲子饑餓,等待食物長出來涂黑,蟲子新狀態為吃飽
第4格為黑色,蟲子吃飽,蟲子后退一格,到達第3格,蟲子新狀態為饑餓
這時,第3格已經長出來食物,是黑色,因此流程和第5步的情況一樣了
情況二,小蟲的行為比情況以復雜了一些,但小蟲最后仍然會落入無限循環當中。
到此,如果你已經徹底搞懂了二維蟲子是怎么移動的,那么你已經明白了圖靈機的工作原理了!因為從本質上講,最后的小蟲模型就是一個圖靈機!
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。