
图论离散数学离散数学第四版清华出版社课件.ppt
65页第七章第七章 图的基本概念图的基本概念§1 无向图及有向图无向图及有向图§2 通路、回路、图的连通性通路、回路、图的连通性§3 图的矩阵表示图的矩阵表示§4 最短路径及关键路径最短路径及关键路径9/22/20241第四部分:图论(授课教师:向胜军)图图(Graph)(Graph):: 可可直直观观地地表表示示离离散散对对象象之之间间的的相相互互关关系系,,研究它们的共性和特性,以便解决具体问题研究它们的共性和特性,以便解决具体问题 图图是是一一类类相相当当广广泛泛的的实实际际问问题题的的数数学学模模型型,,有有着着极极其其丰丰富富的的内内容容,,是是数数据据结结构构等等课课程程的的先先修修内内容容学学习习时时应应掌掌握握好好图图论论的的基基本本概概念念、、基基本本方方法法、、基基本本算算法法,,善善于于把把实实际际问问题题抽抽象象为为图图论的问题,然后用图论的方法解决问题论的问题,然后用图论的方法解决问题9/22/20242第四部分:图论(授课教师:向胜军)§1 无向图及有向图无向图及有向图v 本节介绍图的一些最常用的概念本节介绍图的一些最常用的概念, ,主要有:主要有: 无向图,有向图,边,顶点无向图,有向图,边,顶点( (或结点,点或结点,点) ),弧,弧( (或有向边或有向边) ),顶点集,边集,,顶点集,边集,n n阶图,有阶图,有限图,关联,多重图,简单图,完全图,母图限图,关联,多重图,简单图,完全图,母图, ,子图子图, , 生成子图,导出子图,补图,图的同构,生成子图,导出子图,补图,图的同构,入度,出度,度,孤立点等。
入度,出度,度,孤立点等 主要定理:握手定理主要定理:握手定理9/22/20243第四部分:图论(授课教师:向胜军)[定义定义] 图图 V是是一一个个非非空空有有限限集集,,E是是V上上的的一一个个二二元元关关系系,,有有序序对对
a, b间用连线连结间用连线连结 有向边和无向边统称为有向边和无向边统称为G的的边边(edge)9/22/20245第四部分:图论(授课教师:向胜军)[定义定义] 图的分类图的分类 对对图图G=
a称为称为e的的始点始点(initial vertex),,b称为称为e的的终终点点(terminal/end vertex)9/22/20247第四部分:图论(授课教师:向胜军)[定义定义] 孤立点孤立点 若若a∈∈V,,a不与其他顶点相邻,称不与其他顶点相邻,称a为为孤立孤立点点(isolated vertex)[定义定义] 顶点的度顶点的度 在无向图在无向图G中,与中,与a相邻的顶点的数目称为相邻的顶点的数目称为a的的度度(degree)记为deg(a)或或d(a) 在有向图在有向图D中,以中,以a为终点的边的条数称为为终点的边的条数称为a的的入度入度(in-degree)记为deg–(a)或或d–(a)以a为始点的边的条数称为为始点的边的条数称为a的的出度出度(out-degree)记为记为deg+(a)或或d+(a)9/22/20248第四部分:图论(授课教师:向胜军)[定理定理1 (握手定理握手定理Handshaking)] 设无向图设无向图G=
即的两倍即证明思路:利用数学归纳法证明思路:利用数学归纳法[定理定理2] 无向图中度为奇数的顶点个数恰有无向图中度为奇数的顶点个数恰有偶数个证明思路:将图中顶点的度分类,再利用定理证明思路:将图中顶点的度分类,再利用定理19/22/20249第四部分:图论(授课教师:向胜军)[定理定理3] 设有向图设有向图D=
9/22/202411第四部分:图论(授课教师:向胜军)完全图完全图(n=1,2,3,4,5)9/22/202412第四部分:图论(授课教师:向胜军)[定理定理4] 设无向完全图设无向完全图G有有n个顶点,个顶点,则则G有有n(n-1)/2条边证明:证明:每一顶点都与其余的每一顶点都与其余的n-1个顶点相个顶点相邻,即每一顶点的度为邻,即每一顶点的度为n-1,共有,共有n个顶个顶点,则图点,则图G的度为的度为n(n-1),由握手定理,,由握手定理,得边数得边数m=n(n-1)/2.9/22/202413第四部分:图论(授课教师:向胜军)正则图(各顶点的度相同)正则图(各顶点的度相同)3-正则图正则图 3-正则图正则图9/22/202414第四部分:图论(授课教师:向胜军)[定义定义] 子图子图 设设G=
当当E’ E,或,或V’ V时,称时,称G’为为G的的真子图真子图9/22/202415第四部分:图论(授课教师:向胜军)[定义定义] 补图补图 设设G=
无向简单图2) 画出画出3个顶点个顶点2条边的所有可能非同构的条边的所有可能非同构的有向简单图有向简单图• (1)(2)9/22/202424第四部分:图论(授课教师:向胜军)§2 通路、回路、图的连通性通路、回路、图的连通性连通性连通性(Connectivity)[定义定义] 通路通路(path) 给给定定图图G=
在场时共处,当然只有人能架船v图模型:顶点表示图模型:顶点表示“原岸的状态原岸的状态”,两点之间,两点之间有边当且仅当一次合理的渡河有边当且仅当一次合理的渡河“操作操作”能够实能够实现该状态的转变现该状态的转变v起始状态是起始状态是“人狼羊菜人狼羊菜”,结束状态是,结束状态是“空空”v问题的解:找到一条从起始状态到结束状态的问题的解:找到一条从起始状态到结束状态的尽可能短的通路尽可能短的通路9/22/202426第四部分:图论(授课教师:向胜军)“巧渡河巧渡河”问题的解问题的解v注意:在注意:在“人狼羊菜人狼羊菜”的的16种组合中允种组合中允许出现的只有许出现的只有10种9/22/202427第四部分:图论(授课教师:向胜军)[定义定义] 简单通路简单通路(Simple Path) 若若通通路路中中所所有有边边互互不不相相同同,,称称此此道道路路为为简简单单通通路路若若回回路路中中的的所所有有边边互互不不相相同同,,称称为为简简单回路单回路(Simple Circuit)[定义定义] 基本通路基本通路(Element Path) 一一条条通通路路中中,,除除了了始始点点和和终终点点可可以以相相同同,,其其余余顶顶点点均均互互不不相相同同,,称称此此通通路路为为基基本本通通路路( (初初级级通通路路) )。
当当其其是是回回路路时时,,称称为为基基本本回回路路(Element Circuit初级回路初级回路或或圈圈)9/22/202428第四部分:图论(授课教师:向胜军) e5, e1, e2, e3, e4是简单通路,不是基本通是简单通路,不是基本通路,因为路,因为c, a, b, c, d, b中中b, c均出现了两次均出现了两次但但c, d, b, c是基本通路,也是基本回路是基本通路,也是基本回路9/22/202429第四部分:图论(授课教师:向胜军)[定定理理] 在在一一个个n阶阶图图中中,,若若从从顶顶点点u到到v (u v)存存在在通通路路,,则则从从u到到v存存在在长长度度小小于于等等于于n-1的的基基本本通通路路若若存存在在v到到自自身身的的简简单单回回路路,,则则从从v到到自自身身存存在在长长度度不不超超过过n的的基基本本回回路证证明明::设设T=v0e1v1…ekvk(v0=u, vk=v)为为u到到v的的通通路路,,若若T上上无无重重复复出出现现的的顶顶点点,,则则T为为基基本本通通路路否否则则必必存存在在t
若若T上上还还有有重重复复出出现现的的顶顶点点,,就就做做同同样样的的处处理理,,直直到到无无重重复复出出现现的的顶顶点点为为止止最最后后得得到到的的通通路路是是u到到v的的基基本本通通路路,,显显然然它它的的长度应小于等于长度应小于等于n-1类似地可证定理的后半部分类似地可证定理的后半部分9/22/202430第四部分:图论(授课教师:向胜军)[定义定义] 连通性连通性(connectivity) 设设G=
[定定 义义 ] 连连 通通 分分 图图 (connected components) 图图G可可分分为为几几个个不不相相连连通通的的子子图图,,每每一一子子图图本本身身都都是是连连通通的的称称这这几几个个子子图图为为G的的连连通通分分图图9/22/202432第四部分:图论(授课教师:向胜军)[定义定义] 有向图的连通性有向图的连通性(1) 弱连通弱连通:: 若若D=
割点割点9/22/202435第四部分:图论(授课教师:向胜军) 设设G=
显显然然mij的的可可能能取取值值为为0(vi与与ej不不关关联联),,1(vi与与ej关关联联1次次),,2(vi与与ej关关联联2次次,,即即ej是是以以vi为端点的环为端点的环)9/22/202438第四部分:图论(授课教师:向胜军)表示如下的无向图:表示如下的无向图:v1v2v3e1e2e3e4e5v49/22/202439第四部分:图论(授课教师:向胜军)关联矩阵关联矩阵((((incidence matrixincidence matrix))))要求要求D D中无环存在中无环存在2. 有向图的关联矩阵有向图的关联矩阵 设设有有向向图图D=
9/22/202442第四部分:图论(授课教师:向胜军)其邻接矩阵为:其邻接矩阵为:v1v2v3v49/22/202443第四部分:图论(授课教师:向胜军)9/22/202444第四部分:图论(授课教师:向胜军)接上例,计算接上例,计算A2, A3, A4如下:如下:9/22/202445第四部分:图论(授课教师:向胜军)• 观察各矩阵发现,观察各矩阵发现,a13(2)=3, a13(3)=4, a13(4)=6,,可可知,知,D中中v1到到v3长度为长度为2的通路有的通路有3条,长度为条,长度为3的的通路有通路有4条,长度为条,长度为4的通路有的通路有6条• a11(2)=1, a11(3)=1, a11(4)=1,,可知,可知,v1到自身长度到自身长度为为2, 3, 4的回路各有的回路各有1条9/22/202446第四部分:图论(授课教师:向胜军)[定定理理] 设设A为为有有向向图图D的的邻邻接接矩矩阵阵,,V={v1, v2, …, vn},则,则Al(l≥1)中元素中元素aij(l)为为vi到到vj长度长度为为l的通路数,的通路数, 为为D中长度为中长度为l的通路总数,的通路总数,其中其中 为为D中长度为中长度为l的回路数。
的回路数[推推论论] 设设Br=A+A2+…+Ar(r≥1),,则则Br中中元元素素bij(r)为为D中中vi到到vj长度小于等于长度小于等于r的通路数,的通路数,为为D中长度小于等于中长度小于等于r的通路总数,其中的通路总数,其中为为D中长度小于等于中长度小于等于r的回路总数的回路总数9/22/202447第四部分:图论(授课教师:向胜军)可达矩阵可达矩阵((((reachable matrixreachable matrix))))有向图的可达矩阵有向图的可达矩阵 设设有有向向图图D=
G连连同同附附加加在在各各边边上上的的实实数数称称为为带带权权图图(weighted graph) 记为记为G=
If no path between x and y has weight less than W(P), then P is called a shortest path. )v 单源最短路径单源最短路径(Single-source shortest paths) We are given a weighted graph G=
v被引用最多的论断被引用最多的论断::“程序测试只能用来证明有程序测试只能用来证明有错,绝不能证明无错错,绝不能证明无错v被引用作为其被引用作为其60岁生日纪念论文集书名的岁生日纪念论文集书名的另一句另一句名言名言::Beauty is our business9/22/202452第四部分:图论(授课教师:向胜军)求最短路径的求最短路径的Dijstra算法算法v输输入入::连连通通带带权权图图G,,|V|=n, 指指定定顶顶点点s Vv输出:每个顶点输出:每个顶点v的标注的标注(l(v), u), 其中:其中:–l(v)即从即从s到到v的最短路径长度的最短路径长度–u是该路径上是该路径上v的前一个顶点的前一个顶点9/22/202453第四部分:图论(授课教师:向胜军)求最短路径的求最短路径的Dijstra算法算法v 算法步骤:算法步骤:1. 初始化:初始化:i=0, S0={s}, l(s)=0, 对其它一切对其它一切v VG, 将将l(v)置置为为 若n=1,结束2. v Si’=VG-Si, 比较比较l(v)和和l(ui)+w(ui, v)的值的值 (ui Si),如,如果果l(ui)+w(ui, v)< l(v), 则将则将v的标注更新为的标注更新为(l(ui)+w(ui, v), ui),即:,即: l(v)=min{l(v), minu Si{l(u)+w(u,v)}}.3. 对所有对所有Si’中的顶点,找出具有最小中的顶点,找出具有最小l(v)的顶点的顶点v, 作为作为ui+1.4. Si+1 = Si ⋃ ⋃{ui+1}.5. i = i+1; 若若i=n-1, 终止。
否则,转到第终止否则,转到第2步 9/22/202454第四部分:图论(授课教师:向胜军)求最短路径的一个例子求最短路径的一个例子 9/22/202455第四部分:图论(授课教师:向胜军)求最短路径的一个例子求最短路径的一个例子(续续) 9/22/202456第四部分:图论(授课教师:向胜军)求最短路径的一个例子求最短路径的一个例子(续续)v将计算过程用一张表描述出来:将计算过程用一张表描述出来: vksabcdefg01234567(0)1(1,s)22(2,s) 43(3,b) 9999(9,c)4444(4,s)88886(6,e)777666(6,c)W(T)01239466T=sT=saT=sbT=sbcT=sbcdT=seT=sefT=sbcg9/22/202457第四部分:图论(授课教师:向胜军)关键路径问题关键路径问题((((key paths problemkey paths problem))))vPERT图图 设设D=
有有一一个个顶顶点点入入度度为为0,,称称为为发发点点,,有有一一个个顶顶点点出出度度为为0,,称称为为收收点点边边
的最长路径的权9/22/202459第四部分:图论(授课教师:向胜军)v最晚完成时间最晚完成时间 在在保保证证收收点点vn的的最最早早完完成成时时间间不不增增加加的的条条件件下下,,自自v1最最迟迟到到达达vi的的时时间间,,称称为为vi的的最最晚晚完完成成时时间间,,记作记作TL(vi). 显显然然,,TL(vn)=TE(vn). i n时时的的最最晚晚完完成成时时间间按如下公式计算:按如下公式计算:TL(vi)=min{TL(vj)-wij}, i=n-1,…,2,1. vj TD+(vi)9/22/202460第四部分:图论(授课教师:向胜军)v缓冲时间缓冲时间ES(vi)=TL(vi)-TE(vi), i=1,2,…,n.注注::在在关关键键路路径径上上,,任任何何工工序序如如果果耽耽误误了了时时间间t,,整整个个工工程程就就耽耽误误了了时时间间t,,因因而而在在关关键键路路径径上上各各顶顶点点的的缓缓冲冲时时间间均均为为0即即若若vi为为关关键键路径上的顶点,则路径上的顶点,则TL(vi)=TE(vi)9/22/202461第四部分:图论(授课教师:向胜军)求关键路径的一个例子求关键路径的一个例子 414046323411v2v5v1v3v7v8v4v629/22/202462第四部分:图论(授课教师:向胜军)求关键路径的一个例子求关键路径的一个例子(续续)v各顶点的最早完成各顶点的最早完成时间如下:时间如下:TE(v1)=0; TE(v2)=max{0+1}=1;TE(v3)=max{0+2, 1+0}=2;TE(v4)=max{0+3, 2+2}=4;TE(v5)=max{1+3, 4+4}=8;TE(v6)=max{2+4, 8+1}=9;TE(v7)=max{1+4, 2+4}=6;TE(v8)=max{9+1, 6+6}=12.v各顶点的最晚完成时间各顶点的最晚完成时间如下:如下:TL(v8)=12; TL(v7)=min{12-6}=6;TL(v6)=min{12-1}=11;TL(v5)=min{11-1}=10;TL(v4)=min{10-4}=6;TL(v3)=min{6-2, 11-4, 6-4}=2;TL(v2)=min{2-0, 10-3, 6-4}=2;TL(v1)=min{2-1, 2-2, 6-3}=0.9/22/202463第四部分:图论(授课教师:向胜军)求关键路径的一个例子求关键路径的一个例子(续续)v各顶点的缓冲时间如下:各顶点的缓冲时间如下: TS(v1)=0-0=0; TS (v2)=2-1=1; TS(v3)=2-2=0; TS(v4)=6-4=2; TS(v5)=10-8=2; TS(v6)=11-9=2; TS(v7)=6-6=0; TS(v8)=12-12=0.v关键路径为:关键路径为:v1v3v7v8.9/22/202464第四部分:图论(授课教师:向胜军)作业作业–编一个程序实现编一个程序实现Dijstra算法算法9/22/202465第四部分:图论(授课教师:向胜军)。
