









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
(RESOURCE CONSTRAINED PROJECT SCHEDULING PROBLEM - RCPSP) Programación de proyectos con recursos limitados Investigación a partir de diferentes fuentes formales
Tipo: Guías, Proyectos, Investigaciones
1 / 16
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Capítulo 1 Generalidades del (RCPSP) La programación con recursos limitados nace de una preocupación real; cuando se programan los proyectos, el gerente de proyectos se enfrenta de entrada con que los recursos no son infinitos. Y ¿qué se ha planteado ante esa preocupación? ¿cómo se ha abordado?; con métodos matemáticos, lo cuales plantean modelos simples como del tipo programación lineal. Al considerar metodologías de programación de proyectos y en ellas analizar las restricciones de recursos, aparecen los clásicos modelos matemáticos, entre los cuales se encuentran las heurísticas, como por ejemplo las Heurísticas FIT (la manera en que los objetos o variables son tratados antes de ser acomodados y por la forma en que se elige el contenedor que almacenará a cada una) y Heurísticas FIFO (Una de las tres reglas de prioridad) que habla de “Primero en llegar, primero en ser atendido”. También se han formulado sistemas algorítmicos cercanos a los sistemas de expertos, los cuales desarrollan técnicas para resolver el problema de RCPSP en proyectos; creando modelos conceptuales computacionales como sistemas de red: redes neuronales, colonia de hormigas, entre otros. Lo anteriormente mencionado han sido básicamente, los caminos que se han seguido cuando se ha querido tratar el tema de programación de proyectos con recursos limitados. Y cabe resaltar que en el pasado y durante un tiempo considerable esta problemática fue un tema que trabajó fuertemente la ingeniería industrial, y que ahora se ha convertido en un tema más de orden computacional – informático, porque al hacer representaciones de proyectos cercanos a la realidad, ello demanda muchísima capacidad computacional. El problema sigue completamente vigente, evolucionando en su conceptualización y en una exploración continua desde el ámbito académico; y sobre todo por los profesionales informáticos, cuyo tema de investigación son los algoritmos computacionales para programar los proyectos con recursos limitados, entre otros. Actualmente no es muy común que las personas se involucren con la planeación de modelos matemáticos para resolver el tema RCPSP, porque contienen un tipo de problemas del tipo NP-HARD, no polinomiales duros. Es decir que, en determinado proyecto, cuando se presenta un aumento, aún incluso pequeño, de las variables de restricción, puede presentarse una “explosión”. Las “explosiones”, se presentan por las combinaciones posibles entre variables y por el aumento de las mismas, por ello se requiere de mucho consumo de recursos computacionales, hasta tal punto de llegar a necesitar “computadores cuánticos”. En parte por ello, el tema RCPSP y sus alternativas de solución con modelos matemáticos, seguirá teniendo un gran peso de tipo teórico- académico más que de tipo práctico.
Capítulo 2 Algoritmos con enfoques Exactos Son métodos creados con el objetivo fundamental de solucionar RCPSP. La característica principal de este tipo de algoritmos (métodos) es que garantizan la obtención de una solución óptima, cuando dicha solución existe. Dichos métodos están basados en técnicas de optimización como programación lineal entera mixta, branch and bound (ramificación y acotamiento), programación dinámica, entre otros. (Fisher, 1973) utiliza técnicas basadas en multiplicadores de lagrange en un algoritmo de branch and bound para hallar soluciones óptimas del problema. (Patterson & Huber, 1974) presentan un método basado en evaluaciones de factibilidad en un modelo de programación, también presentan un algoritmo de enumeración implícita basado en un modelo de programación entera. (Patterson & Roth, 1976) utilizan un algoritmo de enumeración implícita para resolver un modelo de programación binaria. Algoritmos de tipo Branch And Bound son propuestos por diferentes autores a mediados del siglo XIX y siglo XX. En el documento de Patterson y Simpson, publicado en 1996, se propone un algoritmo de búsqueda en árbol, el cual hace uso de procesamiento en paralelo para obtener soluciones en menor tiempo. Pritsker et al. 1969, y Mingozzi et al. 1998, Proponen modelos de programación lineal entera (MILP) para el RCPSP. Damay et al. 2007, también proponen un modelo MILP, el cual resuelve el problema con o sin interrupción de la ejecución de las actividades. Kopanos et al. 2014, proponen cuatro modelos de programación lineal entera considerando tiempos discretos y continuos. Koné et al. 2011, Hace una comparación de diferentes modelos MILP y propone dos nuevas formulaciones basadas en eventos. Artigues et al. 2013, presenta una modificación sobre uno de los modelos propuestos por Koné et al. 2011, demostrando que dicho modelo, bajo ciertas condiciones, puede presentar soluciones infactibles. Más recientemente Palacio & Larrea, 2017, presentan modelos MILP con un enfoque lexicográfico para hallar soluciones para el RCPSP minimizando la robustez sujeta a una duración óptima. No obstante, la combinatoria de estos problemas se hace matemáticamente imposible para resolver casos prácticos en tiempos razonables, aun mediante herramientas computacionales de alto rendimiento disponibles actualmente. De acuerdo a investigaciones previas (Valls, Ballestín, & Quintanilla, 2005), se ha encontrado que los métodos exactos actuales solo son capaces de garantizar la optimalidad de una solución para instancias de problemas con 60 actividades o menos. Sin embargo, proyectos con menos de 60 actividades son considerados pequeños comparados con casos
Rodríguez, de la Peña Esteban, & Rincon Rincon, 2014). Están basados en procesos iterativos que persiguen siempre la mejor solución en el mejor ámbito de búsqueda. Entre sus principales propiedades se encuentran las siguientes: ▪ El objetivo es una búsqueda eficiente que encuentra soluciones casi óptimas. ▪ Son estrategias generales que guían el proceso de búsqueda. ▪ El procedimiento de cualquier metaheurística es genérico, no depende del problema. ▪ Intentan evitar la exploración en regiones del espacio de búsqueda no óptimas. ▪ Los métodos heurísticos empleados son específicos para cada caso. ▪ Una vez determinada una solución se desarrollarán funciones de bondad para valorar los resultados y poder estimar lo óptima que es la solución encontrada. Los métodos Metaheurísticos se caracterizan por su versatilidad para la implementación de soluciones de diversos tipos de problemas, por su relativa simplicidad de conceptos subyacentes y por su amplio espectro de variantes en sus aplicaciones. Es por esto que son métodos populares y exitosos para la programación con recursos limitados. Clasificación de las técnicas Metaheurísticas Según el espacio de búsqueda utilizado, las técnicas metaheurísticas pueden clasificarse en 2 tipos. Si se utiliza un único punto de espacio de búsqueda se habla de Metaheurísticas basadas en la trayectoria mientras que si se trabaja sobre un conjunto o una población se habla de metaheurísticas basadas en la población. Metaheurísticas basadas en la trayectoria Consiste en partir desde un punto inicial, formando una trayectoria la cual se mejora mediante el análisis del entorno más cercano. La búsqueda se dará por concluida una vez encontrada una solución suficientemente buena. No se pueden realizar más iteraciones por haber alcanzado el número máximo establecido o se produce un bloqueo en el proceso de búsqueda. Dentro de las técnicas metaheurísticas basadas en trayectoria se encuentran: ▪ El enfriamiento o temple simulado (Simulated Annealing). ▪ La búsqueda Tabú. ▪ La búsqueda Local. Metaheurísticas basadas en población Estas técnicas operan con cada una de las posibles soluciones de un conjunto de individuos denominado población. El tratamiento o la manipulación de la población en cada iteración determina la eficiencia de esta técnica. Los principales tipos de técnicas metaheurísticas basadas en población son las siguientes: ▪ Los algoritmos evolutivos. ▪ La búsqueda dispersa.
Búsqueda Local (LS o “Local Search”) El método consiste en la exploración del entorno siempre dentro del espacio de búsqueda para encontrar un óptimo local a partir de una solución completa. Partiendo de una solución inicial, se elige una mejor solución, examinando su entorno o vecindario. El proceso continuará hasta que en la búsqueda no exista un vecino mejor o el proceso quede estancado. Tras cada iteración, la solución actual será sometida a un cambio que la convierta en una solución intermedia. Para mejorarla, esta nueva solución será supeditada a una heurística. Tras el proceso de mejora y siempre que pase un test de aceptación, el nuevo óptimo local pasará a ser la nueva solución actual. Algoritmos evolutivos Los algoritmos evolutivos se basan en la posibilidad de que cada individuo representa una solución y en cómo cambian esas soluciones con los cambios de su entorno (se adaptan o se mueren). El proceso consiste en lo siguiente: los individuos que conforman la población serán elegidos aleatoriamente. Posteriormente a cada ser se le otorgará un valor en función del problema planteado, será un valor en función de sus capacidades, aptitudes, su capacidad para adaptarse. Ese valor de cada individuo será el punto de partida del algoritmo para realizar la búsqueda. Seleccionar, recombinar o mutar la población son las posibles acciones a tener en cuenta cuando se desea modificar la población. El algoritmo evolutivo se divide en 2 fases, en la primera fase se seleccionan buenas soluciones o individuos y en la segunda fase se buscan nuevas soluciones en regiones no exploradas anteriormente. La búsqueda Dispersa (BD o SS “Scatter Search”) El método fue propuesto por Fred Glover (1998) y descrita por Laguna & Martí (2002). Esta metaheurística se considera un proceso evolutivo donde se construye un conjunto de referencia de soluciones buenas, pero dispersas, es decir, soluciones distintas entre sí o significativamente diferentes. La busque dispersa consta de 5 elementos, a saber: primero, un método de generación diversificada para generar una colección de soluciones de pruebas diversas; segundo, un método de mejora que transforma una solución de prueba en una o más soluciones encontradas; cuarto, un método que, a partir del conjunto de referencia, genera subconjuntos con el fin de combinarlos para crear nuevas soluciones; quinto, un método de combinación de soluciones que transforma un subconjunto dado de estas en una o más soluciones. Este
método de combinación es el equivalente al operador genético que cruce en los algoritmos genéticos (Ballestín, 2002). Este método se sitúa en la literatura como un método tan competitivo como los algoritmos genéticos para este tipo de problemas. Los sistemas basados en colonias de Hormigas (Ant Colony Optimization) Método inspirado en las hormigas y en cómo buscan su comida. El proceso de cómo estos animales buscan su comida inicia con una escogencia arbitraria de una zona cercana al hormiguero. Si encuentran comida, la llevan a su hormiguero, dejando un rastro mediante la expulsión de una sustancia química denominada feromona, que permitiría al resto de hormigas encontrar dicha comida. Las hormigas de las siguientes generaciones son atraídas para realizar su búsqueda en el espacio de solución cercano a las buenas soluciones previas, encontradas en generaciones anteriores. La feromona sirve como mecanismo de comunicación, que las hormigas usan de forma probabilística para crear o construir soluciones a un problema que luego se adaptan para reflejar la experiencia de las hormigas. Consiste en una estrategia de búsqueda distribuida en la que un conjunto de agentes coopera en la búsqueda, transmitiendo e intercambiando la información con el resto. Método de Mejora programación factible Forward y Backward para el RCPSP Esta técnica, consiste en hacer al menos una pasada forward (Hacia adelante) y una backward (Hacia atrás) a una secuencia factible (diagrama de Gantt). En la pasada backward las actividades de un proyecto son re-ordenadas en orden decreciente de su tiempo de terminación y se aplica el esquema en serie a esta nueva secuencia. Como resultado las actividades se mueven a la derecha a la posición más lejana posible. En la pasada forward las actividades se mueven al momento más próximo posible que permita su holgura libre. Para ello las actividades de la secuencia factible son ordenadas en orden creciente de su tiempo de inicio y se aplica el esquema de generación EN serie a esta nueva secuencia. Según Tormos & Lova (2001), el método consiste en tomar una secuencia factible e iterativamente hacer pasadas backward/forward (BF) hasta que en dos pasadas BF consecutivas no hubiera mejora en el tiempo de duración del proyecto. Métodos de Enumeración Implícita Para asegurar que se encuentra una solución óptima al problema, el espacio de búsqueda debe ser examinado totalmente, resultando crucial descartar aquellas soluciones parciales que no conducen a soluciones óptimas. Por ello, la mayor parte de los métodos exactos para resolver este problema se basan en procedimientos de Branch and Bound (Ramificación y Poda). De forma general, estos procedimientos se basan en la enumeración de las diferentes soluciones posibles del problema a través del árbol de búsqueda.
siendo la más eficiente la basada en la ruta crítica. A diferencia del método anterior, este no permite deshacer las decisiones tomadas previamente. En el caso del RCPSP existe una aproximación completamente diferente basada en los denominados conjuntos prohibidos mínimos, concepto introducido por G. Igelmund and F. G. Radermacher en 1983. Un conjunto prohibido se define como un conjunto de actividades que pueden ser programadas concurrentemente durante el proyecto (es decir, que no existen relaciones de precedencia entre ellas) y que si se ejecutan de forma paralela violarían las restricciones de recursos. El enfoque de conjuntos mínimos implica que se enumeran aquellos conjuntos prohibidos que no contienen dentro de sí otro conjunto prohibido o, lo que es lo mismo, aquellos conjuntos prohibidos que al sustraerles una actividad dejarían de ser prohibidos. Métodos de Solución para el RCPSP El enfoque de conjuntos mínimos implica que se enumeran aquellos conjuntos prohibidos que no contienen dentro de sí otro conjunto prohibido o, lo que es lo mismo, aquellos conjuntos prohibidos que al sustraerles una actividad dejarían de ser prohibidos. En su procedimiento primero se determinan los conjuntos prohibidos mínimos, luego se procede a la destrucción de los mismos para obtener secuencias factibles de actividades. Esta destrucción se hace añadiendo tiempos de espera (que se modelan como relaciones de precedencia) entre al menos dos actividades de cada conjunto. Las diferentes relaciones de precedencias que se añaden dan lugar a las diferentes secuencias factibles que pueden formarse. El enfoque desarrollado por Brucker, 1999, define que para toda secuencia factible de actividades únicamente pueden existir tres tipos de relaciones entre cada par de actividades i
⮚ A la hora organizar las actividades de un proyecto, es de vital importancia ser muy riguroso, donde se debe tener en cuenta la prioridad de las actividades, la secuenciación y las precedencias, además de los recursos que se requieren cada una de estas. ⮚ Los métodos heurísticos proporcionan mediante la inteligencia artificial la solución de problemas de programación con recursos limitados, enfocándose en la mejor alternativa de solución sin ser la óptima. ⮚ Existen diversos métodos para la solución de problemas con recursos limitados, entre los cuales se encuentran los métodos exactos que permiten encontrar una solución óptima, pero requiere de grandes esfuerzos computacionales que pueden llegar a ser muy complejo. En la investigación se trató sobre métodos heurísticos o aproximados, que permiten llegar a la solución de problemas sin ser el resultado óptimo. En este método se pueden crear nuevos algoritmos híbrido por medio de combinaciones e iteraciones, donde los esfuerzos computacionales son menores, lo que los hace más atractivos para la implementación. ⮚ Los métodos anteriores permiten buscar las mejores soluciones factibles teniendo en cuenta las restricciones que se tienes para cada uno de las actividades con respecto al tiempo, recursos y precedencias. Todas estas plantean diferentes metodologías que buscan optimizar en gran medida los recursos, sin llegar a excederse; para lo cual es necesario evaluar qué método es el más conveniente de acuerdo a la situación que se quiera resolver.
Patterson, J., & Roth, G. (1976). Scheduling a Project Under Multiple Resource Constraints:. A I I E Transactions , 449-455. Rodriguez, H., & Rojas, P. (2015). Técnicas de estimación de costos para proyectos: revisión bibliográfica de 2005 a 2015. Simón Rodríguez, M., de la Peña Esteban, F., & Rincon Rincon , P. (2014). Análisis de los métodos heurísticos de resolución del problema de programación de proyectos con recursos limitados (RCPSP: Resource constrained project scheduling problem). Tecnologia y Desarrollo, VOLUMEN XII. Valls, V., Ballestín, F., & Quintanilla, S. (2005). Justification and RCPSP: A technique that pays. European Journal of Operational Research. 375-386. Viveros, r., & Rivera, J. (2017). Formulaciones matemáticas y heurísticos simples para solucionar problemas de programación de proyectos con recursos limitados. 1-23.