РА Ц И О Н А Л Ь Н О Е ПОСЕЩЕНИЕ УЧЕБНЫХ ЗАНЯТИЙ В Ы П О Л Н И Л И С Т УД Е Н Т Ы Г Р У П П Ы 1 3 0 5 Н О С И Л К И Н Н И КОЛ А Й , Т Р У Н О В Е ГО Р , Ч А Д И Н А А Л Ё Н А , А З А М АТ О В А А Л ТА Н А •ЦЕЛЬ РАБОТЫ: С О З Д А Н И Е П Р И Л ОЖ Е Н И Я , П Р Е Д С ТА В Л Я Ю Щ Е Г О С О Б О Й С И Н Х Р О Н И З И Р О В А Н Н У Ю С РА С П И С А Н И Е М С И С Т Е М У , КО Т О РА Я , О С Н О В Ы В А Я С Ь Н А Р Я Д В В ОД И М Ы Х К Р И Т Е Р И Е В , В Ы Д А Е Т Н А И Б ОЛ Е Е РА Ц И О Н А Л Ь Н Ы Й В Ы В ОД О П О С Е Щ Е Н И И УЧЕБНЫХ ЗАНЯТИЙ. НАЗНАЧЕНИЕ • Разгрузить день работающему студенту • Выделить время студентам, занимающимся внеучебной деятельностью, для своего хобби • Узнать, какие занятия можно пропустить, чтобы не потерять важных знаний • получение расписания занятий из файла; • получение исходной информации по каждому из предметов • постановка каждому предмету его индекса значимости( исходя из дополнительных данных таких, как: наличие экзамена, проверка присутствующих, профильность и т. д) • вывод оптимизированного расписания ТРЕБОВАНИЯ К ПРОГРАММЕ • Предусмотреть контроль вводимой информации и блокировку некорректных действий пользователя при работе с системой • Система должна работать на IBM совместимых персональных компьютерах • Система должна работать под управлением операционной системы Windows'7 и выше ТРЕБОВАНИЯ К НАДЕЖНОСТИ РЕАЛИЗАЦИЯ ПРЕДСТАВЛЕНИЕ ДАННЫХ • На вход получаются файлы xlsx с расписанием и JSON с дополнительной информацией по каждому из предметов • В файле находится расписание на неделю • Дополнительная информация: время пары, профильность предмета, тип пары(лекция, практика), оценка преподавателя, наличие проверки посещаемости, наличие экзамена и т. д. • На выходе получается xlsx файл с оптимизированным расписанием. АЛГОРИТМ РАБОТЫ • Загружаем или вводим файл с расписанием • Считываем из файла параметры предметов • Умножаем веса на значения параметров для каждого предмета • Учитываем день недели и номер пары • По итоговой оценке важности пары, исключаем или оставляем ее в расписании • Вывод расписания • Пользователь может откорректировать расписание при желании ОПРЕДЕЛЕНИЕ ВЕСОВ ПАРАМЕТРОВ • Используем набор данных для обучения, собранный по опросам • Используем множественную линейную регрессию. Для определения весов решаем нормальное уравнение по минимизации среднеквадратичной функции • На тестовом наборе определяем среднеквадратичную ошибку, чтобы оценить качество модели 1 𝑀𝑆𝐸 = 𝑁 𝑁 𝑦𝑖 − 𝑦𝑖 𝑖=1 2 Х𝑇 Х𝑤 = Х𝑇 𝑦 ДИАГРАММА ПРЕЦЕДЕНТОВ ДИАГРАММА IDEF0 РАСЧЕТ ВЕСОВ ФАЙЛОВАЯ СТРУКТУРА Исходные данные На вход подаются расписание группы 1305 в формате xlsx и информация по предметам в файле json. Далее расписание сохраняется в программе и после нажатия кнопки оптимизировать расписание, происходят изменения. На выходе выдается оптимизированное расписание. ПРОВЕДЕНИЕ ЭКСПЕРИМЕНТА • Выходные данные ВЫВОД • Оптимизированное расписание совпадает с тем, которого придерживалась большая часть группы на экспериментальной неделе. Исключением стало практическое занятие по ОЭВМ из-за того, что этот день был единственным для сдачи лабораторной, но такие исключительные случаи пользователь может потом обработать, выбрав в специальном окне пары, которые он точно не хочет\не может пропустить.