1.75k likes | 1.96k Views
第 10 章 图. 10.1 图的基本概念. 10.2 路、回路与连通性. 10.3 图的矩阵表示. 10.4 欧拉图与哈密顿图. 10.5 二部图与匹配. 10.6 平面图. 10.7 树及其应用. 10.8 着色问题. 10.9 最短路径与关键路径. 10.1 图的基本概念. 10.1.1 图. 10.1.2 子图与补图. 10.1.3 结点的度. 10.1.4 图的同构. 10.1.1 图.
E N D
10.1图的基本概念 10.2 路、回路与连通性 10.3 图的矩阵表示 10.4 欧拉图与哈密顿图 10.5 二部图与匹配 10.6 平面图 10.7 树及其应用 10.8 着色问题 10.9 最短路径与关键路径
10.1图的基本概念 10.1.1 图 10.1.2 子图与补图 10.1.3 结点的度 10.1.4 图的同构
10.1.1 图 定义10.1 一个图G定义为一个有序对<V,E>,记为G=<V,E>。其中V为非空有限集,其元素称为结点或顶点,E也是有限集,其元素称为边。对E中的每个边都有V中的两个结点与之对应,其结点对可以有序也可无序。 若边e与无序结点对[u,v]对应,称e为无向边,简称边,记为e=[u,v],u、v称为边e的端点,也称u和v为邻接点,边e关联u与v。关联同一结点的两条边称为邻接边。连接一结点与它自身的边称为环或自回路。两个端点都相同的边称为平行边。
若边e与有序结点对<u,v>对应,称e为有向边或弧,记为e=<u,v>,u称为弧e的始点,v称为弧e的终点,也称u邻接到v,v邻接于u。若e和e有相同的始点,称e和e相邻。始点和终点都相同的弧称为平行弧。若边e与有序结点对<u,v>对应,称e为有向边或弧,记为e=<u,v>,u称为弧e的始点,v称为弧e的终点,也称u邻接到v,v邻接于u。若e和e有相同的始点,称e和e相邻。始点和终点都相同的弧称为平行弧。 在图中不与任何结点相邻接的结点称为孤立结点。 每条边都是无向边的图称为无向图。每条边都是有向边的图称为有向图。既有有向边也有无向边的图称为混合图。将有向图各有向边去掉方向后的无向图称为原来图的基图。
例1 图10-1所示的两个图分别为无向图和有向图。在图(a)中,e7是环,e1、e2与e3是邻接边。在图(b)中,v2v1与v2v3是邻接边,但v2v3和v3v2不是邻接边,v5为孤立结点。
定义10.2(1)含有平行边(或弧)的图称为多重图。不含平行边(或弧)和环的图称为简单图。定义10.2(1)含有平行边(或弧)的图称为多重图。不含平行边(或弧)和环的图称为简单图。 (2)具有n个结点和m条边的图称为(n,m)图,也称n阶图。一个(n,0)图称为零图,(1,0)图称为平凡图。 (3)任两结点之间都有边(或弧)的简单图称为完全图。n个结点的无向完全图记为Kn。若n阶有向简单图的基图为Kn,称其为n阶竞赛图。 (4)在一个n边形内放置一个结点,使之与n边形的各结点有边,这样得到的简单图称为轮图,记为Wn。
例2在图10-2中,图(a)是简单图且为完全图,但图(b)是多重图,因为e4和e5是平行弧。例2在图10-2中,图(a)是简单图且为完全图,但图(b)是多重图,因为e4和e5是平行弧。
定理10.1 完全图Kn的边数为Cn2。 证明 因为在完全图Kn中任意两结点之间都有边相连,所以n个结点中任取两点的组合数为Cn2,故完全图Kn的边数为Cn2。 定义10.3 给每条边(或弧)都赋予权的图G=<V,E>称为带权图或加权图,记为G=<V,E,W>,W为各边(或弧)权的集合。
10.1.2 子图与补图 定义10.4 设G=<V,E>、G=<V,E>是两个图,于是 (1)若VV且EE,则称G为G的子图,G为G的母图。 (2)若G是G的子图,且VV或EE,则称G为G的真子图。 (3)若V=V且EE,则称G为G的生成子图或支撑子图。
定义10.5 G=<V,E>,V1V且V1≠,以V1为结点集,以两端点均在V1中的全体边为边集的G的子图,称为V1的诱导子图;E1E且E1≠,以E1为边集,以E1中边关联的结点的全体为结点集的G的子图,称为E1的诱导子图。 定义10.6 若G=<V,E>是一个n阶无向简单图,从Kn中删去G的所有边而得到的图称为G的补图或G的相对于完全图的补图,记为 。
例3 在图10-3中,图(b)、(c)、(d)都是图(a)的子图,也是真子图。图(b)和(c)是图(a)的生成子图。图(d)既是结点集{v2,v3,v4}的诱导子图,也是边集{[v2,v3],[v2,v4],[v3,v4]}的诱导子图。图(b)和(c)互为补图。
10.1.3 结点的度 定义10.7 在有向图G=<V,E>中,对于结点v∈V,以v为始点的弧的条数称为v的出度,记为d+(v);以v为终点的弧的条数称为v的入度,记为d-(v);v的出度和入度之和称为v的度数,记为d(v)。 在无向图G=<V,E>中,结点v的度数等于它关联的边数,记为d(v)。若v有环,规定该结点度数因环而增加2。
例4 在图10-1(a)中,d(v1)=3,d(v2)=5,在图10-1(b)中,d+(v2)=2,d-(v2)=1。 定理10.2(握手定理)在图G=<V,E>中,结点度数的总和等于边数的两倍,即 =2|E|。 因为图G中的每条边(包括环)都有两个端点,所以加上一条边就使各结点度数之和增加2,因此图G中结点度数的总和等于边数的两倍,即 =2|E|。 证明 推论:图G中度数为奇数的结点必为偶数个。
定理10.3 在任何有向图中,所有结点的入度之和等于所有结点的出度之和。 因为每一条有向边必对应一个入度和一个出度,若某个结点具有一个入度或出度,则必关联一条有向边,所以有向图中各结点入度之和等于边数,各结点出度之和等于边数,故结论成立。 证明 定义10.8无向图中度数为1的结点称为悬挂结点,它对应的边称为悬挂边。各结点度数均相同的图称为正则图。各结点度数均为k的图称为k度正则图。
定义10.9 在无向图G=<V,E>中,令(G)=max{d(v)|vV},(G)=min{d(v)|vV},称(G)、(G)分别为G的最大度和最小度。 定理10.4 设G为任意n阶无向简单图,则(G)≤n-1。 因G无平行边也无环,所以G中任意结点v至多与其余n-1个结点相邻,于是d(v)≤n-1。由v的任意性可得,(G)≤n-1。 证明
定义10.10 n阶无向图G=<V,E>,V={v1,v2,…,vn},称d(v1),d(v2),…,d(vn)为G的度数列。对给定非负整数列d=(d1,d2,…,dn),若存在以{v1,v2,…,vn}为结点集的n阶无向图G使d(vi)=di(i=1,2,…,n),称d是可图化的,若所得图G为简单图,称d是可简单图化的。
定理10.5 设有非负整数列d=(d1,d2,…,dn),则d是可图化的 ≡0(mod 2)。 证明 由握手定理知必要性显然成立。下证充分性。 由 ≡0(mod 2)可得,d中必有偶数个奇数,不妨设为d1,d2,…,d2k。首先在结点vr和vr+k之间连一条边(r=1,2,…,k)。然后在vi(i=1,2,…,2k)处作(di-1)/2个环,在vi(i=2k+1,2k+2,…,n)处作di/2个环,得到的图G满足d(vi)=di,所以d是可图化的。
定理10.6 设有递减非负整数列d=(d1,d2,…,dn),且 ≡0(mod 2),则d是可简单图化的 ,k=1,2,…,n-1。 证明 仅证必要性。若d是可简单图化的,设简单图G的结点集V={v1,v2,…,vn},且d(vi)=di(i=1,2,…,n)。对于任意一个k∈{1,2,…,n-1},当k<i≤n时,vi至多与{v1,v2,…,vk}中min{di,k}个结点相邻。因此,至多有 条边连接{v1,v2,…,vk}中的结点与{vk+1,vk+2,…,vn}中的结点。
又{v1,v2,…,vk}中每个结点与另外k-1个结点之间至多有k-1条边,故v1,v2,…,vk的结点度数之和满足 ,k=1,2,…,n-1。 例5 判断下列各非负整数列哪些是可图化的?哪些是可简单图化的? (1)5,5,4,4,2,1;(2)5,4,3,2,2 (3)3,3,3,1; (4)d1,d2,…,dn,d1>d2>…>dn≥1且 为偶数; (5)4,4,3,3,2,2。
由定理10.5易知,除(1)中序列不可图化外,其余各序列都可图化。但除(5)中序列外,其余的都是不可简单图化的。(2)中序列有5个数,若它可简单图化,设所得图为G,则(G)=5,与定理10.4矛盾,所以(2)中序列不可简单图化。类似可证(4)中序列不可简单图化。由定理10.5易知,除(1)中序列不可图化外,其余各序列都可图化。但除(5)中序列外,其余的都是不可简单图化的。(2)中序列有5个数,若它可简单图化,设所得图为G,则(G)=5,与定理10.4矛盾,所以(2)中序列不可简单图化。类似可证(4)中序列不可简单图化。 解 若(3)中序列可简单图化,设G=<V,E>以(3)中序列为度数列,V={v1,v2,v3,v4},且d(v1)=d(v2)=d(v3)=3,d(v4)=1,v4只能与v1、v2、v3中之一相邻,于是v1、v2、v3不可能都是3度结点,这是矛盾的,因而(3)中序列是不可简单图化的。
10.1.4 图的同构 定义10.11 无向图(或有向图)G1=<V1,E1>和G2=<V2,E2>,若有双射f:V1V2,使得对任意u、v∈V1,有[u,v]∈E1[f(u),f(v)]∈E2(或<u,v>∈E1<f(u),f(v)>∈E2),且其重数相同,则称G1同构于G2,记为G1G2。若G与其补图同构,称G为自补图。
例6 在图10-5中,图(a)和(b)是同构的。因为可作映射g,使得g(1)=v3,g(2)=v1,g(3)=v4,g(4)=v2。在映射g下,边<1,3>,<1,2>,<2,4>和<3,4>分别映射到<v3,v4>,<v3,v1>,<v1,v2>和<v4,v2>。
若两个图同构,则它们的结点数相同,边数相同,度数相同的结点数相同等。但这并不是图同构的充分条件,如在图10–6中,图(a)和(b)虽然满足以上3条件但不同构。图(a)中的x应与图(b)中的y对应,因为度数都是3。但图(a)中的x与两个度数为1的结点u、v邻接,而图(b)中的y仅与一个度数为1的结点w邻接。若两个图同构,则它们的结点数相同,边数相同,度数相同的结点数相同等。但这并不是图同构的充分条件,如在图10–6中,图(a)和(b)虽然满足以上3条件但不同构。图(a)中的x应与图(b)中的y对应,因为度数都是3。但图(a)中的x与两个度数为1的结点u、v邻接,而图(b)中的y仅与一个度数为1的结点w邻接。
例7 (1)画出4阶3条边的所有非同构无向简单图; (2)画出3阶2条边的所有非同构有向简单图。 解 (1)由握手定理可知,所画的无向简单图各结点度数之和为2×3=6,最大度数小于或等于3。于是所求无向简单图的度数列应满足的条件是:将6分成4个非负整数,每个整数均大于或等于0且小于或等于3,并且奇数个数为偶数。将这样的整数列排列出来只有下列三种情况: 3、1、1、1 2、2、1、1 2、2、2、0
所要求的全部非同构的图,如图10-7所示。 (2)由握手定理可知,所画的有向简单图各结点度数之和为4,且最大出度和最大入度均小于或等于2。度数列与入度列、出度列为: 1、2、1:入度列为0、1、1或0、2、0或1、0、1; 出度列为1、1、0或1、0、1或0、2、0
2、2、0:入度列为1、1、0; 出度列为1、1、0 四个所求有向简单图如图10-8所示。
10.2 路、回路与连通性 定义10.12 给定图G=<V,E>,设v0,v1,…,vm∈V,边(或弧)e1,e2,…,em∈E,其中vi-1、vi是ei的结点,交替序列v0e1v1e2…emvm称为连接v0到vm的路或通路,通常简记为v0v1…vm。路上边的数目称为该路的长度。当v0=vm时,称其为回路。 定义10.13 在一条路中,若出现的所有边(或弧)互不相同,称其为简单路或迹;若出现的结点互不相同,称其为基本路或初级通路。
定义10.14 在一条回路中,若出现的每条边(或弧)恰好一次,称其为简单回路;若出现的每个结点恰好一次,称其为基本回路或初级回路或圈。长度为奇数的圈称为奇圈;长度为偶数的圈称为偶圈。 例1在图10-9中,v1v2v3v2v4是一条简单路但不是基本路,v1v2v3v4是一条基本路;v1v2v3v2v4v1是一简单回路但不是基本回路,v1v2v3v4v1是一基本回路。
定理10.7 在一个图中,若从结点u到v存在一条路,则必有一条从u到v的基本路。 证明 若u到v的路已是基本路,结论成立。否则,在u到v的路中至少有一个结点比如w重复出现,于是经过w有一个回路C,删去回路C上的所有边(或弧)。若得到的u到v的路上仍有结点重复出现,则续行此法,直到u到v的路上没有重复的结点为止,此时所得即是基本路。
定理10.8 在n阶图中,任何基本路的长度均不大于n-1,任何基本回路的长度均不大于n。 证明 在n阶图中,因为任何基本路和基本回路中都最多有n个结点,所以任何基本路的长度均不大于n-1,任何基本回路的长度均不大于n。 定义10.15 在一个图中,若从u到v存在任何一条路,或u=v,则称从u到v是可达的。 定义10.16 若无向图G中任意两个结点之间都是可达的,则称G为连通图,否则称G为非连通图。一个图G的连通分支数记为(G)。
定理10.9 若G是n阶m条边的连通无向图,则m≥n-1。 证明 因为G连通,所以存在一条包含所有结点的路,而这样的路最短为n-1,故m≥n-1。 该定理的逆否命题可用来判定一个图不连通。 例2 在图10-10中,图(a)是连通的,而图(b)是不连通的,其连通分支数为3。
定义10.17 设G=<V,E>是连通无向图,若SV,使G删除S(将S中结点及其关联的边都删除)后所得子图G-S不连通,则称S是G的一个点割集。若G的点割集S={v},称v是G的割点。 若TE,使G删除T(将T中的边从G中全删除)后所得子图G-T不连通,则称T是G的一个边割集。若G的边割集T={e},称e是G的割边或桥。 例3 在图10-11中,v3是割点;{[v1,v3],[v2,v3]}是割边集,但没有割边。
定义10.18 若G是连通无向图,称(G)=min{|S| |S是G的点割集}为G的点连通度,称(G)=min{|T| |T是G的边割集}为G的边连通度。规定非连通图和平凡图的点连通度和边连通度为0,完全图Kn的点连通度为n-1。 点连通度和边连通度反映了图的连通程度,(G)和(G)的值越大,说明图的连通性越好。 定理10.10 一个连通无向图G中的结点v是割点存在结点u和w,使得连接u和w的每条路都经过v。
证明 充分性:若连通图G中存在结点u和w,使得连接u和w的每条路都经过v,则在子图G-{v}中u和w必不可达,故v是G的割点。 必要性:若v是G的割点,则G-{v}至少有两个连通分支G1=<V1,E1>和G2=<V2,E2>。任取u∈V1,w∈V2,因为G连通,故在G中必有连接u和w的路,但u、w在G-{v}中不可达,因此必通过v,即u和w之间的任意路必经过v。 定理10.11 一个连通无向图G中的边e是割边存在结点u和w,使得连接u和w的每条路都经过e。
定理10.12 连通无向图G的边e是割边e不包含在图的任何基本回路中。 证明 e=[x,y]是连通图G的割边当且仅当x、y在G-{e}的不同连通分支中,而后者等价于在G-{e}中不存在x到y的路,从而等价于e不包含在图的任何基本回路中。于是定理得证。 定理10.13 对于任意无向图G,有(G)≤(G)≤(G)。
证明 若G不连通或为平凡图,则(G)=(G)=0≤(G)。 若G为完全图Kn,则(G)=(G)=(G)=n-1。 其它情况,先证(G)≤(G)。 由于度数最小的结点关联的边都删除后,必使得G不再连通,所以(G)≤(G)。 再证(G)≤(G)。 当在G中删除构成边割集的(G)条边后,G不连通。现将这(G)条边中取自不同边的(G)个不同的端点删除后,G亦不连通。因此(G)≤(G)。
定义10.19 在简单有向图G中,若任何两个结点之间是相互可达的,则称G是强连通的;若任何两个结点之间,至少从一个结点到另一个结点是可达的,则称G是单向连通或单侧连通的;若有向图G的基图是连通的,则称G是弱连通的。 例4 在图10-12中,图(a)是强连通的,图(b)是单向连通非强连通的,图(c)是弱连通非单向连通的。
由定义可知,强连通图一定是单向连通,单向连通图一定是弱连通的,但反之不然。 定理10.14 有向图G是强连通的G中有一回路,它至少通过每个结点一次。 充分性:如G中有一回路,它至少通过每个结点一次,则G中任意两个结点相互可达,故G是强连通的。 证明 必要性:如有向图G是强连通的,则任意两个结点相互可达。设V={v1,v2,…,vm},i为vi到vi+1的路,n为vn到v1的路,则1、2、…、n-1、n所围成的回路至少通过每个结点一次。
定义10.20在简单有向图中,具有强连通性质的最大子图称为强分图;具有单向连通性质的最大子图称为单向分图或单侧分图;具有弱连通性质的最大子图称为弱分图。定义10.20在简单有向图中,具有强连通性质的最大子图称为强分图;具有单向连通性质的最大子图称为单向分图或单侧分图;具有弱连通性质的最大子图称为弱分图。 例5 在图10-13中,由{1,2,3}、{4}、{5}、{6}、{7,8}形成的诱导子图是强分图。由{1,2,3,4,5}、{5,6}、{7,8}形成的诱导子图都是单向分图。由{1,2,3,4,5,6}、{7,8}形成的诱导子图都是弱分图。
定理10.15 简单有向图G=<V,E>中的任一结点恰位于一个强分图中。 证明 设v∈V,S是G中所有与v相互可达的结点集合,由S诱导的子图是G的一个强分图,且包含结点v。若结点v位于两个不同的强分图S1和S2中,则S1中每个结点与v相互可达,v与S2中每个结点也相互可达,于是S1中任一结点与S2中任一结点相互可达,与S1和S2是强分图矛盾。所以,G的任一结点恰位于一个强分图中。 定理10.16 简单有向图中每个结点和每条弧至少位于一个单向分图中。
定理10.17 简单有向图中每个结点和每条弧恰位于一个弱分图中。 定义10.21 在图G中,结点u到结点v的最短路的长度称为u到v的距离,记作d<u,v>。如u到v没有路,则d<u,v>=+。它具有下列性质: d<u,v>≥0 d<u,u>=0 d<u,v>+d<v,w>≥d<u,w> u与v相互可达,d<u,v>未必等于d<v,u>。
10.3 图的矩阵表示 定义10.22 给定简单图G=<V,E>,V={v1,v2,…,vn},n阶方阵A=(aij)称为G的邻接矩阵,其中: 定理10.18 设A为简单图G的邻接矩阵,则Am中第i行第j列上的元素amij等于G中联结vi到vj长度为m的路的数目。
当m=1时,结论显然成立。 证明 假设m=k时结论成立,考察m=k+1的情形。 ak+1ij= akir arj (1) 因为Ak+1=Ak·A,则 akir是联结vi到vr长为k的路的数目 arj是联结vr到vj长为1的路的数目 因此(1)右端每项表示由vi经过vr到vj长度为k+1的路的数目。 对r求和即得ak+1ij,它是所有从vi到vj长度为k+1的路的数目。
定理10.19 设A为简单图G的邻接矩阵,AT为A的转置,则 (1)令AAT=(bij),则bij的意义是:有bij个结点v,使得vi到v,vj到v都有边; (2)令ATA=(cij),则cij的意义是:有cij个结点v,使得v到vi,v到vj都有边。 证明 仅证(1)。由B=AAT得,因为vi、vj到vk都有边当且仅当,所以对k求和得到的bij,就是使vi到v,vj到v都有边的v的数目。
例1 G=<V,E>如图10-14所示,求A,A2,A3,A4、AAT、ATA。 解 G的邻接矩阵A及其转置分别为: 根据矩阵的乘法运算可得
由定理10.18及A4可知,v2到v3长度为4的路有3条,v4到v2长度为4的路有2条。由定理10.18及A4可知,v2到v3长度为4的路有3条,v4到v2长度为4的路有2条。 由定理10.19及AAT、ATA可知,只有一个结点v3使得v1、v2到v3都有边;没有到v1、v2均有边的结点。
定义10.23 (1)给定无向图G=<V,E>,V={v1,v2,…,vn},E={e1,e2,…,em},令mij为结点vi与边ej的关联次数,称M=(mij)nm为G的关联矩阵。 M每列和均为2说明每条边关联两结点;第i行之和为vi的度数。 (2)给定简单有向图G=<V,E>,称M=(mij)nm为G的关联矩阵,其中:
例2 给出图10-15所示的图的关联矩阵。 解 在图10-15中,图(a)和图(b)的关联矩阵M1和M2分别为: