什么是最佳匹配评级对的最佳方式?

时间:2014-12-07 16:37:48

标签: optimization matching rating set-theory independent-set

Lets说我有一份男女名单。每个男人(x)对每个女人进行评分,每个女人(y)对每个男人进行评分,评分为0-9。

e.g。

x1:{y1:0,y2:5,y3:9}

x2:{y1:1,y2:0,y3:9}

x3:{y1:5,y2:5,y3:8}

y1:{x1:3,x2:3,x3:5}

y2:{x1:8,x2:2,x3:2}

y3:{x1:9,x2:5,x3:9}

我正在寻找一个将所有x&对配对的算法为了最大化总评级。

在这种情况下,最佳配对将是x2:y3 = 9 + 9 = 18,x1:y2 = 5 + 8 = 13,x3:y1 = 5 + 9 = 14.总评级为45.至少我认为这只是眼睛。

我认为它是最大独立集问题的简化版,这不是NP难的优化问题。

1 个答案:

答案 0 :(得分:1)

这个问题被称为稳定的婚姻问题,诺贝尔经济学奖被授予解决方案。在维基百科上详细描述了算法:

http://en.wikipedia.org/wiki/Stable_marriage_problem

从维基百科剪切/粘贴的伪代码:

function stableMatching {
    Initialize all m ∈ M and w ∈ W to free
    while ∃ free man m who still has a woman w to propose to {
       w = m's highest ranked woman to whom he has not yet proposed
       if w is free
         (m, w) become engaged
       else some pair (m', w) already exists
         if w prefers m to m'
           (m, w) become engaged
           m' becomes free
         else
           (m', w) remain engaged
    }
}