【问题标题】:Turing Machine Design图灵机设计
【发布时间】:2015-04-05 23:32:46
【问题描述】:

我最近遇到了以下问题:

给出一个图灵机图,它在输入字符串x ∈ {0, 1}∗时停止(接受),其头部位于磁带的左端,其中包含字符串x′ ∈ {0, 1}∗在左端(否则为空白),其中x′ 是 x 的按字典顺序的后继字符串;即序列ε, 0, 1, 00, 01, 10, 11, 000, . . . 中的下一个字符串,其中字符串按长度递增的顺序列出,并由相应的整数值打破。 (简要记录您的 TM。)

我对如何开始为其设计合适的解决方案感到困惑。我能否得到一些建议来首先设计这台机器,然后是一般的图灵机?

【问题讨论】:

    标签: string turing-machines lexicographic


    【解决方案1】:

    图灵机

    首先,您需要了解什么是图灵机,而通过图灵机,我假设您说的是Universal Turing Machine。这是由计算机科学教父艾伦·图灵创造的概念机器。

    机器由一些组件组成。首先,包含输入的无限磁带。有点像..

    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,我们需要能够知道我们要输出三个字符。

    就家庭作业帮助而言,恐怕我应该负责任地给你所有这些。对图灵机有很好的了解,以及对您需要这样做的理解,应该会导致您开始研究解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多