图的矩阵表示(接2024-03-19)
【定理3-1】设A为有向图D的邻接矩阵,V = {v1,v2,v3,…vn}为顶点集,则A的l次幂集Al(l≥1)中的元素
例子
A = [ 1 0 0 0 2 0 1 0 1 0 0 1 1 0 1 0 ] A 2 = [ 1 0 0 0 3 0 0 1 2 0 1 0 2 0 0 1 ] A 3 = [ 1 0 0 0 4 0 1 0 3 0 0 1 3 0 1 0 ] A 4 = [ 1 0 0 0 5 0 0 1 4 0 1 0 4 0 0 1 ] \begin{aligned}A=\begin{bmatrix} 1&0&0&0\\ 2&0&1&0\\ 1&0&0&1\\1&0&1&0\\\end{bmatrix}\ \ A^2=\begin{bmatrix} 1&0&0&0\\ 3&0&0&1\\ 2&0&1&0\\2&0&0&1 \end{bmatrix}\ A^3=\begin{bmatrix} 1&0&0&0\\ 4&0&1&0\\ 3&0&0&1\\3&0&1&0\\ \end{bmatrix}\ A^4=\begin{bmatrix} 1&0&0&0\\ 5&0&0&1\\ 4&0&1&0\\4&0&0&1\\ \end{bmatrix}\end{aligned} A= 1211000001010010 A2= 1322000000100101 A3= 1433000001010010 A4= 1544000000100101
PS:矩阵的乘法运算
(1)中长度为1的通路为8条,其中有1条是回路。
D中长度为2的通路为11条,其中有3条是回路。
D中长度为3和4的通路分别为14和17条,回路分别为1与3条。
(2)D中长度小于等于4的通路为50条,其中有8条是回路。
2.可达矩阵
【定义】 设G=<V,E>是简单图,V = {v1,v2,v3,…vn},一个n*n阶矩阵P=(pij)称为G的可达矩阵。其中:
P
i
j
=
{
0
否则
1
v
i
到
v
j
可达(至少有一条通路)
P_{ij}=\Big\{_{0\ \ 否则}^{1\ \ v_i到v_j可达(至少有一条通路)}
Pij={0 否则1 vi到vj可达(至少有一条通路)
【求可达矩阵】
两种方法:
(1)按照矩阵相乘分别求出A(k)(k≥2),然后∨。
(2)用求传递闭包的Warshall算法。
由定义不难看出,G强连通当且仅当P(G)为全1矩阵 //图G中任意两个顶点都是相互可达的
//由于A(2)等于A(4),我们只要求到A(4)即可
【用可达矩阵求强分图】
先将P转置的到PT,如果vi与vj相互可达,则Pij=PTij=1
以G2为例
//初等变换后,看可以出来v1和v3相互可达的,v2、v4、v5相互可达。可以看出来,v1和v3构成了一个强分图,v2、v4、v5构成了一个强分图。【关联矩阵】
①无向图的完全关联矩阵
【定义】设G=<V,E>是无向图,V = {v1,v2,v3,…vm},E = {e1,e2,e3,…en},一个m*n阶矩阵M=(mij) 称为G的关联矩阵。其中:
m
i
j
=
{
0
否则
1
v
i
到
e
j
关联
m_{ij}=\Big\{_{0\ \ 否则}^{1\ \ v_i到e_j关联}
mij={0 否则1 vi到ej关联
【定义】
a)每列只有两个1
b)每列中1的个数来对应的结点的度数。
c)如果两类相同,则说明对应的两条边是平行边。
②有向图的完全关联矩阵
【定义】设D=<V,E>是简单有向图,V = {v1,v2,v3,…vm},E = {e1,e2,e3,…en},一个m*n阶矩阵M=(mij) 称为G的关联矩阵。其中:
m
i
j
=
{
1
v
i
是
e
i
的起点
−
1
v
i
是
e
i
的终点
0
v
i
与
e
i
不关联
m_{ij}=\begin{cases}1\ \ \ \ \ v_i是e_i的起点\\-1\ \ v_i是e_i的终点\\0\ \ \ \ \ v_i与e_i不关联\end{cases}
mij=⎩
⎨
⎧1 vi是ei的起点−1 vi是ei的终点0 vi与ei不关联
【性质】
a)每列只有一个1个一个-1。(每条边只有一个终点和一个起点)
b)每行中1的个数为对应结点的出发,-1个数是结点的入度。
欧拉图、哈密图
历史背景:哥尼斯堡七桥问题与欧拉图
从任意一个结点开始,经过所有边一次且仅一次,然后返回结点。
欧拉图(E图)定义
[欧拉通路]经过途中每条边一次且仅一次行遍所有顶点的通路。
[欧拉回路]经过图中每条边一次且仅一次行遍所有顶点的回路。
[欧拉图]有欧拉回路的图。
[半欧拉图]有欧拉通路而无欧拉回路的图。
路径:b-a→a-e→e-b→b-f→f-a→a-d→d-e→e-f→f-d→d-c→c-b
说明:
- 规定平凡图为欧拉图。
- 欧拉通路是生成的简单通路,欧拉回路是生成的简单回路。
- 环不影响图的欧拉性
欧拉图的实例
上图中,(1),(4)为欧拉图,(2),(5)为半欧拉图,(3),(6)既不是欧拉图,也不是半欧拉图。
【定理4-1】无向图G是欧拉图当且仅当G连通且无奇度顶点。
证明: 若G为平方图成立。设G为n阶m条边的无向图
必要性 设C为G中的一条欧拉回路。显然G是连通的。
∀a∈V(G),a在C上每出现一次贡献2度,所以a为偶度顶点。由a的任意性,结论真。
充分性 通过构造方法来证明。
- 设G是连通图且G中每一个顶点都有偶数度,构造从G的任意顶点a开始的简单回路,建立尽量长的简单通路(a,x1),(x1,x2),…(xn-1,xn),(xn,a)进行构造。如下图中(a,f),(f,c),(c,b),(b,a)。这样的通路必然结束,因为途中的边数是有穷的。
- 若所有的边已用完,则欧拉回路构造完成。让否则从G中删除已经用过的边和不关联任何剩余边的顶点,的到子图H,如图中从,c,d,e构成的子图。因为G是连通的,所以H和已删除的回路至少有一个公共顶点w,然后在w上开始,构造新的回路,新的回路必然和原回路通过w拼接成G中的回路。
- 继续这样的过程,直到用完所有的边为止,这样就产生出欧拉回路。
【定理4-2】无向图G是半欧拉图当且仅当G连通且恰有两个奇度顶点。
证明: 必要性简单
充分性(利用定理4-1)设u,v为G中的两个奇度顶点,令G‘=G⋃(u,v),则G’连通且无奇度顶点,由定理4-1知G‘为欧拉图,因而存在欧拉回路C,令Γ=C-(u,v),则Γ为G中的欧拉回路。
理解: G有两个偶数度结点:就从一个奇数度结点出发,每当到达一个偶数度结点,必然可以再经过另一条边离开此结点,如此重复下去,经过所有边后到达另一个奇数度结点。
未完待续==未完待续==未完待续==未完待续==未完待续
——————————————————————————————————————————