当前位置: 首页 > news >正文

Hall 定理相关

前置定义

对于一个图 \((V, E)\) 和它的一个匹配 \(M\),存在着如下两种简单路径

  • 由非匹配,匹配边交错构成的简单路径为交错路

  • 起点为非匹配点且终点也为非匹配点的交错路为增广路

对于任何一个节点的子集 \(W \subseteq V\),称集合 \(N_G(W)\) 表示图 \(G\) 中与 \(W\) 相邻(相邻指两点间存在边)的点构成的集合。

Berge 引理

Berge 引理:对于一个图 \(G = (V, E)\) 和它的一个匹配 \(M\),该匹配是最大匹配,当且仅当不存在增广路。

先证明必要性:

反证法,若存在一个增广路。
首先,因为增广路是 \(非匹配边 \to 匹配边 \to \cdots \to 非匹配边\) 这种形式的,所以长度必然是奇数。
所以可以得到这个路径上非匹配边的数量是匹配边的数量 \(+1\)
所以我们考虑翻转整个路径的状态,即 \(匹配 \to 非匹配, 非匹配 \to 匹配\)
容易发现此时的匹配是合法的,且匹配数比原来多了 \(1\),与 \(M\) 是最大匹配矛盾。

然后考虑充分性:

同样反证法,在不存在增广路的前提下,若存在另外一个匹配 \(M'\) 使得 \(|M'| > M\)
考虑对称差新的匹配 \(M \oplus M'\),即相同的边将会抵消的运算。
在这个新图 \((V, M \oplus M')\) 上,容易发现,每个点的度数只能是 \(0, 1, 2\),所以对于这个新图,其所有联通块,要么是一条链,要么是一个环。
容易发现一个性质,对于一个度数为 \(2\) 的点,其相邻的边必定是分别来自 \(M\)\(M'\);且在这个新图上,不可能存在奇环;于是可以得到对于每个环,都是偶环,且 \(M\)\(M'\) 中的边出现次数一样。
那么此时来考虑链,显然肯定是由 \(M, M'\) 中的边交替构成的,即构成交替路,对于 \(M'\) 中的边,在 \(M\) 中是非匹配边。
由于 \(|M'| > M\),那么显然必然会出现一个起点终点都是非匹配点的链,其是增广路,与 \(M\) 不存在增广路矛盾。

Hall 定理

对于一个二分图 \((X, Y, E)(|X| \le |Y|)\),若存在一个匹配 \(M\) 使得使得 \(X\) 中所有顶点都是匹配点,那么称 \(M\) 是一个完美匹配

Hall 定理:假设 \(G\) 是一个二分图 \((X, Y, E)\),存在一个完美匹配当且仅当对于所有 \(W \subseteq X\) 都满足 \(|N_G(W)| \ge |W|\)

先证明必要性:

若存在完美匹配,且存在 \(W\) 使得 \(|N_G(W)| < W\),显然这 \(|W|\) 点无法和少于它们点数的集合形成完美匹配,故矛盾。

然后考虑充要性:

考虑反证法,即对于所有 \(W \subseteq X\) 都满足 \(|N_G(W)| \ge |W|\),且存在一个点 \(u \in X\) 是非匹配点,由 Berge 引理得到,即无法找到一个从 \(u\) 出发的增广路。
我们令 \(W\) 表示 \(u\)交错路能到达的顶点集合,设 \(W\) 中左部点是 \(S\),右部点是 \(T\),由于从 \(u\) 必然是非匹配边出发,则最后回到左部点时一定是匹配边,即 \(S\) 中除了 \(u\) 都是匹配点;对于右部点,若存在一个点 \(v\) 是非匹配点,那么 \(u \to v\) 的交替路就是增广路,矛盾,故 \(T\) 中也全是匹配点。
由于 \(S\) 中除了 \(u\)\(T\) 都是通过边相连的,又全是匹配点,于是两两一一对应,故 \(|S| - 1 = |T|\);此时注意到必然有 \(T \subseteq N_G(S)\),故 \(|T| \le |N_G(S)|\);然后又可以发现 \(N_G(S)\) 中必然全是匹配点,因为如果存在非匹配点的话,可以从 \(u\) 开始走到那个非匹配点形成增广路形成矛盾,于是可以得到 \(N_G(S) = T\)
于是 \(|N_G(S)| = |T| < |S|\),与初始条件矛盾。

http://www.rkmt.cn/news/1675.html

相关文章:

  • docker save load 案例
  • 数据结构与算法-25.红黑树
  • Python 虚拟环境使用和打包成exe程序
  • linux调优工具的简单介绍
  • 多线程同步问题-从语法到硬件
  • JWT攻击详解与CTF实战
  • MyEMS:开源能源管理的破局者
  • github拉项目报Failed to connect to github.com port 443失败解决方法
  • 第9章 STM32 TCP配置和测试
  • 人像 风光 纪实 旅游、生活 摄影精选集
  • 必看!Apache DolphinScheduler 任务组因 MySQL 时区报错全解析与避坑指南
  • MyEMS:技术架构深度剖析与用户实践支持体系
  • mysql常用命令
  • C++ 标准库 copy_if
  • 企查查API接口组合:解锁企业数据智能的实战密码
  • 微信公众号封面提取教程
  • 数据结构与算法-24.2-3查找树
  • IPv4向IPv6平滑过渡综合技术方案
  • TIA博图中的常用指令:定时器、计数器和触发器
  • Vue3项目开发专题精讲【左扬精讲】—— 企业网站系统(基于 Vue3 与 TypeScript 技术栈的企业网站系统开发实战)
  • win10使用openssl生成证书
  • linux服务器 系统服务文件
  • Critical Thinking Academic Writing
  • 1.3 课前问题思考
  • Visual Studio Code 开发环境搭建(Rust)
  • Spring Boot 项目中,同一个版本的依赖,内容却不一样?一次因依赖污染导致 Redis 启动失败的排查
  • 微信机器人开发文档
  • 大屏开发
  • [node] Linux 环境安装 nvm 并通过 nvm 控制 node 版本
  • Gitee崛起:中国开发者为何纷纷转向本土代码托管平台