天天看点

图论最短路径问题(一)

 图的基本概念

总概念:图论中的图是由若干给定的点及连接两点的线构成的图形,表示事物之间的特定关系

点:表示事物

线:表示相应两个事物之间具有某种的特定关系

  • 边是否有方向:分为有向图(无向图的特例)和无向图
  • 边上是否有权值:分为有权图和无权图

在线作图网站

MATLAB作图

无向图制作

无权重

%% Matlab作无向图
% (1)无权重(每条边的权重默认为1)
% 函数graph(s,t),s和t表示对应的结点
% s 和 t 都必须具有相同的维数
% 这些节点必须都是从1开始的连续的正整数
s1 = [1,2,3,4];
t1 = [2,3,1,1];
G1 = graph(s1, t1);
plot(G1)

% 字符串元胞数组用大括号包
s2 = {'学校','电影院','网吧','酒店'};
t2 = {'电影院','酒店','酒店','KTV'};
G2 = graph(s2, t2);
plot(G2)

% 不显示坐标
set( gca, 'XTick', [], 'YTick', [] );        

有权重

% 可在s和t中的对应节点之间以w的权重创建边
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = graph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight)   %调用权重的标签      

有向图制作

% 无权图 digraph(s,t)
s = [1,2,3,4,1];
t = [2,3,1,1,4];
G = digraph(s, t);
plot(G)  

% 有权图 digraph(s,t,w)
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = digraph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight)         

权重邻接矩阵

无向图

  • 无向图对应的权重邻接矩阵是对称矩阵
  • 主对角线元素为0
  • 表示第i个节点到第j个节点的权重

有向图

  • 有向图对应的权重邻接矩阵不一定是对称矩阵
  • 主对角线元素为0
  • 表示第i个节点到第j个节点的权重