我需要使用Watts和Strogatz生成随机图。我正在寻找与我的真实数据相同的格式。我必须将其保存在csv或txt文件中。它更像Small World Network
根据我在瓦特和斯特罗加兹(Watts and 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
等级为1,并且两个节点对已连接一定时间,以秒为单位。在时间(1到5)中用Seed(0到4)生成图形数据的最佳方法是什么,即Seed0_time1依此类推,直到Seed4_time5。五个实例。
我知道这可能太广泛了,但是如果有人可以指出正确的方向并提供一些代码支持,那就太好了。我确实在这里寻求帮助,几乎看不到任何答复。
最佳答案
您是否尝试过NetworkX?他们有很多这样的小世界算法,包括Watts-Strogatz,并且它们非常易于使用。如果您确实想要没有权重的无向图,请查看NetworkX可以生成的Classic random graphs集。但是,如果必须使用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