图论2 江川.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
§3.4 空间直线的方程.
《解析几何》 -Chapter 3 §7 空间两直线的相关位置.
探索确定位置的方法 王积羽.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
10.2 立方根.
常用逻辑用语复习课 李娟.
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
初中数学 九年级(下册) 5.3 用待定系数法确定二次函数表达式.
余角、补角.
第八章二元一次方程组 8.3实际问题与二元一次方程组.
初中数学 七年级(上册) 6.3 余角、补角、对顶角(1).
第八章二元一次方程组 8.3实际问题与二元一次方程组 (第3课时).
七 年 级 数 学 第二学期 (苏 科 版) 复习 三角形.
问:图中∠α与∠β的度数之间有怎样的关系?
八年级下数学课题学习 格点多边形的面积计算 数格点 算面积.
探索三角形相似的条件(2).
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第七部分 图论方法 第十二章 图论方法.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
离散数学课程组 南京大学计算机科学与技术系
元素替换法 ——行列式按行(列)展开(推论)
SPARQL若干问题的解释 刘颖颖
二分图匹配 匈牙利算法和KM算法简介.
本节内容 平行线的性质 4.3.
使用矩阵表示 最小生成树算法.
2.1.2 空间中直线与直线 之间的位置关系.
1.2子集、全集、补集(二) 楚水实验学校高一数学备课组.
无向树和根树.
线段的有关计算.
正方形 ——计成保.
2.6 直角三角形(二).
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
三角函数诱导公式(1) 江苏省高淳高级中学 祝 辉.
3.4 圆心角(1).
3.3 垂径定理 第2课时 垂径定理的逆定理.
12.2全等三角形的判定(2) 大连市第三十九中学 赵海英.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
树和图 tree and graph 蔡亚星.
第 四 章 迴歸分析應注意之事項.
空间平面与平面的 位置关系.
3.4圆周角(一).
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
分数再认识三 真假带分数的练习课.
平行四边形的性质 鄢陵县彭店一中 赵二歌.
高中数学必修 平面向量的基本定理.
直线的倾斜角与斜率.
9.5空间向量及其运算 2.共线向量与共面向量 淮北矿业集团公司中学 纪迎春.
4.6 图形的位似     观察思考:这两幅图片有什么特征? 都是有好几张相似图形组成,每个对应顶点都经过一点.
找 因 数.
3.4 角的比较.
位似.
二分图匹配.
§4.5 最大公因式的矩阵求法( Ⅱ ).
一元一次方程的解法(-).
最小生成树 最优二叉树.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
第三章 图形的平移与旋转.
3.3.2 两点间的距离 山东省临沂第一中学.
§2.3.2 平面与平面垂直的判定.
9.3多项式乘多项式.
Presentation transcript:

图论2 江川

二分图 一个图的点集可以划分为两个不相交的子集,每一个子集中的点和该子集中的其他点没有边相连

二分图 一个图是二分图的充要条件是这个图里没有奇环

二分图匹配 匹配:给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。 最大匹配:所有匹配中边数最多的。 完备匹配:如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完备匹配。

二分图匹配

Hall定理 一个二分图有完备匹配的充要条件是: 任意k个点相邻的点的集合中不少于k个点

匈牙利算法 M-交错路:p是G的一条通路,如果p中的边为属于M中的边与不属于M的边交替出现,则称p是一条M-交错路。 M-饱和点:对于v∈V(G),如果v与M中的某条边关联,则称v是M-饱和点,否则称v是非M-饱和点。 M-可增广路:p是一条M-交错路,如果p的起点和终点都是非M-饱和点,则称p为M-可增广路。

匈牙利算法

匈牙利算法 For all i in X: 1、从i出发寻找可增广路 2、沿增广路更新 (删除原属于M的边,增加不属于M的边) O(nm)

匈牙利算法

匈牙利算法

匈牙利算法

应用1 点覆盖集:图的顶点集的子集,覆盖图中所有的边 最小点覆盖:无向图中,求最少需要多少个点可以覆盖所有的边。 NP

应用1 二分图的最小点覆盖

应用1 König定理: 二分图的最小点覆盖 = 最大匹配

应用1 假设最小点覆盖=N,最大匹配=M 考虑最大匹配中的边两两不相交,所以至少需要M条边覆盖。 得N>=M

应用2 独立集: 图的顶点集的子集,其中任意两点不相邻。 最大点独立集: 无向图中,求一个最大的顶点集,其中任意两点不相邻。 NP

应用2 覆盖集的补集一定是独立集 证明: 假设某一覆盖集的补集不是独立集。说明有一条边连接了覆盖集的补集的两个点。那么这条边没有被覆盖集所覆盖,产生矛盾。

应用2 独立集的补集一定是覆盖集 证明: 假设某一独立集的补集不是覆盖集。说明有一条边不被独立集的补集覆盖,那么这条边连接了独立集的两个端点,产生矛盾。

应用2 覆盖集与独立集互为补集 二分图中可求出最大匹配M 最小覆盖集=M,最大独立集=n-M

应用3 一共N个男孩和女孩参加聚会,某些男孩和女孩之间会产生恋爱关系。现在希望找到最多的孩子,他们之间不会产生恋爱关系。

应用3 男孩在一边,女孩在一边 会产生恋爱关系的连边 找最大独立集

应用4 一共N个人参加聚会,某些人之间会产生恋爱关系(一定是异性之间)。现在希望找到最多的人,他们之间不会产生恋爱关系。

应用4 所有的人复制成两份放在两边 会产生恋爱关系的连边 最大独立集 = N – 最大匹配 / 2

应用5 给你一个N*N的格子,每个格子里要么有一个陨石,要么为空。每一次你可以清除一行或者一列里的所有陨石,求最少要多少次才能把所有的陨石清除干净。 X

应用5 把N*N的格子看成是一个二分图,每一行是一个集合的点,每一列是另一个集合的点,那么某个格子(x,y)中有陨石就相当于顶点x到顶点y有一条边,那么要求使陨石全部被清理掉的最少的次数,就是要使该二分图中的所有边都被覆盖的最少顶点数。 X

应用6 动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的和讨厌的动物。如果他喜欢狗,那么就讨厌猫;如果他讨厌猫,那么他就喜欢狗。每个小孩会说,我喜欢__号猫,讨厌__号狗;或者说,我喜欢__号狗,讨厌__号猫。如果他喜欢的那只动物被留下,而且讨厌的那只动物被带走,他就会开心。请问最多有多少小孩能开心。

应用6 现在要求最多的小孩,两两之间不矛盾 从矛盾关系入手 猫和猫之间,狗和狗之间一定不存在矛盾关系 如果A小孩喜欢的动物与B小孩讨厌的动物一样,或者A小孩讨厌的动物与B小孩喜欢的动物一样,那AB之间就存在着排斥关系,则他们之间连接一条边(他们不可能同时开心) 求最大的点集,两两之间没有边 最大点独立集

应用7 路径覆盖:路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联 。注意一个单独的点也是一条路径。 现要求有向无环图的最小路径覆盖,即在一张有向无环图中,找路径数最少的路径覆盖。

应用7 把每个顶点拆成两份,然后按原图连边。

应用7 最小路径覆盖 = n – 最大匹配 每一个匹配相当于原图中的某两个路径合并

应用8 在一个有向无环图上,至少放多少个机器人可以遍历整个图? 注意点是可以重复经过的。

应用8 允许重复经过点的最小路径覆盖 如果经过一个重复的点我们可以假装跳过了它进入下一个点 Floyed求出传递闭包再做最小路径覆盖

应用9 在一个N*M的矩形里,有一些格子被毁坏。现在要求用1*2的木板去覆盖没有被毁坏的格子,木板不可覆盖彼此,问是否能把每个格子都盖住。

应用9 所有没有被毁坏的格子都看成图中的点 按格子的“奇偶性”分成两类 如果两个格子相邻,则在这两个点上连边 若存在完备匹配则所有的格子可以被覆盖

应用10 A机器有n个模式,B机器有m个模式。 现有k个任务需要做,可以用A机器的某个模式做或者用B机器的某个模式做。 任务不分先后,但是机器换模式需要重启。现在求最少的重启次数。

应用10 任务不分先后相同模式的连续做 用的模式越少越好最少的模式完成所有任务 把模式看成点,A的模式放在一侧,B的模式放在一侧。 对于某个任务,在它所要求的两个模式之间连边。 最小点覆盖集

二分图最佳匹配 最佳匹配:如果G为加权二分图,则权值和最大的完备匹配称为最佳匹配。

KM算法 KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。 设顶点Xi的顶标为A[i],Yi的顶标为B[i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,要求对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终成立。

KM算法 A[i]+B[j]>=w[i,j]

KM算法 若由二分图中所有满足A[i]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配。

KM算法 证明: 对所有的边有:A[i]+B[j]>=w[i,j] 对于二分图的任意一个完备匹配,如果它包含于相等子图,那么它的边权和等于所有顶点的顶标和;如果它有的边不包含于相等子图,那么它的边权和小于所有顶点的顶标和。所以相等子图的完备匹配一定是二分图的最大权匹配。

KM算法

KM算法 设置初始顶标 寻找当前相等子图的完备匹配: 1、找到则结束。 2、未找到则修改顶标再重新寻找。

KM算法 初始顶标: 令A[i]为所有与顶点Xi关联的边的最大权,令B[j]=0。

KM算法 修改顶标: 找不到完备匹配 对于某个X顶点,我们找不到一条从它出发的交错路。这时我们获得了一棵交错树,它的叶子结点全部是X顶点。 我们把交错树中X顶点的顶标全都减小某个值d,Y顶点的顶标全都增加同一个值d

KM算法

KM算法 两端都在交错树中的边(i,j),A[i]+B[j]的值没有变化。也就是说,它原来属于相等子图,现在仍属于相等子图。

KM算法 两端都不在交错树中的边(i,j),A[i]和B[j]都没有变化。也就是说,它原来属于(或不属于)相等子图,现在仍属于(或不属于)相等子图。

KM算法 X端不在交错树中,Y端在交错树中的边(i,j),它的A[i]+B[j]的值有所增大。它原来不属于相等子图,现在仍不属于相等子图。

KM算法 X端在交错树中,Y端不在交错树中的边(i,j),它的A[i]+B[j]的值有所减小。也就说,它原来不属于相等子图,现在可能进入了相等子图,因而使相等子图得到了扩大。

KM算法 求d值? 1、A[i]+B[j]>=w[i,j]始终成立 2、至少一条边进入相等子图 d = min{A[i]+B[j]-w[i,j]} 其中Xi在交错树中,Yi不在交错树中。

KM算法 d = 1

KM算法 KM算法求出的最佳匹配一定是完备匹配 因为最佳匹配的边权和等于顶标和

KM算法 求非完备匹配的最佳匹配? 最小费用最大流

应用1 求权值和最小的完备匹配?

应用1 求权值和最小的完备匹配? 边取负数(常用做法)

应用2 图中m表示人,H表示房子。现在要让所有人都走到一个房子里,且不能有两个人进入同一个房子。问所有人总共最少要走多少步。 mmmHmmmm

应用2 把每个m和H的距离算出 每个人看成一侧的点 每个房子看成一侧的点 每个人和每个房子连边,边权为距离 求最佳匹配 mmmHmmmm

谢谢!