用Python编写的Watts和Strogatz图

时间:2014-08-26 20:28:02

标签: python graph networkx

我需要使用Watts和Strogatz生成随机图。我正在寻找与我的真实数据相同的格式。我必须将其保存在csv或txt文件中。它更像Small World Network 根据我在Watts和Strogatz中所读到的,它是没有权重的无向图。但我需要生成带有重量的无向图。

真实数据格式

Node  Node weight = time in seconds
  453  645    343
  453  645    533
  645  8090   349
  645  453    3563
  564  645    3533
  564  453    345
  8090 453    563
  8090 645    4525
  564  8090   3533

Degree为1且两个节点对连接一定时间,并以秒为单位给出。什么是使用Seed(0到4)及时(1到5)生成图数据的最佳方法,即Seed0_time1,依此类推,直到Seed4_time5。五个例子。

我知道它可能过于宽泛,但如果有人能指出我正确的方向并且有一些代码支持,那就太棒了。我确实在这里寻求帮助,我几乎看不到任何已经回答的帖子。

1 个答案:

答案 0 :(得分:1)

你试过NetworkX吗?他们有一堆这样的小世界算法,包括Watts-Strogatz,它们相当容易使用。 如果您真的想要一个没有权重的无向图,请查看Classic random graphs NetworkX可以生成的集合。但是如果你必须使用Watts-Strogatz,下面是与NetworkX一起使用它的示例代码。大多数随机图生成器返回Graph个对象,因此here's有关Graph可用方法的文档。

import networkx as nx
watts_strogatz = nx.watts_strogatz_graph(200,2,0.15)
nx.nodes(watts_strogatz) # Prints out the nodes