最短路径
一、sparse创建稀疏矩阵G
法1:W(起点,终点)=权重值
G=sparse(W)
法2:sparse([起点集合],[终点集合],[对应权重])
G=sparse(W)
例:关于下图的稀疏矩阵
matlab代码
两种方法矩阵一致
二、最短路径求法
2.1有向图最短路径
2.1.1 函数graphallshortestpaths
[view(biograph(G,[],‘ShowWeights’,‘ON’)): biography为生成一个biography object,[]为节点名称默认为Node1,'ShowWeights’表示显示权重,‘ON’(or ‘on’)为显示箭头]
step1 创建一个有向图
step2 找出有向图中每对节点之间的所有最短路径,使用graphallshortestpaths函数。
例:有向图如下图
代码如下:创建有向图
每对节点的最短路径:
代码如下:
节点二到节点一:
第二行推出:节点二到节点三,此时距离为51,然后到第三行:节点三到节点4,此时距离为15;再跳到第四行:节点4到节点2,此时距离为45。
此时距离为:51+15+45=111
路径为:2—3—4—1
2.2无向图最短路径
2.2.1 函数 graphallshortestpaths
由上图可以得到:
节点一到节点六的最短距离为 :21+32+29=82
路径为 1-5-3-6
2.2.2 函数 shortestpath
路径和最短距离: