离散数学学习日志3

今天是图论的第二讲,有关Match Problem

以婚姻为例子:

假设男女数量相同,每个人有自己的倾向排名,排名不会重复,我们的目标是找到一个所有人稳定的婚姻关系。

什么是稳定?

形象来说就是不会出现rogue couples即姘头。

如果有这样两对夫妻,流落荒岛,而非常不幸的在于夫妻1的丈夫和夫妻2的妻子是老同学,相比爱自己的伴侣更爱对方,那么会导致他们会称为一对姘头而瞒着或光明正大地出轨。这是不好的。

我们的算法就是为了解决这种不好的事,要分配稳定的婚姻。

那么你或许会想到两个问题:

1.一定会存在稳定状态吗?

2.如果存在,那么唯一吗?

第一个问题,只能说看情况。什么情况?

如果没有同性恋,那么最终肯定会趋于稳定。

我们先来解释为什么同性恋不行:

考虑abc三个人形成三角恋(只有同性恋才会造成三角恋),a最爱b,其次是c,剩下两个人也类似。现在有一个d出现,d对abc来说,都是第三也就是最后优先级的。但是abc中肯定有人会和d组成夫妻,就当是a吧,那么这时,ac肯定会发展成姘头。

至于非同性恋,根据具体算法再来聊。

第二个问题:

不唯一,可以举这样一个简单的例子:

abcd四个人,a对b好感2(越小越好),a对d1,c对b1,c对d2那么就存在两种状态达到stable,ab,cd以及ac,bd。

现在正式介绍这样一种简单的算法:TMA。

男的根据自己的名单从上到下依次找女的,然后女的根据自己的名单挑最高的,剩下男的离开,从名单中删掉这个女的,然后重复操作直到每个人都找到自己伴侣。

为什么这个算法会稳定,其实很显然,不做证明。

这个算法最坏要多久可以搞定,答案是n^2天,就是说每天一个男的在自己名单上划掉一个,最终n^2就都划完了,必定会结束,但是其实很难达到这样坏。

再讲一个反直觉的:

这个算法对男的有利还是女的有利?或者是公平的?

如果不加思考,可能会觉得对女的有利。因为女的能选的男的越来越好,男的能选的女的越来越坏。

但是其实恰恰相反:

在不造成姘头的情况下,男的能找到的都是最好的,女的找到的都是最坏的。

其实不难想,男的从名单上划掉的都是会造成姘头的女的,从上往下自然能找到最好的。

而女的用反证法证明,如果女的伴侣不是最坏的,那么假设某个女的1和一个男的a结成伴侣,如果女1和男b也可以结合成稳定,且男b的优先级低于男a,如果女1去和男b结婚,那么女a可以和男a出轨,根据男的找到的都是最好的,此时男a的伴侣不如女1,那么男a可以和女1结成姘头,不再稳定。也就是说,不存在某个女的可以找到比当前配偶更烂的选择而保持稳定,也就是说,女的的当前配偶就是最烂的。

是不是很有趣,从这个方面我们可以学到,应该主动出击而不是等待,因为看似等来的越来越好,其实却是最烂的。

这样的算法是可以保证每个人都能找到配偶,而总体维持稳定。

可以回到一开始的问题,就是只要不是同性恋、三角恋,必定最后会趋于稳定。就算男女数量不相同也可以,只是最后会存在有人没能配对成功的情况。

很神奇吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值