算法类型
迪杰斯特拉算法
弗洛伊德算法
贝尔曼福特算法
算法优缺点
迪杰斯特拉算法不能够进行计算当权重为负数时的最短优化问题
弗洛伊德算法可以计算所有种类的图论问题
matlab实现
画出简单的有向图和无向图的代码
clc,clear
s = [1,2,3,4];
t = [2,3,4,1];
w = [3,2,4,6];
G1 = graph(s,t,w); %无向图
G2 = digraph(s,t,w); %有向图
plot(G1) %不带权重的图
plot(G1,'EdgeLabel',G1.Edges.Weight,'linewidth',2) %带有权重的图
set(gca,'Xtick',[],'Ytick',[]) %对坐标轴进行表示
% plot(G2)
画出简单的最短路径并进行标注出来
clc,clear
s = [9 9 1 1 2 2 2 7 7 6 6 5 5 4];
t = [1 7 7 2 8 3 5 8 6 8 5 3 4 3];
w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];
G = graph(s,t,w);
plot(G,'EdgeLabel',G.Edges.Weight,'linewidth',2)
set(gca,'Xtick',[],'Ytick',[])
[P,D] = shortestpath(G, 9, 4); //会自动进行最短规划,选择正确的算法种类,具体
//详细参考官方文档,help sho