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

1、图的定义及表示

       定义:图是一集元素(顶点集)和各元素之间的关系(边集)

       表示:图G  = ( V , E)    这个二元组中,V表示点集,E表示边集

                  例如: V = {v1,v2,v3,v4}    E = {(v1,v2),(v2,v3),(v1,v4)}   

                  可见,边是由它所连接的两个顶点确定的

2、相关概念、术语

阶:图G的顶点的数目

环边:两端点重合

重边:直接连接两个顶点u ,v, 有两条,或者两条以上的边

简单图:无环边,无重边 的 图

完全图:两个条件(1)任何两个顶点之间都有一条边 (2) 简单图

平凡图:只有一个顶点,边集为空

空图:边集为空

度:顶点关联的边的数目,是每个顶点都有的一个属性

最大度:图G所有顶点度的最大值

最小度:同理

正则图:图G所有顶点的度都相等

补图:和图G拥有同一顶点集,但是不包含图G包含的任何边,除此之外,把该顶点集其他的所有可能的边都包含在内。(类比 补集的概念)

子图:图H是图G 的子图,则图H所有的顶点都包含在图G的顶点集中,边也同理

生成子图:图H是图G 的子图,并且 图H 拥有 和图G相同的顶点集

点导出子图:从图G中抽出一部分顶点作为 子图的顶点集,以这些顶点做端点的边 作为 边集

边导出子图:从图G中抽出一部分边作为 子图的边集,这些边所关联的顶点 作为子图的顶点集

路:顶点不重复出现的,边也不重复出现的,点边接续交替出现的序列。

环(圈):中途点不重复的,边也不重复的,起点和终点相同,点边接续交替出现的序列

路和环的长度:边的数目

最短路(距离):顶点u 和 v 之间,具有最小长度的路

奇圈:简单图中,长度为奇数的圈

偶圈:简单图中,长度为偶数的圈

简单图 围长: 最短圈的长度

简单图 周长:最长圈的长度

二部图:对图G顶点集的一个划分,划分为两个非空子集X,Y后,图G任意一条边的两个顶点,分别来自于这两个非空子集

完全二部图:子集X的每个顶点与子集Y的所有顶点都有边的连接

联通性:图G任意两个顶点之间 都有路

3 、同构:

     顶点和边都一一对应,并且连接关系完全相同,只是顶点和边的名称不同,成为同构。

     同构是一种等价关系,可将n阶图分为若干等价类(满足反身性,对称性,传递性),同一类中的图具有相同的结构,可以看作同一个图(忽略名称的差异)

    两图同构需要满足的一些必要条件:(1)阶必须相等(2)边数必须相等(3)有相同的环边、重边、圈的状态(4)对应顶点的度相等

    同构判断:一般要构造顶点间的一一映射,然后考察邻接关系是否相同。目前还没有简便的办法。判断不同构相对比较容易,只要在必要条件中,任意找出不满足的部分,则不同构成立

 

4、图的中心与中位点:

  顶点有赋权的图

(1)我们的研究对象是这样的一个图:

            图G是一个赋权图,每条边上都有一个非负权值,每个顶点也有一个非负权值,d(u,v)是考虑边赋权下,u,v之间的最短路

(2) 概念

    图G的半径 radius:(1)找出任意顶点到其他所有顶点最短路的最大值 (2)在这些最大值中,取最小值

    图G的直径 diameter :(1)找出任意顶点到其他所有顶点最短路的最大值 (2)在这些最大值中,取最大值

   顶点u的离心率:    e(u)  = max  q(v)*d(u,v)  其中,v是图G中任意一个顶点 ,q(v)为顶点v的权值

                              (1)找出顶点u到其他所有顶点的最短路,乘以对应顶点的权值 (2)在这些乘积中,取最大值

   图G的中心(center):具有最小离心率的点

  图G的中位点(中值,重心)median:设g(u)  = \sum_{{}^{v\in V(G)} } q(v) *d(u,v)  其中,q(v)为顶点v的权值。min g(u) 的顶点就是中位点

  图的中心,中位点一般并不唯一, 中心、中位点也不一定相同

  

   顶点无赋权的图

(1)我们的研究对象是这样的一个图:

            图G'是一个赋权图,每条边上都有一个非负权值,d(u,v)是考虑边赋权下,u,v之间的最短路

(2) 概念    

    顶点u的离心率:    e(u)  = max d(u,v)  其中,v是图G中任意一个顶点 

                              (1)找出顶点u到其他所有顶点的最短路 (2)取最大值

    图G'的半径 radius:所有顶点离心率的最小值

    图G'的直径 diameter :所有顶点离心率的最大值 

    图G'的中心(center):具有最小离心率的点

    图G'的中位点(中值,重心)median:设g(u)  = \sum_{{}^{v\in V(G)} } d(u,v)  ,min g(u) 的顶点就是中位点

   

  求图G中心点的算法:

   输入:赋权图G,各顶点的权q(v) 

   输出: G的中心

    第一步:利用最短路法求出G中所有顶点之间的距离,得到距离矩阵 

    第二步:对矩阵的每一列,乘以对应顶点的权值;然后,找出每行中乘积最大的那个值,即是该行对应顶点的离心率

    第三步:比较所有顶点的离心率,找出离心率最小的点(不一定唯一)

    第四步:输出这些点

 

求图G的中位点的算法 :

   输入:赋权图G,各顶点的权q(v) 

   输出: G的中位点

   第一步:利用最短路法求出G中所有点之间的距离,得到距离矩阵

   第二步:对矩阵的每一列乘以对应顶点的权值;然后,对每一行求和,得到g(u)  = \sum_{{}^{v\in V(G)} } d(u,v)

   第三步:比较g(u)所有值,找到最小值点(可能不唯一)

   第四步:返回这些点

 

5、图的矩阵表示

     研究对象:图G = (V,E),V={v1,v2,...vn} ,  E={e1,e2,e3,...,em} 

    (1)关联矩阵M(G):以V中各顶点为行,E中各边为列,构造的矩阵。矩阵的元素表示 顶点和边的关联次数(关联,就是顶点是该边的端点)

 (2)邻接矩阵A(G):分别以V中各顶点为行 和 列 ,构造的矩阵。矩阵元素表示 顶点和顶点之间相邻的次数(相邻:两顶点共同作为一条边的端点)

(3)关于关联矩阵和邻接矩阵的一些特性:

 a)关联矩阵

简单图的关联矩阵,元素只有0和1, 元素超过1则说明对应的边是环边

每列元素的和,都是2

每行元素的和,等于对应顶点的度

 b)邻接矩阵

邻接矩阵是对称矩阵

每行(或者列)元素之和,等于对应顶点的度

简单图的邻接矩阵,元素只有0和1,元素超过1则说明两顶点之间有重边

简单图的邻接矩阵,对角线元素均为0,如果不全为零则说明有环

(4)关联矩阵和邻接矩阵的一些推论

a) A是n阶图G的邻接矩阵,A^{m} (0 代表从顶点i到顶点j ,所有长度为m的途径的数目。

     因此,在不断乘以矩阵A的过程中,A^{m}记录了所有的每两个顶点间长度为m的路径的数目

b)  A^{2} 的对角线元素a_{ii} 的值,等于对应的顶点i的度

     A^{3} 的对角线元素a_{ii} 的值,等于包含顶点v_{i}的三角形数目的2倍

     图G中所有的三角形的数目,等于A^{3} 的对角线元素之和除以6(因为每个三角形3个顶点,相当于每个三角形被记录了3 次,再乘以每个a_{ii}将包含顶点v_{i}的三角形数目记录了2次,所以要除以6)

c) 连通图G,图中任意不同的两个顶点v_{i}  ,  v_{j}  的距离等于,使得A^{m} 中a_{ij} \neq 0 的最小的整数m。(这个结论很明显,直到m,顶点v_{i}  ,  v_{j}  才有了最小长度的途径,那么它也一定是最短路)

d) 从不同的两个顶点v_{i}  ,  v_{j} ,长度不超过k的途径的数目,等于A+A^{2}+...+A^{k}  的元素 a_{ij} 的值

e) A 是n(n>=3) 阶图G的邻接矩阵,R = A+A^{2}+...+A^{n-1}  , 则A是联通图的充要条件是 R中每个元素都不为0.

     证:必要性:显然,若A是连通的,则每两个相异元素之间都是有长度为l 的路,R非对角线元素均不为零;另外, A^{2} 的对角线元素a_{ii} 的值,代表的是每个顶点的度,也都是非零的,所以R中的元素必然非0.

            充分性:R中 r_{ij} 不为0 ,意味着不同的两个顶点v_{i}  ,  v_{j} 之间至少有长度为 k (1\leqslant k\leqslant n-1) 的1条途径,也就是说,至少有长度小于等于k的最短路。所以A是联通的

f) G是点和边都无权的连通图,A是G邻接矩阵,R_{k} = A + A^{2} +...+A^{k}  ,求G的顶点v_{i} 的离心率e(v_{i}) ,等于使得R_{k}第i行没有零元素的最小k值。

证:很显然,求离心率,要找的是顶点v_{i}所有最短路的最大值。最小k值,使得R_{k}第i行某些元素刚好不为零,这个值一定是顶点v_{i}到该点的最短路(因为没有小于长度k的途径,k就是最小的途径)。显然,那些早已经变成非0的元素对应的顶点到v_{i}的最短路一定是小于k的。 因此,这个 最小k值就是顶点v_{i}的离心率了

g) G是连通图,A是G邻接矩阵,R_{k} = A + A^{2} +...+A^{k}  ,求G的半径rad(G) ,等于使得矩阵R_{k}中,至少有一行没有零元素的最小k值。(也就是,在k逐步增加的过程,第一次出现某行(或者某些行)没有零元素的k值)

证:不妨设图G所有点的权值均为1,这样就可以借助离心率的概念了。此时,半径rad(G)是所有点离心率的最小值,当k增加的过程中,第一次元素全部非零的行,获得了其对应元素的离心率(当时的k值)。由于我们要得到的是所有点离心率的最小值,只要找到第一次有某些行出现所有元素非零时的k值,这个k值一定是离心率的最小值。证毕

h) G是连通图,A是G邻接矩阵,R_{k} = A + A^{2} +...+A^{k}  ,等于使得矩阵R_{k}没有零元素的最小k值。

    证:显然,求直径diam(G) 就是求所有顶点离心率的最大值。因此只要找到使得R_{k}所有行都没有零元素的最小k值,这个k值,就是所有离心率的最大值了

 

 

 

 

你可能感兴趣的:(图论)