Может кто-нибудь помочь мне решить или указать, что это за проблема:Определение алгоритма распределения ресурсов?
У меня есть набор ресурсов и количество пользователей, и для каждого пользователя есть определенное подмножество ресурсов, которое может выбрать один ресурс из для распределения. Два разных пользователя не могут быть назначены одному и тому же ресурсу. Мне нужно распределить ресурсы для пользователей, чтобы максимизировать распределение. например:
R = {R1, R2, R3, R4}% Набор ресурсов
U = {u1, u2, u3, U4}% Множество пользователей
u1 может выбрать один ресурс от: {r1, r2, r3}
и2 может выбрать один ресурс из: {r1, r2}
и3 может выбрать один ресурс из: {r1, r4}
U4 может выберите один ресурс: {r2}
в этом случае я должен выделить
3-> u1, R1-> u2, 4-> и3, R2-> U4.
Если было выделено иначе, у u4 не будет выделенного ресурса.
Это только для объяснения проблемы. Мне нужно решить эту проблему для 200 пользователей и 100 ресурсов. Могу ли я узнать ваши рекомендации относительно того, какой алгоритм использовать или как его решить?
Вы могли бы хотеть смотреть на это: https://en.wikipedia.org/wiki/Bipartite_graph#Matching –
при выполнении распределение, любое правило или пользователь получает какой-либо доступный ресурс? являются ли ресурсы, которые когда-либо возвращались на «R»? – Nick
Сверху моей головы, кажется, вы должны выделить в порядке наименьшего из доступных доступных: u4, затем u3, затем u2 и u1. Если они равны, произвольно выберите пользователя и выделите их запрос. Если это не удается, перезапустите и повторите попытку. Поместите это в цикл с максимальными повторениями, после чего вы прервете. – Nick