Глобальный экстремум не всегда является
оптимальным, он вычисляет только максимальное или минимальное значение для
определенных ограничений. Поэтому для разработки ограничений для системы
составления расписания для образовательных учреждений необходимо использовать
локальный экстремум.
Вывод
В данной главе мы познакомились с понятием
реляционная модель, информационно-прикладная система, интерфейс и
математическая модель, которые понадобятся в ходе создания базы данных и
приложения создания расписания в Кировском Авиационном техникуме.
Глава 2. Постановка задачи оптимизации
расписания учебного заведения
.1. Постановка задачи
Необходимо создать базу данных, которая хранила
всю информацию о специальностях, группах, учебном плане, преподавателях с
предполагаемой нагрузкой, аудиторном фонде и т.д. Одной из важнейших задач
данной работы является разработка программы для редактирования данных из базы,
для составления тарификации и выгрузки информации в Excel-файл,
для формирования сетки с расписанием.
.2 Требования к системе
Для того чтобы создать приложения для составления расписания, необходимо сформулировать требования к образовательным учреждениям, а также специфические требования к системе кировского авиационного техникума.
Требования к образовательным учреждениям - это общие требования, которые подходят к любой школе, техникуму или ВУЗу. Ниже перечислены требования, подходящие к нашей системе.
) Один преподаватель не может вести предмет у двух групп одновременно.
) У одной группы не может одновременно вести два преподавателя.
) Две группы не могут заниматься одновременно в одном кабинете.
) Группа не может заниматься в двух предметах одновременно.
) Урок не должен превышать 45 минут, а пара - 90 минут.
) В день не может быть больше 6 пар или 8 уроков.
Для того чтобы понять требования к системе образования в Кировском авиационном техникуме, необходимо понять структуру техникума.
Кировский авиационный техникум - один из лучших
техникумов города Кирова. Обучающиеся получает среднее общее полное
образование. Студенты в техникуме приобретают профессию. Производственное
обучение идет по трем основным профилям: технологическому, вычислительному и
экономическому, которые дают возможность получить десятки востребованных
престижных профессий. КАТ выпускает профессионалов, которые действительно
требуются в Кировской области. Специальностей достаточно много, поэтому и
система составления расписания очень сложная. КАТ располагается в двух
корпусах, которые находятся, по сути, в одном здании. Однако время звонков в
разных корпусах разное. Также у постоянных преподавателей и у администрации
есть фиксированные кабинеты, в которых они проводят занятия. Остальные
преподаватели проводят занятия в свободных аудиториях. Также некоторые
преподаватели наемные, внешние, поэтому могут работать только в определенный
день и в определенное время. Поэтому составление расписания для данного
учебного заведения - сложный и достаточно долгий процесс. Чтобы упростить
задачу составления расписания в КАТ, администрация техникума проявила желание о
создании приложения, упрощающего процесс составления расписания в Кировском
Авиационном техникуме.
.2.1 Технические требования
Для реализации приложения были поставлены конкретные задачи, необходимо было знать, что пользователь хочет видеть в приложении, какие функции оно должно выполнять. После собеседования с заведующей учебной частью Кировского Авиационного техникума, был выявлен ряд требований. Администратор учебной части высказала пожелания по структуре приложения, выделив в нем четыре основных части: настройка данных, тарификация, составление расписания и оптимизация. Заведующая учебной частью описала, как должна выглядеть и работать каждая часть такого приложения. В приложении необходимо сделать авторизацию, чтобы в программу заходил только администратор учебной части, т.к. информация, хранящаяся в программе, конфиденциальна.
Настройка данных. В настройке данных пользователь должен просматривать, какие существуют в учебном заведении специальности, группы, предметы, кабинеты, а также сотрудники. Все эти данные можно редактировать, удалять и добавлять новые данные. В настройке пользователь может менять информацию о семестре и учебном годе, в котором составляется расписание.
Тарификация. В разделе тарификация пользователь хочет видеть несколько подразделов: «Предметы и группы», «Формирование тарификации», «Просмотр тарификации», «Итоговая тарификация». С помощью подраздела «Предметы и группы» пользователь может просмотреть, какие предметы присутствуют в учебном плане отдельных групп, сколько часов у группы предполагается по каждому предмету с учетом вида занятия (теория, лаб.работы, консультирование по курсовому проекту и т.д). У пользователя должна быть возможность выгрузить всю информацию о связи Предметов и Групп в xlsx файл. Также в этой части у пользователя должна быть возможность самому создать связь предмет - группа. В разделе «Формирование тарификации» пользователь не только может добавить связь Предмет - Группа, но и назначить преподавателя (преподавателей) на выбранный предмет у выбранной группы. В подразделе «Просмотр» пользователь может увидеть, какие предметы и в каких группах ведут определенные преподаватели, а также посчитать нагрузку преподавателей. В последнем подразделе «Итоговая тарификация» пользователь может выгрузить годовую тарификацию преподавателей в xlsx файл.
Составление расписания. Эта часть также делится на несколько частей. Первая из них - настройка кабинетов преподавателей, в которой пользователь может присвоить кабинет определенному преподавателю, т.е. если данный преподаватель ведет какие-либо пары, то у него будет преимущество вести их в выбранном кабинете. Вторая часть состоит из занятости групп. С помощью этой части пользователь может контролировать, когда у выбранной группы есть окна. Третья часть - редактирование и просмотр расписания преподавателей. Пользователь должен выбрать преподавателя, затем заполнить дни недели и пары группами, в которых этот преподаватель ведет. Следующая часть - редактирование и просмотр расписания групп. В этом окне администратор выбирает в окнах преподавателей для уже заранее выбранной группы. Аналогичное редактирование и просмотр происходит с кабинетами и группами. И последняя, очень важная функция - это функция экспорта в xlsx файл всего расписания.
Оптимизация. Часто бывает, что расписание
необходимо составить в самые короткие сроки, а лучше всего при нажатии одной
кнопки, поэтому необходимо сделать функцию автоматического составления
расписания, при которой соблюдаются все поставленные ограничения. Это
расписание не будет абсолютно оптимальным, т.к. у преподавателей есть особые
пожелания на счет времени занятий. Однако в данной работе под понятием
«оптимальное расписание» подразумевается автоматизированное составление
расписания.
.2.2 Функциональные требования
Для корректного входа в программу администратору необходимо ввести логин и пароль.
В "Настройке данных" нужно создать несколько разделов: редактирование групп, редактирование предметов, редактирование кабинетов, редактирование сотрудников, настройка семестра. В каждом разделе пользователь с помощью таблиц сможет увидеть информацию, которая хранится в базе данных. А также с помощью трех кнопок пользователь сможет удалить, редактировать, добавить информацию в таблицы и базу данных. С помощью раздела «Установки» можно выбрать период времени, семестр и нажать кнопку, которая бы подтверждала ваш выбор. В этой части должен быть переход на вкладки с тарификацией и с составлением расписания.
Когда пользователь переходит, с помощью кнопки, с формы с настройкой данных на форму с тарификацией, он может увидеть 4 раздела: «Предметы и группы», «Формирование тарификации», «Просмотр тарификации», «Итоговая тарификация». Чтобы выполнить задачу просмотра нагрузки групп, пользователь должен выбрать группу, затем с помощью таблицы в этом разделе сможет посмотреть: какие преподаватели ведут в этой группе, какой предмет, сколько часов отводится на теорию, лаб.работы, курсовой проект и т.д. Также в программе должны быть несколько кнопок: очистить всю информацию об определенной группе, удалить определенную информацию о группе, добавить связь между преподавателем, группой и количеством часов, кнопка выгрузки информации в xlsx файл. В разделе «Просмотр» должна быть выполнена задача визуального представления нагрузки преподавателя, который выбран пользователем. Информация о том, в каких группах он ведет, какой предмет, сколько часов, должна появиться в таблице на экране. Дополнительно требуется кнопка выгрузки данных о нагрузке преподавателе в xlsx файл. В разделе «Формирование тарификации» пользователь может связать данные из разных сущностей базы данных, т.е. назначить выбранного из списка преподавателя в выбранную из списка группу, чтобы он вел определенный предмет. С помощью кнопки «Связать» программа должна осуществлять связь и вносить изменения в базу данных. В разделе «Итоговая тарификация» можно сформировать годовую тарификацию преподавателей с помощью двух списков, в одном из которых хранится информация обо всех преподавателях, в другой выбираются, те из них, которые будут тарифицированы. С помощью кнопок можно добавлять из первого списка во второй выбранных преподавателей. Обязательно в этом разделе должна быть кнопка выгрузки выбранных преподавателей, хранящихся во втором списке, в xlsx файл.
Также с формы настройки информации пользователь может перейти на форму с составлением расписания, нажав кнопку. В этой части будет несколько вкладок: «Выбор кабинетов», «Занятость групп», «Занятость преподавателей», «Расписание», «Экспорт». Каждая вкладка выполняет свои задачи. При нажатии на вкладку «Выбор кабинетов» пользователь может присвоить кабинет преподавателю на определенный предмет. Связь будет происходить при выборе из списка определенного корпуса, кабинета, преподавателя и предмета преподавателя. Чтобы связать эти данные нужно будет нажать на кнопку, информация о присвоении кабинета преподавателем на определенный предмет будет появляться в общей таблице, которая также будет на этой форме. Пользователь сможет удалить привязанность преподавателя к кабинету, редактировать ее с помощью кнопок. Вторая вкладка - «Занятость групп». На ней пользователь сможет выбрать группу и с помощью таблицы, посмотреть, занята группа в определенный день недели, в определенное время. Если у группы уже стоит предмет, то ячейка - красная, если свободная пара, то ячейка зеленая. Вкладка «Занятость преподавателей» очень похожа на вкладку «Занятость групп». Пользователь также выбирает преподавателя и по таблице видит, где у него свободные пары, а где он занят. Во вкладке «Расписание» есть три подраздела: расписание по преподавателю, расписание по группе, расписание по кабинету. Если пользователь выберет расписание преподавателей, то из общего списка может выделить конкретного преподавателя и составить расписание именно для него. Если пользователь нажимает на вкладку расписание группы, то видит аналогичную форму, где сначала выбирает группу, а затем заполняет таблицу предметами. Во вкладке расписание по кабинетам пользователь с помощью таблицы и списка кабинетов, может увидеть в какое время и в какой день недели занимается та или иная группа. И последняя вкладка - «Экспорт». С помощью кнопок пользователь может выгрузить общее расписание, расписание по кабинетам, расписание по отдельным группам, расписание по конкретным преподавателям.
Также на этой форме с помощью кнопки пользователь может вернуться на форму настройки данных. На этой же вкладке должна быть кнопка «Оптимизация», нажав на которую пользователю необходимо будет сохранить уже готовое расписание в нужную папку.
Выход из программы осуществляется через форму
«Настройка данных» с помощью кнопки «Выход».
.3 Обоснование выбора ПО
Из всего огромного выбора программного обеспечения для своей курсовой работы я выбрала SQLServer. SQLServer - это максимально функциональные программы, которые предназначены для создания и хранения базы данных и обеспечения доступа из других программ. Так же SQLServer считается довольно надежной программой, потому что имеет сложный доступ к данным.SQL Server позволяет резервное копирование в любой момент рабочего дня без отключения пользователей. Так как наша база данных находится в третьей нормальной форме, то это идеальная программа для создания БД.
Также для удобного использование базы администратором была выбрана программа VisualStudio, на которой было написано приложение. VisualStudio - программа, которая имеет ряд плюсов, такие как: расширяемость системы (можно подгружать любые exe, импортировать классы, объекты из др. программ), кроссплатформенность, открытость исходных библиотек, исполняемых программ, возможность привлечения сторонних разработчиков при разработке системы, защищенность и контроль версий подключаемых алгоритмов, скорость работы, удобство разработки и многие другие.
Для оптимизации ручного составления расписания было выбрана программа IBMiLogCPLEXOptimizationStudio. Это программа имеет ряд преимуществ. Во-первых, язык программы достаточно прост, очень похож на язык программирования С#. Также программа прекрасно совместима с MSOExcel, VisualStudio. С помощью математических ограничений программа автоматически выдает результат оптимизации.
SQLServer
и VisualStudio являются
продукцией Microsoft,
поэтому легко интегрируются. Так как программа VisualStudio
поддерживает два языка программирования: C#
и VisualBasic. Для разработки
приложения был выбран язык С#. Это один из самых мощных языков
программирования, который помогает создавать безопасные программы. С помощью С#
разработчик в с своей программе может использовать методы, типы, итераторы,
наследование, полиморфизм, а также другие функции. Благодаря преимуществам
языка С#, он выбран как основной язык для написания приложения.
.3.1 Базы данных
Для построения базы данных был создан ее макет в
программе Erwin. (Рис.4)
Рис.4 Макет базы данных
.3.2 Интерфейс
Для выполнения требований был спроектирован макет интерфейса, с помощью которого создано приложение.
2.3.3 Оптимизация
С помощью некоторого множества ресурсов можно создать фиксированную систему заданий. Цель дипломной работы: при известных ограничениях необходимо найти наилучший, оптимальный алгоритм составления расписания. Основные показатели оптимальности: временная длина расписания, а также соблюдение всех ограничений.