【发布时间】:2010-11-23 19:30:01
【问题描述】:
假设我有一个大的(几千个节点)有向图 G 和一个小得多的(3-5 个节点)有向图 g。我想计算 g 中有多少个 g 的同构。换句话说,我想知道 G 中有多少独特的节点集与 g 匹配。我意识到这是子图同构问题的一个实例,因此是 NP 完全的。但是,鉴于您可能假设 g 很小,是否有任何合理有效的算法可以做到这一点?
【问题讨论】:
-
也许math.stackexchange.com 会给您带来更好的结果 - 我知道您所寻求的是一种算法,但您或许可以从理论上设计一种算法
-
您的问题是“一种情况”还是您想要一个通用算法。我问只是因为 g 边缘的基数上的一些特征可能有很大帮助......
-
如果您的小图的大小没有随着 N 的函数增长,那么即使是蛮力算法也应该是多项式时间,因为 N 选择 k 是 O(N^k)。跨度>
-
@mcbeckish:我想到了 O(N^k) 算法,但那可能行不通。
-
是的,即使是多项式时间算法也可能需要很长时间。我只是想澄清一下,如果较小图的大小是固定的,那么这不是 NP-Complete。
标签: algorithm graph graph-theory np-complete isomorphism