求最短路径

最短路径

一、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
在这里插入图片描述在这里插入图片描述
路径和最短距离:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值