【问题标题】:Why can't a N-State busy beaver keep going to the right?为什么 N 州忙碌的海狸不能一直向右走?
【发布时间】:2017-04-25 01:07:55
【问题描述】:

我正在阅读有关 Busy Beavers 的信息,但如果它们有无限的磁带,为什么它们不能无限地向右打印 1?为什么他们要一直左右移动

【问题讨论】:

  • 好吧,它最终还是得停下来。

标签: algorithm computer-science automata


【解决方案1】:

我会稍微详细说明一下,因为我的评论可能不足以解决您的问题。您是否构建了只向右移动的忙碌海狸?让我们尝试 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​​li>
  • B, 0 => 1, Left, A(我们必须向左走,以免永远停顿)
  • A, 1 => 1, 左, B​​li>
  • B, 1 => 1, , HALT(最后一个选项,必须是停止)

所以我们得到的执行是:

  1. ...0 0 0 0 0..., A => 1, 右, B​​li>
  2. ...0 0 1 0 0..., B => 1, 左, A
  3. ...0 0 1 1 0..., A => 1, 左, B​​li>
  4. ...0 0 1 1 0..., B => 1, 左, A
  5. ...0 1 1 1 0..., A => 1, 右, B​​li>
  6. ...1 1 1 1 0..., B => 1, , HALT

因此最终的磁带在六步后有 4 个,这比我们仅向右移动时获得的结果要好得多。

【讨论】:

  • 谢谢@Apollys 我明白了
猜你喜欢
  • 2011-11-11
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多