Python实现稳定婚姻匹配问题Gale-Shapley算法
稳定婚姻匹配问题,是指给定n个男性和n个女性之间的偏好关系,找到他们之间的匹配,使得不存在一个男性和女性存在互相喜欢但却没有在匹配中出现的情况。Gale-Shapley算法,又称为盖尔-沙普利算法,是解决这一问题的经典算法。
- 算法思路
Gale-Shapley算法的基本思路是,男性在按照自己的偏好顺序依次向女性提出求婚,而每位女性会选择最喜欢的一个男性作为自己的配偶。如果一个女性已经有了配偶,那么她会比较自己现任配偶和当前这位男性的排名,如果这位男性排名更高,她就会与自己的现任配偶分手并与这位男性结婚,否则她仍然和现任配偶结婚。当所有男性都结束了自己的求婚后,就可以得到一个稳定婚姻匹配结果。
- 代码实现
下面是Python实现稳定婚姻匹配问题Gale-Shapley算法的完整代码:
def stable_marriage(boys, girls