python - 查找彼此相距 2 到 3 跳的节点对
问题描述
我有一个包含大约 50,000 个节点和 2,000,000 条边的大图。我需要找到彼此相距 2 到 3 跳的所有节点对。
最简单(也是肮脏)的解决方案是首先创建组合扩展,然后检查每对节点:
import networkx as nx
import itertools
g = nx.erdos_renyi_graph(n=5000, p=0.05)
L = list(G.nodes())
# Create a complete graph
G = nx.Graph()
G.add_nodes_from(L)
G.add_edges_from(itertools.combinations(L, 2))
但是,当我尝试创建一个包含 45,000 个节点和 200 万条边的完整图时,内存不足。
是否有任何其他解决方案可以在合理的时间内检查大图?感谢您的任何建议或指示。
解决方案
推荐阅读
- java - App引擎表单提交返回服务器错误的JSP表单
- machine-learning - 将所有功能与目标变量放在同一范围内如何影响性能?
- search - 如何查询 solr 以获得完整的结果,而不是消除结果中的空值
- c - 在C中连接双指针char数组
- onesignal - 用户(Android 设备)未显示在 OneSignal 仪表板中。OneSignal AppId 格式无效反应
- android - GridView 项目位置在滚动时动态更改位置
- sql - 无法将 varchar 转换为 int 或减去它们
- python - 如何将 HTML 表单中文本输入的名称设置为变量
- c++ - 修改 std::map 的键
- zip - 下载 zip 文件、解压缩和安全删除它的有效方法