Я создаю веб-приложение, в котором я пытаюсь распределить пользователей по группам на основе их предпочтений. В моем приложении у меня есть 1 таблица, в которой хранится информация о пользователях, и 1 таблица, в которой хранятся выборы пользователей.
Пользователи должны выбрать хотя бы один вариант из 10.
Я пытаюсь написать алгоритм, который будет удовлетворять следующим правилам:
1. в группе должно быть от 4 до 8 пользователей
2. каждый пользователь должен быть не более чем в одной группе
3. каждый пользователь в группе, иметь хотя бы один предпочтительный выбор в общем
4. и желательно, чтобы каждый пользователь принадлежал к группе / как можно больше
но пока не повезло. Кто-нибудь знает, как найти такое решение? Также будет высоко оценен алгоритм, который найдет хорошее решение (не лучшее).