1

我对稳定婚姻问题的表述略有不同。基本上,我可以将一个男人与一个女人匹配,但偏好列表不完整,这意味着一个男人只对一部分女性表达了兴趣,反之亦然。我认为原始的 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

我需要将每个男人与一个且只有一个女人匹配,并且允许的偏好数量是固定的,并且少于候选人的数量。

4

1 回答 1

1

您需要以某种方式定义整个首选项列表,否则该算法将不起作用。也就是说,随意“填写”剩余男性/女性的偏好列表应该相对简单;您可以分配静态排序,或随机分配这些偏好。

如果你需要在他的偏好列表上专门匹配一个男人和一个女人,你不可避免地会遇到问题无法解决的情况。

至于 python 方法,有很多方法可以解决这个问题;这主要取决于您尝试如何实现算法。

于 2019-03-27T12:13:07.427 回答