解决稳定婚配问题——Gale-Shapley算法

我们设想这样一个情景,在一个屋里子,有十对男女正在进行相亲,要采取什么样的策略才能保证他们最终都能够满意自己的另一半并获得幸福呢?
1962年,沙普利与同事戴维·盖尔在《高校招生与婚姻稳定性》一文中提出了盖尔-沙普利算法(Gale-Shapley 简称GS),也叫“延迟接受算法”。

Gale-Shapley匹配流程

  1. 男生作为主动的一方,会主动向女生发出邀约。女生作为矜持的一方,不会收到邀约后立即私定终身。
  2. 每个男生对女生有好感度排名,女生亦如是。
  3. 爱情总不是顺利的,要经过多轮匹配才会有稳定的结果。
  4. 每轮匹配时,男生会向自己最喜欢的且没有拒绝过自己的女生(无论对方是否已经有邀约)发出邀约。如果女生接受,男生就不会再继续邀约其他女生,除非女生放弃接受的邀约,视为被拒绝。如果女生不接受,同样视为被拒绝。
  5. 当女生没有邀约时,必定会接受第一个来自男生的邀约。但这个接受是不稳定的,如果后续有自己更喜欢的男生向自己邀约时,女生会拒绝前一个邀约并接受新的。
  6. 重复多轮直到所有人都脱单,保证形成一个稳定的匹配结果。他们可能不会和自己最喜欢的在一起,但会和最合适的在一起。

分析

时间复杂度O(n^2),最好的情况下每个男生只需要发出一次邀约,当且仅当男生和女生相互好感均为第一顺位时。最坏的情况下,运气最差的男生会邀约N次(N为女生个数),第N次完成匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值