Научная статья на тему 'Моделирование процесса распределения учебной нагрузки кафедры с использованием жадного алгоритма'

Моделирование процесса распределения учебной нагрузки кафедры с использованием жадного алгоритма Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
367
65
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПТИМИЗАЦИЯ / МОДЕЛИРОВАНИЕ / ПЕДАГОГИЧЕСКАЯ НАГРУЗКА / ЖАДНЫЙ АЛГОРИТМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сеньковская А.А., Фураева И.И.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Моделирование процесса распределения учебной нагрузки кафедры с использованием жадного алгоритма»

УДК 004.912:004.021 DOI: 10.25513/2222-8772.2017.4.101-108

МОДЕЛИРОВАНИЕ ПРОЦЕССА РАСПРЕДЕЛЕНИЯ УЧЕБНОЙ НАГРУЗКИ КАФЕДРЫ С ИСПОЛЬЗОВАНИЕМ

ЖАДНОГО АЛГОРИТМА

А.А. Сеньковская1

аспирант, e-mail: anastassiya.senkovskaya@gmail.com И.И. Фураева2 доцент, к.ф.-м.н., e-mail: furir@mail.ru

1 Омский государственный университет им. Ф.М. Достоевского 2Евразийский национальный университет им. Л.Н. Гумилёва

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

Ключевые слова: оптимизация, моделирование, педагогическая нагрузка, жадный алгоритм.

Введение

Объём работы профессорско-преподавательского состава в вузах устанавливается с учётом необходимости выполнения всех видов учебной, учебно-методической и научно-исследовательской работы, вытекающей из занимаемой должности, учебного плана и плана научно-исследовательской работы. Объём различных видов работ, выполняемых каждым преподавателем, устанавливается в зависимости от характера контингента обучающихся (студенты, аспиранты), от необходимости участия преподавателя в учебной, научной или методической работе, а также с учётом его индивидуальных возможностей в наиболее эффективном выполнении того или иного вида работ. Основным документом, определяющим работу каждого преподавателя на весь срок его избрания, является индивидуальный план, в который ежегодно вносится планируемая ему на текущий учебный год учебная (в часах), учебно-методическая, научно-исследовательская и другие виды работ [1].

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

Для распределения учебной нагрузки можно использовать различные инструменты [1,3], но наиболее простым и удобным является использование воз-

можностей MS Excel. Именно для этого инструмента и рассмотрим решение некоторых наиболее часто встречающихся задач.

Постановка задачи

Задача распределения учебной нагрузки является стандартной задачей управления учебным процессом кафедры. Тем не менее, каждый вуз имеет собственные шаблоны представления как исходных данных, так и результатов распределения нагрузки. Одни вузы производят расчёт только в часах, другие же и в часах, и в кредитах. Учёт кредитов значительно увеличивает вычислительную нагрузку и длину шаблона. Сравним шаблоны представления результатов распределения (рисунки 1,2).

Утверждаю

Проректор по академической деятельности и науке

II | III II д_э.н.. профессор |

_эмрФэкулы Е.

-_-_2*17 г.

КАФЕДРА "Информатика и прикладная экономика СадЕакасова ИЖ.. доцент. к_п_н.

Ззе. кафедрой "Информатика и ПЭ" Б.А. Серинбетов Декан факультета Прикладные наук

Декан факультета Багов ой подготовки А.А. Мухамбетова Декан факультета Послевузовского образования

Начальник У Пи М¥П Б. Е. Жарл га-сова

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

Рис. 2. Результаты распределения учебной нагрузки в часах и кредитах

Как видно из представленных рисунков, количество столбцов во втором варианте значительно возрастает по сравнению с первым. Результат расчёта невозможно разместить на одном печатном листе, что требует введения дополнительных мер в виде скрытия столбцов с нулевыми суммами или использования скроллинга.

Кроме результатов по распределению нагрузки среди преподавателей требуется разделить её на основную и дополнительную, если количество ставок превышает одну. При небольшом количестве преподавателей такую задачу нетрудно решить вручную.

Для облегчения решения этой задачи в шаблон введены дополнительные строки, как показано на рисунке 3. Основная и дополнительная нагрузка суммируется отдельно для каждого семестра, если строки каким-то образом отметить как относящиеся к основной и дополнительной нагрузке. Наиболее простой способ для этого - введение дополнительного столбца с обозначениями «о» и «д», что позволяет записать в соответствующих ячейках формулы: =СУММЕСЛИ($БХ155:$БХ179;"о";Ы155:Ы179) =СУММЕСЛи($БХ155:$БХ179;"д";Ы155:Ы179).

Итого 1 семестр основная

Итого 1 семестр дополнительная

Итого за 1 семестр

Итого 2 семестр основная

Итого 2 семестр дополнительная

Итого за 2 семестр

Итого за год основная

Итого за год дополнительная

Итого за год

Рис. 3. Строки для основной и дополнительной нагрузки

Так как большая точность при разделении нагрузки на основную и дополнительную не требуется, то можно путём перебора подобрать подходящий вариант для каждого преподавателя, как это в основном и делается. При этом, конечно, необходимо приблизительно определить количество часов или кредитов на основную или дополнительную ставку. Эту задачу, хотя и очень простую, лучше все-таки выполнить с помощью формул, как это показано на рисунке 4.

час | а о

98,50 4,66

64,00 3,40 0

88,75 4,43 0

58,75 3,43 0

60,00 2,00 0

370,00 17,92 о Д 5,970667

0,00 0,00

370,00 17,92 о

30,00 1,00

30,00 1,00 0

116,50 5,86 0

28,00 1,62 0

8,00 1,20 0

10,00 1,50 0

3,00 0,10 0

60,00 2,00 0

285,50 14,28 0 д 4,759333

| 0,00 0,00

285,50 14,28 ставки кредиты

655,50 32,20 о Д 1,00 0,50 21,46 10,73

0,00 0,00

655,50 32,20 1,50 32,19

Рис. 4. Подсчёт количества кредитов для основной и дополнительной нагрузки

В последней строке указано количество ставок преподавателя. Из запланированных 1,5 ставок одна ставка уходит на основную нагрузку и 0,5 - на дополнительную. В соседнем столбце справа определено количество кредитов, а в соседнем столбце слева указаны для удобства «о» и «д». Кроме этого, определены кредиты на дополнительную нагрузку для осеннего и весеннего семестров, что позволяет более точно выполнять вычисления. Если нагрузка определяется только в часах, то столбцов с кредитами не будет, а формулы будут настроены на академические часы.

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

Сделаем математическую постановку задачи.

Имеется т строк нагрузки 1 семестра и п строк нагрузки 2 семестра, объём кредитов для каждой строки известен ЬгдЬ7-,2 (г = 1,...,т,^ = 1,...,п). Введём векторную переменную Хк (к = 1,..., т,..., т + п), координаты которой принимают значения из множества {1,0}, причём 1 — если строка входит в дополнительную нагрузку и 0 - если в основную. Тогда задачу можно сформулировать следующим образом: определить Хг таким образом, чтобы выполнялись условия (1):

т т+га

* Ы И ¿1, ^ Х* * Ы И ¿2. (1)

г=1 г=т+1

Очевидно, что в условиях (1) равенство выполняется не строго, а приближённо. Следует отметить, что погрешность вычисления в 1 семестре можно перенести во 2 семестр и улучшить за счёт этого общий результат. Тогда условия (1) можно более точно переписать в виде (2)

т т+га

^ Х * 6г И к1, ^ Х * Ьг и кх + к2 - К, (2)

г=1 г=т+1

где К = Хг * Ьг.

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

Г,

Хг * Ьг - к

г=1

Г2

т+га

^ Хг * Ьг - к1 + к2 - К

г=т+1

шт , шт Г2

(3)

1

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

Это простейшие ограничения, но они могут быть усилены за счёт более жёстких условий.

Введём вектор Dk(k = 1,..., m,..., m + n), который принимает значение 1 для аудиторной нагрузки (дисциплин) и 0 - для внеаудиторной (неактивной) нагрузки. Предположим, что дополнительная нагрузка должна содержать хотя бы одну дисциплину в каждом семестре. В этом случае ограничения примут вид:

m m+n

^ X * Di > 0, ^ Xi * Di > 0. (4)

i=1 i=m+1

Таким образом получаем задачу целочисленной линейной оптимизации 3 с ограничениями 4. Следует учесть, что возможна ситуация, когда в нагрузке преподавателя могут отсутствовать аудиторные часы, что позволяет учитывать ограничения как желательные, а не строго обязательные.

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

Количество строк нагрузки в семестре изменяется от 5 до 20, что делает точные алгоритмы непригодными. Из приближенных алгоритмов хорошо зарекомендовал себя жадный алгоритм.

Алгоритмы, предназначенные для решения задач оптимизации, обычно представляют собой последовательность шагов, на каждом из которых предоставляется некоторое множество выборов. Определение наилучшего выбора, руководствуясь принципами динамического программирования, во многих задачах оптимизации напоминает стрельбу из пушки по воробьям; другими словами, для этих задач лучше подходят более простые и эффективные алгоритмы. В жадном алгоритме (greedy algorithm) всегда делается выбор, который кажется самым лучшим в данный момент, т. е. производится локально оптимальный выбор в надежде, что он приведёт к оптимальному решению глобальной задачи.

Жадные алгоритмы не всегда приводят к оптимальному решению, но во многих задачах они дают нужный результат. Жадный метод обладает достаточной мощью и хорошо подходит для довольно широкого спектра задач [4].

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

Принцип применения жадного алгоритма

Говорят, что к задаче оптимизации применим принцип жадного выбора, если последовательность локально оптимальных выборов даёт глобально оптимальное решение. В этом состоит главное отличие жадных алгоритмов от динами-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ческого программирования: во втором просчитываются сразу последствия всех вариантов.

Чтобы доказать, что жадный алгоритм даёт оптимум, нужно попытаться провести доказательство, аналогичное доказательству алгоритма задачи о выборе заявок. Сначала мы показываем, что жадный выбор на первом шаге не закрывает путь к оптимальному решению: для любого решения есть другое, согласованное с жадным выбором, и не хуже первого. Потом мы показываем, что подзадача, возникшая после жадного выбора на первом шаге, аналогична исходной. По индукции будет следовать, что такая последовательность жадных выборов даёт оптимальное решение.

В комбинаторике существует раздел, связанный с жадными алгоритмами -теория матроидов. При помощи этой теории часто (хотя и не всегда) можно решить задачу о применимости жадных алгоритмов.

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

Итак, алгоритм выбора дополнительной нагрузки выполняется следующим образом: вначале рассматривается 1 семестр.

Определяются активные и неактивные виды нагрузки. Если есть аудиторная нагрузка, то одна строка выбирается в дополнительную нагрузку. Из оставшихся строк выбирается строка с максимальным весом, который можно добавить в суммарную дополнительную нагрузку. Точность вычислений задаётся в 0,5 кредита.

Когда нагрузка 1 семестра выбрана, то аналогично выбирается нагрузка 2 семестра, только целевая функция изменяется согласно формуле (3), и точность вычислений можно повысить до 0,1 кредита.

Использование жадного алгоритма для 20 преподавателей показало следующий результат (рисунок 5).

1 сем 2 сем год погрешность

план факт а 6 со/1 план факт абсол план факт абсолютн относит

1 7,228 7,6902222 -0,462222 5,702 5,173 0,529 12,93 12,86322 0,0667778 0,52%

2 6,892 7,0194444 -0,127444 6,3233 6,55494 0,26339 13,71533 13,57439 0,1409444 1,03%

3 4,822 4,9176667 -0,095667 8,124 7,92078 0,20322 12,946 12,83844 0,1075556 0,83%

4 6,6766667 6,704 -0,027333 6,227 6,10944 0,11756 12,90367 12,81344 0,0902222 0,70%

5 6,0383333 6,1171111 -0,078778 6,965 6,71983 0,24517 13,00333 12,83694 0,1663889 1,28%

б 6,516 6,8973333 -0,381333 6,4 6,02733 0,37267 12,916 12,92467 -0,0086667 0,07%

7 5,926 7,984 -2,058 7,126 5,14733 1,97867 13,052 13,13133 -0,0793333 0,61%

3 6,5293333 6,6517778 -0,122444 6,5753 6,31378 0,26156 13,10467 12,96556 0,1391111 1,06%

9 8,532 8,736 -0,204 4,4 4,25267 0,14733 12,932 12,98867 -0,0566667 0,44%

10 8,3473333 8,4145556 -0,067222 4,765 4,51678 0,24822 13,11233 12,93133 0,181 1,38%

11 4,814 4,354 -0,04 8 8 0 12,814 12,854 -0,04 0,31%

12 6 6,3333333 -0,333333 7 6,54222 0,45778 13 12,87556 0,1244444 0,96%

13 7,1373333 7,3326667 -0,195333 5,88 5,48744 0,39256 13,01733 12,82011 0,1972222 1,52%

14 7 7,6666667 -0,666667 5,9267 5,18444 0,74222 12,92667 12,85111 0,0755556 0,58%

15 5,1173333 5,2511111 -0,133778 7,656 7,36311 0,29289 12,77333 12,61422 0,1591111 1,25%

16 8 8,3333333 -0,333333 5 4,65833 0,34167 13 12,99167 0,0083333 0,06%

17 3,028 3,3256 -0,2976 3,2 3,0924 0,1076 6,228 6,418 -0,19 3,05%

18 7,2833333 7,4144444 -0,131111 5,818 5,48706 0,33094 13,10133 12,9015 0,1998333 1,53%

19 8,44 8,5824444 -0,142444 4,838 4,56244 0,27556 13,278 13,14489 0,1331111 1,00%

20 2 2,8 -0,8 4 3,61 0,39 6 6,41 -0,41 6,83%

Рис. 5. Сводные данные о распределении нагрузки

Анализ полученных результатов позволяет сделать вывод о применимости жадного алгоритма для задачи разделения нагрузки на основную и дополнительную. В среднем на 0,5 ставки приходится, согласно таблице, 13 кредитов

(последняя строка соответствует 0,25 ставки и 6-ти кредитам). Погрешность от применения алгоритма составляет не более 0,5 кредита, причём наибольшее значение 0,41 приходится на преподавателя с минимальными весами нагрузки в 1 кредит, в остальных же случаях абсолютная погрешность не превышает 0,2, что составляет не более 3 % относительной погрешности. Следует иметь в виду, что строка нагрузки не дробилась на несколько строк с целью улучшения точности. Для преподавателей, данные которых указаны в 11, 12, 14, 18 и 20 строках в столбцах «факт» одного или обоих семестров указаны целые числа. Это показывает, что нагрузка содержит только аудиторные часы с кредитами, кратными единице. В этом случае можно ожидать наихудшего результата. Для 3 преподавателей нагрузка содержит только аудиторные часы в обоих семестрах, это 12, 18 и 20 строки. Для них нагрузку можно разделить только с точностью до единицы. Но и для них полученный результат является очень хорошим.

Сравним показатели 1 и 2 семестров. В 1, 7, 12, 14 и 20 строках самые худшие показатели по 1 семестру. Если бы для второго семестра распределение производилось независимо от 1 семестра, то суммарные показатели за год только ухудшились бы. Но тот факт, что во втором семестре учитывается результат выбора дополнительной нагрузки в 1 семестре, позволяет значительно улучшить итоговый результат. Так, например, наихудшая абсолютная погрешность 1 семестра в 7 строке -2,058 компенсируется тоже худшей, но положительной погрешностью, что приводит к годовой погрешности в -0,079. В 20 строке -0,8 в 1 семестре компенсируется +0,39 во 2 семестре, что приводит к не улучшаемому результату при ручном выполнении действий.

Сравним программное и ручное распределение на примере, представленном на рисунке 6. Как видно, ручное разделение более точное: при плане 10,73 получено 10,75. Программное же разделение получило 10,88 кредитов. Это погрешность жадного алгоритма. Но для исследуемой задачи такая погрешность допустима.

1 1

4,66 Д 4,66 О

3,40 0 3,40 о

4,43 0 4,43 о

3,43 0 3,43 А

2,00 0 2,00 д

13,26 0 12,49 о

4,66 д 5.Э70667 5,43 Д 5,970667

17,92 17,92

1,00 д 1,00 Д

1,00 0 1,00 о

5,86 о 5,86 0

1,62 Д 1,62 Д

1,20 0 1,20 Д

1,50 д 1,50 Д

0,10 д 0,10 о

2,00 д 2,00 о

8,06 0 8,96 о

6,22 д 4,759333 5,32 А 4,759333

14,28 ставки кредиты 14,28 ставки кредиты

21,32 о 1,00 21,46 21,45 0 1,00 21,46

10,88 д 0,50 10,73 10,75 А 0,50 10,73

32,20 1,50 32,19 32,20 1,50 32,19

Рис. 6. Программное (слева) и ручное (справа) разделение На рисунке 7 слева представлены результаты расчёта по описанному в про-

грамме алгоритму. В 1 семестре из планируемых 7,69 кредитов выбрано 7,23 на дополнительную нагрузку. Во 2 семестре с учётом перетекания недополученных кредитов в 1 семестре распределено 5,7 кредита, что привело к 12,93 из 12,86 планируемых. Если же, как показано в правой таблице, во втором семестре производится независимое распределение, тогда из планируемых 5,173 кредита выбрано 5,1, и это привело к суммарному количеству 12,33 из 12,86 планируемых. Этот результат хуже, чем результат в левой таблице. Таким образом, учёт недораспределения кредитов 1 семестра при распределении 2 семестра приводит к более точным результатам.

1,70 Д 1,70 Д

4,53 Д 4,53 Д

4,08 о 4,08 о

3,20 0 3,20 0

3,71 0 3,71 0

3,74 0 3,74 о

0,55 0 0,55 0

1,00 Д 1,00 Д

0,57 0 0,57 0

15,85 0 15,85 0

7,23 д 7,690222 7,23 Д 7,690222

23,08 23,08

3,30 Д 3,30 д

1,05 о 1,05 д

2,40 Д 2,40 0

3,20 0 3,20 0

3,82 0 3,82 о

0,18 0 0,18 Д

1,00 0 1,00 0

0,57 0 0,57 д

9,82 0 10,42 0

5,70 Д 5,173 5,10 д 5,173

15,52 ставки кредиты 15,52 ставки кредиты

25,67 о 1,00 25,73 26,27 0 1,00 25,73

12,93 д 0,50 12,86 12,33 Д 0,50 12,86

38,60 1,50 38,59 38,60 1,50 38,59

Рис. 7. Разделение зависимое (слева) и независимое (справа)

Выводы

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

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

Литература

1. Малибекова М., Горбунов А. Технология распределения учебной нагрузки кафедры // Высшая школа Казахстана. 2002. №2. С. 24-28.

2. Смолянов А.Г. Управление кафедрой: автоматизированный расчёт учебной нагрузки // Международный журнал «Символ науки». 2015. № 10.

3. Каюгина С.М. Автоматизированная система расчёта и распределения учебной нагрузки преподавателей кафедры вуза на базе платформы «1С» // Современные научные исследования и инновации. 2015. № 11.

4. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ / Под ред. И.В.Красикова. 2-е изд. М. : Вильямс, 2005.

MODELING THE DISTRIBUTION PROCESS OF THE DEPARTMENT'S TEACHING LOAD USING A GREEDY ALGORITHM

A.A. Senkovskaya1

Graduate Student, e-mail: anastassiya.senkovskaya@gmail.com

I.I. Furayeva2

Ph.D. (Phys.-Math.), Associate Professor, e-mail: furir@mail.ru

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1Dostoevsky Omsk State University 2Eurasian National University n.a. L.N. Gumilyov

Abstract. The main reasons for the need to automate the process of distribution of the academic load of the department are presented. The mathematical formulation of the load distribution problem of the department is formulated. The main algorithms realizing the assigned task are considered, in particular greedy algorithms aimed at optimization of this automated process.

Keywords: optimization, modeling, teaching load, greedy algorithm.

Дата поступления в редакцию: 27.10.2017

i Надоели баннеры? Вы всегда можете отключить рекламу.