capítulo 3: estado del arte - universidad de...

37
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.

Upload: others

Post on 18-May-2020

8 views

Category:

Documents


0 download

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.