簡體   English   中英

加快networkx中的隨機最小生成樹?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM