贝尔曼福特的打印路径

问题描述

我的任务如下。我有一个开始顶点,一个结束顶点。我需要找到两者之间的最短路径。 在我的代码中,我能够找到最短路径成本,但我不明白如何返回与该成本相对应的路径。

输入是如下形式的图 [[vertex_from,vertex_to,cost],[vertex_from,cost]...]

def belmanford(adj_matrix,v_from,v_to):
n,graph = len(graphe(adj_matrix)),adj_matrix

dist = [float("inf") for i in range(n)] # all vertices are considered not visited
dist[v_from]=0#cost from start vertex to end vertex is null

for i in range(1,n):
    for u,v,c in graph:#iterating over all vertices
        
       
                
                
                if dist[u] != float("inf") and dist[u] +c < dist[v]:  
                        dist[v] = dist[u] + c #we have in dist all distances from vertex start to another one and we replace them when we find a better one
  
if dist[v_to]!=float("inf"):

    return dist[v_to]#shortest path
else:
    return -1

测试用例示例:

adj_matrix =[[0,1,5],[0,2,2],[1,[2,2]]
result=[0,2]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...