Similar presentations:
преза
1.
МПГУ · ИНСТИТУТ МЕЖДУНАРОДНОГО ОБРАЗОВАНИЯАвтоматизация процесса
распределения аудиторий
по группам и
преподавателям
Направление: 09.03.02 Информационные системы и технологии
Студент: Проклов К.И., 4 курс · Научный руководитель: Сорокин А.В.
Москва, 2026
2.
ПОСТАНОВКА ЗАДАЧИАктуальность и проблема
Ручной процесс
Ежесеместровое согласование расписания ведётся в Excel и по почте. Человеческий
фактор порождает ошибки и конфликты.
Комбинаторная задача
Задача относится к классу комбинаторной оптимизации с экспоненциальным ростом
сложности при увеличении числа ограничений.
Тяжёлые решения
1С:Университет ПРОФ и Галактика ERP требуют значительной инфраструктуры и бюджета
— недоступны для малых факультетов.
Решение
Лёгкое, бесплатное решение для малых подразделений, разворачиваемое одной командой
docker compose up.
3.
ЦЕЛЬ И ЗАДАЧИЦель исследования
Цель: разработать информационную систему автоматизации распределения аудиторий по группам и преподавателям.
Задачи исследования
01
Формализовать задачу, описать ограничения и
требования
02
Обосновать выбор алгоритма распределения
03
Проанализировать существующие программные
решения
04
Спроектировать модели данных и архитектуру
системы
05
Реализовать алгоритм, интерфейс, экспорт и
проверку конфликтов
06
Развернуть через Docker Compose, провести
тестирование
4.
АНАЛИЗ РЫНКААнализ существующих решений
Решение
Стоимость
Сложность внедрения
Docker-запуск
1С:Университет ПРОФ
Высокая
Высокая
Нет
Галактика ERP
Высокая
Высокая
Нет
Tandem.University
Средняя
Средняя
Нет
FET / UniTime
Бесплатно
Низкая
Нет
Разрабатываемая система
Бесплатно
Низкая
Да
Разрабатываемая система — единственное решение, сочетающее нулевую стоимость, простоту внедрения и контейнерную
упаковку.
5.
АРХИТЕКТУРАТехнологический стек
Архитектура системы
Backend
Python 3.12, Django 5.0.6
База данных
PostgreSQL 16
Web-контейнер
Браузер
Frontend
Tailwind CSS (CDN)
Django 5.0.6 на Python 3.12
Клиентский интерфейс,
отправляет запросы
Экспорт
openpyxl
Трёхслойная
система
Система построена как монолит:
приложения
DB-контейнер
PostgreSQL 16, хранение
данных
Docker Compose
docker-compose up --build
для запуска
одно Django-приложение core и
PostgreSQL 16 в двух Dockerконтейнерах. Entrypoint
автоматически накатывает
миграции.
6.
МОДЕЛИ ДАННЫХМодели данных
Система оперирует пятью сущностями,
покрывающими все аспекты учебного расписания.
Room
Аудитория: name, capacity, room_type (regular /
computer / lecture / demo)
Group
Учебная группа: code, number, size
Subject
Предмет
Teacher
Преподаватель: full_name, флаг
no_computer_class
Lesson
Занятие: связь group + subject + teacher + room,
тип, день недели, пара
Lesson.room → SET NULL при удалении
аудитории: занятие не теряется, а
пересчитывается.
7.
АЛГОРИТМЖадный алгоритм распределения
Матрица совместимости
Тип занятия
Подходящие аудитории
Лекция
lecture, regular
Практика
regular, lecture, demo
Лабораторная
computer
Шаги алгоритма
1
Исключить аудитории, занятые в данном слоте
2
Отфильтровать по вместимости и типу аудитории
3
Учесть флаг no_computer_class у преподавателя
4
Выбрать аудиторию с минимальной подходящей
вместимостью
Результат на тестовой выборке: 57 из 57 занятий распределены, 0 конфликтов.
8.
КОНТРОЛЬ КАЧЕСТВАПроверка конфликтов и экспорт
Экспорт в Excel
Расписание выгружается в файл schedule.xlsx одной кнопкой. Используется библиотека openpyxl,
HTTP-ответ с заголовком Content-Disposition.
4 типа автоматической проверки
Одна аудитория — два занятия в одном слоте
Преподаватель назначен в два места
одновременно
Группа записана на два занятия в один слот
Вместимость аудитории меньше
численности группы
9.
РЕЗУЛЬТАТЫТестирование и результаты
68
Аудиторий
В тестовой фикстуре
57
Занятий
Все распределены
0
Конфликтов
На странице проверок
2
Минуты
До работающего приложения
Входные данные: 19 групп, 7 преподавателей, 6 предметов. Время распределения — < 1 секунды. Файл экспорта
открывается в Excel и LibreOffice без ошибок. Развёртывание на чистом сервере: ~2 минуты от git clone до
работающего приложения.
10.
ЗаключениеДостигнутые результаты
Направления развития
Разработана ИС
Жадный алгоритм с
• Авторизация и ролевая модель
автоматизации на Django
матрицей совместимости
• Импорт данных из Excel
5.0.6 + PostgreSQL 16
подтвердил гипотезу:
• Чередование чётных/нечётных недель
57/57 занятий без
• Переход на гибридный алгоритм (имитация отжига)
конфликтов
• Мобильный интерфейс
Реализованы: CRUD,
Система готова к
автораспределение, 4
эксплуатации на кафедре
типа проверок, экспорт в
без лицензионных затрат
Excel, Docker-упаковка