a*算法路径规划matlab_matlab使用shortestpath工具包处理Dijkstura算法最短路径问题

本文介绍了如何在MATLAB中使用shortestpath工具包解决Dijkstra算法的最短路径问题,通过案例展示了创建有向图、计算最短路径和高亮显示的过程,强调了该工具包的简洁性和便利性。
摘要由CSDN通过智能技术生成

3bebe6cfd1c64d711aee4c389ab4cb1b.png

matlab使用shortestpath工具包处理Dijkstura算法最短径问题

对于matlab求解最短路径的问题来说,这里介绍一个工具包,减少原来采用原理写代码的复杂性。使用shortestpath工具包解决最短路径,它的好处是直接对有向加权图进行选取最短路径,不再需要使用原来的老方法实现,这大大的简化了代码,使用起来更加简单、便捷!

案例及程序如下:

%做有向赋权图的最短路径,并用其他颜色显示出来

%工具:2018a------该函数matlab2015b之后才有

%工具包:shortestpath

%时间:2020.12.25

clc

clear

s=[1,1,1,2,2,3,3,4,4,4,5,5,6,6,7]; %编号

t=[2,3,4,4,5,4,7,5,6,7,6,8,7,8,8]; %能走的下一个编号

w=[1,7,1,8,1,1,1,18,1,1,1,12,1,15,1]; %距离

G= digraph(s,t,w); %做有向图

plot(G,'EdgeLabel', G.Edges.Weight,'linewidth',2);

set(gca,'XTick',[],'YTick',[] ) ;

[P,d] = shortestpath(G,1,8); %注意:该函数matlab2015b之后才有

%在图中高亮我们的最短路径

myplot = plot(G,'EdgeLabel',G.Edges.Weight,'linewidth',2); %首先将图赋给一个变量

highlight (myplot,P,'EdgeColor','r');%对这个变量即我们刚刚绘制的图形进行高亮处理,红色显示最短路径

title('最短路径')

输出结果:

最短路径为 1 4 7 8

最短的路径长度 3

图形展示:

dfa3ca5083475a206ce5c0e7ac02a455.png

从图形上可以很显然的看到与输出结果一致,所以在学习的过程中要学会采用图形进行表示!因此对于做研究来说,编程是最基础的东西。

使用shortestpath工具包能够快速的解决问题,但是对于使用原理(Dijkstura算法)解决问题额也是可以的,因为使用原理虽然说比较繁琐,但是对于自己理解最短路径算法有很大的帮助!

关注知乎,欢迎留言探讨算法和编程问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值