1、第五章 图论,杨圣洪,3.6 关系的描述 关系图:令RAB,则将A、B的元素均画成一个点,如果序偶R,则从点x画一条有向边到点y。 A=1,2,3,4,5, R=, , , , , , 则其关系图如下,5.1图的概念与描述,由结点和连结两个结点的连线所组成的对象称为“图”。至于结点的位置及连线的长度无紧要,图的表示:三元组(V(G),E(G),M(E,V)称为图。其中V(G)为点的集合(非空集),E(G)是边集,M(E,V)=边与点连接关系。 常简化为二元组 (V(G),E(G)称为图。简记为G=(V,E)。,3.6 关系的描述 关系图:令RAB,则将A、B的元素均画成一个点,如果序偶R,则从
2、点x画一条有向边到点y。 点集A=1,2,3,4,5, 边集R=, , , , , , 则其关系图如下,3.6 关系的描述 关系图:令RAB,则将A、B的元素均画成一个点,如果序偶R,则从点x画一条有向边到点y。 右边是关系矩阵 图论中称为 邻接矩阵,5.1图的-邻接矩阵 VS 关系矩阵 有向图 VS 关系图,对于有向图,如果从结点vi到结点vj之间有一条边,则a(i,j)=1,否则为0。 由于结点vi到vj有一条边,反过来vj到vi之间不一定有一条,故不一定对称。 对于无向图,如果结点vi到Vj有一条边,则a(i,j)=1,否则为0。 由于Vi到Vj有一条边时,反过来Vj到Vi肯定也有一条边
3、。故它是对称的。,可表示自环,不能表示重边,无向图只有边相联,不考虑方向,5.1点与边关联矩阵!,关联矩阵表示结点与边之间的关联关系。对于有向图: 若点Vi是边ej的起点,则b(i,j)=1。 若点Vi是边ej的终点,则b(i,j)=-1。 如果以上两种情况不存在,则b(i,j)=0。对于无向图: 如果Vi是ej某个端点,则b(i,j)=1。 否则 b(i,j)=0。该矩阵的行对应为“点”,列对应“边”, nm.,ej,Vi,ej,Vi,ej,Vi,ej,Vi,重边可表示,自环不可能表示,A,B,C,D,e1,e2,e3,e4,e5,e6,e7,a,b,c,d,e1,e2,e3,e4,e5,e
4、6,V=a, b, c, dE=e1,e2,e3,e4,e5,e6|V|称为结点数,记为n 该值有限,有限图|E|称为边数,记为m.该值有限。,有限图无限图,如果每条边都有方向的,则为有向图。如果每条边都没有方向,则为无向图。某些边有方向,某些边没有方向,混合图,有向图无向图,点与点邻接,有向边e1=,A与D相邻,e1与A、D相关联。A称为D的直接前趋(父结点),D为A后继。 点与点相邻, 点与边关联 无向边e1=(a, b), a与b相邻,e1与a、b相关联。只与一个结点关联的自环/自旋。某两个点之间有多条边为重边(多重图)。无环无重边简单图,点的度-有趣的概念,某结点关联边的条数,称为该点
5、的度数:D(A)=5,d入(A) =1,d出(A) =4, 有向图d入(A) +d出(A) =d(A)=5“入”进入某结点的边,也称为“负边”,负度“出”离开某结点的边,也称为“正边”,正度,各点度数和=边数的2倍,deg(v)=2|E|=2m (为偶数)证明:先去掉所有的边,每个点、整个图的度数为0 增加一条边e=(u,v),使结点u与v的度数的各增加1 。 每增加一条边使整个图的度数增加2。 deg(v)=2|E| =2m(为偶数) 握手定理 23个人每个人握手9次,有可能吗?,例题某会有23人,主席说每个人恰好只与其他9个人握手,请问主席的话可信吗? 解:将以上问题用图表示,23个人则2
6、3个点表示,i号同学对应结点i,如果某两位握手,则对应的结点间用一条边相连。 “说每个人恰好只与其他9个握手”,每点度数为9,23人度数和=23*9=207,由握手定理有207=2m, 一个奇数不可能等于一个偶数,显然矛盾,故主席的话不可信。 用图论来解决问题,关键是将问题中的对象表示为结点或边。.,左图=3+2+3+2=10,边数=5, 度数和10=边数的2倍(2*5) 右图=3+3+3+3=12 ,边数=6 度数和12=边数2倍(2*6),图中度数为奇的结点有偶数个,用Vo表示度数为奇(odd)的结点集合,Ve为偶(even)的结点的集合,则有: edeg(v)+ odeg(v)= deg
7、(v)=2m。 因Ve中每点度数均为偶数 edeg(v)为偶数,不妨记为2k odeg(v)=2m-2k=2(m-k) ,由于Vo中每个结点的度数为奇数,不妨依次记为2n1-1,2n2-1,2nt-1,t为个数 其和为 2(n1+n2+nt)-1-1-1=2n-t 2n-t=2(m-k) 个数 t=2(m-k)-2n=2(m-k-n),例题某会有23人,主席说每个人恰好只与其他9个人握手,请问主席的话可信吗? 解:度数为奇数9的结点,只能是偶数,不可能是奇数,故23不可能!,左图度数为奇的点有:A(5) B(3)共2个右图度数为奇的点有:B(3),D(3)共2个,有向图握手定理出度(正度)和=
8、入度(负度)和,在有向图中,每条边都有起点、与终点。每加一条边使起点的出度增加1,整图的出度增加1,每加一条边使终点的入度增加1,整图的入度增加1每边使整图的出度、入度各增加1 所有的边加起来,增加的出度和=入度和。,正度(出度)=4+1+1+2=8负度(入度)=1+2+3+2=8正度和=负度和,例n个结点完全图Kn的边数=n(n-1)/2,Kn:n个结点的完全图该图的任何两个结点之间都有边相连每个点都与其它n-1个点之间有边相连每个点度数为(n-1),n个点的度数和n(n-1), 而整图的度数和为n(n-1)=边数2倍=2mn(n-1)=2m,故边数m=n(n-1)/2任何两个结点之间都有边
9、相连 ,由组合学可知 m=C(n,2)证明了c(n,2)=n(n-1)/2说明:简单图中点的度(n-1),边数n(n-1)/2,边数=n(n-1)/2,例 非空简单图一定存在度相同的结点,证明:图G的结点数记为n。 由于它是简单图,无重复边与自环, 每点的度数取值范围是0n-1. 当没有度数为0的结点时,每点度数的取值范围是1n-1,根据鸽巢原则,这n个点中至少有2个点的度数相同。 当有度数为0的结点时,剔除所有度数为0的结点,对剩下来的结点所组成的图使用前面的证明 这是伟大的四色定理的芽头!,3、2、2、33、3、3、3,5.2 图的连通性 VS 传递闭包,定义 一个有向图中,从任意结点出发
10、,若沿着边的箭头所指方向,连续不断向前走,能到达所有的结点,则此图连通。下,否,是,5.2 图的连通性 VS 传递闭包,定义一个无向图中,从任意结点出发,沿着边连续不断向前走,能到达所有的结点,则此图是连通的 传递闭包直观含义,是,5.2 图的连通性,看图判断连通性,仅对结点数比较少的图可行,结点数较多时需要寻求更高效的方法。 前面求传递闭包时,如果某两个结点之间通过传递可达,则在这两点之间加上一条边(称为复合边)。 因此求完传递闭包后,如果某二个点之间有边相连,则表明这二个结点: 要么未求闭包之前是直接相连的, 要么这两个点之前不是直接连接,是通过传递可达。 图与其邻接矩阵,相当于关系图与其
11、关系矩阵, 传递闭包的方法 判断图的连通性, WarShall、邻接矩阵的逻辑幂次方运算。,由邻接矩阵A计算可达性矩阵P方法:1、B=A+A2+A3+An2、将B中不为零的元素均改换为1,为 零的元素不变,即为可达性矩阵P。,由邻接矩阵A计算可达性矩阵P方法:1、B=A+A2+A3+An2、将B中不为零的元素均改换为1,为 零的元素不变,即为可达性矩阵P。,A=,A2=,由邻接矩阵A计算可达性矩阵P方法:1、B=A+A2+A3+An2、将B中不为零的元素均改换为1,为 零的元素不变,即为可达性矩阵P。,A201化, A301化,.,例题 判断下图是是否连通,a(1,3)=0从结点1不能走到结点
12、3,看图可知,其他0类似a(1,5)=1从结点1出发可达结点5,看图可知,其他1类似,WarShall算法:For I=1 TO N /从第1列到第N列For J=1 To N /每列从1行到第N行 If AJ,I=1 Then 第J行=第J行第I行 Endif EndFor /行号J值加1 EndFor / 列号I值加1,例题 求跨越1条边、2条边、n-1条边的路的条数,即:A、A2、A3、An-1。,5.3Euler问题,七桥问题:每桥仅走一次,回到家里,定义5.3.1 如果从某点出发,沿边前行回到起点,称沿途经过的边构成一个回路。边可能重复。 如下图中,a-b-d,a-b-a,a-b-d
13、-c-a。定义5.3.2 如果从某点出发,沿边前行不重走可走遍所有边,是否回到起点不要求,为欧拉路。定义5.3.3如果从某点出发,沿边前行不重走能走遍所有的边,并回到起点则称为欧拉回路。 有欧拉回路的图也称为欧拉图。 欧拉回路是比欧拉路条件更苛刻!,定理5.3.1 无向图G有欧拉回路所有结点度数为偶数.定理5.3.2无向图G有欧拉路所有结点度数为偶数,或者只有2个结点度数为奇数。 左图:deg(a)=5、deg(b)=3、deg(c)=3、deg(d)=3,故没有欧拉回路,故七桥问题无解。 中图:deg(a)=deg(d)=3,有欧拉路没无回路 一笔画 右图:deg(1)=2 deg(2)=4
14、 deg(3)=4 deg (4)=2 deg(5)=2 故有欧拉回路,为欧拉图。,一笔画,从度数为奇的结点出发:不重复依次画出每条边,走到另一个奇结点。,判断下面图能否可以一笔画出,Goes trough each door once?,定义给定有向图G,通过图中每边一次且仅一次的一条单向路(回路),称作单向Euler路(回路) 定理有向图G具有单向Euler回路G连通的、每点入度=出度。 有向图G具有单向Euler路G连通的、除两个端点外,每点入度=出度。 一个端点的入度-出度=1,另一个端点的出度-入度=1。 出度=入度,则该点的度数为偶数,出度与入度相差为1,则该点度数为单。,例题 计
15、算机鼓轮的设计。设有旋转鼓轮其表面被等分成16等份,如图示,阴影为导体输出1,空白为绝缘体输出0,图中输出为1101。顺转一格为1010、再一格为0101,连转16次会得出16个不同的二进制数。,问鼓轮上16部分怎样安排导体与绝缘体,才能转完大圈后,4个触点能得到16个不同的4位2进制数?,建立8结点的有向图,结点编号为000,001,010, 011,100,101, 110, 111。 边:结点100引出的边为1000与1001。 终点为000, 001即为边的后3位。 结点001引出的边0010,0011,分别到达010与011二点! 有向Euler图,因为图中16条边的编号是互不相同的
16、,鼓轮转动,连续得到的16个数,相当于在右图中连续行走所走过的边。而图中每个结点的入度=出度,必存在一条Euler路,e0e1 e3e7e15 e14e12e9 e2e5 e11e6e13e10e4e8.,定义5.3.2 如果从某点出发,沿边前行不重走可走遍所有边,是否回到起点不要求,为欧拉路。定义5.3.3如果从某点出发,沿边前行不重走能走遍所有的边,并回到起点则称为欧拉回路。 有欧拉回路的图也称为欧拉图。 欧拉回路是比欧拉路条件更苛刻!,5.4 哈密尔顿图,1859年,英国数学家哈密顿:用一个规则的实心十二面体,标出世界著名的20个城市,5.4 哈密尔顿图,定义5.4.1 如果图中存在一条
17、,经过所有结点一次也仅一次的路,则称为哈密尔顿路。 如果回到起点称为哈密尔顿回路。 存在哈密尔顿回路的图称为哈密尔顿图。定义5.4.2 如果图中没有一个结点上有自旋,任意二个结点间最多一条边,则称为简单图。 定理5.4.1 设G是具有n结点的简单图,如果G中每一对结点度数和n-1,则G中存在一条哈密尔顿路。即存在一条经过所有点一次的路。定理5.4.2 设G是具有n结点的简单图,如果G中每一对结点度数和n,则G中存在一条哈密尔顿回路。即存在一条经过所有点一次的回路。 充分而不必要!,5.4 哈密尔顿图,左n=5,任意2点和4有H路。右n=6,任意2点和5有H路下图n=6,任意2点和=45,不满足
18、条件但有回路。充分条件(满足肯定是),不必要(是不一定满足),5.4 哈密尔顿图,定理5.4.3 若图G=具有哈密尔顿回路,则对于结点集V的每个非空子集S,均有W(G-S)|S|。必要性证否当取S=1,5时上图变成了下图被分成了3块,即W(G-S)=3,而|S|=2,故不满足W(G-S)|S|,故不是H图。,5.4 哈密尔顿图,去掉1个结点后W(G-S)=1|S|。去掉2个结点后W(G-S)=1|S|。去掉3个结点后W(G-S)=1|S|。去掉4个结点后W(G-S)=1|S|。去掉5个结点后即W(G-S)=1|S|。去掉6个结点后W(G-S)4=W(i,k) 任何两边之和大于第三边 基本思路:
19、从编号为1的点出发,寻找与“已确定的回路”距离最近的点,插入到回路中。最差为精确2倍,5.4 哈密尔顿图 智能优化算法,如果有多条哈密尔顿回路,距离都已标在每条边上,哪条路最短呢?称为“旅行商问题TSP(Traveling Salesman Problem)”或货郎担问题。 如:1-2-3-4-5-1,路长为4+16+11+13+10=54 但是1-2-4-3-5-1,路长为4+3+11+4+10=31, 只能一一试探,其计算量相当大,不能确定在多项时间内能否解决,称为NP(Non Polynomial)问题。,V1,V1,V2,18,18,根据第1行确定与V1最近的点,根据第2行确定与V2最
20、近的点。,在1,2行的3,4,5列找到最小19=W(2,5)加入V5。,V1,V2,27,18,V5,19,在1,2,5行的3,4列 找最小值21=W(2,4)加入V4,0,24,28,19,27,24,0,17,21,25,28,17,0,23,35,19,21,23,0,18,27,25,35,18,0,在1,2,5行的3,4列 找最小值21,即V2与V4相连21,那V4另一头与谁相连呢?若V4的另一头与V1相连,则需剪断e12,新回路长d=27192521,增长21+25-18=28若V4的另一头与V5相连,则需剪断e25,增长21+24-19=26,0,24,28,19,27,24,0
21、,17,21,25,28,17,0,23,35,19,21,23,0,18,27,25,35,18,0,?,?,若V4的另一头与V1相连,则剪断e12,新回路长d=27192521,增长21+25-18=28若V4的另一头与V1相连,则剪断25,增长21+24-19=26在V2的邻居中寻找相连对象.V4与V5相连,费用便宜.,V1,V2,27,18,V5,V4,21,24,在1,2,4,5行寻剩下点距离最短的边. W(4,3)=17.在V4的老邻居中寻找一个与V3相连,使路之增长最小。 若V3与V2相连则剪断e24, 增长17+23-21=19。 若V3与V5相连则剪断与e45增长17+28-
22、24=21, 与V2相连最便宜。 18+23+17+24+27=109,V1,V2,27,V5,V4,21,24,18,17,V3,0,24,28,19,27,24,0,17,21,25,28,17,0,23,35,19,21,23,0,18,27,25,35,18,0,T=(1,1) S=2,3,n,d0=0根据权矩阵,在S中寻找与回路T之距离最小的点Vk,设T中与Vk相连的点为Vj, 确定Vk与Vj的哪个老邻居相连?若W(k,j)+W(k,t)-W(t,j)d0不可能退栈D(11)=(a43 a21 a54 a41 a51 ) d11d0不可能退栈D(12)=(a43 a52 a42 a3
23、2 a54 ) d12d0不可能退栈D(12)=(a43 a52 a42 a32 a54 ) d12=8t 故t=3 故t=3,Euler公式的应用:面数d=m-n+2,边数3n-6,面数2n-4。例2:若简单平面图G中不含有K3(3个点的完全图)子图,则边数m 2n-4。证明:简单平面图中,每个面至少的边界数为3. 边界数为3的面即为K3子图, 现在没有K3子图,即每个面至少有4条边界,即最小边界数t 4. 则各面的边界数和4d, 而边界数和=2m 2m 4d,即m 2d,而d=m-n+2 m=2(m-n+2) 则有m=2n-4,Euler公式的应用:面d=m-n+2,边数3n-6,面数2n
24、-4。例3:简单平面图G中存在度数小于6(=5)的结点。证明:反证法,即假设每个点的度数不小于6,即每个点的度数6,则各点的度数和 6n. 各点的度数和=边数的2倍, 故2m 6n 即m 3n 由简单平面图的性质可知: m3n-6 故 3n m 3n-6 故 3n 3n-6 这显然矛盾。 故假设有错。,Euler公式的应用:面d=m-n+2,边数3n-6,面数2n-4。例4:简单平面图G中的结点数n11,则其中一定存在度数=4,则各面的边界数的和=5*4=20 又各面边界数的和=边数的2倍=18 18=20 这是矛盾。故K3,3不是平面图。,K5:记为K(1)K3,3:记为K(2) 。定义:在
25、K(1)与K(2)图上任意增加一些度为2的结点后得到的图称为K(1)型与K(2)型图,统称为K型图。 增减度数为2的结点不影响图的平面性。Kuratowski定理: G是平面图G中无K型子图。 必要性:G是平面图,则G中无K型子图。假设有K型子图,则至少该K型子图是非平面的,整体看来G不是平面的。这与G是平面的矛盾。,Kuratowski定理: G是平面图G中无K型子图。必要性:G是平面图,则G中无K型子图. 假设有K型子图,则至少该K型子图是非平面的,整体看来G不是平面的。 这与G是平面的矛盾。充分性:若无K型子图则G是平面图, 证明很长。 此定理在理论有很高的价值,但用于判断是否平面性,尚
26、有难度。,5.4 哈密尔顿图 智能优化算法,如果有多条哈密尔顿回路,距离都已标在每条边上,哪条路最短呢?称为“旅行商问题TSP(Traveling Salesman Problem)”或货郎担问题。 如:1-2-3-4-5-1,路长为4+16+11+13+10=54 但是1-2-4-3-5-1,路长为4+3+11+4+10=31, 只能一一试探,其计算量相当大,不能确定在多项时间内能否解决,称为NP(Non Polynomial)问题。,图的平面性检测,K5:5点完全图不是平面图。解:如果是平面图,则m3n-6。而K5中点数n=5,m=n(n-1)/2=10代入上述不等式有: 10 3*5-6
27、10 9 这显然是矛盾的, 故K5不可能是平面图。,判断过程:1)若G是非连通的,则分别检测每一个连通支。仅当所有连通支是可平面,G是平面的。2)若G存在割点,则从割点处分离,考虑每块的平面性。3)移去自环。4)移去度为2的结点。5)移去重边重复4)和5),最后若有:m 3n-63点数-6,则是非平面图。c)不是a)或b),则要进一步判断。,点数5,此时点数n5可平面,边数m=n (1) 但具有n个结点的完全图Kn的着色数K至多为n, 即 (Kn)=n (2)由(1)及(2)可知, (Kn)=n。,定义设i,j是简单图G不相邻的两个结点,令Gij=G+e(i,j), Gijo也是一个简单图,其
28、结点数集Vijo=V-i, j+ij,边集Eo=E-(k,i)|(k,i)E- (k,j)|(k,j)E+(k,ij)|(k,j)E或(k,i)E. 理解:Gij是指将原来不相邻的两个点连接起来.Gijo是将ij两个点合并成一个点,原来到i或j的边,转换为到ij这个合并点. 如:,i,j,G,i,j,Gij,ij,Goij,定理设i,j是简单图G不相邻的两个结点,Gij=G+e(i,j), Gijo是将ij两个点合并成一个点,则(G)=min(Gij), (Gijo) 证明:对G中结点的任何着色,i和j或者将着以同色,或者着异色,二者必居其一. 设i,j着以异色的情况下的G的最少着色数为(G(
29、i,j 异色), i,j着以同色的情况下的最少着色数为(G(i,j 同色),这样, (G)=min(G(i,j 异色), (G(i,j 同色)显然式中,(G(i,j 异色)= (Gij) 两点有边则异色(G(i,j 同色)= (Gijo) 两点合一同色,例 (G)=min(Gij), (Gijo)的应用,i,j,i,j,ij,i,j,i,j,ij,ij,直到“不相邻的结点”不存在为止,即每对结点都相邻.,5,4,4,3,3,4,3(中心色,两个不相邻的色),例4.6.4 (G)=min(Gij), (Gijo)的应用,i,j,i,j,ij,i,j,i,j,ij,ij,5,4,4,3,3,4,3
30、(中心色,两个不相邻的色),5.6 树,定义5.6.1 没有回路的连通图,则称为一棵树。 右图是一棵树, 它将左图中很多边去掉了,回路都不见了, 但是各个点仍是连通的 。,5.6 树,定义5.6.2 如果一个棵树包含某个图的所有结点,则称为该图的生成树或支撑树。不唯一 如右图包括左图的所有结点,故是左图生成树 定理5.6.1 树所包含的边数等于点数减1。,5.6 树,定义5.6.3 在赋权图的所有生成树中,边权和最小的生成树称为最小生成树 。如图5.20(a)的生成树可为5.20(b),5.20(c) 谁最小,3.3.1有向连通图的树计数,定理3.3.1 (Binet-Cauchy)已知两个矩
31、阵Amn,Bnm,满足mn, 则|AB|=|Ai|Bi| 其Ai与Bi都是m 阶子式, Ai是从A中取m列, Bi是B中的相应m行即Ai的原列号=Bi的原行号,然后再对全部组合求和。画示意图 可较好解决树的计数,B4与BT4乘积及比-柯定理验证如下等式。|BkBTk | =|Bi|BTi|=|Bi|2。,定理3.3.2 设Bk是有向连通图G的基本关联矩阵,则G的生成树棵数为|BkBkT|, |Bi|0子式数. 证明:Bk行数为n-1,列数=边数=m,由G是连通图,其边数至少为n-1(最抠的连通图树的边为n-1) 故n-1m,而BTk为m(n-1),满足比-柯条件 由比-柯定理可知|BkBkT
32、| =|Bi|BiT| 因为|BiT |=|Bi|,故|Bi|BiT|= |Bi|2, 故|BkBkT | =|Bi|2 由Th3.2.6可知|Bi|0Bi各列为生成树, 由Th3.2.2可知|Bi|的值为1或-1,因此|Bi|2=1 故|Bi|2=1 Bi各列对应一棵生成树 故|Bi|2为生成树的棵数 故|BkBkT |为生成树的棵数,B4是去掉关联矩阵第4行后得到的, n-1=3,它共有C(5,3)=C(5,2)=10个3阶方阵,分别是,子式难数,直接求|B4 B4T |=8,知它有8棵树,哪8棵呢?抽出e4还有几棵树?就是B4少了第4列。,123列,124列,134列,234列,必含有e3的树是:,必须含有e3的树:共有8棵树,先从关联矩阵中抽出e3边(不含e3边的树),然后8-该数,总结:计算|BkBTk |,先算BkBTk 计算C=BkBkT的简便方法: 当i=j(主对角线),Cij=d(i)该点度数=Bk第Vi行中非零元的数目; 当ij,Cij=若图中有形如(Vi,Vj)或(Vj,Vi)形式的边,则为-1。,