Проект «Умный университет»: вычислительный программный комплекс для распределения студентов СПБГЭУ по образовательным программам

Бесплатный доступ

В статье представлены основные аспекты программной реализации и составляющие части вычислительного программного комплекса для распределения студентов направления подготовки по образовательным программам СПбГЭУ.

Двусторонние рынки, распределение студентов по учебным профилям, веб-разработка, интерактивные компоненты

Короткий адрес: https://sciup.org/148332972

IDR: 148332972

Project ‘Smart university’: software for computing a matching between students and educational programs at St. Petersburg State University of Economics (UNECON)

The paper describes the main aspects of implementation and principal components of a computing software system for finding a matching between students and educational programs at St. Petersburg State University of Economics.

Текст научной статьи Проект «Умный университет»: вычислительный программный комплекс для распределения студентов СПБГЭУ по образовательным программам

В ФГБОУ ВО «Санкт-Петербургский государственный экономический университет» (СПбГЭУ) реализуется проект «Умный университет», основной целью которого является автоматизация некоторых сторон деятельности университета, связанных, прежде всего, с учебным процессом. Первым этапом этого проекта является создание вычислительного программного комплекса для решения задачи о распределении студентов направления подготовки/специальности на образовательные программы (профили). В СПбГЭУ есть ряд направлений подготовки (например, 38.03.01 «Эконо-

ГРНТИ 28.17.19

EDN UBHJCO

Екатерина Валерьевна Глазунова – аналитик лаборатории методов оптимизации и искусственного интеллекта, ассистент кафедры прикладной математики и экономико-математических методов Санкт-Петербургского государственного экономического университета. ORCID 0000-0001-9936-8961

Софья Дмитриевна Ребрилова – младший научный сотрудник лаборатории методов оптимизации и искусственного интеллекта, старший преподаватель кафедры прикладной математики и экономико-математических методов Санкт-Петербургского государственного экономического университета. ORCID 0009-0008-5100-127X

Григорий Морицович Фридман – доктор технических наук, профессор, заведующий кафедры прикладной математики и экономико-математических методов, заведующий лабораторией методов оптимизации и искусственного интеллекта Санкт-Петербургского государственного экономического университета. ORCID 0000-0001-9876-4276

мика», 38.03.02 «Менеджмент», 41.03.01 «Зарубежное регионоведение»), студенты которых, в соответствии с Регламентом распределения студентов направления подготовки/специальности по образовательным программам (профилям) [4], в определенные сроки выбирают образовательную программу (профиль) для прохождения дальнейшего обучения.

Для этого каждый студент в рамках единого «голосования» формирует в своем личном кабинете список нестрогих предпочтений относительно заранее известного множества профилей, т.е. проводит их ранжирование по приоритетам от наиболее к наименее предпочтительному. Каждый профиль, в свою очередь, также формирует предпочтения относительно студентов. Эти предпочтения вычисляются на основе информации об академической успеваемости студентов, подлежащих распределению на данный профиль, по дисциплинам за все предшествующие голосованию семестры в соответствии с учебным планом данного направления подготовки. Много лет функционирующая в СПбГЭУ балльнорейтинговая система (БРС) [5] обеспечивает открытый доступ к такой информации. В процессе вычислений могут быть учтены и весовые коэффициенты, которые профили назначают дисциплинам.

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

  •    исключить «конфликты зависти». Это означает, что в распределении не должно быть ни одной пары (профиль р - студент s') такой, что на профиль р зачислен студент с более низким, чем у студента 5 , рейтингом, при этом студент s зачислен на профиль менее предпочтительный для него, чем профиль р. Таким образом, университет неукоснительно следует правилу: «Никто ниже тебя в рейтинге не попадет на тот профиль, куда ты хотел, но не попал»;

  •    исключить, а при невозможности этого, минимизировать число «конфликтов коалиции студентов». Это означает, что в распределении не должно быть ни одной пары (профиль р - множество студентов с ), такой что для профиля р может быть сформирована еще одна учебная группа, при этом число студентов, зачисленных на профили, менее предпочтительные для них, чем профиль р, оказалось не меньше, чем минимально допустимый размер учебной группы профиля р. Таким образом, университет неукоснительно следует правилу: «Студентов, обоснованно недовольных тем, что не попали на выбранный ими профиль, должно быть меньше минимального размера группы этого профиля»;

  •    минимизировать число «конфликтов наличия места в группе». Это означает, что в распределении должно быть как можно меньше пар (профиль р - студент s) таких, что в одной из учебных групп профиля р есть свободные места (ее размер меньше максимально допустимого), при этом студент s зачислен на профиль менее предпочтительный для него, чем профиль р. Таким образом, университет неукоснительно следует правилу: «Студент, обоснованно недовольный тем, что не попал на выбранный им профиль, не может указывать на не полную укомплектованность группы этого профиля».

Цель университета – сформировать распределение, наиболее справедливое как с точки зрения студентов, так и профилей, обеспечив при этом максимальный уровень удовлетворенности студентов при минимизации числа конфликтов. И у студентов, и у профилей не должно быть причин обоснованно заявлять о своем недовольстве распределением.

Математическая модель для решения задачи распределения студентов по профилям описана в статьях [1, 3]. Алгоритмы распределения по учебным группам студентов, зачисленных на данную образовательную программу, представлены в [2]. В данной статье описывается вычислительный программный комплекс для получения числовых результатов, и рассматриваются два технологических стека решения задачи распределения студентов по профилям, проводится их сравнение с точки зрения производительности, масштабируемости, стоимости владения и возможности коммерциализации.

Общая схема вычислительного комплекса

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

  •    математическое ядро, которое предназначено для проведения расчетов, связанных с решением задач смешанного программирования, а также для формирования и выгрузки числовых результатов в заранее оговоренном формате;

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

Рис. 1 . Общая схема вычислительного комплекса

Технологические стеки

Первый технологический стек был разработан и внедрен в информационную систему СПбГЭУ в 2023 году. Он включает в себя следующие языки программирования и программные продукты:

  •    Wolfram Language и Wolfram Mathematica (cм.: https://www.wolfram.com/language ), с помощью которых реализован интерфейс для импорта исходных данных из базы данных университета, настройки параметров расчета, формирования математической модели с заданными ограничениями и целевыми функциями, запуска оптимизатора, генерирования финального отчета с визуализацией результатов проведенных вычислений;

  •    MS Excel для хранения в файловой системе таблиц с исходными данными и результатами расчетов;

  •    IBM ILOG CPLEX Optimization Studio [8] – оптимизатор для поиска решения задачи смешанного программирования.

В рамках этого стека в 2023 году был разработан и внедрен в информационную систему СПбГЭУ вычислительный комплекс для решения задачи о распределении студентов по профилям. Этот комплекс был использован в 2023 и 2024 годах для получения наилучшего распределения студентов направления «Экономика» и «Менеджмент». На все используемые виды программного обеспечения у университета имелась либо неограниченная, либо академическая (для использования в учебных заведениях) лицензия.

Во втором технологическом стеке, переход к которому был выполнен в течение весны и лета 2025 года, язык программирования Wolfram Language заменен на Python [11]. Причиной этого стала необходимость приобретения отдельной лицензии Wolfram Mathematica для планируемого коммерческого и промышленного применения, что повысило бы стоимость владения и снизило возможности масштабирования продукта. Также совершен переход от коммерческого оптимизатора IBM ILOG CPLEX к открытому оптимизатору COIN-OR [6], который не обладает, конечно же, эффективностью и быстродействием коммерческого оптимизатора, однако позволяет найти оптимальное решение задачи за приемлемое время. Кроме того, в рамках второго стека был разработан новый интерфейс пользователя с расширенным функционалом. Для его создания выбрана библиотека Streamlit [5], дополненная возможностями библиотек streamlit-elements и st_aggrid. В рамках нового вычислительного комплекса были проведены расчеты и получены числовые результаты для распределения студентов направлений

«Экономика», «Менеджмент» и «Зарубежное регионоведение». Эти результаты были успешно верифицированы результатами расчетов в предыдущей версии вычислительного комплекса.

Взаимодействие с интерфейсами пользователя в технологических стеках

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

Интерфейс расчетного модуля технологического стека 1 (далее – Интерфейс_w) состоит из одной страницы, отвечающей и за загрузку исходных данных, и за настройку параметров проводимого расчета (см. рисунок 2). Особенность работы с интерфейсом заключается в отсутствии гибкости при формировании исходных данных: пользователь, используя выпадающие списки, может взаимодействовать только с ограниченным, заранее подготовленным с помощью системы Wolfram Mathematica набором исходных данных, сформированным в соответствии с заданным множеством направлений подготовки и годов поступлений и хранящимся в файловой системе.

Рис. 2. Фрагмент расчетного модуля Интерфейса_w

Расчетный модуль интерфейса, созданного в рамках технологического стека 2 (далее – Интер-фейс_s), состоит из трех вкладок: исходные данные, результаты голосования, расчет. Переход между страницами реализован через пользовательское меню. Взаимодействие пользователя с Интерфейсом_s начинается с импорта исходных данных. Программа предусматривает два источника данных для проведения расчетов: база данных университета (фрагмент базы данных, отвечающий за информацию, необходимую для проведения расчета, отображен на рисунке 3) и локальная файловая система. Предпочтения студентов по профилям, сформированные в результате голосования в личных кабинетах, записываются в базу данных университета в таблицу «Приоритеты профилей». Информация по академической успеваемости студентов к моменту проведения расчетов хранятся в таблице «Оценки студентов». На основе этого строятся ранжированные списки, т.е., фактически, предпочтения образовательных программ относительно студентов.

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

Факультеты

Код факультета              <Р

Наименование факультета

Код студента

<Код профиля

Приоритет

Дата голосования

Профиль

Код профиля

Наименование профиля

Код учебного плана

Код студента

Код учебного плана

Курс

Форма обучения

Основа обучения

Код студента ■ - -<Код профиля

Номер группы

Рис. 3. Фрагмент базы данных университета для распределения студентов по профилям

Окно импорта исходных данных (см. рисунок 4) также позволяет выбрать: для какого этапа голосования будет проводиться расчет – предварительного или итогового. Одно из различий между этапами заключается в том, что студент может получить бонус за сохранение своих приоритетов по профилям: регламент [4] предусматривает возможность добавления баллов в том случае, если итоговые предпочтения студента не изменились по сравнению с предварительным опросом. При этом интерфейс позволяет указать, какие именно результаты голосования рассматриваются как предварительные. Необходимо также определить те дисциплины, на основе академической успеваемости по которым будут вычислены ранжированные списки студентов.

.■4И©ЙИ

Исходные данные

Результаты голосования

Расчет

2023             v Бакалавриат - Экономика (очная)                         v Файловая система v 29.07.202512.00.00

Этап голосования

Итоговый этап

Даты голосования

01.05.2025 -15.05.2025

Дата и время предварительного расчета

28.07.2025 12.00.00

Наменование дисциплины

Q Бонус

  • □    Общая экономическая теория

  • □    Философия

  • □    Линейная алгебра

Q Математический анализ

  • □    Общая экономическая теория

Q Иностранный язык

1 Ф Семестр         2 Ф Форма контроля

Экзамен

Экзамен

Экзамен

Экзамен

Курсовая работа

Зачет

Загрузить результаты голосования        Результаты голосования загружены!

Рис. 4. Фрагмент расчетного модуля Интерфейса_s: страница загрузки исходных данных

Интерактивная таблица со списком таких дисциплин реализована с помощью библиотеки st_aggrid и представляет собой React Data Grid компоненту, которая фиксирует и записывает взаимодействие пользователя с таблицей (процесс выбора дисциплин, влияющих на рейтинг). После загрузки исходных данных интерфейс отображает результаты расстановки студентами их предпочтений по профилям, и появляется возможность перейти к настройкам расчета.

Вторая вкладка «Результаты голосования» визуализирует сводную таблицу предпочтений студентов по профилям: для каждой образовательной программы и каждого ее возможного положения в списке приоритетов вычисляется число студентов выбранной основы обучения (бюджет, контракт, «го-слиния») поставивших данный профиль на данную позицию в рейтинге. На странице также отображаются графики с результатами голосования студентов (рисунок 5): верхняя строка графиков для каждого профиля показывает, сколько студентов выбрали его под тем или иным приоритетом, нижняя – средний балл таких студентов. При анализе графиков у пользователя есть возможность выбирать, какую именно информацию отображать по горизонтальной и вертикальной осям: наименование профиля или место в рейтинге.

Рис. 5. Фрагмент расчетного модуля Интерфейса_s. Страница результатов голосования

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

Вкладка меню «Расчет» позволяет настроить следующие параметры проводимого расчета:

  •    установить минимальное количество студентов, которые должны выбрать профиль первым приоритетом, для «открытия» этого профиля (для создания хотя бы одной учебной группы);

  •    установить количество бонусных баллов, начисляемых студентам, чьи предпочтения по профилям совпали на предварительном и итоговом этапах голосований;

  •    для каждого профиля установить диапазоны числа групп, размеров одной группы и размеров нескольких групп (если в этом есть необходимость);

  •    установить допустимый диапазон общего числа вновь формируемых групп, которые могут быть открыты на направлении подготовки;

  •    определить критерий оптимизации при распределении студентов по группам, если это распределение необходимо осуществить;

  •    выбрать критерии оптимизации для решения задачи о распределении студентов по образовательным программам и установить их иерархию;

  •    определить основы обучения, для которых должны быть исключены «конфликты зависти»;

  •    установить правила распределения на профили тех студентов, которые не проголосовали ни на предварительном, ни на итоговом этапе решения задачи.

Результатом взаимодействия пользователя как с Интерфейсом_w, так и с Интерфейсом_s является удовлетворяющие всем заданным параметрам расчета распределение студентов по образовательным программам и, внутри профилей, распределение по академическим группам (если эта опция выбрана пользователем и групп несколько).

Для каждого проведенного с помощью Интерфейса_s расчета в директории, соответствующей году поступления и направлению подготовки, создается своя папка, наименование которой определено датой и временем проведения расчета, со следующим набором файлов:

  •    «Веса дисциплин.xlsx» – содержит информацию, с каким весом каждая дисциплина учитывается при вычислении рейтинга студента;

  •    «Параметры расчета.xlsx» – хранит информацию о настройках проведенного расчета: введенные пользователем ограничения и выбранные целевые функции;

  •    «Распределение по группам.xlsx» – файл появляется только тогда, когда пользователь выбрал способ распределения студентов по группам, и содержит информацию о назначении студентов на профиль и определение его в группу профиля;

  •    «Распределение по профилям.xlsx» – содержит информацию о том, на какой профиль был распределен каждый студент, и его вычисленный в процессе решения рейтинг;

  •    «Справка.xlsx» – дополнительная информация о направлении: наименование профилей, учтенные при распределении дисциплины, расшифровка для полученных оценок;

  •    «Студенты.xlsx» – содержит информацию о результатах голосования студентов, их оценках и баллах по выбранным дисциплинам;

  •    «Таблица конфликтов.xlsx» – содержит информацию о результатах проведенного расчета с точки зрения степени справедливости полученного распределения по различным критериям.

Для каждого расчета, который проведен с помощью Интерфейса_w, в файловой системе также создается папка, хранящая результаты вычислений в следующих файлах:

  •    «Общий рейтинг.xlsx» – содержит информацию о том, какое положение в рейтинге занимает студент для каждого профиля;

  •    «Распределение.xlsx» – содержит информацию о том, как распределились студенты по профилям и группам;

  •    «Отчет.nb» – запускает, при открытии, отчетный модуль Интерфейса_w для визуализации результатов полученного распределения.

Отчетные модули интерфейсов позволяют отобразить сводную информацию по каждому проведенному расчету, включая настройки, визуализировать результаты распределения студентов по профилям и группам внутри профиля, а также отображать краткую статистику по качеству полученных числовых результатов (например, количество конфликтов в распределении). Фрагменты результатов распределения, отображенных с помощью графических интерфейсов, представлены на рисунках 6 и 7.

Рис. 6. Фрагмент отчетного модуля Интерфейса_w. Результаты расчета распределения по профилям и группам

Рис. 7. Фрагмент отчетного модуля Интерфейса_s. Результаты расчета распределения по профилям

Различие в работе интерфейсов состоит в том, что Интерфейс_s подгружает данные по уже проведенным расчетам, а Интерфейс_w подразумевает создание отчетного модуля для каждого расчета с заранее импортированными распределением.

Краткое описание математических ядер в технологических стеках

Вся информация, собранная в процессе работы пользователя с интерфейсом (Интерфейс_w либо Ин-терфейс_s), передается в математическое ядро, которое формирует многокритериальную задачу смешанного программирования и передает ее программе-оптимизатору (соответственно, IBM ILOG CPLEX или COIN-OR) в виде вектора неизвестных, матрицы коэффициентов и вектора правых частей условий-ограничений, а также коэффициентов целевых функций. Взаимодействие с оптимизатором выстроено через библиотеку PuLP [11], которая создает файл в формате.lp и передает его выбранному оптимизатору.

В задаче о назначении студентов на профили используются следующие критерии оптимизации:

  •    максимизация общей удовлетворенности студентов;

  •    максимизация общей удовлетворенности студентов контрактной формы обучения;

  •    минимизация числа конфликтов типа «конфликт наличия места в группе»;

  •    минимизация числа пар профиль-студент, участвующий в «конфликтов коалиции студентов»;

  •    максимизация числа открытых профилей, то есть профилей, для которых создана хотя бы одна учебная группа.

Задача решается при следующих ограничениях:

  •    каждый студент назначен на ровно один профиль;

  •    размеры профилей (как по числу групп, так и по количеству студентов в группе) удовлетворяют заданным размерам;

  •    запрет «конфликтов зависти»;

  •    определение «конфликтов коалиции студентов»;

  •    определение «конфликтов наличия места в группе»;

  •    определение открытых профилей.

Основной способ решения оптимизационной задачи – метод ветвей и сечений [9]. Поскольку известна иерархия критериев оптимизации, используется метод последовательных уступок [10]. Задача о разбиении студентов по учебным группам внутри профилей решается (если это требуется), в том числе, жадными алгоритмами, в силу высокой вычислительной сложности решения задач в точной постановке. Пользователь может выбрать один из четырех критериев оптимизации:

  •    максимизация схожести учебных групп по суммарному баллу студентов;

  •    максимизация схожести учебных групп по среднему баллу студентов;

  •    максимизация однородности успеваемости студентов внутри учебных групп;

  •    максимизация схожести разбиения студентов на группы на предыдущее.

Заключение

В статье описан внедренный в образовательную деятельности СПбГЭУ вычислительный комплекс, предназначенный для решения задачи о распределении студентов направления подготовки по образовательным программам. Приведенное сравнение двух примененных технологических стеков показывает, что стек, построенный на библиотеках языка Python и открытого оптимизатора COIN-OR, обладает большими возможностями масштабирования и дальнейшей коммерциализации, благодаря открытому программного коду используемых в проекте библиотек и более высокой кадровой доступности специалистов, которые способны осуществлять поддержку и развитие проекта.