【发布时间】:2026-02-01 07:10:01
【问题描述】:
我在 networkx 中有一个非常具体的图形问题:
我的有向图有两种不同类型的节点(我将它们称为 I 和 T),并且仅在 IT 之间使用边构建> 和 TI(所以 T 不与其他 T 连接,与 I 相同)
现在我需要模拟一个具有相同行为的新图:我有一定数量的 I 和 T 并且 IT 之间的边以一定的概率存在(也适用于 TI,但概率不同,我们称它们为 p_i 和 p_o)。
所以我的问题是我不能用 for 循环来迭代 I 和 T 因为两者都很大(我现在正在分析的数据是 5000 T 和 5000 I 但可能会增加到每个 300000),而我的电脑无法处理。
在这种情况下创建图表的最佳方法是什么?
【问题讨论】:
-
你能澄清一下边缘存在的概率吗?
-
通过查看第一个图(即真实图)的数据,我获得了边在可能数量上的比例。我使用这个比例作为模拟图的概率。不知道这样是否更清楚
-
“相当大”有多大?请给一个号码。此外,您的图称为 二分图。我建议尝试networkx.org/documentation/networkx-1.9/reference/generated/…
-
“所以我的问题是我无法使用 for 循环进行迭代……因为两者都很大,我的电脑无法处理。”这很奇怪,似乎是你真正的问题。当你尝试时究竟会发生什么? (我经常使用迭代超过一百万个节点的图的代码)
-
Networkx 与其他图形库相比速度较慢,而且您的问题似乎与性能有关 - 您是否考虑过例如网络吗?参见例如这个基准timlrx.com/blog/benchmark-of-popular-graph-network-packages-v2
标签: python networkx graph-theory social-networking