具有公平性的 Gale Shapley 匹配算法

Gale Shapley matching algorithm with fairness

(抱歉英语不好)

您好,我正在尝试针对不同规模的群组实施 Gale, Shapley 算法。我发现了一个技巧,它包括为给定的男人复制“提议”(即:男人的偏好在男人的偏好列表中重复),并且第二个提议被添加到女性列表中。

示例: 让男人为 {1,2},女人为 {3,4},我希望有些男人有不止一次婚姻(让 1 成为这个 lucky/unlucky 人) 从一开始,男性的偏好列表是: 1:[3,4] 2:[4,3] 女性的偏好列表是: 3:[2,1] 4:[1,2] 是一对一的匹配问题。

处理一夫多妻的情况,我是照着招数办的。 我可以创建一个 man 1',它持有 man 1 的第二个报价并且与 1 具有相同的偏好 1':[3,4] 我更新了女性列表以添加 1': 3:[2,1,1'] 4:[1,1',2] 变成了多对一的匹配问题

然而,现在一个人 (1) 有可能获得两次婚姻,而另一个人仍然单身。我怎样才能摆脱它?

如果您将所有重复项排在所有 non-duplicates 之下,那么 Gale–Shapley 应该匹配所有人,例如 3:[2,1,1'] 和 4:[1,2, 1']。原因是,如果女性与重复的男性匹配,则没有女性会拒绝 non-duplicate 男性的求婚,因此所有 non-duplicate 男性都会匹配。