Каждый год учителя в школе должны организовывать занятия для учеников на следующий год. Студенты выбирают количество друзей, с которыми они хотели бы быть (по порядку). Это может варьироваться, но в настоящее время ограничено шестью именами. Школьная политика заключается в том, что у каждого ученика должен быть хотя бы один друг - очевидно, чем предпочтительнее этот друг, тем лучше. Учитывая, что каждый из N учеников имеет ранжированные / взвешенные предпочтения одноклассников, как их можно оптимально разделить на классы C. Другие ограничивающие факторы будут:
- Размеры классов должны быть максимально похожими
- Пол должен быть достаточно равномерно распределен
Как любой алгоритм может быть изменен, чтобы включить «не может быть со студентом X» - предполагая, что достаточно большой отрицательный рейтинг / взвешивание может обеспечить это?
Казалось бы, эта проблема лучше всего решается компьютером, освобождая время для более важных задач. Это не проблема курсовой работы, а проблема реального мира, в которой мне было бы интересно найти и понять решение. Я нашел много сообщений о группировке людей по предпочтительной группе, но не оценил членов группы.
Пожалуйста, сообщите, если это неправильный форум.