簡體   English   中英

圖靈機算法

[英]Turing Machine algorithms

我試圖確定圖靈機(僅由 0 和 1 組成,沒有空格)如何識別 8 個 1 的序列。 我發現的每個算法都有一個 TM 搜索不確定數量的 1 或 0,而不是特定數字。

基本上,如果你有這盤磁帶:

1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1

你怎么知道8個1代表加法,你想把0 0 0 1和0 0 0 1相加?

我認為11111111就像一個操作碼, 0001 , 0001是該操作碼的操作數。 至少,這是我看到的唯一解釋。

TM 可以通過使用類似的固定、有限數量的狀態來尋找固定的、有限數量的符號,每個狀態的唯一目的是識別另一個預期符號已經被看到。 例如,這是一個四帶 TM,它識別加法並執行二進制加法:

|----|----|----|----|----||----|-----|-----|-----|-----|----|----|----|----|
| Q  | T1 | T2 | T3 | T4 || Q' | T1' | T2' | T3' | T4' | D1 | D2 | D3 | D4 |
|----|----|----|----|----||----|-----|-----|-----|-----|----|----|----|----|
// read the opcode /////////////////////////////////////////////////////////
| qA | 1  | x  | y  | z  || qB | 1   | x   | y   | z   | R  | S  | S  | S  |
| qB | 1  | x  | y  | z  || qC | 1   | x   | y   | z   | R  | S  | S  | S  |
| qC | 1  | x  | y  | z  || qD | 1   | x   | y   | z   | R  | S  | S  | S  |
| qD | 1  | x  | y  | z  || qE | 1   | x   | y   | z   | R  | S  | S  | S  |
| qE | 1  | x  | y  | z  || qF | 1   | x   | y   | z   | R  | S  | S  | S  |
| qF | 1  | x  | y  | z  || qG | 1   | x   | y   | z   | R  | S  | S  | S  |
| qG | 1  | x  | y  | z  || qH | 1   | x   | y   | z   | R  | S  | S  | S  |
| qH | 1  | x  | y  | z  || qI | 1   | x   | y   | z   | R  | S  | S  | S  |
// read the first addend ///////////////////////////////////////////////////
| qI | w  | x  | y  | z  || qJ | w   | w   | y   | z   | R  | R  | S  | S  |
| qJ | w  | x  | y  | z  || qK | w   | w   | y   | z   | R  | R  | S  | S  |
| qK | w  | x  | y  | z  || qL | w   | w   | y   | z   | R  | R  | S  | S  |
| qL | w  | x  | y  | z  || qM | w   | w   | y   | z   | R  | R  | S  | S  |
// read the second addend //////////////////////////////////////////////////
| qM | w  | x  | y  | z  || qN | w   | x   | w   | z   | R  | S  | R  | S  |
| qN | w  | x  | y  | z  || qO | w   | x   | w   | z   | R  | S  | R  | S  |
| qO | w  | x  | y  | z  || qP | w   | x   | w   | z   | R  | S  | R  | S  |
| qP | w  | x  | y  | z  || qQ | w   | x   | w   | z   | R  | S  | R  | S  |
// prepare the output tape /////////////////////////////////////////////////
| qQ | w  | x  | y  | z  || qR | w   | x   | y   | z   | S  | S  | S  | R  |
| qR | w  | x  | y  | z  || qS | w   | x   | y   | z   | S  | S  | S  | R  |
| qS | w  | x  | y  | z  || qT | w   | x   | y   | z   | S  | S  | S  | R  |
| qT | w  | x  | y  | z  || qU | w   | x   | y   | z   | S  | S  | S  | R  |
// handle addition when no carry ///////////////////////////////////////////
| qU | w  | 0  | 0  | z  || qU | w   | 0   | 0   | 0   | S  | L  | L  | L  |
| qU | w  | 0  | 1  | z  || qU | w   | 0   | 1   | 1   | S  | L  | L  | L  |
| qU | w  | 1  | 0  | z  || qU | w   | 1   | 0   | 1   | S  | L  | L  | L  |
| qU | w  | 1  | 1  | z  || qV | w   | 1   | 1   | 0   | S  | L  | L  | L  |
| qU | w  | B  | B  | B  || hA | w   | B   | B   | B   | S  | R  | R  | R  |
// handle addition when carry //////////////////////////////////////////////
| qV | w  | 0  | 0  | z  || qU | w   | 0   | 0   | 1   | S  | L  | L  | L  |
| qV | w  | 0  | 1  | z  || qV | w   | 0   | 1   | 0   | S  | L  | L  | L  |
| qV | w  | 1  | 0  | z  || qV | w   | 1   | 0   | 0   | S  | L  | L  | L  |
| qV | w  | 1  | 1  | z  || qV | w   | 1   | 1   | 1   | S  | L  | L  | L  |
| qV | w  | B  | B  | B  || hA | w   | B   | B   | B   | S  | R  | R  | R  |
|----|----|----|----|----||----|-----|-----|-----|-----|----|----|----|----|

傳奇:

  • 問:當前狀態
  • T1:當前磁帶符號,輸入磁帶
  • T2:當前磁帶符號,暫存磁帶 #1
  • T3:當前磁帶符號,暫存磁帶 #2
  • T4:當前磁帶符號,輸出磁帶(未使用)
  • Q':要轉換到的狀態
  • T1':寫入輸入磁帶的符號(未使用)
  • T2':寫入刮擦磁帶 #1 的符號
  • T3':寫入刮擦帶 #2 的符號
  • T4':寫入輸出磁帶的符號
  • D1:輸入磁頭移動方向
  • D2:移動刮擦帶 #1 磁頭的方向
  • D3:移動刮擦帶#2 磁頭的方向
  • D4:輸出帶頭移動方向

約定:

  • w、x、y 和 z 是變量,表示 0 或 1。使用所有這四個的轉換可以被認為是編寫十六 (2^4) 個具體轉換的速記符號。
  • 方向是 L=left,S=same,R=right。
  • B為空白符號; 如果您添加更多狀態以幫助 U 和 V 添加,則可以省略它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM