我想使用networkx计算节能路线。为此,我考虑将电池约束建模为边缘成本函数。在下面的示例中,我想根据我的车辆(b)的电池负载来计算s和t之间的最短路径。网络的约束将决定边缘成本函数。
例如,在s和v1之间,如果s的电池负载高于18,则边缘成本为18;如果电池负载小于18,则边缘成本为18(接近无限)。
是否可以定义网络中最短路径算法使用的边缘代价函数?

或者,您认为最好的解决方案是创建一个新的MultiDiGraph,根据起始点的初始费用重新计算所有可能的边缘成本?
编辑1:简化了这个问题,我们可以考虑负重(相当于电池的充电)等于零。第二次,我将了解如何使用约翰逊算法。它似乎是在networkx (paths.weighted.johnson.html)中实现的。
编辑2:最大电池负载为20,这解释了为什么电池负荷在s和v_3之间没有增加,以及为什么不可能通过s->v3->v2达到t。
发布于 2021-05-24 13:36:07
例如
C:\Users\James\code\PathFinder\bin>gui
l s v1 38
l s v3 0
l v1 v2 0
l v3 v2 38
l v2 t 23
s s
e t
s -> v3 -> v2 -> t ->( PathFinder是Dijsktra的boost::的C++包装器)
所以,现在我们有了一个新的以前隐藏的限制,电池容量最大为20。所以我提出了另一个假设,这应该是对任何可能出现的进一步限制的证明。它是基于算法的思想
这是一个非常专业的问题,我不会把它添加到PathFinder选项中。如果它代表了一个严重的现实世界问题,而不仅仅是家庭作业或acedemic,那么在PathFinder github存储库上打开一个问题,我们就可以讨论为此开发一个一次性应用程序的细节。
https://stackoverflow.com/questions/67671469
复制相似问题