Диплом: Программные средства календарного планирования (на примере Google Календарь и Google AppSheet)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
55
В правой части матричного уравнения (3.8) - (3.11) задаётся вектор b,
который состоит из (3+число задач) компонент. В программе используется
функция calloc, которая выделяет память для записи матриц...
a = (double **) calloc(ctrl.nb+3,sizeof(double*));
b = (double *) calloc(3+ctrl.nb,sizeof(double));
ndays = (unsigned int *) calloc(ctrl.nb,sizeof(unsigned int));
Используется, приведенная в листинге программы в приложении А,
функция calcdates, которая вычисляет сколько всего дней потребуется для
завершения всех задач начиная с даты оптимизации...
extr = calcdates(ndays);
Вектор k соответствует коэффициентам функции максимизации (или
минимизации). Всего имеется по коэффициенту k
i
на реализацию каждой
задачи в течении каждого из 3-х дней, 3*(число задач), + по коэффициенту на
каждую дополнительную переменную y
i
, + некоторое количество
коэффициентов k
i
для учёта также и дней ближайших к рассматриваемым 3-м
дням планирования…
k = (double *) calloc(3*(ctrl.nb+1)+extr,sizeof(double));
В следующем участке кода производится стандартная процедура
обнуления всех начальных значений коэффициентов, под которые только-что
была выделена память...
for(j=0; j<3*(ctrl.nb+1)+extr; j++)
k[j] = 0;
Выделяется память для коэффициентов симплекс-матрицы [a
ij
], всего
имеем: число строк [a
ij
] = числу коэффициентов k, число столбцов [a
ij
] =
3+число задач...
for(i = 0; i<3+ctrl.nb; i++)
a[i] = (double *) calloc(3*(ctrl.nb+1)+extr,sizeof(double));
for(i = 0; i < 3+ctrl.nb; i++)
for(j=0; j<3*(ctrl.nb+1)+extr; j++)
a[i][j] = 0;
56
Далее производится присвоение матричным элементам численных
значений:
- присвоение для коэффициентов a
ij
...
for(i=0;i<3; i++)
a[i][i+3*ctrl.nb] = 1;
- присвоение для правой части для уравнений 3-х дней
планирования...
b[0] = 12*60;
b[1] = 12*60;
b[2] = 12*60;
- присвоение значений для коэффициентов при х
i
(здесь i порядковый
номер задачи) соответствующих 3-м дням планирования, они равны
временам минимальной части работы для каждой задачи...
for(i = 0; i < ctrl.nb; i++)
{
a[0][3*i] = ((double) ptr->perc_min)*((double) ptr->time)*0.01;
a[1][3*i+1] =((double) ptr->perc_min)*((double) ptr->time)*0.01;
a[2][3*i+2] =((double) ptr->perc_min)*((double) ptr->time)*0.01;
- присвоение коэффициентов левой части единичных значений для
учёта условий х
i
≤ x
imax
...
a[i+3][3*i] = 1;
a[i+3][3*i+1] = 1;
a[i+3][3*i+2] = 1;
- присвоение в правой части уравнения значений x
imax
...
b[3+i] = (100.0-ptr->perc_done)/(ptr->perc_min);
- в зависимости от приоритета коэффициентам k функции
оптимизации присваивается значение от 0 до 3 по правилам описанным
внутри следующего участка кода...
if(ptr->priority != 'n')
{
...
57
}
- в конце цикла осуществляется переход к следующей задаче,
посредством связывания указателя со следующим адресом в списке структур
задач...
ptr = ptr->next;
}
Далее в программе производятся операции поиска минимальных
значений и жордановы преобразования согласно алгоритму описанному
выше. Полный текст данного программного кода довольно громоздок и
приводится в приложении А.
Для примера допустим имеются 3 работника склада. Просматривая их
календари было обнаружено, что сотрудники имеют возможность
непрерывно присутствовать на работе 5, 6 и 7 часов соответственно, что
соответствует 300, 360, 420 минутам. При этом в сумме каждому нужно
отдежурить по 10 часов в течении ближайших трёх дней, и предпочтительно,
чтобы первый работал в первый день, второй – во второй, третий – в третий.
Тестирование проводилось 8 ноября 2018 г. около 8 часов утра. Были
введены три задачи с названиями 1, 2 и 3, которые должны быть сделаны до
вечера 8, 9, 10 ноября соответственно; с минимальными временными
интервалами дежурства 5 часов, что соответствует 50% от суммарного
времени дежурства на каждого. А именно, в программе были введены
следующие параметры:
название задачи – 1, 2, и 3;
периодичность (недельная, месячная, годовая, или никакая, для
единичного события) – никакая;
приоритет – любое число от 1 до 3 по выбору;
дата завершения задачи в формате год/месяц/день
час:минута:секунда – 2018/11/08 23:00:00, 2018/11/09 23:00:00 и 2018/11/10
23:00:00;
58
требуемое количество минут для завершения – 300 (для всех трёх
случаев);
количество требуемых денег – любое число по выбору;
минимальная часть работы, которую необходимо сделать за один
раз – 50% (для всех трёх случаев);
часть работы, которая сделана до настоящего момента – 0 (для
всех трёх случаев);
сложность выполнения, число от 1 до 3 – любое число по выбору.
После оптимизации было получено очевидное решение: отдежурить
по 10 часов каждому: первому – в первый, второму – во второй, третьему – в
третий дни соответственно.
Более сложный случай: если суммарно требуется отдежурить первому
например 14 часов, второму – 5 часов, а третьему – 5 часов, при этом
очерёдность не важна, но для сходимости алгоритма нужно определиться с
очерёдностью второго и третьего. Поэтому вводятся три задачи, которые
должны быть сделаны до: 2018/11/10 23:00:00, 2018/11/08 23:00:00 и
2018/11/09 23:00:00 соответственно; с минимальными временными
интервалами дежурства 5 часов, что соответствует 28%, 100%, 100% от
суммарного времени дежурства для работников 1, 2, 3. В этом случае
программа рекомендует отдежурить второму и третьему по 5 часов в первый
и второй день соответственно, а первому отдежурить в первый и второй дни
по 5 часов и остальное - в третий день.
В следующем цикле тестирования было введено четыре задачи с
названиями 1, 2, 3, 4 со следующими данными:
с датами и временами выполнения до 2018/11/10 23:00:00,
2018/11/09 23:00:00, 2018/11/08 23:00:00 и 2018/11/09 23:00:00
соответственно;
59
с временами исполнения - 600, 300, 300 и 300 минут,
соответственно;
с минимальными интервалами несения дежурства – 5, 2,5, 5, 5
часов, соответственно, или 50%, 50%, 100%, 100% от суммарного времени
требуемого отдежурить.
После произведения оптимизации программа выдаёт следующее
оптимальное расписание (рис. 15):
Рисунок 15 – Вывод оптимального расписания
«1»: 300 минут в первый день;
«1»: 0 минут во второй день;
«2»: 300 минут во второй день;
«3»: 300 минут в первый день;
«4»: 300 минут во второй день.
Это отображено на скриншоте вывода программы, показанного на
рисунке 15. Вторая строка вывода означает, что остальные 300 минут для «1»
могут быть распределены по дням как угодно, что не может быть определено
строго математически. Поэтому задача оптимизации не определена, т. е.
60
имеется множество решений для сотрудника «1», что и отображается как «0
минут во второй день» на рисунке 15. Такие случаи называются
вырожденными решениями [7, с. 27].
Использованием программы может заниматься один сотрудник
предприятия, куратор проекта (руководитель, менеджер), который должен
обладать базовыми навыками работы с персональным компьютером. При
этом от куратора не требуются специальные технические знания, или навыки
программирования.
В обязанности куратора должно входить проведение следующих
операций:
ведение списка дел каждого сотрудника, с занесением в таблицы
Excel или любой другой базы данных, с возможным использованием
мобильного приложения, созданного с помощью AppSheet;
проведение оптимизации по времени порядка выполнения задач
для каждого сотрудника каждые 3 дня;
занесение полученного результата календарь проекта, который
необходимо сделать доступным для он-лайн просмотра сотрудниками.
Пользователи приложения Google Календарь должны обладать
базовыми навыками работы с персональным компьютером или мобильным
телефоном. Важно использование корпоративного аккаунта для информации
предназначенной только сотрудникам организации, поэтому от сотрудников
требуется определённая работа по настройке аккаунта Google в устройствах
Android и умение пользоваться корпоративной электронной почтой.
Экономическая эффективность данного метода ведения
хозяйственной деятельности обеспечивается более гибкой схемой
организации всего трудового процесса. На предприятии АО «Контакт»
данная система была использована для формирования гибкого графика
дежурств с учётом свободного времени сотрудников. Поскольку сотрудники
61
не всегда могут присутствовать на складе для дежурств по личным причинам
или причинам другой деятельности, данному сотруднику требуется
отработать все часы дежурства в ближайшее время. Созданная программа
была использована для оптимизации дежурства сотрудников в ближайшие 3
дня. При этом заранее определятся приоритет выполнения задания в
определённый день, с помощью выставления конечных даты задания.
Полный цикл планирования включает в себя следующие стадии:
1. Каждый сотрудник записывается в программу как отдельная
задача, среди параметров вводятся:
a) количество часов необходимых отдежурить за 3 дня – в программу
водится как время выполнения задачи;
b) минимальная часть работы к исполнению – в программу водится
как минимальный непрерывный интервал необходимый отдежурить человеку
в один день с учётом свободного времени сотрудника в ближайшие 3 дня,
что вычисляется исходя из календарных данных сотрудника;
c) приоритет выполнения дежурства данным сотрудником в
ближайшее время – выставляется исходя из данных куратора.
2. Куратором производится оптимизация, при которой программа
старается заполнить каждый из ближайших 12 часовых рабочих 3-х дней
отрезками дежурства отдельных людей с учётом их приоритетов.
3. Полученная информация заносится куратором в календарь
проекта и делается доступной для сотрудников.
При разработке программного продукта очень важным параметром
является экономическая эффективность, которая представляет собой
соотношение между результатом деятельности и общими текущими
затратами производства. Достоинством разработанной системы
планирования и контроля является учёт личного расписания каждого
62
сотрудника, что должно в перспективе способствовать повышению
конкурентоспособности предприятия.
Итак, в данной главе была разработана программа оптимизации
графика дежурств сотрудников на короткий промежуток времени (3 дня).
Кратко была описана сама программа. Был описан интерфейс пользователя, а
именно описаны действия, которые могут быть произведены в
пользовательском меню программы. В качестве тестирования были описаны
несколько случаев создания расписаний для нескольких работников склада, с
учётом того, что каждый имел свой интервал доступного для дежурства
свободного времени. Были описаны достоинства применения данной
программы на предприятии с точки зрения экономической выгоды. Был
описан порядок действий пользователя при работе с программой, который
был назван в работе циклом планирования.
63
ЗАКЛЮЧЕНИЕ
Для эффективного календарного планирования необходимо создать
систему последовательности действий имеющих четко определенные цели.
Проводя данное исследование был предложен перечень действий
обеспечивающий успешное календарное планирование:
1. Настраивается корпоративный Google аккаунт в мобильном Android
устройстве.
2. Организуется календарь проекта с использованием корпоративного
приложения Google Календарь.
3. Создаётся, c использованием AppSheet, мобильное приложение для
записи заданий и сохранения сопутствующих документов в нереляционной
базе данных в облаке Google.
4. Собирается информация о свободном времени сотрудников на
основании личных календарей сотрудников и информации записанной и
хранящейся в базе данных.
5. Производится оптимизация графика индивидуальных расписаний с
помощью программы предложенной в работе, которая служит объектом
автоматизации календарного планирования.
6. Информация о построенном расписании доводится до сотрудников с
помощью календаря проекта.
7. Производится взаимодействие с сотрудниками с использованием
средств коммуникации, предоставляемых пользователям корпоративного
аккаунта.
8. На основании информации о свободном времени выбирается дата и
время встреч по проекту.
При написании ВКР использовались знания облачных технологий
хранения и обработки информации, таких как Google Календарь и AppSheet.
Была детально изучена типовая технология решения существующих задач:
64
отображение режимов просмотра календарей, контроль сроков выполнения
задач, импорт и экспорт календарей, способы и методы передачи
информации между сотрудниками, сбор информации для объекта
автоматизации календарного планирования.
В данной работе отражены организационная работа руководителя
коллектива с описанием функций и характеристиками работы по
календарному планированию работ. Раскрыта роль календарного
планирования для работы коллектива путем изучения взаимодействия
руководителя с сотрудниками. А именно это позволяет контролировать
точность решения и последовательность этапов решения задач.
Особое внимание было уделено изучению и анализу модели
оптимизационного планирования с учетом важности задач при построении
расписания. Была предложена модель построения расписания дежурств
исходя из количества свободного времени на каждого сотрудника,
сложностью поставленных задач, достоинств и недостатков, проведения
сравнительного анализа. Была сформулирована сама оптимизационная
задача. Была выделена технология, которая наиболее подходит для создания
оптимального расписания. Этой технологией стала технология линейного
программирования. Описан и применён метод оптимизации на основе
симплекс-метода. Построена собственная программа оптимизации
распорядка выполнения задач.
Собранный аналитический материал дает представление о
функционировании существующей системы календарного планирования,
преимуществ при переходе на автоматизированные средства календарного
планирования.
Полагаю, что описанный материал является достаточным для
присвоения степени Бакалавра по специальности «Автоматизированные
системы обработки информации и управления».

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран