Допустим, у меня есть два множества: (n_1, n_2, ...) и (m_1, m_2, ...) и функция соответствия match(n, m), которая возвращает значение от 0 до 1. Я хочу найти отображение между двумя множествами так, чтобы выполнялись следующие ограничения:
(Я полагаю, что первые три - это стандартные ограничения взвешенного двухстороннего соответствия, но я указал их на случай, если я неправильно понимаю взвешенное двухстороннее соответствие)
Это относительно просто сделать с помощью исчерпывающего поиска за экспоненциальное время (относительно размера множеств), но я надеюсь, что существует решение с полиномиальным временем (в идеале O((|n|*|m|)^3) или лучше).
Я достаточно много искал по "проблеме назначения"/"взвешенного двухстороннего сопоставления" и видел варианты с различными ограничениями, но не нашел ни одного подходящего варианта или такого, который я смог бы свести к одному с этим дополнительным ограничением на упорядочение. Есть ли у вас идеи, как я могу решить эту задачу? Или, возможно, грубое доказательство того, что это не решаемо за полиномиальное время (для моих целей подойдет и сведение к NP-полному)?