Skip to content

Lecture 12:匹配

1. 匹配的基本定义

定义:G 中的一个匹配 MG 的一个子图,其中每个顶点的度数均为 1——即一组两两不共享端点的边的集合。

定义: 极大匹配是不能再加入任何边的匹配(加入任何未选边都会产生冲突)。

定义: 最大匹配是边数最多的匹配。

极大匹配 ≠ 最大匹配。极大匹配不一定是边数最多的。

定义: 若匹配包含 |V|/2 条边(每个顶点都被匹配),则称为完美匹配

应用场景: 婚恋配对、任务分配到服务器、航班机组排班等。


2. 加权匹配

定义: 加权图(G,w),其中 w:ER。权重越小代表越理想;非边通常视为权重

定义: 匹配 M权重w(M)=eMw(e)

最小权重匹配问题: 在加权图中找一个权重最小的完美匹配。

最大匹配和最小权重匹配都有高效的多项式时间算法(超出本课程范围)。


3. 稳定匹配问题

设置: 二部图,左侧 N申请方(Applicants),右侧 N评估方(Evaluators)。每一方对另一方有完整的严格偏好排序。偏好无需对称。

定义: 匹配 M 中的一对私奔情侣(Rogue Couple) (a,e):他们在 M 中未被配对,但双方都更偏好彼此胜过各自当前的配对对象。

定义: 若匹配中不存在私奔情侣,则称该匹配为稳定匹配

目标: 找到一个完美稳定匹配。

非二部图情形: 若图不是二部图(任意两人可配对),稳定匹配可能不存在(三元环的例子可证明)。


4. Gale-Shapley 算法

由 David Gale 和 Lloyd Shapley 于 1962 年提出,Alvin Roth 于 1980 年代推广应用。2012 年获诺贝尔经济学奖。

又称:稳定匹配算法、延迟接受算法、求婚-拒绝算法。

算法流程(按"天"迭代执行):

  1. 每个申请方 a 向其偏好列表中尚未拒绝过自己的评估方中排名最高的那位求婚。
  2. 每个收到多份求婚的评估方,保留其中最偏好的那位(暂时持有),拒绝其余所有人。
  3. 被拒绝的申请方将该评估方从偏好列表中划掉。
  4. 若没有任何偏好列表发生变化(即无人被拒绝),则将每位评估方与其当前持有的申请方正式配对,算法终止。

正确性证明

定理: G-S 算法在第 N2+1 天之前必然终止。

证明:f(s) = 所有申请方偏好列表中剩余评估方的总数。fN2 开始,是正整数,且每天严格递减。故至多经过 N2 次转移。

引理 1: 每位评估方持有的申请方随时间只会变好,不会变差。

证明: 若今天 ae 最偏好的,则 a 明天仍在 e 的候选中(或已被正式配对),故 e 明天持有的申请方至少和 a 一样好。

引理 2: 每位申请方当前对应的评估方随时间只会变差,不会变好。

证明: 每次被拒绝,申请方转向偏好列表中排名更低的评估方。

定理: G-S 算法将每个人都配对。

反证法: 若某申请方 a 未被配对,则 a 被所有评估方拒绝过。由引理 1,每位评估方最终都有配对对象,则 N 位评估方全部配对,从而 N 位申请方也全部配对——矛盾。

定理: G-S 算法不产生私奔情侣。

反证法:(a,e) 是私奔情侣,即双方更偏好彼此但未被配对在一起。

  • e 曾拒绝过 a:由引理 1,e 最终的配对对象比 a 更好,故 e 并不更偏好 a,矛盾。
  • e 从未拒绝过 a:则 a 从未向 e 求婚(否则就被拒绝了),说明 a 最终配对的评估方排名比 e 更高,故 a 并不更偏好 e,矛盾。

5. 公平性:申请方最优

定义: 若存在某个稳定匹配将 xy 配对,则称 yx 的一个可行配对

定义: x最优配对是所有可行配对中 x 最偏好的那个。

定义: x最劣配对是所有可行配对中 x 最不偏好的那个。

定理: G-S 算法将每位申请方配对到其最优可行对象。

定理: G-S 算法将每位评估方配对到其最劣可行对象。

在申请方主动求婚的 G-S 算法中,申请方掌握所有主动权。评估方只能被动接受,结果是所有稳定匹配中对其最不利的那个。若改为评估方主动求婚,则结果互换。