1 图及其表示
图的概念
一个无向图G是一个三元组(V,E,f)
1)V是一个非空的集合,V中的元素称为G的顶点或结点,V就是G的顶点集合
2)E是一个集合(可以空),E的元素称为G的无向边,简称为边,E称为是G的边集
3)f是E到顶点无序偶集合的函数,
f
:
E
→
{
{
u
,
v
}
∣
u
,
v
∈
V
}
f:E\rightarrow \{\{u,v\}|u,v∈V\}
f:E→{{u,v}∣u,v∈V}
对于有向图G和E的定义大致相同,区别在于E是有向边
f是E到顶点有序偶集合的函数
f
:
E
→
V
2
f:E\rightarrow V^2
f:E→V2
2 点和边的关系
换句话说,一个边会对应两个点,然后这两个点会以笛卡尔积(无向边用大括号)的形式表示
无向图中,若无向边e连接两个顶点u和v,即
f
(
e
)
=
{
u
,
v
}
f(e) = \{u,v\}
f(e)={u,v}
称e和u和v相关联,u和v是e的两个端点,u和v 相邻,若无向图两个边同时关联某个相同的顶点,我们称这两个边相邻
有向图中,若e连接顶点u到v,u和v相 关联,u和v是e的两个端点,u是e的起点,v是e的终点,u邻接到v,v邻接于u
若图中,V和E都是有限集,称G是有限图
若
∣
V
∣
=
n
|V| = n
∣V∣=n(点的个数为n),称这个图为n阶图
若
E
=
∅
E = \empty
E=∅, G为零图
对于有向图,将有向图的方向忽略掉,其对应的无向图为底图
若边的两个端点是相同的,我们称之为环
若存在若干个不同的边使得
f
(
e
1
)
=
f
(
e
2
)
=
…
…
=
f
(
e
n
)
f(e_1)=f(e_2)=……=f(e_n)
f(e1)=f(e2)=……=f(en),则他们是平行边或者重边,没有边和他们关联的称之为孤立点
定义
不含环和平行边的图我们称之为简单图,含并行边的图我们称之为多重图
定义
v作为端点的次数我们称之为度
记为
d
(
v
)
d(v)
d(v),G顶点最大度为
Δ
(
G
)
\Delta(G)
Δ(G),最小度为
δ
(
G
)
\delta(G)
δ(G),若G是有向图,以v为起点数目为v的出度
o
d
(
v
)
od(v)
od(v),以v为终点为v的入度
i
d
(
v
)
id(v)
id(v)
d(v) = id(v) + od(v)
图的矩阵表示
1)设简单图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),
V
=
{
v
1
,
v
2
…
…
v
n
}
V = \{v_1,v_2……v_n\}
V={v1,v2……vn},n为正整数,定义n阶0-1方阵
A
=
(
a
i
j
)
n
×
n
A = (a_{ij})_{n×n}
A=(aij)n×n
其中
a
i
j
=
{
1
{
v
i
,
v
j
}
∈
E
0
{
v
i
,
v
j
}
∉
E
a_{ij}= \left\{ \begin{aligned} 1& &\{v_i,v_j\}∈E \\ 0 & & \{v_i,v_j\}\notin E\\ \end{aligned} \right.
aij={10{vi,vj}∈E{vi,vj}∈/E
A为无向图的邻接矩阵
2)设简单图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),
V
=
{
v
1
,
v
2
…
…
v
n
}
V = \{v_1,v_2……v_n\}
V={v1,v2……vn},n为正整数,定义n阶0-1方阵
A
=
(
a
i
j
)
n
×
n
A = (a_{ij})_{n×n}
A=(aij)n×n
其中
a
i
j
=
{
1
(
v
i
,
v
j
)
∈
E
0
(
v
i
,
v
j
)
∉
E
a_{ij}= \left\{ \begin{aligned} 1& &(v_i,v_j)∈E \\ 0 & &(v_i,v_j)\notin E\\ \end{aligned} \right.
aij={10(vi,vj)∈E(vi,vj)∈/E
A为有向图的邻接矩阵
3)设简单图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),
V
=
{
v
1
,
v
2
…
…
v
n
}
V = \{v_1,v_2……v_n\}
V={v1,v2……vn},
E
=
{
e
1
,
e
2
…
…
e
m
}
E = \{e_1,e_2……e_m\}
E={e1,e2……em},n,m为正整数,定义n×m矩阵
M
=
(
m
i
j
)
n
×
m
M = (m_{ij})_{n×m}
M=(mij)n×m
其中
m
i
j
=
{
1
e
j
和
v
i
关
联
0
e
j
和
v
i
不
关
联
m_{ij}= \left\{ \begin{aligned} 1& &e_j和v_i关联 \\ 0 & &e_j和v_i不关联\\ \end{aligned} \right.
mij={10ej和vi关联ej和vi不关联
M为无向图的关联矩阵
4)设简单图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),
V
=
{
v
1
,
v
2
…
…
v
n
}
V = \{v_1,v_2……v_n\}
V={v1,v2……vn},
E
=
{
e
1
,
e
2
…
…
e
m
}
E = \{e_1,e_2……e_m\}
E={e1,e2……em},n,m为正整数,定义n×m矩阵
M
=
(
m
i
j
)
n
×
m
M = (m_{ij})_{n×m}
M=(mij)n×m
其中
m
i
j
=
{
1
v
i
是
e
j
的
起
点
0
e
j
和
v
i
不
关
联
−
1
v
i
是
e
j
的
终
点
m_{ij}= \left\{ \begin{aligned} 1& &v_i是e_j的起点 \\ 0 & &e_j和v_i不关联\\ -1&& v_i是e_j的终点 \\ \end{aligned} \right.
mij=⎩⎪⎨⎪⎧10−1vi是ej的起点ej和vi不关联vi是ej的终点
M为有向图的关联矩阵
几种特殊的简单图
1)完全图
每一对不同顶点之间都有边的简单无向图称为无向完全图,n阶无向完全图记为
K
n
K_n
Kn;每一对不同顶点之间都有两条方向相反的边的简单有向图称为有向完全图
不难证明, K n K_n Kn有n(n-1)➗2条边
补充:
任意六个人的集会上,必定有三个人互相认识或互相不认识
2)圈图
n>=3的简单无向图中
假设V = {
v
1
…
…
v
n
v_1……v_n
v1……vn}
若E = {{
v
1
,
v
2
v_1,v_2
v1,v2},……{
v
n
−
1
,
v
n
v_{n-1},v_n
vn−1,vn}},称G为圈图,记为
C
n
C_n
Cn
3 )轮图
在n阶圈图中加第n+1个顶点,这个新顶点和原来
C
n
C_n
Cn的每一个顶点都添加一条边,得到的无向图就是轮图,记为
W
n
W_n
Wn
4 )超立方体图
2
n
2^n
2n的简单无向图,可以用长度为n的二进制位串标记顶点,任意两个顶点相邻当且仅当它们对应的位串相差一位
记为
Q
n
Q_n
Qn
5) 偶图
若简单无向图顶点集可以分成两个不相交的子集,所有的边在这两个子集之间,任意一条边的两个端点都不在同一个子集中,称这样的简单无向图为偶图,二分图
满足
V
=
V
1
∪
V
2
∅
=
V
1
∩
V
2
V = V_1 \cup V_2\quad \empty = V_1 \cap V_2
V=V1∪V2∅=V1∩V2
倘若V1顶点和V2的每个顶点都相邻,记G为完全偶图,记为
K
∣
V
1
∣
,
∣
V
2
∣
K_{|V_1|,|V_2|}
K∣V1∣,∣V2∣
不难证明
K
m
,
n
K_{m,n}
Km,n有m×n条边
子图和图运算
若
G
=
(
V
,
E
)
G
′
(
V
′
,
E
′
)
G = (V,E) \quad G^{'} (V^{'} , E^{'})
G=(V,E)G′(V′,E′)有
V
⊆
V
′
E
⊆
E
′
V\subseteq V^{'}\ E\subseteq E^{'}
V⊆V′ E⊆E′我们称
G
′
是
G
G^{'}是G
G′是G的子图
若
G
≠
G
′
若G ≠ G^{'}
若G=G′则
G
′
是
G
G^{'}是G
G′是G的真子图
若E’是E中两个端点都在V‘中所有边组成
G‘是V’导出的定点导出子图,记为G(V’)
若
E
′
≠
∅
E^{'}≠\empty
E′=∅ V’由E‘中所有边端点组成,G’是E‘导出的边导出子图,记为G(E’)
若两个图中,
E
∩
E
′
=
∅
(
V
,
E
∪
E
′
)
是
完
全
图
E\cap E^{'} = \empty \quad (V,E\cup E^{'})是完全图
E∩E′=∅(V,E∪E′)是完全图
G和G’互为补图
并图
边和点相互进行并运算得到的新图
差图
边删掉,点删掉(并且删除掉和该点相关的边)
3 握手定理
一:
图中
∑
v
∈
V
d
(
v
)
=
2
∣
E
∣
\sum_{v∈V}d(v) = 2|E|
∑v∈Vd(v)=2∣E∣
二:
任意图中,度数为奇数顶点的个数为偶数
三:
有向图中
∑
v
∈
V
i
d
(
v
)
=
∑
v
∈
V
o
d
(
v
)
=
∣
E
∣
\sum_{v∈V}id(v) = \sum_{v∈V}od(v) = |E|
∑v∈Vid(v)=∑v∈Vod(v)=∣E∣
图的连通性
通路和回路
若存在顶点和边的交替序列
v
0
e
1
v
1
…
…
e
k
v
k
v_0e_1v_1……e_kv_k
v0e1v1……ekvk
期中
v
i
−
1
和
v
i
是
e
i
v_{i-1}和v_i是e_i
vi−1和vi是ei的两个端点
这个序列就是
v
0
到
v
k
v_0到v_k
v0到vk的通路或路径,k就是该条路径的长度
简单通路
若A为G的通路,A中所有边互不相同
基本通路
A中所有点互不相同
若起点和终点不同,称为通路,相同则为回路,简单回路和基本回路定义同上
定理:
在n阶图中,基本通路得长度不大于n-1,基本回路的长度不大于n
连通性
无向图中存在从u到v的通路,则u和v是连通的,顶点到自己本身是连通的
有向图存在从u到v的通路,则u和v是可达的,顶点到自己本身是可达的
定义:
任意两个顶点都是连通的无向图为连通图,无向图的极大连通子图称为该无向图的连通分量或连通分支,无向图G中连通分量数目记为
ω
(
G
)
\omega(G)
ω(G)
若在图删去顶点和相关联的边,连通分量增加了,称顶点为割点
ω
(
G
)
<
ω
(
G
−
v
)
\omega(G)<\omega(G-v)
ω(G)<ω(G−v)
边对应为割边
ω
(
G
)
<
ω
(
G
−
e
)
\omega(G) < \omega(G-e)
ω(G)<ω(G−e)
底图是连通图的有向图为弱连通图
有向图任取两个点至少有一个点可以到另一个点,则该图为弱连通图
若两个点之间可达,称图为强连通图,对应的极大强连通子图是强连通分支
定理:
有向图是强连通图当且仅当其中存在包含所有顶点的回路
任意两个不同的强连通分量都没有公共顶点
矩阵运算和连通性
邻接矩阵为
A
=
(
a
i
j
)
(
n
×
n
)
A = (a_{ij})_{(n×n)}
A=(aij)(n×n)
若令
(
a
i
j
(
m
)
)
(
n
×
n
)
=
A
m
(a_{ij}^{(m)})_{(n×n)} = A^m
(aij(m))(n×n)=Am
则
a
i
j
(
m
)
a_{ij}^{(m)}
aij(m)是G中从
v
i
到
v
j
v_i到v_j
vi到vj长度为m的不同的道路的条数目
可达矩阵
定义n阶方阵
P
=
(
p
i
j
)
(
n
×
n
)
P=(p_{ij})_{(n×n)}
P=(pij)(n×n)
其中
p
i
j
=
{
1
v
i
和
v
j
可
达
或
连
通
0
p_{ij}= \left\{ \begin{aligned} 1& &v_i和v_j可达或连通 \\ 0 & &\\ \end{aligned} \right.
pij={10vi和vj可达或连通
假设
A
A
A是邻接矩阵,令n阶方阵
R
=
(
r
i
j
)
n
×
n
=
∑
i
=
0
n
−
1
A
i
R = (r_{ij})_{n×n} = \sum^{n-1}_{i=0}A^i
R=(rij)n×n=∑i=0n−1Ai
由R可以导出来A对应图的可达矩阵
4 顶点着色
定义
给简单无向图G每个顶点指定一种颜色,使得相邻的顶点着有不同的颜色,这样的着色方案称为G的顶点着色,G中所有着色中,最少颜色数目记为G的色数,记为
χ
(
G
)
\chi(G)
χ(G)
不难得到如下结论
χ
(
K
n
)
=
n
\chi(K_n) = n
χ(Kn)=n
n
为
奇
数
χ
(
C
n
)
=
3
χ
(
W
n
)
=
4
n为奇数 \ \ \ \chi(C_n)=3 \ \ \ \chi(W_n)=4
n为奇数 χ(Cn)=3 χ(Wn)=4
n 为 偶 数 χ ( C n ) = 2 χ ( W n ) = 4 n为偶数\ \ \ \chi(C_n)=2\ \ \ \chi(W_n)=4 n为偶数 χ(Cn)=2 χ(Wn)=4
G是至少含一条边得简单无向图,则G是偶图当且仅当 χ ( G ) = 2 \chi(G)=2 χ(G)=2
定理1
对于任意的简单无向图,
χ
(
G
)
≤
Δ
(
G
)
+
1
\chi(G)\le\Delta(G)+1
χ(G)≤Δ(G)+1
定理2 Brooks定理
若简单无向图G不是完全图也不是奇圈,则
χ
(
G
)
≤
Δ
(
G
)
\chi(G)\le\Delta(G)
χ(G)≤Δ(G)
定理3
对于任意简单无向图G,
χ
(
G
)
≤
2
\chi(G)\leq2
χ(G)≤2当且仅当G不包含长度为奇数得回路
6 图同构
定义
设简单无向图
G
1
=
(
V
1
,
E
1
)
,
G
2
=
(
V
2
,
E
2
)
G_1=(V_1,E_1),G_2=(V_2,E_2)
G1=(V1,E1),G2=(V2,E2),若存在一一对应
f
:
V
1
→
V
2
f:V_1\rightarrow V_2
f:V1→V2,让对于任意的
u
,
v
∈
V
,
{
u
,
v
}
∈
E
2
u,v\in V,\{u,v\}\in E_2
u,v∈V,{u,v}∈E2,称
G
1
,
G
2
G_1,G_2
G1,G2同构
有向图只需将上述定义的大括号变成小括号即可