79得票3回答
同构函数的重要性

简短问题:编程中(特别是函数式编程),同构函数的重要性是什么? 详细问题:我试图在范畴论的概念和函数式编程之间进行一些类比,基于我从时间到时间听到的术语。本质上,我正在尝试将这种术语 "拆包 "为具体的内容,然后再扩展。然后,我将能够使用术语,并理解自己在说些啥。这总是不错的。 其中一个我...

20得票3回答
两个二叉树同构意味着什么?

两个二叉树何谓同构?我在网上找了很久,似乎没有清晰的解释。 据我所知,如果两个树的形状相同,则它们是同构的。因此,我猜测两个节点可以包含不同的值,但它们的结构相同。

19得票6回答
从图的集合中排除同构

我有一个包含1500万(百万)个DAG(有向无环图 - 实际上是有向超立方体)的集合,我想从中删除同构。针对此问题,有哪些常见算法?每个图形都相当小,是N维的超立方体,其中N为3到6(目前为止),因此对于N = 6情况,每个图形有64个节点。 使用networkx和python,我像这样实现...

14得票4回答
彩色图同构:1(红色)-> 2(蓝色)与1(蓝色)-> 2(红色)

考虑两个简单图:library(igraph) g <- graph.empty() g <- g + vertices(1,2,3) g <- g + path(1,2,3) g1 <- g V(g1)$color = c(1,2,2) g2 <- g V...

13得票4回答
子图同构和子图单同态之间的区别是什么?

在我曾经工作的一个项目中,出现了同构与单态的主题 。 一些背景:我不是图论方面的专家,也没有正式的培训。但这个主题在化学中非常重要,在那里化学家期望他们使用的结构搜索系统发生特定类型的子图匹配。 如果目标图A具有n个节点和m条边,则化学家将接受查询图B具有n个节点和m-1条边的子图匹配。唯...

13得票2回答
C++图论库列表

我即将开始一项有关自动机和图论的科学项目,正在寻找一个支持以下功能的图形库: 有向/无向图 图同构测试(即图g1与g2同构吗?) 子图同构测试(即图g1与g2的子图同构吗?) 图搜索、访问等 可能需要快速计算 我知道Boost Graph Library,但从文档中理解,它缺少子图测试...

12得票2回答
VF2算法步骤及示例

有人能用简单的话解释一下VF2算法在图同构中的步骤吗?我正在学习这个算法,但没有工作示例很困难。有人能给我指点方向吗?谢谢。

11得票2回答
在Java中查找与给定子树匹配的树中所有子树

我正在使用Java编写代码,该代码使用无序的根树,每个节点可能有任意数量的子节点。给定树T和子树S,我希望能够找到所有与S匹配的T中的子树(即与S同构的T中的所有子树)。 如果T的一个子树与S同构,则S的节点可以映射到T的节点,使得S的边映射到T中的边。 关于如何查找树是否包含另一个子树,...

10得票3回答
图形中的模式匹配

我正在寻找一种工具/算法,用于在有向图中搜索与指定模式相对应的部分,例如: A->B->C或A<->B->C 请建议我搜索的方向。 我指的是模式匹配。我需要找到所有与指定模式匹配的节点和边的组合。

10得票1回答
使用镜头实现三种或多种类型之间的同态映射

受有关ADT之间多态函数的问题启发,我正在尝试创建多个(不止两个)类型之间的同构,以便每当我需要同构但不是相同类型时,我可以在我的代码中添加一些convert。 假设我有3个ADT:data AB = A | B deriving (Show) data CD = C | D derivin...