我对DFS有一个简单的问题,我试图了解如何使用它,而不是如何解决整个问题。我真的在寻找解释而不是解决我的作业。
我先写下这个问题。
“假设你有一个无向图G =(V,E)并且让它有三个 顶点称为v1,v2和v3。找到一个算法 确定这三个顶点是否属于集团的一部分 (完整图)(k> = 3)“
现在我想使用DFS来解决它。据我所知,如果v1,v2和v3属于同一个强连接组件,DFS会告诉我。如果我是正确的,我还应该确定G是否也是一个集团(完整的图表)。
我在互联网上阅读,并且我发现断言如果图表是否是集团是NP并且不能轻易解决。我对么?我错过了什么吗?有没有什么可以用来立即确定图表是否合适?
答案 0 :(得分:4)
澄清关于NP完全性的混淆:检查图是否是一个集团不是NP完全的;只计算边缘,看是否有n(n-1)/ 2。什么是NP-complete是在n个顶点的图形中找到最大集团(意味着具有最大顶点数并且是集团的子图)或k个顶点的集团(如果k是输入的一部分而不是固定号码);后一种情况称为集团决策问题。
编辑:我刚刚意识到你问了一些有关强连接组件的问题;该术语仅适用于有向图(即边具有方向,这意味着对于两个顶点v
和w
,边v->w
与边w->v
不同})。 Cliques通常在无向图上定义,其中只有连通的组件。
答案 1 :(得分:1)
如果我理解正确,你必须检查这三个顶点是否连接,即边缘v1-v2,v2-v3和v3-v1是否存在。如果它们存在,它们形成一个K = 3的集团。如果它们中的至少一个没有,则这三个顶点一起不能处于大小为k> = 3的集团中。