1 / 66

第五章 图论

第五章 图论. 杨圣洪. e1. A. D. e2. e3. e4. e5. C. B. 5.1 图的概念与描述. 由结点和连结两个结点的连线所组成的对象称为“ 图 ”。 至于结点的位置及连线的长度无紧要. 形式定义 :三元组 (V(G),E(G),M(E,V)) 称为图。其中 V(G) 为点的集合 ( 非空集 ) , E(G) 是边集, M(E,V)= 边与点连接关系。 常简化为二元组 (V(G),E(G)) 称为图。简记为 G=(V,E) 。. 5.1 图的概念与描述 - 邻接矩阵.

kaori
Télécharger la présentation

第五章 图论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 图论 杨圣洪

  2. e1 A D e2 e3 e4 e5 C B 5.1图的概念与描述 • 由结点和连结两个结点的连线所组成的对象称为“图”。 • 至于结点的位置及连线的长度无紧要

  3. 形式定义:三元组(V(G),E(G),M(E,V))称为图。其中V(G)为点的集合(非空集),E(G)是边集,M(E,V)=边与点连接关系。形式定义:三元组(V(G),E(G),M(E,V))称为图。其中V(G)为点的集合(非空集),E(G)是边集,M(E,V)=边与点连接关系。 常简化为二元组 (V(G),E(G))称为图。简记为G=(V,E)。

  4. 5.1图的概念与描述-邻接矩阵 对于有向图,如果从结点vi到结点vj之间有一条边,则a(i,j)=1,否则为0。 由于结点vi到vj有一条边,反过来vj到vi之间不一定有一条,故不一定对称。 对于无向图,如果结点vi到Vj有一条边,则a(i,j)=1,否则为0。 由于Vi到Vj有一条边时,反过来Vj到Vi肯定也有一条边。故它是对称的。

  5. e1 A D e2 e3 e4 e5 C B 可表示自环,不能表示重边

  6. 5.1图的概念与描述—关联矩阵 Vi ej 关联矩阵表示结点与边之间的关联关系。 对于有向图: 如果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。 该矩阵的行对应为“点”,列对应“边”, n×m. Vi ej Vi ej Vi ej

  7. e7 e6 e1 A D e2 e3 e4 e5 C B A 重边可表示,自环不可能表示 B C D e1 e2 e3 e4 e5 e6 e7

  8. e1 e2 e3 e4 e5 e6 a b c d

  9. 有限图无限图 V={a, b, c, d} E={e1,e2,e3,e4,e5,e6} |V|称为结点数,记为n 该值有限,有限图 |E|称为边数,记为m.该值有限。

  10. 有向图无向图 如果每条边都有方向的,则为有向图。 如果每条边都没有方向,则为无向图。 某些边有方向,某些边没有方向,混合图

  11. e1 A D e2 e3 e4 e5 C B 邻接 有向边e1=<A, D>,A与D相邻,e1与A、D相关联。称A为D的直接前趋,D为A的后继。 点与点相邻,点与边关联 无向边e1=(a, b), a与b相邻,e1与a、b相关联。 只与一个结点关联的自环/自旋。某两个点之间有多条边为重边(多重图)。无环无重边简单图

  12. e1 A D e2 e3 e4 e5 C B 度 某结点关联边的条数,称为该点的度数: D(A)=5,d入(A)=1,d出(A)=4, 有向图 d入(A)+d出(A) =d(A)=5 “入”进入某结点的边,也称为“负边”,负度 “出”离开某结点的边,也称为“正边”,正度

  13. 各点度数和=边数的2倍 ∑deg(v)=2|E|=2m (为偶数) 证明: 先去掉所有的边,每个点、整个图的度数为0 增加一条边e=(u,v),使结点u与v的度数的各增加1 。 每增加一条边使整个图的度数增加2。 ∑deg(v)=2|E| =2m(为偶数) 握手定理

  14. e1 A D e2 e3 e4 e5 C B 左图=3+2+3+2=10,边数=5, 度数和10=边数的2倍(2*5) 右图=3+3+3+3=12 ,边数=6 度数和12=边数2倍(2*6)

  15. 图中度数为奇的结点有偶数个 用Vo表示度数为奇(odd)的结点集合,Ve为偶(even)的结点的集合,则有: ∑edeg(v)+ ∑odeg(v)= ∑deg(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')

  16. e1 A D e2 e3 e4 e5 C B 左图度数为奇的点有:A(5) B(3)共2个 右图度数为奇的点有:B(3),D(3)共2个

  17. 例题某班有23人,班长说每个人恰好只与其他7个人关系密切,请问班长的话可信吗?例题某班有23人,班长说每个人恰好只与其他7个人关系密切,请问班长的话可信吗? 解:将以上问题用图表示,23个人则23个点表示,i号同学对应结点i,如果某两位同学关系密切,则对应的结点间用一条边相连。 “说每个人恰好只与其他7个人”,说明与每位同学相连的边数为7,即其度数为7,23位同学的度数和=23*7=161,由握手定理有161=2m, 一个奇数不可能等于一个偶数,显然矛盾,故班长的话不可信。 用图论来解决问题,关键是将问题中的对象表示为结点或边。.

  18. 5.2 图的连通性 定义 一个有向图中,从任意结点出发,若沿着边的箭头所指方向,连续不断向前走,能到达所有的结点,则此图连通。 是 否

  19. 5.2 图的连通性 定义一个无向图中,从任意结点出发,沿着边连续不断向前走,能到达所有的结点,则此图是连通的 是

  20. 5.2 图的连通性 看图判断连通性,仅对结点数比较少的图可行,结点数较多时需要寻求更高效的方法。 前面求传递闭包时,如果某两个结点之间通过传递可达,则在这两点之间加上一条边(称为复合边)。 因此求完传递闭包后,如果某二个点之间有边相连,则表明这二个结点: 要么未求闭包之前是直接相连的, 要么这两个点之前不是直接连接,是通过传递可达。 图与其邻接矩阵,相当于关系图与其关系矩阵, 因此求传递闭包的方法可用来判断图的连通性, 即WarShall算法、邻接矩阵的逻辑幂次方运算。

  21. 例题 判断下图是是否连通 a(1,3)=0从结点1不能走到结点3,看图可知,其他0类似 a(1,5)=1从结点1出发可达结点5,看图可知,其他1类似

  22. 例题 若求跨越1条边、2条边、…、n-1条边的路,究竟有多少条,则直接计算邻接矩阵的幂次方A、A2、A3、…、An-1。

  23. 5.3Euler问题 七桥问题:每桥仅走一次,回到家里

  24. 定义5.3.1如果从某点出发,沿着边不断前行又回到起点,那么称沿途经过的边构成一个回路.定义5.3.1如果从某点出发,沿着边不断前行又回到起点,那么称沿途经过的边构成一个回路. 如下图中,a-b-d是一个回路,a-b-a是一个回路,a-b-d-c-a也是回路。 定义5.3.2 如果从某点出发,沿着边不断前行能走遍所有的边,但不回到起点则称为欧拉路。 定义5.3.3如果从某点出发,沿着边不断前行能走遍所有的边,并且回到起点则称为欧拉回路。存在欧拉回路的图也称为欧拉图。

  25. 定理5.3.1无向图G有欧拉回路所有结点度数为偶数.定理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 deg(3)=4 deg (4)=2 deg(5)=2 故有欧拉回路,为欧拉图。

  26. 判断下面图能否可以一笔画出

  27. 5.4 哈密尔顿图 1859年,英国数学家哈密顿:用一个规则的实心十二面体,标出世界著名的20个城市

  28. 5.4 哈密尔顿图 this 定义5.4.1如果图中存在一条,经过所有结点一次也仅一次的路,则称为哈密尔顿路。 如果回到起点称为哈密尔顿回路。 存在哈密尔顿回路的图称为哈密尔顿图。 定义5.4.2如果图中没有一个结点上有自旋,任意二个结点间最多一条边,则称为简单图。 定理5.4.1设G是具有n结点的简单图,如果G中每一对结点度数和≥n-1,则G中存在一条哈密尔顿路。即存在一条经过所有点一次的路。 定理5.4.2设G是具有n结点的简单图,如果G中每一对结点度数和≥n,则G中存在一条哈密尔顿回路。即存在一条经过所有点一次的回路。 充分而不必要!

  29. 5.4 哈密尔顿图 左n=5,任意2点和≥4有H路。 右n=6,任意2点和≥5有H路 下图n=6,任意2点和=4<5,不满足条件但有回路。 充分条件(满足肯定是),不必要(是不一定满足)

  30. 5.4 哈密尔顿图 定理5.4.3 若图G=<V,E>具有哈密尔顿回路,则对于结点集V的每个非空子集S,均有W(G-S)≤|S|。 当取S={1,5}时上图变成了下图被分成了3块,即W(G-S)=3,而|S|=2,故不满足W(G-S)≤|S|,故不是H图。

  31. 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<|S|。 均满足但不是H图,可用AB标记法检测.必要不充分

  32. 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)难问题

  33. 5.5 平面图与染色问题 定义5.5.1如果一个简单图中任意两条边不在中间相交,仅在两个端点相交。 或将某些边拉长或缩短后,也可做到不在中间相交,也称为平面图,或可平面化的图,一律称为“平面图”。

  34. 5.5 平面图与染色问题 定义5.5.2平面图中由边围成的封闭区域称为为面或域。 如下图中,有1-3-4-1围成的面1,1-2-4-1围成的面2,2-4-3-2围成的面3,还有1-3-2-1之外的广阔的外围空间也是一个面,所以该图共有4面。 定理5.5.1平面图中面数=边数-点数+2。 如下图中,面数d=4、边数m=6、点数n=4, 显然有d=m-n+2。

  35. 5.5 平面图与染色问题 定义5.5.3在点数大于3的平面图中,如果在不相邻的两个点之间添上一条边,新添边肯定与其他边相交,即变成非平面图,则该图为极大可平面图。 如果所有点相邻(这种图称为完全图),不可能再加边了,肯定为极大可平面图,如下图每个面的边数为3。 定理5.5.2极大平面图中,3d=2m,m=3n-6,d=2n-4。

  36. 5.5 平面图与染色问题 证明:极大平面图中任何面的边只有3条(若超过3条如达4条则至少为四边形,还可添加边这与极大平图矛盾). 每条边均是面的边界线,是两个面的边界,故数各个面的边界数时,每边被数了2次,所有面的边界数和=2m。 极大平面图中每个面只有3条边,d个面共有3d条边,所以3d=2m。 将d=m-n+2代入有,3(m-n+2)=2m,故m=3n-6。 将m=3d/2代入d=m-n+2中,d=3d/2-n+2,故d=2n-4

  37. 5.5 平面图与染色问题 定理5.5.3平面图中m3n-6,d2n-4 m=C(5,2)=10,点数n=5,3n-6=9,违反了m3n-6 m=C(6,2)=15,点数n=6,3n-6=12, 违反了m3n-6

  38. 5.5 平面图与染色问题 对偶图 在平面图每个面中取一个代表点,原来相邻的两个面的代表点之间用线相连,得到的图称为对偶图。 对原图面的着色问题转换为对偶图的点的着色 四色猜想变成:对平面图的对偶图的结点进行着色时,最多4种颜色,可保证相邻两个结点的颜色不一样. 如果不是平面图的对偶图可能不止四种颜色

  39. 5.5 平面图与染色问题 Powell着色算法: (1) 结点按度数的递减顺序排阶列; (2)用第1种颜色对第1个结点着色,并且按排列次序,对与前面已着色点不相邻的每个点着相同的颜色。 (3)用第二种颜色对尚未着色的点重复(2)步,用第三种颜色对尚未着色的点继续这种过程,直到所有点着色。

  40. 5.5 平面图与染色问题 有6货物需要堆放,两种货物之间若不能放在同一个仓库,则用一条线相连,其相互关系如下图所示,请问共需要几个仓库。 (1)排序:B(4)、D(4)、A(3)、C(3)、E(3)、F(3) (2)用红色着B,与B不相邻的点是A,故A着成红色。 (3)用兰色着D,与D不相邻的点是F,故F也着成兰色 用黑色着C,与C不相邻的点是E,故E着成黑色。

  41. 5.6 树 定义5.6.1没有回路的连通图,则称为一棵树。 右图是一棵树, 它将左图中很多边去掉了,回路都不见了, 但是各个点仍是连通的 。

  42. 5.6 树 定义5.6.2如果一个棵树包含某个图的所有结点,则称为该图的生成树或支撑树。不唯一 如右图包括左图的所有结点,故是左图生成树 定理5.6.1树所包含的边数等于点数减1。

  43. 5.6 树 定义5.6.3在赋权图的所有生成树中,边权和最小的生成树称为最小生成树 。 如图5.20(a)的生成树可为5.20(b),5.20(c)谁最小

  44. 5.6 树-Kruskal最小生成树 (1)选取权最小的边e1,置边数i=1 (2)i=n-1时结束,否则转(3) (3)设已选取边为 e1,e2,...,ei,在G中选取不同e1,e2,...,ei的边ei+1,使{e1,e2,...,ei,ei+1}中无回路,且ei+1是满足此条件的最小边。 (4)i=i+1 例题对于图5.20(a)中, (1)选长为2的(2,5)、(3,4),此时i=2; (2)选长为3的(2,4),(4,5)不能再选了,因与(2,5),(2,4) 成回路,i=3 (3)选择长为4的(1,2),这时i=4;

  45. 5.6 树-Prim最小生成树 (1)任选一结点V0构成集合U; (2)从U中选到V-U(余点)最短边(v,r)入树T,vU,r V-U. (3)U=U+{r}; (4)如果|U|<|V|回到(2)。如: 1)U={1},T={} 2)T={(1,2)};U={1,2} 3) T={(1,2),(2,5)}, U={1,2,5} 4) T={(1,2),(2,5),(2,4)} U={1,2,5,4} 5) T={(1,2),(2,5),(2,4),(3,4)} U={1,2,5,4,3}

  46. 5.6 树-根树 有向图的生成树中,如图5.21(a),从结点A出发,沿着各边箭头所指方向前行,分多路可走遍图中所有的点,如图(b),其中A-C-B-E-F、A-D,这种生成树称为根树。 起点A称为树根,入度为0, 对于入度为1出度为0的点为叶子结点。 入度为1且出度至少为1的结点称为内点 内点与根结点一块统称为分支点。 从根结点到各点所包含的边之条数,称为根结点到该点的距离. A到D、C的为1,A到B为2,A到E为3,A到F离为4,距离中最大值称为树高或层数

  47. 5.6 树-根树 如果结点至多有2个后代,称为2叉树,如果正好都只有2个后代,则称为完全二叉树。 画根树时,如图5.21(b),习惯将根结点画在最高处 所有边都指向远离根结点方向,即整体朝下, 对根树的画法适当简化,即去掉所有边的箭头,如图5.21(b)所示的根树可简化为图5.22所示

  48. 5.6 树-根树 定义5.6.4 设根树T有t片树叶v1,v2,…,vt,给每片树叶赋一个权值w1,w2,…,wt,则称为T的赋权二叉树,其中l(vi)为叶子结点vi的长度。 如果存在一种赋权方式,使得值w(i)l(vi)达到最小,则称为棵树为最优二叉树,或称Huffman树。 Huffman树的构造算法: (1)对所有权值从低到高排队; (2)找出两个最小的权值,记为W1和W2。 (3)用W1+W2代替W1与W2,产生新的队列。 (4)若队列中的点数大于1,则回到(1),否则转(5)。 (5)逆序将以上组合过程画出来便得到Huffman树。

  49. 5.6 树-根树 例题 汉字“一地在要工上是中国同和的有”出现频率依次为“2,3,5,7,11,13,17,19,23,29,31,37,41”,对汉字编译。 译出“1000101110100101111”对应的汉字。

More Related