匹配与流算法详解
1. 稳定婚姻问题 - Gale - Shapley算法
在现实生活中,我们常常会遇到匹配的问题,比如男女之间的婚姻匹配。这里我们要介绍的稳定婚姻问题就是一个经典的匹配问题。
1.1 问题定义
假设有 n 个男人和 n 个女人。每个男人会对女人进行偏好排序,同样,每个女人也会对男人进行偏好排序。婚姻可以看作是男人和女人构成的完全二分图中的一个完美匹配。如果不存在一个男人 i 和一个女人 j ,使得男人 i 更喜欢女人 j 而不是他当前的妻子,同时女人 j 更喜欢男人 i 而不是她当前的丈夫,那么这样的婚姻就是稳定的。我们的目标是根据这 2n 个偏好列表计算出一个稳定的婚姻匹配,而且这个解不一定是唯一的。
1.2 算法复杂度
Gale - Shapley算法(1962年提出)可以在 $O(n^2)$ 的时间复杂度内解决这个问题。
1.3 算法步骤
该算法从没有已婚夫妇开始。只要还有单身男人,算法就会选择一个单身汉 i ,并在尚未考虑过的女人中选择他最喜欢的女人 j 。然后尝试让 i 和 j 结婚:
- 如果女人 j 仍然单身,那么他们就结婚。
超级会员免费看
订阅专栏 解锁全文
2923

被折叠的 条评论
为什么被折叠?



