阅读 36

最短路径matlab程序输出路径,一个图怎样求最短路径树

1 matlab图论工具箱中的函数matlab图论工具箱主要用于求解最短路径、最小生成树和最大流。

一般命令如下表所示。

函数名功能graphallshortestpaths要么求出图中所有顶点对之间的最短距离graphconncomp来寻找没有有向图的连通枝,要么在有向图的强(弱)连通枝graphisdag测试中有向图是否包含圈否则,返回0graphisomorphism以确定是否包含两个图表。否则,返回0graphisspantree以确定该图是否生成树,然后返回1。 否则返回0graphmaxflow计算有向图的最大流graphminspantree,在图中寻找最小生成树graphpred2path,求出将前驱顶点序列变为路径的顶点序列graphshortestpath, 求出图表中指定的一对顶点间的最短距离和最短路径graphtopoorder,执行有向图的拓扑分类graphtopoorder的raverse,从一个顶点出发,求出可以横穿图中的顶点2,求出无向图中任意2点间的最短距离

图中的M2_1和M2_2之间的数字2057表示两点之间的距离。 matlab中的函数graphshortestpath用于求出无向图的任意两点之间的最小距离。 根据有向图,需要构造任意相邻两点之间的距离矩阵。

例如:

a (1,2 )=2057; a (1,3 )=2031; 代表点M2_1和点M2_2之间的距离为2057,而点M2_1和点M2_3之间的距离为2031

matlab编程实现求出图中任意两点间距离的最小值。

clc; clear close all; %计算任意两个之间的最小距离sum=0; %保存距离合计a (1,2 )=2057; a (1,3 )=2031; %点1和点2间距离为2057,点1和点3间的距离为2031 a (2,3 )=1967; a (2,5 )=1042; a (2,6 )=1403; a (3,4 )=821; a (3,5 )=1115; a (4,9 )=2281; a (5,8 )=1905; a (6,7 )=1329; a (7,8 )=1666; a (8,9 )=1513; a=a '; %matlab工具包的请求数据为下三角矩阵[i,j,v]=find(a ); b=sparse(I,j,v,9,9 ); 构造%稀疏矩阵[x,y,z]=graphshortestpath(b,1,9,' directed ',false ); %函数括号内的1和9分别表示图中的第1和第9个顶点,只要变更数字就可以求出任意2点的最小距离。 x是计算得到的1和9两点之间的最小距离函数的计算结果,x是5133,y是经过了从点1到点9的最短距离的点,输出在[1 3 4 9]中表示通过了第3点和第4点。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐