Сортировка людей по группам на основе голосов
У меня проблема с поиском алгоритма сортировки данных людей. Я пытаюсь объяснить как можно более подробно:
История начинается с опроса. Куча людей, скажем, 600 могут выбирать между 20-25 проектами. У них есть желание № 1, желание № 2 и желание № 3, где № 1 - самый востребованный проект, в котором они хотят принять участие, и желание 3 - «не идеальный, но, наиболее приемлемым, выбрать».
Эти проекты ограничены по количеству участников. Каждый проект может объединить около 30 человек (в зависимости от количества людей и количества проектов).
Алгоритм помещает людей в разные проекты и должен найти наилучшую возможную комбинацию.
Проблема в том, что вы можетепросто поместите всех людей с их желанием № 1 в определенный проект, а всех остальных добавьте также желанием № 1 в пожелание № 2, потому что это не будет самым "самый счастливый" ситуация для всех.
Вы можете думать о том, что я имею в виду, когда представляете, что для всех, кто получает его номер 1, вы хотите получить 100 баллов, для всех, кто получает его номер 2, хотите 60 баллов, номер 3 желает 30 баллов и которые не входят ни в одно из его желаний. 0 баллов И вы хотите получить как можно больше очков.
Я надеюсь, вы понимаете мою проблему. Это для школьного дня проекта. Есть ли что-то, что может мне помочь? Есть ли у вас какие-либо идеи? Я был бы благодарен за каждый совет !!
С уважением