问题描述
我有一个有向图,正在使用 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}
具有 source
和 target
的算法将引发 NetworkXNoPath
(docs),例如您可以在无向算法的实现中看到,here,或 here 用于定向情况。它也在 dijkstra_path
的文档中。