短路径与次短路径算法及应用.pptx

第九课:次最短路径算法果壳信奥编程

概述最短路径常用的算法为Floyd、Bellman、SPFA、Dijkstra。既然能找出最短路径,当然也能找出次最短路径的。使用Floyd算法求解最短路径时,也能求解出次最短路径,以下面的图结构为案例。124534867129城市交通NF4680INNF1069INF0INF0821INF0邻接矩阵012345012345

Floyd算法流程邻接矩阵存储初始节点之间的权重关系。0表示自己和自己的距离,INF表示两节点间无直接连接,数值表示两节点的连接权重。Floyd是多源最短路径算法。算法结果需要记录任意两点间的距离,二维数组是较佳的选择。现在需要求解出次最短路径。则有两种存储方案:三维数组。两个二维数组。

Floyd算法流程三维数组本质是多个二维数组在空间深度上的叠加。如图,所有二维数组的i和j坐标描述任意两个节点的编号。z坐标表示两个节点之间的第一最短距离、第二最短距离、第三最短距离……ijz

Floyd算法流程演示算法流程时,借助于两个二维数数组更易于表达。如下图所示,初始,最短距离为两点间的权重值,次最短距离为INF(无穷大)。最短距离有严格次最短距离,要求次最短距离必须小于最短距离。非严格次最小距离,则可以是大于或等于最短距离NF4680INF0

文档评论(0)

1亿VIP精品文档

相关文档