2014-12-07 2 views
1

Позволяет сказать, что у меня есть список мужчин и женщин. Каждый мужчина (x) оценивает каждую женщину, и каждая женщина (y) оценивает каждого мужчину по шкале 0-9.Каков наилучший способ оптимального соответствия номинальным парам?

например.

x1: {y1: 0, у2: 5, у3: 9}

х2: {y1: 1, y 2: 0, у3: 9}

х3: {y1: 5, у2 : 5, у3: 8}

у1: {x1: 3, х2: 3, х3: 5}

у2: {x1: 8, х2: 2, х3: 2}

у3 : {x1: 9, x2: 5, x3: 9}

Я ищу алгоритм, который объединяет все x & y, чтобы получить максимальную оценку.

В этом случае оптимальные пары будут равны x2: y3 = 9 + 9 = 18, x1: y2 = 5 + 8 = 13, x3: y1 = 5 + 9 = 14. для общей оценки 45. При по крайней мере, я думаю, что это на первый взгляд.

Я думаю, что это упрощенная версия проблемы с максимальным независимым множеством, что не является проблемой оптимизации NP.

ответ

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 
    } 
} 
+0

, которые кодируют результаты в x1: y3 = 9 + 9 = 18, x2: у1 = 1 + 3 = 4, & x3: y2 = 5 + 2 = 7. Который имеет общий рейтинг 29, намного худший результат, чем решение, которое я рассмотрел. –

+0

Ваше подразумеваемое предположение состоит в том, что присваиваемые и суммируемые числа имеют смысл. Я бы бросил вызов этому предположению. Имеет ли значение, что X1 имеет рейтинг y3 a 9, y2 a 5 и y1 a 0? Я утверждаю, что это не так. Важно только то, что y3 - его первый выбор, y2 - его второй и y3 - его третий. Конкретные рейтинги не имеют смысла. Если вы собираетесь измерить что-то, измерьте средний выбор #, полученный каждым участником. 1.0 является оптимальным. Чем выше среднее значение, тем менее оптимальным является решение. – Asaph

Смежные вопросы