Sei sulla pagina 1di 8

ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010

Revista Colombiana de
Tecnologas de Avanzada

Recibido: 02 de febrero de 2010


Aceptado: 05 de mayo de 2010

MULTISKILLED WORKFORCE SCHEDULING FOR BUSINESS WITH


VARIABLE DEMAND USING THE GRASP ALGORITHM

ALGORITMO GRASP PARA RESOLVER EL PROBLEMA DE ASIGNACIN


DE HORARIOS EN EMPRESAS DE DEMANDA VARIABLE

Ing. David lvarez Martnez, MSc. Eliana Mirledy Toro Ocampo


PhD. Ramn Alfonso Gallego Rendn

Universidad Tecnolgica de Pereira


Vereda La Julita, Pereira, Risaralda, Colombia
Tel.: 57-6-3137122, Fax: 57-6-3137122
E-mail: {davidalv, elianam, ragr}@utp.edu.co

Abstract: We solved the multiskilled workforce scheduling problem for companies of


goods or services. The mathematical model is solved using the GRASP algorithm, in the
local search phase is uses the method of variable neighborhood search. The methodology
is verified through test cases, especially generated for rostering problem. The presented
results have very good quality.

Keywords: MultiSkilled Workforce Scheduling, GRASP, rostering, variable


neighborhood search.

Resumen: En este artculo se resuelve el problema de asignacin de horarios de personal


en organizaciones tanto de produccin de bienes como de prestacin de servicios donde
los cargos son polifuncionales. El modelo matemtico es resuelto usando el algoritmo
GRASP, en la etapa de bsqueda local se usa el mtodo de bsqueda en vecindario
variable. La metodologa presentada es corroborada a travs de casos de prueba,
especialmente generados para el problema de rostering. Los resultados obtenidos son de
muy buena calidad.

Palabras clave: Programacin de personal polifuncional, GRASP, rostering, bsqueda en


vecindario variable.

1. INTRODUCCIN requiere de los servicios de cada empleado. Las


condiciones para cada situacin especfica difieren
El problema de asignacin de horarios donde los entre compaas y pases debido a las condiciones
cargos son polifuncionales, est presente en una de contratacin cada organizacin.
gran variedad de organizaciones tanto de
produccin de bienes como de servicios, este El objetivo fundamental es minimizar los costos de
problema se denomina asignacin horararia de contratacin, pero teniendo en cuenta algunas
empleados multifuncionales del ingls condiciones mnimas como son la atencin de la
(MultiSkilled Workforce Scheduling), MSWS. demanda de forma oportuna y el eficiente
cumplimiento de las proyecciones de venta a los
En general el problema de asignacin de personal usuarios finales. En este modelo se respeta la
requiere una solucin donde se indique claramente legislacin laboral del sitio geogrfico donde se
las labores a realizar, horarios, y das en que se est desarrollando la actividad.

85
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

Este problema es considerado NP-Hard, por tanto La jornada variable tipo 1 considera que el turno
se justifica el hecho de que la gran mayora de mximo a programar no debe exceder de 7 horas y
investigadores que han abordado el problema lo para ambas formas de contratacin se deben
han hecho a travs de tcnicas heursticas y respetar turnos consecutivos de 3 horas como
metaheursticas. Es as como Pradenas et al., 2008 mnimo.
resuelve el problema de asignacin de supervisores
forestales usando bsqueda tab. 2.1 Funcin Objetivo

Diego Martn et al., 2008 plantean un modelo Consiste en minimizar el tamao de la planta de
lineal entero para asignacin de turnos de personal personal.
de aerolneas, en este modelo se descompone el
problema en varios subproblemas y se resuelve Xijkl = Variable binaria que toma el valor de 1 si la
mediante una tcnica exacta de optimizacin persona j ha sido asignada a una jornada i
matemtica. (completa o variable), en el perodo de asignacin
k el da l y 0 en caso contrario.
Ojeda et al., 2009 plantean un modelo lineal para
asignacin al relajar el modelo se evidencia la Donde
agrupacin del personal en turnos. El modelo es i = 1 Jornada Completa
descompuesto en dos problemas: uno de operacin i = 2 Jornada Variable
y otro de inversin. El primero resuelto mediante j = Cargo principal + cargo secundario (j = ji,...,
un problema lineal (PL), el segundo usando un j f)
Algoritmo Gentico (AG). El resultado entregado k = Hora del da (K = 1, 2,, HC)
por el AG sirve de estructura para el PL. La l = Da de la semana (l = 1, 2,, 6)
solucin del PL mide la calidad de la alternativa HC = Hora de cierre del establecimiento
estudiada.
La Ecuacin (1) presenta la funcin objetivo
En este artculo se resolver el problema de
asignacin de horarios en cadenas de restaurantes 2 Jf Hc 6
usando el algoritmo GRASP. El problema es
descompuesto en operacin e inversin, el primero
Min Z = X
i =1 j = Ji k =1 l =1
ijkl Ec.

es resuelto mediante operaciones aritmticas y el (1)


segundo usando el mtodo propuesto. La
secuencia de presentacin del documento es la 2.2 Restricciones para el nmero de horas
siguiente: en la siguiente seccin se plantea el permitidas en un da
modelo matemtico del problema bajo estudio, en
la seccin 3 se presenta la codificacin y tcnica de Restricciones para i=1 jornada completa se
solucin, en la seccin 4 se hace un anlisis de plantea la Ecuacin (2).
resultados y finalmente en la seccin 5 se presentan
conclusiones y recomendaciones. jf HC

X
j = ji k =1
ijkl = 16Ym i = 1; l = 1, 2,..., 6 Ec.(2)

2. MODELO MATEMTICO
Ym Representa una variable binaria que toma el
El problema planteado consiste en la asignacin de valor de 1 si se representa personal de jornada
horarios que satisfaga una demanda, minimizando completa y 0 en caso contrario.
el nmero de personas que ejecuten los cargos. Se
consideran periodos de hora como unidad de Restricciones para i=2 jornada variable
tiempo, para esta aplicacin se toma como base el
modelo planteado por Bohrquez (2008). Para esta Las Ecuaciones (3) y (4) determinan el valor de
instancia el modelo es reformulado de tal manera Wjl, esta es una variable binaria que est definida
que para la asignacin horaria considerar 9 horas por cada persona de jornada variable del conjunto
de operacin al da, se tiene como base demandas j que va definido {ji,, jf} y toma el valor 1
por cargo en cada uno de los periodos y se cuando la persona j ha sido asignada a cualquier
consideran dos tipos de contratacin, tiempo periodo k del horizonte de asignacin en el da l.
completo y jornada variable tipo 1. En otras palabras, la variable es igual a 1 si la
persona j trabaj algn segmento de tiempo el da l.

86
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

jf HC 2.5 Restricciones asociadas a la obligatoriedad de


X
j = ji k =1
ijkl Wj 'l i = 2; l = 1, 2,...,6 Ec. (3) la asignacin de horas operativas
jf 2


HC

Xijkl 16Wj 'l i = 2; l = 1,2,...,6


j = ji k =1
Ec. (4)
i =1 j=
X ijkl = a
Ec. (9)
k = 1, 2... H C ; l = 1, 2 ..., 6
Para activar las ecuaciones (2, 3 y 4) que
corresponden a la cantidad de das que trabaja una
En la Ecuacin (9) a representa el nmero de
persona, se requiere una nueva variable auxiliar
personas que se requieren para el cargo j en la hora
binaria Zn que activa un grupo de restricciones
k el da l, este debe ser un dato de entrada de
determinado, si se cumple una condicin dada por
acuerdo a la demanda proyectada.
Wjl.
2.6 Restricciones para evitar las horas paralelas
La variable Zn se define para cada persona del
para una misma persona
conjunto j. Si est variable toma el valor de 0 es
porque la condicin se cumple y por lo tanto las
Cada persona puede realizar varios cargos, por
restricciones asociadas a ella se deben cumplir. El
polifuncionalidad, pero esta caracterstica no
subndice n es un nmero entero consecutivo.
permite la simultaneidad de las labores. Estas
restricciones evitan que a una misma persona, sea
Como es usual en la notacin de la programacin
asignada dos veces o ms, el mismo perodo de
lineal entera, M es un nmero positivo grande,
asignacin k, en un mismo da l.
estas consideraciones son llevadas en cuenta en el
siguiente conjunto de restricciones.
Se formula la Ecuacin (10) para cada una de los
cargos principales del conjunto j.
2.3 Restricciones Jornada variable tipo 1
2 jf
El mximo de medias horas a trabajar es 14. Se
formula inicialmente una restriccin que indica si
X
i=1 j = ji
ijkl 1 k =1,2...HC; l =1,2...,6 Ec. (10)

la persona est asignada o no todos los das, dada


en la Ecuaciones (5), (6) y (7). 2.7 Restricciones que aseguran la consecutividad
6

W
l =1
j 'l 6 M (1 Z n ) j ' = j ' i,..., j ' f Ec. (5) de mnimo 3 horas en la jornada laboral de
una persona

Diaria: Esta restriccin se plantea en la Ecuacin (11)


j f HC(l )

Xijkl 8Ym+1 MZn i = 2; l = 1,2,...,6 Ec. (6)
2 jf k +6
j= ji k =1 x
i =1 j = ji p = k
ijpl 6 l = 1, 2,..., 6 Ec. (11)

j f HC(l )

14Ym+1 Xijkl MZn i = 2;l =1,2,...,6 Ec. (7)
j= ji k =1
3. CODIFICACIN Y TCNICA DE
SOLUCIN
2.4 Restriccin para asignar a una persona
nicamente a una de las dos jornadas Debido a la gran complejidad matemtica del
problema planteado se requiere de una tcnica
Se define una variable binaria Ym que indica si la heurstica o metaheurstica para su solucin. El
persona est contratada tiempo completo y otra mtodo seleccionado es el GRASP (Greedy
variable Ym+1 que corresponde a una persona Randomized Adaptive Search Procedures) (Feo,
contratada para tiempo variable, por tanto se 1994),con el fin de efectuar una adecuada
plantea una restriccin excluyente, Ecuacin (8). codificacin del problema propuesto se presenta
una propuesta buscando un buen desempeo del
Ym +Ym+1=1 Ec. (8) algoritmo. Con el fin de evaluar el desempeo del
algoritmo fueron desarrollados por los autores
(lvarez et al., 2009).

87
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

3.1 Codificacin da de la semana. Por lo tanto la matriz tareas (j, k,


l) = C representa, que el cargo C deber ser
Se desea realizar la programacin semanal de desempeado por el empleado j en el periodo de
tareas y horarios de personal incluyendo el tipo de tiempo k del da l.
vinculacin. Cada persona contratada debe tener la
siguiente informacin: el tipo de contrato, el La figura 3 representa grficamente la matriz de
conjunto de habilidades o cargos que puede tareas, en la grfica se asigna el cargo C al
desempear y el horario de trabajo. empleado 4 para el primer periodo de da 3
(mircoles).
En Bohrquez (2008) se consideran 4 tipos de
vinculacin, en este estudio slo se toman en
cuenta dos de ellas: tipo de contrato fijo codificado
como un 1 y contrato variable tipo 1 se codifica
con el nmero 2.

El conjunto de habilidades o cargos que puede


desempear un trabajador se codifica a travs de
nmeros binarios para los k cargos que existan.

Por las restricciones horarias de los contratos un


trabajador slo puede ser programado a lo mximo
dos veces al da, ya que como mnimo se le pueden
programar 3 horas por turno y mximo en un da se Fig. 3. Matriz de tareas
le puede programar 8 horas.
3.2 Algoritmo GRASP
Para esto se codifican los dos turnos por el periodo
de entrada para cada turno (1 y 2) y la duracin de El algoritmo de solucin para el modelo
cada uno de estos. La figura 1 muestra la estructura matemtico presentado en este trabajo es basado en
del vector de contratacin de cada empleado. la tcnica metaheurstica GRASP (Gallego et al.,
2008).

El GRASP es una tcnica presentada por Feo y


Resende (1988), esta ha sido aplicada y
Fig. 1: Vector empleado enriquecida por los desarrollos realizados en
diferentes reas del conocimiento.
La figura 2 representa un posible empleado a
contratar, en el ejemplo el empleado ser vinculado El GRASP consta de 4 grandes de etapas
mediante un contrato variable tipo 1 ya que el denominadas preprocesamiento, construccin,
elemento tipo de contrato del vector tiene un valor bsqueda local y re-encadenamiento de
igual a 2, de los 6 diferentes cargos que tiene la trayectorias.
empresa este esta capacitado para realizar los
cargos 1, 3 y 6 y su horario de trabajo esta dado por La fase de preprocesamiento trata de determinar los
dos turnos, el primer turno comienza desde el esquemas promisorios de solucin mediante
tercer periodo de tiempo y tiene una duracin de 4 ndices de sensibilidad o algoritmos constructivos
horas y el segundo turno comienza desde el (figura 3), la fase de construccin combina
periodo decimotercero y tiene una duracin de 3 mtodos basados en sensibilidad con aleatoriedad,
horas. para determinar una posible solucin factible
(figura 4), la fase de bsqueda local explora
intensivamente la vecindad de una solucin en
procura de una mejor solucin (figura 5) y la fase
Fig. 2: Ejemplo de un empleado codificado de re-encadenamiento de trayectorias combina
pares de soluciones de la lista de soluciones elite
La tarea desempeada durante cada periodo de (buena calidad) para encontrar una mejor solucin
trabajo es un atributo que se codifica mediante un en la trayectoria de las dos soluciones (figura 6).
arreglo matricial de 3 dimensiones j, k y l; donde j
representa el empleado, k el periodo de da y l el
88
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

3.3 Aplicacin de la tcnica de solucin al


problema de asignacin de horarios

El algoritmo implementado fue particionado en


cuatro fases, tal como lo especifica la tcnica
GRASP: fase de preprocesamiento, construccin,
bsqueda local y reencadenamiento de trayectorias.

En las figuras 7, 8 y 9 se explica mediante los


diagramas de flujos de datos de los procedimientos
seguidos en las etapas de construccin, bsqueda
local y reencadenamiento de trayectorias
Fig. 3: Fase de preprocesamiento respectivamente.

En la fase de preprocesamiento la matriz de


requerimientos se ordena descendentemente por el
mayor nmero de personal requerido, este
procedimiento reemplaza el proceso de
identificacin de esquemas promisorios ya que se
pretende dar prioridad a los cargos de mayor
demanda

Este es un buen criterio para el arranque del


mtodo de solucin. Adems del algoritmo GRASP
en la fase de bsqueda local se establece un
algoritmo de bsqueda en vecindario variable
Fig. 4: Fase de construccin de soluciones
(Hansen et al 2003), que permite realizar
transiciones cortas en el vecindario.

Inicio

Buscar que cargo necesita ser suplido.

Asignar un empleado que pueda cumplir el cargo

Actualizar la matriz de requerimientos

Ordenar la matriz de requerimientos

Fig. 5: Fase de bsqueda local

No
Se cumple la demanda
de requerimientos?

Si

Fin

Fig. 7. Diagrama de flujo de datos algoritmo de


construccin

Fig. 6. Fase de re-encadenamiento de trayectorias

89
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

Inicio 3.4 Validacin de la metodologa

Hacer Vecindario igual a 1 Para comprobar el modelo matemtico propuesto


en este trabajo se realiz la implementacin en el
ordenador y se conform una librera de casos de
Escoger aleatoriamente prueba (lvarez et al.,2009); que cuenta con 10
un Empleado
diferentes casos de prueba, en los cuales la
complejidad aumenta a medida que crece el tamao
del problema, los problemas van desde 3 cargos y 4
Escoger aleatoriamente un atributo
polifunciones hasta 12 cargos y 31 polifunciones,
Modificar el valor del atributo
las matrices de requerimientos fueron generadas
Actualizar la matriz de requerimientos con valores aleatorios entre 0 a 5, todos los casos
cuentan con 18 periodos de tiempo, donde un par
de estos representa una hora de trabajo.
Si Contador j es
menor o igual que Nmero
de Tentativas?
El horizonte de tiempo para realizar la asignacin
No de horarios es de un mes. La metodologa se
desarrollo en MATLAB, las pruebas se realizaron
Si Contador i es menor en un mquina con unas especificaciones cercanas
o igual que Vecindario?
un procesador Pentium IV 3.0 GHz y una
memoria RAM de 1 GB.
No

3.5 Calibracin de parmetros


Si No
Existe un Empleado que
no realiza ninguna Tarea?
La metodologa propuesta consta de dos
parmetros el nmero de tentativas o el nmero de
Eliminar Empleado sin tareas
Hacer Vecindario igual
a Vecindario ms 1
veces que se realiza cambios en los atributos y el
Hacer Vecindario igual a 1
nmero de arranques de la metodologa, ambos
parmetros representan un aumento en el tiempo de
respuesta de la tcnica.

No El Vecindario es Para el nmero de tentativas se eligi 20 cambios


mayor que el nmero de
empleados?
ya que no se desea realizar una bsqueda
exhaustiva, mientras que para el nmero de
Si arranques fue 10, el cual es un nmero lo
Fin suficiente grande para seleccionar los mejores y
realizar el re-encadenamiento de trayectorias.
Fig. 8. Diagrama de flujo de datos algoritmo de
bsqueda local
Inicio
4. ANLISIS DE RESULTADOS
Sea ST una solucin elite (buena calidad)
Sea SB una solucin elite
Para cuantificar el valor de las soluciones
encontradas se toma como base el salario mnimo
Encontrar y fijar los empleados que
existen tanto en ST como en SB legal vigente en Colombia de $496.900 mensuales,
se considera que el pago del salario incluye todas
las prestaciones sociales, por tanto este valor es
Modificar ST de tal manera que tenga un empleado de SB multiplicado por un factor de 1.52 a partir de all se
Calcular la matriz de requerimientos para ST obtiene que el valor de la hora a pagar es $3.934.
Regresar a la fase de bsqueda local para ST
En la tabla 1 se muestran los resultados obtenidos
ST es igual a SB?
en los 10 casos de prueba propuestos la columna
No
denominada personal entrega el nmero de
Si
personas a contratar para cada tipo de contrato.
Fin

Fig. 9. Diagrama de flujo datos algoritmo de re-


encadenamiento de trayectorias

90
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

Tabla 1. Nmero de personas a contratar Tabla 3. Contratacin propuesta para el caso


ALV01
Personal Horas Contratadas
Variable Variable C P HE1 HL1 HE2 HL2
Caso Fijo Tipo 1 Fijo Tipo 1 1 4 1 4 11 4
ALV01 4 4 32 20 1 4 1 4 9 4
1 4 3 4 11 4
ALV02 6 6 48 30
1 3 1 4 11 4
ALV03 5 10 40 65 2 4 1 4 9 3
ALV04 8 9 64 42 2 4 13 3 - -
2 3 1 5 - -
ALV05 10 17 80 86
2 3 9 5 - -
ALV06 8 22 64 100
ALV07 15 22 120 118 Las respuestas encontradas consideran una
ALV08 18 35 144 167 operacin de lunes a sbado, debido a que el da
domingo es el da de mayor demanda, en este caso
ALV09 0 57 0 325 es necesario incluir empleados dominicales que no
ALV10 0 60 0 351 son considerados en este trabajo e involucran otro
conjunto de restricciones.
Tabla 2. Costos asociados a la contratacin

Valor Total 5. CONCLUSIONES


Costos de la
Contrato Variable Contratacin Se resolvi el problema de asignacin horaria de
Caso Fijo ($) Tipo 1 ($) ($) empleados multifuncionales para empresas con
demanda variable mediante la tcnica GRASP, a
ALV01 3.021.152 1.888.320 4.909.472
partir de las soluciones encontradas se valid el
ALV02 4.531.728 2.832.480 7.364.208 modelo propuesto en cuanto a su funcionamiento
ALV03 3.776.440 6.137.040 9.913.480 verificndose que para cada periodo se cumple con
la demanda proyectada, respetando todas las
ALV04 6.042.304 3.965.472 10.007.776 restricciones planteadas.
ALV05 7.552.880 8.119.776 15.672.656
ALV06 6.042.304 9.441.600 15.483.904 La codificacin propuesta es vlida para cualquier
tcnica heurstica o metaheurstica. Se recomienda
ALV07 11.329.320 11.141.088 22.470.408 comparar los resultados obtenidos con otras
ALV08 13.595.184 15.767.472 29.362.656 tcnicas de optimizacin.
ALV09 - 30.685.200 30.685.200
La inclusin de la tcnica de bsqueda en
ALV10 - 33.140.016 33.140.016 vecindario variable en la fase de bsqueda local del
algoritmo GRASP, present una gran adaptabilidad
Estas respuestas se pueden consultar en lvarez et mostrando un buen desempeo en el algoritmo
al. (2009). A continuacin se ilustra la contratacin implementado.
para el caso ALV01, tal como aparece en el
summary de la librera. Fueron propuestos 10 casos de prueba que se
inspiraron de situaciones reales observadas en
En la tabla 3 las columnas corresponden a los restaurantes de comidas rpidas, que se ponen a
siguientes tems: disposicin de la comunidad acadmica a fin de
validar la metodologa propuesta para futuras
C: Tipo Contrato investigaciones en el tema.
P: Polifuncin
HE1: Hora de Entrada 1
HL1: Horas Laboradas 1 REFERENCIAS
HE2: Hora de Entrada 2
HL2: Horas Laboradas 2 Gallego R., Escobar A. and Toro E., Tcnicas
Metaheursticas de Optimizacin, Universidad
Tecnolgica de Pereira, Julio 2008.

91
Universidad de Pamplona
I. I. D. T. A.
ISSN: 1692-7257 - Volumen 2 - Nmero 16 - Ao 2010
Revista Colombiana de
Tecnologas de Avanzada

Feo T.A., Resende M.G.C., Greedy Randomized Ojeda R., Domnguez S., Programacin lineal para
Adaptive Search Procedures, Journal of la asignacin de personal a horarios de trabajo.
Global Optimization, vol. 6, 1994, pp. 3-14. Congreso Internacional para la Investigacin y
Hansen P. Nenad M. Moreno J. Bsqueda de el Desarrollo viernes 30 de enero al lunes 2 de
entorno variable. Revista Iberoamericana de febrero de 2009. Veracruz. [Online].
Inteligencia Artificial. vol.19, pp. 77-92, 2003. Available:
lvarez D., Toro E. and Gallego R., Problem http://www.colposgrado.edu.mx/memorias/oje
instances for the Multiskilled Workforce da_villagomez.pdf , review(julio-10-2009).
Scheduling Problem, [Online]. Available: Diego F., Gonzlez J. and Carrasco J.
http://www.utp.edu.co/~planeamiento/dinop/li Optimizacin de cuadrantes de turnos para el
brerias/rostering personal de atencin de vuelos en tierra, XII
Bohorquez N., Ampliacin del modelo matemtico Congreso de Ingeniera de Organizacin 2nd
que representa el problema de asignacin de International Conference on Industrial
personal, formulado actualmente para un Engineering and Industrial Management
restaurante particular, a todos los tipos de Burgos, 3-5 de septiembre de 2008.
restaurantes de la empresa Frisby S.A., Pradenas L, Hidalgo S. and Jensen M., Asignacin
Trabajo de grado, 2008, Universidad de supervisores forestales resolucin mediante
Tecnolgica de Pereira. un algoritmo Tabu Search. Ingeniare. Revista
chilena de ingeniera, vol. 16, N 3, 2008, pp.
404-414.

92
Universidad de Pamplona
I. I. D. T. A.

Potrebbero piacerti anche