Definiciones Capítulo 2: Definiciones A lo largo de este trabajo, se utilizarán términos que son específicos de esta temática y que resulta imprescindible conocer para el entendimiento de la tesina. En algunos casos, se trata de términos que han sido utilizados con diferentes enfoques y, en otros casos, se han llegado a utilizar varios para el mismo concepto. Surge así la necesidad de presentar una terminología única para nuestro trabajo que esclarezca y unifique las definiciones que utilizaremos. A continuación, se muestran las definiciones más relevantes que han sido utilizadas: Actividad: Tradicionalmente, es utilizado en la literatura para cada una de las partes en las que se divide un proyecto. Sin embargo, también se utiliza el término “tarea” para este caso (ver “tarea”). Ambos son los términos más importantes en nuestro trabajo, pues el objetivo es la programación de las actividades de un proyecto y su asignación al personal de la empresa. Algoritmo Genético: Metaheurística cuyo algoritmo intenta simular la evolución genética de las especies. Representa cada solución como una cadena genética y se pretende que la calidad del individuo sea lo mejor posible. Algoritmo Voraz (Greedy): Método cuyo objetivo es la búsqueda de soluciones locales con la intención de obtener el óptimo del problema. Será importante la obtención de buenas soluciones iniciales para alcanzar diferentes óptimos locales. Búsqueda Local: Consiste en la obtención de soluciones mediante la búsqueda de buenas soluciones en la vecindad. El objetivo es averiguar el vecino que tiene mejor solución y entonces volver a realizar una búsqueda local sobre él. 16 Definiciones Búsqueda Tabú: La búsqueda tabú añade memoria a la búsqueda local. En cada una de las iteraciones, los elementos que se vayan cogiendo se marcarán con una señal para que en la siguiente iteración no se vuelvan a coger las mismas soluciones. Colonia de Hormigas: Se trata de una metaheurística que reproduce el comportamiento que ejecutan las hormigas en su búsqueda de alimentos. Los mejores caminos (soluciones más altas) tendrán más feromonas y pasarán entonces más hormigas por ellos para rastrear soluciones. CPLEX: Software informático para resolver problemas de optimización lineal y entera. Efecto del aprendizaje (Learning effect): Se utiliza esta expresión en la literatura cuando se quiere hacer referencia a que los empleados aprenden y van cogiendo experiencia a medida que realizan la misma acción. De esta forma, cuanto más tiempo estén ejecutando la acción, irán adquiriendo mayor efectividad para su realización lo que originará, normalmente, un menor tiempo de proceso. Eficiencia estática: En este caso, no se mejora la eficiencia con el tiempo, permanece constante independientemente del tiempo que haya trabajado un empleado en la tareas (no hay efecto de aprendizaje). Eficiencias heterogéneas: Se utiliza para establecer que los empleados puedan realizar sus tareas con diferentes niveles de eficiencia. Los niveles de eficiencia los fija el decisor. Un ejemplo de los niveles de eficiencia en la habilidad “soldar” podría ser: experto (1 punto), medio (0.5 puntos), novato (0.25 puntos). Eficiencias homogéneas: Se utiliza este término, en los modelos, para establecer que todos los empleados tienen la misma eficiencia en las habilidades de las que disponen. Es decir, para cada empleado habrá que decir únicamente qué habilidad posee y recibirá la eficiencia estándar para cada una de ellas. 17 Definiciones Empresa de fabricación (Manufacturing firm): Son empresas dedicadas a la producción de bienes materiales de forma directa. Los productos deberán pasar, para su finalización, a través de maquinarias o personas que irán realizando cada una de las partes del producto. Empresas de servicio (Service firm): Son empresas que se encargan de la realización de proyectos. El recurso fundamental de este tipo de empresas son sus empleados que son los encargados de la realización de los proyectos. Venden un servicio que puede ser: una consulta telefónica, asistencia médica, un proyecto de arquitectura, diseños de maquinaria,… Ejemplos de este tipo de empresas son: centros telefónicos, empresas de auditoría, empresas de ingeniería dedicadas a la realización de proyectos,… Experiencia: En este documento se denominará experiencia al aprendizaje que adquiere un empleado en una determinada tarea por el hecho de haber ya realizado esa tarea de antemano. Cuanto mayor tiempo se realice la tarea, mayor será la experiencia del trabajador en la misma. Fecha de vencimiento (Due date): Es la fecha límite que tiene una tarea para poder ser terminada. Gurobi: Software informático, similar a CPLEX, para resolver problemas de optimización lineal y entera. Habilidad (skill): En este documento hablaremos de habilidades como las características especiales que pueden realizar los empleados en sus trabajos. Ejemplos de habilidades pueden ser: capacidad para soldar; conocimiento de inglés; especialista en programación con Java; gestor de proyectos… En los modelos, que se verán más adelante, se asocian habilidades a los empleados y, además, las tareas pueden solicitar únicamente empleados con ciertas habilidades para realizar el trabajo. Heurística: Algoritmo matemático para resolver un problema particular de optimización, mediante el que se intenta obtener soluciones cercanas al óptimo del problema en un tiempo de programación razonable. 18 Definiciones ILP (Integer linear programming): Son las siglas en inglés del término “Programación lineal entera” que se refiere a la utilización de una programación con ecuaciones lineales y variables enteras para resolver los modelos. Metaheurística: Son heurísticas genéricas. Es decir, heurísticas que se pueden utilizar para cualquier problema independientemente de lo que se esté modelando. Movimiento (Move): Se denomina movimiento al cambio que se produce cuando un empleado pasa de trabajar en una tarea a otra diferente sin que haya acabado la primera en la que estaba trabajando. Multi – habilidad (Multi-skill): Este término es usado cuando un empleado puede realizar más de una habilidad. Non-preemptive assumption: Si una tarea j tiene duración dj y es completada en el tiempo t, entonces la tarea ha tenido que ser ejecutada durante todo el tiempo t-dj+1,…, t. Es decir, las tareas no se pueden detener en mitad de su ejecución, una vez que comienzan a realizarse deben ser procesadas hasta que se acaben. Patrones de trabajo: Un patrón de trabajo se define como el conjunto de horas de trabajo y descansos que debe realizar un empleado en su semana laboral. Así un patrón de trabajo podría ser turno de noche con media hora de descanso a las 4.00 y cinco minutos de descanso a las 6.00. Preferencia: Hace referencia al deseo de un empleado por realizar determinadas tareas en lugar de otras. Programación: Dado una serie de elementos para ser procesados por un recurso, la programación es la ordenación de forma consecutiva de dichos elementos de forma que se puedan realizar uno detrás de otro por el recurso. En este documento se presentará un modelo en el que se secuenciarán las tareas en empresas de servicio. En este caso, no habrá un único recurso, sino varios por lo que será necesario secuenciar las tareas en cada uno de ellos. 19 Definiciones Proyectos: En este trabajo nos referiremos a “proyectos” únicamente en el ámbito de las empresas de servicio. Denominaremos así “proyecto” a cada uno de los trabajos, en su forma completa, que deben realizar estas empresas. Generalmente se corresponden con los pedidos de los clientes en empresas de servicio. Relaciones de precedencia: Son restricciones que relacionan las fechas de inicio y finalización de unas tareas con las de otras. Así, podrían ser relaciones de precedencia los siguientes ejemplos: la tarea 1 no puede comenzar hasta que la tarea 2 acabe; la tarea 3 debe comenzar como mínimo 10 segundos después de que termine la tarea 4;… Taller (Job – shop): Como se ha comentado más arriba, las empresas de fabricación disponen de maquinas por la que pasan los productos. Para que cada uno de estos productos finalice deberá pasar por algunas de las máquinas en su proceso de elaboración. Según circule el producto por estas máquinas se corresponderá con una de las siguientes condiciones de la maquinaria: máquina única, máquinas idénticas en paralelo, máquinas en paralelo con diferentes velocidades, máquinas distintas en paralelos, flujo regular, flujo flexible, flujo abierto, y taller [73]. En este documento sólo se usará el ultimo término “Taller” que se corresponde con la condición más genérica, en dónde cada producto a procesar sigue, en principio, una ruta distinta (visita distintas máquinas) que el resto de productos. En el flujo regular todos siguen la misma ruta. Es decir, cada producto puede seguir la secuencia de máquinas que mejor se ajuste a sus necesidades tecnológicas. Tareas: Principalmente, el término tarea se utiliza para cada una de las acciones que es necesario realizar para, a partir de las materias primas, llegar a obtener el producto final deseado en empresas de fabricación. También se utiliza como una subdivisión de los trabajos que hay que realizar en estas empresas. Se trata de un término similar al de “Actividad” que se vio con anterioridad, siendo la principal diferencia entre ambos, el ámbito en el que se usan (uno para empresas de servicio y el otro, principalmente, para empresas de fabricación). Aunque este documento está centrado en la programación de actividades en empresas de servicio, también se analizará la programación de tareas en empresas de fabricación, dada la similitud entre ambos problemas. Por este motivo, ambos problemas serán muy estudiados a lo largo del documento. En determinados aspectos, 20 Definiciones referidos a la programación y la asignación, serán usados prácticamente como sinónimos debido a la analogía entre los problemas. Para intentar facilitar la comprensión del documento y puesto que el término tarea se ha utilizado ya en la literatura para ambos aspectos, se empleará únicamente “tarea” al referirnos tanto a las actividades de las empresas de servicio como a las tareas de las de fabricación. Tiempo de comienzo (Release time or Ready time): Instante de tiempo a partir del cual una tarea puede comenzar a ejecutarse. Tiempo de proceso de una tarea: Hace referencia a la cantidad de tiempo que se tarda en ejecutar una tarea. Tiempos de proceso controlables (Controllable processing time, CPT): Es un término utilizado en la literatura cuando los tiempos de proceso pueden ser controlados, en vez de ser impuestos como datos (forma tradicional). Los tiempos de proceso se calcularán entonces como variables del modelo o a través de ecuaciones externas formadas por variables. En muchas tareas los tiempos de proceso no son controlables puesto que vienen dados por la tecnología a emplear. Sin embargo, en numerosas otras ocasiones dichos tiempos dependen de variables y, por tanto, no están fijos. Este es el caso por ejemplo de: proyectos para la realización de software en dónde el tiempo de realización de los programas depende del número de empleados asignados; empresas de servicio de llamadas telefónicas en dónde las duraciones de las llamadas suelen ser estocásticas; o proyectos teóricos (cálculos ingenieriles, sentencias jurídicas, análisis económicos,…) en dónde la experiencia juega un papel muy importante de cara a las duraciones. Tiempo de terminación o Tiempo máximo de terminación de las tareas (Makespan): Se define como el instante en el que termina la última tarea que se realiza en el sistema. Desfase temporal (Time Lag): Tiempo que debe transcurrir entre que termine una determinada tarea y comience otra. 21 Definiciones Trabajadores entrenados transversalmente (Cross-trained): Son empleados que pueden realizar diferentes tareas. En la literatura, también se usa para esto el término equivalente personal multifuncional (multifunctional staff). Turno único (Single Shift): Hace referencia a que hay un único turno posible en el que pueden trabajar los empleados de una empresa. Por ejemplo, un turno único usado con frecuencia en las empresas es: jornada completa de 7 a 15. 22