赞
踩
众所周知,离散数学这门课概念繁多,到处都是定义、定理,而很不幸我们学校的老师讲课又只是简单对着PPT念,非常不利于我们学习和复习离散数学这门科目。
为了提高复习效率,方便我今后查阅。我结合东北大学的离散数学网课,配合教材《离散数学.冯伟森著》以及各大网友的博客(主要是各类插图)整理了这篇图论笔记,初衷是方便自己复习使用。所有引用内容在文章末尾都有提及。
本文处于不断迭代完善的过程,后期根据做过的习题和新的理解,不断做补充。本博文的思维导图如下:
一些最基本的定义,就不一个个敲了,只把握符号和重点的定理。
案例:下列哪个哪些序列是一个图的度数序列?
A. (1,2,3,4,5)----------B.(2,2,2,2,2)----------C.(1,2,3,2,4)
A:不满足奇数度个数为偶数个。错误。
B:可以简单图化,5阶2正则。
C:可以简单图化。
下图来自东北大学离散数学MOOC,(1)和(2)有度数不同的顶点,不是同构的;(3)对于左下角和右上角两个顶点的边属于平行边,而(4)这两个顶点所连的边不是平行边,重数不相同,不同构。
完全图:
子图:对于两个图,G和G‘
补图:G为n阶无向简单图,将G补充为完全图
K
n
K_n
Kn的添加边组成的边集的图,叫做G的补图。特别的,如果G的补图和G同构,称G为自补图。
二部图:如果图G=(V, E)的结点集V可以分划成两个子集合V1和V2,使每条边都与V1的一个结点和V2的一个结点关联,则称G为二部图。
这里数据结构与算法都讲解过了,只需要注意邻接矩阵乘积表示的含义。
定义: ( A ( G 1 ) ) 2 (A(G_1))^2 (A(G1))2中的 a 34 = 2 a_{34}=2 a34=2表示从v3到v4长度为2的路有两条。
定理3-1:设A为有向图D的邻接矩阵, V = { v 1 , v 2 , v 3 , . . . } V=\{v_1,v_2,v_3,...\} V={v1,v2,v3,...}为顶点集,则A的l次幂 A l ( l > = 1 ) A_l(l>=1) Al(l>=1)中的元素。
即矩阵所有元素之和表示各个长度通路的条数。
求下图的可达性矩阵
PS:上图和下图来自东北大学离散数学MOOC,采用方法1进行求可达性矩阵,发现乘幂出现周期性,然后析取即可。
我们以上面例题的图为例,
PS:上图来自东北大学离散数学MOOC,这个方阵表示v1和v3相互可达,构成了一个强分图;v2、v4、v5是两两可达的,也构成了一个强分图。
PS:上面的图都来自东北大学离散数学MOOC,帮助读者理解关联矩阵。
G=<V,E>
,G中顶点和边交替的序列
T
=
v
0
e
1
v
1
e
2
.
.
.
e
l
v
l
T=v_0 e_1 v_1 e_2...e_l v_l
T=v0e1v1e2...elvl是连接
v
0
v_0
v0到
v
l
v_l
vl的通路。记忆:简单边,初级点。
定理2-1:在n阶图中,如果从顶点 v i v_i vi到顶点 v j v_j vj之间存在通路,那么从 v i v_i vi到 v j v_j vj存在长度小于或等于n-1的通路。
推论:在n阶图中,如果从顶点 v i v_i vi到顶点 v j v_j vj之间存在通路,则 v i v_i vi到 v j v_j vj存在长度小于或等于n-1的初级通路。
定理2-2:在一个n阶图中,如果存在 v i v_i vi到自身的回路,则一定存在 v i v_i vi到自身长度小于等于n的回路。
推论:在一个n阶图中,如果存在 v i v_i vi到自身的简单回路,则一定存在长度小于或者等于n的初级回路。
u~v
<V,E>
中E的子集。如果删除E’后满足,
p
(
G
−
E
′
)
>
p
(
G
)
p(G-E') > p(G)
p(G−E′)>p(G)并且具有极小性,那么E’就是边割集。
Ps:上图来自东北大学离散数学MOOC。以上图为例,理解这个概念。
结点u是图G的割点当且仅当存在两结点v和w,使v到w的任何道路都经过u。
拓展:操作系统中,在某些情况下,可以使用图论的概念来建模和分析操作系统中的死锁。死锁问题可以被转化为资源分配图,其中进程和资源可以用图的节点表示,边表示资源的请求和释放关系。如果这个资源分配图中存在一个环路,那么可能存在死锁。
Ps:上图来自东北大学离散数学MOOC。根据定义,欧拉图是有欧拉回路的图,(1)(4)是欧拉图,(2)(5)是半欧拉图,(3)(6)不是欧拉图。
证明:
证明:
判断图G是否有回路E,如果有,选择顶点v,以v为起点找简单回路。
如果找到了,打印E边,算法停止。
如果找不到,在G-E中找一个简单回路E2,让E1和E2至少有一个公共点。
以某个公共点为起、尾点,对E1∪E2中边重排序得到简单回路,继续判断是否包含所有边。
例子:下图中有四个奇数度结点,求解中国邮递员问题。
两两之间的最短道路为:
P
a
−
c
=
3
(
a
b
c
)
,
P
a
−
e
=
3
(
a
b
e
)
,
P
a
−
h
=
5
(
a
b
c
f
h
)
P_{a-c}=3(abc), P_{a-e}=3(abe),P_{a-h}=5(abcfh)
Pa−c=3(abc),Pa−e=3(abe),Pa−h=5(abcfh)
P
c
−
e
=
2
(
c
b
e
)
,
P
e
−
h
=
3
(
e
g
h
)
,
P
c
−
h
=
2
(
c
f
h
)
,
P_{c-e}=2(cbe), P_{e-h}=3(egh), P_{c-h}=2(cfh),
Pc−e=2(cbe),Pe−h=3(egh),Pc−h=2(cfh),
可见, P a − e P_{a-e} Pa−e和 P c − h P_{c-h} Pc−h满足最小性要求,并且没有公共终点和起点。我们复制这两条路径,得到一个欧拉图。再通过求解欧拉回路的算法,即可得到问题的解。
Ps:上图来自东北大学离散数学MOOC。G1是哈密尔顿图,G2是半哈密尔顿图,G3既不是哈密尔顿图也是半哈密尔顿图。
定理5-1是判断哈密尔顿图的必要条件。必要条件用来判断不是,充分性用来判断是。因此常用定理5-1判断某些图不是哈密尔顿图。
例题1:证明G是n阶无向连通简单图,若G中有割点或桥,则G不是哈密尔顿图。
解答:设V是割点, p ( G − v ) > = 2 > ∣ v ∣ = 1 p(G-v)>=2 >|v| =1 p(G−v)>=2>∣v∣=1,根据定理5-1,G不是哈密尔顿图。
定理5-2是半哈密顿图的充分条件,但不是必要条件。
例如,长度为n-1的路径构成的图不满足这个条件,但它显然是半哈密尔顿图。
定理5-2的推论同样不是哈密尔顿图的必要条件
例如,G为长为n的圈,显然不满足条件,但仍然是哈密尔顿图。可知, K n ( n > = 3 ) K_n(n>=3) Kn(n>=3)均为哈密尔顿图。
定理5-3:若D为n(n>=2)的竞赛图,则D中具有哈密尔顿通路。
竞赛图的基图是无向连通图,
至今是个世界难题,可行的办法:
这块内容见《数据结构与算法》啦~~
这里不多赘述。
案例:求下图所示的K4的最短哈密尔顿回路。
Ps:上图来自东北大学离散数学MOOC。
C1=abcda,W1=10
C2=abdca,W2=11
C3=acbda,W3=9(最短)
上图中(a)和(b)经过重新绘制后变成(e)和(f),它们不包含任何交叉边,是一个平面图。而 c、d分别是
K
3
,
3
K_{3,3}
K3,3和
K
5
K_5
K5,都不是平面图。
定理:平面图各个面的deg之和=边数的二倍
以上图为例,次数之和=14,边数=7,满足。
理解:外部公共面会被加k次,所以需要减去k-1。
即当G是连通的时候,等式右边是r;当G是不连通的时候,等式右边是k+1
案例:证明若G为简单平面图,则 δ ( G ) < = 5 \delta(G)<=5 δ(G)<=5
证明:当n<=6,结论为真。当n>=7时,如果 δ > = 6 \delta>=6 δ>=6,根据握手定理,2m>=6n,得到m>=3n,与定理7-6矛盾。
PS:上图来自引用3,他们删去或者反复插入2度顶点后显然同构,所以这些图同胚。
应用库拉托夫斯基定理,通过同胚操作,可证明上图均为非平面图。
对于图的着色问题,可以转化为对其对偶图的着色问题。
PS:上图来自东北大学离散数学MOOC,我们首先对每个面R1、R2、R3分别放置一个顶点,
v
1
∗
v_1^*
v1∗、
v
2
∗
v_2^*
v2∗、
v
3
∗
v_3^*
v3∗。对于v1-v2我们防止一条交叉边,同理对于v1-v4、v2-v3、v3-v4我们都放置一条边。值得注意的是,v2-v5这条边只是R3一个面的边界,我们所做的交叉只关联R3中的顶点
v
3
∗
v_3^*
v3∗,构成一个环。
定义:设G是平面图G是对偶图,如果说G和G是同构的,就称G*为G的自对偶图。
轮图:在n-1阶圈内放置一个顶点,连接这个顶点与这个圈轮上的所有顶点,所得的n阶简单图称作n阶轮图,记做Wn。
n阶轮图都是自对偶图。
Ps:上图来自东北大学离散数学MOOC,上述轮图都是自对偶图。
PS:上图来自东北大学离散数学MOOC,我们可以分别求其色数。色数分别是2、3、4、5.
这块内容可以参考数据结构的内容。
一道小例题:
设阶数n,边=n-1,4度顶点个数n-7。根据握手定理:2m = 2(n-1) = 4(n-7) + 5 + 2 + 3 ==》n=8,从而可以画出非同构的无向树。
这块的题用树的性质 + 握手定理基本能解决。
例题:G有6个结点,10条边的连通图,删去多少条边,才得到一颗生成树?
10-6+1 = 5,即删除T补。
案例:下图中实现边构成生成树,求基本回路系统和基本割集系统。
Ps:上图来自东北大学离散数学MOOC。
首先求基本回路系统,这是针对弦而言的。对于弦e的基本回路为
C
e
C_e
Ce=ebc,弦f的基本回路为
C
f
C_f
Cf=fabc,弦g的基本回路
C
g
C_g
Cg=gabcd,基本回路系统为三条回路构成的集合。其次,求基本割集系统,这是针对树枝而言的,
S
a
=
{
a
,
f
,
g
}
,
S
c
=
c
,
e
,
f
,
g
,
S
b
=
b
,
e
,
f
,
g
,
S
d
=
d
,
g
,
S
基
=
S
a
,
S
b
,
S
c
,
S
d
S_a=\{a,f,g\},S_c={c,e,f,g},S_b={b,e,f,g},S_d={d,g},S_基={S_a,S_b,S_c,S_d}
Sa={a,f,g},Sc=c,e,f,g,Sb=b,e,f,g,Sd=d,g,S基=Sa,Sb,Sc,Sd
这部分内容见数据结构与算法,主要考察Kruskal算法。
这块内容在数据结构与算法这门课中有涉及,而且主要在那门课进行考察,这门课重复考察没有意义。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。