К содержанию
Работа

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

Система распределения учебной нагрузки профессорско-преподавательского состава, занятости аудиторий и расписания для Таганрогского радиотехнического университета. Расписание считалось генетическим алгоритмом с функцией штрафов, который различал невозможное и просто нежелательное: конфликт ресурсов отсеивался, а неудобное преподавателю время лишь ухудшало оценку варианта.

Главный экран проекта Нажмите, чтобы рассмотреть

Интерфейс воссоздан по описанию; исходные экраны не публикуются.

Система распределения нагрузки преподавателей и расписания 01 / 03
Система распределения нагрузки преподавателей и расписания — Главный экран проекта
Клиент
Таганрогский радиотехнический университет (ТРТУ)
Индустрия
Образование
Срок
7 месяцев
Команда
4 человека

Задача

Расписание вуза — это одновременное распределение пяти зависимых ресурсов: преподавателей, учебных групп, дисциплин, аудиторий и времени. Каждое назначение занимает сразу трёх участников, и любая перестановка тянет за собой цепочку конфликтов в других местах сетки.

К этому добавляются требования, которые нельзя выразить одним правилом. Есть жёсткие условия: никто не может находиться в двух местах одновременно, аудитория должна подходить по вместимости и типу занятия, все назначенные часы обязаны быть расставлены. Есть пожелания преподавателей — дни и часы, в которые им удобно работать. И есть норма нагрузки, превышение которой нужно замечать до утверждения расписания, а не в середине семестра. Если считать пожелания такими же обязательными, как физические ограничения, расписание перестаёт сходиться вообще.

Решение

Реестры и исходные данные. В системе велись аудитории, учебные группы, дисциплины и преподаватели. Для аудитории задавались вместимость, тип и оборудование, нужное для лекций или лабораторных работ. Для преподавателя — норма часов и объём занятий по видам нагрузки, включая количество назначенных студентов. В своём профиле преподаватель отмечал время, когда он точно не может работать, и отдельно — желательные дни и часы. Это разделение и стало основой алгоритма.

Генетический алгоритм. Один вариант расписания представлялся набором назначений «занятие — временной слот — аудитория», а качество варианта оценивалось суммой штрафов за нарушения:

  • жёсткие ограничения — преподаватель, группа или аудитория заняты одновременно в двух местах; использовано запрещённое преподавателем время; аудитория не подходит по вместимости или типу занятия; часть назначенных часов не расставлена;
  • мягкие ограничения — желательные дни и часы преподавателя, окна в сетке, равномерность нагрузки, удобство расписания для групп.

Конфликты ресурсов получали очень большой штраф и такие варианты фактически отсеивались. Отклонения от пожеланий, окна и неравномерная нагрузка влияли на оценку мягче. Из лучших вариантов система собирала новые комбинации, меняла отдельные назначения и постепенно приходила к расписанию с минимальной суммой штрафов.

Ручная досборка. Автоматический расчёт не претендовал на последнее слово. Если приемлемого варианта не получалось, диспетчер расставлял занятия сам, а система немедленно подсвечивала конфликты преподавателей, групп и помещений — то есть ручная правка не могла нарушить жёсткие ограничения незаметно.

Пересчёт вместо перестройки. При замене преподавателя или другом изменении система пересчитывала только затронутую часть расписания и уведомляла участников. Полностью пересобирать семестр из-за одной замены не требовалось.

Публикация. Итоговое расписание уходило в календари студентов и преподавателей, а у каждой аудитории был собственный календарь занятости. Отдельный контур следил за нагрузкой ППС: превышение допустимого порога, дефицит часов и отклонения от нормы были видны до утверждения. Отчёты показывали нормативную и фактическую нагрузку, использование аудиторий и проблемные места.

Версии и история. Варианты расписания и журнал изменений хранились, поэтому можно было держать архив семестров, вернуться к предыдущей версии и разобрать историю замен — кто, когда и почему поменял занятие.

Реализация — PHP.

Результат

Учебная нагрузка, аудитории и время занятий свелись в одно расписание вместо трёх параллельных процессов. Преподаватели получали занятия с учётом реальной доступности и по возможности своих предпочтений, студенты — актуальный календарь с аудиториями, диспетчер — автоматический расчёт и безопасную ручную корректировку с подсветкой конфликтов.

Главное изменение было в порядке обнаружения проблем: перегрузка преподавателя, недобор часов и конфликты ресурсов становились видны до окончательного утверждения, а изменения в течение семестра пересчитывались без полной ручной перестройки сетки. Пожелания преподавателей при этом перестали быть препятствием — система учитывала их ровно настолько, насколько позволяло остальное расписание.

3 ресурса в каждом назначении: преподаватель, группа, аудитория
2 класса ограничений: жёсткие конфликты и мягкие пожелания
7 месяцев срок разработки
4 человека команда
Состав проекта

Что вошло в решение

Решения и компетенции, которые использовали в проекте. По ссылкам — подробный состав каждого направления.

Ещё

Похожие проекты

Всё портфолио
Платформа управления частными школами
Работа Клиент под NDA

Платформа управления частными школами

Одна система на всю школу: административное управление, электронный дневник, учебные материалы, связь с родителями и прогресс каждого ученика. Один и тот же продукт разворачивался на сервере внутри школы и работал как облачная платформа, где собственное учебное пространство мог завести учебный центр или репетитор. Урок при этом не зависел от интернета: приложение учителя писало оценки и посещаемость в локальную очередь и досылало их, когда связь возвращалась.

Кастомная система
Платиновый Волонтёр — бренд и UX/UI сайта инклюзивной программы наставничества
Работа Благотворительный проект «Платиновый Волонтёр»

Платиновый Волонтёр — бренд и UX/UI сайта инклюзивной программы наставничества

«Платиновый Волонтёр» — благотворительная программа наставничества и профессиональной адаптации молодых людей с ограниченными возможностями здоровья и расстройствами аутистического спектра. Мы сделали бренд, логотип, информационную архитектуру, UX-сценарии и responsive-макеты публичного ресурса. Главная сложность была не в графике: на одной странице встречаются пять аудиторий с несовпадающими вопросами, и каждой нужно ответить, не скатившись в интонацию жалости.

Кастомная система
Первый разговор — бесплатно

Расскажите, что хотите изменить

За одну встречу уточним задачу и предложим следующий шаг, даже если вам нужен другой подрядчик.

Что будет на встрече
  1. 01 Опишите задачу своими словами
  2. 02 Уточним цель и ограничения
  3. 03 Предложим решение и следующий шаг
длительность 45–60 мин