[英]Speeding up random minimum spanning tree in networkx?
以下是一些代碼,其目標是使用貪婪和隨機邊緣權重構建隨機生成樹。 它的運行速度比我想要的慢得多。 有什么技巧可以加快速度嗎?
隨機生成的權重和最小生成樹的采樣速度都很慢...第一個對我來說尤其奇怪,因為只有179400條邊並且np.random.uniform(0,1,179400)執行得非常快。
(這里的慢速意味着大約幾秒鍾。)
(我很高興使用networkx以外的其他工具,但這不是可取的。)
import numpy as np
import networkx as nx
graph = nx.grid_graph([300, 300])
for edge in graph.edges():
graph.edges[edge]["weight"] = np.random.uniform(0, 1)
tree = nx.minimum_spanning_tree(graph)
如果在測試中更快地批量生成隨機數,則只需這樣做。
rand = np.random.uniform(0, 1, graph.edges.size())
i = 0
for edge in graph.edges():
graph.edges[edge]["weight"] = rand[i]
i += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.