Общее решение этой проблемы может быть трудным, поскольку вы можете легко получить циклы (т.е. без транзитивности):
A accepts x and rejects y;
B accepts y and rejects z;
C accepts z and rejects x.
И учреждения могут быть не совсем сопоставимыми (т.е. без симметрии):
A accepts x and rejects y;
B accepts y and rejects x.
Один из методов, который вы можете использовать, - это сетевая модель.Пусть учреждения будут узлами.Добавьте направленную дугу весом w
от узла A к узлу B, где w
- количество кандидатов, которые были приняты в учреждение B и отклонены в учреждении A. Интуитивно, вес дуг, указывающих на менее отобранные школы, будетбольше.Таким образом, проблема в основном сводится к поиску стационарных потоков внутри и из узлов ... Учреждения вне компонента несопоставимы.
Извините, что не вдавались в подробности, но я надеюсь, что идеяясно.