- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章支配集、覆盖集、独立集与匹配 本讲内容会涉及以下容易相互混淆的内容: 点支配集, 极小点支配集, 最小点支配集, 点支配数?0(G); 支配的概念; 点独立集, 极大点独立集, 最大点独立集, 点独立数?0(G); 点覆盖集, 极小点覆盖集, 最小点覆盖集, 点覆盖数?0(G); 覆盖的概念; 边覆盖集, 极小边覆盖集, 最小边覆盖集, 边覆盖数?1(G); 边独立集(匹配), 极大边独立集(极大匹配), 最大边独立集(最大匹配), 边独立数(或匹配数)?1(G); 以上几个量存在以下关系: ?0 + ?0 = n,即:点覆盖数 + 点独立数 = n ?1 + ?1 = n,即:边覆盖数 + 边独立数 = n 对二部图,还有以下关系式: 二部图的最小点覆盖数?0 =等于最大匹配数?1。 ZOJ 1364 二部图的最大点独立数?0=顶点个数n-最大匹配数?1。(前提是该二部图没有孤立顶点,如果有孤立顶点,对这些孤立顶点要单独考虑) ZOJ 1137 7.1 点支配集、点覆盖集、点独立集(都是顶点的集合) 支配集的性质 极小支配集的求解 参见吴文虎编著的《信息学奥林匹克竞赛指导-图论的算法与程序设计(PASCAL版)》P54 有电子版 定义7.2 点独立集 定义7.3 覆盖与点覆盖集 点支配集、点独立集、点覆盖集之间的联系 定理7.1:设G = V, E中无孤立点,则G的极大点独立集都是G的极小支配集。逆命题不成立(即极小支配集未必是极大独立集)。 一个独立集是极大独立集,当且仅当它是一个支配集。 定理7.2:设G = V, E中无孤立点, V*(V*?V)为G的点覆盖, 当且仅当V-V*为G的点独立集。 推论:设G是n阶无孤立点的图,则V*是G的极小(最小)点覆盖,当且仅当V-V*是G的极大(最大)点独立集,从而有?0 + ?0 = n(顶点个数)。 定理7.1 定理7.2 极大点独立集与极小点覆盖集的求解 参见吴文虎编著的《信息学奥林匹克竞赛指导-图论的算法与程序设计(PASCAL版)》P58 7.2 边覆盖集与匹配(都是边的集合) 定义7.5 匹配 例:飞行员搭配问题1-最大匹配问题 飞行大队有若干个来自各地的飞行员,专门驾驶一种型号的飞机,这种飞机每架有两个飞行员。由于种种原因,例如互相配合的问题,有些飞行员不能在同一架飞机上飞行,问如何搭配飞行员,才能使出航的飞机最多。 为简单起见,设有10个飞行员,图(a)中的V1,V2,…V10就代表这10个飞行员。如果两个人可以同机飞行,就在他们之间连一条线,否则就不连。 例:飞行员搭配问题2-二部图的最大匹配问题 在例1中,如果飞行员分成两部分,一部分是正驾驶员,一部分是副驾驶员。如何搭配正副驾驶员才能使得出航飞机最多的问题可以归结为一个二部图上的最大匹配问题。 例如,假设有4个正驾驶员,有5个副驾驶员,飞机必须要有一名正驾驶员和一名副驾驶员才能起飞。正驾驶员和副驾驶员之间存在搭配的问题。 定义7.6 二部图(二分图) 定义7.6 完美(完备)匹配 定理7.3 设n阶图G中无孤立点。 7.3 匹配问题的求解 为了求解各种匹配问题,必须引入一系列概念: 定理7.4 M为G的最大匹配, 当且仅当G不含M可增广路径。 求最大匹配的可行方法: 给定一个初始匹配M(如果没有给定,则M=?),如果图G没有未盖点,则肯定不会有可增广轨了,即M就是最大匹配。 对图G的所有未盖点Vi,通过一定的方法搜索以Vi为端点的可增广轨,从而通过可增广轨逐渐把M扩大。(在扩大M的过程当中,某些未盖点会逐渐被M盖住) 寻找可增广轨的方法 扩大以Vi为根的交错树的方法 匹配问题 匹配问题可以分为如下类型: 二部图的最大匹配; 二部图的完备匹配; 二部图的最佳匹配; 任意图的最大匹配; 每种匹配问题的解法不一样,难度也不一样。 7.3.1 二分图的最大匹配 求二部图的最大匹配的算法有: 网络流解法 匈牙利算法 Hopcroft-Karp算法(匈牙利算法的改进) 1 网络流解法 从二部图G出发构造一个网络G’: 增加一个源点S和汇点T; 从S向X的每一个顶点都画一条有向弧,从Y的每一个顶点都向T画一条有向弧; 原来G中的边都改成有向弧,方向是从X的顶点指向Y的顶点; 令所有弧的容量都等于1。 求网络G’的最大流F。 从X的顶点指向Y的顶点的弧集合中,弧流量为1的弧对应二部图的匹配边,最大流值F对应二部图的最大匹配的边数。 网络流解法实例:例:设有5位待业者,5项工作,他们各自能胜任工作的情况如下图所示,要求设计一个就业方案,使尽量多的人能就业。 2 匈牙利算法(Edmonds, 1965) 1) DFS 增广 例题: ZOJ 1654 解题报告 2) BFS 增广 3)多增广路:Hopcro
文档评论(0)