问题描述
(对不起,英语不好)
嗨,我正在尝试对不同规模的人群实施Gale,Shapley算法。我发现了一个窍门,其中包括重复给定男人的“要约”(即:男人的偏好在男人的偏好列表中重复出现),而第二个要约被添加到女人的列表中。
示例: 假设男人是{1,2},女人是{3,4},我希望其中一些男人有不止一次婚姻(让1个是这个幸运/不幸的人) 从一开始,男人的喜好列表是: 1:[3,4] 2:[4,3] 妇女的喜好清单是: 3:[2,1] 4:[1,2] 这是一对一的匹配问题。
要解决一夫多妻制的问题,我遵循了把戏。 我可以创建一个男人1',该男人持有男人1的第二个要约,并且具有与1相同的偏好 1':[3,4] 然后我将女性名单更新为1': 3:[2,1,1'] 4:[1,1',2] 这成为一个多对一的匹配问题。
但是,现在一个人(1)可以得到两个婚姻,而另一个人仍然是单身。我该如何摆脱呢?
解决方法
如果您将所有重复项排在所有非重复项之下,那么Gale-Shapley应该匹配所有人,例如3 :: [2,1,1']和4:[1,2,1']。原因是没有女人会拒绝重复男人的提议,如果她与重复男人匹配的话,那么所有不重复男人都会被匹配。