目录
一、前言
二、最短路径
1.sqarse创建稀疏矩阵
2.有向图的最短路径
使用graphallshortestpaths函数
使用dijkstra.ma函数(直接引用)
3.无向图的最短路径
使用函数graphallshortestpaths(2021的版本不能用了)
使用shortestpath函数
三、未解决的问题
一、前言
动态规划——求解某类问题的一种方法,考察问题的一种途径
线性规划——一种算法,有标准的数学表达式和明确定义,对具体问题具体分析
二、最短路径
1.sqarse创建稀疏矩阵
制作无向图
法1:
%w(起点,终点)=权重值
w = zeros(4);%表示有一个一维数组,一维数组的个数4
w(1,2) = 2;w(2,4)= 6;
w(1,4) = 8;w(2,3)= 6;
w(1,3)= 3;
G = sparse(w);
法2:(创建稀疏矩阵)
%创建稀疏矩阵
%sparse([起点集合],[对应终点集合],[对应权重集合])
G = sparse([1 1 1 2 2],[2 3 4 3 4],[2 3 8 6 6]);
%1对2,对应权重为2
s = sparse(G);
2.有向图的最短路径
使用graphallshortestpaths函数
G = sparse([6 1 2 2 3],[2 6 3 5 4],[41 99 51 32 15]);
view (biograph (G,[],'ShowWeights','on'))
%MATLAB中设置视点的函数view
%biograph()用来画树状图展示元素的函数
类似线性代数里的最短路径问题
使用dijkstra.ma函数(直接引用)
3.无向图的最短路径
使用函数graphallshortestpaths(2021的版本不能用了)
G = sparse([6 1 2 2 3],[2 6 3 5 4],[41 99 51 32 15]);
UG = tril(G + G')
view (biograph (UG,[],'ShowArrows','off'))
graphallshortestpaths(UG,'directed',false)
使用shortestpath函数
%构造邻接矩阵
G = zeros(6);
G =graph([6 1 2 2 3 4 4 5 5 6 1],[2 6 3 5 4 1 6 3 4 3 5],[41 99 51 32 15 45 38 32 36 29 21])
plot (G ,'EdgeLabel' ,G.Edges.Weight)
[P,d]= shortestpath(G,1,6)
三、未解决的问题
view (biograph (UG,[],'ShowArrows','off'))
1.设置视点的函数为什么这么写?文章来源:https://www.toymoban.com/news/detail-441718.html
G = sparse([6 1 2 2 3],[2 6 3 5 4],[41 99 51 32 15]);
UG = tril(G + G')
view (biograph (UG,[],'ShowArrows','off'))
graphallshortestpaths(UG,'directed',false)
2.UG = tril (G +G')为什么文章来源地址https://www.toymoban.com/news/detail-441718.html
到了这里,关于matlab算法模型——图的最短路径和距离的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!