我需要使用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。五个例子。
我知道它可能过于宽泛,但如果有人能指出我正确的方向并且有一些代码支持,那就太棒了。我确实在这里寻求帮助,我几乎看不到任何已经回答的帖子。
答案 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