python - 加速networkx中的随机最小生成树?

标签 python optimization 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

关于python - 加速networkx中的随机最小生成树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722860/

相关文章:

python - PyQt4:将操作系统日期/时间打印到标签

haskell - 为什么使用 -O 时这个 Haskell 代码运行得更慢?

python - 如何优化此代码以更快地工作?猜猜它是用算法写的不完美

python - 使用 Networkx,如何将 graphml 和其他格式写入字符串而不是文件?

python - 使用 networkx 绘制图形时显示背景网格(也称为单元格)

python - Django:如何在应用程序之间访问区域设置字符串?

python - 减小 basemap 中使用的标记的大小并获得全屏

optimization - 幂等性的这种概括的名称是什么?

python - 在 Networkx 1.10 中,configuration_model() 获得了关键字参数 'create_using' 的多个值

python - 如何将图像添加到 QGraphicsScene 以便矩形项目可以位于其上?