【发布时间】:2013-12-23 03:49:35
【问题描述】:
我已经连续在互联网上搜索了大约两三天,但到目前为止没有运气。
我知道在野外有很多用于子图同构的库和实现,但它们都适用于未加权图。例如,两种最流行的算法是 VF2 和 Uleman 算法。在这里,我的问题是:是否有任何方法可以给出一个图(G)和一个查询图(g),是否可以找到 g 是否是 G 的子图(并且同构)? (请注意,以下是图的边列表表示。)
G
1 2 c
1 3 d
1 4 c
2 3 a
...
g
1 3 d
2 3 a
在这种情况下,g 是一个子图并且与 G 同构,但是如果我们有这样的东西:
g
1 3 t
2 3 a
现在 g 不再是 G 的子图并且不是同构的。
更新:两个图都是无向的。
【问题讨论】:
-
为清楚起见,g={(1 2 a)} 同构于 G 的一个子图(即 {(2 3 a)})。这是你想要的结果吗?此外,G 是有向的(即对于 g={(1 3 d), (3 2 a)},应该输出“否”)?
-
g={(1 2 a)} 与 G 不同构,因为 G 中这条边的权重是“c”而不是“a”。对于第二种情况,即 g={(1 3 d), (3 2 a)}),它应该返回 TRUE。简单地说,这里的两个图都是无向的。
标签: algorithm graph subgraph isomorphism