配对匹配算法

时间:2010-12-22 10:22:05

标签: algorithm graph matching

我正在开发一款需要不断匹配用户的rails应用。基本上我需要一种算法,它将用户列表作为输入,并返回最匹配的对列表。根据标准,用户被认为是良好的匹配,这些标准具有更多共同利益或它们之间的距一般来说,我需要能够调整被认为是“良好匹配”的东西,但我只需要一个方向来寻找将需要一组用户并返回一组对的算法。

如果它有帮助,我在用户模型中有一个方法,将另一个用户作为参数,并返回一个匹配程度的得分。我需要帮助将其用于大规模匹配。

我计划让用户每隔一段时间进入一个表,然后是一个在列表中运行的cron作业,以找到每个人之间的最佳配对。有人有什么想法吗?

非常感谢!

1 个答案:

答案 0 :(得分:6)

Jack Edmonds' algorithm在一般(非二分图)图中找到最大权重匹配。

Vladimir Kolmogorov在C ++中有一个paper and an implementation


编辑添加:如果你不介意没有获得最佳匹配,并且你想要一些易于计算的东西,那么为什么不使用简单的贪婪算法呢?在每个阶段,配对得分最高的两个用户。然后将剩余用户中得分最高的两个用户配对,依此类推。