SciELO - Scientific Electronic Library Online

 
 issue56Analysis and convergence of weighted dimensionality reduction methods author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Revista Facultad de Ingeniería Universidad de Antioquia

Print version ISSN 0120-6230On-line version ISSN 2422-2844

Rev.fac.ing.univ. Antioquia  no.56 Medellín Oct./Dec. 2010

 

Algoritmo heurístico híbrido con múltiples vecindarios y recocido simulado para resolver el RCPSP

Hybrid Variable Neighborhood and Simulated Annealing Heuristic Algorithm to Solve RCPSP

Juan Carlos Rivera1*, Ana Josefina Celín2

1Departamento de Ciencias Básicas, Universidad Eafit, Carrera 49 N.° 7 sur- 50, Bloque 38, oficina 424, Medellín, Colombia

2Facultad de Ingeniería, Universidad de Antioquia, Calle 67 N.° 53-108, Bloque 21, oficina 404, Medellín, Colombia



Resumen

En este artículo se presenta un algoritmo heurístico híbrido para resolver el Problema de Programación de Proyectos con Recursos Limitados (RCPSP). El algoritmo diseñado combina elementos de Recocido Simulado y Búsqueda en Múltiples Vecindarios. Adicionalmente, utiliza el método denominado Justificación, el cual es un método diseñado específicamente para el RCPSP. Para evaluar el desempeño del algoritmo se realizó un análisis estadístico para el ajuste de parámetros. Los resultados se comparan con los reportados en la literatura científica.

Palabras clave:recocido simulado, algoritmos heurísticos, búsqueda en vecindarios variables (VNS), justificación, RCPSP, programación de producción.


Abstract

This paper presents a hybrid heuristic algorithm for solving the Resource Constrained Project Scheduling Problem (RCPSP). The algorithm designed combines elements of Simulated Annealing and Variable Neighborhood Search. Additionally, it uses the method called Justification, which is a method designed specifically for the RCPSP. To evaluate the performance of the algorithm, a statistical analysis for tuning the parameters has done. The results were compared with those reported in the scientific literature.

Keywords:Simulated Annealing, Heuristic Algorithms, Variable Neighborhoods Search (VNS), Justification, RCPSP, Scheduling.


Introducción

Los problemas de planeación de proyectos son muy comunes en cualquier tipo de industria u organización, ya que pueden ser aplicados en la programación de producción industrial, proyectos de construcción, prestación de servicios, actividades cotidianas y rutinarias, entre otras.

La programación de proyectos con recursos limitados es un ambiente en el cual se deben procesar un conjunto de actividades sujetas a restricciones de precedencias y recursos, siendo estos últimos compartidos por varias actividades. Así, el problema consiste en realizar tal asignación optimizando alguna función objetivo. A pesar de que la definición dada anteriormente es aparentemente tan sencilla y únicamente cualitativa, da origen a definiciones, formalizaciones y grandes discusiones de tipo matemático cuando se trata de resolver el problema general de programación de tareas.

Definición del problema

El problema de programación de proyectos con recursos limitados (RCPSP) puede ser descrito matemáticamente de la siguiente manera (basado en las definiciones de [1-3]):

Se tiene un conjunto J = { 1, ... , n} de actividades a ser procesadas. Asociado a cada actividad j Є J, existe una duración dj. Además, las actividades están relacionadas mediante restricciones de precedencia, siendo Pj Є J{ j} el conjunto de todas las actividades predecesoras inmediatas de la actividad j. Las restricciones de precedencia pueden estar representadas por un grafo dirigido acíclico G=(J,H) donde H={ (i, j)/i Є Pj, j Є J } Adicionalmente, existe un conjunto K={ 1,...,m} de tipos de recursos renovables, donde cada tipo de recurso k Є K tiene una capacidad total Rk durante cada intervalo de tiempo del período de programación. Cada actividad j requiere una cantidad constante de rjk unidades del recurso de tipo k durante todo el intervalo de su duración. Se asume, sin pérdida de generalidad, que rjkRk, lo cual garantiza la existencia de soluciones factibles.

Todas las cantidades dj, rjk y Rk son números enteros no negativos para todo j Є J y todo k Є K.

No se permite interrumpir el procesamiento de las actividades y se asume que los tiempos de alistamiento están incluidos en los tiempos de procesamiento. Una vez que un recurso es ocupado por una actividad, no será liberado hasta que la actividad sea realizada.

Las actividades 1 y n son actividades ficticias, usadas con el objetivo de representar el inicio y la finalización de los proyectos, respectivamente. Se asume además que d1 = dn = 0 y r1k = rnk = 0, para todo k Є K.

El objetivo es encontrar un programa que se satisfaga las restricciones de precedencia y de recursos, y que minimice la duración del proyecto (makespan).

De acuerdo con [4], el RCPSP es el problema más importante en Programación de Proyectos. Además, el RCPSP es una generalización de otros problemas de programación de producción como Flow Shop, Job Shop y Open Shop ([5, 6]).

Aunque este problema no es el más general, ya que usa tiempos de procesamiento determinísticos para las actividades, los recursos utilizados son renovables (no considera recursos no renovables que involucran el manejo de inventarios y costos), no se permite interrumpir el procesamiento de las actividades, entre otras características, resolverlo eficientemente es aún de gran interés para la comunidad científica ya que, por su pertenencia a la clase de problemas NP-Hard [5], es un problema difícil de resolver para el cual no se conocen algoritmos que lo resuelvan exactamente de manera eficiente. Una formulación matematica para el RCPSP es presentada en [1]:

Donde:

εjt: variable de decisión binaria, 1 si y sólo si la actividad j empieza al principio del período t.

lsj: late start de la actividad j (tiempo de inicio más tardío).

esj: early start de la actividad j (tiempo de inicio más temprano).

t: Representa cada uno de los periodos del horizonte de planeación del proyecto.

σ(t, j) = max(0, t - dj + 1).

Tmax: Denota un upper bound o límite superior para el tiempo de terminación del proyecto. Puede ser fácilmente calculada como Tmax = ∑jεJdj .

La ecuación (1) representa la función objetivo de cada modelo respectivamente, makespan o duración del proyecto. Las ecuaciones (2) representan el tiempo de inicio de cada actividad en el modelo de programación binaria, el cual debe ser único dada la característica de no interrupción de las actividades, es decir, las que obligan a que una actividad, una vez iniciada, debe continuarse hasta su terminación. Las ecuaciones (3) representan las restricciones de precedencia en cada modelo respectivamente, una actividad sólo puede iniciar una vez terminadas todas las actividades predecesoras. Las ecuaciones (4) representan las restricciones de recursos de cada modelo respectivamente; en cualquier tiempo la cantidad de recursos utilizados por todas las actividades en ejecución no debe superar la disponibilidad de cada tipo de recurso correspondiente. Las ecuaciones (5) indican que las variables de decisión de la formulación binaria únicamente pueden tomar los valores 0 ó 1.

Metodología

Para solucionar el RCPSP se han utilizado diversos enfoques, los cuales se pueden clasificar como métodos exactos y métodos heurísticos.

Métodos exactos

Entre los métodos exactos se encuentran los desarrollados por [1,7-21]. La principal característica de los anteriores algoritmos es que obtienen una solución óptima al problema, cuando ésta existe.

Sin embargo, la naturaleza combinatoria de estos problemas y su pertenencia a la clase de problemas NP-Hard, hace que sean prácticamente imposibles de resolver en tiempos razonables, aún mediante el uso de los computadores más potentes existentes hoy en día. La experiencia de otros autores indica que sólo es posible obtener la solución mediante métodos exactos para instancias del problema con menos de 60 actividades [3]. Sin embargo, un proyecto de 60 actividades se puede considerar peque ño si se compara con los casos reales; por lo tanto, toda discusión acerca de la solución del RCPSP se centra en algoritmos aproximados que cada autor, desde su enfoque, plantea como eficientes.

Métodos metaheurísticos

En contraposición a los métodos exactos, los metaheurísticos no garantizan la obtención de soluciones óptimas. Sin embargo, suelen obtener soluciones satisfactorias en tiempos de procesamiento generalmente polinomiales.

Los métodos metaheurísticos más usados son Búsqueda Tabú, Recocido Simulado, Búsqueda en Vecindarios Variables, Algoritmos Genéticos y Optimización de Colonias de Hormigas. A continuación se describirá el Recocido Simulado y la Búsqueda en Vecindarios Variables, los cuales tienen relación con el método híbrido propuesto es este estudio.

Recocido simulado

El Recocido Simulado (Simulated Annealing, en inglés), descrito en [22-24], es el principal representante de los métodos con criterios de aceptación probabilística. Fue propuesto por primera vez en Metropolis et al. [25], con el fin de simular la evolución de un sólido en un tratamiento térmico basándose en técnicas de Monte Carlo. Posteriormente fue usada en optimización combinatoria en [24].

Una manera de encontrar los estados de energía de sistemas complejos, tales como sólidos, es utilizando la técnica del recocido, en la que el sólido se calienta a una temperatura en la que sus granos deformados recristalizan para producir nuevos granos, y luego se enfría lentamente de forma controlada y de esta manera, cada vez que se baja la temperatura, las partículas se reacomodan en estados de más baja energía hasta que se obtiene un sólido con sus partículas acomodadas conforme una estructura cristalina lo más regular posible (estado fundamental). En la fase de enfriamiento del proceso de recocido, para cada valor de la temperatura debe permitirse que el sólido alcance el equilibrio térmico.

Las leyes de la termodinámica establecen que, a una temperatura T, la probabilidad de un aumento de energía de magnitud ∂E está dada por la expresión (6) (probabilidad de Boltzmann):

Donde k es la constante de Boltzmann [22].

Así pues, a modo de analogía, en el algoritmo Recocido Simulado, los estados del sistema corresponden a las soluciones del problema, la energía de los estados a los criterios de evaluación de la calidad de la solución, el estado fundamental a la solución óptima del problema, y la temperatura corresponde a una variable de control.

El algoritmo de Metropolis consiste en generar un vecino a la solución actual, calcularle su energía y aceptar ese vecino si tiene menor energía o aceptarlo con mayor energía con cierta probabilidad que depende de la temperatura (T). La probabilidad de aceptación se expresa como sigue:

De la expresión anterior se puede notar que para valores altos de T, hay mayor probabilidad de aceptar soluciones que no mejoren la función objetivo (comportamiento similar a una búsqueda aleatoria, aceptando fácilmente cualquier solución), mientras que para valores pequeños de T, la probabilidad de aceptar soluciones malas es baja (comportamiento similar a una búsqueda local, aceptando únicamente soluciones que mejoran la solución actual). Por lo tanto es importante que la temperatura baje a una velocidad apropiada para que le permita al método buscar por diversas zonas e intensificar la búsqueda en aquellas zonas prometedoras. Así, el éxito del Recocido Simulado se basa en la escogencia de una buena temperatura inicial (TO) y una adecuada velocidad de enfriamiento (r).

El Recocido Simulado ha sido utilizado para resolver el RCPSP por [26-31].

Búsqueda en vecindarios variables

La Búsqueda por Entornos o Vecindarios Variables (Variable Neighborhood Search, VNS, en inglés), descrita en [22, 32], es una metaheurística que considera distintas estructuras de vecindarios y las cambia sistemáticamente para escapar de los mínimos locales. El VNS básico, a partir de una solución inicial, ejecuta una Búsqueda Local cuyo procedimiento consiste en reemplazar la solución actual si ha habido una mejora o modificar la estructura del vecindario en caso contrario.{

VNS se basa en tres hechos simples [32]: Un óptimo local con respecto a una estructura de vecindad no necesariamente lo es con respecto a otra; un óptimo global es un óptimo local con respecto a todas las posibles estructuras de vecindad; y en muchos problemas, los óptimos locales con respecto a una o varias estructuras de vecindad están relativamente cerca.

La Búsqueda en Vecindarios Variables ha sido utilizada para resolver el RCPSP por [33].

Justificación

La justificación es una técnica sencilla y rápida que al aplicarla sobre una solución del RCPSP produce otra de igual o menor duración. [34] introdujo los conceptos de justificación a la izquierda y a la derecha, aunque el objetivo era extender los conceptos de holgura y ruta crítica del caso de recursos no limitados al caso con limitación de recursos. La siguiente descripción del procedimiento está basada en la presentada en [3]:

Dado un programa S, definido por los tiempos de inicio Sj de cada actividad j, justificar una actividad j≠ n a la derecha consiste en obtener un programa tal que s'i = si, para i ≠ j se busca un nuevo tiempo de inicio (s'j ≥ sj) de tal forma que s'j sea tan grande como sea posible sin aumentar el makespan y sin violar las restricciones de precedencia. La justificación a la derecha de las actividades j en orden decreciente de su tiempo de terminación (fj = sj + dj) genera un programa activo a la derecha SR, que es llamado la justificación a la derecha de S.SR no es único, ya que depende de la(s) regla(s) de desempate usada(s). Similarmente, el procedimiento anterior se puede realizar en sentido contrario para justificar la solución a la izquierda, aunque esta alternativa no fue considerada en esta investigación.

El procedimiento asegura que la nueva solución obtenida tiene un makespan menor o, en el peor de los casos, igual al de la solución antes de la justificación.

En [3], se realiza un estudio en el que se incorpora esta técnica en 22 algoritmos diferentes y encontraron que siempre hubo un notable mejoramiento en la calidad de la solución. En [35] se presenta un algoritmo genético que incorpora ideas similares y obtiene en muchos casos, las mejores soluciones encontradas hasta ahora.

Algoritmo propuesto

El algoritmo propuesto, es un procedimiento híbrido que combina conceptos de los metaheurísticos de Recocido Simulado, Búsqueda en Vecindarios Variables y la heurística Justificación.

Cada solución factible del problema es representada por una lista de actividades en donde se indica el orden en el que serán programadas cada una de las actividades del proyecto, y cada actividad será programada de tal forma que su tiempo de inicio sea lo más temprano posible, respetando las restricciones de precedencia y de recursos.

A continuación se describen los principales componentes del algoritmo:

Solución inicial

Como solución inicial se utiliza el método presentado en [36], el cual consiste en programar las actividades en el orden de menor rezago u holgura. El rezago de las actividades es recalculado cada vez que se programa una actividad para considerar los recursos requeridos por la actividad programada. Una comparación de la calidad de esta solución con otros métodos constructivos permitieron concluir que la solución de [36] es, en promedio, de mayor calidad, razón por la que se utiliza en esta investigación.

Vecindarios de búsqueda

El procedimiento usa tres vecindarios de búsqueda, los cuales se describen a continuación:

Intercambio: Se seleccionan dos actividades, en las posiciones i e j. La nueva solución será generada al intercambiar las posiciones de dichas actividades; la actividad en la posición i se ubicará en la posición de la actividad j, y viceversa. Para garantizar la factibilidad de la solución resultante se debe verificar que no existan relaciones de precedencia entre las actividades en las posiciones i e j, y entre éstas y las actividades que se encuentran en posiciones intermedias.

Inserción hacia delante: Se selecciona una actividad en la posición i, e una posición j, i ≥ j. La nueva solución será generada al colocar la actividad de la posición i en la posición j, y las actividades en las posiciones intermedias se mueven una posición hacia la derecha. Para garantizar la factibilidad de la solución resultante se debe verificar la no existencia de relaciones de precedencia entre la actividad originalmente ubicada en la posición i, e las actividades ubicadas entre i e j. Una ventaja de este vecindario, con relación al anterior, es que requiere evaluar menos relaciones de precedencia para garantizar la factibilidad de las soluciones generadas.

Inserción hacia atrás: Es similar al vecindario anterior, pero se debe seleccionar i ≤ j. La existencia de los dos últimos vecindarios se justifica debido a que los dos vecindarios juntos serían demasiado grandes.

Al seleccionar en cada vecindario las actividades en la posición denominada i, se tienen en cuenta solamente las actividades que pertenecen a la ruta crítica (teniendo en cuenta el uso de recursos).

Adaptación

Debido a que no se tiene ningún criterio para seleccionar el orden en que se deben usar los vecindarios y que, por experiencia, dichos vecindarios no son igualmente exitosos en todas las instancias del problema, se optó por una estrategia adaptativa en la que, en cada iteración, se selecciona aleatoriamente el vecindario a ser utilizado de acuerdo a la probabilidad de selección de cada uno.

Inicialmente, cada vecindario tiene la misma probabilidad de ser seleccionado. En la medida en que cada vecindario es utilizado, si éste es exitoso la probabilidad de utilizarlo en las iteraciones futuras aumenta. Por el contrario, si el vecindario no es exitoso, dicha probabilidad disminuye.

La finalidad de esta estrategia es permitir que el método seleccione las probabilidades más adecuadas para cada vecindario de acuerdo a la instancia a resolver.

Selección de soluciones

Con el fin de permitir que la búsqueda escape de regiones de óptimos locales, es permitido aceptar soluciones de no mejora.

Para realizar dicha aceptación, se toma del procedimiento de Recocido Simulado, el concepto de aceptación probabilística. Sin embargo, se introducen grandes cambios con respecto a la mecánica original del Recocido Simulado.

Para cada tipo de vecindario se generan todas las soluciones pertenecientes a éste y, si la mejor solución del vecindario es mejor que la mejor solución conocida, se acepta. En caso contrario se selecciona aleatoriamente una solución del vecindario. La probabilidad de selección de cada solución se calcula de acuerdo con las siguientes ecuaciones:

donde

∂M es la diferencia entre el Makespan de la mejor solución conocida y el de la solución i,

T es un parámetro de temperatura similar al usado en el Recocido Simulado.

α y β son dos parámetros de usuario. Estos parámetros son detallados más adelante.

Se debe tener en cuenta que, análogamente al algoritmo de Recocido Simulado, valores grandes de T, generan probabilidades de selección equilibradas; mientras que valores pequeños, generan probabilidades de selección mayores para las soluciones de mayor calidad.

El parámetro T disminuirá su valor a medida que avanza el proceso de búsqueda. En cada iteración el valor de T será actualizado como sigue:

Donde p Є [0,1] es análogo a la tasa de enfriamiento de la temperatura en el Recocido Simulado.

Justificación

Una vez obtenida una solución de un vecindario, se aplica el procedimiento Justificación, el cual, cómo se detalla en la sección de resultados, mejora notablemente el desempeño del algoritmo sin aumentar el costo computacional.

Cotas inferiores

Cuando se presentan problemas de minimización es común el uso de cotas inferiores, las cuales son una aproximación a la solución óptima, la cual tiene como característica principal que se puede demostrar que siempre es menor o igual que la solución óptima.

Las cotas inferiores son importantes por dos razones: Si se tiene una cota inferior para el makespan, y durante el proceso de búsqueda se halla una solución cuyo makespan sea igual a dicha cota, esto implica que la solución hallada es óptima y, adicionalmente, puede usarse como aproximación al makespan óptimo para estimar la calidad de una solución.

Algunas de las cotas inferiores diseñadas para el RCPSP se pueden encontrar en [1, 18, 37, 38]. En esta investigación se utilizará la LBs [1] ya que es muy fácil de implementar y sus valores son de buena calidad. Para efectos de comparación y medición de la calidad de los resultados se utilizará la LB0 ya que es la más conocida por los investigadores, es fácil de calcular y se conocen las desviaciones de muchos algoritmos con respecto a dicha cota inferior.

Criterio de parada

Debido a que el procedimiento no se detiene cuando encuentra soluciones óptimas locales, requiere un criterio de parada externo para detener la búsqueda.

En esta investigación, se utilizó el número de soluciones generadas. Este criterio de parada es útil debido a que no depende del tipo de procesador ni del lenguaje de programación utilizado. Adicionalmente, permite hacer comparaciones con otros autores quienes usan este mismo criterio.

Parámetros

El procedimiento descrito hace uso de 6 parámetros: α, β, Tmax (temperatura máxima), Tmin (temperatura mínima), ρ y valor del criterio de parada. Sin embargo sólo se requiere ajustar 3 parámetros para encontrar el mejor funcionamiento del algoritmo.

El valor del número de soluciones a generar (criterio de parada), por cuestiones de comparación es 50000, aunque se generan registros adicionales con 1000 y 5000 soluciones.

Con respecto a los parámetros α, β, Tmax y Tmin, se transforman en dos parámetros:

Así, Tmax y Tmin tendrán valores fijos y, α y β se despejan de las ecuaciones anteriores. Pmax se puede interpretar como la probabilidad de aceptación asignada, al inicio de la búsqueda (T = Tmax), a una solución con makespan una unidad por encima de la mejor solución conocida, y Pmin se puede interpretar como la probabilidad de aceptación asignada, al final de la búsqueda (T - Tmin), a una solución con makespan una unidad por encima de la mejor solución conocida. Adicionalmente, los nuevos parámetros tienen significados más fáciles de comprender por usuarios que no tengan conocimiento en métodos heurísticos. Los parámetros Pmax, Pmin y P serán ajustados en la sección de resultados.

Resultados

Para realizar el análisis se tuvieron en cuenta los conjuntos de instancias pertenecientes a la librería PSPLIB [39], disponibles en la dirección electrónica http://129.187.106.231/psplib/. De dicha librería se tomó un conjunto de instancias de 30 actividades, cada una requiere cuatro tipos de recursos. Además, en dicha librería se encuentran publicadas las soluciones óptimas de dichas instancias.

La evaluación de los algoritmos será realizada teniendo en cuenta como criterio de parada el número de soluciones generadas. Este criterio de parada es utilizado por [40] para comparar los resultados de varios autores. La razón para usar este criterio de parada es que los resultados no dependen ni del lenguaje de programación utilizado ni del procesador; además, el tiempo computacional utilizado para generar una solución es, en general, poco variable en la mayoría de las heurísticas según lo afirmado por Kolisch y Hartmann.

Los resultados son comparados con base en la calidad (desviación porcentual con respecto a la solución óptima) promedio obtenida con 1000, 5000 y 50000 soluciones.

La experimentación se divide en cuatro fases: en la primera se hace una comparación sobre el desempeño del algoritmo utilizando uno, dos y tres vecindarios, en la segunda se evalúa el uso del método Justificación en el algoritmo, en la tercera se realiza el ajuste de parámetros, y en la cuarta se realiza la comparación del desempeño del algoritmo con el de otros investigadores a nivel internacional.

Uso de los vecindarios

Para evaluar la necesidad de usar en el procedimiento los tres vecindarios descritos, se realizaron diferentes ejecuciones con todas las posibles combinaciones de los tres vecindarios (el vecindario 1 representa el vecindario denominado Intercambios, el vecindario 2 representa la Inserción hacia adelante, y el vecindario 3 representa la Inserción hacia atrás). La tabla 1 presenta los resultados obtenidos en dicha experimentación con 50.000 soluciones generadas. En dicha tabla se presenta el valor promedio de 5 muestras, el valor mínimo, el valor máximo y el coeficiente de variación.


De los resultados anteriores se puede observar que, cuando se usa sólo un vecindario, el vecindario de inserción hacia atrás presenta el mejor desempeño en cuanto a valor promedio, mínimo y máximo, y el vecindario de intercambios presenta el menor desempeño. Sin embargo, en cuanto al coeficiente de variación, el vecindario de intercambios es el mejor.

Cuando se usan dos vecindarios se puede observar algo similar a lo encontrado con un vecindario. El mejor desempeño del algoritmo se obtiene cuando se utilizan los vecindarios de inserción hacia adelante e inserción hacia atrás, aunque su coeficiente de variación es el mayor. Y, por otro lado, el menor desempeño se obtiene al utilizar los vecindarios de intercambio e inserción hacia atrás. En general, es mejor utilizar dos vecindarios en lugar de uno sólo.

También es importante notar que, aunque los vecindarios de intercambio e inserción hacia adelante son los de menor desempeño individual, la combinación entre ellos mejora significativamente el desempeño del algoritmo, similarmente pasa con las otras combinaciones, aunque en menor medida. Esto puede deberse a que dichos vecindarios son complementarios y pocas de las soluciones pertenecientes a un vecindario, pertenecen a otro.

Al utilizar los tres vecindarios, en general, se mejoran los resultados obtenidos con dos vecindarios con respecto a las tres medidas de desempeño.

Observaciones similares fueron realizadas al utilizar otros valores para el criterio de parada.

Nuevamente, los mejores resultados en el desempeño del algoritmo con respecto al valor promedio, valor mínimo y valor máximo, implican un aumento en el coeficiente de variación. Sin embargo, esto no representa mayor riesgo debido a que los valores máximos obtenidos con los tres vecindarios y 50000 soluciones son, en general, menores a los valores mínimos obtenidos con otras combinaciones.

Uso del procedimiento justificación

Para evaluar la eficiencia del procedimiento Justificación, se ejecutó el algoritmo utilizando dicho procedimiento y sin usarlo. Los resultados son resumidos en la tabla 2.

De los resultados anteriores, es notable la mejora del desempeño del algoritmo cuando se usa el procedimiento Justificación, con respecto a cuando no lo usa. El uso de este procedimiento mejora el 100% de las veces los resultados obtenidos por el algoritmo, mejorando la desviación porcentual entre el 40% y el 70%.


Ajuste de parámetros

Para realizar el ajuste de los parámetros Pmax,Pmin y P, se realizó un diseño experimental completo con los siguientes niveles para cada parámetro: PmaxЄ{ 0,35; 0,5; 0,63} , PminЄ{ 0,01; 0,05; 0,1} y P Є{ 0,5; 0,7; 0,9} . Para cada combinación de valores de los parámetros se realizaron cinco muestras para un total de 135 corridas del algoritmo.

Con los resultados obtenidos se realizó un Análisis de Varianza Multifactor (ANOVA), con los tres parámetros en estudio como factores y el desempeño del algoritmo como variable dependiente, para evaluar la influencia de los valores de los parámetros. En la tabla 3 se presentan los valores p para cada factor (parámetro), de los que se puede concluir que los parámetros Pmin y P no son estadísticamente significativos a un nivel de confianza del 95% para explicar la variabilidad en los datos, así como las interacciones entre los parámetros.

Debido a que los parámetros Pmin P y no son estadísticamente significativos, se realizó una prueba adicional utilizando una probabilidad de aceptación fija durante toda la ejecución del algoritmo, es decir, con ρ = 1. Los resultados confirman la influencia de Pmax en el desempeño del algoritmo, sin embargo, indican que dicha probabilidad debe variar durante la búsqueda para obtener un mayor desempeño. Lo anterior significa que los parámetros Pmin y ρ son necesarios, aunque sus valores no sean relevantes.

Se realizaron pruebas adicionales para determinar valores específicos de los parámetros en estudio. De acuerdo con las muestras, los valores más apropiados de los parámetros Pmin y ρ son 0,01 y 0,7, respectivamente. Para el parámetro Pmax se encontró que los mejores resultados se obtienen con valores alrededor de 0,9; sin embargo para valores cercanos a 0,7 se obtiene resultados con menor variabilidad.

Comparación con otros algoritmos

En la tabla 4, basada en [40], se recopilan los resultados obtenidos por otros investigadores, a nivel internacional, que trabajan los problemas de 30 actividades de la librería PSPLIB.

De acuerdo con la tabla 4, el algoritmo desarrollado en esta investigación se ubica tal como se enuncia a continuación: Para 1000 schedules, en el puesto número 22, entre 29 posiciones, con una diferencia de 0.11% respecto a la posición anterior. Para 5000 schedules, en el puesto número 19, entre 29 posiciones, con una diferencia de 0.05% respecto a la posición anterior. Para 50000 schedules, en el puesto número 13, entre 21 posiciones, con una diferencia de 0.01% respecto a la posición anterior.

Conclusiones

En este estudio se diseñó un algoritmo heurístico híbrido combinando diferentes estrategias de búsqueda. Este algoritmo usa múltiples estructuras de vecindarios como estrategia de intensificación, además de procedimientos como Justificación y una estrategia de Adaptación. Como estrategias de diversificación, se permite aceptar soluciones de no mejora basándose en las ideas del Recocido Simulado.

Con respecto a los parámetros, se propuso una transformación a los parámetros originales del Recocido Simulado, haciéndolos más claros para los usuarios. Al utilizar técnicas estadísticas como ANOVA se encontró que los parámetros Pmin y ρ no son estadísticamente significativos para explicar la variabilidad de los datos.

Las pruebas realizadas comprueban la utilidad del método de Justificación en la solución del RCPSP. Así mismo, se halló que al utilizar más vecindarios, se mejora el desempeño del algoritmo; sin embargo la variabilidad de la solución aumenta.

El algoritmo diseñado presenta un buen desempeño en comparación con los resultados obtenidos por otros investigadores. Esto se refleja en las soluciones obtenidas, las cuales superan las de otros algoritmos con 50000 soluciones como criterio de parada. Sin embargo, se puede observar que para otros valores del criterio de parada, el algoritmo presentado obtiene un menor desempeño. Lo anterior indica un grado de convergencia lento en las primeras etapas de la búsqueda.


Referencias

1. A. Mingozzi, V. Maniezzo, S. Ricciardelli, L. Bianco. "An exact Algorithm for the Resource Constrained Project Scheduling Problem Based on a New Mathematical Formulation". Management Science. Vol. 44. 1998. pp. 714-729.         [ Links ]

2. L. Tseng, S. Chen. "A hybrid metaheuristic for the resource-constrained project scheduling problem". European Journal of Operational Research. Vol. 175. 2006. pp. 707-721.         [ Links ]

3. V. Valls, F. Ballestín, S. Quintanilla. "Justification and RCPSP: a technique that pays". European Journal of Operational Research. Vol. 165. 2005. pp. 375-386.         [ Links ]

4. B. Abbasi, S. Shadrokh, J. Arkat. "Bi-objective resource-constrained project scheduling with robustness and makespan criteria". Applied mathematics and computation. Vol. 180. 2006. pp. 146-152.         [ Links ]

5. J. Blazewicz, J. Lenstra, A. Rinnooy Kan. "Scheduling Projects Subject to Resource Constraints: Classification and Complexity". Discrete Applied Mathematics. Vol. 5. 1983. pp. 11-24.         [ Links ]

6. D. Merkle, M. Middendorf, H. Schmeck. "Ant colony optimization for resource-constrained project scheduling". IEEE Transactions on Evolutionary Computation. Vol. 6. 2002. pp. 333-346.         [ Links ]

7. E. Balas. "Project Scheduling with Resource Constraints". In: E. M. L. Beale (editor). Application of Mathematical Programming Techniques. Ed. Elsevier. New York. 1970. pp. 187-200.         [ Links ]

8. L. Schrage. "Solving Resource-Constrained Network problems by Implicit Enumeration – Non-preemptive Case". Operations Research. Vol. 18. 1971. pp. 225- 235.         [ Links ]

9. S. Gorenstein. "An Algorithm for Project Sequencing with Resource Constraints". Operations Research. Vol. 20. 1972. pp. 835-850.         [ Links ]

10. M. Fisher. "Optimal Solution of Scheduling Problems Using Lagrange Multipliers. Part I". Operations Research. Vol. 21. 1973. pp. 1114-1127.         [ Links ]

11. J. Patterson, W. Huber. "A Horizon-Varying, ZERO-One Approach to Project Scheduling". Management Science. Vol. 20. 1974. pp. 990-998.         [ Links ]

12. J. Patterson, G. Roth. "Scheduling a Project under Multiple Resource Constraints: a Zero-One Programming Approach". AIIE Transactions. Vol. 8. 1976. pp. 449-455.         [ Links ]

13. F. Talbot, J. Patterson. "An Efficient integer programming Algorithm with Network Cuts for Solving Resource-Constrained Scheduling problems". Management Science. Vol. 24. 1978. pp. 1163-1174.         [ Links ]

14. E. Demeulemeester, W. Herroelen. "A Branch and Bound Procedure for the Multiple Resource- Constrained project Scheduling Problem". Management Science. Vol. 38. 1992. pp. 1803-1818.         [ Links ]

15. W. Simpson, J. Patterson. "A multiple-tree search procedure for the resource-constrained project scheduling problem". EJOR. Vol. 89. 1996. pp. 525- 542.         [ Links ]

16. E. Demeulemeester, W. Herroelen. "New benchmark results for the resource-constrained project scheduling problem". Management Science. Vol. 43. 1997. pp. 1485-1492.         [ Links ]

17. A. Sprecher, S. Hartmann, A. Drexl. "An exact algorithm for project scheduling with multiple modes". OR Spektrum. Vol. 19. 1997. pp. 195 - 203.         [ Links ]

18. P. Brucker, S. Knust, A. Schoo, O. Thiele. "A branch & bound algorithm for the resource-constrained project scheduling problem". European Journal of Operacional Research. Vol. 107. 1998. pp. 272-288.         [ Links ]

19. A. Sprecher. "Scheduling resource-constrained projects competitively at modest resource requirements". Management Science. Vol. 46. 2000. pp. 710-723.         [ Links ]

20. J. Damay, A. Quilliot, E. Sanlaville. "Linear programming based algorithms for preemptive and non-preemptive RCPSP". European Journal of Operational Research. Vol. 182. 2007. pp. 1012-1022.         [ Links ]

21. M. Sabzehparvar, S. Seyed Hosseini. "A mathematical model for the multi-mode resource-constrained project scheduling problem with mode dependent time lags". The Journal of Supercomputing. Vol. 44. 2008. pp. 257-273.         [ Links ]

22. R. Martí. "Procedimientos metaheurísticos en optimización combinatoria". Matemátiques. Vol. 1. 2003. pp. 3-62.         [ Links ]

23. Z. Michalewicz, D. Fogel. How to solve it: modern heuristics. Ed. Springer. New York. 2002. pp. 117-125.         [ Links ]

24. S. Kirkpatrick, C. D. Gelatt, M. P. Vecchi. "Optimization by simulated annealing". Science, Vol. 220. 1983. pp. 671-680.         [ Links ]

25. N. Metropolis, A. Rosenbluth, A. Teller, E. Teller. "Equations of state calculations by fast computing machines". The journal of chemical physics. Vol. 21. 1953. 1087-1092.         [ Links ]

26. L. Moreno, J. Rivera, J. Diaz, G. Peña. "Análisis comparativo entre dos algoritmos heurísticos para resolver el problema de planeación de tareas con restricción de recursos (RCPSP)". Dyna. Vol. 74. 2007. pp. 171-183.         [ Links ]

27. K. Bouleimen, H. Lecocq. "A new efficient simulated annealing algorithm for the resource-constrained project scheduling problem and its multi mode version". European Journal of Operational Research. Vol. 149. 2003. pp. 268-281.         [ Links ]

28. J. Cho, Y. Kim. "A simulated annealing algorithm for resource constrained project scheduling problems". Journal of the Operational Research Society. Vol. 48. 1997. pp. 736-744.         [ Links ]

29. F. Boctor. "Resource-constrained project scheduling by simulated annealing". International Journal of Production Research. Vol. 34. 1996. pp. 2335-2351.         [ Links ]

30. J. Lee, Y. Kim. "Search heuristics for Resource Constrained Project Scheduling". LG-EDS Corporation y Korea Advanced Institute of Science and Technology. Journal of the Operational Research Society. Vol. 47. 1996. pp. 678-689.         [ Links ]

31. C. Koulamas, S. Anthony, R. Jean. "A survey of simulated annealing applications to operations research problems". Omega. Vol. 22. 1994. pp. 41-56.         [ Links ]

32. P. Hansen, N. Mladenovic. "Variable Neighborhood Search". Search Methodologies. Introductory tutorials in optimization and decision support techniques. Ed. Springer.New York. 2005. pp. 221-238.         [ Links ]

33. K. Fleszar, K. Hindi. "Solving the resource-constrained project scheduling problem by a variable neighbourhood search". European Journal of Operational Research. Vol. 155. 2004. pp. 402-413.         [ Links ]

34. J. Wiest. "Some properties of schedules for large projects with limited resources". Operations Research. Vol. 12. 1964. pp. 395-418.         [ Links ]

35. D. Debels, B. De Reyck, R. Leus, M. Vanhoucke. "A hybrid scatter search / Electromagnetism meta– heuristic for project scheduling". European Journal of Operational Research. Vol. 169. 2006. pp. 638-653.         [ Links ]

36. E. Buffa, S. Edwood S. Sarin, K. Rakesh. Administración de la producción y de las operaciones. Ed. Limusa. México D. F. 1992. pp. 381-406.         [ Links ]

37. T. Baar, P. Brucker, S. Knust. "Tabu-Search Algorithms and lower bounds for the Resource-Constrained Project Scheduling Problem". In: S. Voss, S. Martello, I. Osman, C. Roucairol. (editors) Meta-heuristics: Advances and trends in local search paradigms for optimization. Ed. Kluwer Academic Publishers. Boston. 1998. pp. 1-18.         [ Links ]

38. J. Stinson, E. Davis, B. Khumawala. "Multiple Resource-Constrained Scheduling Using Branch and Bound". AIIE Transactions. Vol. 10. 1978. pp. 252-259.         [ Links ]

39. R. Kolisch, C. Schwindt, A. Sprecher. "Benchmark instances for project scheduling problems". Project Scheduling – Recent Models, Algorithms and Applications. J. Weglarz, (editor). Kluwer Academic Publishers. Boston. 1999. pp. 197-212.         [ Links ]

40. R. Kolisch, R. Hartmann. "Experimental Investigation of Heuristics for Resource-Constrained Project Scheduling: An Update". European Journal of Operational Research. Vol. 174. 2006. pp. 23-37.
        [ Links ]



(Recibido el 2 de febrero de 2009. Aceptado el 13 de septiembre de 2010)

*Autor de correspondencia: teléfono: + 57 + 4 + 261 95 00 ext. 9806, fax: + 57 + 4 + 266 42 84, correo electrónico: paez.carlos@javeriana.edu.co. (J. Rivera)

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License