Введение 3
1 Теория составления расписания 6
1.1 Организация расписания 6
1.2 Методы планирования расписания 8
2 Моделирование нейронных сетей 11
2.1 Модель искусственного нейрона 11
2.2 Классификация многослойных нейронных сетей 16
2.3 Обучение искусственных нейронных сетей 18
2.4 Компьютерное моделирование нейронных сетей на языке python 22
3 Разработка программного комплекса по составлению расписания 24
3.1 Упрощенные модели и их анализ 24
3.2 Описание программного кода упрощенной модели 29
3.3 Полная математическая модель составления расписания 31
3.4 Описание программного комплекса 36
Заключение 42
Список использованной литературы 44
В настоящее время большими темпами происходит развитие информационной техники и вычислительных возможностей. Наряду с этим в последние годы проявляется большой интерес к искусственному интеллекту и машинному обучению. Одним из популярных и широко применяемых подходов в разработке искусственного интеллекта стоит выделить искусственные нейронные сети.
Искусственные нейронные сети в последнее время все больше получают широкое применение в областях науки, медицины, экономики, бизнеса, робототехники и др. За последние несколько лет интерес к искусственным нейронным сетям возрос в несколько раз. Впечатляющий успех нейронных сетей определяется наличием мощного метода моделирования, позволяющего воспроизводить чрезвычайно сложные зависимости, а также возможностью успешно самообучаться на примерах [6]. Искусственные нейронные сети способны решать широкий спектр задач обработки и анализа данных, распознавания и классификаций объектов, прогнозирования, принятие решений, управление и прочее [11].
В данной работе искусственная нейронная сеть рассматривается как инструмент при разработке расписаний. На сегодняшний день расписание охватывает все сфера жизнедеятельности, почти любая организация или учреждение, независимо от того, в какой области она специализируется, имеют расписание. Также расписание является неотъемлемой частью в рабочем процессе учебных учреждений. Грамотно составленное расписание позволяет с пользой использовать рабочее время и увеличивать производительность,
В учебных заведениях расписание является неотъемлемым факторов успешного учебного процесса. Сам процесс составление учебного расписания занимает большое количество времени и является довольно сложной за¬дачей, так как в процессе разработки необходимо учитывать много нюансов и соблюдать различные требования следующего характера: занятия не должны проходить в одной аудитории в одно и то же время, должны учитываться пожелания преподавательского состава, наличие аудитории, оснащенных компьютерами, отсутствие окон между парами, и многое другое. Каждый из вышеперечисленных факторов может повлиять на учебное расписание, а оно в свою очередь на учебный процесс.
В эпоху развития информационных технологий отличным помощником может послужить автоматизированная система, которая могла бы сама в короткие сроки составлять учебное расписание при этом учитывать все имеющиеся нюансы. Разумеется, разработка инструментов планирования расписания в настоящее время является актуальной задачей, так как на сегодняшний день не существует универсального технического средства, позволяющего оптимально и быстро разработать расписание, с минимум вмешательства и корректировок. Существую различные технические средства, которые в той или иной мере помогают разработать и организовать учебный процесс, но данные средства не всегда адаптированы под имеющейся объем данных и имеют определенные сложности.
Целью данной работы является разработка искусственной нейронной сети, как одного из инструментов при разработке различного рода расписания. А также проанализировать эффективность выполнения поставленной задачи.
Для достижения поставленной цели необходимо было решить следующий ряд задач:
1. Рассмотреть основные принципы составления расписания.
2. Изучить основные типы искусственных нейронных сетей
3. Рассмотреть различные способы обучения нейронной сети и оптимизировать этот процесс с учетом различного рода набора данных.
4. Разработать программное обеспечение, выполняющее построение, обучение искусственной нейронной сети и построение расписания.
Для реализации поставленной цели, в данной работе, в качестве инструмента разработки программного комплекса, был применен язык программирования Python, с соответствующими подключаемыми модулями и расширениями, которые позволяют удобно и быстро производить вычислительные действия с большим объемом данных, представленных в виде массива. Определенную научную новизну в данной работе представляет реализованный алгоритм для решения подобного рода задач, а точнее для планирования расписания. Практической значимостью исследования в данной работе является возможность применения программного обеспечения (кода):
1. Как инструмент при планировании расписания различных учреждений.
2. Как возможность проанализировать всевозможные ограничения расписания.
Работа состоит из введения, трех параграфов, заключения, списка литературы включающего 21 источника, содержит 17 рисунков, таблицу и приложения.
Составление расписания является долгим и непростым процессом, а само расписание представляет из себя сложно организованную систему, с различными нюансами и условиями, от решения которых зависит успешность расписания.В учебных заведениях расписание занимает важное место в успешной формировании учебного процесса. На сегодняшний день не существует универсальной автоматизированной системы, позволявшей бы быстро и легко составить нужное расписание, учитывая всевозможные ограничения, без каких либо дополнительных вмешательства вручную.
Искусственные нейронные сети в последние годы получают все большую популярность и сферы применения,в первую очередь, связанный с ростом вычислительных возможностей и развитием информационных технологии. Также стоит отметить универсальность, самообучаемость и возможность решать трудные задачи самих нейронных сетей, которые эмулируют рабо¬ту биологического мозга. Все перечисленные факторы и является причиной столь широкого применения нейронных сетей практически в любой сфере.
В данной работе были изучены теоретические основы нейронных се¬тей, исследован алгоритм нейронных сетей, структура, методы обучения и возможность использования нейронных сетей как инструмента для реализации расписания. Были рассмотрены несколько различных структур нейронных сетей и процесс их обучаемости, проведен анализ и составлены графики. В качестве основы была использована многослойная нейронная сеть с сигмоидальной функцией активации. В процессе разработки были рассмотрены методы обучения нейронных сетей и в качестве базового был применен метод обратного распространения ошибки.
Для решения основной задачи, был рассмотрен и решен ряд упрощенных задач, имеющих схожую структуру и принцип реализации с основной задачей. Реализация упрощенных задач проводилась также на нескольких нейронных сетях. Данные подзадачи стали базовыми и легли в основу для реализации основного программного кода составления расписания.
В ходе исследования был разработан программный код на языке программирования python с использованием различных расширений, таких как numpy, pandas и др. Программный код реализует рассмотренную и описанную в данной работе математическую модель. Процесс исследования докладывались и обсуждались на различных научных и научно-практических конференциях, в том числе, на шестой международной научно-практической конферен¬ции «Информационные технологии в образовании и науке» (ИТОН - 2017), итоговой научно-образовательной конференции студентов КФУ 2017 и 2018 годов.
Все это позволило добиться определенных результатов, и данный программный код можно применять как один из инструментов в планировании расписания. Стоит отметить, что реализованный алгоритм, не является окончательным решением в задаче составления расписания и требуется дальней¬шее глубокое изучение, а также применение более мощных вычислительных ресурсов.
1. Лазарев, А.А. Теория расписаний. Задачи и алгоритмы. / А. А. Лазарев, Е. Р. Гафаров // МГУ РАН С.Н. Васильева, 2011. - 213 с.
2. Руководство к своду знаний по управлению проектами. Четвертое издание (Руководство PMBOK). Издатель: Project Management Institute, Inc. 14 Campus Boulevard Newtown Square, Pennsylvania 19073-3299 USA / США. 240 с.
3. Горбачевская Е.Н. История развития нейронных сетей/ Е.Н. Горбачевская, С.С. Краснов // Вестник Волжского университета имени В.Н. Татищева № 1 (23).-2015. -№1.
4. Горожанина, Е.И. Г Нейронные сети. Учебное пособие. [Текст] / Е.И. Горожа- нина. - Самара. ФГБОУ ВО ПГУТИ, 2017. - 84 с.
5. Яхъяева, Г. Основы теории нейронных сетей. Материал из кур¬са: Основы теории нейронных сетей / Г. Яхъева // Режим доступа: http://www.intuit.ru/department/ds/neuronnets/1/
6. Denis Pellerin* and Jeanny Herault. Scheduling with neural networks: Application to timetable construction// Neurocomputing 6 (1994) 419-442.
7. Kazuhiro Tsuchiya. A Neural Network Parallel Algorithm for Meeting Schedule Problems/ Kazuhiro Tsuchiya, Yoshiyasu Takefuji// Applied Intelligence 7, 205-213 (1997) Kluwer Academic Publishers. Manufactured in The Netherlands.
8. Rosenblatt, F. The Perceptron: A probabilistic model for information storage and organization in the brain / F. Rosenblatt // Psychological Review. — 1958. — N 65. - pp. 386 - 408.
9. Tariq Rashid. Создаем нейронную сеть. / Пер. с англ. — СПб. / ООО “Альфа- книга”//Tariq Rashid, 2017. — 272 с. : ил. — Парал. тит. англ.
10. Барский А. Б. Нейронные сети: распознавание, управление, принятие ре¬шений. — М.:/ Финансы и статистика, 2004. — 176 с: ил.
11. Васильев, А. Н. Python на примерах. Практический курс по программиро¬ванию / А. Н. Васильев. — М.: «Наука и Техника», 2016. — 432 с.
12. Рышард Тадеусевич. Элементарное введение в технологию нейронных сетей с примерами программ./Рышард Тадеусевич, Барбара Боровик, Томаш Гончаж, Бартош Леппер //перевод с польск. И.Д.Рудинского.-2011.-408с.,ил.
Электронные ресурсы:
13. Michael A. Nielsen, "Neural networks and Deep Learning Determination Press, 2015. Режим доступа: http://neuralnetworksanddeeplearning.com/
14. The fundamental package for scientific computing Numpy. Режим доступа: http://www.numpy.org/