Tutte 定理与 Tutte–Berge 公式
Tutte theorem
图 \(G=(V,E)\) 有完美匹配当且仅当满足 \(\forall U\subseteq V,o(G-U)\le|U|,o(X)\) 表示 X 子图的奇连通块数。
Tutte–Berge formula
图 \(G=(V,E)\) 的最大匹配数为 \(\frac12\min\limits_{U\subseteq V}\{|U|-o(V-U)+|V|\}\)
Tutte 定理证明
必要性
如果 G 有完美匹配,那么每个奇连通块至少有一个点需要与 U 中的点匹配,故得证.
充分性
定义坏集 S 满足 \(|S|<o(G-S)\) ,那么图 G 中不能存在坏集。
如果 S 是 G 的坏集,那么 S 也一定是 G 的导出子图的坏集。
于是不妨令 G 满足 G 不存在完美匹配,且加入任意一条不在 G 中的边后存在完美匹配。
令 S 为满足度数为 \(|V|-1\) 的点集,首先考虑 \(G-S\) 中的每个连通块都是团的情况,容易发现 S 一定是坏集。
于是 \(G-S\) 中至少有一个连通块不是团,考虑把这个连通块扯出来讨论,我们找出其中两个没有边直接相连的点 \(x,y\) ,设从 \(x\rightarrow y\) 最短路上的头三个点为 \(a,b,c\) ,那么显然 \((a,c)\notin E\) ,且一定存在点 \(d\) 满足 \((b,d)\notin E\) 。
由于上面限制了 G 加入任意一条不在 G 中的边后都存在完美匹配,因此我们设 \(M_1\) 是 \((V,E\cup(a,c))\) 的一组完美匹配, \(M_2\) 是 \((V,E\cup(b,d))\) 的一组完美匹配,显然 \((a,c)\in M_1,(M_2)\in M_2\) (第一次走 \(M_1\) 的)。
然后定义 P 是在 G 上面从 d 出发,交替走 \(M_1,M_2\) 中的边得到的最长路径,显然最后会落在 \(a,b,c\) 点中的一个。
如果落在 b 点,我们令 \(C=P\cup(b,d)\) ,否则令 \(C=P\cup(a/c,b)\cup(b,d)\) ,这样 C 就是一个偶环,对于 C 我们选择不在 \(M_2\) 中的边可以形成一组新的匹配,对于 \(G-C\) 中的点我们按照 \(M_2\) 中的边匹配,这样就形成了一组新的完美匹配,故得证.
Tutte-Berge 公式与 Tutte 定理等价性证明
定义 \(def(G)\) 表示图 G 最大匹配中未被覆盖定点数, \(\nu(G)\) 表示 G 的最大匹配数,那么显然有 \(def(G)=|V|-2\nu(G)\).
Tutte-Berge formula \(\Rightarrow\) Tutte theorem
移项即可
Tutte theorem \(\Rightarrow\) Tutte-Berge formula
设 \(\delta'(G)=\max\limits_{U\subseteq V}\{o(V-U)-|U|\}\) ,并设 \(S\) 是取得最大值时的 \(U\) ,即证 \(\delta'(G)=def(G)\)。
显然有 \(\delta'(G)\ge0\) ,下面根据 \(\delta'(G)\) 的取值进行分类讨论。
- \(\delta'(G)=0\) ,那么满足 Tutte 定理的条件,整张图存在完美匹配, \(\delta'(G)=def(G)=0\)
- \(\delta'(G)>0\) ,那么一定有若干奇连通块存在点在 X 中未被覆盖,设该个数为 \(x\) ,\(o(G-X)=y\) ,那么一定满足 \(x\ge y-|X|\) 和 \(x\le def(G)\) ,因此 \(\delta'(G)\le def(G)\)成立。
另一方面,考虑构造一个有 \(\delta'(G)=0\) 个点的完全图 H ,然后跟 G 拼一个新图 \(G'=(V_H\cup V_G,E_H\cup E_G\cup\{(u,v)|u\in V_H,v\in V_G\})\)
容易在利用 Tutte 定理简单讨论后证明 G' 有完美匹配,因此 \(|V_H|=\delta'(G)\ge def(G)\) ,因此 \(\delta'(G)=def(G)\) ,故 Tutte-Berge 公式得证.
Tutte 定理与 Tutte–Berge 公式的更多相关文章
- zhengrui集训D1-D5笔记
Day_1 计数 它咕掉了 Day_1 序列数据结构 它咕掉了 Day_2 线性代数 高斯消元\Large{高斯消元}高斯消元 普通版:略 模质数:求逆 模合数:exgcd 逆矩阵\Large{逆矩阵 ...
- hdu2255 二分图最大权配KM
KM算法:hdu2255 (大概理解了 参考博客: http://blog.csdn.net/niushuai666/article/details/7171880) 所谓交错树:就是 ...
- Kuhn-Munkres算法 (剪辑)(备用)
KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的. 设顶点Xi的顶标为A[i],顶点Yi的顶标为B[i],顶点Xi与Yj之间的边权为w[i,j]. 在算法执行 ...
- 从拟阵基础到 Shannon 开关游戏
从拟阵基础到 Shannon 开关游戏 本文中的定理名称翻译都有可能不准确!如果有找到错误的同学一定要联系我! 本文长期征集比较好的例题,如果有比较典型的题可以联系我 目录 从拟阵基础到 Shanno ...
- R Language
向量定义:x1 = c(1,2,3); x2 = c(1:100) 类型显示:mode(x1) 向量长度:length(x2) 向量元素显示:x1[c(1,2,3)] 多维向量:multi-dimen ...
- ACM/ICPC竞赛
ACM知识点分类 第一类:基础算法 (1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟 (2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp (3) 搜索:dfs,bf ...
- 【bzoj1041】圆上的整点
题意 给定一个圆\(x^2+y^2=z^2\),求圆周上有多少个点的坐标是整数. \(r\leq 2*10^9\) 分析 这道题目关键要知道一些勾股数的性质,剩下的就很好处理了. 勾股数的性质 参考: ...
- POJ 2154 【POLYA】【欧拉】
前记: TM终于决定以后干啥了.这几天睡的有点多.困饿交加之间喝了好多水.可能是灌脑了. 切记两件事: 1.安心当单身狗 2.顺心码代码 题意: 给你N种颜色的珠子,串一串长度问N的项链,要求旋转之后 ...
- 《程序设计中的组合数学》——polya计数
我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...
随机推荐
- redis(一):Redis 数据类型
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- 网易实战分享|云信IM SDK接口设计实践
引语 IM (Instant Messaging)是网络上最流行的通信方式,与日常生活息息相关.IM软件也层出不穷,例如:微信.QQ.易信等.通过多年深耕和技术沉淀,云信产出了一套成熟稳定的IM SD ...
- proxy是什么
普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据.而Proxy处于客户机与服务器之间,对于服务器来说,Pro ...
- 【Nginx】如何格式化日志并推送到远程服务器?看完原来很简单!!
写在前面 Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口.这就使得我们可以通过对Nginx服务器日 ...
- android studio 正式版打包错误的一个问题
今日在下载了别人的demo后,编译到我的手机上,然后通过qq等把软件发到其他的手机上使用时,无法安装,好像是因为这个是调试版本才安装不上,在网搜了一堆资料怎么建key怎么发布正式的版本,问题现在已解决 ...
- Python Ethical Hacking - VULNERABILITY SCANNER(1)
HTTP REQUESTS BASIC INFORMATION FLOW The user clicks on a link. HTML website generates a request(cli ...
- win7下建立docker共享文件夹
前言 建立本机(win7)和VirtualBox中docker虚拟机的共享文件夹,注:下面的命令都是以root身份运行的,使用sudo -i切换到root身份,如无法切换,请自行在命令前加上sudo命 ...
- xenomai内核解析--双核系统调用(三)--如何为xenomai添加一个系统调用
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.添加系统调用 二.Cobalt库添加接口 三.应用使用 一.添加系统调用 下面给xenomai添加一个系统调用g ...
- 学会DevOps 能拿多少工资?DevOps 怎么自学?
落地高薪!DevOps为何受宠? DevOps在近几年的发展势头可谓是迅猛无比,已经有越来越多的企业机构开始尝试落地,从国外的微软谷歌到国内的阿里腾讯,DevOps已经从时髦概念落地最佳实践,进而改变 ...
- 一个有趣的问题, 你知道SqlDataAdapter中的Fill是怎么实现的吗
一:背景 1. 讲故事 最近因为各方面原因换了一份工作,去了一家主营物联柜的公司,有意思的是物联柜上的终端是用 wpf 写的,代码也算是年久失修,感觉技术债还是蛮重的,前几天在调试一个bug的时候,看 ...