Программа для составления расписания «1С:Автоматизированное составление расписания. Колледж», «1С:Автоматизированное составление расписания. Колледж. (USB)» , является специальной версией конфигурации «1С:Автоматизированное составление расписания», предназначенная для использования в образовательных организациях СПО.
В продукте реализована загрузка данных из «1С:Колледж», «1С:Колледж ПРОФ», внутренний алгоритм автоматического расчета расписания реализован на внутреннем языке «1С:Предприятие 8». В этом алгоритме расчета по составлению расписания не учитываются переходы между зданиями.
В конфигурации реализованы следующие функции:
На следующем рисунке представлена основная форма для составления расписания («шахматка», строки – дни недели, пары, колонки — помещения).
На шахматке отображаются уже поставленные в расписание занятия, а специальным цветом подсвечиваются ячейки, куда может/не может быть установлено занятие из нижнего списка «неупорядоченных» занятий. Оператор может вручную перетаскивать занятия из нижнего списка в шахматку или двигать занятия по шахматке. Таким образом, рассчитав шахматку автоматически, потом имеется возможность ее изменить вручную, или, наоборот, проставив что-то вручную, остаток можно рассчитать автоматически. Система автоматически показывает все коллизии и несоблюдения условий и позволяет их быстро отрабатывать (см. рисунок ниже).
Задача составления учебного расписания является хорошо известной задачей комбинаторной оптимизации «Составление временных таблиц» (timetabling). Даже нахождение допустимого расписания является NP-трудной в сильном смысле проблемой. Поэтому при ее решении необходимо использовать математические методы решения задач комбинаторной оптимизации. Их использование позволяет сократить трудоемкость вычислений, ускорить поиск допустимого или оптимального расписания.
Задачи назначения ограниченных ресурсов и на операции (работы) и составления расписания выполнения операций рассматриваются в рамках теории расписаний. Задачи, рассматриваемые в рамках данного проекта, принято называть «задачами составления временных таблиц (Time Tabling)». Обобщенная задача формулируется следующим образом. Даны множества ресурсов R1,R2,….Rk и множество операций J1,J2,….,Jn, которые нужно выполнить. Для каждой операции задан набор ресурсов, необходимых для ее выполнения, причем ресурсы могут быть однозначно определены (фиксированные ресурсы), или может быть задано подмножество ресурсов, из которых нужно выбрать фиксированное их количество (свободные ресурсы). Каждый ресурс может быть назначен только на одну операцию в каждый момент времени.
Требуется для каждой операции выбрать «свободные ресурсы» и определить момент ее выполнения. Полученное расписание должно быть или допустимым (не нарушать ограничения на ресурсы) или оптимальным, т.е. допустимым расписанием, при котором минимизирована или максимизирована некоторая целевая функция.
В качестве примера можно привести следующую задачу составления расписания занятий в колледже, где R1 = группы студентов, R2 = преподаватели, R3 = помещения, операции = занятия. Ресурсы из R1 и R2 являются фиксированными, R3 – свободными. Имеются различные ограничения на время, когда каждый конкретный ресурс доступен (например, преподаватель Иванов И.И. может вести занятия только во Вт. и в Чт.). Требуется составить допустимое расписание учебных занятий, или оптимальное, при котором минимизируется, например, количество окон или количество используемых помещений.
Данная конфигурация разработана в сотрудничестве с лабораторией №68 «Теории расписаний и дискретной оптимизации» Института проблем управления им. В.А. Трапезникова РАН. В конфигурации реализован алгоритм решения задачи, предложенный сотрудниками лаборатории.