任务:使用 igraph 库的 python 接口为具有负权重的 DAG(有向无环图)查找最短路径,作为单源/单目标设置中的边/顶点列表。
尝试过:我在文档中找到的最接近的匹配项是get_shortest_paths
. 但是,当尝试函数返回时:
igraph._igraph.InternalError: Error at structural_properties.c:5220: Weight vector must be non-negative, Invalid value
似乎函数在内部尝试应用 Dijkstra 算法并失败。同时,根据文档,其他最短路径函数 ( shortest_paths
, shortest_paths_dijkstra
) 能够使算法适应图的属性。
问题:
- 在这种情况下是否可以使用替代功能?
- 或者如何
get_shortest_paths
选择正确的内部算法? - 或者可以明确指定算法(如在 R 界面中)
相关问题:
- igraph 是否能够检测到图是 DAG 并在拓扑排序图上使用更快的最短路径算法?
- 用于此的自定义 python 代码是否一定比通用内部 igraph 的算法之一慢(可能是用 C++ 编写的)?(|E| 以万计,|V| 以千计)
谢谢。
PS。Python 2.7,IGraph 0.6.5