【问题标题】:Random adjacency list generator随机邻接表生成器
【发布时间】:2012-08-03 12:27:01
【问题描述】:

我目前正在开发一个应用程序,以在我的最后一年项目的图表中找到最大集团。我已经完成了大部分项目,并且刚刚开始测试应用程序。

应用程序当前使用邻接列表作为输入,我想知道是否有人知道邻接列表随机生成器,以便我可以测试我的应用程序?

非常感谢

【问题讨论】:

    标签: c# graph-theory adjacency-list clique-problem


    【解决方案1】:

    如果您根据邻接矩阵而不是邻接列表来考虑图形,则此问题更容易解决。具有m 顶点的图可以由mm 矩阵表示,其中每条边如果不存在则为0,如果存在则为1。

    对于有向图,所有元素都是必需的,但对于无向图,您需要一个上三角矩阵。

    获得邻接矩阵后,您可以轻松地将其转换为邻接列表。

    【讨论】:

    • 正确。您可以通过将用于将单元格设置为 1 的概率来生成或多或少密集的图形。
    • 嗨,我正在使用类似的东西,但是,我需要使每个顶点恰好有 N 个随机连接,概率为N/m (每行) ,所以我循环m 次直到结束,计算生成的连接counted,从N 中减去这个,得到剩余的连接remaining = N - counted,然后我将概率重新设置为remaining/m,然后再去一次,这有效吗?因为有时生成一个非常大的矩阵(即2Miliion)需要很长时间!有没有更快的方法! [p.s 我正在使用 MPI/C++]
    【解决方案2】:

    这取决于您的随机图模型。最简单的模型是Erdős–Rényi model,您可以在其中指定节点的数量和任何给定对之间的链接概率。这很容易生成,但生成的图表不会很有趣,因为它们与现实世界中观察到的大多数网络完全不同。现实世界的网络通常具有幂律度分布和更高的聚类系数。还有一些其他标准模型您可能对此感兴趣(Watts-StrogatzBarabási–Albert)。我还使用了this paper 中描述的 LFR 模型,它有可用的源代码here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2014-05-21
      相关资源
      最近更新 更多