利用networkx求解最短路径的边属性

编程入门 行业动态 更新时间:2024-10-25 19:21:02
本文介绍了利用networkx求解最短路径的边属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用networkx计算两个节点之间的最短路径。例如:

paths = nx.shortest_path(G, ‘A’, ‘C’, weight=‘cost’)

paths将返回如下内容: [‘A’,‘B’,‘C’]

nx.shortest_path_length()返回该路径的成本,这也很有帮助。但是,我也想返回此路径遍历的边的列表。在这些边缘中有我存储的其他属性,我想要返回这些属性。

这可能吗?

推荐答案

以下是您需要的所有代码(希望:p):

import numpy as np # import matplotlib.pyplot as plt import networkx as nx # Create a random graph with 8 nodes, with degree=3 G = nx.random_regular_graph(3, 8, seed=None) # Add 'cost' attributes to the edges for (start, end) in G.edges: G.edges[start, end]['cost'] = np.random.randint(1,10) # Find the shortest path from 0 to 7, use 'cost' as weight sp = nx.shortest_path(G, source=0, target=7, weight='cost') print("Shortest path: ", sp) # Create a graph from 'sp' pathGraph = nx.path_graph(sp) # does not pass edges attributes # Read attributes from each edge for ea in pathGraph.edges(): #print from_node, to_node, edge's attributes print(ea, G.edges[ea[0], ea[1]])

输出如下所示:

Shortest path: [0, 5, 7] (0, 5) {'cost': 2} (5, 7) {'cost': 3}

更多推荐

利用networkx求解最短路径的边属性

本文发布于:2023-11-30 10:44:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1649697.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最短   路径   属性   networkx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!