我正在使用Python3.7.1和networkx2.2。我使用networkx生成有向图,并希望按照以下步骤使用计算该图的社区:
import networkx as nx
from networkx.algorithms.community import greedy_modularity_communities
G=nx.DiGraph()
G.add_nodes_from([1,10])
G.add_edges_from([(1,2),(3,4),(5,6),(7,1),(2,10),(3,8),(9,8)])
c = list(greedy_modularity_communitie
我有大约。我的图my文件中有4000个节点和6000条边,在将其转换为有向图格式的networkx方面没有问题。但是,当我试图从networkx运行girvan_newman()时,它似乎冻结了,因为我已经运行了这个脚本,而且它在过去的10个小时内没有完成(我尝试了10个节点和边缘,它在5分钟内就完成了)。
这是我的片段:
import community as community_louvain
import networkx as nx
from networkx.algorithms.community.centrality import girvan_newman
G = nx.re
我在steiner_tree库中使用了NetworkX近似算法。当给它一个有向图时,它向我显示了一个错误,即NetworkXNotImplemented: not implemented for directed type。
我还试图将下面的图转换为无向类型,并将其输入相同的类型。但我失去了一些信息,比如边缘方向。
如何在有向图上提取Steiner树?
我使用Networkx2.3/Python3.7/Windows1064bit/32GBRAM,并使用add_weighted_edge_from通过以下代码向图形添加近8M条边:
grows = [(int(row['source']),int(row['target']),int(row['weight'])) for row in rows]
g = nx.Graph()
g.add_weighted_edges_from(grows)
这导致我使用的内存增加了6 6GB,我仍然有超过14 6GB的内存可用,但它崩溃了,我得
我有一个图G,用它的加权矩阵W定义,使用networkx包
import networkx as nx
G = nx.from_numpy_matrix(W)
我引入了图G的直线图I(G)。使用networkx,我可以找到如下所示的直线图
import networkx as nx
G = nx.from_numpy_matrix(W)
I = nx.line_graph(G)
networkx文档读取
图、节点和边缘数据不会传播到新的图中。
我的问题是如何在直线图I(G)中找到对应于特定顶点v'_k的图G的边v_iv_j。
只是想知道是否有方便的networkx函数来返回连接到图(例如G)中给定节点(例如my_node_name)的边的列表。
我可以这样做:
edlist=[]
for ed in G.edges():
if 'my_node_name' in ed:
edlist.append(ed)
但是期望有更好的方法吗?
假设我有一个循环控制流图
A -> B -> C -> D -> G
^ |
| v
F <------ E
每个节点都与一个成本相关联。我另外还有一个状态变量,每次我进入节点D时都会修改这个变量。D -> E和D -> G的概率由这个状态变量决定。
我想要的是枚举所有可能的路径(在某个状态P( D -> G) = 1下),并找到每条路径的概率和成本。我认为第一步是将这个带有状态变量的控制流图通过展开将其转换为有向无环图。有没有简单的算法来解决这个问题?有什么库(比如networkx)