是否存在已知的算法或方法可以在图中找到所有完整子图?我有一个无向、无权图,需要找到其中所有子图,其中子图中的每个节点都与子图中的其他节点相连。
是否有现成的算法可用于此项任务?
是否存在已知的算法或方法可以在图中找到所有完整子图?我有一个无向、无权图,需要找到其中所有子图,其中子图中的每个节点都与子图中的其他节点相连。
是否有现成的算法可用于此项任务?
这被称为团问题;它通常是NP完全的,并且有许多算法可以解决这个问题。
如果图具有其他属性(例如,它是二分图),那么问题会变得相对容易,并且可以在多项式时间内解决,但否则很难,并且仅适用于小型图。
在计算机科学中,团问题指与在图中查找特定的完全子图(“团”)相关的问题,即每对元素都连接的元素集合。
团问题包括:
- 查找最大团(具有最多顶点的团),
- 在加权图中查找最大权重团,
- 列出所有极大团(无法扩大的团)
- 解决测试图是否包含大于给定大小的团的决策问题。
这些问题都很难:团决策问题是NP完全的(Karp的21个NP完全问题之一),查找最大团问题既是固定参数难以处理又难以近似,列出所有极大团可能需要指数时间,因为存在具有指数数量的极大团的图。尽管如此,对于这些问题有运行在指数时间内或处理某些更专业输入图的算法可以解决。
在大小为n的图中找到一个k-顶点子图的问题的复杂度为
O(n^k k^2)
因为有n^k
个子图要检查,每个子图都有k^2
条边。
你所要求的,在图中找到所有子图是一个NP完全问题,并且在上面列出了Bron-Kerbosch算法进行解释。