第七章图论7.1图的基本概念7.2路与回路7.3图的矩阵表示7.4欧拉图与汉密尔顿图7.5树与生成树7.6根树及其应用习题七7.1图的基本概念7.1.1图的基本概念7.1.2图的结点的度数及其计算7.1.3子图和图的同构7.1.1图的基本概念现实世界中许多现象能用某种图形表示,这种图形是由一些点和一些连接两点间的连线所组成。【例7.1.1】a,b,c,d4个篮球队进行友谊比赛。为了表示4个队之间比赛的情况,我们作出图7.1.1的图形。在图中4个小圆圈分别表示这4个篮球队,称之为结点。如果两队进行过比赛,则在表示该队的两个结点之间用一条线连接起来,称之为边。这样利用一个图形使各队之间的比赛情况一目了然。1.图的定义图7.1.1如果图7.1.1中的4个结点a,b,c,d分别表示4个人,当某两个人互相认识时,则将其对应点之间用边连接起来。这时的图又反映了这4个人之间的认识关系。我们也可以点代表工厂,以连接两点的连线表示这两工厂间有业务往来关系。这样便可用图形表示某一城市中各工厂间的业务往来关系。这种用图形来表示事物之间的某种关系的方法我们也曾经在第三章中使用过。对于这种图形,我们的兴趣在于有多少个点和哪些点对间有线连接,至于连线的长短曲直和点的位置都无关紧要。对它们进行数学抽象我们就得到以下作为数学概念的图的定义。定义7.1.1一个图G是一个序偶〈V(G),E(G)〉,记为G=〈V(G),E(G)〉。其中V(G)是非空结点集合,E(G)是边集合,对E(G)中的每条边,有V(G)中的结点的有序偶或无序偶与之对应。若边e所对应的结点对是有序偶〈a,b〉,则称e是有向边。a叫边e的始点,b叫边e的终点,统称为e的端点。若边e所对应的结点对是无序偶(a,b),则称e是无向边。这时统称e与两个结点a和b互相关联。我们将结点a、b的无序结点对记为(a,b),有序结点对记为〈a,b〉。一个图G可用一个图形来表示且表示是不唯一的。【例7.1.2】设G=〈V(G),E(G)〉,其中V(G)={a,b,c,d},E(G)={e1,e2,e3,e4,e5,e6,e7},e1=(a,b),e2=(a,c),e3=(b,d),e4=(b,c),e5=(d,c),e6=(a,d),e7=(b,b)。则图G可用图7.1.2(a)或(b)表示。图7.1.2图7.1.22.图G的结点与边之间的关系邻接点:同一条边的两个端点。孤立点:没有边与之关联的结点。邻接边:关联同一个结点的两条边。孤立边:不与任何边相邻接的边。自回路(环):关联同一个结点的一条边((v,v)或〈v,v〉)。平行边(多重边):关联同一对结点的多条边。如例7.1.1中的图,结点集V={a,b,c,d},边集E={e1,e2,e3,e4,e5},其中e1=(a,b),e2=(a,c),e3=(a,d),e4=(b,c),e5=(c,d)。d与a、d与c是邻接的,但d与b不邻接,边e3与e5是邻接的。【例7.1.3】设图G=〈V,E〉如图7.1.3所示。这里V={v1,v2,v3},E={e1,e2,e3,e4,e5},其中e1=(v1,v2),e2=(v1,v3),e3=(v3,v3),e4=(v2,v3),e5=(v2,v3)。在这个图中,e3是关联同一个结点的一条边,即自回路;边e4和e5都与结点v2、v3关联,即它们是多重边。图7.1.33.图G的分类(1)按G的结点个数和边数分为(n,m)图,即n个结点,m条边的图;特别地,(n,0)称为零图,(1,0)图称为平凡图。(2)按G中关联于同一对结点的边数分为多重图和简单图;多重图:含有平行边的图(如图7.1.3)。简单图:不含平行边和自环的图。(3)按G的边有序、无序分为有向图、无向图和混合图;有向图:每条边都是有向边的图称为有向图(图7.1.4(b));无向图:每条边都是无向边的图称为无向图;混合图:既有无向边,又有有向边的图称为混合图。本书主要研究无向图和有向图。(a)(b)(4)按G的边旁有无数量特征分为边权图(如图7.1.4(a))、无权图;(5)按G的任意两个结点间是否有边分为完全图Kn(如图7.1.5)和不完全图(如图7.1.6)。图7.1.4图7.1.6完全图:任意两个不同的结点都是邻接的简单图称为完全图。n个结点的无向完全图记为Kn。图7.1.5给出了K3和K4。从图中可以看出K3有3条边,K4有6条边。容易证明Kn有条边。(1)2nn图7.1.5K3与K4示意图给定任意一个含有n个结点的图G,总可以把它补成一个具有同样结点的完全图,方法是把那些缺少的边添上。定义7.1.2设G=〈V,E〉是一个具有n个结点的简单图。以V为结点集,以从完全图Kn中删去G的所有边后得到的图(或由G中所有结点和所有能使G成为完全图的添加边组成的图)称为G的补图,记为。例如,零图和完全图互为补图。图7.1.6给出了一个图G和G的补图。GG【例7.1.4】(拉姆齐问题)试证在任何一个有6个人的组里,存在3个人互相认识,或者存在3个人互相不认识。我们用6个结点来代表人,并用邻接性来代表认识关系。这样一来,该例就是要证明:任意一个有6个结点的图G中,或者有3个互相邻接的点,或者有3个互相不邻接的点。即,对任何一个有6个结点的图G,G或中含有一个三角形(即K3)。G证明:设G=〈V,E〉,|V|=6,v是G中一结点。因为v与G的其余5个结点或者在中邻接,或者在G中邻接。故不失一般性可假定,有3个结点v1,v2,v3在G中与v邻接。如果这3个结点中有两个结点(如v1,v2)邻接,则它们与v3就是G中一个三角形的3个顶点。如果这3个结点中任意两个在G中均不邻接,则v1,v2,v3就是中一个三角形的3个顶点。GG7.1.2图的结点的度数及其计算我们常常需要关心图中有多少条边与某一结点关联,这就引出了图的一个重要概念——结点的度数。定义7.1.3图中结点v所关联的边数(有自回路时计算两次)称为结点v的度数,记为deg(v)。如图7.1.3中的deg(v1)=2,deg(v2)=3,deg(v3)=5。定理7.1.1图G=〈V,E〉中结点度数的总和等于边数的两倍,即deg()2VE证明:因为每条边都与两个结点关联,所以加上一条边就使得各结点度数的和增加2,由此结论成立。推论:图G中度数为奇数的结点必为偶数个。证明:设V1和V2分别是G中奇数度数和偶数度数的结点集。由定理7.1.1知由于是偶数之和,必为偶数,而2|E|也为偶数,故。由此|V1|必为偶数。1deg()VEvvVvVv2)deg()deg(212)deg(Vvv定义7.1.4在有向图中,射入结点v的边数称为结点v的入度,记为;由结点v射出的边数称为结点v的出度,记为。结点v的入度与出度之和就是结点v的度数。如图7.1.4中=1,=2。)(degv)(degv)(dega)(degv图7.1.4定理7.1.2在任何有向图G=〈V,E〉中,有EvvVvVv)(deg)(deg7.1.3子图和图的同构1.子图在研究和描述图的性质时,子图的概念占有重要地位。定义7.1.5设有图G=〈V,E〉和图G′=〈V′,E′〉。1)若V′V,E′E,则称G′是G的子图。2)若G′是G的子图,且E′≠E,则称G′是G的真子图。3)若V′=V,E′E,则称G′是G的生成子图。图7.1.7给出了图G以及它的真子图G1和生成子图G2。图7.1.7图G以及其真子图G1和生成子图G22.图的同构从图的定义可以看出,图的最本质的内容是结点与结点的邻接关系。例如例7.1.1也可以用图7.1.8中几种不同形状的图形表示。它们与图7.1.1一样,都同样表示例7.1.1中4个队之间的比赛情况。从这个意义上讲,我们说它们是同一个图,并称图7.1.1与图7.1.8的(a)和(b)是同构的。图7.1.8同构的图图7.1.9图7.1.1定义7.1.6设有图G=〈V,E〉和图G′=〈V′,E′〉。如果存在双射g:V→V′,使得e=(u,v)∈Eiffe′=(g(u),g(v))∈E′,且(u,v)与(g(u),g(v))有相同的重数,则称G与G′同构。记作G≌G′。【例7.1.5】考察图7.1.9中的两个图G=〈V,E〉和G′=〈V′,E′〉。显然,定义g:V→V′,g(vi)=vi′,可以验证g是满足定义7.1.6的双射,所以G≌G′。对于同构,形象地说,若图的结点可以任意挪动位置,而边是完全弹性的,只要在不拉断的条件下,这个图可以变形为另一个图,那么这两个图是同构的。故同构的两个图从外形上看可能不一样,但它们的拓扑结构是一样的。小结:本结介绍了图的基本概念、图的结点的度数及其性质以及子图、生成子图与图的同构等概念。重点:图的结点的度数及其性质以及生成子图的概念。作业:P279(1),(2)7.2路与回路7.2.1路与回路7.2.2图的连通性7.2.1路与回路定义7.2.1给定图G=〈V,E〉,设v0,v1,…,vk∈V,e1,e2,…,ek∈E,其中ei是关联于结点vi-1和vi的边,称交替序列v0e1v1e2…ekvk为连接v0到vk的路,v0和vk分别称为路的起点与终点。路中边的数目k称作路的长度。当v0=vk时,这条路称为回路。在简单图中一条路v0e1v1e2…ekvk由它的结点序列v0v1…vk确定,所以简单图的路,可表示为v0v1…vk。如图7.1.1表示的简单图中,路ae1be4ce5d可写成abcd。定义7.2.2设μ=v0e1v1e2…ekvk是图G中连接v0到vk的路。1)若e1,e2,…,ek都不相同,则称路μ为迹;2)若v0,v1,…,vk都不相同,则称路μ为通路;3)长度大于2的闭的通路(即除v0=vk外,其余结点均不相同的路)μ称作圈。图7.1.1例如在图7.2.1中,有连接v5到v3的路v5e8v4e5v2e6v5e7v3,这也是一条迹;路v1e1v2e3v3是一条通路;路v1e1v2e3v3e4v2e1v1是一条回路,但不是圈;路v1e1v2e3v3e2v1是一条回路,也是圈。下面我们利用通路的概念解决一个古老的著名问题。图7.2.1【例7.2.1】(渡河问题)一个摆渡人,要把一只狼、一只羊和一捆干草运过河去,河上有一只木船,每次除了人以外,只能带一样东西。另外,如果人不在旁时,狼就要吃羊,羊就要吃干草。问这人怎样才能把它们运过河去?【游戏】解用F表示摆渡人,W表示狼,S表示羊,H表示干草。解:用F表示摆渡人,W表示狼,S表示羊,H表示干草。若用FWSH表示人和其它3样东西在河的左岸的状态。这样在左岸全部可能出现的状态为以下16种:FWSHFWSFWHFSHWSHFWFSFHWSWHSHFWSHφ这里φ表示左岸是空集,即人、狼、羊、干草都已运到右岸去了。根据题意检查一下就可以知道,这16种情况中有6种情况是不允许出现的。它们是:WSH、FW、FH、WS、SH、F。如FH表示人和干草在左岸,而狼和羊在右岸,这当然是不行的。因此,允许出现的情况只有10种。我们构造一个图,它的结点就是这10种状态。若一种状态可以转移到另一种状态,就在表示它们的两结点间连一条边,这样就画出图7.2.2。本题就转化为找结点FWSH到结点φ的通路。从图中得到两条这样的通路,即有两种渡河方案。图7.2.2定义7.2.2在图G中,若结点vi到vj有路连接(这时称vi和vj是连通的),其中长度最短的路的长度称为vi到vj的距离,用符号d(vi,vj)表示。若从vi到vj不存在路径,则d(vi,vj)=∞。例如在图7.2.1中,d(v1,v4)=2。注意:在有向图中,d(vi,vj)不一定等于d(vj,vi),但一般地满足以下性质:(1)d(vi,vj)≥0;(2)d(vi,vi)=0;(3)d(vi,vj)+d(vj,vk)≥d(vi,vk)。定理7.2.1设G是具有n个结点的图,如果从结点v1到另一结点v2存在一条路,则从结点v1到v2必存在一条路长度不大于n-1的通路。证明:假定从v1到