【问题标题】:Random graph generator随机图生成器
【发布时间】:2017-12-06 21:31:46
【问题描述】:

我对生成带有节点约束的加权有向随机图很感兴趣。 R 或 Python 中是否有可自定义的图形生成器?我唯一知道的是 igraph 的erdos.renyi.game(),但我不确定是否可以自定义它。

编辑:我要进行的自定义是 1)绘制加权图和 2)从绘图边缘约束一些节点。

【问题讨论】:

  • 是的。例如,networkx 有一些。可能有无数种不同的方式想要“定制”一个随机图生成器。因此很难说这些是否可以根据您的需要进行定制。
  • 谢谢。阐明了我所说的定制的含义。

标签: igraph networkx


【解决方案1】:

在 igraph python 中,您可以使用link Erdos_Renyi 类。

为了限制绘图边缘的某些节点,这是由 p 值控制的。

Erdos_Renyi(n, p, m, directed=False, loops=False) #these are the defaults

例子:

from igraph import *

g = Graph.Erdos_Renyi(10,0.1,directed=True)
plot(g)

通过设置p=0.1可以看到有些节点没有边。

对于权重,您可以执行以下操作:

g.ecount() # to find the number of edges
g.es["weights"] = range(1, g.ecount())
g.es["label"] = weights
plot(g)

结果:

【讨论】:

  • 约束意味着某些节点的 p=0 而不受约束的节点具有 p>0
  • 哦。好的,我会尝试找到一种方法并修改我的答案。 p=0 的节点意味着在你的情况下没有边对吗?
  • p=0 的节点不能形成边,但它们可以接收边。 p>0 的节点可以形成和接收边。
  • 另外,您在生成图表后添加权重,而不是生成加权图表。
  • 是的。在 erdos renyi 案例中,您需要在创建图表后添加权重。您也可以使用随机模块来产生随机权重。至于边缘形成这种类型的定制需要其他模块,如networkx
猜你喜欢
  • 1970-01-01
  • 2016-12-30
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 2023-01-03
  • 2017-09-03
  • 1970-01-01
相关资源
最近更新 更多