我正在使用python 2.7和networkx。
我有一个非常大的网络,我需要找到原点和目的地之间的所有路径(不仅是最短的路径)。由于我的网络很大,我想加快一些限制,例如路径长度,成本等。
我正在使用networkx。我不想使用all_simple_paths,因为对于all_simple_paths,我必须根据路径长度(路径中的节点数)或路径成本(基于弧成本)过滤所有路径。过滤所有路径对于大型网络来说非常昂贵。
我真的很感激任何帮助。
答案 0 :(得分:0)
这取决于您正在寻找的路径。
首先,最短路径为您提供长度约束的最低边界c_min
。然后给定长度约束c>=c_min
,对于每个节点n
,您知道从开始到此节点的最短路径P_s_n
和距离c_n
。选择满足c_n <c
的节点。然后,您可以通过从P_s_n
到目标的任何路径任意扩展n
,这将满足您的长度约束。