📜  甲骨文图灵机

📅  最后修改于: 2022-05-13 01:54:10.451000             🧑  作者: Mango

甲骨文图灵机

图灵机:

Alan Mathison Turing 在 1936 年提出了图灵机,这是一种能够模拟所有计算行为的计算机模型。图灵机是一个虚构的机器。图灵机在现代计算机的发展中发挥了重要作用。

  • 图灵机是一个虚构的机器。
  • 尽管它很简单,但该机器能够模拟任何计算机算法,无论多么复杂。
  • 为了简单起见,我们假设这台机器只能处理0、1和空白。
  • 该机器有一个位于磁带方格上的磁头。
  • 头部可以执行下面列出的三个基本操作:

1.阅读头部正方形的符号。

2. 通过将符号替换为新符号或将其删除来编辑符号。

3.胶带向左或向右移动一个方格,以便机器可以读取和编辑下一个方格上的符号

处于状态 q0 的图灵机,第一个输入符号为 0

  • 图灵机的一个非常基本的表示是无限长的磁带(内存)
  • 磁带上的每个方块最初都是空白的,可以在上面写上符号。

停机问题:

  • Alan Turing 在 1936 年证明,不可能预测任意程序最终会终止还是无限期运行。
  • 马丁戴维斯后来将其称为“停机问题”。
  • 这是决策问题的最早实例之一。

停止问题是根据程序的描述和输入来确定任意计算机程序是完成运行还是无限期地继续运行的问题。

例如:

  • while (true) 继续;

它不会停止;相反,它在无限循环中无限期地继续。

  • 打印“Hello World!”;

它会停止。

为什么停机问题很重要?

  • 我们经常想知道一个程序是否收敛(停止),但没有一种算法可以为所有程序回答这个问题。
  • 许多问题被证明是无法通过将它们简化为停止问题来解决的。

甲骨文图灵机:

预言机图灵机类似于标准的图灵机,但增加了第二条磁带,称为预言机磁带。可以在 Oracle 磁带上的单元格中找到空白 (B)、0 或 1。给定集合 A,具有 Oracle A 的 Oracle 图灵机将把集合 A 的特征函数写入磁带。 Oracle 磁带头从带有字母 X A (0) 的单元开始。 X A (1) 位于此单元格右侧的单元格中,依此类推。 Oracle 磁带头开始的单元格左侧只有空白。

带有 oracle A 的 Oracle 图灵机

预言机图灵机计算的执行方式与标准图灵机计算相同。尽管 Oracle 头的启动状态为 p0,但如果读/写头进入重音状态,图灵机就会停止。具有预言机 A 的图灵机与常规图灵机之间的主要区别在于,预言机图灵机的停止计算可以确定 A 是否包含有限数量的数字。

Oracle 机器可能偶尔会进入 QUERY 状态。发生这种情况时,将在单个计算步骤中执行以下操作:

  • 读取 Oracle 磁带的内容。
  • 查询预言机,然后将预言机磁带的内容替换为该特定问题实例的解决方案。
  • Oracle 机器的状态变为 RESPONSE,可以是 Q yes或 Q no。

因此,更改为 QUERY 状态会导致在一个步骤中接收到写入在 oracle 磁带上的问题实例的解决方案。

Oracle 图灵机的重要性:

  • OTM 可以被认为是利用子程序的计算。无论复杂程度如何,在这些子例程中花费的时间都只计为一个步骤。因此,OTM 是一种虚构的计算模型。
  • 在计算机科学理论中广泛使用,以研究各种问题的相对难度。
  • 它们有助于图灵约简概念的编码。
  • 它们有助于确定证明复杂性理论结果的一些障碍。
  • 这对密码学也很重要。