我发现许多算法和方法都在谈论寻找两点之间的最短路径,但我遇到的数据建模为:
[(A,B),(C,D),(B,C),(D,E)...] # list of possible paths
如果我们假设我需要从 A 到 E 的路径,结果应该是:
(A,B)=>(B,C)=>(C,D)=>(D,E)
但我找不到进行此搜索的 pythonic 方式。
请您参考如下方法:
Pythonic 方式是使用存在的模块。在这种情况下,我们知道,networkx在那里,我们可以写
实现
import networkx as nx
G = nx.Graph([('A','B'),('C','D'),('B','C'),('D','E')])
path = nx.shortest_path(G, 'A', 'E')
输出
zip(path, path[1:])
[('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')]
