一个无向图的最大完全子图的求法,急!

Heskey 2003-10-20 10:41:23
请问一个无向图的最大完全子图的求法,谢谢!
...全文
594 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Heskey 2003-10-29
  • 打赏
  • 举报
回复
上面讨论的各位能否给出算法的时间复杂度?
BlueSky2008 2003-10-21
  • 打赏
  • 举报
回复
回复人: mathe() ( ) 信誉:105 2003-4-30 10:06:34 得分:80


NO NPC Problem.

List_Of_Subgraph WorkList;

WorkList.push(the_graph);

While(!WorkList.IsEmpty()){
Head=WorkList.Head();WorkList.RemoveHead();
If(Head.IsCompleteGraph())//O(m^2), m is count of nodes in the graph.
continue;
else {
A node pair M,N in Head has been found that there's no edge from M to N.
Split Head into to subgraph: S1,S2, S1's node set is {X|X=M, or there's edge (X,M) in Head}. S2's node set is {X| X<>M and there's no edge (X,M) in Head}
WorkList.PushHead(S1);
WorkList.PushHead(S2);
}
}

The time complexity is O(n^2log(n))?



frankzch 2003-10-21
  • 打赏
  • 举报
回复



* *
/ \ /
/ \ /
*-----*----*
看这个图,度为2的结点没有一一互连,难道就没有完全子图?
frankzch 2003-10-21
  • 打赏
  • 举报
回复
不行啊,设想你的那个图改成中间三角形的三个顶点度都为3的旋转对称图形,根本就找不到度为2的结点
zzwu 2003-10-21
  • 打赏
  • 举报
回复
各点度不一样不要紧,可以降低一级,再查。如下图中,最大度数为3,先找是否有另外3个3度点且都1-1相连,发现没有,就降为寻找是否有‘3个’2度或2度以上的点相互都1-1相连,这样就找到了,而最大完全子图是3。

2
*
/ \
/ \
*-----*----*----*
2 3 2 1
zzwu 2003-10-21
  • 打赏
  • 举报
回复
各点度不一样不要紧,可以降低一级,再查。如下图中,最大度数为3,先找是否有另外3个3度点且都1-1相连,发现没有,就降为寻找有否3个2度点相互都1-1相连,这样就找到了。

2
*
/ \
/ \
*-----*----*----*
2 3 2 1
frankzch 2003-10-21
  • 打赏
  • 举报
回复
最大完全子图,超超的地址我打不开
用度的方法是不行的,因为完全子图可能每一个结点的度都不一样

我想能不能这样:
从某一个结点开始深度优先遍历,同时用一个路径数组记录下遍历走过的每一个结点,每进入遍历结点,先看看该结点的邻接点是否包含已知路径上的所有结点,若是,则把该结点加入路径数组,继续从新结点遍历;若不是,回溯到上一结点;这样直到无法回溯(另外设置一个访问状态数组VisitIN[],起始结点的所有邻接点VisitIN值为1就无法回溯了)就找到一个完全子图

把起始结点访问状态Visit[]改为1,继续从下一结点出发重复上述过程,直到找到最大的完全子图。(算法的关键是判断某一结点的邻接点是否包含路径数组的所有结点)

不过这样做复杂度是高的了,我还没想到更好的方法。
frankzch 2003-10-20
  • 打赏
  • 举报
回复
无向图好说啊(有向图麻烦点)
从任意一点出发深度优先遍历到的所有结点就是一个连通子图;然后在所有的连通子图中找最大的就行了
mmmcd 2003-10-20
  • 打赏
  • 举报
回复
可以看看这个:
http://oibh.ioiforum.org/advance/A%20fast%20algorithm%20for%20the%20maximum%20clique%20problem.pdf
zzwu 2003-10-20
  • 打赏
  • 举报
回复
先将结点按它们度数的降序排序,设第一个的度数为k;
看后面有没有个k个结点度数也为k?
有,则再查它们是否全部1-1互连?
是,则最大“完全”子图已找到,且由k+1结点组成;

否则,k--,再查...
zzwu 2003-10-20
  • 打赏
  • 举报
回复
先按度数按降序排列,设第一个的度数为k,看后面有没有个k个结点度数也为k,有,则再查它们是否全部1-1互连,是,则最大“完全”子图已找到,且由k+1结点组成,否则,k--,再查...
Heskey 2003-10-20
  • 打赏
  • 举报
回复
对不起,是最大“完全”子图!

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧