Optimization 什么';最佳匹配额定配对的最佳方法是什么?
假设我有一个男人和女人的名单。每个男人(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&y,以最大限度地提高总评分 在这种情况下,最佳配对为x2:y3=9+9=18,x1:y2=5+8=13,x3:y1=5+9=14。总评分为45分。至少我认为这是用眼睛看的Optimization 什么';最佳匹配额定配对的最佳方法是什么?,optimization,matching,rating,set-theory,independent-set,Optimization,Matching,Rating,Set Theory,Independent Set,假设我有一个男人和女人的名单。每个男人(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&y,以最大限度地提高总评分 在这种情况下,最佳配对为x2:y3=9+9=18,x1:y2=5+8=13,x3:y
我认为这是最大独立集问题的简化版本,它不是一个NP难优化问题。这个问题被称为稳定婚姻问题,诺贝尔经济学奖也因此获得。算法在wikipedia上有详细描述:
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
}
}
从维基百科剪切/粘贴的伪代码:
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,比我所看到的解决方案糟糕得多。你的隐含假设是你所分配和求和的数字是有意义的。我将挑战这一假设。X1评级为y3 a 9、y2 a 5和y1 a 0是否重要?我断言它不是。重要的是y3是他的第一选择,y2是他的第二选择,y3是他的第三选择。具体的评级毫无意义。如果你要衡量某件事,请衡量每个参与者的平均选择。1.0是最佳的。平均值越高,解决方案越不理想。