邻接矩阵

视频笔记:https://www.bilibili.com/video/BV1cs411H7sz?t=38&p=48  (电子科技大学)

 

一,定义

1,设图 G  = < V,E >,其中 V = {v1,v2,··· ,vn},并假定结点已经有了从 v1 到 vn 的次序,则 n 阶方阵

AG = (aij)nxn  称为 G 的邻接矩阵 (adjacency matrix),其中 (i,j = 1,2,3,··· ,n)

aij =   {    1   < vi,vj >∈E 或 (vi,vj) ∈E  ,

          {    0   否则 

这里的定义可同时表示有向图和无向图,但这个邻接矩阵 ,他这里只用了 1 ,只表示一条边,是简单图。它也可以为 n,表示多条边,对应多重图

 

 

二,求补图

1,补图:设 G = < V,E > 为简单图,G′  = < V,E1 > 为完全图,则称

G1 =< V, E1 −E > 为 G 的补图(complement of graph),记为G(上面有道横线)。

 

2,若设简单图 G 的邻接矩阵 A = (aij)n×n,则它的补图 G 的邻接矩阵 A(上面有个横线) = ( aij (a 的上面有个横线) )n×n 为:

aij (a 的上面有个横线) =  {   1−aij i̸= j

              { 0   i = j ,      (i,j = 1,2,3,··· ,n)

注意:前提是简单图。

 

 

三,计算度数 

设图 G =< V,E >,V = {v1,v2,··· ,vn} 的邻接矩阵为
A =    a11 a12 ··· a1n

    a21 a22 ··· a2n

    . . . . . . . . .

    an1 an2 ··· ann


   若 G 是无向图,则结点 vi 的度数 deg(vi) = n ∑ k=1 ( aik +aii )  ,或 deg(vi) = n ∑ k=1 ( aki +aii )

   若 G 是有向图,则结点 vi 的出度 deg+(vi) = n ∑ k=1 ( aik ),入度 deg−(vi) = n ∑ k=1 ( aki )

( 无向图的 aii 代表环,在计算 度数 时,要计算两遍 )

 

四,通路数量的计算

1,引入

我们经常会考虑如下的问题:

有多少种方式可从成都到达北京?

猫头鹰和松鼠之间的间接食物竞争有哪些方式?

报文有多少种方式可从 A 计算机发送到距离很远的 B 计算机?

这些问题都可以归结为求图中任何两个结点间有多少条长度为 m 的通路的问题。 若使用人工方式,随着图中结点和边的数目增加,其难度将呈几何级数增加。

而 利用计算机,我们可以较为容易且准确的解决这个问题

 

2,计算

设 G = < V,E > 为线图(简单图),V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵,

Am = (a(m) ij )nxn。则:

  a(m) ij 为从结点 vi 到结点 vj 长度为 m 的通路数目;  

  a(m) ii 为结点 vi 到自身的长度为 m 的回路数目;

  n ∑ i=1 n ∑ j=1 a(m) ij 是 G 中长度为 m 的通路(含回路)总数.   (所有元素的 和)

  n ∑ i=1 a(m) ii 是 G 中长度为 m 的回路总数.    (对角线上元素的 和)

其中,A(m),a(m) 代表 矩阵的 m 次幂

 

3,证明

对 m 用数学归纳法。

1 当 m = 1 时,显然成立。

2 设 m = k 时,定理成立。

3 证明 m = k+ 1 时定理成立。因为 (a(k+1) ij )n×n = Ak + 1 =  A × Ak = (n ∑ p= 1 (aip ) ( a(k) pj ) )n×n,

故 a(k+1) ij = n ∑ p= 1 (aip ) ( a(k) pj ),而 aip 是结点 vi 到 vp 长度为 1 的通路数目,

a(k) pj 是结点 vp 到 vj 长度为 k 的通路数目,故 (aip ) ( a(k) pj )是从结点 vi 经过 vp 到结点 vj 的长度为 k+1 的通路数目,

那么 n ∑ p=1 (aip ) ( a(k) pj ) 是从结点 vi 到结点 vj 的长度为 k+ 1 的通路数目。 ( 其中,a(k) 代表 矩阵的 k 次幂 )

 

4, 推论

设矩阵 B(m) = (bij)n×n = A(1)+A(2) +···+A(m) (m⩾ 1),

则 bij 表示结点 vi 到 vj 长度不大于 m 的通路数目,

而 n ∑ i=1 n ∑ j=1( bij ) 则可表示图中长度不大于 m 的通路总数,

n ∑ i=1 ( bii ) 则可表示 图中所有长度不大于 m 的回路总数。

 

 

 

五, 可达性的判定

1,考虑: 如何判断图中两结点间是否可达?

判断图中两结点 vi 到 vj 是否可达的关键是判断是否存在通路,

因而只要求邻接矩阵 A 及其正整数次幂 A,A2,A3,···,一旦发现这些矩阵中 i 行 j 列元素为非 0,则表示存在通路。

 

2,定理

在一个具有 n 个结点的图中,如果从结点 vi 到结点 vj(vi ̸= vj) 存在一条通路,则从 vi 到 vj 存在一条长度不大于 n−1 的通路.

在一个具有 n 个结点的图中,如果存在经过结点 vi 回路,则存在一条经过 vi 的长度不大于 n 的回路。

所以不需要算到 无穷次幂,只需算到 n-1 次幂。

所以:设 G = < V,E > 为线图,V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵, Am = (a(m) ij )nxn,m = 1,2,··· ,n,Bn = (b(n) ij )nxn = A+A2 +A3 +···+An。

则有当 vi ̸= vj 时,如果b(n) ij > 0,那么从 vi 到 vj可达,否则不可达。

(注意:这里的 n 是结点数,不是边数)

 

3, 可达性矩阵

① 设 G =< V,E > 是一个线图,其中 V = {v1,v2,··· ,vn},并假定结点已经有了从 v1 到 vn 的次序,称 n 阶方阵

P = (pij) nxn  为图 G 的 可达性矩阵(accessibility matrix),其中 (i,j = 1,2,3,··· ,n)

pij =  { 1   当vi到vj可达

      { 0   否则 

 

1 无向图的可达性矩阵是对称的,而有向图的可达性矩阵则不一定对称;

2 由前面的讨论可知,通过计算 Bn 就可计算出 P 中各元素,即

pij =  { 1   b(n) ij ̸= 0

      { 0     b(n) ij = 0 ,       (i,j = 1,2,3,··· ,n)

② 设 G =< V,E > 为线图,A、P 分别是 G 的邻接矩阵和可达性矩阵,

则有 P = A∨A(2) ∨A(3) ∨···∨A(n),  这里,A(i) 表示做矩阵布尔乘法的 i 次幂.

 这里应该是 将矩阵的乘法 变成 析取,即结果只能为 0 或 1.

 

 

六,结点间的最短路径的计算

1,设 G =< V,E > 为线图,V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵,

Am = (a(m) ij )nxn,m = 1,2,··· ,n,

d(vi,vj) =  { ∞   如果所有a(m) ij 均为0

        { k   k = min{m|a(m) ij ̸= 0} ,(m = 1,2,3,··· ,n)。

显然,这里也可以使用邻接矩阵的布尔积幂来判定。

 

 

 

======== ======= ======= ===== ==== ==== ==== === == =

临安春雨初霁    陆游(宋)

世味年来薄似纱,谁令骑马客京华。

小楼一夜听春雨,深巷明朝卖杏花。

矮纸斜行闲作草,晴窗细乳戏分茶。

素衣莫起风尘叹,犹及清明可到家。

 

posted @ 2020-05-30 16:11  叫我妖道  阅读(1854)  评论(0编辑  收藏  举报
~~加载中~~