稳定匹配难题

算法是为了解决“稳定匹配难题(Stable Matching Problem)”而提出的,所谓稳定匹配难题,是指:有n个男人,还有n个女人,男人心目中有自己的心上人列表,从最喜欢的女神,一直到最不心仪的恐龙,而女人心中也有相同的列表,从最喜欢的高富帅,到最不喜欢的猥琐男。很明显的,某男喜欢的女人,她可能根本看不上他。而多个女人喜欢的男人,也不可能同时娶这些女人。所以要找出一个让所有人都能结婚,且大家都满意的方案是很难的。

为了解决以上这个难题,数学家Shapley和Gale两人在1962年提出了一种特殊的算法,后来被称为Gale & Shapley算法,他们证明了,按照这套算法,他们能够找到一个让大家都满意,且稳定的组合,前提是男女数量相等。

算法的第一步,是由男人们一轮一轮的去找他最喜欢的女人表白,女人可以选择接受,也可以选择拒绝。女人会遇到三种情况,第一是没人来表白;第二是有一个人来表白;第三是有多个人来表白。女人的策略是,如果没人来表白就再等一轮,如果有一个人来表白就暂时同他交往着,如果有多个人来表白,就同最喜欢的那个交往。

一轮过后,有些男人有女友了,有些还打着光棍,没关系,继续开始第二轮。那些光棍们重复上一轮的行为,找自己最心仪的女人表白。女人会遇到一个特殊情况,自己有男友了,但是又有一个男人来表白。如果新来的男人比现在的差,她就忽略,如果比现在的好,那就劈腿换新人。

第三轮再重复第二轮的行为。如此循环往复,一直到最后每个人都成功匹配为止。Shapley和Gale两人从数学上证明了,这种策略的结果是最稳固的。因为男人是从自己最喜欢的人开始追求,当他配对成功的时候,意味着所有他更喜欢的女孩都拒绝了他。而女人如果有机会就可以换自己更喜欢的男人,因此当她配对成功的时候,意味着再没有更好的男人来找她了。所以双方达到了稳定(Stable)的状态。

我们发现,该算法对男人(主动出击的一方)有利,对女人(被动等待的一方)不利。因为男人都是从自己最心仪的女孩开始表白,这个策略首先考虑了男人的偏好。相关的数学证明从略。

你可能会发现,当n很大的时候,一轮轮的表白游戏会进行无数次,事实也正是如此。常识告诉我们,农村的人结婚通常都很早,而城市,特别是巨大城市的人,结婚都很晚。那是因为农村里你能够接触到的人都很少,即n很小(可能小于20),通过简单的几轮匹配,大家就能达到稳定匹配状态。而大城市如北上广,n巨大(接近无限),你可

能会经历无数次匹配都达不到稳定状态。所以并非像广告里说的那样:更多选择更多欢笑。有时候选择更多反而结果更差了。

前面我们提到,该算法对男人有利,对女人不利,它优先满足了男人的偏好,因此在北上广这样的特大型城市才会有那么多的剩女存在,她们终生在等待更靠谱的白马王子出现,但其实这位白马王子早就已经和别的女人配对成功(结婚)了,于是其中的不少女人选择了做小三。

相关文档
最新文档