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

时间:2013-03-23 14:46:52

标签: algorithm graph graph-theory

我对DFS有一个简单的问题,我试图了解如何使用它,而不是如何解决整个问题。我真的在寻找解释而不是解决我的作业。

我先写下这个问题。

  

“假设你有一个无向图G =(V,E)并且让它有三个   顶点称为v1,v2和v3。找到一个算法   确定这三个顶点是否属于集团的一部分   (完整图)(k> = 3)“

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

我在互联网上阅读,并且我发现断言如果图表是否是集团是NP并且不能轻易解决。我对么?我错过了什么吗?有没有什么可以用来立即确定图表是否合适?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

如果我理解正确,你必须检查这三个顶点是否连接,即边缘v1-v2,v2-v3和v3-v1是否存在。如果它们存在,它们形成一个K = 3的集团。如果它们中的至少一个没有,则这三个顶点一起不能处于大小为k> = 3的集团中。