【问题标题】:Turing's On Computable Numbers - I cannot understand how to reproduce examples图灵的可计算数 - 我无法理解如何重现示例
【发布时间】:2019-03-12 07:55:05
【问题描述】:

我最近刚开始阅读一些 CS 论文,其中第一篇是 Turing 的“关于可计算数字”,其中他提供了用于打印 010101 序列的机器配置示例。我了解它应该如何工作,但我很难理解为什么它在这些操作中有两个 R 移动:

m-config | symbol | operations | final m-config
         |  None  |     P0     |       b
    b    |   0    |   R, R, P1 |       b
         |   1    |   R, R, P0 |       b

如果我开始经历这个,那么这里有几个第一步:

第 1 步:P0

结果:

0

第 1 步:R、R、P1

0 1

第 2 步:R、R、P0

0 1 0

第 3 步:R、R、P1

0 1 0 1

所以基本上它工作得很好,但论文明确指出这台机器应该打印出010101,磁带上没有任何空白。但是因为打印后我们总是向右移动两次,这意味着我们总是在磁带上留下一个空白方块。有人可以帮我理解我做错了什么吗?

【问题讨论】:

  • 我已经有一段时间没有读过这篇论文了,但我似乎记得图灵最初使用每隔一段进行输出,而中间的那些被用作一种用于操作的暂存空间。我们今天定义的图灵机与图灵最初的定义有些不同,这是它们不同的地方之一。

标签: computer-science turing-machines


【解决方案1】:

图灵以这种方式定义了机器计算的序列

计算机。

如果 a-machine 打印两种符号,其中第一种 (称为图形)完全由 01 组成(其他称为符号 第二种),那么该机器将被称为计算机。 如果机器配有空白胶带并开始运转,则开始 从正确的初始 m 配置,符号的子序列 由它打印的属于第一类的将被称为 计算的序列 由机器

示例中的机器实际上是在磁带上打印0B1B0B1B0...,但它计算的序列被定义为0B1B0B1B0... 的子序列,仅由0 和1 组成,因此01010...
实际上,图灵允许二进制数字之间有空格。

我可耻地承认从未阅读过原始论文,但我想这可能是为了简化计算:允许数字之间的空白使程序员/数学家免于重新压缩(和无聊)步骤。
基本上,这允许本地暂存器,只要在移动到下一个数字之前擦除它们,您就可以在一个数字附近使用尽可能多的单元格。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多