图的最短路径之(迪杰斯特拉算法)python实现

本文介绍了迪杰斯特拉算法的思想和步骤,用于解决无向图的单源最短路径问题。通过具体例子展示了如何手动计算最短路径,并讨论了算法的应用和限制,特别强调了最短路径的最优子结构性质。
摘要由CSDN通过智能技术生成

前面我们已经了解到了无环有向图怎样求关键路径的方法,今天我们来看看无向图怎样求最短路径,这在实际应用过程中的作用很大,不如交通路线图,从出发点到终点,走哪条路用时最短,或者花费最少等问题。

我们先来看单源最短路径的求法。即给定了起点 v v v,求从起点出发,到图中各个顶点的最短路径问题。
对于这个问题,迪杰斯特拉(Dijkstra)提出了一个按路径长度递增的次序产生的最短路径的算法。

下面介绍迪杰斯特拉算法思想:
(1)、假设用带权的邻接矩阵arcs来表示带权有向图,arcs[i][j]表示弧< v i v_i vi, v j v_j vj>上的权值。若< v i v_i vi, v j v_j vj>不存在,则置arcs[i][j]为无穷大(在计算机中可用允许的最大值代替。)S为已经找到的从 v v v出发的最短路径的终点的集合,他的初始状态为空集。那么,从v出发到图中的其余各顶点(终点) v i v_i vi可能达到的最短路径长度的初值为:
D[i] = arcs[ Locate Vex(G,v) ][i] v i v_i v

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值