capítulo 3: estado del arte - universidad de...
TRANSCRIPT
Estado del Arte
23
Capítulo 3: Estado del Arte
3.1. Introducción
Como se vio en la introducción, este trabajo se centra en la integración de la programación
de tareas y asignación de personal a las mismas. En esta sección, iremos analizando los
principales artículos de la literatura sobre ambos temas. Puesto que el problema de
asignación de personal se realiza habitualmente una vez sean conocidas las tareas que hay
que ejecutar, hemos considerado conveniente comenzar el estado del arte con el análisis de
la asignación de personal y de la programación de tareas por separado, para
progresivamente ir llegando la integración de ambos problemas.
Tradicionalmente, la asignación de tareas a trabajadores se ha incluido dentro de la
“organización de tiempo de trabajo” (manpower planning) como una de sus partes. De esta
forma, varios autores ([19], [21], [81] y [1]) han considerado la siguiente estructuración de
la organización del tiempo de trabajo:
1. Planificación (Planning): Esta fase incluye la política de decisiones y la
planificación del personal en términos globales, política de contratación y
despido, formación del personal…
2. Programación (Scheduling): Programación del personal a turnos de trabajo.
3. Asignación (Allocation): Asignación del personal disponible a tareas o centros
de servicio.
Estado del Arte
24
Atendiendo a esta clasificación el problema de asignación de tareas a personal estaría
clasificado en el punto tres del esquema anterior. Sin embargo, no es esta la única
clasificación que existe en la literatura. [31], última revisión hasta la fecha sobre esta
materia, introduce la asignación de tareas dentro de la “Planificación de personal”,
utilizando el siguiente esquema:
1. Modelar la demanda (Demand modelling): Determinar el personal necesario en
los diferentes horizontes de planificación. Se puede basar en tres categorías:
a. Basada en la tarea (Task based demand), es decir, la demanda es
obtenida a partir del número de tareas a realizar.
b. Demanda flexible (Flexible demand). En este caso las tareas a realizar
en el futuro no son muy conocidas (ejemplo: “call centres”), debiéndose
utilizar técnicas de predicción para estimar la demanda que habrá en el
futuro.
c. Basada en los turnos (Shift based demand). La demanda total se obtiene
a partir de la cantidad de personal que es requerido en cada uno de los
turnos.
2. Planificación de los días de descanso (Days off scheduling): En este caso se
determina la cantidad de días libres que deben ser intercalados entre los días de
trabajo.
3. Planificación de los turnos (Shift scheduling): Se obtienen los turnos en los que
se trabajará y el número de trabajadores en cada uno de ellos.
4. Construcción de la línea de trabajo (Line of work construction): Creación de las
líneas de trabajo.
5. Asignación de tareas (Task assignment): Se trata de asignar tareas en cada turno
y a cada línea de trabajo. Para cada una de estas tareas se necesitará unas
características adecuadas del personal.
6. Asignación de personal (Staff assignment): Es la asignación de personal a la
línea de trabajo. Se suele realizar durante la creación de las líneas de trabajo.
En esta visión más global que tiene [31] de la planificación de personal, se puede observar
cómo la asignación de tareas a personal, tal y cómo se estudiará en este documento,
comprendería la agrupación de los puntos cinco y seis, en vez de realizarlos por separado.
Estado del Arte
25
Por tanto, para poder realizar dicha asignación deberían de ser conocidos los siguientes
aspectos: personal necesario; días de descanso de cada persona; turnos y trabajadores en
cada uno; y las tareas a realizar, es decir, la programación de tareas debe estar realizada
antes de abordar la asignación de personal.
En cuanto a la planificación de personal, es un término que ha sido bastante estudiado en la
literatura, habiéndose analizado de manera separada todos los puntos tratados por [31]. En
el presente estado del arte, analizaremos los artículos más en relación con nuestro trabajo y
que han servido como referencia para formar los cimientos de la tesina.
[61] investiga la planificación de recursos humanos a largo plazo, es decir, estudia el
número de trabajadores regulares y esporádicos que necesita una empresa en cada instante,
tomando como dato de entrada los empleados que se demandan en cada periodo (se trata
de un problema demand modelling). Para ello, incluye en el modelo el coste de
contratación y despido de cada empleado regular (suponiendo igual tasa de indemnización
para todos los despidos).
[69] determina los días de la semana que debe trabajar cada uno de los trabajadores y sus
respectivos días libres (days off scheduling). De esta forma, calcula también el número de
trabajadores de cada uno de los siete días de la semana. En primer lugar, divide a los
trabajadores en categorías según su calificación. A continuación, establece límites
inferiores para acotar el número de empleados mínimo por día y, por último, comienza con
la distribución de días libres y trabajados para cada uno de ellos mediante un algoritmo que
proporciona una programación factible para asignar los empleados a los turnos. [11] se
ayuda también de calificaciones de los trabajadores para calcular los días que debe trabajar
cada empleado (y sus días libres). En este caso, supone que cada empleado recibe un
número fijo de días libres a la semana y que un trabajador con calificación alta puede ser
sustituido por uno de menor calificación pero no viceversa. Utiliza un modelo de
programación lineal cuyo objetivo es minimizar el coste de emplear trabajadores de un
determinado tipo. [86] mejora el modelo anterior introduciendo diferentes turnos de
trabajo. Cada trabajador recibirá diferente cantidad de días libres dependiendo del turno al
que pertenezca. [80] también realiza la planificación para diferentes periodos, aunque
utiliza un modelo lógico mediante secuencias en dónde intenta priorizar al máximo las
Estado del Arte
26
preferencias de los trabajadores. Tradicionalmente en la literatura, a este tipo de problema
se le denomina workforce scheduling o days off scheduling. Por último, [29] obtiene el
mismo resultado, aunque utilizando un planteamiento diferente. En primer lugar, define
varios patrones de trabajo compuestos cada uno por una secuencia de descansos y de
tiempos efectivos dedicados al trabajo. A continuación, presenta un modelo de
programación lineal mediante el cual se le asigna a cada empleado alguno de estos
patrones.
[84] estudia la rotación de personal en las empresas. Propone dos métodos diferentes para
calcular la longitud del intervalo de rotación de los trabajadores con el objetivo de reducir
la fatiga o lesiones de los empleados. En un primer modelo analiza el caso de tareas
perjudiciales para la columna vertebral, consiguiendo reducir el Job Severity Index (JSI)
(medida que cuantifica el esfuerzo realizado por la espalda) de los trabajadores al
introducirlo en la función objetivo. Presenta también un segundo modelo en donde plantea
un problema muy parecido al anterior, pero estudiando en este caso los niveles de ruido a
los que se somete un empleado.
3.2. Secuenciación de tareas
En relación con las tareas a realizar por el personal, [18] realiza un modelo de
programación de tareas en empresas de producción estableciendo cuál es el tiempo en el
que comienza y acaba cada una. Para ello presenta un modelo de programación lineal que
maximiza el beneficio e intenta que las tareas acaben lo más pronto posible. Para
conseguirlo se ayuda de relaciones de precedencia, limita el número de recursos máximo
asignable y establece una fecha límite para finalizar todas las tareas. Dados los altos
tiempos de computación del modelo lineal en tamaños medios - grandes, utiliza una
heurística de búsqueda en vecindad para resolver el problema y la compara con un
Algoritmo Genético y una Búsqueda Tabú, obteniendo mejores resultados con su
heurística. Acercándonos más al lado de la programación de tareas para proyectos
(empresas de servicio) encontramos cómo, por ejemplo, [51] estudia dicha programación
con tiempos de proceso de las tareas aleatorios y, además, dependientes del tiempo.
Establece como objetivo la minimización del coste total y obliga a que los proyectos
Estado del Arte
27
acaben antes de su fecha límite. Se trata del primer artículo que analizamos con duraciones
de las tareas variables. En este documento se presentarán modelos con estas características,
por lo que habrá que ir analizando con detenimiento los artículos en la literatura que
estudian esta problemática, estudiando sus casos y viendo cómo se han modelado y
resuelto. Más adelante, se profundizará más sobre este aspecto.
La programación de tareas en empresas de servicio es denominada en la literatura: Project
Scheduling Problem, PSP. Cuando, adicionalmente, se introducen limitaciones en el
número de recursos que realiza cara tarea se pasa a denominar: Resource-Constraint
Project Scheduling Problem, RCPSP, que se acerca más a la programación de tareas y
asignación de personal, que se pretende abordar en esta tesina. El problema RCPSP ha sido
ampliamente estudiado y resuelto en la literatura. Encontramos recientes revisiones sobre
el tema en los artículos [46, 92]. Comparativas de las resoluciones pueden ser encontradas
en los siguientes artículos: [17, 33, 45, 67, 77, 79, 89, 94].
3.2.1. Discrete time-resource tradeoff problem and multi-mode resource-
constrained Project scheduling problem
[25] hace depender también los tiempos de proceso de los recursos asignados para un
problema de programación de tareas sin asignación de personal. La tarea tendrá una
duración y un determinado uso de recursos dependiendo del modo que utilice. Estos modos
son definidos previamente (se define una duración y cantidad de recursos para cada modo)
cumpliendo la relación en dónde son los recursos utilizados por la tarea
i si emplease el modo m, es la duración de procesamiento de la tarea i con modo m y
es la cantidad de trabajo de la tarea i. De esta forma, sólo será necesario elegir el modo
de realización de una tarea para tener definido su duración y cantidad de trabajadores. Se
trata de un problema denominado: discrete time/resource trade-off problem, DTRTP. En
cuanto a su resolución, [25] realiza una búsqueda tabú, [75] un algoritmo genético,
mientras que [28] resuelve el problema mediante una ramificación y poda (branch-and-
bound). El problema DTRTP tiene en cuenta únicamente un tipo de recurso renovable. Es
decir, no tiene en cuenta ni recursos no-renovables ni parciales, así como tampoco los tipos
de recursos dentro de cada uno de estos. Todos los recursos renovables son del mismo tipo
Estado del Arte
28
no habiendo diferencias significativas entre ellos. En el caso de que todos los recursos
renovables fuesen recursos humanos, esto se podría asemejar a que solamente hubiese una
habilidad para todos recursos (no habría multi-habilidad). La consideración del problema
DTRTP con múltiples recursos es incluida en [74] y denominada MDTRTP.
Tanto el problema DTRTP como el MDTRTP se corresponden con casos particulares del
problema multi-mode resource-constrained Project scheduling problem, MRCPSP [46] en
dónde se tienen en cuenta, además de a los recursos renovables, a los recursos no
renovables. El problema MRCPSP es, a su vez, una extensión del problema RCPSP en el
que se consideran múltiples modos. Un modelo matemático de dicho problema puede ser
encontrado en [82]. [12] presenta una detallada notación y clasificación para el RCPSP en
donde vendría denotado por MPS|prec|Cmax dicho problema MRCPSP. Su resolución ha
sido ampliamente estudiada en la literatura, ejemplos que encontramos son: [26] realiza
procedimientos de programación reactiva (reactive scheduling procedures); [74] utiliza
una hybrid scatter search; mientras que [3, 62, 71] aplican diferentes variantes de
algoritmos genéticos (en el caso extremo de variantes del algoritmo genético encontramos
el algoritmo de estimación de distribución, EDA, [91]). Aunque la finalidad de este
enfoque y la del modelo que presentaremos es la misma, hemos decidido introducir
directamente la relación entre duraciones y empleados asignados en el modelo con el
objetivo de reducir la dificultad del problema y mejorar ampliamente los tiempos de
computación. El uso de un enfoque multi-modal, como el que acabamos de ver,
multiplicaría el número de variables prácticamente por el número de modos considerados.
Adicionalmente, al ser un enfoque discreto, se podrían obviar soluciones intermedias no
consideradas al no incluir infinitos modos.
Cabe resaltar que la relación entre recursos y duraciones de las tareas, para los problemas
vistos en este apartado, es realizada de manera discreta. El problema equivalente al
DTRTP pero con relación continua entre recursos y duraciones (continuous time/resource
trade-off problem, CTRTP) no ha sido estudiado todavía en la literatura [92].
Estado del Arte
29
3.3. Asignación de personal
3.3.1. Asignación de personal a tareas
Hasta ahora, se han analizado de la literatura los aspectos más globales de la planificación:
número total de empleados, turnos a los que van asociados, días libres,… A continuación,
nos centraremos más en detalle en la asignación de personal a tareas, uno de los aspectos
centrales del documento, que pasará a ser, junto con la programación, el elemento principal
de este capítulo a partir de ahora. Una revisión de la materia es elaborada en [70]. En este
trabajo, nos centraremos, entre otros aspectos, en la asignación a tareas. Así, [19] estudia la
asignación introduciendo prioridades en la asociación y penalizando el excedente o
deficiente de trabajadores asignados a una tarea sobre el ideal. Realiza la asignación de
manera global, es decir, nos dice el número de trabajadores de una categoría que tienen que
ser asignados a una tarea pero no particulariza en cada empleado. Mientras que, en cuanto
a tiempo, el modelo es realizado para una unidad temporal únicamente no estudiando el
proceso para varios periodos de tiempo. Por el contrario, [27] realiza la asignación de
personal teniendo en cuenta dicha unidad temporal. En primer lugar, resuelve el problema
de los turnos de trabajo (“Planificación de los turnos”) y, seguidamente, resuelve el
problema de asignación de trabajadores para tres casos:
1. Problema general de asignación de personal en el que se minimiza el coste de la
programación.
2. En el segundo caso, extiende el caso anterior penalizando el excedente y déficit de
trabajadores sobre el deseado. Similar al de [19].
3. Por último, realiza una asignación de manera particularizada para cada empleado,
teniendo en cuenta sus preferencias y habilidades.
[21] analiza la asignación de tareas a trabajadores multifuncionales sin utilizar
programación lineal. Lo resuelve como una sucesión de problemas de asignación en dónde
calcula, para cada uno de los instantes de tiempo, su matriz de asignación correspondiente.
El objetivo que se persigue es conseguir que el tiempo asignado a cada tarea sea lo más
Estado del Arte
30
cercano posible al valor de referencia (tanto por ciento ideal que cada trabajador debería
dedicarle a cada tipo de tarea, es obtenido teniendo en cuenta la previsión de la demanda
de cada tarea). [34] estudia, mediante un modelo de programación lineal entera, la
asignación de recursos humanos con los siguientes tipos de condiciones de preferencia:
trabajo en parejas en la misma tarea; trabajo de manera separada; no tienen preferencias.
Resuelve entonces el modelo, para los empleados con estos tipos de preferencia,
minimizando los costes de asignación. [72] pasa a considerar en el problema de asignación
tanto las habilidades del personal como sus preferencias mediante dos modelos de
programación por metas. El primero mediante actividades Preemptive de dos fases y el
segundo mediante Non-Preemptive. En éste, se realiza la asignación de personal a puestos
de trabajo en vez de a tareas. Se trata de un problema muy similar si pasásemos a
considerar los puestos de trabajo como tareas. Las preferencias del personal son estudiadas
en relación con el tipo de trabajo que desean realizar y en relación con los atributos de los
puestos de trabajo. Tendremos entonces los siguientes tres objetivos (problema
multiobjetivo) que serán los que se intenten optimizar mediante la programación por
metas: satisfacer los mejores niveles de habilidades en cada uno de los puestos de trabajo;
preferencias del personal para realizar determinadas tareas; y, por último, preferencias del
personal con respecto a las características de los puestos de trabajo. [44] estudia también la
asignación con habilidades del personal y preferencias pero en este caso asigna el personal
directamente a tareas. Además, utiliza diferentes duraciones de las tareas dependiendo de
la habilidad de la persona que la realiza. Sin embargo, no realiza esta variación en las
duraciones de forma dinámica, sino estática. Es decir, de antemano deben ser calculadas
las duraciones para todas las posibilidades de personal con tareas, para más tarde introducir
estos valores en su modelo lineal. Como función objetivo minimiza el coste de mano de
obra y el coste de descontento de los trabajadores al ser asignados a tareas que no les
agradan. En el caso de [16], se pasa a considerar las preferencias que tienen los
trabajadores de trabajar con otros empleados, concepto similar al que introdujo [34]. Sin
embargo, en el modelo que presenta incluye también un proceso de aprendizaje de los
empleados al realizar determinadas habilidades. Para la resolución del modelo, utiliza una
función objetivo multiobjetivo que se centra en los siguientes tres aspectos: proceso de
aprendizaje; importancia de las habilidades asociados a proyectos y de los mismos
proyectos; y preferencias de trabajo en equipo.
Estado del Arte
31
3.3.2. Employee timetabling problems
Ampliando un poco más la definición de asignación de personal a tareas, nos encontramos
con lo que se conoce en la literatura cómo Employee Timetabling Problems, que además de
la asignación del personal a una tarea, implica su asignación a un determinado turno de
trabajo (mañana, tarde,…). Por tanto, dicho término se refiere a la asignación de personal a
tareas en turnos. Así, [66] estudia este mismo problema realizando técnicas de búsqueda
local para encontrar soluciones. Presenta una formulación matemática no lineal del
problema en dónde tiene en cuenta la disponibilidad de los empleados en los turnos.
Considerará también si un empleado pueda trabajar en una tarea, el número mínimo y
máximo de tareas a realizar y el número de empleados necesarios por tarea y turno.
3.3.3. Asignación de personal a departamentos
[13-15] le da otro enfoque al problema de asignación. Desarrolla una heurística para
modelar la asignación de personal en multi-departamentos, con mano de obra intensiva,
para enfermeras de hospitales. Tiene en cuenta empleados entrenados transversalmente y
establece una calificación entre 0 y 1 al nivel de cualificación de un empleado en cada una
de sus habilidades. Cada empleado debe ser asignado a uno de los departamentos. Realiza
la asignación para un único periodo, siendo necesaria su repetición en caso de uso para
diferentes periodos de tiempo. Por último, elabora una heurística de asignación para
resolver el problema que obtiene resultados más cercanos al óptimo que heurísticas
clásicas Greedy y Lagrangianas (basada, esta última, en la relajación lagrangiana).
3.3.4. Integración de asignaciones de personal
Tanto la asignación a departamentos como a proyectos es integrada en [90], introduciendo
adicionalmente el horizonte temporal en el modelo (no considerado en el artículo [15] de
asignación de personal a departamentos). De esta forma, estudian la asignación de personal
a proyectos y/o a departamentos (los empleados son miembros de proyectos y
departamentos al mismo tiempo). Manejan un problema multi-periodo donde los
empleados pueden trabajar en más de un proyecto por periodo. Además, un empleado no
Estado del Arte
32
necesita ser asignado obligatoriamente a un proyecto. Los trabajadores poseen diferentes
habilidades que les capacitarán para hacer unos proyectos u otros según convenga y según
la carga (de habilidades) requerida por los proyectos.
Más adelante, en la sección 5.3, se presentará un modelo de asignación de personal a
proyectos, tareas y departamentos. Hasta la fecha, no se ha realizado ningún modelo que
integre dichas asignaciones de manera conjunta. Resulta interesante en empresas de
servicio el estudio de esta problemática. Adicionalmente, se minimizarán los movimientos
de los trabajadores de unos proyectos a otros manteniendo, en la mayoría de lo posible,
fidelidad sobre los empleados que realizan un proyecto. Un ejemplo de aplicación puede
ser el caso particular de la universidad en donde existe la necesidad de determinar qué
profesores deben ser asignados a las asignaturas a impartir. Dado, además, que dichos
profesores deben estar también trabajando en proyectos de investigación y en trabajos
internos del departamento, surge la necesidad de estudiar a qué asignaturas y proyectos
debe asignarse cada empleado y cuál debe ser el tiempo que le dedique a los trabajos
internos. El modelo incluirá restricciones de habilidades y movimientos en la asignación a
proyectos.
Estado del Arte
33
3.4. Secuenciación de tareas y asignación de personal
3.4.1. Introducción
Hasta ahora, se ha analizado la programación de tareas y asignación de personal por
separado, estudiándose primero la programación de las tareas para, a continuación, asignar
el personal que realiza cada una de ellas. Esto conlleva que cuando se asigna el personal,
las tareas ya están fijas y, por tanto, hay menos libertad para alcanzar valores más altos de
la función objetivo. Esto es lo que se intenta en la literatura cuando se analizan ambos
aspectos a la vez, resultando un problema de programación de tareas y asignación de
personal simultáneo en el que se obtendrán, en el mismo problema, los tiempos de
comienzo de las tareas y sus recursos asignados. La dificultad radicará en la combinación
de ambos problemas. Tendrán especial interés, en este modelo integrado, las funciones
objetivo puesto que, para el problema de programación de tareas, principalmente se han
minimizado los costes de producción o los tiempos máximos de terminación de las tareas,
mientras que para la asignación de personal se suele maximizar la satisfacción de los
trabajadores. Los artículos que veremos a continuación analizan la integración de ambos
aspectos y han sido estudiados, básicamente, con dos enfoques. En primer lugar, veremos
artículos que estudian la asignación directa de personal a tareas o proyectos en cada
periodo de tiempo. Se utiliza, normalmente, idéntica unidad temporal para las tareas y
personal, y está más enfocado a tareas que forman parte de proyectos o a los mismos
proyectos aunque también se puede realizar para tareas en general. A este problema se le
suele denominar en la literatura Project scheduling and Staff assignment, Scheduling and
staffing Project ó Tasks scheduling and staff assignment dependiendo del caso. El segundo
punto de vista, por el contrario, está más relacionado con la producción. En este caso, se
estudia la asignación de tareas a máquinas en periodos de tiempo y la asignación de
empleados a dichas maquinarias en turnos, debiéndose integrar correctamente ambas
asignaciones. La asignación de tareas a máquinas genera una programación de las tareas en
periodos de tiempo (un periodo es una unidad de tiempo, típicamente una hora, más
pequeña que el turno, normalmente ocho horas), mientras que la asignación de personal se
realiza de manera más global, adjudicándole máquinas en turnos. Este enfoque es más
interesante para empresas de producción que buscan obtener una programación completa
Estado del Arte
34
de sus tareas y en la que los empleados deben trabajar en cada turno. Tradicionalmente, en
la literatura, se ha utilizado para esta integración el término Job-Shop Scheduling and
Employee Timetabling problem.
3.4.2. Project scheduling and staff assignment
Comenzando por el primer enfoque, [32] describe un método para determinar a qué tarea
deben asignarse los trabajadores y como debe ser la secuencia de las tareas. Estudia la
posibilidad de entrenamiento de los trabajadores para que se necesite menos mano de obra.
Realiza el método sobre la base de que cuanto más tarde se pueda empezar a realizar una
tarea cuesta menos dinero (siempre que el total de días del proyecto se mantenga). [4]
utiliza un modelo de programación lineal para resolver el problema de programación de
tareas y de asignación global de trabajadores, con lo que determina la fecha de inicio de
cada tarea, su duración y el número de trabajadores necesarios al día. En cuanto a la
duración de las tareas, el modelo únicamente elige, de entre un número limitado, la que
minimiza los costes fijos (calculados a través del número de periodos que dura el proyecto)
y los costes de mano de obra. Sin embargo, no introduce ninguna dependencia entre los
tiempos de proceso y la cantidad de recursos asignados o la eficiencia de sus trabajadores.
Además, no aborda el problema de la asignación del personal en particular para cada
instante de tiempo, sino que se queda en una visión más global en la que calcula el número
de trabajadores necesarios a la semana. [87] va más allá en cuanto a la programación del
personal en particular ya que estudia el problema de programación de las tareas de un
proyecto y la asignación de personal a cada tarea. Sin embargo, no utiliza unidades de
tiempo en su modelo de programación lineal. Para hacer la programación, simplemente
establece el orden en el que se deben realizar las tareas. Tiene en cuenta, además, tanto
restricciones de precedencia como de habilidades e introduce los fundamentos para añadir
tiempos de comienzo, fechas límites, periodos de indisponibilidad y máximo uso. Por
último, realiza un análisis de la cantidad de recursos que son capaces de trabajar con multi-
habilidades y cuánto influye esto en la duración del proyecto. [65] continúa estudiando el
mismo problema sin unidades temporales, incluye también tanto tiempos de comienzo
cómo fechas límites. Al igual que [44], realiza un cálculo previo de las duraciones de las
tareas antes de ejecutar el modelo. Estas duraciones dependerán directamente de las
habilidades del personal que se asignen a ellas. Al minimizar el tiempo de terminación se
Estado del Arte
35
consigue que se asignen a cada tarea los empleados con mejores habilidades para
desarrollarla ya que necesitarán menos tiempo para llevarla a cabo. [9] estudia el mismo
problema pero introduciendo unidades temporales. Sin embargo, la asignación de personal
no la hace directamente a tareas, sino a habilidades que pueden realizar. Cada tarea
requiere un conjunto de estas habilidades y es por medio de ellos como se relacionan las
personas con las tareas. Por otra parte, incluye que las personas se encuentran en diferentes
localizaciones, en dónde se realizarán las tareas.
[93] continúa abordando la misma problemática. En este caso, se realiza un modelo no
lineal que se resuelve por un algoritmo genético donde se tienen en cuenta los efectos del
aprendizaje de los empleados (learning effect), es decir, cuánto mayor tiempo trabaje un
trabajador en una tarea, mayor será la eficiencia de dicho trabajador sobre dicha tarea. [20]
amplia el modelo anterior aunque vuelva a considerar la experiencia de los trabajadores en
el problema integrado, en vez de las tradicionales restricciones de habilidad. La
experiencia será medida por empleado y por tarea, actualizándose a medida que el
empleado trabaje más tiempo en esa tarea o en una tarea afín. [30] dividen un proyecto en
varias tareas, estudiar su asignación es equivalente a estudiar la asignación de tareas a
personal. Además, realizan la programación de las tareas, con lo que finalmente sería
equivalente a un problema de programación de personal y de tareas. Introducen en su
modelo lineal una restricción de movimientos por la que restringen y limitan (al ser
perjudiciales) el número de movimientos posibles y cambios de tareas de los empleados.
Cada tarea es dividida en muchos instantes de tiempo, en cada uno de los cuáles existirá un
número mínimo y un máximo necesario de trabajadores. Incluyen también en el modelo
ventanas de tiempo en dónde únicamente se podrán realizar las actividades y restricciones
relacionadas con mantenimiento y con la habilidad de los trabajadores. Dada la dificultad
del modelo, no se encontraron soluciones enteras para tamaños reales del problema
utilizando CPLEX 8.0 por lo que desarrollan una heurística Tabu tomando una Greedy
cómo solución de partida. Por último, tienen en cuenta restricciones para que los
trabajadores trabajen en horario seguido y no con un horario salteado.
3.4.3. Controllable processing times
Estado del Arte
36
[88] estudia el problema de programación de tareas y asignación de personal para una
compañía de centros de servicio. En este caso, no resuelve el problema mediante un
modelo de programación lineal, sino mediante un algoritmo genético híbrido. Incorpora al
problema integrado restricciones de tiempos de proceso controlables en dónde la duración
de las tareas puede ser reducida o aumentada en función de la eficiencia del empleado
asignado a ella. Adicionalmente, incluye restricciones de habilidad y de ventanas de
tiempo. En cuanto a las relaciones de precedencia, estudia cuatro tipos diferentes e incluye,
también, periodos de tiempo entre las tareas (desfases temporales). [48] aborda también los
tiempos de proceso controlables en un problema de asignación de personal en dónde la
programación de las tareas tiene que haber sido realizada de antemano. En este caso, se
controla el tiempo que tardan los empleados en realizar su trabajo, éste variará
dependiendo de la experiencia de cada uno en el trabajo a realizar, es decir, un trabajador
con mayor experiencia en una habilidad, realizará una carga de trabajo de esa habilidad en
menor tiempo que el otro. Por tanto, tiene en cuenta tanto restricciones de aprendizaje
como de habilidades. Se le queda, entonces, un modelo no lineal que tiene como objetivo
minimizar los costes de realizar una cantidad dada de trabajos y adecuar la experiencia de
los trabajadores según mejor convenga a la empresa (este último objetivo lo introduce con
cotas mínimas como una restricción).
El otro modelo que presentaremos (Capítulo 4) será el problema de programación de tareas
de proyectos y su asignación a personal con tiempos de proceso controlables, Project
scheduling and staff assignment with controllable processing times (PSSA). Como el
nombre indica, se incluirán CPT, hecho que no tenemos constancia que haya sido visto,
hasta ahora y con este enfoque, en la literatura. Utilizaremos los CPT para que las tareas
pueden ser realizadas en menor o mayor tiempo que el planeado, mediante la utilización de
diferente cantidad de recursos (mano de obra, equipo,…). Esto resulta de especial interés
en proyectos en dónde la eficiencia del equipo de trabajo disminuye si se aumenta el
número de trabajadores sobre el óptimo (Project scatter, [49]). De esta forma, si se
aumenta el número de personal asignado a un proyecto o tarea, deberá disminuir su
duración aunque no de manera proporcional al haber disminuido la eficiencia (se explicará
este hecho con mayor profundidad en la explicación del modelo).
Estado del Arte
37
Repasando los estudios realizados sobre los CPT, encontramos como [60] permite la
variabilidad en las duraciones de las operaciones en un problema de adquisición de
maquinaria externa por parte de una empresa. Sin embargo, no realiza un control de ellas
en su modelo, simplemente las calcula de forma estocástica sin hacerlas depender de los
recursos asignados a ellas. [85] ya sí introduce en su modelo, de manera directa, la
variación de los tiempos de proceso de forma que se vayan calculándose en el modelo.
Permite una disminución de la duración de las tareas aunque no la asocia a recursos, es
decir, al no utilizar recursos en su modelo, ni los disminuye ni los aumenta al variar las
duraciones. Además, con objeto de intentar que las duraciones sean las óptimas, minimiza
en la función objetivo las variaciones en las duraciones de las tareas. [2] estudia el control
de las duraciones para un problema de programación de tareas en una máquina de
computación numérica donde minimiza la suma ponderada de retrasos y los costes de
mecanizado y utillaje, que dependen de la duración de las tareas. Tiene en cuenta límites
superior e inferior para las duraciones y, al igual que ocurría con [85], no asocia, en su
modelo de programación no lineal, la duración de las tareas con los recursos asociados a
ella. Similar enfoque utiliza [64], en el que los tiempos de proceso serán ajustados con el
objetivo de minimizar los costes de retrasos y adelantos sobre la fecha de entrega. [39]
pasa a relacionar, al igual que en el modelo que se presentará en esta tesina, el tiempo de
proceso de una tarea con el número de recursos asignados a ella. Sin embargo, en este caso
se realiza con una dependencia totalmente lineal (si aumentan los recursos disminuyen
linealmente los tiempos y viceversa) lo que tiene mucho sentido en empresas de servicio en
dónde generalmente hay un tamaño del equipo de trabajo para el que se realizan las tareas
de manera mucho más eficiente. Este es el motivo por el que usaremos, en el modelo
PSSA, una dependencia lineal a trozos dándose el punto de mayor eficiencia en el tamaño
óptimo del equipo de trabajo (para más detalle ir a 4.7). [78] en vez de utilizar una relación
lineal entre los tiempos de proceso, pasa a relacionarlos de manera inversamente
proporcional, lo que le da un enfoque más realista que el caso lineal puro al problema
descrito de “single machine”. La introducción de esta relación aporta una no linealidad que
imposibilitaría resolverlo por un modelo de programación lineal.
3.4.4. Job-Shop Scheduling and Employee Timetabling problem
Estado del Arte
38
Cómo se comentó con anterioridad, la integración de programación de tareas y asignación
de personal no se ha realizado únicamente pensando en la asignación de las tareas de
proyectos, también ha sido bastante estudiada la integración de ambos aspectos con un
enfoque del lado de la producción cómo veremos a continuación.
[6] resuelve el problema conjunto de programación de tareas y asignación de personal
mediante modelos de programación lineal en dónde se minimiza el coste de la producción
y el coste de la satisfacción de los empleados. Considera en el problema un conjunto
amplio de restricciones, destacando las siguientes: ventanas de tiempo para el inicio de las
tareas; relaciones de precedencia; mínimo y máximo de periodos consecutivos trabajando
los empleados; diferentes unidades temporales para la maquinaria y los empleados;
diferentes modos de procesar en cada tarea; horario de cada empleados.
[7] continúa analizando el mismo problema integrado. En este caso, denomina operaciones
a las tareas que hay que realizar y, además, denomina actividades a las acciones que
pueden realizar los empleados, es decir, aplica un grado de especificación mayor, al dividir
tanto trabajos como trabajadores en niveles inferiores. Los modelos que habíamos visto
hasta ahora se quedaban únicamente en la división de los trabajos. En primer lugar, este
modelo secuencia las operaciones obteniendo su tiempo de comienzo y de fin. A
continuación, asigna empleados a actividades para cada turno. Por último, utilizando
restricciones de acoplamiento une las operaciones de los trabajos con las actividades de los
empleados. La función objetivo que utiliza es lexicográfica dónde minimizar el tiempo de
terminación es el objetivo principal y minimizar el coste de asignación de personal a
actividad es el segundo.
[42] integra también ambos problemas añadiendo, además, la asignación de patrones de
trabajo a los empleados. En este caso no se habla ni de actividades, ni de operaciones, ni de
máquinas, sino de habilidades de los empleados y de las tareas. Es decir, cada empleado
está ligado a una habilidad, al igual que cada tarea. Lo que se intenta es que un trabajador
de una habilidad trabaje en una tarea que tenga la misma. Para ello, utiliza un modelo de
programación lineal en el que minimiza el coste asociado a seleccionar un empleado con
un patrón de trabajo utilizando ventanas de tiempo para determinar el comienzo de los
trabajos. Propone, además, dos métodos de resolución exacta (Descomposición de Benders
Estado del Arte
39
y generación de cortes) demostrando que para este problema, el segundo de los métodos
obtiene soluciones bastante más eficaces que las alcanzadas por ILOG CPLEX 9.1. [43]
estudia también el mismo problema analizándolo en este caso por maquinaria. Realiza la
programación de tareas asignándole una maquinaria a cada una de ellas. A continuación,
realiza la programación de personal, indicando la maquinaria que le corresponde a cada
empleado en cada turno.
3.4.5. Scheduling and staffing multiple projects
[47] hablan ahora de programación de proyectos, en vez de tareas, y de la asignación de
personal a esos proyectos. Aunque se trate de proyectos, matemáticamente hablando, se
corresponde con el mismo problema, simplemente se está usando diferente nomenclatura.
Consideran recursos humanos internos y externos dando, además, la posibilidad a los
internos de incurrir en horas extras que serán tenidas en cuenta en el modelo. Realiza un
modelo de programación lineal continuo con variables binarias que resuelve por CPLEX y
por heurísticas, comparando ambos resultados. [59] lleva a cabo también la programación
de proyectos y asignación de personal aunque se centra únicamente en la asignación de
expertos. Adicionalmente, le da un enfoque más económico al minimizar los gastos
esperados de la programación.
Por último, veremos brevemente en este estado del arte, que la programación de tareas y
asignación de personal, tanto en empresas de servicio como de producción, no es la única
integración que aparece en la literatura. [41] va más allá y además de integrar la
programación de tareas y la asignación de personal, introduce en su modelo la selección de
los proyectos que deben ser realizados, dando la posibilidad de que algunos no se puedan
ejecutar. Esto lo realiza por medio de un modelo de optimización multiobjetivo en dónde
tiene en cuenta el aprendizaje de los empleados (incrementa su experiencia en las tareas
que va realizando) y ventanas de tiempo para limitar las tareas. Para resolver el problema,
utiliza un algoritmo genético y una colonia de hormigas, ambos enfocados como
multiobjetivo. Los objetivos estudiados en el artículo son económicos y de competencia.
Este mismo autor, ya había presentado este modelo con anterioridad en [40]. Sin embargo,
en este último estudia, además, la posibilidad de añadir las siguientes cinco restricciones
adicionales al modelo: máximo número de empleado por tarea; debe haber un experto
Estado del Arte
40
asociado a cada equipo de trabajo que realice siempre un mínimo de horas; relaciones de
precedencia; mínimo y máximo número de proyectos seleccionados en cada conjunto; y
que cada proyecto se realice de manera continua. En este caso, para resolver el modelo
utiliza un Algoritmo genético o una colonia de hormigas (encargados de la parte de
selección de proyectos). En ambos casos, se llama repetidamente dentro de la heurística a
un algoritmo Greedy que será el encargado de obtener la programación y asignación de las
tareas.
Estado del Arte
41
3.5. Algoritmo GRASP
En nuestro caso, para resolver el modelo PSSA presentaremos un algoritmo Greedy
Randomized Adaptive Search Procedure (GRASP) introducido por [35]. Una revisión de
los campos de aplicación de dicho algoritmo es realizada en [37]. El algoritmo consta de
dos fases: en primer lugar una fase constructiva y, a continuación, una fase de mejora
encargada de la búsqueda de mejores soluciones en la vecindad.
3.5.1. Fase constructiva
La fase constructiva se caracteriza por la determinación de una lista restringida de
candidatos, LRC, en cada iteración. Los elementos de esta lista serán los susceptibles de ser
elegidos aleatoriamente para su introducción en la programación. Para la elaboración de la
lista será necesaria una evaluación previa de las tareas con el objetivo de ordenarlas según
el parámetro que más se adecue al problema que se está resolviendo, esto es realizado
mediante las denominadas “Funciones Greedy”. De esta forma, [5] propone tres tipos de
ordenaciones diferentes para resolver un problema parecido al nuestro de flowshop
scheduling, secuenciación de tareas y asignación de las mismas a recursos (máquinas en
este caso) sin relaciones de precedencia, que son las siguientes: ordenación en
decrecimiento según los tiempos de proceso; ordenación decreciente según el retraso de las
tareas; y una ordenación creciente según los tiempos de proceso. Según [76], los elementos
que serán incorporados serán yendo elegidos aleatoriamente dentro de esta lista restringida.
Adicionalmente, para la definición del tamaño de la lista presenta dos alternativas:
Basado en cardinalidad: El tamaño de la LRC viene determinado por el número de
elementos que queremos que la formen. Tradicionalmente, se utiliza el parámetro
α, que va desde 0 a 1, para definir dicho tamaño. El caso α=0 indicaría un
algoritmo Greedy puro, mientras que el caso α=1 se correspondería con el
puramente aleatorio.
Basado en calidad: En este caso, se establecen valores mínimos a partir de los
cuales no se tienen en cuenta los candidatos. Se establece así un baremo mínimo de
calidad en la lista.
Estado del Arte
42
En nuestro caso, la LRC no se corresponde exactamente con ninguna de las dos casuísticas
analizadas sino que vendrá definida por las relaciones de precedencia de las tareas,
variando el número de candidatos constantemente según la tarea a introducir. No se
establece, por tanto, ninguna ordenación previa de las tareas para la determinación de la
LRC. Se trata así de conseguir una LRC rápida que busque en todo momento la
factibilidad.
3.5.2. Fase mejora
A continuación, se realiza una fase de mejora a la salida de la fase constructiva. Se
pretende encontrar una mejor solución buscando en los alrededores. De esta forma, [23]
presenta, en un problema de máquinas procesadas en lotes paralelos, dos tipos diferentes
de mejora: intercambio de tareas que consiste en el intercambio de dos tareas elegidas
aleatoriamente; y la inserción de tareas mediante la cual una tarea elegida aleatoriamente
es introducida en otra posición aleatoria de la secuenciación. [53], en un problema de
flowshop scheduling más similar al nuestro, realiza también la mejora mediante la
inserción de tareas. Sin embargo, es realizada según dos técnicas diferentes: la primera la
realiza de forma aleatoria (inserción aleatoria) de manera similar a la vista por [23];
mientras que en la segunda (inserción en bloque) toma un par de tareas colindantes y los va
insertando en todas las posiciones posibles una por una, una vez realizado esto pasa al
estudio del siguiente par de tareas. Sin embargo, en el modelo que estudiamos en este
trabajo se consideran tiempos de proceso variables, por lo que no sólo deberá ser elegido el
orden de las tareas sino que su duración también influye en el objetivo final del modelo.
Así, [24] analiza un flowshop scheduling problem con tiempos de proceso variables en
donde una vez realizada la fase constructiva, manteniendo fijos dichos tiempos de proceso
se procede a la realización de la fase de mejora. La fase de mejora la divide a su vez en
dos, una primera en dónde mejora la solución mediante una estrategia de inserción sin
variar los tiempos de proceso y una segunda denominada “reconstructiva” en dónde serán
ajustadas las cantidades de recursos a las tareas de forma que los tiempos de finalización
de las tareas no difieran mucho de sus fechas límites. Puesto que en nuestro problema no se
tienen en cuenta las fechas límites de cada tarea sino que se minimiza la global teniendo en
cuenta relaciones de precedencia entre las tareas, se ha realizado entonces una fase de
Estado del Arte
43
mejora donde la asignación de recursos a las tareas se produce únicamente si conlleva una
disminución de los objetivos globales (tiempo de finalización en nuestro caso). Se trata de
una búsqueda completa en vecindad puesto que se analiza la variación de recursos para
todas las tareas actualizándose cada vez que se mejora la función objetivo (una descripción
más detallada de esta fase se encuentra en el Capítulo 6). Por último, queda por abordar las
técnicas de búsqueda utilizadas en esta fase de mejora que establecen cuando una solución
es tenida en cuenta. Comúnmente se han implementado dos estrategias [24, 76]:
Mejor mejora: Todos los vecinos son analizados reemplazándose la solución actual
por la mejor solución encontrada.
Primera mejora: Se reemplaza la solución actual por la primera solución que la
mejore.
En el algoritmo GRASP presentado en este trabajo se realiza una estrategia intermedia.
Partiendo de la solución constructiva se realiza una búsqueda en toda la vecindad en dónde
cada vez que se encuentra una solución mejor que la actual se almacena sustituyéndola por
la anterior (primera mejora) actualizándose los valores de recursos disponibles. Una vez
sustituido se sigue por el mismo punto pero partiendo ahora de la solución última hasta
encontrar una mejor y así sucesivamente. La fase de mejora terminará cuando se analice
toda la vecindad y el valor devuelto será la mejor solución encontrada en todo el análisis
(mejor mejora).
Estado del Arte
44
3.6. Tabla resumen de las funciones objetivo y restricciones
utilizadas en la literatura
Como se ha podido observar en el capítulo anterior, son numerosos los artículos que hemos
analizado. En su mayoría, abordan el problema con diferentes restricciones y funciones
objetivo. Dado que en este documento se presentarán modelos en el mismo ámbito, resulta
de gran interés realizar un análisis detallado de las restricciones y los objetivos que se han
estudiado hasta la fecha.
De esta forma, se presenta una tabla resumen con dichas características (Tabla 3-I). La
primera parte de la tabla, se corresponde con las funciones objetivos (F.O.) y la segunda
con las restricciones (s.a.). A la derecha de la misma, en la última columna, se muestran los
artículos correspondientes.
Además, se ha reflejado en esta tabla el primer modelo que presentamos en la tesina (junto
con sus dos extensiones), de forma que sus restricciones y funciones objetivo puedan ser
comparadas fácilmente con los otros artículos. En cuanto a la notación utilizada para
definir los modelos, se presenta de la siguiente forma:
PSSA(Makespan): Project scheduling and staff assignment with controllable
processing times (time-related objectives).
PSSA(Cost): Project scheduling and staff assignment with controllable
processing times (cost-related objectives).
PSSA(MP): Scheduling and staffing multiple projects with controllable
processing times.
Como se observa en la dicha tabla, los artículos han sido divididos según sus funciones
objetivo y restricciones. A su vez, las restricciones han sido divididas en subgrupos
globales para facilitar el entendimiento. Dado que no todos los artículos estudiados se
corresponden exactamente con la misma temática, hemos mostrado también una leyenda
en la Tabla 3-II para distinguir unos de otros. Hemos preferido mostrarlo todo en una tabla,
en vez de en varias diferentes, dada las similitudes entre todos los temas y, ya que, la
Estado del Arte
45
mayoría de restricciones utilizadas son idénticas. Esto nos permite además, obtener
conclusiones muy interesantes sobre los aspectos ya abordados en la literatura.
Centrándonos en las funciones objetivos, encontramos que las más repetidas tienen
relación con los siguientes aspectos:
Fecha de finalización de las tareas: tiempo de terminación.
Satisfacción y preferencias de los empleados.
Costes de mano de obra.
Costes de asignación de personal.
Habilidades de las tareas.
En cuanto a las restricciones, se ha puesto en la Tabla 3-I el concepto general al que
corresponde cada una de ellas, con el fin de poder agruparlas y permitir el análisis global
de la literatura. A continuación, se procede a explicar cada una de ellas por separado:
Mano de obra externa: Se refiere a si se permite la utilización de mano de obra
externa, además de la interna.
Ventanas de tiempo: Restricción relacionada con la programación de tareas e
indica el uso de ventanas de tiempo (espacios temporales admisibles) para el
comienzo o finalización de las tareas.
Máquinas: Restricción para el caso concreto de artículos Job-Shop. Hace
referencia a limitaciones en las máquinas: número de tareas que pueden ser
procesadas al mismo tiempo, número de máquinas…
Precedencia: En este caso, se trata de una relación para la programación de
tareas. Indica las relaciones de precedencia que deben existir entre las tareas, es
decir, si alguna tarea debe ir antes de otra, si existen desfases temporales entre
las tareas…
Disponibilidad Recursos: Relacionadas con el horario de los recursos y su
imposibilidad para realizar tareas fuera de ese horario.
Tareas: Cualquier restricción relacionada con las tareas y sus requisitos. Por
ejemplo: las tareas sólo deben comenzar una vez; máximo un recurso por tarea;
etc.
Estado del Arte
46
Recursos: Restricciones relacionadas con los recursos. En este caso, tenemos
restricciones del tipo: tiempo máximo de trabajo por recursos; límite del
número de recursos asignados por tiempo; etc.
Nº de tareas asignadas por tiempo: Establece el límite de tareas que se pueden
asignar por unidad de tiempo (este grupo de restricciones está bastante ligado
con los dos anteriores).
Periodos consecutivos trabajados: Restricciones relacionadas con el número de
periodos que se pueden realizar de manera consecutiva.
Preferencias: Restricciones sobre las preferencias de los trabajadores a la hora
de realizar determinadas tareas.
Experto: Relacionadas con la consideración de una persona experta en el grupo
de trabajo que realiza una determinada tarea.
Tiempo de terminación: Definición del periodo en el que termina el proyecto,
para lo que se tendrán en cuenta las fechas de finalización de cada una de las
tareas.
Localización: Restricciones que asignan una determinada localización a cada
una de las tareas y/o recursos.
Habilidad (Skill): En este caso, se trata de restricciones relacionadas con las
habilidades de los recursos y cuáles de ellas necesita cada una de las tareas.
Tiempos de proceso controlables (CPT): Hacen referencia a que las duraciones
de las tareas pueden ser variables en el modelo en lugar de datos. Dependerán, a
su vez, de otras variables tales como cantidad de recursos, experiencia…
Movimientos (Moves): Restricciones para limitar las rotaciones del personal de
una tarea otra. Se pretende que los recursos no estén constantemente cambiando
de tareas sin llegar a estar tiempo suficiente en cada una de ellas.
Patrones de trabajo (Work pattern): Tratan de la asignación de patrones de
trabajo a cada uno de los recursos disponibles.
Experiencia: Son restricciones de aprendizaje de los trabajadores. Es decir, a
medida que un trabajador va trabajando en una tarea, entonces va
incrementando su habilidad de realizar esa tarea, va aprendiendo a hacerlo
mejor.
COMPARATIVA ENTRE MODELOS DE INTEGRACIÓN DE ASIGNACIÓN DE TAREAS Y PERSONAL ARTÍCULOS
Estado del Arte
47
F.O.
Costes de producción [6],PSSA
(Cost)
Satisfacción y preferencia de los empleados
[6],[19] ,[44]
,[88] , PSSA
(Cost)
Costes de mano de obra
[4],[16] ,[44]
,[47] ,[48] ,
[72]
Fecha de finalización de las tareas: tiempo de terminación
[2], [4], [7],
[18], [20], [65],
[87], PSSA
(Makespan),
PSSA (MP)
Beneficio [18],[41],[40]
Coste de asignación de personal
[7], [9], [27],
[34], [42],
[43],[93]
Habilidades [16],[41], [40],
[72],[88]
s.a.
Ventanas de tiempo
de las tareas
Ventana de tiempo para el inicio de las tareas
[6],[30], [42],
[43],[93],
PSSA (Cost)
Ventana de tiempo para la finalización de las tareas [18]
Tiempo de comienzo (release time)
[20],[41],[40],
[65], [87], [88],
PSSA
(Makespan),
PSSA (MP)
Ficha límite de finalización de las tareas
[9],[41],[40]
,40,[87],[88],
[93]
Maquinas Tienen en cuenta las máquinas en la programación [6],[7],[42]
Precedencia
Relaciones de precedencia con desfases temporales
[88], PSSA
(Cost), PSSA
(MP)
Relaciones de precedencia
[4], [6] ,[7],
[18], [20], [30],
[40],[87],[88],
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Tareas
Deficiente y excedente de trabajadores
[19],[27] ,
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Localización (asignación de las tareas a determinadas localizaciones) [9]
Non-preemptive assumption
[18],[40],
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Recursos asignados por tarea
[20],[30] ,[40],
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Recursos Límitación del número de tareas (o del volumen de trabajo) a realizar
[9],[16], [20],
[27] ,[30], [41],
[40], [42], [43],
[44], [47],[48],
[66] , PSSA
(Makespan),
Estado del Arte
48
PSSA (Cost),
PSSA (MP)
Utilización de recursos externos además de los internos (mano de obra externa) [47]
Disponibilidad de los recursos 41,[88]
Patrones de trabajo (asignación de un patrón de trabajo a cada recurso humano) [43]
Experiencia de los recursos humanos [16],[20], [41],
[40] , [48],[93]
Restricciones de preferencia [34],[72]
Limitación del tiempo trabajado [2],[6],[42],
[43]
Mínimo de tareas a realizar [34],[44] ,[65],
[66] ,[72]
Cada recurso a exactamente una tarea [6],[7],[93]
Tiempo de
finalización Definición del makespan
[4],[7],[18],
[20],[42], [87],
PSSA
(Makespan),
PSSA (MP)
Habilidades
Las habilidades de las actividades deben de ser satisfechas.
[9],[34], [47],
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Experto: Consideración de al menos un experto por proyecto [40]
Limitación de la cantidad de trabajo que puede realizar un recurso por habilidad [16],[48]
Un empleado no puede ser asignado a una tarea si no tiene la habilidad que le
exige
[7], [30], [42],
[47],[48],[66],
[87], [88],
PSSA
(Makespan),
PSSA (Cost) ,
PSSA (MP)
Tiempos de proceso
controlables (CPT)
Tiempos de proceso de las tareas dependientes de la cantidad de recursos
asignada
PSSA
(Makespan),
PSSA (Cost),
PSSA (MP)
Tiempos de proceso dependientes de la experiencia de los empleados [48],[88]
Movimiento Limitación del número de movimientos (moves) [30]
Tabla 3-I: Comparativa de los modelos de la literatura
Scheduling and staffing projects [4], [9], [20], [30], [47], [65], [87], [88], [93]
Task scheduling and employee timetabling [6], [7], [42], [43]
Employee timetabling [66]
Project selection, scheduling and staffing projects [41], [40]
Staff assignment [16], [19], [27], [34], [44], [48], [72]
Task scheduling [18] Tabla 3-II: Clasificación de la temática de los modelos
Estado del Arte
49
3.7. Tabla resumen con los tipos de resolución utilizados
por los artículos
Si la tabla anterior era fundamental para comparar los modelos presentados con la
literatura viendo sus puntos fuertes y débiles, en este caso nos encontramos con una tabla
enfocada más a la resolución del problema. Se presenta un resumen con los tipos de
resoluciones utilizadas por los artículos que analizan el mismo problema. Además, se
muestra cuál ha sido el tipo de metodología o heurística estudiada.
Como fue comentado en el estado del arte, los artículos analizados se corresponden, de
manera global, a dos enfoques y es así como serán divididos para ser presentados en esta
tabla. Por una parte se muestra en rosa claro los artículos relacionados con “Job-shop
scheduling”, con “Employee timetabling” o con la integración de ambos. Por el contrario,
en azul tenemos “Task scheduling” y “Staff assignment”, pero ahora más relacionados con
proyectos y empresas de servicio.
# TIPO DE PROBLEMA TIPO DE RESOLUCIÓN
MÉTODO O HEURÍSTICA DE RESOLUCIÓN
[4] Task scheduling and Staff assignment
Exacta
Aproximada Traditional two-stage solution
Heurística Explicada en el modelo
[6] Job-Shop Scheduling and Employee Timetabling problem
Exacta Utiliza ILOG Solver 6.1 and Scheduler 6.1 para el "Constraint based scheduling" y ILOG CPLEX 9.1 para el "Linear programming".
[7] Job-Shop Scheduling and Employee Timetabling problem
Exacta Utiliza ILOG Solver 6.1 and Scheduler 6.1 para el "Constraint based scheduling" y ILOG CPLEX 9.1 para el "Linear programming".
8 Scheduling and staffing projects Exacta CPLEX
Heurística Heurística propia
[15] Asignación de personal a departamentos
Heurística Greedy heuristic
Heurística Lagrangian Heuristic
Heurística Assignment Heuristic
[18] Task scheduling
Exacta CPLEX
Metaheurística Algoritmo genético
Metaheurística Búsqueda tabú
Metaheurística Algoritmo de búsqueda de vecinos.
[19] Asignación de personal (Staff assignment)
Exacta Minimum cost network flow
[20] Task scheduling and Staff assignment Exacta CPLEX 10.0
Estado del Arte
50
[30] Scheduling and staffing projects
Exacta CPLEX (no encuentra ninguna solución válida con CPLEX)
Heurística Búsqueda tabú con una solución inicial que se obtiene de una heurística Greedy (realiza 6 tipos de greedy)
[34] Asignación de personal
Exacta Cplex MIP 8.0
Heurística “Open source Relaxation algorithm version IV by Bertsekas implemented by the OR group of the University of Pisa”
[41] Project selection and scheduling and staffing projects
Metaheurística “Nondominated Sorting Genetic Algorithm”
Metaheurística “Pareto ant colony algorithm”
[40] Project selection and scheduling and staffing projects
Heurística Colonia de hormigas con un algoritmo Greedy como subrutina
Heurística Algoritmo genético con un algoritmo Greedy como subrutina
Exacta CPLEX (linealiza el problema)
[42] Job-Shop Scheduling and Employee Timetabling problem
Exacta Cut generation
Exacta Branch and Cut
Exacta ILOG Cplex
[43] Job-Shop Scheduling and Employee Timetabling problem
Exacta Cut generation
Exacta Benders decomposition
Exacta ILOG Cplex
[44] Asignación de personal Solución local COIN-OR’s Ipopt
[47] Scheduling and staffing projects
Exacta CPLEX
Metaheurística Algoritmo de asignación enfocado a máximo coste
Metaheurística Algoritmo de asignación aleatoria
[65] Task scheduling and Staff assignment Heurística Algoritmo de Ibarra (1977)
Heurística Algoritmo propio del artículo
[66] Employee Scheduling Metaheurística Búsqueda local
[87] Task scheduling and resource assignment
Heurística 6 tipos de heurísticas diferentes (H, RDM/FER, LPT/FER, FAR, LTW, LAW)
[88] Task scheduling and resource assignment
Metaheurística Algoritmo genético con búsqueda local
[90] Programación de proyectos y asignación de personal a ellos y a departamentos
Exacta CPLEX 11
Heurística Basada en el algoritmo DROP (relacionado con “multi-period capacitated warehouse location problem”)
[93] Project scheduling and staff assignment (no lineal)
Heurística Algoritmo genético utilizando CPLEX para calcular el subproblema lineal del fitness de los cromosomas
LEYENDA
Job-Shop Scheduling and Employee Timetabling problem
Task scheduling and staff assignment Tabla 3-III: Tipos de resolución utilizadas en la literatura
Estado del Arte
51
Podemos observar como la mayoría de los artículos utilizan para su resolución tanto
métodos exactos como metaheurísticas. Se trata de una estrategia muy usada en la
literatura que pretende analizar el método heurístico utilizado mediante su comparación
con el exacto. Puesto que la solución exacta suele necesitar mucho tiempo de resolución
para volúmenes grandes, lo que se hace es comparar ambos métodos en volúmenes medios
o pequeños. Suponiéndose que si funciona bien en pequeños volúmenes, debe hacerlo
también en tamaños grandes.
También se puede observar que existe prácticamente unanimidad en el software utilizado,
CPLEX, para las resoluciones exactas. No es así para el caso de las heurísticas en dónde
los autores han utilizado una gran variedad de métodos. En la siguiente tabla hemos
agrupado dichas heurísticas, ordenándolas según su número de repetición:
HEURÍSTICA Nº DE VECES UTILIZADA
Algoritmo genético 5
Colonia de hormigas 2
Búsqueda tabú 2
Búsqueda local 2
Heurística de asignación 2
Greedy 1
Lagrangiana 1
Tabla 3-IV: Resumen de algoritmos utilizados en la literature
Como se comentó con anterioridad se observa la gran dispersión en las heurísticas
utilizadas siendo la más repetida la metaheurística “Algoritmo genético” seguida de la
colonia de hormigas y de la búsqueda tabú. Destacar que aunque el método “Greedy”
aparezca en último lugar con un solo uso, ha sido utilizado también dos veces más pero no
como algoritmo completo de resolución, sino como una heurística interna para el cálculo
de una solución inicial o de subproblemas dentro de otros.
Estado del Arte
52
3.8. Tabla resumen con la batería de problemas de los
artículos analizados
En este caso, la tabla mostrada se corresponde con datos sobre las baterías de problemas
usadas en los artículos del estado del arte. El objetivo que pretendemos con esta tabla es
tener una orientación de los órdenes de magnitud que se han elegido en las principales
variables de los modelos. Esto será de especial utilidad para la determinación de la batería
de problemas elegida de cara a la validación del modelo PSSA (apartados 7.2 y 7.3).
Aparecen en ella los valores de las variables que han sido usadas en los artículos, para el
estudio de las resoluciones de sus modelos. La clasificación de los artículos se ha vuelto a
separar en dos con el código de colores que muestra la leyenda de más abajo.
Ref. NOMBRES DE LA VARIABLES VALOR DE LAS VARIABLES
[4]
Número de tareas 6 - 15
Duración de las tareas 2 - 3 semanas
Número de instancias realizadas 20
[6]
Batería de referencia Fisher and Thompson job-shop instance
Número de máquinas 6
Número de trabajos 6
Número de operaciones (trabajos x máquinas)
36
Número empleados 15
Número actividades 4
Duración de los trabajos 1 - 10 horas
Coste de asignar actividad a empleado en turno
1 - 5
Unidad de tiempo Horas
Número de instancias realizadas 3 (uno por cada método)
[7]
Número de trabajos 6,8,10
Número de operaciones 4,8,10
Número de empleados 25,40,50
Número empleados extra 10,20
Número actividades 4,5,8,10
Número de tipos de turnos 8,9,10
Duración de los turnos 8,10
Máximos empleados por actividad 1,2
Máximos empleados por operación 1,2
Máximos skills por empleado 2,4
Número de instancias realizadas 4 conjuntos de casos (cada conjunto con propiedades
Estado del Arte
53
diferentes)
[9] Número de tareas 97, 1083
Número de roles (skills) 138, 1379
[15]
Batería de problemas de referencia Utiliza las mismos instancias que en el experimento principal de
[14]
Número de departamentos 4, 8
Número de empleados por departamento
5, 10
Número empleados total Nº Departamentos * Nº Empleados/departamento
Nº departamentos en que cada empleado está calificado
2, 4 (cada empleado debe tener al menos en uno de ellos una eficacia de 1)
Eficacia de empleado en departamento Elegidos aleatoriamente de dos tipos de conjuntos: {0.8, 1} y
{0.4,0.6,0.8,1}
Número de instancias realizadas 512
[18]
Batería de problemas de referencia Utiliza la batería ProGen, [55, 57]
Número de trabajos 30, 60
Rango para primar que el proyecto acabe antes (alpha)
0.5%
Coste unitario por recurso tipo K Nº aleatorio entre 1000 y 1300 dividido por el nivel de recursos
k disponibles por periodo, Rk.
r_jk Nº aleatorio entre 0.3 y 0.5
[19]
Número de empleados 25, 50, 100, 250
Número de categorías 2, 3, 4
Número de tareas 2, 3, 5
Nº Empleados deseados para asignar a una tarea
Varía (no dice como)
Horizonte de planificación 72 periodos (1 periodo = 1 hora)
Número de exper instancias imentos realizados
120
[20]
Número de tareas 3, 4, 5
Número de empleados 3, 4
Horizonte de planificación 20 periodos
Volumen de trabajo de cada tarea {5,15,15} {10,15,10} {4,8,8,8} {4,4,8,10} {4,6,6,8,8} {4,4,4,8,8}
Límite superior de experiencia en tarea por otra tarea
3
Proporción de experiencia en tarea al hacer otra
0, 0.2, 0.3, 0.5
Tiempo de comienzo {1,5,9} {1,1,9} {1,5,5} {1,3,6,9} {1,1,6,6} {1,3,3,9} {1,3,5,7,9}
{1,1,7,7,7} {1,3,3,3,9}
Mínimo número de periodos para completar tarea
1
Límite superior de volumen de trabajo por tarea y tiempo
Volumen de trabajo de cada tarea (los dos últimos vienen en el modelo al revés aunque así tiene más lógica
Número de instancias realizadas 108 divididos en tres tipos de experimentos.
[30]
Batería de problemas de referencia Utiliza la batería ProGen, [55]
Actividades que puede realizar cada empleado (skills)
70% de todas
Requerimientos de skill de la actividad (Smin)
Distribución uniforme que va de 0 a la mitad del nº de empleados que pueden realizar esa actividad dividido por el
número total de actividades (para "t" antes de el realease time y
Estado del Arte
54
después del due date). Para "t" entre ambos tiempos (rj y dj), entonces irá entre 0 y el número de empleados que pueden
realizar esa actividad dividido por el número total de actividades.
Número de actividades 60 (más dos dummies)
Tiempo ejecución algoritmo tabu Límite máximo de 5 minutos
Número de instancias realizadas 110
[34]
Número de empleados 500,1000,1500,2000,2500,3000
Número de actividades Nº aleatorio entre el 5% y 10% del número de empleados
Costes de asignación Probabilidad uniforme en el intervalo [50,100]
Número de instancias realizadas 15
[40]
Número de proyectos 14,18
Horizonte de planificación 24
Empleados 28
Competencias 40,80
Número de experimentos realizados 2
[41]
Número de objetivos económicos y objetivos de competencias
1 de cada uno
Número de proyectos 12, 18
Beneficio económico wi Utiliza la fórmula explicada en el artículo:
Número de competencias 20
Peso vr Da dos formas para calcularlo
Ready times y due dates Se obtienen multiplicando dos números aleatorios entre 0 y 1 por T. El menor de ellos será el ready time y el mayor el due
date
Eficiencia inicial Número aleatorio entre 0 y 1
Capacidad de los empleados Número aleatorio entre 0.5 y 1
Número de instancias realizadas 10 para cada uno de los 80 experimentos estudiados
[43] Batería de problemas de referencia Utiliza las instancias propuestas en [7]
[42][43]
Release dates Distribuido con una ley uniforme (Parece que no da los
parámetros de esta)
Duración de los trabajos Distribuido con una ley binomial. Valor máximo posible 30
Intervalo de las ventanas de tiempo Distribuido con una ley binomial. Máximo valor posible 30,60 ó
90 y medias de 15 y 25 dependiendo del análisis
Unidad de tiempo 15 min
Asignación de trabajador a competencias
Aleatorio
Número de competencias 1,2,3,4,5
Horizonte de planificación 480 min
Número de instancias realizadas 270
Parámetro "n". No explica lo que es 4,5 ó 5 veces la ventana temporal
[47]
Número de proyectos 10, 20, 30, 40, 50
Duración de los proyectos 6
Horizonte de planificación 12
Skills por proyecto y periodo 3
Skills por proyecto <=4
Estado del Arte
55
Límite inferior ventana de tiempo U(1,7)
Trabajadores internos/Trabajadores externo
>=0.2
Número de skills 25
Skills de cada empleado 1, 2, 4, 6, 8, 10
Número de empleados internos 100
Capacidad de trabajo de los empleados internos
20
Capacidad de trabajo extra de empleados internos
6
Coste por unidad de tiempo de los empleados internos
500
Coste por unidad de tiempo de las horas extras de los empleados internos
600
Coste por unidad de tiempo de los trabajadores externos
TN600,1000(800,100)
Eficiencias de los empleados internos TN0.5,1.5(1,0.25)
Longitud de la ventana de tiempo 0, 0.5, 1.0, 1.5, 2,0
Número de instancias realizadas 10 por cada experimento, en total 210
[48]
Número de recursos humanos internos 6
Número de periodos 6
Número de skills 4
Tiempo máximo a trabajar por periodo 20
Demanda de cada skill en cada tiempo 45
Costes por usar skills 400,500,600,700
Número de instancias realizadas 16
[65]
Número de empleados 2,5,8
Número de tareas 20,30,40,50,60,80,100,200
Competencias para cada tarea Distribución uniforme entera [1,3]
Fecha límite de las tareas Distribución uniforme entera [2*duraciónMediaTarea,
2*duraciónMediaTarea+A] con A=360,540 ó 720
Coste penalización por pasarse del due date
Distribución uniforme entera [1,100]
Número de instancias realizadas 20 problemas para cada uno de los 24 casos
[66]
Número de turnos por semana 21, 43
Número de empleados 29, 50
Número de tareas total 105, 276
Nº tareas a asignar por cada empleado 3
Número de instancias realizadas Hay dos tipos de problema y en cada uno se realizan 3 o 4
experimentos dependiendo del tamaño. Cada experimento fue ejecutado 40 veces.
[87]
Número de actividades (tareas) 50, 100
Número de procesadores (recursos) 4, 6, 8
Nº de recursos (personas,maquinas…) que pueden realizar una actividad
4 ó (1,2,3,4)
Duración de las actividades Distribución uniforme discreta entre [1,100]
[88] Número de tareas 50,100,500
Estado del Arte
56
Tipos de horarios con las disponibilidades de empleados
3 tipos diferentes
Número de empleados 6,8,10,13,16,19,31,39,47
Trabajadores por área [30%,50%], [55%,75%]
Tipo de relaciones de precedencia (FF,SS,FS,SF)
Elegidos aleatoriamente
Nivel de prioridad del cliente en tarea Distribución uniforme de [5,10]
Duración estándar Distribución uniforme de [1,10]
Horizonte de planificación 120 (5 días de 24 horas) ó 240 (10 días de 24 horas)
Porcentaje de tareas independientes (sin relaciones de precedencia)
50%, 75%, 100%
Número de instancias realizadas 5 para cada caso. En total 720 instancias
[90]
Número de empleados 5, 10, 15, 20, 25
Número de departamentos 2, 3, 4, 6, 7
Número de proyectos 3, 6, 8, 7, 9, 10
Horizonte de planificación 12 meses
Unidad de tiempo Mes
Número de diferentes skills 5, 6, 7, 9, 10
Número de instancias realizadas Parece que 5 tipos de experimentos pero no dice cuántos
instancias en cada tipo
[93]
Número de proyectos 5,10,15
Número de tareas total 10,20,30
Eficiencias iniciales de los empleados para cada tarea
Mostradas en una tabla en el artículo (no dice nada de cómo la genera)
Nº máximo de dias por periodo de cada empleado
Mostradas en una tabla en el artículo (no dice nada de cómo la genera)
Horizonte de planificación 4 meses
Unidad de tiempo 1 mes
Nº máx. de días por periodo de cada empleado externo
25
Número de instancias realizadas Se resuelve un problema con 20 experimentos diferentes, cada
uno con diferentes parámetros.
LEYENDA
Job-Shop Scheduling and Employee Timetabling problem
Task scheduling and staff assignment Tabla 3-V: Baterías de problemas utilizadas en la literatura
Podemos observar la gran variedad de baterías de problemas que se han analizado. Es
difícil encontrar patrones comunes puesto que cada batería está enfocada a problemas con
diferentes restricciones y variables, además de que el orden de magnitud cambia de un caso
a otro. Además, también se observa cómo depende la batería del método de resolución
utilizado. En el caso de modelos resueltos únicamente por resoluciones exactas, se puede
observar cómo utilizan una batería con tamaños del problema inferiores. Este es el caso,
por ejemplo, de los siguientes artículos: [20] que utiliza de 3 a 5 tareas y de 3 a 4
Estado del Arte
57
empleados; [6] utiliza 6 máquinas, 10 tareas (6 para máquinas y 4 para empleados) y 15
empleados; [7] usa de 6 a 10 tareas, de 8 a 20 tareas (de 4 a 10 tanto para máquinas como
empleados) y de 25 a 50 empleados; o del [19] que utiliza de 2 a 5 tareas, de 2 a 4
habilidades y de 25 a 250 empleados.
Por el contrario, en problemas resueltos con métodos heurísticos o metaheurísticas se
observa una tendencia a baterías de problemas con tamaños mayores. Ejemplos claros los
encontramos en [66], que utiliza de 29 a 50 tareas y de 105 a 276 empleados; o en [88] que
emplea de 50 a 500 tareas, de 6 a 47 empleados y un horizonte de planificación de 120 a
240 horas.
Este hecho se debe a que la resolución exacta, cuando el tamaño del problema es
excesivamente grande, necesita de muy altos tiempos de ejecución. Mientras que las
metaheurísticas pueden llegar a encontrar soluciones bastante buenas en tiempos muy
inferiores.
En nuestro caso, el modelo que presentaremos será resuelto mediante un software de
resolución exacta. Presentaremos una batería de problemas (ver apartado 7.2) en la que
incluiremos tamaños pequeños dónde las soluciones exactas encuentran buenas soluciones
rápidamente y, también, introduciremos algunos experimentos con tamaños del problema
mayores, con el fin de observar a partir de que valores los tiempos de ejecución comienzan
a ser demasiado elevados. Adicionalmente, se adaptará también la batería de problemas
ProGen procedente de la literatura, para poderla utilizar en nuestro problema (ver apartado
7.3).
Estado del Arte
58
3.9. Líneas futuras de investigación en la literatura
A continuación, presentamos un resumen de las líneas futuras de investigación más
interesantes que hemos encontrado en la literatura sobre los principales aspectos que
trataremos en este documento.
[93] establece el “Project scatter effect” cómo posible mejora a su modelo de
programación de tareas y asignación de personal. Consiste en que la eficiencia de un
equipo de trabajo disminuirá si hay más número de personas en el equipo de las que indica
el óptimo.
Para el problema de programación de tareas, una posible línea futura de investigación sería
obtener algoritmos que den el óptimo para problemas con 30 o más tareas, [18]. [4] se
inclina por la posibilidad de utilizar en la programación elementos estocásticos (fallos en
los equipos; incremento de costes; mano de obra a corto plazo; etc.) y análisis de
sensibilidad de las soluciones.
[87], por el contrario, introduce la idea de incluir duraciones de las actividades
dependientes del tipo de recurso que se asignada a las mismas. Hace referencia a recursos
que puedan ser utilizados con diferentes tecnologías. Como se vio en el estado del arte, los
artículos [88] y [48] han abordado esta línea de investigación para recursos humanos donde
las duraciones de las actividades dependían de las eficiencias o experiencias de los
trabajadores asociados a ellas. Sobre una línea parecida a esta nos centraremos en el
modelo que se presentará en la siguiente sección. No obstante, en vez de duraciones
dependientes del tipo de recursos, se utilizarán dependientes de la cantidad de recursos
asignados. Con lo que, por ejemplo, la duración de la parte informática de un software,
dependerá de cuántos informáticos estén asignados para llevarla a cabo.
[41] habla de varias extensiones en las que se podría trabajar para su modelo de integración
de selección de proyectos, programación de tareas y asignación de personal. Siendo dichas
extensiones las siguientes: introducir relaciones de precedencia entre las tareas o
Estado del Arte
59
proyectos; adaptar el modelo a un enfoque más estocástico en vez de determinista; realizar
un horizonte de planificación a más largo plazo; utilización de métodos exactos…
Posibles mejores podrían ser realizadas encaminadas a la eficiencia de las heurísticas que
han sido utilizadas, en los problemas puramente de asignación de personal. Así cómo, la
ejecución de diferentes tipos de heurísticas para la resolución [34].
[31] se centra en la generalización de los modelos y métodos como futuras mejoras al
necesitarse grandes modificaciones en los mismos cuando se utilizan en diferentes áreas.
Por tanto, es necesario desarrollar modelos más flexibles y que se adapten mejor a los
cambios en los puestos de trabajo. Esto puede conllevar además el desarrollo de algoritmos
más genéricos que sean robustos a los cambios.