Нужен алгоритм сопряжения - на основе венгерского?

Венгерским или Kuhn-Munkres алгоритм (хорошее описание здесь ) объединяет объекты из двух наборов (из n и m объектов соответственно, n> = m ) так, чтобы общая «разница» (или «стоимость» назначения) между парными объектами должна быть минимальной. Однако одна особенность алгоритма меня не устраивает: он выполняет только исчерпывающее спаривание в том смысле, что объединяет все m объектов с некоторыми из n объектов. Вместо этого я хотел бы иметь возможность создавать произвольное количество k пар ( k ) с минимальными затратами. Например, есть матрица затрат 50x30; Кун-Мункрес оптимально создаст, но все 30 пар. Хотя мне нужно всего 20 пар для такого оптимального создания.

Может ли быть какая-нибудь модификация венгерского алгоритма, позволяющая это, или, может быть, совершенно другой алгоритм для этого? Я высоко ценю ваши ответы.

6
задан Brian Tompsett - 汤莱恩 1 March 2019 в 09:27
поделиться