解决单身男女婚配难问题的方法
一些朋友喜欢看江苏卫视的《非诚勿扰》,不过在里面,四五个男生对二十四个姑娘,磨磨唧唧一个多小时,还常常配对失败……死理性派表示:给我100 个男人100个女人,就可使其一一配对,还不会有人私奔。
听起来很扯吧?然而数学家们可是切切实实地研究过这个问题哦。这就是所谓的稳定匹配问题(Stable Marriage Problem,也叫稳定婚姻问题)。
先对意中人排个名
要进行速配,当然要考虑男女双方的意愿。不幸的是,要让每一个人都刚好能和自己最喜欢的人在一起基本上是不可能的(所以才有那么多三角恋多角恋 啊),总不免有人最终得不到自己最爱的那个TA,这时候他就不得不考虑“第一喜欢”的人、“第六喜欢”的人……所以,每个人都必须将对面的100个异性按 最喜欢到最不喜欢排个序,不妨称之为“偏爱序”。
然后就能按照所有人进行速配了,而且这个速配是稳定的,不会出现“私奔”的情况呢。
什么是不稳定,有人曾用一句不太雅但很形象的话来描述:不稳定婚姻意味着不但我家要有一枚奸夫,你家还要有一只淫妇才行。也就是说,A男喜欢B女胜过自己的妻子,同时B女喜欢A男胜过自己的丈夫,然后他们就私奔了。
在这场速配中,如果出现私奔,那它就是不稳定婚姻,反之则为稳定婚姻。
怎样速配:Gale & Shapley 方法
其实早在1962年,美国数学家戴维·戈尔(David Gale)和劳埃德·夏普利(Lloyd Shapley)就解决了这个问题。他们的思路是这样的:
第一天
上午,所有的男人都向自己最爱的女人求婚。
下午,每个女人清点自己的求婚列表。如果只收到一个男人的求婚,那么就和他订婚。如果收到多于一个男人的求婚,那么就和其中她最爱的那个男人订婚,同时把其他男人都拒绝掉。如果一个求婚都没有,不要着急,最后总会有的。
晚上,检查一遍,如果所有女人都订婚了,那么,万事大吉,第二天举行集体婚礼。
但如果还有女人没有订婚,那么事情还没完,第二天继续。
第二天
上午,所有还没订婚的男人向自己次爱的女人求婚。(昨天他们已经被最爱拒绝了)
下午,每个女人再看一遍自己收到订婚的情况。如果她已经订婚了,但是又有一个她更爱的男人来向她求婚,那就把原来那个拒绝掉,再和这个更爱的男人订婚;如果还没订婚,那就和第一天的下午的处理一样。
晚上再检查一遍,如果还是有人没有订婚,那第三天再重复。
第三天
上午,所有没有订婚的男人,包括第一天订了第二天又被踹出来的,再向还没有拒绝过他的女人中他最爱的那个求婚。
如此周而复始,直到最后大家都订了婚,就举行集体婚礼。
这是一个对男人有利的速配法
直觉上,女性在这个匹配算法中貌似更有优越感——男人们来向自己求婚,自己可以挑选一个自己最喜欢的。而男人们很可能会屡屡被拒。
那么这个算法是否真的是对女性比较有利呢?让我们分别考察男人和女人如何才能得到自己的最喜欢的人。设A男要得到他最喜欢的B女,首先要看还有多少 别的男人同时也喜欢B,然后再与这些情敌竞争。而女人是否能与最喜欢的男人结婚,首先就要看她自己在对方的偏爱序中排老几,也就是说,一开始她就要和所有 的同性竞争了。
在这个算法里,男人相比女人最大的优势就是他是主动的一方,即使像樱木花道一样被拒了50次,仍然可以追求他喜欢的晴子。你也许会说,漂亮的女生肯定会有很多男人追啊。话是没错,可是她心中的那个他不喜欢自己,那再多的追求者也枉然啊。
所以啊,姑娘们要想要好GG,还是得自己主动啊。
附:Gale & Shapley 方法的合理性说明
算法的可终止性可证:每个男人按照自己的偏爱序一个个求婚下来,一定有一个女人会要他——试想一个男人被一百个女人拒绝掉了,那他的偏爱序中已经没 有人可以求婚了,所以他得不到配对,对应地对面也肯定有一个剩女,可是这个剩女曾经拒绝过他呀,也就是说她有更好的追求者呀,她怎么可能成为剩女呢?
算法的正确性也可证:假设有A男和B女私奔了。那么A在B的偏爱序中必然比B的丈夫靠前,按照算法,女人最后选择的一定是所有向她求婚的男人中她最 喜欢的,这就是说A没有向B求过婚(要不然B选的就是他了)。然而,男人是按照自己的偏爱序依次求婚的,而A又喜欢B甚于自己的老婆,所以A又必然向B求 过婚。推出矛盾,故不可能出现私奔。转帖