Optprob/Назначение студентов в группы
Материал из DISCOPAL
Проверено: StasFomin 00:29, 23 декабря 2023 (UTC)
После получения оценок первой оценки ВУЗ рассматривает вопрос об улучшении успеваемости своих учеников по математике.
- Оценка каждого ученика по этому предмету известна, от 0 до 10.
- Закон о персданных конечно запрещает узнать (нам, оптимизаторам) у кого какая оценка, даже под «анонимным номером», но известно, что после разбития на категории, у нас такое грубое распределение студентов:
- v=1, «неудовлетворительно [0-5]» → 24
- v=2, «хорошо» [5,7], → 58
- v=3, «отлично» [7,9], → 11
- v=4, «блестяще» [9,10] → 7
ВУЗ решил создать учебные группы с целью, чтобы ученики с худшими оценками были связаны с учениками с лучшими оценками.
- Для этого, создается 15 учебных групп.
- В каждой группе может быть не более 10 учеников.
- В каждой группе по возможности нужно поместить ученика с «блестящей» оценкой.
- Если в группе нет «блестящих», в ней должно быть по крайней мере, не меньше отличников, чем и в любой группе с «блестящими».
- У группы есть «уровень» , где — число студентов «уровня i» назначенных в группу «j» — мы, оптимизаторы, работаем только с «уровнями» и «группами», не с отдельными студентами.
Цель состоит в том, чтобы сбалансировать уровень оценок групп, чтобы разница минимального и максимального «уровня» у групп было минимальным.
- Код решения в проекте «adv2022-course-pyomo-business-optimization» в «optprob/Назначение_студентов_в_группы.ipynb»
- Blog:Advanced_Algorithms/Разбор_задачи_«Назначение_студентов_в_группы»
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.