图的矩阵表示

                     

贡献者: 零穹

预备知识 图,矩阵及其运算

   将的点集和边集的关系用矩阵来体现,就是所谓的图的矩阵表示。体现点与点相邻关系的矩阵称为邻接矩阵;体现点与边关联关系的矩阵称为关联矩阵。当对某个图选定了权函数成为赋权图时,体现权函数的矩阵称为赋权矩阵。

1. 邻接矩阵

   邻接矩阵是用来体现点点相邻关系的,具体地,设图 G 的点集为 V(G)={v1,,vn}。若 G 是无向图,则邻接矩阵的第 (i,j) 个元反映了连接 vi,vj 的边数。若 G 是有向图,则邻接矩阵的第 (i,j) 个元反映了以 vi 为起点,vj 为终点的有向边数。

定义 1 邻接矩阵

   设 G 是图,V(G)={v1,,vn}A=(aij)n 阶矩阵。若 G 是无向图,aij 等于连接 vi,vj 的边数;若 G 是有向图,aij 等于以 vi 为起点,vj 为终点的有向边数。则称 AG邻接矩阵(adjacency matrix)。

定理 1 

   设 A 是有向图 G 的邻接矩阵,V(G)={v1,,vn}。则 Ak 中的第 (i,j) 元是 G 中长度为 k 的从 vivj 的有向的数目。

   证明: 使用数学归纳法证明如下:当 k=1 是,由邻接矩阵 A 的定义(定义 1 )和链长的定义(定义 1 ),可知定理成立;

   设 k=l 时定理成立,那么当 k=l+1 时,设 aij(l),aij(l+1) 分别是 Al,Al+1(i,j) 元。由于 Al=Al1A,所以

(1)aij(l+1)=m=1naim(l)amj. 
由假设,aim(l) 是从 vivm 的长为 l 的有向链数,amj 是从 vmvj 的长为 l 的有向链数,于是 aim(l)amj 是从 Vivm 再到 vj 的长为 l+1 的有向链数。而所有从 vivj 的长为 l+1 的有向链,都是从 vi 到某个 vx 的长为 l 的有向链与 vxvj 的长为 1 的有向链连接构成。

   因此若记 Am 是从 Vivm 再到 vj 的长为 l+1 的所有有向链的全体,而 A 记为从 Vivj 的长为 l+1 的所有有向链的全体,那么

(2)A=m=1nAm. 
显然 AaAb=,ab,因此
(3)|A|=m=1n|Am|. 
|Am|=aim(l)amj。因此定理得证。

   证毕!

   这一定理对无向图也是成立的,证明类似。

2. 关联矩阵

   关联矩阵是用来体现点边的关联关系的,具体地,设图 G 的点集和边集分别为

(4)V(G)={v1,,vn},E(G)={e1,,em}. 
G 是无向图,则关联矩阵的第 (i,j) 个元反映了 vi,ej 是否关联。若 G 是有向图,则关联矩阵的第 (i,j) 个元反映了以 viej 的起点还是终点。为方便使用 Mathematica 软件进行图论计算起见,我们这里使用 Mathematica 关于图的关联矩阵定义

定义 2 关联矩阵

   设 G 是图,V(G)={v1,,vn},E(G)={e1,,em}A=(aij)n×m 的矩阵。若

(5)aij={0,viej,1,ej=(,vi)or{vi,vk},ik1,ej=(vi,),2,ej=(vi,vi) 
则称 AG关联矩阵(incidence matrix)。

例 1 

   设有图 G=(V,E,φ),其中

(6)V={v1,v2,v3},E={e1,e2,e3,e4,e5},φ(e1)=(v1,v1),φ(e2)=(v1,v1),φ(e3)=(v1,v2),φ(e4)=(v2,v1),φ(e5)={v1,v2}. 
其中我们定义的 e1,e2 尽管都是 (v1,v2),但是在 mathematica 中可以将它表示为有向环和无向环1,因此可以用它们演示 mathematica 中它们在关联矩阵中对应的元是相同的。 该图具有如下的表示

图
图 1:例子图的表示

   那么由关联矩阵定义,该图的关联矩阵为

(7)(221110011100000). 

   该例的 Mathematica 代码如下,其表明关联矩阵和我们的定义一致。

图
图 2:代码及结果展示

定理 2 

   设 M 是图的关联矩阵,则 MMT(i,j) 元为

(8)nij={dG(vi)+2r=dG+(vi)+dG1(vi)+2r,i=j,μ(vi,vj)μ(vj,vi)+ν(vi,vj),ij. 
其中 μ(vi,vj) 表示以 vi 为起点 vj 为终点的边数,ν(vi,vj) 是以 vi,vj 为端点的无向边个数。且 MMT 的第 i 行和 i 列元素之和为
(9)4r+2Ni. 
其中 Ni 是过 vi 的无向边数。

   证明:N=MMT,由于当对某个 k 而言,MikMjkij 时,当是有向边 ek 的两端点时为 -1,当是无向边 ek 的两端点时 1;而 MikMikek 的端点且 ek 不是环时为 1,是环时为 4。因此 k=1|E(G)|MikMjk,ij 表示以 vi,vj 为端点的边数的负值+该点上 4 倍的环数,k=1|E(G)|MikMik 表示以 vi 为端点的边数加上 3 倍的环数,即该点的度加 2 倍的环数。因此,若设 r 是过点 vi 的环数,则有

(10)nij={dG(vi)+2ri=dG+(vi)+dG1(vi)+2ri,i=j,μ(vi,vj)μ(vj,vi)+ν(vi,vj),ij. 
其中 ri 是过 vi 的环数,μ(vi,vj) 表示以 vi 为起点 vj 为终点的边数,ν(vi,vj) 是以 vi,vj 为端点的无向边个数。由 N 的定义知 N 是对称的。且
(11)j=1|V|nij=dG(vi)+2rj=1,ji|V|(μ(vi,vj)+μ(vj,vi)ν(vi,vj))=dC(vi)+2r(dG(vi)2r)+2j=1,ji|V|ν(vi,vj)=4r+2j=1,ji|V|ν(vi,vj). 
证毕!

例 2 

   对例 1 的图,有 d(v1)=7,d(v2)=3,d(v3)=0,由定理 2 ,可以看出它的关联矩阵和其转置的乘积为

(12)(1110130000). 
使用定理 2 的结果计算行和得:第一行和为 42+21=10,第 2 行为 1,第 3 行为 0。由上面的矩阵可验证这是一致的。

3. 赋权矩阵

   赋权矩阵是用来体现赋权函数的,其有不同的定义方式。例如,设图 G 的点集为 V(G)={v1,,vn},则赋权矩阵是一个 n 阶矩阵。若 G 为有向图,则其第 (i,j) 个元反映了以 vi 为起点 vj 为终点的所有边的权值之和;若 G 为无向图,则其第 (i,j) 个元反映了连接 vi,vj 的所有边的权值之和。

定义 3 赋权矩阵

   若 G 是图,ω 是其上的权函数。则给出权函数的矩阵称为赋权矩阵


1. ^ 在某些现实的意义上其不是等价的,比如一条以 a 为端点的环,规定只能逆时针走,那么它就是单向的,而若双向可走则才等价于无向环,此时应当由表示顺时针和逆时针的记号进行方向的标记,比如"-",即 (a,a) 表示逆时针,(a,a) 表示逆时针。这都是定义的问题,仅仅为了一一对应我们关心的问题,没有标准的表示,只要符合表达了对应关系即可,但是为了方便往往会约定某一种习惯定义,正如我们习惯了集合用花括号定义


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利