首页 > 其他 > 详细

稳定匹配

时间:2020-02-27 19:52:32      阅读:83      评论:0      收藏:0      [点我收藏+]

问题背景:

  n个男生和m个女生进行配对,一个男生匹配且仅能匹配一个女生,一个女生同样匹配且匹配一个男生。每个男生对n个女生都有一个好感值(不存在一个男生对两个女生好感值相同的情况),同样每个女生对n个男生也有一个好感值(也不存在一个女生对两个男生好感值相同的情况)。

  现在求出一种匹配,该种匹配具有如下性质:

  不存在一男A,一女B它们不匹配,但相比于他们现在的匹配对象A‘、B‘,A更愿意和B匹配且B也更愿意与A匹配,即A对B的好感度大于A‘,且B对A的好感度大于B‘。

数学模型:

  一个特殊的二部图<X,Y,E>;X、Y都为点集,X、Y互不相交,X中的点数=N,Y中的点数=M,且X、Y互补相邻,即不存在X部的点和Y部的点相邻;E为有向带权边,任意X部的点都向Y部的点连接一条有向边,任意Y部的点都向X部的点连接一条有向边,也就是说图中共有N*(M-1)+M*(N-1)条有向带权边。

  定义稳定匹配集:W为E的子集,W中共有2*min(N,M)条有向边,且若A->B属于W,则B->A同样属于W;若A->B属于W,且A->C也属于W,则B=C,且W满足:

    任取A属于X,B属于Y,记A->A‘属于W,B->B‘属于W,不存在 A->B的权值大于A->A‘且B->A的权值大于B->B‘的情况。

稳定匹配集求解算法:Gale-Shapley算法

   X部的每个点都向它的好感值(即权值)最高的Y部的点发出邀请,然后Y部点的从其所收到的点中选取自身好感度(权值)最高点匹配,即一个Y部的点可能受到多个邀请,这时她选择自己最感兴趣的,其余的退回。

   X部没有匹配上的点向它的好感值第二高的Y部的点发出邀请,然后Y部的点更新自身的匹配点为对自身来说更好的点。

   重复此过程,X部点不断降低自身要求。

   最多重复M-1次即可达到稳定状态。假设M>=N,匹配M轮后存在一个A∈X,A未匹配,因为现在A已经尝试和M个女生匹配过了,且最终都是被拒绝,或者被更高的顶替掉了,这说明此时M个女生都匹配了,又M>=N,所以矛盾。

定理:二分图模型中稳定匹配一定存在。

   

性质:

  1、在一轮轮的匹配过程中,X部点的匹配结果不断降低,Y部点的匹配结果不断上升,换句话说X部点的期望逐渐降低,Y部点的期望逐渐升高。

  2、稳定匹配存在多种可能,Gale-Shapley算法求出的只是其中一种。若以X部为发出邀请部,最终得到的匹配结果在所有匹配结果中对X部是最有利的;相反若以Y部为发出邀请部,则最终结果对Y部最有利。

扩展:该算法在一对多的时候也适用,即X部可以匹配多个或者Y部可以匹配多个,但当X部和Y部同时可以匹配多个点的时候不适用。

假设Y部点可以匹配多个点。则以X部点作为发出邀请方,Y部点在接收邀请时,检测是否能优化自身目前的选择,(优化:将一个好感度比当前邀请低的舍弃,使得整体的好感度上升)。

资料:http://www.icourses.cn/web/sword/portal/shareDetails?cId=3271#/course/chapter 第四章 时间:39:30 PS:这个老师讲的更加通俗易懂

实现:

  实现个锤子,没空。

稳定匹配

原文:https://www.cnblogs.com/dialectics/p/12373814.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!