【问题标题】:Is there any python code or a modification for the Gale Shapley algorithm so it can solve stable marriage problem with incomplete preference listsGale Shapley算法是否有任何python代码或修改,以便它可以解决偏好列表不完整的稳定婚姻问题
【发布时间】:2019-03-27 12:06:05
【问题描述】:

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

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

【问题讨论】:

  • Stack Overflow 不是免费的编码服务。预计提供代码,我们帮助修复它。
  • 我不是要代码本身,只是处理这个的算法或库推荐而已,我会根据自己的情况进行调整,表格和矩阵只是一个例子说明问题。 @k
  • 当然,以任意顺序将缺少的首选项添加到每个人员列表的末尾,然后应用 GS 算法。有些人可能会得到一个他们没有添加偏好的人,但其他人会想要切换吗?
  • 是的,有道理,实际上对于我的应用程序,我想我会考虑一个偏好度量,我可以以编程方式添加一些对我来说有意义的东西,并使用通用 GS 算法谢谢@Paddy3118跨度>

标签: python algorithm economics game-theory stable-marriage


【解决方案1】:

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

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

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

【讨论】:

  • 感谢@TaylorNelms 所以这个想法是没有算法可以保证除了蛮力之外的解决方案?
  • 这不一定是真的;这将取决于您的问题的确切参数。例如,如果一个男人与一个他不喜欢的女人相匹配,那是算法的失败吗?我会自己玩弄一些不同的实现(例如,围绕 Gale-Shapely 算法进行一些修改),看看你能做什么。
  • 我会找到一些方法来计算偏好并以编程方式填写整个偏好列表。并使用标准 GS
猜你喜欢
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
相关资源
最近更新 更多