Algorithm 验证稳定匹配的算法?
我知道使用Gale-Shapley可以保证找到一个稳定的匹配,但是如果给定一个匹配,我们如何验证该匹配是一个稳定的匹配呢。换句话说,我应该考虑什么条件是有效的,并且是一个稳定的匹配。 首先,如果您通过GS算法获得匹配,则: 男人向女人求婚的Gale-Shapley算法总是让步 在所有马厩中,最适合所有男人的马厩 配对 因此,无需验证稳定性 如果您有一个随机匹配,并且想要检查它是否稳定,您可以参考稳定匹配的定义: 给定n名男性和n名女性,其中每个人都对 异性按优先顺序,男女结婚 这样就不会有两个异性 他们都宁愿拥有对方,而不是现在的伴侣什么时候到 如果没有这样的一对人,这一组婚姻被认为是稳定的 因此,我们需要验证这样的一对是否存在。我们只需要将每个人的当前伴侣与排名较高的人进行对比。如果其中一个级别较高的选择也喜欢此人,则匹配不稳定 伪代码:Algorithm 验证稳定匹配的算法?,algorithm,Algorithm,我知道使用Gale-Shapley可以保证找到一个稳定的匹配,但是如果给定一个匹配,我们如何验证该匹配是一个稳定的匹配呢。换句话说,我应该考虑什么条件是有效的,并且是一个稳定的匹配。 首先,如果您通过GS算法获得匹配,则: 男人向女人求婚的Gale-Shapley算法总是让步 在所有马厩中,最适合所有男人的马厩 配对 因此,无需验证稳定性 如果您有一个随机匹配,并且想要检查它是否稳定,您可以参考稳定匹配的定义: 给定n名男性和n名女性,其中每个人都对 异性按优先顺序,男女结婚 这样就不会有两个异
for w in women:
for m in [men w would prefer over current_partner(w)]:
if m prefers w to current_partner(m) return false
return true
目前,我可以想出三种方法(在双边匹配市场中):