Я столкнулся со следующей проблемой:
- есть два непересекающихся множества,
A
иB
- для каждой пары элементов (
a
,b
) (a
принадлежит множествуA
, гдеb
принадлежит множествуB
) вероятностьpij
известна заранее. Он представляет вероятность (уровень достоверности) того, чтоa
совпадает сb
, или, другими словами, насколько близкоa
совпадает сb
(и наоборот, потому чтоpij
==pji
). - Мне нужно найти соответствие с наибольшей вероятностью / достоверностью и найти пары (
a
,b
), которые описывают совпадение - каждый элемент должен быть сопоставлен / спарен с другим из другого набора ровно один раз (как в стандартной задаче двустороннего сопоставления)
- если возможно, я хотел бы вычислить число, которое приблизительно выражает уровень неопределенности для полученного соответствия (скажем, 0 представляет собой случайное предположение, а 1 представляет достоверность)
Простой практический пример, в котором требуется такой алгоритм, описан ниже (на самом деле это не та проблема, которую я решаю!):
- двух человек просят написать буквы a - z на листе бумаги
- для каждой пары букв (
a
,b
) мы запускаем сопоставление шаблонов, чтобы определить вероятность того, что букваa
, написанная человекомA
, представляет буквуb
, написанную человекомB
. Это дает нам матрицу вероятностей, которая выражает некую корреляцию сходства для каждой пары букв (a
,b
) - для каждого письма, написанного этим человеком
A
, нам нужно найти соответствующее письмо, написанное этим человекомB
Текущий подход: мне интересно, могу ли я просто назначить веса, которые пропорциональны логарифму уровня достоверности / вероятности того, что элемент a
из набора A
соответствует элементу b
из набора B
, а затем выполнить максимальное взвешенное двустороннее сопоставление для найти максимальную сумму. Логарифм нужен, потому что я хочу максимизировать общую вероятность множественного совпадения, и поскольку одиночные совпадения (представленные в виде пар совпадающих элементов a
- b
) образуют цепочку событий, которая является продуктом вероятностей, логарифм преобразует это сумме вероятностей, которая затем легко максимизируется с помощью алгоритма взвешенного двудольного сопоставления, такого как венгерский алгоритм. Но я почему-то сомневаюсь, что такой подход обеспечит наилучшее соответствие с точки зрения ожидаемого статистического максимума.
После небольшого поиска ближайшей проблемой, которую я обнаружил, была двухэтапная задача стохастического сопоставления с максимальным взвешиванием, которая является NP-сложной, но на самом деле мне нужна какая-то «одностадийная» задача стохастического сопоставления с максимальным взвешиванием.