我对稳定婚姻问题的表述略有不同。基本上,我可以把一个男人和一个女人配对,但是偏好列表是不完整的,这意味着男人只对一部分女人表达了兴趣,反之亦然我不认为最初的Gale-Shapley算法可以解决这个问题,如果是的话,我需要做什么修改?
如果gale shapely在这里不起作用,有什么算法可以解决这个问题吗?
代码建议,特别是针对此类问题的python代码建议,非常受欢迎。
更具体地说,这就是问题所在:
Men = [1, 2, 3, 4, 5]
Women = [a, b, c, d, e]
偏好:
男性:
1: a, c, d
2: d, a, b
3: a, e, b
4: c, a, d
5: e, d, a
女人:
a: 1, 3, 4
b: 4, 2, 5
c: 5, 1, 4
d: 3, 2, 1
e: 5, 3, 1
我需要把每个男人和一个女人配对,并且允许的偏好数量是固定的,并且少于候选人的数量。
最佳答案
您需要以某种方式定义一个完整的首选项列表,否则算法将无法工作。也就是说,用剩下的男人/女人任意地“填写”一个偏好列表应该相对简单;你可以指定一个静态顺序,或者随机地指定这些偏好。
如果你只需要把一个男人和一个女人列在他的偏好清单上,你将不可避免地遇到问题无法解决的情况。
至于python方法,有很多方法可以实现这一点;这主要取决于您尝试如何实现算法。