是否有任何 python 代码或对 Gale Shapley 算法的修改,以便它可以解决具有不完整偏好列表的稳定婚姻问题

Is there any python code or a modification for the Gale Shapley algorithm so it can solve stable marriage problem with incomplete preference lists

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

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

您需要以某种方式定义整个首选项列表,否则算法将无法运行。也就是说,"fill out"一个preference list,剩下的men/women任意,应该是比较简单的;您可以分配静态顺序,或随机分配这些首选项。

如果你需要在他的偏好列表中专门匹配一个男人和一个女人,你将不可避免地运行陷入无法解决问题的情况。

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