Автоматизация построения расписания экзаменов вуза с использованием генетического алгоритма

Автоматизация построения расписания экзаменов ВУЗа с использованием генетического алгоритма

М.Ю. Жукова, В.М. Аль-Габри Донской государственный технический университет, Ростов-на-Дону

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

Ключевые слова: генетический алгоритм, расписание, экзамены, ВУЗ, учебная группа. Введение: В настоящее время достаточно большое количество слушателей различных курсов и образовательных программ по итогам зачисления в учебные заведения, в процессе обучения, а также на этапе квалификации, имеют необходимость пройти через экзаменационные испытания. Процесс укрупнения вузов, реализуемый в настоящее время в РФ, приводит их к значительному территориальному росту, увеличению контингента обучающихся и профессорско-преподавательского состава. Это, в свою очередь, обуславливает рост общего числа экзаменов сессии и увеличивает сложность решения задачи формирования расписаний. Кроме того, задача осложняется наличием у каждого вуза своих специфических требований, что делает разработку универсального метода практически невозможным [1].

Российская образовательная система, традиционно ориентированная на технологию обучения в академических группах, находится только в начале пути индивидуализации. В связи с этим, актуальность решения задачи разработки расписания экзаменов, в процессе развития российского образования, будет только возрастать [2].

Формально расписание экзаменов это отношение, построенное на прямом произведении множеств объектов: учебная группа, преподаватель,

J

дисциплина [3]. Для решения задачи формирования расписания экзаменов принимается разные методы и технологии, основанные на классических методах и алгоритмах целочисленного программирования, методах раскраски графов. Кроме того, применяются методы: полного перебора, ветвей и границ, а также эвристические методы, в том числе основанные на генетических алгоритмах [4].

Цель данной работы заключается в разработке метода формирования рационального расписания экзаменов в высшем учебном заведении. Постановка задачи

С = |/ = 1, пс } = {{ng, сШ )г |/ = 1, пс }

- множество учебных групп, где ng - название группы, сП - количество студентов в группе;

"" ' ""

T = {ti i = 1, nT } = {(id, surn, name, part) i = 1, nT }

множество преподавателей;

Ds = {dst i = 1, nDs}

множество дисциплин;

DT = {dtt i = 1, nDT } = {(dts, dte )i i = 1, nDT }

- множество диапазонов дат, для проведения экзаменационной сессии. Множество временных интервалов для расписания экзаменов можно представить в виде:

Dtm = {

где date - дата из диапазона (dtstart, dtend)i, tm - временной интервал, принадлежащий дню, когда может быть проведен экзамен (tm=1 - первая половина дня, tm=2 - вторая половина дня экзамена).

Множество учебных аудиторий можно представить в следующем виде:

r = {r i = 1, nR} = {

где пг - название аудитории, rns - вместимость, № - тип аудитории; При формировании расписания экзаменов необходимо учитывать ряд требований, предъявляемых к этому расписанию. Требования можно определить как жесткие и мягкие ограничения. Под жесткими ограничениями будем рассматривать требования, нарушение которых приводит к недопустимости использования построенного расписания. К мягким отнесем рекомендации и пожелания [5]. В таблице 1 рассмотрены ограничения с их весовыми коэффициентами.

Таблица 1. Требования к расписанию экзаменов

№ Ограничение Весовой коэффициент

1. Жесткие ограничения

1.1. В одной учебной группе не может быть более одного экзамена в один и тот же временной интервал кп

1.2. Один преподаватель не может проводить более одного экзамена в один и тот же временной интервал кп

1.3. Одна аудитория не может быть использована для проведения более чем одного экзамена в один и тот же временной интервал к1з

1.4. В одной учебной группе минимальный временной промежуток между экзаменами составляет 2 дня к}4

1.5. Количество посадочных мест в аудитории должно быть больше или равно количеству студентов в группе к15

2. Мягкие ограничения

2.1. Для учебной группы учитывается порядок следования экзаменов, прогнозирующий наилучшую успеваемость [6] к21

2.2. В одной учебной группе минимальный временной промежуток между экзаменами не менее 3 дней к22

2.3. Количество свободных посадочных мест в аудитории не превышает 20% от ее общей вместимости к23

2.4. Один преподаватель проводит не более одного экзамена в один день к24

Объемы нарушений ограничений определяются по следующим формулам:

J

ng ne

C11

YSLisDEG

i=1 ]=1

fi, если countExamG(dt , g ) > 1 ,

где isDEG(gt, e ) = <| e] i - функция, определяющая

'i ] in

0, иначе

нарушение ограничения 1.1, сои^ЕхатО() - функция, определяющая количество экзаменов в группе gi во временном интервале

С12

= 22isDET

i=1 J=1

[1, если соиШЕхатТ(Ж , ti) > 1 где .8ВЕТ (1. ,е}) = ! 7 - функция, определяющая

[0, иначе

нарушение ограничения 1.2, сои^ЕхатТ() - функция, определяющая количество экзаменов у преподавателя ti во временном интервале

с13 =

III riv

Y^isDER

i=1 J=1

[ 1, если соиМЕхашК{Л , г) > 1 где isDER(ri, в}) = ! 1 - функция, определяющая

[ 0, иначе

нарушение ограничения 1.3, countExamR() - функция, определяющая количество экзаменов в аудитории г. во временном интервале

ng ne-1

С14 =

^ ^ isMinDaysG

i=1 ]=1

f1, если (date - date -1) < 2 i

где isMinDaysGg ,e J) = \ 8+1 eJ - функция, определяющая

i J [0, иначе

нарушение ограничения 1.4.

ng ne

E Z isRoomCap

C15 =

.=1 1=1

где шоотСаР(8,, е7)=Р' если ) > ^^ - функция, определяющая

[0, иначе

нарушение ограничения 1.5, countst() - функция, определяющая количество студентов в группе, RoomCap() - функция, определяющая количество посадочных мест в аудитории.

:

С21 =

^ 1ыСопыЕхт

где 1ыСопыЕхт( g1) = 1 - getWConsExm( g1) - функция, определяющая нарушение ограничения 2.1, getWConsExm(gl) е [0; 1] - функция получения коэффициента успеваемости группы по заданной последовательности экзаменов

^ пе

: Яе сотВауэС

с22

1 =1 3 =1

где ы Ке сотВау*С{&, ,(е., е.+1)) = Г ( 3 е' ^ - функция, определяющая

10, иначе

нарушение ограничения 2.2.

= ^^ 1ы Яе сотЯоотСар

^ пе

с.

23

1=1 3 =1

где

1ы Яе сотЯоотСар(£11, е]) =

тоотсар

' -1 Яе сот, если-3-> Яе сот

гоотсар

гоотсар

0, если-3-< 1 Яе сот

гоотсар

функция, определяющая нарушение ограничения 2.3, countst() - функция, определяющая количество студентов в группе, ШоотСар() - функция, определяющая количество посадочных мест в аудитории, Шесот -рекомендуемый максимальный процент свободных мест в аудитории.

с24

= 1ы Яе сотЕТ ^ г, е.)

1=1 3=1

Г1, если соигйЕхатТ(скйе , t) >1

где 1Ы Яе сотЕТ{1,, е.)=Г 3 - функция, определяющая нарушение

1 3 [0, иначе

ограничения 2.4, соы^ЕхатТ() - функция, определяющая количество экзаменов у преподавателя t1 в день экзамена е3- (йаХее3).

Для определения качества сформированного расписания экзаменов используется целевая функция, представляющая собой количественную оценку нарушений ограничений [7].

1=1

n mi

F

¿=i j=i

где kj - весовой коэффициент ограничения, Cj - объем нарушений ij -го ограничения, n - число типов ограничений (в данном случае n =2), mi -количество ограничений i-го типа, x - текущее решение. Алгоритм построения допустимого расписания

При построении допустимого расписания основополагающим фактором является использование заранее известной последовательности экзаменов, прогнозирующей наилучшую успеваемость группы. aProgress = {(gu (eh в2, ..., ene, W)j) | gi £G, j=1,n!, we[0, 1]} - массив

зависимостей успеваемости группы от порядка следования экзаменов, отсортированные по убыванию w, e¡ - экзамен с порядковым номером l, w -коэффициент успеваемости группы.

(e1, e2, ..., ene)jProgress = getSequence(gi, jProgress) - функция, получающая для группы gi, по порядковому номеру jProgress последовательность экзаменов из массива aProgress.

minTimeout - минимально количество дней между экзаменами.

normTimeout - рекомендуемое количество дней между экзаменами.

countApptExams - количество расставленных экзаменов в группе.

Qallnappt - очередь из всех нераспределенных экзаменов.

eCount() - функция вычисления количества экзаменов в группе.

maxTOgi - максимально допустимый интервал между экзаменами в период

заданного диапазона.

getCountApptExams() - функция получения количества расставленных экзаменов.

addExamToQ() - функция добавления экзамена в очередь. removeExamFromQ() - функция удаления экзамена из очереди.

isApptExam() - функция проверки расставлен ли экзамен (true - расставлен, false - не расставлен).

setRDExam() - функция присвоения пространственно-временной характеристика экзамену.

getPossibleDateQ - функция получения возможной даты из диапазона дат для проведения экзамена.

getNextDate() - функция получения следующей даты.

Псевдокод алгоритма построения допустимого расписания экзаменов:

1 СОРТИРОВКА групп по диапазонам сессии.

2 ЦИКЛ по группам gi EG

3 ВЫЧИСЛИТЬ eCount

4 ВЫЧИСЛИТЬ maxTOgi с округлением в меньшую сторону

5 ЕСЛИ

6 ТО переход на шаг 2

7 ИНАЧЕ

8 ЕСЛИ getCountApptExmas

9 ТО переход на шаг 2

10 ИНАЧЕ

11 ПРИСВАИВАЕМ jProgress = 1

12 ПРИСВАИВАЕМ Qш = getSequenceg jProgress)

13 ПРИСВАИВАЕМ countApptExmas[g] = 0

14 ЦИКЛ ПОКА не конец очереди Qjpgi

15 ЕСЛИ isApptExam(ej) == true

16 ТО

17 removeExamFromQ

18 countApptExmas[gi]+1

19 переход на шаг 14

20

ИНАЧЕ

23

21

22

date = getPossibleDate(gi) ЕСЛИ date == null

ТО addExamToQ

24 ИНАЧЕ

25 ЕСЛИ fndConfdate, g, ej) ==false

26 ТО

27 setRDExam

28 countApptExmas[gi] +1

29 removeExamFromQ

30 ИНАЧЕ

31 date = getNextDate

32 ЕСЛИ date == null

33 ТО

34 jProgress+1

35 переходим на шаг 12

36 ИНАЧЕ переход на шаг 25

37 ВСЕ ЕСЛИ

38 ВСЕ ЕСЛИ

39 ВСЕ ЕСЛИ

40 ВСЕ ЕСЛИ

41 ВСЕ ЦИКЛ ПОКА

42 ВСЕ ЕСЛИ

43 ВСЕ ЕСЛИ

44 ВСЕ ЦИКЛ

Минимизация целевой функции (16) реализуется с помощью генетического алгоритма, основанного на механизмах естественного отбора и наследования[8].

Будем рассматривать расписание экзаменационной сессии как некоторое однозначное отображение ЕБ из множества экзаменов Е во множество БШ х Я (декартово произведение временных интервалов и аудиторий):

ЕБ : Е ^ БМ х Я.

Табличное представление данного отображения представлено в таблице 2.

Таблица 2. Табличное представление отображения ЕБ

йМв т г1 г2 • • • • • • гпг

1 е1 е2 е1

2 X X

Ж2 1 ет

Ж2 2 ек X

Ж 1

Ж 2 е1 X

Так как размерность пёт множества От х Я (будем называть это множество множеством пространственно-временных характеристик) обычно превышает количество экзаменов пе, то некоторые пространственно-временные характеристики будут являться свободными (в таблице такие позиции обозначены Х).

Если пронумеровать все ячейки таблицы 1, и развернуть их в строку, то получится последовательность пространственно-временных характеристик с заданными на них экзаменами. Представление допустимого расписания в таком виде, позволяет использовать ГА для улучшения этого решения. В нашем случае, в терминологии ГА, под геном будет пониматься ячейка таблицы расписания, а под особью или хромосомой - один из вариантов расписания экзаменов. При этом «жизнеспособными» будут считаться только те хромосомы, которые удовлетворяют заданным ограничениям, т.е. являются допустимыми решениями.

Популяцией будем считать множество «жизнеспособных» хромосом с наиболее высокой степенью выживания (с наибольшим значением функции «приспособленности»).

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

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

Наиболее продуктивным методом скрещивания (кроссовера), является метод основанный на циклических перестановках. Суть метода заключается в следующем:

1. Выбираются 2 родительские хромосомы, которые будут участвовать в скрещивании (СН1 и СН2). Например:

СШ: 1 2 3 4 5 6 7 8 9 101112 13 14 15 16 65 66 67 68 17 18 19 20 21 22 23 24 25 26 27 28 19 30 —

----------------- --------------------

3132 33 34 35 36 37 38 39 4С 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

Рисунок 1. - Родительская хромосома СН1.

СН2: 1 8 18 4 5 7 14 3 9 11 28 12 13 19 10 16 65 66 67 68 17 6 2 36 21 15 22 24 23 31 26 27 25 39 -

и 30 32 33 63 29 20 37 35 34 40 41 42 43 44 45 47 46 38 49 48 50 55 53 52 54 56 58 51 59 60 61 57 62 64

Рисунок 2. - Родительская хромосома СН2. 2. Построим циклические перестановки по родительским хромосомам:

СН1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 55 66 61 68 17 18 19 20 21 22

--- ^

СН2: 1 8 18 4 :5 7 14 3 9 11 28 12 13 19 10 16 65 66 67 68 17 6 2 36 21 15

Рисунок 3. - Пример построения циклических перестановок.

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

J

простоты описания хромосомы будем обозначать через Z

последовательность из таких циклов.

CH1 = Zl+СН1l+Z2+СНl2+Zз+СН1з+Z4+СНl4+Z5+СНl5+Z6

CH2 = Z1+СН21+Z2+СН22+Z3+СН23+Z4+СН24+Z5+СН25+Z6

где Zi = (1), Z2 = (4)(5)(9), Z3 = (12)(13)(16)(65)(66)(67)(68)(17),

Z4 = (21)(24)(32)(33)(37)(40)(41)(42)(43)(44)(45), Z5 = (49),

Z6 =

СН11 = (2,19,14,7,6,18,3,8), СН21 = (8,3,18,6,7,14,19,2),

СН12 = (10,15,22,23,25,29,35,38,48,50,51,58,57,62,63,34,39,30,31,26,27,28,11),

СН22 = (11,28,27,26,31,30,39,34,63,62,57,58,51,50,48,38,35,29,25,23,22,15,10),

СН1э = (20,36), СН2э = (36,20),

СН14 = (46,47), СН24 = (47,46),

СН15 = (52,55), СН25 = (55,52).

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

Hl3+Z4+C

Hll+Zl+C

! I

H2i+Z2+C

lt lt I

+2э+сн23+г4+с:

Рисунок 4. - Пример выполнения операции скрещивания. Тогда хромосомы-потомки будут представлять собой комбинацию вида:

X1+Z2+ X2+Zз+ X3+Z4+ X4+Z5+ X5+Z6, где Xi - 1-й цикл родительской хромосомы СН1 или СН2. Количество хромосомы-потомки будет равно 2пс-2 (где пс - количество нетривиальных циклов в родительских хромосомах).

Таблица 3. Возможные хромосомы-потомки

CH1: ^+СН 1 ^2+СН12+Z3+OT13+Z4+OT14+Z5+OT15+Z6

CH2: Z1+СН21+Z2+СН22+Z3+СН23+Z4+СН24+Z5+СН25+Z6

Потомки: Z1+СН21+Z2+СН12+Z3+СН13+Z4+СН14+Z5+СН15+Z6

Z1+СН11+Z2+СН22+Z3+СН13+Z4+СН14+Z5+СН15+Z6

^+СН1 1+Z2+СН22+Z3+СН23+Z4+СН24+Z5+СН15+Z6

Z1+СН11+Z2+СН22+Z3+СН23+Z4+СН14+Z5+СН25+Z6

Ъ1+СН2х+Ъ1+СН22+Ъ3+СН23+Ъ4+СН14+Ъ5+СН25+Ъ,

Z1+СН21+Z2+СН22+Z3+СН23+Z4+СН24+Z5+СН15+Z6

Возможность получения большого количества хромосом-потомков увеличивает вероятность нахождения оптимального решения (хромосом с наилучшей функцией приспособленности). Мутация

Генетический оператор мутации изменяет значение гена на противоположное (в бинарном представлении хромосом 0 на 1 или наоборот) с некоторой вероятностью рт.

Например, в хромосоме СН1 5-й ген представляет кортеж {ё, е, т}, а 14-й ген: {ё, ек, т}. При этом аудитории т и Т1 являются идентичными. Под идентичными, будем понимать аудитории, имеющие аналогичное материально-техническое оснащение и вместимость. Тогда мутация в хромосоме СН1 может быть представлена на рис.4.

Рисунок 4. - Пример мутации в хромосоме СН1. Функция приспособленности

Чтобы оптимизировать какую-либо структуру с использованием ГА, нужно задать меру качества для каждого индивида в пространстве поиска. Для этой цели используется функция приспособленности. В поставленной задаче целевая функция (16) выступает в качестве функции приспособленности [9,10]. Результаты

Разработанный экспериментальный программный стенд позволяет: • проанализировать существующие расписания;

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

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

Выводы

1. Актуальность поставленной задачи обусловлена появлением в университетах большого количества новых образовательных программ в условиях ограниченности аудиторного фонда.

2. В связи с переходом российской образовательной системы к расширению использования индивидуальных траекторий обучения, потребность решения задач автоматизации для построения расписания экзаменов будет возрастать.

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

4. Использование механизмов построения расписаний экзаменов совместно с системами построения рациональных последовательностей экзаменов, позволит проектировать системы автоматизации построения расписаний сессий и управления их результатами.

Литература

1. Дворянкин А.М. Обзор методов составления расписания вузов/ А.М. Дворянкин, В.С. Чалышев // Изв. ВолгГТУ. Серия Актуальные проблемы управления, вычислительной техники и информатики в технических

системах: межвуз. сб. науч. ст. / ВолгГТУ.- Волгоград, 2011. - Вып. 11, № 9. -с. 110-113.

2. Аль-Габри В.М., Обзор литературных источников по теме «Автоматизация составления расписания занятий и экзаменов в высших учебных заведениях»// Вестник Донского государственного технического университета 2017, №1(88), с. 132-143.

3. Гранков М.В., Аль-Габри В.М., Горлова М.Ю., Анализ и кластеризация основных факторов, влияющих на успеваемость учебных групп вуза// Инженерный вестник Дона, 2016, № 4, URL: ivdon.ru/ru/magazine/archive/n4y2016/3775.

4. Семенов С.П. Сравнительный анализ подходов к автоматизации составления расписаний учебных занятий в образовательных учреждениях / С.П. Семенов, Я.Б. Татаринцев // Изв. Алтайского гос. ун-та. - 2010. - № 1(65). - с. 103-105.

5. Абухания А.Ю. Модели, алгоритмы и программные средства обработки информации и принятия решений при составлении расписаний занятий на основе эволюционных методов: Дис. ...канд. техн. наук: 05.13.01 / Абухания Амер Юсеф - Новочеркасск, 2016. - 231 с.

6. Гранков М.В., Аль-Габри В.М., Регрессионная модель успеваемости студенческих групп вуза// Инженерный вестник Дона, 2017, № 1, URL: ivdon.ru/ru/magazine/archive/ /n1y2017/4058

7. Omar Ibrahim Obaid, MohdSharifuddin Ahmad, Salama A. Mostafa, Mazin Abed Mohammed. Comparing Performance of Genetic Algorithm with Varying Crossover in Solving Examination Timetabling Problem/ Omar I.O, MohdSharifuddin A., Salama A.M., Mazin A.M. // Journal of Emerging Trends in Computing and Information Sciences- VOL. 3, NO.10, Oct 201, pp. 1427- 1434.

8. Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М.: Горячая линия

- Телеком, 2013. - 384 с.

9. Burke E. A Genetic Algorithm for university timetabling // In AISB Workshop on Evolutionary Computing. University of Leeds. - UK. - 1994. - pp. 134 - 140.

10. Лопатеева О.Н. Система автоматизированного формирования учебного расписания в высшем учебном заведении на основе эвристических алгоритмов: Дис. ...канд. техн. наук: 05.13.01 / Лопатеева Ольга Николаевна

- Красноярск, 2006. - 205 с.

References

1. Dvoryankin A.M. Izv. VolgGTU. Seriya Aktual'nyye problemy upravleniya, vychislitel'noy tekhniki i informatiki v tekhnicheskikh sistemakh: mezhvuz. sb. nauch. st. VolgGTU.Volgograd, 2011. Vyp. 11, № 9, pp. 110-113.

2. Al'-Gabri V.M., Vestnik Donskogo gosudarstvennogo tekhnicheskogo universiteta 2017, №1 (88), pp. 132-143.

3. Grankov M.V., Al'-Gabri V.M., Gorlova M.U., Inzenernyj vestnik Dona (Rus), 2016, № 4, URL: ivdon.ru/ru/magazine/archive/n4y2016/3775.

4. Semenov S.P. Izv. Altayskogo gos. un-ta. 2010. № 1(65). pp. 103-105.

5. Abukhaniya A.YU. Modeli, algoritmy i programmnyye sredstva obrabotki informatsii i prinyatiya resheniy pri sostavlenii raspisaniy zanyatiy na osnove evolyutsionnykh metodov [Models, algorithms and software for information processing and decision making in scheduling lessons based on evolutionary methods] : Dis. kand. tekhn. nauk: 05.13.01. Abukhaniya Amer Yusef. Novocherkassk, 2016. 231 p.

6. Grankov M.V., Al'-Gabri V.M., Inzenernyj vestnik Dona (Rus), 2017, № 1, URL: ivdon.ru/ru/magazine/archive/n4y2017/3775.

7. Omar Ibrahim Obaid, MohdSharifuddin Ahmad, Salama A. Mostafa, Mazin Abed Mohammed. Comparing Performance of Genetic Algorithm with Varying Crossover in Solving Examination Timetabling Problem. Omar I.O, MohdSharifuddin A., Salama A.M., Mazin A.M. Journal of Emerging Trends in Computing and Information Sciences. VOL. 3, NO.IO, Oct 2012, pp. 1427- 1434.

8. Rutkovskaya D. Neyronnyye seti, geneticheskiye algoritmy i nechetkiye sistemy [Neural networks, genetic algorithms and fuzzy systems]. M.: «goryachaya linya-telekom», 2013. 384 p.

9. Burke E. A Genetic Algorithm for university timetabling. In AISB Workshop on Evolutionary Computing. University of Leeds. UK. 1994, pp. 134 -140.

10. Lopateyeva O.N. Sistema avtomatizirovannogo formirovaniya uchebnogo raspisaniya v vysshem uchebnom zavedenii na osnove evristicheskikh algoritmov [The system of the automated formation of the educational schedule in a higher educational institution on the basis of heuristic algorithms]: Dis. kand. tekhn. nauk: 05.13.01. Lopateyeva Ol'ga Nikolayevna. Krasnoyarsk, 2006. 205 p.