【发布时间】:2012-04-21 21:40:52
【问题描述】:
情况:用户选择多个其他用户作为项目的可能合作伙伴。用户对他选择的一个用户没有偏好(即他列表中的任何用户都足以成为合作伙伴)。示例:
| user_id | preferred_partners |
| 1 | 2 4 |
| 2 | 3 1 |
| 3 | 4 2 1 |
| 4 | 1 |
真正的名单会更大。
我的问题:给定一组用户及其首选合作伙伴(如上面的列表),我想生成一组最终合作伙伴对。最终配对的人数必须最大化(我希望有尽可能多的人配对)。
这是我认为我需要的算法:Edmonds's matching algorithm,但由于我不是数学背景,我无法解释和实施它。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: ruby algorithm matching weighted bipartite