Source: http://docplayer.es/1687770-Optimizacion-de-recursos-mediante-colonia-de-hormigas.html
Timestamp: 2017-11-21 07:32:50+00:00

Document:
OPTIMIZACIÓN DE RECURSOS MEDIANTE COLONIA DE HORMIGAS - PDF
OPTIMIZACIÓN DE RECURSOS MEDIANTE COLONIA DE HORMIGAS
Download "OPTIMIZACIÓN DE RECURSOS MEDIANTE COLONIA DE HORMIGAS"
1 OPTIMIZACIÓN DE RECURSOS MEDIANTE COLONIA DE HORMIGAS Paula Areces, Carlos Alba ArcelorMittal Global R&D Asturias Joaquín Villanueva Universidad de Oviedo, Área de Proyectos de Ingeniería Alberto Gómez Universidad de Oviedo, Área de Organización de Empresas Abstract The planning of projects with limited resources is one of the classic problems in Project Management. Having a limited set of resources, the stages and tasks of the project, with their durations and precedence relations, the aim is to reach the best planning in terms of deadlines or cost. In function of the number of tasks and resources, solving this problem can be trivial or something impossible to solve algorithmically in a reasonable time. This study proposes a solution based on metaheuristic techniques, particularly Ant Colony Optimization (ACO). In addition to the original problem, they will be permitted flexible and inflexible constraints, i.e. suggested end date for the project or to forbid enlarging the duration of the project to solve the overloaded resources, respectively. It will be possible to assign penalty costs due to delays, extra hours, transport costs, idle cost and relations among resources. It is presented in this work a classification of the different resource scheduling problems and a general solution based in ACO. A simple example is included to easily understand the potential behind that could be used as a technique inside any stage of a methodology for resource leveling and project planning. Keywords: Resource Leveling, Project Planning, ACO Resumen La planificación de proyectos con recursos limitados es uno de los problemas clásicos en la Dirección de Proyectos. A partir de un conjunto de recursos limitado, las fases y tareas del proyecto, con sus duraciones y relaciones de precedencia, se pretende obtener la mejor planificación en términos de plazo o coste. En función del número de tareas y recursos, la resolución del problema puede ser trivial o no resoluble algorítmicamente en un tiempo razonable. Este estudio propone una solución basada en técnicas metaheurísticas, en particular, Optimización por Colonia de Hormigas (ACO). Añadido al problema original, se permitirán restricciones flexibles e inflexibles, como fecha sugerida de finalización de proyecto o no permitir alargar la duración del proyecto para resolver la sobreasignación de recursos, respectivamente. Se permitirá asignar costes de 462
2 penalización por retrasos, asignación de horas extra, costes por transporte, tiempo ocioso y relaciones entre recursos. Se presenta en este trabajo una clasificación de los problemas de programación de recursos y una solución genérica basada en ACO. Se incluye un ejemplo sencillo para comprender fácilmente el potencial que podría ser usado como técnica dentro de alguna fase en metodologías para nivelación de recursos y planificación de proyectos. Palabras clave: Nivelación de Recursos, Planificación de Proyectos, ACO 1. Introducción La planificación es una de las competencias fundamentales en la dirección de proyectos, con gran impacto en muchos campos: aeronáutica, comunicaciones, enrutamiento, control industrial o planificación de la producción. Derivado de este problema y en relación con la asignación de recursos surgen gran variedad de familias de problemas de optimización. En este trabajo se estudia el caso de la planificación de proyectos con recursos limitados (Resource-Constrained Project Scheduling Problem - RCPSP). Esta planificación se realiza teniendo en cuenta restricciones temporales, de disponibilidad de recursos y de precedencia entre las tareas a planificar. Aunque el RCPSP es un problema NP-duro, existen aproximaciones exactas como las de (Brucker et al, 1998) o (Sprecher, 2000). Sin embargo este enfoque no es viable en la mayoría de los casos por lo que es necesario recurrir a heurísticos. En la literatura pueden encontrarse muchas opciones para su resolución, siendo los metaheurísticos los más extendidos. En este artículo se estudia la utilización de los algoritmos de Optimización de Colonias de Hormigas (Ant Colony Optimization - ACO), desarrollado por Dorigo y Di Caro en 1999, que han demostrado ser una buena opción en la resolución de problemas de optimización combinatoria como el RCPSP. El artículo se organiza de la siguiente forma. En primer lugar se describen brevemente los distintos problemas RCPSP derivados del mismo. A continuación se explica la técnica de resolución elegida y su funcionamiento, el metaheurístico ACO. En el siguiente apartado se describe un ejemplo sencillo que permite comprender fácilmente el funcionamiento del algoritmo, para terminar con las conclusiones obtenidas. 2. Planificación de Proyectos con Recursos Limitados El problema de planificación de proyectos con recursos limitados (RCPSP) es un problema clásico dentro de la dirección de proyectos que considera un conjunto de tareas, con sus respectivas duraciones y necesidades de recursos, que deben ser planificadas sujetas a restricciones de precedencia y de disponibilidad de recursos, siendo el objetivo del problema la obtención de una planificación que minimice la duración (o makespan) del proyecto. De forma más formal el problema RCPSP puede ser definido como un conjunto de tareas y un conjunto de recursos. Cada tarea tiene una duración conocida y requiere una cantidad de recursos siendo el tipo de recurso necesario. Cada recurso tiene una disponibilidad por periodo. Sea el conjunto de precedencia entre tareas donde indica que la tarea sucede a la tarea. La solución de un RCPSP es una planificación que consiste en una lista de instantes de inicio de tareas siendo y dos tareas ficticias de duración igual a cero y sin necesidad de recursos que representan el inicio y el fin del proyecto. 463
3 Las asunciones que definen el problema RCPSP hacen que en la práctica se requiera añadir nuevas características para que se ajuste a las situaciones del mundo real. En los estudios de (Yang et al., 2001) y (Hartmann et al., 2010) se pueden encontrar dos recopilaciones de los tipos de RCPSP que pueden aparecer en función de diferentes aspectos. A continuación se describen algunas de estas principales variantes o extensiones del problema RCPSP que permiten comprender la variedad de problemas derivados del RCPSP básico. 2.1 En función de las tareas En esta sección se describen brevemente las variantes del problema RCPSP en relación a cómo se comportan las actividades del proyecto a planificar RCPSP con tareas mono-modo (SM-RCPSP) Es el caso básico en el que las tareas son mono-modo, es decir, su duración así como los recursos que requiere son fijos y no cambian a lo largo de la vida del proyecto RCPSP con tareas multi-modo (MM-RCPSP) El problema RCPSP estándar considera que las tareas tienen una duración y unos recursos requeridos constantes, sin embargo en el RCPSP multimodo las tareas pueden tener asociados un conjunto de posibles modos de ejecución. Cada uno de estos modos se caracteriza por una duración y los recursos que requiere para poder completarse. Así una tarea podría tener un conjunto de modos. (Jarboui et al., 2008) trata el problema MM-RCPSP con recursos no renovables. (Sabzehparvar et al., 2008) considera el problema multimodo con restricciones generales sobre los recursos. (Li et al., 2008) extienden el concepto de modo como medida de la calidad, es decir, el modo tiene una calidad asociada y la planificación debe alcanzar un mínimo de calidad, por tanto la función objetivo busca maximizar la calidad global del proyecto. (Tiwari et al., 2009) consideran la calidad también en sus estudios multimodo de forma que una tarea debe ser iniciada con un recurso con menos calidad de la requerida y finalizada por un recurso con la calidad necesaria RCPSP con tareas apropiativas En el RCPSP clásico se asume que una tarea no puede ser interrumpida una vez comienza a ejecutarse. RCPSP con tareas apropiativas considera que una tarea sí puede ser interrumpida por otra tarea en determinados instantes durante su tiempo de ejecución. (Davis et al., 1971), (Kaplan, 1988), (Bianco et al, 1999), (Brucker et al., 2001) y (Debels et al., 2008) han realizado estudios considerando actividades apropiativas RCPSP con tareas con necesidad de recursos variable en el tiempo En el RCPSP básico se considera que los recursos que requiere una actividad son constantes a lo largo de su ejecución, es decir, si se denota con la cantidad de recursos de tipo que requiere una tarea y la tarea tiene una duración, entonces en cada uno de esos periodos la tarea requerirá unidades. En el RCPSP con necesidad de recursos variable en el tiempo, el uso de los recursos durante la ejecución de la tarea puede variar. Así continuando con la nomenclatura anterior y generalizándola (se denota por la cantidad de recursos de tipo que requiere una 464
4 tarea en el instante t), se tiene una solicitud de recursos variable durante la ejecución de la tarea. Esta variación tiene una extensión que consiste en una acotación del consumo por periodo, es decir, que en lugar de tener un consumo exacto por unidad de tiempo se tiene un consumo mínimo y un consumo máximo. (Cavalcante et al, 2001) y recientemente (Drezet et al, 2008) han realizado estudios considerando la variabilidad en la demanda de recursos por tarea. El estudio de Drezet et al desarrolla el caso en que los recursos son desarrolladores software donde se manejan restricciones de número de recursos máximo y mínimo por periodo y el número máximo de horas que legalmente puede trabajar el desarrollador por día RCPSP con tareas con tiempos de set-up En algunos casos puede suceder que un recurso deba ser preparado antes de que una tarea comience, a este intervalo se le denomina tiempo de set-up. Un ejemplo que puede ilustrar esta variación es el caso en el que el recurso es una máquina. (Mika et al, 2008) considera varios tipos de tiempos de set-up y los introduce en el RCPSP multimodo en el que estos tiempos de preparación se representan añadiendo tareas con modos específicos. (Nonobe et al., 2002) introducen los tiempos de set-up también como tareas extra que además deben ser completadas antes del inicio de la tarea que requiere la preparación En función de las restricciones temporales En este apartado se describen brevemente las variantes con diferentes restricciones relativas al tiempo RCPSP con periodos máximos En el RCPSP básico las relaciones de precedencia entre tareas son de tipo inicio-fin, esto es, que una tarea debe haber finalizado antes de que sus sucesoras puedan comenzar. En el RCPSP con periodos máximos la precedencia de tareas se extiende de modo que se acota el momento en que comienzan las tareas sucesoras. Así se denota por el instante de finalización de la tarea, por el instante de inicio de la tarea y por el tiempo máximo entre y. Entonces, es decir, el intervalo máximo entre la finalización de la tarea y el inicio de la tarea es. Figura 1 Intervalo máximo entre 2 tareas con relación de precedencia i d ij j (Heilmann et al., 2003), (Sabzehparvar et al., 2008) y (Barrios et al., 2009) consideran los intervalos máximos ligados al problema MM-RCPSP. 465
5 RCPSP con periodos mínimos Del mismo modo, existe el RCPSP con periodos mínimos. Se denota por el instante de finalización de la tarea, por el instante de inicio de la tarea y por el tiempo máximo entre y. Entonces, es decir, el intervalo mínimo entre la finalización de la tarea y el inicio de la tarea es. Figura 2 Intervalo mínimo entre 2 tareas con relación de precedencia i d ij j (Drexl et al., 2000) consideran un problema multimodo con intervalos mínimos que dependen de los modos. Recientemente, (Chassiakos et al., 2005) y (Vanhoucke et al., 2006) también los han considerado en sus estudios RCPSP con periodos prohibidos El RCPSP con periodos prohibidos introduce periodos en los que una actividad no puede ser ejecutada RCPSP con duraciones continuas EL RCPSP clásico asume que las duraciones de las tareas son valores enteros. Una extensión de esta idea consiste en permitir que las duraciones de los trabajos sean de tipo continuo. (Rom et al., 2002) presentan un modelo matemático con una línea temporal que no se encuentra partida en periodos de igual duración En función de los recursos A continuación se describen las variantes sobre el problema RCPSP básico en relación a los recursos RCPSP con recursos renovables En el RCPSP básico los recursos son renovables, es decir, los recursos que requiere la actividad están completamente disponibles en cada periodo de ejecución de la tarea. Recursos renovables como la mano de obra o las máquinas están limitados por periodo. (Demeulemeester et al., 1997) presentan un procedimiento de ramificación y poda basado en el concepto de combinación de actividad-modo maximal. Una combinación actividadmodo es un subconjunto de tareas ejecutadas en un modo específico y es maximal si ninguna otra tarea puede añadirse sin causar un conflicto de recursos. (Sprecher, 1998) desarrolla también un procedimiento de ramificación y poda basado en el concepto de árbol de precedencias. (Hartmann, 1997) aplica un algoritmo genético para su resolución RCPSP con recursos no renovables En el RCPSP con recursos no renovables estos tienen una limitación global al proyecto no por periodo. Los recursos no renovables sólo deben considerarse en RCPSP multi-modo. 466
6 (Kelly, 1963), (Fulkerson, 1961), (Hindelang et al., 1997), (Harvey et al., 1979) y (Skutella, 1997) han realizado estudios sobre este problema desde dos perspectivas: el problema del presupuesto y el problema de fecha límite RCPSP con recursos doblemente limitados En el caso de recursos doblemente limitados, éstos se encuentran restringidos a dos ámbitos, por periodo y a nivel global del proyecto RCPSP con recursos parcialmente renovables El RCPSP con recursos parcialmente renovables introduce la idea de que cada recurso tiene definido un conjunto de sub-periodos para los que se indica la disponibilidad del recurso. Como ejemplo de un recurso parcialmente renovable, podríamos tener un empleado que trabaja de lunes a viernes y el sábado o el domingo, pero no ambos. De este modo cada día del lunes a viernes sería un periodo con disponibilidad del empleado igual a 1 y el sábado y el domingo compondrían conjuntamente un único periodo con disponibilidad RCPSP con producción/eliminación de recursos En el RCPSP con producción/eliminación de recursos los recursos pueden ser creados (aumenta la disponibilidad del recurso) o retirados (disminuye la disponibilidad del recurso) por las tareas RCPSP con recursos continuos En el RCPSP básico la disponibilidad de los recursos se considera únicamente con valores de tipo discreto (por ejemplo, mano de obra o máquinas). Los recursos continuos permiten dividir su disponibilidad de manera continua, lo cual resulta de gran importancia en recursos como la energía o las materias primas RCPSP con recursos dedicados Los recursos dedicados son aquellos que pueden ser únicamente asignados a una actividad al mismo tiempo y pueden ser representados como recursos renovables con disponibilidad por periodo igual a RCPSP con disponibilidad de recursos dependiente del tiempo En el RCPSP clásico se asume que los recursos renovables tienen una disponibilidad constante, es decir, la disponibilidad del recurso es la misma en todos los periodos de tiempo. Sin embargo esto supone una gran limitación que en muchos casos no se ajusta a la realidad. Esta variación sería un caso especial de los recursos parcialmente renovables en el que se define un sub-periodo para cada intervalo con una capacidad propia En función del objetivo El RCPSP básico considera como función objetivo la minimización de la duración del proyecto, sin embargo existen diferentes funciones objetivo que pueden tenerse en cuenta en la resolución del problema. 467
7 Objetivo basado en tiempo Función objetivo basada en el retraso (lateness y tardiness) Lateness es la diferencia entre el instante previsto de finalización de una tarea y el instante real. Tardiness es similar a lateness pero con la diferencia de que no puede ser negativo. Función objetivo basada en tiempos tempranos (earliness) Earliness es la diferencia entre el instante real de finalización de una tarea y el instante previsto. Debe ser mayor que cero Objetivo basado en recursos no renovables En el caso de querer establecer la función objetivo basada en recursos no renovables es posible minimizar el consumo de este tipo de recursos Objetivo basado en costes El coste puede ser un factor que se desee incluir en la función objetivo. Algunas aproximaciones sobre el coste: Minimizar la suma de los costes de las actividades dependiendo éstos del instante de inicio de la tarea Minimizar el coste total del proyecto incluyendo costes por adelantos y retrasos, así como costes asociados a la duración de las tareas (acortar la duración de una tarea supone un coste adicional). Minimizar los costes relativos a la duración de las tareas cuando éstas están acotadas con una duración máxima y una duración mínima. Minimizar el coste del proyecto siendo éste proporcional a la duración del proyecto. Además las tareas pueden ser combinadas para reducir la duración del proyecto aunque con costes asociados. Esta función objetivo se emplea en problemas sin restricciones en los recursos Objetivo basado en planificación proactiva Cuando un proyecto se lleva a cabo probablemente se produzcan retrasos que no podrán ser previstos durante la fase de planificación del proyecto. Por tanto, un director de proyecto estaría interesado en que la planificación fuera robusta para que cuando se produzcan dichos retrasos estos afecten lo menos posible a la ejecución del proyecto. Bajo este contexto surgen las denominadas funciones objetivo basadas en planificación proactiva. Una opción consiste en minimizar el makespan y maximizar las holguras libres de las tareas. La holgura libre de una tarea es el intervalo de tiempo que puede retrasarse una tarea sin que afecte al resto de tareas. Existen otras propuestas en las que se maximiza la holgura libre mínima como único objetivo. Otras aproximaciones añaden medidas de robustez a través de la ponderación de la holgura libre de una tarea con el número de sus sucesores inmediatos y/o la suma de sus solicitudes de recursos. La idea es evitar valores grandes de holguras libres ya que con holguras más pequeñas probablemente se obtenga un búfer suficiente Objetivo basado en planificación reactiva Cuando un proyecto en ejecución sufre situaciones inesperadas, la programación realizada antes del inicio del proyecto deja de ser válida. En este punto, el problema a resolver se ha 468
8 visto modificado: algunas tareas estarán finalizadas, algunas estarán parcialmente realizadas, otras estarás en progreso, algunos recursos habrán cambiado su disponibilidad, etcétera. En la planificación proactiva que se explicó anteriormente, el objetivo es adelantarse a los imprevistos. En el caso de la planificación reactiva ésta debe proporcionar una nueva planificación considerando los cambios que se han producido desde la planificación inicial Objetivo basado en el valor actual neto (NPV-RCPSP) El Valor Actual Neto o VAN (Net Present Value, NPV) es un procedimiento que permite calcular el valor actual de un determinado número de flujos de caja futuros originados por una inversión. Si durante la ejecución del proyecto se producen flujos de caja entrantes (debidos al pago por la finalización de tareas) o flujos salientes (debidos a la ejecución de tareas y al uso de recursos), entonces la función objetivo minimizará el VAN del proyecto sujeto a las restricciones RCPSP. (Demeulemeester, 1997) desarrolla un algoritmo basado en el concepto de árbol temprano el cuál comprende todas las tareas planificadas en sus instantes más tempranos de finalización y que se corresponde con una solución factible con una duración de proyecto igual a la longitud del camino crítico Multi-objetivo Si se combinan algunos de los diferentes objetivos comentados, puede obtenerse un problema multi-objetivo. En la práctica esto se lleva a cabo a través de una única función objetivo en la que se ponderan cada uno de los objetivos considerados Otros Además de todas las variantes y extensiones que se han tratado en las secciones anteriores existen algunos subtipos que se muestran a continuación RCPSP estocástico El RCPSP clásico es de tipo determinístico, esto es, la duración de cada tarea es conocida de antemano. En el RCPSP estocástico el tiempo de ejecución de cada tarea es una variable aleatoria que sigue una función de distribución. Este tipo de problemas es más realista aunque incrementa notablemente la complejidad. Si la función objetivo fuera minimizar la duración del proyecto, la solución que nos daría sería una duración estimada. Normalmente es muy difícil poder obtener la función de distribución del proyecto ya que las tareas son interdependientes RCPSP relativos al problema bin-packing El problema bin-packing consiste en, dado un conjunto de objetos, generalmente de forma rectangular, maximizar la cantidad de objetos que se pueden colocar en una superficie finita también rectangular (bin), minimizando el número de superficies necesarias. La analogía entre el problema del bin-packing y el problema RCPSP consiste en que: La disponibilidad del recurso representa el tamaño del bin. El consumo de un recurso de una tarea sería el tamaño de un objeto. Cada periodo de tiempo se puede ver como un bin dentro del cual podemos empaquetar tareas. 469
9 Minimizar la duración del proyecto representa minimizar el número de bins necesarios. Es posible adaptar heurísticos desarrollados para el problema RCPSP para que resuelvan el problema del bin-packing simplemente con unas pequeñas modificaciones Multi-resource-constrained project scheduling problem (MRCPSP) En el RCPSP clásico una tarea puede necesitar recursos de varios tipos, pero una tarea sólo requiere ejecutar una operación. En el problema MRCPSP una tarea puede estar compuesta por un conjunto de operaciones o un conjunto de recursos sucesivos. Para una operación dada los recursos pueden ser empleados en paralelo o en serie. Este tipo de problemas también son denominados problemas de planificación de máquinas (máquinas en paralelo, Flow-shop, Job shop). En (Pinedo, 1995) puede obtenerse más información sobre el problema de planificación de máquinas. 3. Técnica de Resolución El RCPSP es un problema de tipo NP-duro por lo que la obtención de soluciones mediante el empleo de métodos exactos se vuelve inaplicable rápidamente en cuanto el tamaño del problema a resolver aumenta, siendo necesario recurrir a método heurísticos. En el estudio de (Kolisch et al., 2006) se presenta un análisis sobre los heurísticos que vienen empleándose en los últimos tiempos como método de resolución del RCPSP. Dentro de los heurísticos, las técnicas metaheurísticas juegan un importante papel ya que se utilizan frecuentemente para la obtención de soluciones en un tiempo razonable. Entre los metaheurísticos que se pueden encontrar en la literatura están: Recocido Simulado (Simulated Annealing): (Valls et al., 2004), (Guan et al. 2009). Búsqueda tabú (Tabu Search): (Artigues et al., 2003), (Nonobe et al., 2002), (Lambrechts et al., 2007), (Deblaere et al., 2011). Algoritmos Genéticos (Genetic Algorithms): (Alcaraz et al., 2004), (Coelho et al, 2003), (Gonçalves et al., 2003), (Ashtiani et al, 2008), (Kuster et al, 2008). Algoritmos de Colonias de Hormigas (Ant Colony Optimization, ACO). Este artículo se centra en la optimización con algoritmos de colonias de hormigas. El algoritmo ACO ha demostrado ser un medio efectivo para la resolución de problemas complejos de optimización combinatoria. Debe su nombre al símil de su funcionamiento con el de las colonias de hormigas. Se basa en la búsqueda de caminos en un grafo a través del conocimiento que va obteniendo cada agente (representado por cada hormiga) que va reforzando la utilización de los arcos (depositando feromona) que componen las mejores soluciones, es decir, las de menor coste. Puede obtenerse una descripción detallada del problema en el libro de (Dorigo et al., 2004) y en el artículo de (Gambardella et al., 2004). (Dorigo et al. 1991, 1992) fueron los primeros en emplear el sistema de colonia de hormigas para resolver el TSP (Travel Salesman Problem). Entre las aplicaciones de ACO se encuentra la resolución del problema de la planificación de jopshop (Pierucci et al., 1996), el problema de máquina única con retraso ponderado (Besten et al., 2000), problema de planificación de flowshop con secuencia dependiente de tiempos de set-up (Gajpal et al., 2004), problema de planificación de flowshop con permutaciones (Rajendran et al, 2004) 470
10 Entre los estudios que han empleado ACO para el problema RCPSP se encuentran (Herbots et al., 2004), (Chen et al., 2006), (Wang et al., 2007), (Khichane et al., 2009) y (Deng et al., 2010). La implementación del algoritmo propuesto en este artículo está basado en el estudio de (Merkle et al., 2002) y sigue el siguiente esquema: Este enfoque consiste principalmente en tres fases: inicialización, construcción de la lista de tareas y actualizaciones. Inicialización Mientras(!stop) Inicializar() Para cada hormiga FinPara FinMientras ConstruirListaTareas() solución = GenerarPlanificación() Si (Coste(solución) < Coste(mejorSolución)) FinSi ActualizarMejorSolucion() ActualizarFeromona() SustituirMejorSolución(solución) Durante esta etapa se inicializan todos los parámetros y estructuras de datos que se emplearán durante la ejecución del algoritmo. Se construye la tabla de feromonas de dimensiones siendo el número de tareas e inicializando cada celda con un valor positivo pequeño e igual a. Se construyen hormigas para iteraciones lo cual supone la generación de planificaciones. Construcción de la lista de tareas Un Esquema Generador de Planificaciones (Schedule Generation Scheme, SGS) es una técnica constructiva que planifica las tareas de acuerdo a una lista de prioridades dada, seleccionando las tareas una a una y determinando el instante de inicio de cada una de ellas. Una vez que un instante de inicio es asignado a una tarea, este instante permanece inalterable. Existen dos tipos de SGS: el SGS en serie (S-SGS) y el SGS paralelo (P-SGS). El S- SGS está orientado a tarea e incrementa las tareas mientras construye la planificación. El P-SGS está orientado al tiempo e incrementa el tiempo mientras construye la planificación. En este trabajo se ha escogido un S-SGS, es decir, orientado a tarea, de modo que cada hormiga construye su propia lista de tareas comenzando en la tarea ficticia y terminando con la tarea, también ficticia. 471
11 Figura 3 Ejemplo de grafo de tareas En cada paso la hormiga elige la siguiente tarea de entre las tareas que pueden ser sucesoras de ésta. Para ello para cada una de estas tareas candidatas se calcula la probabilidad de que sea seleccionada según la siguiente expresión basada en el coste que supone introducir en ese momento la tarea en la solución (planificación) y de la feromona: Siendo: (1) : nodo (tarea) del que se quiere calcular la probabilidad. : número total de nodos (tareas). : es el valor de la feromona entre el nodo del que se calcula la probabilidad y el último nodo que forma parte de la solución parcial actual. : coste de que el nodo forme parte de la solución. : peso que se da al valor de la feromona. Comienza valiendo 1. : peso que se da a la componente del coste. Comienza valiendo 1. Para asegurar la mayor exploración posible del espacio de búsqueda e intentando evitar que el algoritmo converja pronto, cada cierto número de iteraciones los valores de varían para que la feromona pierda peso en el cálculo de probabilidades. Actualizaciones Existen dos tipos de actualizaciones de información: la sustitución de la mejor solución y la modificación de la tabla de feromonas. Tras el cálculo de una solución por parte de una hormiga debe comprobarse si el coste de la solución encontrada por la hormiga es menor que el coste de la mejor solución y 472
12 encontrada hasta el momento sustitución.. En caso afirmativo, debe procederse a la En este punto cabe realizar un inciso en relación al cálculo de soluciones. En la ejecución de las hormigas existen dos enfoques, la ejecución sincronizada y la ejecución no sincronizada de las hormigas. Si éstas son ejecutadas de forma síncrona cada hormiga debe esperar a que terminen de ejecutarse todas sus hermanas. Si se opta por el modo asíncrono cada hormiga continúa con la siguiente ejecución tras finalizar la actual sin realizar ningún tipo de espera. Lo habitual es emplear el funcionamiento sincronizado para evitar las dificultades derivadas de la ejecución asíncrona. En cuanto a la modificación de la feromona, cuando todas las hormigas han calculado sus soluciones se procede a actualizar la feromona reforzando aquellas transiciones derivadas de la mejor solución encontrada en esta generación. Además si la mejor solución encontrada en esta generación no sustituyó a la mejor solución encontrada hasta el momento, entonces también se refuerzan las transiciones derivadas de ésta. Además de realizar el refuerzo de feromona, se realiza la evaporación de la tabla de feromonas con un valor de convergencia y exploración. que permite establecer un compromiso entre Si se fija un valor alto, las anteriores mejores planificaciones tienen menos peso en los futuros cálculos, con lo cual las hormigas tienen menos información del pasado para alcanzar la solución. Si se fija un valor excesivamente bajo, las soluciones nuevas no pueden competir en cuanto a feromona frente a las soluciones anteriores por tener valores de feromona muy altos, prácticamente sólo se refuerzan, no dejando opción a entrar a jugar nuevas opciones, lo que deriva en una convergencia rápida. (2) 4. Caso de Estudio Como consecuencia del carácter genérico del RCPSP clásico, su definición no se ajusta a la realidad de la planificación que se requiere en los proyectos del Mundo real, donde existen multitud de restricciones y características más allá de las consideradas por el RCPSP. En el apartado 2 se han mostrado algunas de las posibles extensiones o variantes de este problema y este artículo incorpora además una serie de limitaciones y características que consiguen acercar la definición del problema a las necesidades derivadas de una planificación más realista considerando aspectos importantes que no deben ser ignorados y que son descritos a continuación. Relajación de restricciones Se considera la relajación de las restricciones que así se especifiquen, esto es, las restricciones indicadas no tienen porqué ser consideradas de forma inflexible sino que tienen un margen. Un ejemplo de restricción flexible es la fecha sugerida de finalización de proyecto. Costes de penalización por retrasos en proyecto La penalización por retrasos en la realización de tareas es considerada frecuentemente en las funciones de costes de los problemas de tipo RCPSP. Este artículo considera además el coste por retraso a nivel global, de modo que es posible que resulte más interesante ampliar la duración del proyecto considerando los costes asociados que buscar una solución con el plazo inalterable. 473

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 resolución 
 resolución 
 resolución