Детальная информация

Название Программа для локальной оптимизации готового расписания: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Local optimization tool for an already published schedule
Авторы Машкин Андрей Алексеевич
Научный руководитель Зайцев Игорь Владимирович
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2026
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика расписание ; локальная оптимизация ; слияние интервалов ; поиск свободных слотов ; кэширование ; Redis ; Go ; REST API ; СПбПУ ; ruz ; schedule ; local optimization ; interval merging ; free-slot search ; caching ; SPbSTU
Тип документа Выпускная квалификационная работа бакалавра
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.04
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-3481
Права доступа Доступ по паролю из сети Интернет (чтение)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\42674
Дата создания записи 21.08.2026

Разрешенные действия

Действие 'Прочитать' будет возможно после подготовки администраторами необходимых файлов

Группа Анонимные пользователи
Сеть Интернет

Работа посвящена разработке инструмента, который автоматически находит допустимые слоты для переноса занятия в действующем расписании СПбПУ и ранжирует их на основе заданных пользователем предпочтений. Практическая цель — сократить время, которое диспетчер или преподаватель тратит на согласование локальных изменений, за счёт интерактивного сервиса с быстрым откликом. Метод проведения работы: сведение базового сценария вставки занятия к перечислению слотов, допустимых по жёстким ограничениям — сортировка и однопроходное слияние интервалов занятости (с поддержкой объединения занятости нескольких групп); кэширование сырых ответов внешнего API с фоновым прогревом. Дополнительно реализованы операторы локального поиска move/swap/chain с серверным ранжированием по числу образующихся окон; полная агрегированная функция качества Q из мягких ограничений предложена как теоретическая модель (глава 2) и в текущей версии не задействована. Результаты работы: разработана трёхзвенная веб-система (SPA на React/TypeScript, HTTP API на Go, кэш Redis, фоновый прогреватель кэша) с контейнеризацией и непрерывной интеграцией. Параллельная выборка распараллеливает загрузку расписаний преподавателя и групп (ожидание определяется самой медленной из загрузок, а не их суммой). Реализованы поиск общего окна для преподавателя и до 4 групп одновременно, операторы локального поиска move/swap/chain с ранжированием по окнам (delta_windows) и эндпоинт GET /api/pairs для UX-сценария выбора исходной пары. На холодном кэше первый запрос остаётся длительным, так как доминируют сетевые обращения к RUZ, включая последовательную проверку аудиторий; целевое нефункциональное требование (время отклика типового запроса менее одной секунды) достигается на тёплом кэше — при попадании в Redis отклик составляет единицы миллисекунд, что обеспечивается кэшем и фоновым прогревом. Область применения результатов: диспетчеризация и оперативное планирование расписания в вузе; инструмент для преподавателей и студентов СПбПУ. Выводы: поставленные задачи решены; предложенная комбинация слияния интервалов, подбора аудиторий по смежным парам и кэширования с фоновым прогревом обеспечивает на тёплом кэше интерактивное время отклика, недостижимое при ручном поиске.

This work focuses on the automated discovery and prioritization of feasible time-slot and room assignments for individual classes within the live SPbSTU timetable, guided by user-specified soft constraints. The objective is to minimize the manual effort involved in making localized schedule adjustments through a service that operates with interactive response times. Method: the base scenario of inserting a class is reduced to enumerating the slots that are feasible under hard constraints — sorting and a single-pass merge of busy intervals (supporting the union of busy intervals across several groups); raw upstream API responses are cached with background warming. Move/swap/chain local-search operators are additionally implemented with server-side ranking by the number of induced free-time windows; the full aggregated quality function Q over soft constraints is proposed as a theoretical model (Chapter 2) and is not yet wired in. Results: a three-tier web system was implemented (a React/TypeScript single-page application, a Go HTTP API, a Redis cache, and a background cache warmer) with containerization and continuous integration. Parallel fetching makes the wait depend on the slower of the schedule loads rather than their sum; the API supports searching a common free window for one teacher and up to four groups, returns ranked move/swap/chain variants, and exposes a GET /api/pairs endpoint for the source-pair picker UX. On a cold cache the first request is still slow because upstream RUZ calls dominate (including sequential room checks). The target non-functional requirement (a typical request below one second) is met on a warm cache: on a Redis hit the response is a few milliseconds, sustained by background warming. Application area: schedule dispatching and operational planning at a university; a tool for SPbSTU teachers and students. Conclusions: the defined tasks are solved; the proposed combination of interval merging, a locality technique, and caching with background warming delivers, on a warm cache, an interactive response time unattainable with manual search.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Интернет Авторизованные пользователи СПбПУ
Интернет Анонимные пользователи
...