[networkx]双边交换

[networkx]双边交换,networkx,Networkx,还有,已连接\u双\u边缘\u交换(G,nswap=1,\u窗口\u阈值=3) _窗口阈值是什么? 保持连通性不应该是对连通子图进行保证连通性的断边重连吗? 我相信你的问题是: nx.double\u edge\u swap的源代码说明: 而不是从生成的边列表中均匀地随机选择, 该算法从一组节点中进行非均匀选择 按程度加权的概率 他们为什么决定这样做?” 对吗 如果是这样,那么首先我将解释为什么这两种方法给出相同的结果。从概念上讲,我们希望创建一个大的边列表,然后从该列表中随机选择两条边。如果我

还有,已连接\u双\u边缘\u交换(G,nswap=1,\u窗口\u阈值=3) _窗口阈值是什么?
保持连通性不应该是对连通子图进行保证连通性的断边重连吗?

我相信你的问题是:

nx.double\u edge\u swap
的源代码说明:

而不是从生成的边列表中均匀地随机选择, 该算法从一组节点中进行非均匀选择 按程度加权的概率

他们为什么决定这样做?”

对吗

如果是这样,那么首先我将解释为什么这两种方法给出相同的结果。从概念上讲,我们希望创建一个大的边列表,然后从该列表中随机选择两条边。如果我们选择两个概率与其程度成正比的节点,然后从每个节点中选择一条边,则我们获得了相同的结果:

如果
u
c
倍于
v
的边,让
p\u v
成为选择
v
d\u v
其程度的概率。那么从
v
中选择给定边的概率是
p\u v/d\u v
:也就是选择
v
的概率de>,选择该边的概率。现在让我们看看
u
的边之一:它被选择的概率是
cp\u v/cd\u v
,这是相同的


现在为什么要这样做,而不是创建一个长的边列表?一个问题是内存限制。要从所有边中进行选择,需要将所有边都存储在一个列表或集合中。这将很困难。第二个问题是,一旦边交换,我们不仅必须更新图形,而且必须更新此列表或集合,而ich可能不是一个有效的过程。因此需要编写更多的代码并采取更多的步骤。

请在StackOverflow上使用英语。1.为什么作者使用算法从节点集中以度加权的概率非均匀选择,而不是从生成的边列表中随机均匀选择?您可以直接编辑帖子请随意编辑您的问题。您还可以添加标记“python”和“graphs”“。同时添加指向您要求的功能文档的链接。这将帮助用户回答您的问题。请让我知道我是否正确解释了您的问题。如果是这样的话,我将把你的问题改成英语。我不明白你的话,从v中选择某一边缘的概率是p_v/d_v:即选择v的概率乘以1/d_v,选择该边缘的概率。我可以认为d_v等于包含节点v的边的数目吗。现在我们假设len(G.edges())=m,那么p_v=d_v/m。这意味着1/m=p_v/d_v,即从v中选择给定边的概率。这是正确的?
# Instead of choosing uniformly at random from a generated edge list,
# this algorithm chooses nonuniformly from the set of nodes with
# probability weighted by degree.
程序中选择的方法和从边列表中随机选相比,有什么优势?