最佳匹配额定配对的最佳方式是什么?
问题描述:
让我说我有一个男人和女人的名单。每个男人(x)对每个女人进行评估,每个女人(y)评估每个男人的评分,评分为0-9。最佳匹配额定配对的最佳方式是什么?
例如
X1:{Y1:0,Y2:5,Y3:9}
X2:{Y1:1,Y 2:0,Y3:9}
X3:{Y1:5,Y2 :5,Y3:8}
Y1:{X1:3,X2:3,X3:5}
Y2:{X1:8,X2:2,X 3:2}
Y3 :{x1:9,x2:5,x3:9}
我正在寻找一种算法,将所有x & y配对为最大化总评分。
在这种情况下,最佳配对将是x2:y3 = 9 + 9 = 18,x1:y2 = 5 + 8 = 13,x3:y1 = 5 + 9 =至少我认为这是由眼睛。
我认为它是最大独立集问题的简化版本,这不是一个NP难的优化问题。
答
这个问题被称为稳定的婚姻问题,诺贝尔经济学奖被授予解决方案。算法在一些细节描述在Wikipedia:
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
}
}
即代码产生X1:Y3 = 9 + 9 = 18,X2:Y1 = 1 + 3 = 4,&x3:y2 = 5 + 2 = 7。总评分为29,远比我眼中的解决方案差。 – 2014-12-07 18:56:15
你的隐含假设是你分配和求和的数字是有意义的。我会挑战这个假设。 X1评价y3 a 9,y2 a 5和y1 a 0是否重要?我断言它没有。重要的只有y3是他的第一选择,y2是他的第二选择,y3是他的第三选择。具体的收视率毫无意义。如果你打算衡量一些东西来衡量每个参与者收到的平均选择。 1.0是最佳的。平均值越高,解决方案的最优化程度越低。 – Asaph 2014-12-08 03:08:31