Lecture2 Stable Matching(稳定匹配)
1 Stable Matching and the Deferred Acceptance Algorithm(稳定匹配与延迟接受算法)
1.1 Model
问题:在NRMP(全国实习医师匹配计划)中,每个实习医师在结束他的实习之后需要找到一个医院工作,现在要为这个匹配问题寻找一个好用的算法
首先我们来对问题建立一个模型:
模型:假设S为所有学生的集合,H为所有医院的集合,每个医院的容量为c_h(可以接受最多c_h个学生)。每个学生都提交一个对医院的偏好列表;每个医院也提交一个对学生的偏好列表。
不妨设|S|=Σc_h,否则我们可以通过添加一些“虚拟”的医院或学生的方式来满足这个条件。
概念:Matching(匹配),给每个医院安排c_h个学生,每个学生一个医院。
讨论:上一章的末尾我们曾经讨论过,这个问题和之前的抽签问题的最大区别在于,这个模型是一个“双边市场”,双方都有一个偏好。
定义:Stable Matching(稳定匹配)
一个匹配A称为稳定的,若不存在一个学生s和医院h,使得其满足以下三个条件:
(1)s没有分配给h
(2)s对h的偏好高于ta被匹配到的医院h_s
(3)h对s的偏好也高于某个它本来选择的学生s*
我们称满足以上条件的对(s,h)为Blocking Pairs(阻塞对),也就是说,一个匹配A是稳定的当且仅当其中不存在任何一个阻塞对
讨论:我们很好理解不存在阻塞对的意义——因为阻塞对意味着麻烦。很显然,如果我们的匹配中出现了这样的阻塞对,那么这个学生和医院都有动力去绕过我们的匹配自行组合。这样我们给出的匹配就失去了公信。
举例:在下面的例子中给出了学生对和医院对及其各自的偏好。三个学生的偏好是一样的,都是D>E>F,而医院的偏好则是轮换的;同时,医院的容量均为1.
我们来考虑一下,如何寻找他们的一个稳定匹配。显然,A必须给D,从直觉上来看确实如此——ABC都对D一厢情愿,但是D只偏爱A,那么有什么理由让D抛弃A去选择其他人呢?不过比起舞文弄墨,我们需要严格的证明。
事实上,如果A和D没有匹配的话,那么(A,D)就是一个阻塞对。为什么呢?因为它满足了所有阻塞对的条件:(1)A和D没有被匹配 (2)A比起自己匹配到的医院来说更偏好D (3)D比起自己匹配到的学生来说更偏好A
所以,我们可以推导出,如果我们想要构造一个稳定的匹配,那么在这个匹配中(A,D)是必须的。而同理我们得出(C,E),(B,F)这两个匹配也是必须的。因此,对这个例子来说,稳定匹配是唯一的,那就是(A,D),(B,F),(C,E)
1.2 延迟接受算法
讨论:那么,稳定匹配是不是一定存在呢?如果存在,如何找到一个稳定匹配呢?让我们通过下面这个精妙的算法来回答这个问题。
算法:(Deferred Acceptance Algorithm)
循环(若有未与医院匹配的学生){
每个未分配的学生向其认为最好且还没有拒绝他的医院发出propose(邀约,这里意译为简历);
每个学校保留接收的自己最喜欢的前c_h个简历,拒绝其他的简历;
}
最后得到的邀约匹配状况即为最终的匹配结果
名词解释:延迟:只有在学生全部匹配完之后学校才会一下通过所有的简历,在这之前这一轮的简历被接受并不意味着之后就不会被拒绝了——你可能仍然会被这个医院更加偏爱的学生挤出来。
1.3 稳定匹配的计算与存在性
让我们来分析一下这个算法的性质:
性质:(1)每个学生都会按照自己的偏好顺序依次向医院投递简历,直到算法结束为止
(2)医院在这个过程中得到的学生质量是单调递增的
(3)算法必定结束,不会一直循环下去
证明:如果算法还没结束,那么每一轮投票中必定有一个人被拒绝,相当于在可接受他的 医院列表中又减少了一个医院。而所有人的可接受医院列表最开始有|S|·|H|个,是有限 的,所以循环在至多|S|·|H|次后必然结束
(4)最终得到的是一个匹配,不会有人被所有医院拒绝以至于得不到匹配。
证明:我们注意到每个医院持有的简历数量是单调增加的,然而医院h开始拒绝简历的前 提是这个医院的简历数量已经达到了c_h,因此如果所有医院都拒绝了他,那么所有医院的简 历数量都将是饱和的,所以所有医院持有的简历总数为Σc_h=|S|,但他的简历没能投出去, 所以医院收到的简历总数应该至多为|S|-1,矛盾!
(5)定理:这个算法得到的匹配结果是稳定的
证明:若否,存在一个阻塞对(s,h),使得h不接受s,但是接受了比s更不喜欢的学生 s’,并且s比起现在匹配到的学校更喜欢h,那么,由于投简历顺序是按照学生的偏好顺序来 的,因此s在匹配到现在这个学校之前一定被h拒绝过了。然而s’比s差,因此s‘一定会先于s被 h拒绝,这与h最终接受了s‘但么有接受s产生了矛盾,命题得证!
讨论:这个算法的巧妙之处在于,它通过构造性的方法,在给出了一个稳定结果的同时,也顺便证明了稳定匹配在任意一种条件下都是必定存在的。
1.4 为什么是稳定性?
讨论:稳定性确实很重要,但是,我们要怎样说明它的重要性?
一方面,稳定性蕴含着帕累托最优——没有人能够提出一个完全不损害任何人利益的新方案
另一方面,在英国,不同地区使用的匹配算法是不同的,然而,最终,使用延迟接受算法的系统全部保留了下来,而其它算法则渐渐失去公信,最终大部分转变为延迟接受算法。
2 Student-Optimality and Strategy-proofness
2.1 Multiple Stable Matchings(多种稳定匹配)
讨论:我们用上面的延迟稳定算法证明了,一个给定的初始局面至少存在一种稳定匹配。然而,是否有可能一个局面存在多种稳定匹配?如果是,我们应该选择哪一种呢?(这里的讨论和多重纳什均衡的讨论很像,不知道有没有关联)
例子:如下图所示,在如此简单的局面中,存在着奇特的矛盾——医院的偏好与学生的偏好是相反的。因此,容易看出存在两种完全不同的稳定匹配,一种是(A,C)(B,D),一种是(A,D)(B,C);而且,第一种匹配是侧重满足学生的偏好,而第二种匹配是侧重满足医院的偏好。我们也容易发现,使用延迟接受算法的话,得到的是第一种匹配。这启发我们,也许延迟接受算法的侧重点在于尽可能满足学生的偏好。
2.2 Selecting a Stable Matching(选择一个稳定匹配)
定理:延迟接受算法会将每个学生s都匹配到在任意稳定匹配中可能匹配到的最好的学校(记为h(s))
证明:如果学校h拒绝了学生s,则记(s,h)为一个拒绝对。假设R_i为在算法中第i个出现的被拒绝的对,下面我们用归纳法,对i归纳,证明R_i在任意一个稳定匹配中都不可能出现。
归纳:i=0显然,只需证明(i-1)=>(i). 假设R_i =(s,h),则不妨设h把s拒绝后接受了s‘的简历,那么,既然s‘把简历投递给了h,就说明s‘被ta更喜欢的所有医院全都拒绝了。根据归纳假设,则不存在任何方法将s‘匹配与h之前的医院,而对医院h来说s‘又比s要好,所以匹配(s,h)会造成不稳定匹配(s‘,h)的出现,因此(s,h)不能出现在任何一个稳定匹配之中,由归纳假设,命题得证。
推论:延迟接受算法对于学生具有最优性(student-optimal),而同理对医院具有最劣性(hospital-worst);但是,如果将算法中的医院和学生对调位置,就会形成一个学生最差而医院最优的算法了。
2.3 Strategyproof Considerations(是否防策略?)
问题:每个人是否有动机去隐瞒他们的偏好?(即欺骗算法?)
讨论:这个简单的问题其实是相当困难的,不过最终我们可以证明,学生有动力去保持诚实,而学校则可能试图隐瞒它们的偏好。
如有兴趣,请参考这本书上的定理10.6.18:Y. Shoham and K. Leyton-Brown. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, 2009.
2.4 Key Take-away(小结)
在这个双边市场中,你只能使得均衡的一方受利而另一方受害。不过,一旦你决定了算法要倾向于那一侧,那么就无需再做额外的平衡了。
3 Epilogue :College Admission Revisited(后记:择校)
讨论:这个算法能否应用在大学择校上?
解答:在不同的国家可能不同。在美国,因为人才的标准划分实在太多,而且在不同的专业选择中偏好也可能不同,因此很难准确地给每个人一个标准的偏好排序,所以做不到。但是,在那些几乎仅使用高考(college-entrance-exam)作为人才划分标准的国家,这个算法是可行的,例如,匈牙利就是采用这个算法来为高考生分配大学的。