構造一個識別語言 L={ww | w ∈ {0,1}} 的圖靈機 (TM)。
問題
語言 L = {ww | w ∈ {0, 1}} 包含由自身跟隨的 0 和 1 字串。
L={00,11,0011,1100,…..}
解決方案
解決問題的邏輯如下:
- 找到字串的中點。
- 然後匹配符號。
解釋
**步驟 1** - 首先,我們需要找到字串的中點。
**步驟 2** - 我們將第一個 0 替換為 X 或 1 替換為 Y,然後將讀寫頭向右移動,直到找到最後一個字元。
**步驟 3** - 然後將這個 0 替換為 X 或 1 替換為 Y。
**步驟 4** - 現在,我們將向左移動,停在我們將一開始設定為 X 或 Y 的第一個字元之前。
**步驟 5** - 根據值將第二個字元設定為 X 或 Y,同樣,我們向右移動以進行相同的操作。
**步驟 6** - 連續執行此操作後,所有 0 將變為 X,所有 1 將變為 Y,讀寫頭將位於字串的中間。
**步驟 7** - 現在,我們將讀寫頭移動到字串的左側,並將 X 連續轉換為 0,將 Y 連續轉換為 1,直到到達字串的開頭。
**步驟 8** - 完成此操作後,字串的一半將包含 0 和 1,另一半將包含 X 和 Y。
**步驟 9** - 現在讀寫頭位於第一個字元上,如果為 0,我們將將其轉換為 X;如果為 1,我們將將其設定為 Y(如前所述)。
**步驟 10** - 第一個字元轉換後,將讀寫頭一直向右移動,直到遇到第一個 X 或 Y(字串的後半部分),然後將其清空。
**步驟 11** - 然後一直回到 X 或 Y 旁邊的字元,然後重複相同的操作。
**步驟 12** - 連續執行上述步驟後,如果只剩下 X 和 Y(只剩下前半部分,後半部分為空),則接受字串。否則,將被拒絕。
使用圖靈機 (TM) 實現相同的功能如下所示:
在這裡,我們使用十個狀態進行了相同的操作,其中 Q0 是初始狀態,Q9 是最終狀態。
圖靈機如下所示: