我会稍微详细说明,因为我的评论可能不足以解决您的问题。你有没有建造一个只向右移动的繁忙的海狸?让我们试试N = 2:
- 状态A,磁带0 ==>写1,向右移动,进入状态A / B(选择你喜欢的任何一个)
- 状态B,磁带0 ==>写1,向右移动,进入状态A / B(选择你喜欢的任何一个)
- (磁带1的定义无关紧要,仅向右移动时不会发生)
你可以看到这会写很多!但它永远不会停止,而游戏的规则是写一个停止的图灵机。
所以我们必须修改它以停止:
- 状态A,磁带0 ==>写1,向右移动,进入状态B
- 状态B,磁带0 ==>写1,向右移动,进入州HALT
- (带有1的磁带的定义无关紧要,不会发生这种情况)
但是现在我们可以看到我们的效率低下,完全忽略了很多可用的选项。所以我们向左移动我们的武器库以提高效率。我现在会简写这个符号,希望它会更容易阅读。
- A,0 => 1,对,B
- B,0 => 1,左,A(我们必须离开这里以避免永不停止)
- A,1 => 1,左,B
- B,1 => 1,< any>,HALT(最后一个选项,必须暂停)
所以我们得到的执行是:
- ... 0 0 0 0 0 ...,A => 1,对,B
- ... 0 0 1 0 0 ...,B => 1,左,A
- ... 0 0 1 1 0 ...,A => 1,左,B
- ... 0 0 1 1 0 ...,B => 1,左,A
- ... 0 1 1 1 0 ...,A => 1,对,B
- ... 1 1 1 1 0 ...,B => 1,< any>,HALT
醇>
因此最后的录像带在六个步骤之后有4个,这比我们向右移动时的结果要好得多。