微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果没有路径,NetworkX 在 single_source_dijkstra_path_length 中返回什么

如何解决如果没有路径,NetworkX 在 single_source_dijkstra_path_length 中返回什么

我有一个有向图,正在使用 NetworkX 从一个节点找到到所有节点的最短长度。为此,我使用了 single_source_dijkstra_path_length。在文档中,他们说当给定节点不在图中时会引发 NodeNotFound 错误。但是,我想知道对于从给定源无法访问(不存在路径)的节点,它会输出什么。

解决方法

该节点根本不包含在返回的字典中:

import networkx as nx

g = nx.Graph()

g.add_nodes_from(range(3))
g.add_edge(1,2,weight=2)
print(nx.single_source_dijkstra_path_length(g,1))
# {1: 0,2: 2}

具有 sourcetarget 的算法将引发 NetworkXNoPath (docs),例如您可以在无向算法的实现中看到,here,或 here 用于定向情况。它也在 dijkstra_path 的文档中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。