【发布时间】:2012-08-03 12:27:01
【问题描述】:
我目前正在开发一个应用程序,以在我的最后一年项目的图表中找到最大集团。我已经完成了大部分项目,并且刚刚开始测试应用程序。
应用程序当前使用邻接列表作为输入,我想知道是否有人知道邻接列表随机生成器,以便我可以测试我的应用程序?
非常感谢
【问题讨论】:
标签: c# graph-theory adjacency-list clique-problem
我目前正在开发一个应用程序,以在我的最后一年项目的图表中找到最大集团。我已经完成了大部分项目,并且刚刚开始测试应用程序。
应用程序当前使用邻接列表作为输入,我想知道是否有人知道邻接列表随机生成器,以便我可以测试我的应用程序?
非常感谢
【问题讨论】:
标签: c# graph-theory adjacency-list clique-problem
如果您根据邻接矩阵而不是邻接列表来考虑图形,则此问题更容易解决。具有m 顶点的图可以由m 到m 矩阵表示,其中每条边如果不存在则为0,如果存在则为1。
对于有向图,所有元素都是必需的,但对于无向图,您需要一个上三角矩阵。
获得邻接矩阵后,您可以轻松地将其转换为邻接列表。
【讨论】:
N/m (每行) ,所以我循环m 次直到结束,计算生成的连接counted,从N 中减去这个,得到剩余的连接remaining = N - counted,然后我将概率重新设置为remaining/m,然后再去一次,这有效吗?因为有时生成一个非常大的矩阵(即2Miliion)需要很长时间!有没有更快的方法! [p.s 我正在使用 MPI/C++]
这取决于您的随机图模型。最简单的模型是Erdős–Rényi model,您可以在其中指定节点的数量和任何给定对之间的链接概率。这很容易生成,但生成的图表不会很有趣,因为它们与现实世界中观察到的大多数网络完全不同。现实世界的网络通常具有幂律度分布和更高的聚类系数。还有一些其他标准模型您可能对此感兴趣(Watts-Strogatz 或 Barabási–Albert)。我还使用了this paper 中描述的 LFR 模型,它有可用的源代码here。
【讨论】: