【问题标题】:Can a hypergraph represent a nondeterministic Turing machine?超图可以表示非确定性图灵机吗?
【发布时间】:2012-04-14 18:55:11
【问题描述】:

是否有人知道任何讨论使用超图来实现或表示非确定性图灵机的论文、文本或其他文档?它们实际上是等价的吗?

我很确定超图能够正确且完整地表示非确定性图灵机的状态转换。但到目前为止,我一直无法在印刷品中找到任何可以验证这一点的东西。在我看来,这似乎是一种如此明显的关系,但是我没有找到现有技术的事实让我觉得我走错了路。 (也可能是我发现的内容不足以让我理解它在说什么。);-)

我为什么问:我正在开发一个开源包,它在对等网络中进行分布式数据存储和分布式计算。我正在寻找可能支持所需功能的最原始的数据结构。到目前为止,分布式超图看起来很有希望。我的理由是,如果超图可以支持像非确定性图灵机这样的通用事物,那么它应该能够支持更高级别的图灵完备 DSL。 (还有其他原因,“非确定性”部分对我来说可能也很有价值,这与分布式数据和/或计算结果的版本控制有关。不过这里尽量避免发表论文。)

部分答案:

【问题讨论】:

  • 您究竟想用超图表示什么?用嵌套表或有向标记图很容易描述状态转换关系。只需将 (State,Symbol) 对作为节点并使用 Move LeftMove Right 标记弧。
  • @max,是的,这几乎就是我的想法——要么是您对普通图灵 5 元组规则的其他变体的版本。应用于非确定性图灵机,弧(边)当然会有多个头,指向多个可能的下一个节点。
  • 要表示 完整 TM 状态(即以某种方式执行您的超图表示),您还需要存储已访问磁带单元的状态。
  • @max,我想你可能是在正确的轨道上;我遇到的问题可能是“代表”和“实现”的含义之间的区别。超图等价于通用非确定性图灵机的tape,因为它包含规则和辅助非确定性图灵机的程序。但是你仍然需要一台机器来执行它——存储状态。如果为真,那么超图可以表示但不能实现机器。
  • 表示似乎很简单,因为如果你有一个由一组元组定义的图灵机,那么它可以被认为是一个超图:元组组件是节点,元组本身是边。

标签: theory distributed graph-theory turing-machines


【解决方案1】:

超图只是一个图G=(V,E),其中V 是顶点(节点)的集合,EV 的幂集的子集。它是一种数据结构。

所以一个普通图只是一个秩为 2 的超图。(即 E 中的每个集合正好包含两个顶点)。有向超图使用对 (X,Y) 作为边,其中设置了 XY

如果您想为图灵机建模,那么您需要为“磁带”建模。你想把磁带“嵌入”到图表中吗?我认为您可能会更幸运地考虑 Church-Turing 论文(Alonso Church,Lambda calculus)。 Lambda 演算是一种重写系统,肯定有一个分支使用 Graph 重写(和 hypergrpahs)。

当然,可以将转换建模为图形(我不确定您的想法,但直截了当的方法并没有真正的帮助) 如果您通常对其进行建模,您可能会创建一个字典/哈希图,其中元组作为键(状态,符号),值是(状态,重写,左|右)。例如

states = {1,2,3}
symbols = {a,b,c}
moves = L, R
delta = { (1,a) -> (1,b,R)
          (1,b) -> (2,c,L)
          ...
}

所以如果你想要一个图表,你首先需要 V = states U 符号 U 移动。 显然,它们需要是不相交的集合。 因为 {1,a} -> {1,b,R} 根据定义等于 {a,1} -> {b,R,1} 等。

states = {1,2,3}
symbols = {a,b,c}
moves = L, R
V = {1,2,3,a,b,c,L,R}
E = { ({1,a},{1,b,R})
      ({b,1},{L,2,c})
      ...
}
turing-hypergraph = (V,E)

正如我之前提到的,查找图形重写或术语重写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2018-05-08
    • 2015-06-16
    相关资源
    最近更新 更多