Научная статья на тему 'Применение алгоритма поиска с запретами в задаче автоматизированного составления оптимального штатного расписания'

Применение алгоритма поиска с запретами в задаче автоматизированного составления оптимального штатного расписания Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1530
191
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СОСТАВЛЕНИЕ РАСПИСАНИЯ / БИНАРНОЕ ПРОГРАММИРОВАНИЕ / МЕТАЭВРИСТИКИ / ПОИСК С ЗАПРЕТАМИ / МЕТОД ВЕТВЕЙ И ГРАНИЦ / OFTAPLANNEГ / SCHEDULING / BINARY PROGRAMMING / METAHEURISTICS / TABU SEARCH / BRANCH AND BOUND / OPTAPLANNER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Боровых Наталья Игоревна, Красоткина Ольга Вячеславовна

Выполнена математическая постановка задачи как задачи бинарного программирования. Рассмотрены существующие методы решения задачи составления расписания: точные и приближенные. Выбран приближенный метаэвристический метод поиск с запретами. Разработано приложение на ЯП Java, реализующее выбранный метод с применением библиотеки OptaPlanner, и произведено его экспериментальное исследование: сравнение близости полученного результата к решению на основе точного метода ветвей и границ, составление и анализ недельного расписания.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Боровых Наталья Игоревна, Красоткина Ольга Вячеславовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLYING TABU SEARCH TO THE AUTOMATED OPTIMAL STAFF SCHEDULING PROBLEM

Mathematical model of the problem as a binary programming problem is provided. Survey of existing methods (exact and approximate) of scheduling is given. Approximate me-taheureistic method Tabu Search is chosen. Created Java application with OptaPlanner library using applies chosen method. Several experiments were implemented: comparison of approximate solution and exact solution found with branch and bound method, weekly schedule creating and analyzing.

Текст научной работы на тему «Применение алгоритма поиска с запретами в задаче автоматизированного составления оптимального штатного расписания»

УДК 004.023

ПРИМЕНЕНИЕ АЛГОРИТМА ПОИСКА С ЗАПРЕТАМИ В ЗАДАЧЕ АВТОМАТИЗИРОВАННОГО СОСТАВЛЕНИЯ ОПТИМАЛЬНОГО ШТАТНОГО РАСПИСАНИЯ

Н.И. Боровых, О.В. Красоткина

Выполнена математическая постановка задачи как задачи бинарного программирования. Рассмотрены существующие методы решения задачи составления расписания: точные и приближенные. Выбран приближенный метаэвристический метод - поиск с запретами. Разработано приложение на ЯП Java, реализующее выбранный метод с применением библиотеки OptaPlanner, и произведено его экспериментальное исследование: сравнение близости полученного результата к решению на основе точного метода ветвей и границ, составление и анализ недельного расписания.

Ключевые слова: составление расписания, бинарное программирование, метаэвристики, поиск с запретами, метод ветвей и границ, OptaPlanner.

В крупных организациях одной из наиболее важных проблем является проблема управления персоналом. В частности, встаёт задача о составлении расписания рабочих смен сотрудников. Оптимально составленное расписание позволяет организации уменьшить затраты по привлечению сотрудников, и тем самым увеличить свою экономическую эффективность.

В данной статье рассмотрена задача составления оптимального штатного расписания работы кассиров. Эта задача актуальная в современном мире, так как всё большую популярность приобретают крупные сетевые магазины самообслуживания, где все выбранные товары оплачиваются покупателем на кассе. В разные дни недели и в разное время суток в магазине может находиться разное количество покупателей. При недостаточном количестве кассиров или в случае недостаточной скорости работы возникают очереди, что сказывается на качестве обслуживания и приводит к потере покупателей. С другой стороны, если кассиров больше, чем необходимо, возникают неоправданные расходы на оплату времени работы лишних кассиров.

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

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

Исходными данными в рассматриваемой задаче является информация о кассирах, количество доступных рабочих мест (касс) и прогноз потока покупателей. Длительные наблюдения за потоком покупателей на различных торговых предприятиях и анализ соответствующих статистических данных свидетельствуют о том, что характер распределения числа покупателей в зависимости от времени суток и времени года является весьма устойчивым [7], поэтому данная информация может быть положена в основу составления оптимального штатного расписания. Для каждого работника указываются его производительность и стоимость часа труда.

Итак, необходимо составить оптимальное расписание смен кассиров в магазине самообслуживания. Под оптимальным в данном случае будем понимать расписание, минимизирующее затраты магазина по привлечению работников к выполнению работ при условии выполнения сотрудниками всего объема работ и соблюдении остальных ограничений, присутствующих в задаче. Весь интервал составления расписания разбит на элементарные промежутки времени - дискретность, с которой составляется расписание. Примем дискретность составления расписания равной 15 минутам. А количество элементарных промежутков времени в интервале планирования равным 672, т.е. будем решать задачу составления недельного расписания.

В задаче составления расписания могут присутствовать следующие ограничения:

1) ограничение на число одновременно работающих сотрудников;

2) ограничение на максимальную и минимальную продолжительность смены;

3) ограничение на общую продолжительность работы для каждого сотрудника в сутки и в течение всего периода составления расписания;

4) ограничение на продолжительность отдыха между двумя сменами;

5) ограничение, учитывающее невозможность назначения сотрудника в определенные интервалы (сотрудник в отпуске, на больничном и т.п.);

6) ограничение, учитывающее предпочтения работников относительно времени работы, количества и чередования рабочих и выходных дней и т.п.

В рамках данной работы не будем учитывать всё многообразие ограничений. Выделим следующие основные ограничения:

1) ограничение на выполнения плана, т.е. количество работающих сотрудников в каждый элементарный промежуток времени должно быть достаточным для обслуживания прогнозируемого числа клиентов;

2) ограничение на количество назначений для каждого работника в сутки (не более одного раза);

3) ограничение на максимальное и минимальное количество одно-

временно работающих сотрудников;

4) ограничение на смены, т.е. работник может быть назначен только на смену определенной длительности.

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

Для математической формализации задачи введем следующие обозначения.

Пусть Б - количество суток в рассматриваемом периоде, тогда конкретные сутки будут обозначаться ё = 1...Б. Сутки состоят из Т элементарных интервалов t = 1...Т.

Так как требуется, чтобы работник мог быть назначен только на смену определенной продолжительности, заранее нужно определить Бё -количество возможных смен в сутках ё (например, если будем рассматривать смены по 4 часа, т.е. по 16 элементарных интервалов, и смена может начаться в 00.00, 00.15, 00.30 и т.д., получаем Бё = 81 ), конкретную смену из всех возможных будем определять как = 1...Бё, продолжительность (количество элементарных интервалов) смены ^ обозначим Р8 , при этом

значения Р8 могут выбираться только из фиксированного множества, например {16, 24, 32}. Введем понятие матрицы смен для суток ё - Аё, в

которой каждый элемент @ё . е {0,1} - бинарная переменная, равная 1, ес-

8ё, ‘

ли ^й интервал принадлежит смене Sё, 0 - если не принадлежит. Вид матрицы А ё задаёт режим работы магазина и возможные режимы работы кассиров, т.е., например, при переходе с круглосуточного режима работы магазина на сокращенный изменяется только вид матрицы А, дополнительных ограничений при этом вводить не нужно. Также добавление новых продолжительностей смен работы кассиров изменяет только размерность

А ё без изменения структуры задачи. Для упрощения будем считать, что

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

Обозначим рг ё объем работ, который должен быть выполнен за

каждый элементарный промежуток времени в сутках ё ;

Введем обозначение для работника п = 1...Ы, где N - общее число

работников. Определим ,t = 1..Т,ё = 1..Б - максимальное и

минимальное число работников, которые могут быть привлечены в момент времени t в сутки ё. Для каждого работника определены: сп - затраты по его привлечению на один элементарный интервал и 1п - производительность за один элементарный интервал.

Тогда хп 8ё ё е {0,1},п = 1..N,8ё = 1..Бё,ё = 1..Б - целевая бинарная

переменная, показывающая назначение или неназначение работника п на смену Яё в сутки ё.

С учетом сделанных обозначений целевая функция имеет вид

Б N Бё

XXX спРЯё хп, Яё,ё ® т1П. (1)

ё=1 п=1 Яё =1

Ограничение на выполнение плана

N Бё

X X аЯё,1пхп,Яё,ё > р^ё, t =1Т ё = 1Б . (2)

п=1=1

Ограничение на количество смен в сутки для каждого кассира (не более одной смены)

Бё

X хп,Яё,ё £ 1, п = 1..N, ё = 1Б . (3)

=1

Ограничение на количество одновременно работающих кассиров

N Бё

^7 £ X X ^ А„,ё £ t = 1.Тё = 1Б . (4)

п=1 Яё =1

Итак, задача сформулирована как задача бинарного программирования, т.е. необходимо решать задачу с огромным количеством переменных, которая в общем виде является КР-полной.

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

Применение точных методов также может быть неоправданным ввиду возможных неточностей построенной модели. Поэтому для решения задач, представляющих практический интерес, целесообразнее использовать приближенные методы. Эти методы позволяют найти приемлемое решение (может и не быть оптимальным, поэтому методы и называются приближенными) КР-полной задачи большой размерности за приемлемое время. Решение задачи производится обычно в два этапа: построение начального решения и улучшение начального решения. На первом этапе широко используются эвристические алгоритмы - алгоритмы, основанные на правдоподобных, но не обоснованных строго предположениях о свойствах оптимального решения задачи (например, жадные алгоритмы). На втором этапе используются алгоритмы локальной оптимизации (локального поиска). У алгоритмов локального поиска есть существенный недостаток - они

221

останавливаются в локальном оптимуме, поэтому глобальный оптимум может быть не достигнут.

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

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

Для решения поставленной задачи составления оптимального штатного расписания выберем метаэвристику - поиск с запретами (Tabu Search), разработанную Фредом Гловером[3], опираясь на результаты исследования^]. В данном исследовании поиск с запретами сравнивался с четырьмя метаэвристиками (оптимизации муравьиной колонии, эволюционные вычисления, итеративный локальный поиск, имитация отжига) применительно к двум задачам составления расписания (Group Shop Scheduling и Jop Shop Scheduling) и показал лучшие результаты на множестве тестов. Множество других примеров[2,4-6] подтверждают успешность применения данной метаэвристики для составления разного рода расписаний.

Поиск с запретами принадлежит к классу стратегий локального поиска. Основная идея техники поиска с запретами - избегать циклов (посещения одних и тех же решений) в процессе поиска, при помощи списка запретов (tabu list), что позволяет не останавливаться в локальных оптиму-мах. В списке запретов хранится информация об истории поиска в виде фиксированного числа просмотренных решений. Принятие решения на следующей итерации зависит не только от его качества, но и от информации об истории поиска. На хранимые в списке запретов решения накладывается табу, и они не могут быть выбраны при анализе окрестности. В этой технике на каждой итерации генерируется полная окрестность текущего решения. Лучшее решение (не табу) из окрестности выбирается для следующей генерации.

Для разработки приложения выбрана библиотека OptaPlanner версии 5.5.0, в которой реализуются популярные оптимизационные алгоритмы (эвристические и метаэвристические), в частности алгоритм поиска с запретами.

OptaPlanner - сводобно распространяемая библиотека, написанная на Java, выпущенная в соответствии с Apache Software License. Выбор обусловлен тем, что другие аналогичные по функциональности и удобству бесплатные библиотеки отсутствуют. Для написания программы будем использовать свободную интегрированную среду разработки приложений на языке программирования Java - NetBeans 7.3.

В процессе программной реализации решения задачи можно выделить несколько ключевых этапов.

Во-первых, решаемую задачу необходимо представить в виде объектной модели, т.е. описать её в объектно-ориентированном стиле в виде классов. Для представления данных задачи требуются классы: «работник» (Employee), «дата» (Date), «время смены» (ShiftTime), «смена» (определяется датой и временем смены) (Shift). Также необходим класс «назначение на смену» (ShiftAssignment), он будет являться сущностью планирования. Это означает что значение определенных полей (переменных планирования) экземпляров этого класса будут изменять в процессе оптимизации. Класс «назначение на смену» будет содержать поля: смена, номер кассы, работник. В данном случае переменной планирования будет являться поле «работник» (на работу в определенной смене на определенной кассе можно назначить одного работника из множества доступных работников для назначения или не назначать никого).

Во-вторых, необходимо определить правила вычисления счета. В библиотеке OptaPlanner отсутствует понятие целевой функции. Для сравнения решений по качеству используется счет двух уровней. Лучшим считается решение с самым высоким счетом: сначала максимизируется счет первого уровня (hardscore), потом второго (softscore). Счет первого уровня будем вычислять как сумму штрафов за нарушение ограничений (2), (3), взятую со знаком «минус» (ограничение (4) не учитывается, т.к. при данной объектной модели задачи не может быть нарушено). Тогда допустимое решение, т.е. решение, не нарушающее представленных в задаче ограничений, имеет счет 0. А правило для вычисления счета можно записать следующим образом:

D T N S d

hardscore = (V V V V if (a l x d - p d < 0) ?(a l x d - p. d ):0) +

v ./V Sd ,t n n, Sd , d ± t,d ■' v Sd ,t n n,Sd , d ± t, d ■' ■'

d = 1 t = 1 n = 1 Sd= 1

D N Sd

+ (V V V if (1 - Xn,Sd,d < 0)?(1 - Xn,Sd,d) : 0).

d =1 n =1 Sd =1

Тогда учесть необходимость минимизации целевой функции (1) можно с помощью счета второго уровня, который будем вычислять следующим образом:

D N Sd

S0ftSC0re =- V V V CnPSdXn ,Sd ,d .

d=1 n=1 Sd =1

Созданное приложение считывает данные из файлов в формате Microsoft Excel, решает задачу составления расписания на основе метода поиска с запретами и имеет графический интерфейс, основанный на библиотеке Swing, для вывода полученного результата.

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

и границ.

Решение задачи точным методом проводится в пакете MATLAB версии 7.11 (R2010b), с использованием встроенного набора инструментов Optimization Toolbox, в котором содержится функция для решения задачи бинарного программирования bintprog, реализующая метод ветвей и границ.

Эксперимент проводится на машине Intel Core i3 CPU, 2.27 Ггц, ОЗУ 3 Гб.

Учитывая, что точные методы не применимы для реальных задач из-за огромного пространства поиска, ограничим количество переменных. Проведем эксперимент 20 раз, генерируя данные случайным образом (рис.1).

Рис. 1. Результат эксперимента

Вычислим абсолютное (по формуле (5)) и относительное (по формуле (6)) среднеквадратичное отклонение результата, полученного приближенным методом от оптимального решения:

Сабс = ■

1 n _ 2

- Z(x- x)

ni=1

(5)

s_. =

S

абс

• 100 %

1 n 1Z*

пТҐ1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

где щ - значение целевой функции, полученное в / -м эксперименте методом поиска с запретами; щ - значение целевой функции, полученное в / -м эксперименте методом ветвей и границ.

Получены отклонения: £абс = 131,45, £отн = 6.3 % .

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

Теперь протестируем приложение на реальной задаче: построим недельное расписание.

На рис. 2 показано, как меняется счет ИагёБСОге в процессе решения задачи: начиная от огромного количества нарушенных ограничений до удовлетворения всех жестких ограничений задачи, т.е. до получения допустимого решения.

Рис. 2. Зависимость счета Нагй8соге от времени

На рис. 3 показано, как меняется счет бойбсогє в процессе решения задачи: от нулевого (когда не назначен ни один работник и затраты равны 0) до счета, показывающего затраты за неделю на привлечение работников при выполнении поставленных условий. На рис. 4 показано, как обеспечивается потребность в производительности труда для обслуживания прогнозируемого числа клиентов.

Рис. 3. Зависимость счета БоАБвоге от времени

- . обеспечено У требуется / 1

I і / и I . И і І I 1 I 1 м I 'Iі! у 1 1 "Ч А 1 1

I ,! . . 1! ■ 1 1 1

120 240 360 400 600

Номер элементарного интервала

Рис. 4. Соотношение потребности в производительности и обеспеченной производительности

Итак, с помощью разработанного приложения на основе выбранного метаэвристического метода поиска с запретами получено расписание, которое удовлетворяет описанным ограничениям задачи за приемлемое время.

Список литературы

1. Blum C. Metaheuristics for group shop scheduling: Universite Libre de Bruxelles, 2002.

2. Burke E.K., Kendall G., Soubeiga E.. A tabu-search hyperheuristic for timetabling and rostering // Journal of Heuristics, 9(6):451-470. 2003.

3. Glover F., LagunaM. Tabu search. Dordrecht: Kluwer Acad. Publ.,

1997.

4. Luca Di Gaspero and Andrea Schaerf. Tabu search techniques for examination timetables // Lecture Notes in Computer Science, 2079:104-117, 2001.

5. Musliu N. Applying tabu search to the rotating workforce scheduling problem //The 5th Metaheuristics International Conferencej MIC. 2003. Т. 3.

6. White G.M., Xie B.S., Zonjic S. Using tabu search with longer-term memory and relaxation to create examination schedules // European Journal of Operational Research. 153:80-91. 2004.

7. Пиликов Н. П. Секретные технологии организации труда у мировых гигантов розничной торговли Carrefour и Auchan[Электронный ресурс]// Планирование и организация многосменного режима работы [сайт]. [2004]. URL: http://www.mnogosmenka.ru/pilikov/indi graphiki.htm (дата обращения 10.04.2013).

Боровых Наталья Игоревна, natali. bor1992@,mail.ru, Россия, Тула, Тульский государственный университет,

Красоткина Ольга Вячеславовна, канд. физ.-мат. наук, доц., o. v.krasotkina@yandex.ru, Россия, Тула, Тульский государственный университет.

APPLYING TABU SEARCH TO THE AUTOMATED OPTIMAL STAFF SCHEDULING

PROBLEM

N.I.Borovykh, O. V.Krasotkina

Mathematical model of the problem as a binary programming problem is provided. Survey of existing methods (exact and approximate) of scheduling is given. Approximate me-taheureistic method - Tabu Search - is chosen. Created Java application with OptaPlanner library using applies chosen method. Several experiments were implemented: comparison of approximate solution and exact solution found with branch and bound method, weekly schedule creating and analyzing.

Key words: scheduling, binary programming, metaheuristics, tabu search, branch and bound, OptaPlanner.

Borovykh Natalia Igorevna, natali. bor1992@mail. ru, Russia, Tula, Tula State University,

Krasotkina Olga Vyacheslavovna, candidate of physical and mathematical sciences, docent, o. v. krasotkina@yandex. ru, Russia, Tula, Tula State University

i Надоели баннеры? Вы всегда можете отключить рекламу.