1、第一章 图的基本概念v1.1 图的概念v1.2 同构v1.3 图的矩阵和顶点的度v1.4 子图v1.5 路和连通性 v1.6 圈v1.7 最短路问题 1.1 图的概念lKnigsberg七桥问题l电网络 l四色猜想图图 G = (V(G), E(G), 其中 V(G) = V -顶点集, -顶点数 E(G) = E -边集,-边数例如,下图中,V=a, b,f,E=k,p, q , ae, af, ,ce, cf 12,v vv L Leee,21defG = (V, E)p q abc k v注意注意, 右图仅仅是图G的一个几何实现几何实现(geometric realization,代表代
2、表representation), 它们有无穷多个,随顶点位置及边的形状而不同。真正的图G是上面所给出式子,它与顶点的位置、边的形状等无关。不过今后对图G及其几何实现几何实现将经常不加以区别。defG = (V, E)p q abc k v称 边 ad 与顶点a (及d) 相关联相关联(incident)。也称顶点 b(及 f) 与边 bf 相关联相关联 。v称顶点a与e 相邻相邻(adjacent)。也称有公共端点的一些边,例如 p与af彼此相邻相邻。v称一一条边的两个顶点为它的两个端点端点v环环(loop,selfloop):如边 k ,它的两个端点相同。v棱棱(link):如边ae,它的
3、两个端点不相同。v重边重边:如边p及边q。v简单图简单图:(simple graph)无环,无重边v平凡图平凡图:仅有一个顶点的图。v注意注意:任何一图都有:任何一图都有 V 。v记号记号: ( ,)( )( ) , ( )( ) .GV GGE G defG = (V, E)p q abc k 例题例题v1.1 若G为简单图,则 。v1.2 若一群人中,凡相识的两人都无公共朋友,凡不相识的两人都恰有两个公共朋友,则每人的朋友数相等。21.2 同构例如在下图中,称 图G恒等恒等于图H (记为 G = H) VG)=V(H), E(G)=E(H)。 a y zx wb c d e G=(V, E
4、) x d w a b c y e z F=(V, E) x w b c d e a yz H=(V, E) 图G同构同构于图F (记为 G F ) V(G)与V(F), E(G)与E(F)之间各各存在一 一映射, 及且这二映射保持关联关联关系,即: )()(:FVGV)()(:FEGE( )( ) ( ), ( )euveuvE G a y zx wb c d e G=(V, E) x w b c d e a yz H=(V, E) x d w a b c y e z F=(V, E) 注注 两个图同构是指”它们有相同的结构”,仅在顶点及边的标号上或两个图的画法上有 所不同而已。往往将同构慨
5、念引伸到非标号图中,以表达两个图在结构上是否相同。注注 判定两个图是否同构是个未解决的困难问题(open problem)。 a y zx wb c d e G=(V, E) x w b c d e a yz H=(V, E) x d w a b c y e z F=(V, E) v完全图完全图(complete graph) Knv空图空图(empty g.) E = 。 V ( V) 为独立集独立集 V中任二顶点都互不相邻。v二部图二部图 (偶图偶图,bipartite g.) G = (X, Y ; E) 存在 V(G) 的一个 2-划分划分 (X, Y)(即V(G)=X Y,且XY=)
6、,使X与Y 都是独立集。K1K2K3K4K5v完全二部图完全二部图 Km,n 二部图G = (X, Y; E),其中X和Y之间的每对顶点都相邻,且 X = m, Y = n 。v类似地可定义,完全三部图完全三部图(例如, Km,n,p),完完全全 n-部部 图图等。二部图K3,3K1,5K2,2,2v例。用标号法判定二部图用标号法判定二部图。用红蓝两种颜色进行顶点标号如下:任取一顶点v 标以红色。再将v的所有相邻顶点都标以兰色。这时称v为已扫描顶点。若尚存在一已标号未扫描顶点u,将它的所有相邻顶点,(若不出现矛盾)都标以(其相异色)红色,并称u为已扫描顶点。如此继续下去,直到或者所有顶点都已标
7、号,从而该图为一二部图;或者在标号过程中出现矛盾,该图为非二部图。习题1.2.1 G H (G) = (H) , (G) = (H) 。 并证明其逆命题不成立。1.2.2 证明下面两个图不同构: v1.2.3 证明下面图1与图2是同构的; 而图1与图3是不同构的:v1.2.4 证明两个简单图G和H 同构 存在一 一映射 f : V(G) V(H) ,使 得 uv E(G)当且仅当 f(u)f(v) E(H) 。 图 1 图 2 图 3 v1.2.5 证明:(a). (Km,n ) = mn ; (b). 对简单二部图有 2/4 .v1.2.6 记Tm,n为这样的一个完全m-部图:其顶点数为n,
8、每个部分的顶点数为n/m 或n/m个。证明: (a). (Tm,n) = 其中 k =n/m . (b)*. 对任意的n顶点完全m-部图G,一定有 (G) (Tm,n),且仅当G Tm,n 时等式才成立。v1.2.7 所谓k-方体方体是这样的图:其顶点是由0与1组成的有序有序k-元组元组,其二顶点相 邻当且仅当它们恰有一个坐标不同。证明k-方体有2k个顶点,k*2 k-1条边,且是一偶图。n kmk2112()v1.2.8 简单图G的补图补图G c 是指和G有相同顶点集V的一个简单图,在G c中两个 顶点相邻当且仅当它们在G中不相邻。 (a). 画出Kcn和 Kcm,n。 (b). 如果G G
9、 c则称简单图G为自补的自补的。证明:若G是自补的,则 0, 1 (mod 4) 。v1.2.9 设 ,且 , 则H一定是个完全二部图。v1.2.10若 的简单图 中如下性质成立 则G一定是个完全(某)m部图。nnvvvHVuuuGV,)(,)(2121奇数)()()(jGiGjiududHEvv),(EVGVwvuEuwEvwuv,21.3 图的矩阵和顶点的度M(G)=mi,j , (关联矩阵) mi,j = 顶点vi与边ej 的关联次数= 0, 1, 2.eeeeeeeM Gvvvv123456712341100101111000000110010001120( ) e1e2e3e4e5e
10、6v1v2v3v4G = (V, E)e7A(G)=ai,j, ai,j = 连接顶点vi 与 vj 的边数 。 (邻接矩阵)vvvvAGvvvv123412340211201011011011( )e1e2e3e4e5e6v1v2v3v4G = (V, E)e7v顶点 v的 度度 dG(v) = G中与顶点v 相关联边数。(每一环记为2)v记号: 最大、最小度最大、最小度 , 。((G) , (G) ) v奇点奇点:度为奇数的顶点;v偶点偶点:度为偶数的顶点;v孤立点孤立点:度为0的顶点;v悬挂点悬挂点:度为1的顶点;v悬挂边悬挂边:悬挂点的关联边。v定理定理1.3 .1 (hand sha
11、king lemma) 任一图中,v推论推论1.1 任一 图中,度为奇数顶点的个数为偶数。( )2 .v Vd v 例:任一多面体中,边数为奇数的外表面的数目为偶数。(提示:作一图,其顶点对应于多面体的面,且二顶点相邻当且仅当对应的两个面相邻(即有公共边界)。)k-正则图正则图 (k-regular g.) ( ), .d vkvV 0-正则图1-正则图2-正则图3 -正则图习题v1.3.1 证明: 2/ 。v1.3.2 若 k-正则偶图(k 0)的2-划分为 (X, Y),则 X = Y。v1.3.3 在人数 1的人群中,总有二人在该人群中有相同的朋友数 v1.3.4 设V(G) = ,则称
12、 ( d(v1), d(v2), , d(v) ) 为G的度序列度序列。 证明:非负整数序列 ( d1 ,d 2, d n) 为某一图的度序列 是偶数。 v1.3.5 证明:任一 无环图G都包含一偶生成子图H,使得 dH(v) dG(v)/2 对所有v V 成立。 (提示:考虑G的边数最多的偶生成子图)v1.3.6* 设平面上有n个点,其中任二点间的距离 1,证明:最多有 3n对点的距离 = 1 。 vvv,21diin11.4 子图v子图子图 (subgraph) H G V(H) V(G) , E(H) E(G) 。v真子图真子图 H G H G 且HG 。母图母图(super graph
13、)。v生成子图生成子图(spanning subg.) H H G 且V(H) = V(G)。v生成母图生成母图。v基础简单图基础简单图 (underlying simple g.):从一图中去掉其所有重边及环后所得的剩余(简单图)图称之为其基础简单图。v导出子图导出子图(induced subgraph.)GV, ( 非空非空 V V ) 以V为顶点集,以G中两端都在V上的边全体为边集构成的G的子图 v边导出子图边导出子图 GE (非空非空E E) 以E为边集,以E中所有边的端点为顶点集的的子图。GV, GE 两种子图对应于取子图的两种基本运算。下面是取子图的另两种基本运算:vG - V 去
14、掉V及与V相关联的一切边所得的剩余子图。 即 GV VvG - E 从中去掉E 后所得的生成生成子图 fea bc dghG=(V, E) x wvyuGu,w,x Gu,w,x,y Gc,d,eGf, c v例。G - b, d, g, ( = GE b, d, g ) G - b, c, d, g, ( GE b, c, d, g ) G - a, e, f, g. ( GE a, e, f, g )注意注意 GE E 与G - E 虽有相同的边集,但两者不一定相等 :后者一定是生成子图,而前者则不然。 fea bc dghG=(V, E) x wvyubc dhx wvyufeac hx
15、wvyuxfeahwvyuv上述四种运算是最基本的取子图运算,今后经常会遇到,一定要认真掌握好认真掌握好。关于子图的另一些定义还有: G + E 往G上加新边集E 所得的(G的)母图。 为简单计,今后将 G e 简记为 G e ; G - v 简记为 G - v 。 设 G1, G2 G ,称G1与G2为v 不相交不相交的(disjiont) V(G1) V(G2) = ( E(G1) E(G2) = ) v 边不相交边不相交 (edge-distjiont,边不重的边不重的) E(G1) E(G2 ) = 。(但这时G1与G2仍可能为相交的相交的)。v 并图并图 G1G2 , 当不相交时可简
16、记为 G1+G2.v 交图交图 G1 G2 .习题v1.4.1 证明:完全图的每个导出子图是完全图;偶图的每个导出子图是偶图。v1.4.2* 设G为一 简单 图,1 n -1。证明:若 4,且G中每个n顶点的导出子图均有相同的边数,则 G K或 Kc 。 1.5 路和连通性路和连通性v途径途径 (walk) 例如图G的(u,x)-途径 W = ueyfvgyhwbvgydxdydx (有限非空序列) = uyvywvyxyx (简写法-当不引起混淆时)uvyxweabdhcfgv起点起点(origin) u 。 v终点终点(terminus) x。v内部顶点内部顶点(internal vert
17、ex) y, v, w, x。 (注意,中间出现的x也叫内部顶点。)v长长 边数(重复计算)。v节节(段段,section)。 例如W的(y, w)-节=yvw 。vW-1 (逆途径), vWW(两条途径W与W相衔接衔接。要求:W的终点=W的起点)。v迹迹( trail) 边各不相同的途径(顶点可重复出现)。 例如,yvwyx 。v路路 (path) 顶点各不相同的途径。(边也一定不重复出现。路可当作一个图或子图)。例如, yvwx 。v距离距离 dG(u, v) = 图G中顶点u与v之间最短路的长。 uyvywvyxyx定理1.5.1 G中存在(u, v)-途径 G中存在(u, v)-路。证
18、明:是显然的; :设G中存在 -途径 其中 若W中的顶点互不相同,则W就是(u, v)-路;不然,设其中有 ( ),则 也是一条 -途径,长度比W短 。若其中仍有重复顶点出现,则继续上述过程。由于W 长度的有限性,上述过程必停止于一(u, v)-路 。 ),(vunjivvvvvW,10vvuvn ,0jivv ji njivvvvvW,110),(vu。图 G 图的连通性:称G中顶点u与与v为连通的为连通的(connected) G中存在 (u, v)-路 ( G中存在(u, v)-途径。) 容易验证,V上的连通连通性是V上的等价关系等价关系,它将 V划分为一些等价类:V1 ,V使每个Vi中
19、的任二顶点都连通连通(即存在(u, v)-路); 而不同Vi与Vj之间的任二顶点都不连通连通。 v称每个 GVi i=1,2,. 为G的一个分支分支(component); 称 (G)为G的分支数分支数。v称 G为连通图连通图 (G) = 1 G中任两点间都有一 条路相连。v称 G为非连通图非连通图 (G) 1。v记号:记号: 对任一非空 SV ,令 = VS, 记 S, = G中两端分别在S及 中的一切边的集合。 (后文中将称为边割边割)SSS容易证明:v定理1.5.2 G连通 对任 S V 都有 S, v例1.5 简单图G中, k G中有长 k 的路。 (注意到,G中任一最长路P的起点(终
20、点)的所有邻接点全在P上。) S习题v1.5.1 证明:G中长为k的 途径的数目, 就是A k 中的(I, j)元素,其中A为G的 邻接矩阵。v1.5.2 证明:对简单图G有, G连通。 对于 1,试给出 的不连通简单图。v1.5.3 证明简单图G中, /2 - 1 G连通。 当是偶数时,试 给 出 一个不连通的(/2-1)正则简单图。jivv ,1221v1.5.4 G不连通 Gc 连通。v1.5.5 对任意图G的任一边e,有 (G) (G-e) (G) +1 。 v1.5.6 G连通,且 d(v)=偶数, v V (G-v) d(v)/2, v V.v1.5.7 连通图中,任二最长路必有公
21、共顶点。v1.5.8 对任一图的任三个顶点 u, v, w 都有 d(u, v)+d(v, w) d(u, w)。 v1.5.9 任一的简单、连通、非完全图中,一定有三个顶点 u, v, w, 使得uv, vw E 而 uw E。 v1.5.10若图G 中恰有两个奇点u与v,则G中一定有一(u,v)路。1.6 圈v闭途径闭途径(closed walk) 起点=终点 且长长 0 的途径。v闭迹闭迹 (closed trail) 边各不相同的闭途径。v圈圈(cycle) 顶点各不相同的闭迹。 (可当作一图或子图。) 例:v闭途径: uyvyu ; uywxywvu ; uyuyu。v闭迹:uyxw
22、yvu。v圈: yfvgy ; uywvu。vk-圈圈(k-cycle) 长为k的圈。v奇圈奇圈 (odd cycle)。v偶圈偶圈 (even cycle)。 uvyxweabdhcfg例:v1-圈(即一条环环),v2-圈(由两条重边组成),v3-圈(又称三角形)。三角形)。定理定理1.2 G 为二部图 G不含奇圈。 证明:设G的2-划分为(X, Y),由G的定义,G的任一圈中,X和Y的顶点一定交错出现,从而其长必为偶数。:不妨设G为 连通的。 任取一顶点u,令 X = xV d(u, x) = 偶数 , Y = yV d(u, y) = 奇数。易见,(X, Y)为V的2-划分,所以只要再证
23、X(和Y)都是G的独立集( 即X(或 Y)中任二顶点v, w都不相邻 )即可。 令P与Q分别为最短(u, v)-路与最短(u, w)-路。设u为P与Q的最后一个公共顶点; 而 P与Q分别为P的(u, v)-节与Q的(u, w)-节。则P与Q只有一公共顶点。 又,由于P与Q的(u, u)-节的长相等, P与Q的长有相同的奇偶性,因此v与w不能相邻, 不然,v( P)1 Qwv 将是一奇圈,矛盾。 PQuP Quvw容易证明:v命题1 图G中 2 G中含圈。v命题2 简单图G, 2 G含长 +1 的圈。 (提示:以上两例中可考虑其最长路)v命题3 任一图G中 G含圈。证明:反证,假设结论不成立,而
24、G为其最小反例。则首先G是连通的,且 。再由以上第一例知,G中存在一顶点u, 。于是, ,且显然G-u中也不含圈,从而G-u也是个反例,但顶点数比G少,矛盾。 21)(ud)()(uGuG习题v1.6.1 若边e在G的一闭迹中,则e在G的一圈中。v1.6.2 证明: (a). G含圈。 (b)*. + 4 G含两个边不重的圈。v1.6.3 证明:任一连通偶图G=(X, Y)的2-划分 (X, Y)是唯一的。 (提示:不然,必有二顶点u,v,原属同一部(例如,)X,而在另一种2-划 分 则不然。) v1.6.4证明或反证:(1).G中有两个不同的(u,v)路,则G中含一圈。(2).G中有一闭途径
25、,在则G中含一圈。(3).G中有一长为奇奇数的闭途径,在则G中含一奇圈。v1.6.5 设图G 的顶点可用两种颜色进行着色,使每个顶点都至少与两个异色顶点邻,则G中一定包含偶圈。v1.6.6座位的教室中,不可能让每个学生都作一上下左右移动,使每个人都换了座位。(提示:“座位图”是 一二部图) 1.7 最短路问题v赋权图赋权图(weighted graph)G (注:权 1 时即为上文中所提的图。)v权权( weight ) w(e) 0. 记号: w(H) = , H G . v路路P的长的长 = w(P)v顶点u与v的 距离距离 d(u, v) = 最短(u, v)-路的长。)(GEew ee
26、 E H( )()v问题问题 求最短( u0, v0)-路。v转转 求最短(u0, v)-路, v V u0.v简化简化 只考虑简单图,且w(e) 0 e E. ( w(uv) = 0 时, 可合并u与v为一 顶点)。v原理原理 逐步求出顶点序列 u1, u2, . 使 d(u 0, u1) d(u 0, u2) .记 S0 = u0 , Sk = u 0, u1,u k , = V S 。 Pi 为最短( u0, ui)-路 i = 1, 2,(1).求u1 : u1是使 w(u0 u1) = min w(u0v) v u 0 者 . 得 S1 = S0 u1 , P1 = u 0u1 .S
27、k(2). 若已求得Sk-1 ; d(u0, u1),d(u0, uk-1) ; 及最短 (u0, ui)路 Pi ,i=1.2,.,k-1 。 求uk :显然,d(u0, uk) = min d( u0, v) v = d(u0, uj ) + w( u ju k ) 某 j 1,2,,k-1 = min d( u0, u ) + w( uu k ) u S k-1 = mind( u0 , u ) + w(uv ) u S k-1 ,v = min l( v ) v 其中, l( v ) = min d( uo, u ) + w( uv ) u S k-1 ( l( uk ) = d( u
28、0 , uk ) ) Sk1Sk1Sk1u 0u jvu kS k-1S k-1S k Sk = Sk-1 uk , Pk = Pj ujuk 某 j 1,2,k-1 。update 进行下一 步时,只要更新 l(v) 即可: l( v ) min l( v ) , l( uk ) + w( ukv ) 对 v Sku 0u jvu kS k-1S k-1S kDijkstra算法算法v(1).作为开始:l( u0 ) 0; l( v ) ; v u0; S0 u0 ; k 0 .v(2). (这时已有Sk = u0, u1,uk) l( v ) min l( v ) , l(uk ) + w
29、(ukv ) v 再计算 min l( v ) ,设其最小值点为 uk+1 ,令 Sk+1 = Sk uk+1 。 v(3).若 k=-1, 停止;不然,令kk+1,并回到(2)。Sk计算复杂性 加法: (- 1)/2 比较: (- 1)/2 2 v : (-1)2+) _ 共 O (2 )S凡是复杂性为 p( , ) 的算法 ( p( . , . ) 为一多项式 ) 称为“好算法好算法”( “good algorithm”-J.Edmonds )。这是相对于指数型算法指数型算法而言的:在10 - 6秒/步运算速度下:复杂性n=1020304050n3.001sec .008sec .027s
30、ec.064sec.125secn5.1sec3.2sec24.3sec1.7min5.2min2n.001sec1.0sec17.9min 12.7days35.7years由上表可见,两种算法有天壤之别。注注v1.若只关心求d(u0,v0), 则算法进行到v0Sk时停止。v2.计算过程中,每步所得子图都是一 棵树树(?:每步每步都是往其上增加一条边及一一条边及一 个顶点个顶点)。因此该过程称为 tree growing procedure 。在该树中的(u0,v0)-路, 是中最短(u0,v0)-路 。v 3.若要计录u0到每个顶点u的最短路,只要记录该路中u的前一个顶点(即该树中u的父亲)即可。 72213217353444866u0停例精品课件精品课件!精品课件精品课件!习题v1.7.1 描述一个算法以确定 (a). 一图的各个分支; (b). 一图的围长围长(即最短圈的长); 并说明你的算法好到什么程度。