第七部分 图论方法 第十二章 图论方法
1. 图的基本概念 图是一个有序对<V,E>,V是结点集,E是边集; 无向边,与无序结点对(v, u)相关联的边; 无向图,每条边都是无向边的图; 有向图,每条边都是有向边的图.
图的基本概念 混合图,既有有向边,也有无向边的图. 平凡图,仅有一个结点的图; 零图,边集为空集的图<V, >,即仅有结点的图. 自回路(环),关联于同一个结点的边. 无向平行边,联结相同两个结点的多于1条的无向边; 有向平行边,联结两个结点之间的多于1条且方向相同的有向边; 简单图,不含平行边和自回路的图.
图的基本概念 在有向图D=<V,E>中,以v(V)为起点的边之条数为出度deg+(v);以v(V)为终点的边之条数为入度deg-(v). 在无向图G=<V,E>中,与结点v(V)关联的边数,即为结点度数deg(v)或d(v);在有向图中,结点v的出度和入度之和为度数. 最大度数,(G)=max{deg(v)vV};最小度数,(G)=min{deg(v)vV}
图的基本概念 有n个结点的且每对结点都有边相连的无向简单图,称为无向完全图;有n个结点的且每对结点之间都有两条方向相反的边相连的有向简单图为有向完全图。 设G=<V,E>, V,E的子集V,E构成的图G=<V,E>是图G的子图;若GG且GG,(VV或EE),G是G的真子图. 生成子图,设图G=<V,E>, 若EE, 则图<V,E>是图<V,E>的生成子图,即结点与原图G相同的子图.
2. 哥尼斯堡七桥问题
2. 哥尼斯堡七桥问题
2. 哥尼斯堡七桥问题
2. 哥尼斯堡七桥问题 通过图中所有边一次且仅一次行遍所有顶点的通路称为欧拉通路; 通过图中所有边一次且仅一次行遍所有顶点的回路称为欧拉回路; 具有欧拉回路的图称为欧拉图; 具有欧拉通路但无欧拉回路的图称为半欧拉图。
2. 哥尼斯堡七桥问题 判别方法: (1) 无向连通图是欧拉图当且仅当其所有顶点的度数都是偶数; (1) 无向连通图是欧拉图当且仅当其所有顶点的度数都是偶数; (2) 无向连通图是半欧拉图当且仅当其奇点数为2;
2. 哥尼斯堡七桥问题 Fleury算法: 任取v0∈V(G),令P0=v0; 设Pi=v0e1v1e2…ei vi已经行遍,按下面方法从中选取ei+1: (a) ei+1与vi相关联; (b)除非无别的边可供行遍,否则ei+1不应该为Gi=G-{e1,e2, …, ei}中的桥(所谓桥是一条删除后使连通图不再连通的边); (c)当(b)不能再进行时,算法停止。
2. 哥尼斯堡七桥问题 例
3最短路径问题 单源点的最短路径问题:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。
3最短路径问题
3最短路径问题 终点 最短路径 路径长度 B 无 C (A,C) 10 D (A,E,D) 50 E (A,E) 30 F (A,E,D,F) 60
3最短路径问题 Dijkstra 算法 (1)假设用带权的邻接矩阵A来表示带权有向图,A[i][j]表示弧<vi,vj>上的权值。若<vi,vj>不存在,则置A[i][j]为∞。S为已找到从v出发的最短路径的终点的集合,它的初始状态为空集。设D[i]从v出发到图上其余各顶点(终点)vi可能达到的最短路径长度的初值。 (2) 选择结点,使得 , vj就是当前求得的一条从v出发的最短路径的终点。令S=SU{vj}. (3) 修改从v出发到集合V-S上任一顶点vk可达的最短路径长度。如果D[j]+A[j][k]<D[k], 则修改D[k]为D[k]=D[j]+A[j][k]. (4) 重复操作(2)(3)共n-1次。由此求得从v到图上其余各顶点的最短路径是依路径长度递增的序列。
4.中国邮递员问题 一个邮递员从邮局出发投递信件,他必须在他所管辖范围内的所有街道至少走一次,最后回到邮局,他自然希望一条最短的路线完成投递任务,那么如何选择这样的路线呢? 构造无向带权图G=<V,E,W>,E为街道集合,V中元素为街道的交叉点。街道的长度为该街道对应的边的权,显然所有权大于0。邮递员问题就变成了求G中一条经过每条边至少一次的回路,使该回路所带权最小的问题。满足以上条件的回路是最优投递路线或最优回路。
4.中国邮递员问题 C是带正权无向连通图中的最优投递路线当且仅当对应的欧拉图应满足: G的每条边在中至多重复出现一次;
4.中国邮递员问题 算法步骤如下: (1)若G中无奇点,令G*=G,转2,否则转3; (2)求G*中的欧拉回路,结束; (4)以G中奇点集V’为顶点集,边(vi,vj)的权为之间最短路径的权,得完全带权图K2k; (5)求K2k中最小权完美匹配M; (6)将M中边对应的各最短路径中的边均在G中加重复边,得欧拉图G*,转2。
4.中国邮递员问题
4.中国邮递员问题
5.人员分配问题 设某企业有n个员工及n个工作,已知每个员工各胜任一些工作。能否使每个员工都分派到一件他胜任的工作?
5.人员分配问题 定义1 设X,Y都是非空有限集,且X∩Y=Ø, , 称G=(X,Y,E)为二部图。如果X中的每个点都与Y中的每个点邻接,则称G=(X,Y,E) 为完备二部图。 定义2 设图G=(V,E), 。若M中任意两条边在G中均不邻接,则称M是G的一个匹配。
5.人员分配问题 定义3 若匹配是M的某条边与点v关联,则称M饱和点v,并且称v是M的饱和点,否则称v是M的非饱和点。 定义4 设M是图G的一个匹配,如果G的每一个点都是M的饱和点,则称M是完美匹配;如果G中没有另外的匹配M0,使 | M0|> | M| ,则称M是最大匹配。 定义5 设M是图G的一个匹配,其边在E/M和M中交错出现的路,称为G的一条M-交错路。起点和终点都不是M的饱和点的M-交错路,称为M-增广路。
5.人员分配问题 求二部图G的最大匹配的算法,即匈牙利算法: (1)将X中M的所有非饱和点都给以标号0和标记 *,转向(2); (2)若X中所有有标号的点都已去掉了标记*,则M是G的最大匹配,否则,任取X中一个既有标号又有标记*的点xi,去掉xi的标记*,转向(3); (3)找出在G中所有与xi邻接的点yj,若所有这样的yj都已有标号,则转向(2),否则转向(4); (4)对与xi邻接且尚未给标号的yj都给定标号i,若所有的yj都是M的饱和点,则转向(5),否则逆向返回; (5)将yj在M中与之邻接的点xk,给以标号j和标记*,转向(2)。
5.人员分配问题
5.人员分配问题
5.人员分配问题
5.人员分配问题
5.人员分配问题
5.人员分配问题
5.人员分配问题
6.稳定匹配问题 假设有一百个男人和一百个女人, 每个男人都凭自己好恶给每个女人打分, 我最爱a, 其次爱b, 再次爱c(假定没有相同的)... 每个女人也同样给每个男人打分. 然后就是求婚过程.直到最后大家都订了婚, 便一起结婚.
6.稳定匹配问题 设简单偶图G=(X,Y,E)中,男孩集X,女孩集Y,每边xy表示男孩x与女孩y彼此认识。今假设每个男孩x对他所认识的所有女孩有一个倾向度排序,每个女孩y对他所认识的所有男孩也有一个倾向度排序,对G上任意给定的一个倾向度分派,称G的一个匹配M为稳定匹配,如果对G中任一条非M边xy,以下两个条件至少有一个成立: M中存在这样一条边xy’(即x是M饱和的),使x倾向于y’胜过y; M中存在这样一条边x’y(即y是M饱和的),使y倾向于x’胜过x;
6.稳定匹配问题 数学上可以证明:在任给定的一个倾向度分派下,任一偶图中,都可找到一稳定匹配,且为一X-最优稳定匹配M*,即对G中的任一稳定匹配M及任一顶点x X,若xy M,则存在xy* M*,使y=y*;或x倾向于y*胜过y。
6.稳定匹配问题 第一, 这个过程会中止, 也就是说, 总有大家都订了婚的一天,不可能无限循环. 第二, 中止后所有的婚姻是稳定婚姻. 所谓不稳定婚姻是说, 比如说有两对夫妇M1, F1和M2, F2, M1的老婆是F1, 但他更爱F2;而F2的老公虽说是M2. 但她更爱M1(注意是更爱,不是最爱), 这样的婚姻就是不稳定婚姻,因为M1和F2理应结合, 他们现在各自的婚姻都是错误. 我们能证明的是, 通过上面那个求婚过程, 所有的婚姻都是稳定的, 没有人犯错误.
7.竞赛图 几支球队参加单循环比赛,各队两两交锋,每场比赛无平局,必分输赢。如何排列各队的名次,成为比赛组织者和各参赛队关心的问题。
7.竞赛图 2个队相应的竞赛图可归纳为一种. 3个顶点的竞赛图可归为两种情况.
7.竞赛图 4个顶点的竞赛图
7.竞赛图 对于任何一对顶点,存在两条有向路径,使两顶点可以相互连通,这种有向图称为双向连通的。 令表示第i个队的得分,则称n维向量S=(s1,s2,…,s n)T为得分向量. S=Ae, e=(1,1, …,1)T S(k)=AS(k-1)=Ake, k=1,2, …