Answers:
没有规范的此类类别,出于相同的原因,也没有计算的规范类别。但是,数据结构上有大量有用的代数结构。
组合物种理论是仍然更有用的更普遍的此类结构之一。一个物种是一个函子,其中是有限集和它们之间的双射的类别。您可以将物种视为按抽象位置集合索引的结构族。这就解释了 -这样的族在重命名抽象标签方面必须是不变的。然后,物种的演算基本上在函数级上重放生成函数的方法,以生成数据结构集而不是计数。
要查看以编程语言实现的这一理论,您可以阅读Brent Yorgey在Haskell专题讨论会上发表的论文,《物种与函子和类型》,噢,我的天!。我认为Sage也有一个物种包,尽管它当然是针对计算机代数而不是编程。
确实,存在与同构不同的概念,它在编程中更有用。它称为“行为等效”(有时称为“观测等效”),它是通过在数据结构之间而不是在双射之间给出“模拟关系”来建立的。代数学家进来并在计算机科学中建立了一个称为“代数数据类型”的区域,在那里他们将同构和初始代数推了一段时间。最终,计算机科学家意识到他们被误导了。关于这些问题的一篇很好的论文是Sannella和Tarlecki撰写的 “论观测等效性和代数规范”。
我写了一个关于逻辑关系和模拟的问题的答案,它回答了计算机科学中模拟关系的更一般的历史。欢迎您阅读并继续阅读那里给出的参考文献。雷诺兹的“编程工艺”的第5章特别具有启发性。
Holcombe 写的关于代数自动机理论的教科书有以下有趣的引用(第42页):
关于同态和商,还有许多其他结果。尽管它们具有独立的代数兴趣,但尚未证明对自动机和相关领域的研究特别有用。实际上,机器的代数理论在一个重要方面与其他代数理论所采取的方向有所不同。然而,自动机理论的重点不是机器的“外观”,而是“它们可以做什么”。 。如果两个机器都可以“做同样的事情”,我们将把它们视为密切相关,但是它们可能不是代数同构的!
与其问我们如何加强/削弱同构的概念,不如问另一个问题:问什么是计算结构之间等价的正确概念,什么是该概念的数学结构。
一大群结构是余数。诸如列表,树,自动机之类的结构,无论是有限变种还是无限变种,都可以称为结余。然后,我们可以研究各代数之间的同构或同构。
但是,即使连数之间的同构也不能说明全部。您可能会发现查找仿真,双仿真和其他逻辑关系会有所帮助。如果您严格喜欢代数方法(相对于关系方法而言),则Galois连接是一种选择。这里是一些起点。
免责声明:我不确定我是否理解您的问题。您是否要谈论两个数据结构之间或两个“数据结构规范”之间的同构?(这些有时也称为抽象数据类型。)
如果考虑细胞探针模型,那么我认为同构概念很容易出现。这是因为单元探针模型通过决策树对计算进行建模,因此同构易于定义。我认为,如果您考虑数据结构实现之间的同构性以及考虑数据结构规范,那么单元探针模型都会有所帮助。
有关细胞探针模型的信息,请参见Miltersen调查。(细胞探针复杂性:一项调查)
如果您更多地说明了为什么需要在数据结构之间定义同构,那么可能会提供更多帮助。随时给我发消息。