📜  门| GATE-CS-2015(Set 2)|问题21(1)

📅  最后修改于: 2023-12-03 15:28:44.217000             🧑  作者: Mango

门 | GATE-CS-2015(Set 2) | 问题21

这个问题涉及到稳定婚姻问题。

稳定婚姻问题

稳定婚姻问题是计算机科学中一个重要的问题,通常使用“稳定匹配”来解决。

稳定婚姻问题的背景是:有n个男人和n个女人,他们之间相互喜欢和不喜欢。现在,我们要找出一个男人和女人的稳定的婚姻配对。稳定的意思是说,不存在任何一个男人x和女人y,他们两个不是婚配,但是他们俩彼此喜欢更多,所以有可能结婚并且破坏现有的配对。

以下是一个稳定婚姻问题的示例:

女人 喜欢的男人优先程度


Sally Harry > Tom > Dick Cathy Tom > Harry > Dick Jane Harry > Dick > Tom Rita Harry > Tom > Dick

男人 喜欢的女人优先程度


Harry Rita > Sally > Jane > Cathy Tom Sally > Jane > Cathy > Rita Dick Jane > Cathy > Rita > Sally

在这个例子中,以下是几个配对的结果:

Sally - Harry Cathy - Tom Jane - Dick Rita - 未配对

这种配对是一个 稳定配对 ,因为没有一个男人和女人,他们两个本来应该在一起,但是他们可以相互抛弃他们现有的配对并被换成彼此。

解决稳定婚姻问题的算法

婚姻稳定匹配问题的经典算法是 Gale-Shapley算法 。该算法分为两个阶段:

  1. 初始化阶段:每个男人都尝试向他最喜欢的女人求婚。
  2. 稳定化阶段:每个女人都考虑她当前和她已经拒绝的男人的相对排名,她选择她喜欢的和已经约会的,发出许可。

该算法保证会找到一个 稳定的匹配 。可以证明,稳定婚姻问题必然有一个稳定的解决方案。同时,该算法也保证会在 O ( n ^ 2 ) 的时间内完成。

问题21

在这道题中,您需要确定以下两件事情:

  1. 上述Gale-Shapley算法是正确的吗?
  2. 如果存在一个稳定的匹配,是否可以保证它是唯一的?
解答

对于第一个问题,是的,上述Gale-Shapley算法是正确的。上述算法就是Gale和Shapley首先提出的算法,他们证明了该算法会总是找到一个稳定匹配。

对于第二个问题,不是的。不能保证唯一的稳定匹配,但是结果至少是稳定的,即使这个稳定的匹配不是唯一的。

总结

稳定婚姻问题是计算机科学中的一个经典问题。通过Gale-Shapley算法,可以找到一个稳定的匹配,该算法确保总会找到一个稳定的匹配。同时,稳定婚姻问题可能有不止一个稳定的解决方案。