Сортировка людей по группам на основе голосов

У меня проблема с поиском алгоритма сортировки данных людей. Я пытаюсь объяснить как можно более подробно:

История начинается с опроса. Куча людей, скажем, 600 могут выбирать между 20-25 проектами. У них есть желание № 1, желание № 2 и желание № 3, где № 1 - самый востребованный проект, в котором они хотят принять участие, и желание 3 - «не идеальный, но, наиболее приемлемым, выбрать».

Эти проекты ограничены по количеству участников. Каждый проект может объединить около 30 человек (в зависимости от количества людей и количества проектов).

Алгоритм помещает людей в разные проекты и должен найти наилучшую возможную комбинацию.

Проблема в том, что вы можетепросто поместите всех людей с их желанием № 1 в определенный проект, а всех остальных добавьте также желанием № 1 в пожелание № 2, потому что это не будет самым "самый счастливый" ситуация для всех.

Вы можете думать о том, что я имею в виду, когда представляете, что для всех, кто получает его номер 1, вы хотите получить 100 баллов, для всех, кто получает его номер 2, хотите 60 баллов, номер 3 желает 30 баллов и которые не входят ни в одно из его желаний. 0 баллов И вы хотите получить как можно больше очков.

Я надеюсь, вы понимаете мою проблему. Это для школьного дня проекта. Есть ли что-то, что может мне помочь? Есть ли у вас какие-либо идеи? Я был бы благодарен за каждый совет !!

С уважением

Ответы на вопрос(2)

Ваш ответ на вопрос