Статья:

Разработка базы продукционных правил

Конференция: VI Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»

Секция: Технические науки

Выходные данные
Бардаханова Н.Е. Разработка базы продукционных правил // Технические и математические науки. Студенческий научный форум: электр. сб. ст. по мат. VI междунар. студ. науч.-практ. конф. № 6(6). URL: https://nauchforum.ru/archive/SNF_tech/6(6).pdf (дата обращения: 05.10.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Разработка базы продукционных правил

Бардаханова Нина Евгеньевича
магистрант, Восточно-Сибирский государственный университет технологий и управления, РФ, г. Улан-Удэ
Данилова Соелма Доржигушаевна
научный руководитель, канд. техн. наук, доцент, Восточно-Сибирский государственный университет технологий и управления, РФ, г. Улан-Удэ

 

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

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

- вид занятий. Если вид занятия – лекция, то такое занятие может вести преподаватель с должностью профессора, доцента или старшего преподавателя;

- количество часов. У каждого преподавателя есть плановое количество часов, которое зависит от ставки преподавателя, например, если ставка равна одной единице, то плановое количество часов в год равно 900 часов. Плановое количество часов нельзя превышать, но и слишком мало оставлять тоже нельзя;

- равномерность распределения часов. Желательно распределить нагрузку между преподавателями равномерно, например, не допускается, если в первом семестре у преподавателя 200 часов, а во втором семестре 700 часов;

- количество подгрупп. От количества подгрупп на той или иной дисциплине меняется количество часов, таким образом, если в учебном поручении сказано, что на лабораторные занятия выделено 32 часа, и 2 подгруппы, то необходимо умножить количество часов на количество подгрупп, кроме этого, в некоторых случаях удобнее ставить на две подгруппы двух разных преподавателей для дальнейшего составления расписания;

- руководство практиками и нормоконтроль осуществляется ответственными преподавателями, однако ответственные могут меняться.

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

Для разработки базы продукционных правил необходимо выполнить следующие шаги:

–  определить целевые действия задачи (являющиеся решениями);

– определить промежуточные действия или цепочку действий, между начальным состоянием и конечным (между тем, что имеется, и целевым действием);

–  опередить условия для каждого действия, при котором его целесообразно и возможно выполнить. Определить порядок выполнения действий;

–  добавить конкретики при необходимости, исходя из поставленной задачи;

–  преобразовать полученный порядок действий и соответствующие им условия в продукции.

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

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

Прежде чем соотносить между собой преподавателей и дисциплины, необходимо определить какой преподаватель может вести конкретную дисциплину. Предполагается, что в систему поступают данные, полученные в опросе, то есть у каждого преподавателя имеется хотя бы одна дисциплина, которую он может вести. Для определения у каждой дисциплины преподавателей, которые могут ее преподавать, составим правило типа «Если, то»:

<Если у преподавателя в списке его дисциплин имеется данная дисциплина, то этот преподаватель может вести данную дисциплину>

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

<Если должность преподавателя профессор ИЛИ доцент ИЛИ старший преподаватель, то этот преподаватель может вести лекции>

Далее необходимо распределить дисциплины, для которых однозначно определен преподаватель. К таким дисциплинам относятся: руководство кафедрой, ИГА, утверждение ВКР, учебная практика, производственная практика, преддипломная практика, НИР, руководство магистратурой, а также нормоконтроль, для которых есть отдельный столбцы в учебном поручении и, если в конкретном столбце стоит не ноль, то для этой дисциплины необходимо определить преподавателя именно этим способом. Фамилии преподавателей для таких дисциплин будут задаваться отдельно в настройках системы, так как например, руководители практик могут меняться каждый год, в экспертной системе имена этих преподавателей будут храниться в глобальных переменных, например: (defglobal ?*заведующий_кафедрой* = "Михайлова С.С."). Составим правило типа «Если, то» на примере НИР:

<Если для данной дисциплины в столбце НИР стоит не 0, то преподавателем назначить руководителя НИР>

Для остальных таких дисциплин правила будут выглядеть идентично.

При распределении остальных предметов необходимо учитывать, что у каждого преподавателя существует план часов в год, зависящий от занимаемой ставки. При этом необходимо распределять нагрузку равномерно. Это означает, что для первого и второго семестра распределение будет происходить поэтапно, во избежание неравномерности распределения. Также, нельзя забывать о том, что на выбор преподавателя также влияет вид занятия. Составим правило типа «Если, то» для определения преподавателя дисциплины 1-го семестра:

<Если дисциплина проводится в первом семестре И вид занятия = лекция И преподаватель может вести эту дисциплину И преподаватель – лектор И количество часов у преподавателя не превышает половины плановой часовой нагрузки, то назначить его преподавателем данной дисциплины>

Для лабораторных и практических занятий будет отсутствовать условие «преподаватель – лектор», для второго семестра правило будет выглядеть идентично, но ограничение на количество часов преподавателя будет не половина, а полная плановая часовая нагрузка.

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

Все эти данные на языке CLIPS можно представить в виде шаблонов deftempate. Таким образом, в системе будут использоваться три шаблона: teacher, discipline, plan. Данные шаблоны представлены ниже.

В совокупности все эти правила составляют модуль экспертной системы, который будет вызываться кнопкой «Распределить нагрузку». Заданные шаблоны будут заполняться загрузкой в модуль заранее подготовленных файлов в формате .clp, которые будут генерироваться в ходе работы системы. Результаты распределения учебной нагрузки будут предаваться из данного модуля в систему, для наглядности будет заполняться таблица, в которой пользователь сможет вносить изменения при необходимости.  Данную таблицу можно будет сохранить в Excel файл.