摘自:「百度百科」

经济学是研究资源最优配置问题的,而真实世界里配置资源的方式多种多样,市场或者说价格机制是经济学研究最多的。但是有一些市场里头,价格的作用受到法律、习俗或伦理道德等限制。最明显的例子就是找对象的时候不是价高者得,而是情投意合才结成夫妻。

匹配算法致力于解决经济学中「稀缺性资源」如何在不同用户之间进行「分配」的问题,从而到达理论上的「最优」。

案例入手

以下表格是一组婚介匹配数据,分为「男生偏好」和「女生偏好」。
表格标记了用户「从左至右」的偏好排名,其中「Φ」表示即使放弃也不愿匹配之后的用户。

编号 男生偏好
1 6 7 5 Φ 8
2 8 7 6 5 Φ
3 7 6 5 Φ 8
4 6 8 Φ 5 7
编号 女生偏好
5 1 4 2 3 Φ
6 2 1 3 4 Φ
7 1 2 3 Φ 4
8 1 Φ 2 4 3

贪心算法

摘自:「百度百科」

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。

那么基于案例,贪心算法的求解流程如下:

  • 第一轮 | 编号 | 男生偏好 | | | | | 结果 | 过程 | | —- | —- | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 | 成功 |
    | | 2 | 8 | 7 | 6 | 5 | Φ | 失败 | 8只有选择1 | | 3 | 7 | 6 | 5 | Φ | 8 | 成功 |
    | | 4 | 6 | 8 | Φ | 5 | 7 | 失败 | 6已被1选择 |

第一轮匹配「1-6」「3-7」匹配成功。

  • 第二轮 | 编号 | 男生偏好 | | | | | 结果 | 过程 | | —- | —- | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 |
    |
    | | 2 | 8 | 7 | 6 | 5 | Φ | 成功 | 2只有选择5 | | 3 | 7 | 6 | 5 | Φ | 8 |
    |
    | | 4 | 6 | 8 | Φ | 5 | 7 | 失败 | 4放弃 |

第一轮匹配「2-5」匹配成功。

贪婪算法的最终匹配为:

男生1 女生6
男生2 女生5
男生3 女生7

沙普利算法

摘自:「百度百科」

沙普利算法简称「GS算法」或 「延迟接受算法」,是盖尔和沙普利为了寻找一个稳定匹配而设计出的市场机制。

那么基于案例,沙普利算法的求解流程如下:

  • 第一轮 | 编号 | 男生偏好 | | | | | | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 | | 2 | 8 | 7 | 6 | 5 | Φ | | 3 | 7 | 6 | 5 | Φ | 8 | | 4 | 6 | 8 | Φ | 5 | 7 |
编号 女生偏好 可选 调整
5 1 4 2 3 Φ

6 2 1 3 4 Φ 1和4 选择1
7 1 2 3 Φ 4 3
8 1 Φ 2 4 3 2 拒接2

匹配结果:

男生1 女生6
男生3 女生7
  • 第二轮 | 编号 | 男生偏好 | | | | | | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 | | 2 | 8 | 7 | 6 | 5 | Φ | | 3 | 7 | 6 | 5 | Φ | 8 | | 4 | 6 | 8 | Φ | 5 | 7 |
编号 女生偏好 可选 结果
5 1 4 2 3 Φ

6 2 1 3 4 Φ 1 选择1
7 1 2 3 Φ 4 2和3 2>3,选择2
8 1 Φ 2 4 3

匹配结果:

男生1 女生6
男生2 女生7
  • 第三轮 | 编号 | 男生偏好 | | | | | | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 | | 2 | 8 | 7 | 6 | 5 | Φ | | 3 | 7 | 6 | 5 | Φ | 8 | | 4 | 6 | 8 | Φ | 5 | 7 |
编号 女生偏好 可选 结果
5 1 4 2 3 Φ

6 2 1 3 4 Φ 1和3 选择1
7 1 2 3 Φ 4 2 选择2
8 1 Φ 2 4 3

匹配结果:

男生1 女生6
男生2 女生7
  • 第四轮 | 编号 | 男生偏好 | | | | | | —- | —- | —- | —- | —- | —- | | 1 | 6 | 7 | 5 | Φ | 8 | | 2 | 8 | 7 | 6 | 5 | Φ | | 3 | 7 | 6 | 5 | Φ | 8 | | 4 | 6 | 8 | Φ | 5 | 7 |
编号 女生偏好 可选 结果
5 1 4 2 3 Φ 3 选择3
6 2 1 3 4 Φ 1 选择1
7 1 2 3 Φ 4 2 选择2
8 1 Φ 2 4 3

匹配结果:

男生1 女生6
男生2 女生7
男生3 女生5
  • 揭示了什么?

贪心算法经过两轮高效匹配最终产生了三对情侣。但仔细观察会发现男生2相对于女生5「更喜欢」女生7,而另一方面女生7相对于男生3「更喜欢」男生2,因此算法中暗含了「不稳定」。而沙普利算法因为其「稳定匹配理论」和市场实践于2012年获得了诺贝尔经济学奖。沙普利算法的成功也揭示了两个有趣的定理:

  • 表白者优势定理

由男生主动表白最后得到的稳定性匹配称之为「男性最优稳定匹配」,由女生主动表白得到的稳定匹配称之为「女性最优稳定性匹配」。从算法过程来看「主动表白」的一方能能够和喜欢的人在一起的「机会更高」。

  • 单身不动点定理

从算法过程来看,无论哪一方「主动表白」形成的「稳定匹配结果」中「单身的依旧还是单身」。