algorithm - 在图上使用 DFS - 确定图是否是具有特定 SCC 的团

标签 algorithm graph graph-theory

<分区>

我有一个关于 DFS 的简单问题,我想了解如何使用它,而不是如何解决整个问题。我真的是在寻找一个解释,而不是我的家庭作业的解决方案。

我先把问题写下来

"Suppose you have an undirected graph G=(V,E) and let three of its vertices to be called v1, v2 and v3. Find an algorithm which determines if these three vertices are part of a clique (complete graph) (k>=3)"

现在我想使用 DFS 来解决它。据我所知,DFS 会让我知道 v1、v2 和 v3 是否在同一个强连接组件中。如果我是正确的,我还应该确定 G 是否也是一个团(完整图)。

我在网上看了看,我发现断言一个图是否是clique是NP问题,不容易解决。我对么?我错过了什么吗?是否有任何属性可以用来立即确定图形是否完整?

最佳答案

为了澄清关于 NP-completeness 的混淆:检查一个图是否是 clique 不是 NP-complete;只数边,看看是否有 n(n-1)/2。什么是 NP-complete 是在 n 个顶点的图中找到一个最大的团(意味着具有最大数量的顶点并且是一个团的子图)或 k 个顶点的团(如果 k 是输入的一部分而不是 a定数);后一种情况称为集团决策问题。

编辑:我刚刚意识到你也问了一些关于强连通组件的问题;该术语仅适用于有向图(即边具有方向,这意味着对于两个顶点 vw,边 v->w 与边 w->v 不同)。团通常在无向图上定义,其中只有连通分量。

关于algorithm - 在图上使用 DFS - 确定图是否是具有特定 SCC 的团,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588068/

相关文章:

algorithm - 了解长除法算法

algorithm - 通过顶点/节点的最小切割 - 而不是边缘

c++ - 使用 Dijkstra 在 boost 图中查找最短路径

algorithm - 我在解决 Google 的 foobar 挑战时遇到了一些麻烦。我处于第 4 级,但我不知道我们是如何获得路径矩阵的

algorithm - 最大化对数的有效方法

python - Networkx 传播节点和短缺标签

java - 在java中四舍五入并计算小数点后有多少个数字

java - 在单词列表中查找拼写错误

algorithm - 阵列中最深坑的困惑

python - 为什么我的 networkx 图不显示节点之间的边?