簡體   English   中英

圖靈機設計

[英]Turing Machine Design

我最近遇到以下問題:

給出一個圖靈機的圖靈機圖,該圖靈機在輸入字符串x ∈ {0, 1}∗停止(接受),其頭在磁帶的左端,其中包含字符串x′ ∈ {0, 1}∗ 。左端(否則為空白),其中x'是按字典順序排列的x的后繼字符串; 即序列ε, 0, 1, 00, 01, 10, 11, 000, . . .的下一個字符串ε, 0, 1, 00, 01, 10, 11, 000, . . . ε, 0, 1, 00, 01, 10, 11, 000, . . . 其中按長度增加的順序列出字符串,並以相應的整數值打破領帶。 (簡要記錄您的TM。)

對於如何開始為其設計合適的解決方案,我感到困惑。 首先設計這台機器,然后再設計圖靈機器,我是否可以得到一些建議?

圖靈機

首先,您需要了解什么是圖靈機,而我假設您是在談論通用圖靈機 這是由計算機科學教父Alan Turing創建的概念機。

機器由一些組件組成。 首先,包含輸入的無限磁帶。 就像是..

1-0-1-1-1-1-0-1-0-1-0

然后是一組規則

if 1 then 0
if 0 then 1

因此,按照規則,當機器達到1 ,輸出為0 我們將讀取頭設置為值時定義機器命中值。 讀取頭就像翻唱機中的當前位置。 所以它會去..

1-0-1-1
^------------Current head.

然后下一次迭代:

1-0-1-1
  ^----------Current Head

這台機器實際上是在模擬按位NOT功能。 您還可以在圖靈機中設置狀態,例如:

if 1 then enter state 1
if 0 then enter state 0

沒關系吧? 突然出現示例,現在您可以執行以下操作:

1. if 1 and in state 1 output 1 and enter state 0
2. if 1 and in state 0 output 0 and enter state 1
3. if 0 and in state 0 output 1 and enter state 1
4. if 0 and in state 1 output 0 and enter state 0

我們將狀態定義為默認狀態。 在此示例中,我們將其稱為state 0 因此,當機器啟動時,它會看到1。好吧,我處於state 0而我剛得到1所以我將執行規則2 輸出0並進入state 1 下一個數字是0 好吧,我處於state 1 ,所以我將規則編號為4 看到這是怎么回事? 通過添加狀態,您可以真正實現自己的目標。

現在,通用圖靈機就是所謂的Turing Complete 這意味着它可以計算任何可計算的序列。 包括,為您分配的規格!

您的作業

因此,讓我們在圖靈機的上下文中查看您的任務。

機器的目的是打印出來。

0 1 00 01 11 000 001 011 111

因此,我們知道我們需要維持一個狀態。 我們也知道,國家需要變得越來越深。 因此,如果用戶輸入000 ,則需要知道要輸出三個字符。

就家庭作業幫助而言,恐怕我應該以負責任的態度給您。 對圖靈機的一個很好的理解,再加上對您需要做的事情的理解,應該會導致您開始研究解決方案。

暫無
暫無

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

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