我有一个加权图:
F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
G.add_edge(u,v,weight=1)
获取节点列表:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
我想按以下规则更改每条边的权重:
移除一个节点,例如节点5,显然,边(4, 5)
,并且(5, 6)
将被删除,并且每个边的权重将变为:
{# these edges are nearby the deleted edge (4, 5) and (5, 6)
(3,4):'weight'=1.1,
(6,7):'weight'=1.1,
#these edges are nearby the edges above mentioned
(2,3):'weight'=1.2,
(7,8):'weight'=1.2,
#these edges are nearby the edges above mentioned
(1,2):'weight'=1.3,
(8,9):'weight'=1.3,
# this edge is nearby (1,2)
(0,1):'weight'=1.4}
如何编写这个算法?
path_graph
只是一个例子。我需要一个适合任何图形类型的程序。此外,程序需要是可迭代的,这意味着我每次都可以从原始图中删除一个节点。
您可以以G[u][v][weight']的形式访问边权重,也可以通过迭代边数据来访问。所以你可以
相关问题 更多 >
编程相关推荐