其他分享
首页 > 其他分享> > 图论模型(1)--图的基本概念

图论模型(1)--图的基本概念

作者:互联网

有向图和无向图的建立以及赋权图

引入

Q:什么是图论?

A:图论是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

现在我们来探讨无向图和有向图的概念以及如何去建立最基本的图的模型

什么是图

对于初入图论的人来说,复杂的定义可能会直接劝退他们,现在我来举一个非常简单的例子。

这就是最常见的图,由于它没有指向,即没有明确的方向,它被称为无向图。

图是由顶点和边组成的,你应该很容易就知道那些元素是顶点,那些是边。

下面的具有方向的便是有向图:

若有的边有向,有的边无向,则称为混合图。

接下来我们将引入更多的概念:

若两个顶点有边相连,则称两个顶点相相邻,两个点称为起点/终点或端点

如1指向2,则这两个顶点相邻,这两个顶点被称为断点,而1被称为起点,2被称为终点。

仅含一个顶点的边称为自环

在无向图中,包含顶点v的边的个数,称为顶点的度。 在有向图中,以v为起点的边的个数,称为点的出度,以v为终点的边的个数,称为顶点的入度。

无向图的建立

建立简单无向图,我们使用Matlab,版本为R2017a。

% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并生成一个图
% s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组。
s1 = [1,2,3,4]; %s为顶点,必须保证连续且从1开始的正整数
t1 = [2,3,1,1]; %边 s与t之间是一一对应的
G1 = graph(s1, t1);
plot(G1)  %画出效果图

效果图:

带汉字的无向图:

% 注意字符串元胞数组是用大括号包起来的哦
s2 = {'学校','电影院','网吧','酒店'};
t2 = {'电影院','酒店','酒店','KTV'};
G2 = graph(s2, t2);
plot(G2, 'linewidth', 2)  % 设置线的宽度
% 下面的命令是在画图后不显示坐标
set( gca, 'XTick', [], 'YTick', [] );  

效果图:

有向图的建立:

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

注意边的顺序和方向,依次为1指向2,2指向3,3指向1,4指向1和1指向4

效果图:

赋权图的建立:

赋权图,每条边都有一个非负实数对应的图。这个实数称为这条边的权。

简而言之就是,顶点到顶点每一条边上都有一个数字,这个数字被称为权,在不同的实际问题当中权被理解成不同概念,例如,在最经典的求解最短路径问题中,权被理解为路程长短。

这就是一个赋权图的例子,现在我们来着手创建赋权有向图和赋权无向图

赋权无向图

% 函数graph(s,t,w):可在 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, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] ); 

在之前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, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );

邻接矩阵

为了我们方便进行数学上的计算,我们引入图的邻接矩阵这个概念。

当图上两个顶点相邻时,我们用1来表示,当图上两个顶点不相邻时,我们用0来表示,这样由0和1组成的矩阵我们称为图的邻接矩阵。

先看行再看列,例如(1,1)元素值为0,代表它不形成自环,(1,2)元素值为1,代表1和2是邻接的,以此类推。

可以看到,这种表示法非常简单、直接,另外无向图的邻接矩阵是一个对称阵。

关联矩阵

我们引入关联矩阵的概念,同样是在图中,当顶点是这条边的起点时,记为1,为终点时,记为-1。除此之外的其他情况记为0。


接下来我们将会介绍如何图的最短路径问题以及求解最短路径的算法迪杰斯特拉算法和弗洛伊德算法。

标签:赋权,图论,有向图,--,graph,称为,无向,顶点,基本概念
来源: https://www.cnblogs.com/Cassiopeia/p/15107371.html