Для эффективной работы предприятия необходимо иметь рациональный план развития.
Планирование – это процесс разработки, последующего контроля хода плана его реализации и корректировки в соответствии с изменяющимися условиями. В общем случае это процесс обработки информации по обоснованию предстоящих действий, определение наилучших способов достижения целей. Планирование работы предприятия состоит из многих составляющих [3], таких как: обоснование целей и задач управления, разработка плана программы будущих действий, прогнозирование – научное предвидение событий, оценка перспектив, разработка графика – временной последовательности работ по достижению целей и реализации программ, составление бюджета – обоснование объёма затрат и распределение ресурсов, определение политики предприятия – выработка общих правил, внутренних положений, руководящих документов и т.д., установление деловых процедур, обеспечивающих наиболее эффективные методы и приёмы выполнения всего комплекса работ.
Выделяют следующие виды планирования [2]:
• стратегическое. Ориентировано на долгосрочную перспективу и определяет основные направления развития;
• тактическое. Определяется реализация планов, намеченных при стратегическом планировании;
• оперативно-календарное. Конкретизируются показатели тактического плана с целью организации повседневной планомерной и ритмичной работы предприятия;
• бизнес-планирование. Предназначено для оценки целесообразности внедрения того или иного предприятия.
В данной работе рассматриваются методы, используемые при разработке плана программы будущих действий на оперативно-календарном уровне. Предприятия, оказывающие метрологические услуги, выполняют поверку и различные виды ремонта средств измерений. Для того чтобы эффективно выполнять необходимые работы, предприятию необходимо рационализировать нагрузку сотрудников.
Особенностью метрологических предприятий является то, что сотрудники могут выполнять только те виды работ, на которые они аккредитованы. Так, например, один сотрудник может выполнять поверку теплотехнических и магнитных средств измерения, а другой сотрудник – поверку только теплотехнических средств измерения. При этом у каждого исполнителя есть свой фонд рабочего времени, т.е. общее количество рабочих часов. В этих ограниченных условиях необходимо наиболее эффективно произвести планирование работ, чтобы: работа была максимально выполнена, сотрудники рационально задействованы, можно было произвести анализ эффективности тех или иных сотрудников, можно было произвести анализ возможности выполнения той или иной работы.
Данную задачу можно отнести к задачам линейного программирования. Такие задачи связаны с вопросами эффективного использования или распределения ограниченных ресурсов для достижения желаемых целей. Характерной чертой таких задач является большое число решений, удовлетворяющих их основным условиям [3].
Выделяют такие виды задач линейного программирования [4], как: транспортная задача, задачи диеты, задачи планирования производства и хранения, межотраслевые задачи и т.д.
Для решения задачи, поставленной в этой работе, наиболее подходящим является «Задача о назначениях» [5], основанная на транспортной задаче. В наиболее общей форме этот алгоритм формулируется следующим образом: Имеется некоторое число работ и некоторое число исполнителей. Любой исполнитель может быть назначен на выполнение любой (но только одной) работы, но с неодинаковыми затратами. Нужно распределить работы так, чтобы выполнить работы с минимальными затратами. Этот алгоритм мог бы подойти, если бы сотрудник выполнял только один вид работ. Но в нашем случае, сотрудник может выполнять один или более вид работ. Также алгоритм задачи о назначениях не подходит, потому что в нашем случае сотрудник выполняет не любой вид работ, а строго определенный. Решение поставленной задачи будет основываться на алгоритме задачи о назначениях.
Предлагаемое решение. Составим математическую модель поставленной задачи.
Задача: Имеется n работ и m исполнителей. На выполнение работы необходимо время: w1, w2, ..., wn. Исполнители, располагают фондом времени: t1, t2, ..., tm. Причём исполнитель может выполнять не все виды работ. Пусть cij – время выполнения i-м исполнителем j-й работы.
Требуется составить план выполнения n работ, при котором работа будет максимально выполнена.
Решение. Построим математическую модель задачи [6]. Обозначим через xij переменную, равную единице, если j-й исполнитель назначен на i-ю работу, и нулю – если не назначен. Тогда задача сводится к такой задаче линейного программирования:
Определить значения cij, которые максимизируют выполнение работы:
(1)
при условиях:
(2)
(3)
(4)
(5)
(6)
(7)
Условие (2) обозначает, что время, назначенное на выполнение данной работы, не превышает время, необходимое для её выполнения. Условие (3) обозначает, что сумма времени работ, назначенных исполнителю, не превышает его фонд времени. Условие (5) обозначает, что на выполнение одной работы можно назначить одного или более исполнителей. Условие (6) обозначает, что одному исполнителю можно назначить одну и более работ. Условия задачи для удобства их анализа поместим в таблице.
Алгоритм распределения заключается в следующем.
Выбираются исполнители, которые допущены до текущей работы: xij=1.
Из выбранного списка исполнителей берётся первый исполнитель, у которого фонд времени больше нуля: ti ³ 0. Если такой исполнитель существует, то переходят к шагу 3, иначе, к шагу 5.
В клетку записывается минимальное значение между фондом времени исполнителя и временем выполнения работы: cij = min(ti, wj). При этом из фонда времени исполнителя и из времени на выполнение работы вычитается полученной cij.
Если фонд времени исполнителя равен нулю ti = 0, то этот исполнитель исключается из дальнейшего рассмотрения.
Время выполнения работы |
Исполнители (фонд времени) |
Остаток времени выполнения работы |
|||
t1 |
t2 |
… |
tm |
||
w1 |
x11 |
x12 |
… |
x1m |
W1 |
w2 |
x21 |
x22 |
… |
x2m |
W2 |
… |
… |
… |
… |
… |
… |
wn |
xn1 |
xn2 |
… |
xnm |
Wn |
Остаток фонда времени исполнителей |
T1 |
T2 |
… |
Tm |
xij – допуск исполнителя до работы – будет записан в левом верхнем углу клетки, а сij –время, назначенное исполнителю на выполнение работы, будет записывать в правом нижнем углу клетки.
Анализируется остаток времени на выполнение работы. Если он равен нулю: wj = 0, то эта строка исключается из дальнейшего рассмотрения.
Если текущая строка – последняя, то алгоритм завершается. Иначе, происходит переход к следующей строке и выполняется шаг 1.
Заключение
Был предложен алгоритм, оптимизирующий распределение задач между исполнителями при заданных ограничениях. Этот алгоритм можно применять не только в метрологических предприятиях, но и на предприятиях других отраслей, выполняющие много разных видов работ, требующих для их выполнения аккредитации исполнителя (станция технического обслуживания). Этот алгоритм позволит эффективно распределять задачи, а также, анализировать текущую нагрузку.