在C#中有权利图中找到最大权重集群的免费可用实现吗?在加权图中找到最大权重集团C#实现
1
A
回答
1
找到最大集团是一个NP难题。你可以在Clique problem(维基百科)找到有用的东西。
2
您可以阅读论文“最大集团问题的快速算法”,您将找到本文提出的有效最大集团算法。另外,最大加权算法可以在“用于最大加权集团问题的新算法”中找到。这里是伪代码:
1 **FUNCTION CLIQUE(U, size)**
2 if |U| = 0 then
3 if size > max then
4 max ← size
5 New record; save it.
6 found ← true
7 end
8 return
9 end
10 while |U| != ∅ do
11 if size + weight(|U|) <= max then
12 return
13 end
14 i ← min{ j|vj ∈ U}
15 if size + c[i] <= max then
16 return
17 end
18 U ← U ∖ {vi}
19 CLIQUE(U ∩ N(vi); size + weight(vi))
20 if found = true then
21 return
22 end
23 end
24 return
25 **FUNCTION NEW()**
26 max ← 0
27 for i ← n downto 1 do
28 found ← false
29 CLIQUE(Si ∩ N(vi), weight(i))
30 c[i] ← max
31 end
32 return
我们假设Si代表有比我大的指数,例如顶点{V1,V1 + 1,...,VN}。 N(vi)表示vi的相邻顶点。全局变量最大表示我们现在发现的集团的最大尺寸,而全局变量找到表示我们是否找到了更大的集团。数组c []记录Si的最大集团大小。 大小在本地递归记录最大团大小。
有几种修剪策略,它能避免无用的搜索,特别是在第11行和15行
您可以使用哈希表来实现这个算法。
相关问题
- 1. 实现加权图
- 2. 查找最小加权集
- 3. 找到一个图的最小权重
- 4. 在C++中找到最短路径权重
- 5. 在非加权图中找到最短路径
- 6. 如何在定向加权图中找到最短周期?
- 7. java - 如何找到MST中最大的加权边缘?
- 8. 在Spark GraphX中寻找最大边缘权重
- 9. 在SOA中实现授权
- 10. 在PHP中实现权限
- 11. 最大中值权重匹配
- 12. 在加权图中查找边缘
- 13. 在Java和Bellman-Ford中加权定向图的实现
- 14. 比较大型加权标签云集?
- 15. 找到最后一个TR(集团)
- 16. 加权嵌套集
- 17. 在绝对权重的加权图上计算网页排名
- 18. 最大加权片段覆盖算法
- 19. 找到加权名单的中间
- 20. 加权HITS算法实现(hub和权威评分)
- 21. Dijkstra的算法无法处理负面权重,您何时在现实世界中看到负面权重?
- 22. 基于边权重的子集图
- 23. 寻找最佳起点权图
- 24. 在asp.net中实现证书授权
- 25. 在Android M中实现新权限
- 26. 类别权限在Rails中的实现
- 27. 在Libsvm/Liblinear中实例权重
- 28. 蟒蛇离开10%分支与最大权重NetworkX图
- 29. TFS在特定集合中创建团队项目的权限
- 30. 找到最大的子集
作业有问题? – elricL 2011-06-03 07:52:25
http://en.wikipedia.org/wiki/Graph_theory – MBen 2011-06-03 07:59:45
这不是一项家庭作业。只是缺乏算法的知识。 – StuffHappens 2011-06-03 08:03:49