MATLAB graphshortestpath求解最短路径问题

[DIST,PATH,PRED] = graphshortestpath(G,S)确定从节点S到图G中所有其他节点的单个源最短路径。边的权重是n-by-n邻接矩阵中表示的所有非零条目通过稀疏矩阵G.
[DIST,PATH,PRED] = graphshortestpath(G,S,D)确定单个源 - 从节点S到节点D的单个目的地最短路径。DIST是从源到每个节点的n个距离(对于不可到达的节点使用Inf而对于源节点使用零)。 PATH包含到每个节点的获胜路径,PRED包含获胜路径的前任节点。

%创建一个包含6个节点和11个边的有向图 求解节点1到6的最短路径
W = [.41 .99 .51 .32 .15 .45 .38 .32 .36 .29 .21];
DG = sparse([6 1 2 2 3 4 4 5 5 6 1],[2 6 3 5 4 1 6 3 4 3 5],W)
h = view(biograph(DG,[],'ShowWeights','on'))
%找到从1到6的最短路径
[dist,path,pred] = graphshortestpath(DG,1,6) %dist 最短路径值   path最短路径
%标记最短路径的节点和边缘
set(h.Nodes(path),'Color',[1 0.4 0.4])
edges = getedgesbynodeid(h,get(h.Nodes(path),'ID'));
set(edges,'LineColor',[1 0 0])
set(edges,'LineWidth',1.5)

在这里插入图片描述
dist =

0.9500

path =

 1     5     4     6

pred =

 0     6     5     5     1     4
  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值