Современные информационные технологи / 3. Программное
обеспечение
к.т.н. Супруненко О.А., магистрант Корольчук А.О.
Черкасский национальный университет имени Богдана
Хмельницкого, Украина
ОСОБЕННОСТИ
РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СОСТАВЛЕНИЯ РАСПИСАНИЯ ВУЗа
Задача составления расписания ВУЗа
заключается в упорядочении некоторого списка работ по времени, месту
(аудиторный фонд), исполнителям (преподаватели) и участникам (студенты) работ [1].
В ходе составления расписания также приходится учитывать неоднородность работ
(лекции, практические и лабораторные занятия), что вызывает необходимость
расстановки приоритетов, в частности по времени их проведения. Например,
лабораторное занятие не должно ставиться в расписание после того, как будет
прочитана лекция, содержащая соответствующий учебный материал.
Сложность задачи также добавляет то
обстоятельство, что исполнители и участники работ могут быть заняты в других
работах на некоторые отрезки времени. Наименее часто это встречается в начале
заполнения шаблона расписания, по мере решения задачи частота таких ограничений
нарастает. Также есть и другие ограничения, например, необходимость проводить
лабораторное занятие в соответствующей лаборатории.
Большинство задач теории расписаний есть NP-сложными задачами, потому требуют неприемлемо
большого времени решения в случае большой размерности. Задача составления
расписания ВУЗа относится к задачам упорядочивания по типу решения [1] и многокритериальным
задачам сетевого планирования по типу целевой функции, также она
характеризуется большой размерностью. При решении данной задачи в работе применён,
приближенный – метаэвристический метод [2] с формированием оценок свободы
размещения каждого занятия в шаблоне расписания. Фактически основная задача
разбивается на подзадачи и решается путём полного перебора вариантов размещения
занятия в расписании, причём таких вариантов тем меньше, чем больше ограничений
по входным данным [2]. Таким образом, получаем допустимый вариант расписания
ВУЗа.
Оценка качества размещения занятия в
расписании считается по формуле:

где Ril
– оценка качества размещения i-го
занятия на l-й позиции шаблона; kjl – значение оценки размещения
занятия в расписании на l-й позиции, полученное
по j-му критерию; wj – весовой коэффициент j-го
критерия оценки качества; m – количество критериев оценки качества.
Также сформированы логические функции,
которые контролируют ограничения задачи. Например, функция исчезновение “окна” в
расписании группы (когда занятие ставится между 1-й и 3-й размещёнными в
расписании парами, вследствие чего в расписании возникает последовательность из
3-х пар подряд) равняется 1, если после добавления занятия в данную позицию, в
расписании группы исчезает “окно”; 0 – в противоположном случае:

где
– булева функция,
истинная в том случае, если в l-й позиции расписания у преподавателя есть занятие;
– условие
существования единственного занятия;
– условие существования двух занятий в распи-сании;
– функция, которая
возвращает номер пари l позиции расписа-ния;
– функция, которая
возвращает номер пари 3 позиции расписания.
При формировании входных данных для
составления расписания составляются списки занятий, которые ранжируются по
приоритетности расстановки. В связи с этим велика вероятность, что найденное
решение задачи не будет оптимальным. Поскольку критерии ранжирования занятий
также являются ограничениями задачи, при их учёте получим допустимый [1]
вариант решения за достаточно ограниченное время, что является приемлемым.
Вариант реализации задачи составления
расписания ВУЗа можно разделить на два этапа: 1) на основе рабочих учебных
планов групп (на семестр) формируется список занятий для размещения в
расписании, для каждого занятия рассчитывается оценка свободы размещения
занятия, 2) каждое занятие обрабатывается в порядке увеличения
рассчитанной оценки, также для каждого занятия рассчитываются дополнительные
оценки качества размещения занятия в расписании, из которых выбирается
наибольшая.
При использовании данного алгоритма для
составления расписания на весь семестр используется модификация, которая
учитывает повторяемость занятий на соседних неделях [1]. В начале работы
исключаем из списка допустимых для размещения занятий дат праздничные и
выходные дни. Рассчитываем количество рабочих дней в семестре по дням недели.
Далее составляем расписание для первой недели с учётом ограничений задачи. При
составлении расписания на последующие недели для каждой группы, учитываем и
стараемся не перемещать занятия, которые были на предыдущей неделе и ещё не
вычитались полностью (учитывается модульный принцип вычитки занятий).
В результате функционирования
предложенного решения большинство занятий размещаются в расписании, но остаётся
часть занятий (при жёстких ограничениях – до 10%), которая не расставлена
реализованным алгоритмом. Эти занятия размещаются под основным шаблоном
расписания в колонках соответствующих студенческих групп. Дальнейший поиск мест
размещения этих занятий в расписании проводиться в диалоговом режиме с
пользователем, получающим доступ к редактированию составленного варианта
расписания.
Литература:
1.
Лазарев А.А., Гафаров
Е.Р. Теория расписаний. Задачи и алгоритмы. – МГУ им. Ломоносова. [Электронный
документ]. Режим доступа: http://physcontrol. phys.msu.ru/materials/PosobieLazarev/TeorRasp.pdf.
Просмотрено 29.11.14.
2.
Graham R.L., Lawler E.L., Lenstra J.K., Rinnooy Kan A.H.G. Optimization
and approximation in determenistic sequencing and scheduling: a servey // Ann.
Descrete Optimization. 1979. V. 2. P. 287-325.