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

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

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

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

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

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

Задача

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

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

Решение

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

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

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

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

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

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

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

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

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

Результат

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

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

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

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

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

Ещё

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

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

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

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

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

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

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

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

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

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

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