Subido por arquiemanuel9217

2. DOCUMENTO TRABAJO DE INVESTIGACIÓN

Anuncio
PROGRAMACIÓN DE PROYECTOS CON RECURSOS LIMITADOS
(RESOURCE CONSTRAINED PROJECT SCHEDULING PROBLEM - RCPSP)
Octavio Cambindo, Emmanuel Niño & Stephany Tovar.
Marzo 2020.
Universidad del Valle.
Facultad de Ciencias de la Administración y Facultad de Ingenierías
Maestría en Gerencia de Proyectos.
Administración y Proyectos
ii
Índice
Resumen
1
Capítulo 1
Generalidades del (RCPSP)
2
2
Capítulo 2
Algoritmos con enfoques Exactos
Métodos heurísticas
Métodos basados en reglas de prioridad
Esquema de Generador de secuencia
Reglas de prioridad
Multipasada en reglas de prioridad
Métodos aleatorizados
Técnicas Metaheurísticas
Clasificación de las técnicas Metaheurísticas
Metaheurísticas basadas en la trayectoria
Metaheurísticas basadas en población
El enfriamiento o temple simulado (SA o “Simulated Annealing”)
Búsqueda Tabú (TS o “Tabu Search”)
Búsqueda Local (LS o “Local Search”)
Algoritmos evolutivos
La búsqueda Dispersa (BD o SS “Scatter Search”)
Los sistemas basados en colonias de Hormigas (Ant Colony Optimization)
Método de Mejora programación factible Forward y Backward para el RCPSP
Métodos de Enumeración Implícita
Métodos de Solución para el RCPSP
3
3
4
4
4
4
5
5
5
6
6
6
7
7
8
8
8
9
9
9
11
CONCLUSIONES
12
Bibliografía
13
1
Resumen
Hasta el presente se han diseñado diversos algoritmos con el fin de resolver de manera
exacta la programación de proyectos con recursos limitados (RCPSP). Entre estos algoritmos
se encuentran los desarrollados por (Moder, Phillips y Davis, 1970; Gorenstein, 1972; Fisher,
1973; Stinson et al. 1978; Talbot and Patterson, 1978; Patterson, 1984; Christofides et al.,
1987; Demeulemeester, 1992; Mingozzi et al., 1995; Simpson and Patterson, 1996; Brucker
and Knust, 2000; Dorndorf et al., 2000; Erenguc et al., 2001).
Los algoritmos anteriores tratan de resolver el RCPSP mediante técnicas como la
programación lineal entera, programación lineal entera mixta, branch and bound
(ramificación y acotamiento), relajación lagrangiana y programación dinámica.
Sin embargo, la naturaleza combinatoria de estos problemas y su pertenencia a la clase
NP-HARD (Blazewicz et al., 1983), hacen que sea prácticamente imposible resolverlos en
tiempos razonables, aún mediante el uso de los computadores más potentes existentes en la
actualidad.
La tendencia actual es a desarrollar métodos generales para resolver de modo eficiente
clases o categorías de problemas, aunque no necesariamente de manera óptima. Estos
métodos son denominados Heurísticos. (Osman and Kelly, 1996) explican que los
heurísticos son una clase de métodos aproximados que están diseñados para resolver
problemas difíciles de optimización combinatoria. Los heurísticos proporcionan un marco
general para crear nuevos algoritmos híbridos combinando diferentes conceptos derivados
de la inteligencia artificial, evolución biológica y mecanismos estadísticos.
En la literatura reciente se destacan para la búsqueda de soluciones del RCPSP, heurísticos
como la búsqueda Tabú, recocido simulado, algoritmos genéticos, optimización de la colonia
de Hormigas y métodos GRASP.
2
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.
3
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
4
reales. Es por lo anterior que surge la necesidad de diseñar algoritmos eficientes que obtengan
soluciones de buena calidad, aunque esta última no sea óptima.
Métodos heurísticas
Métodos basados en reglas de prioridad
Para la determinación de la secuenciación más adecuada para una lista de actividades o
tareas de un proyecto, normalmente se emplean métodos basados en reglas de prioridad. Estas
permiten identificar cuál es la solución heurística de acuerdo a la regla que se efectúe para
una adecuada ejecución del proyecto. Según Cervantes, (2010), los métodos de técnica de
revisión y evaluación de programas PERT y métodos de ruta crítica CPM se enfocan en
problemas de secuenciación de proyectos con restricción de recursos, dado que la
información que proporcionan permite determinar qué regla se empleara.
Los métodos basados en reglas de prioridad se basan en dos elementos correspondientes
a un esquema generador de secuencias (SGS) y una regla de prioridad.
Esquema de Generador de secuencia
Esta metodología permite determinar a qué actividad se le da prioridad para generar una
secuencia factible, esto se realiza por medio dos esquemas en serie y en paralelo. Según
Kolisch, (1996) el esquema en serie usa un número de etapas igual al número de actividades
del proyecto. Para cada etapa se selecciona una actividad de acuerdo a una regla de prioridad
y posteriormente se programa rápidamente, teniendo en cuenta las restricciones de
precedencias y de recursos.
El esquema en paralelo, consta de programar tantas actividades como sea posible en cada
instante en el tiempo, donde se cumpla las restricciones de recursos y de precedencias. El
tiempo de decisión está asociado con la finalización de alguna actividad en ejecución. La
definición de este esquema exige que no exista ningún período tal que una actividad que sea
factible, en relación a las restricciones de recursos y precedencias, no sea programada
(Kolisch, 1996).
Reglas de prioridad
Según Morillo, Moreno, & Javier, 2014, las reglas de prioridad permiten ordenar las
actividades de la más a la menos importante, respetando las restricciones de precedencia de
cada tarea. De acuerdo Alvarez-Valdés & Tamarit, 1989, los cuales han obtenido una
clasificación de seis reglas que se consideran son las eficientes, a continuación, se presentan:
5
1. MTS (Most Total Successors): este heurístico elige primero aquella actividad con mayor
número de sucesores, inmediatos o no, ya que el retraso de dicha actividad los retrasa a
todos ellos.
2. GRP (Greatest Rank Positional Weight): esta regla selecciona las actividades de acuerdo
con su peso posicional, obtenido sumando a la duración de la actividad de la duración de
todos sus sucesores.
3. LST (Latest Start Time): esta regla asigna prioridad a aquella actividad que tiene un
menor tiempo máximo de inicio.
4. LFT (Late Finish Time): se asigna prioridad a la actividad con menor fecha tardía de
terminación.
5. RSM (Resource Scheduling Method): Se da prioridad a la actividad cuya procedencia
tiene la mínima holgura total
6. CUMRED (Cumulative Resource Equivalent Duration): Suma las duraciones
equivalentes por recursos de una actividad considerada y la de todos sus sucesores
Multipasada en reglas de prioridad
El método de una sola pasada consiste en generar como resultado una única solución,
empleando sólo una regla de prioridad. Para el caso del método Multipasada, trata de brindar
varias soluciones, por medio de la combinación de los esquemas de secuenciación, la
secuenciación en varias direcciones y aplicando diversas reglas de prioridad. Se tiene que
entre más secuencias se puedan generar en un tiempo computacional considerable, mejor será
la solución (Kolisch, 1996).
Métodos aleatorizados
De acuerdo a Hernández & Poveda, (2014), este método se basa en asignarle a cada una
de las actividades del conjunto de decisión elegible, una probabilidad de ocurrencia. Donde
en que cada pasada se obtiene una secuencia diferente, y de todas estas se va guardando la
mejor solución obtenida, hasta que el resultado no pueda ser mejorado. Se ha identificado
que unos de los aleatorizados más eficaz corresponde al Regret Based Biased Random
Sampling (RBRS) introducido por Drexl, (1991), este calcula la probabilidad de manera
indirecta con unos valores llamados regret; el cual compara el valor de la prioridad de la
actividad i con el valor más bajo de todas las actividades de análisis.
Técnicas Metaheurísticas
Las técnicas metaheurísticas son algoritmos de optimización de propósito general, capaces
de proporcionar muy buenas soluciones en tiempo y con recursos razonables (Simón
6
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.
7
▪
▪
▪
Los sistemas basados en colonias de hormigas.
Algoritmos basados en nubes de partículas.
GRASP (metaheurísticas híbridas).
El enfriamiento o temple simulado (SA o “Simulated Annealing”)
Es una técnica análoga al proceso de tratamiento térmico de metales (temple o recocido).
A partir de una solución actual X0, se elegirá en cada iteración una solución X1. Esta solución
X1, se tomará como solución actual y sustituirá a la solución X0 siempre que sea mejor que
ella. En el caso de una nueva solución, X1, sea de peor calidad, no será descartada, sino que
se le asignará una determinada probabilidad a fin de no caer en un óptimo local. Las
características del método son:
▪
▪
Modificar paulatinamente una solución mientras se produce una mejora, de modo que
el proceso acaba en un óptimo local.
Evitar quedar atrapado en un óptimo local, se permiten movimientos hacia soluciones
peores. Estos movimientos de escape deben controlarse adecuadamente para no
desviar la búsqueda cuando se dirija hacia una buena solución. Para ello se utiliza una
función de probabilidad que disminuye la probabilidad de movimientos de escape
cuando la búsqueda avanza.
Búsqueda Tabú (TS o “Tabu Search”)
Fue introducido por Fred Glover (1988 y 1990) y su principal característica es el uso de
la memoria adaptativa que permite explorar diferentes regiones en el espacio de búsqueda
(memoria de corto plazo) e intensificar la búsqueda en áreas promisorias (memoria de largo
plazo). Lo que quiere decir que la búsqueda de las mejores soluciones está en función de la
capacidad para buscar en diferentes regiones, memorizar y guardar dichas soluciones en una
lista denominada “lista tabú”.
El algoritmo comienza con una solución inicial aleatoria X0. Posteriormente, se define un
vecindario inicial de soluciones alrededor de X0 y una lista tabú; luego, mediante reglas de
movimiento, se generan nuevas soluciones las cuales se analizan para determinar si se
seleccionan. La lista tabú se construye con las soluciones históricamente visitadas, las cuales
quedan prohibidas, de manera que restringen el vecindario actual garantizado, hasta cierto
punto, no volver a seleccionar aquellas soluciones visitadas antes, y así evitar quedar atrapado
en un óptimo local. Esta lista tabú es de tamaño limitado, pues solo puede almacenar un
número determinado de soluciones; cuando este se alcanza, se elimina la solución más
antigua y se adiciona la nueva.
8
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
9
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.
10
La eficiencia de estos métodos depende de una “cota inferior” que se determine para el
problema, la cual es obtenida por diferentes procedimientos, en particular “suavizando” las
restricciones del problema en cuanto a los recursos y luego resolviendo óptimamente el
problema “suavizado”. Cuanto más se “suavicen” dichas restricciones más fácilmente se
resuelve el problema. Adicionalmente se utilizan reglas de dominancia que permiten “podar”
el árbol de búsqueda, eliminando aquellas ramas que no pueden conducir a una buena
solución.
Los algoritmos de branch and bound para el problema de RCPSP se basan en el siguiente
procedimiento: en cada etapa se va construyendo una secuencia parcial factible, en la cual
están aquellas actividades de un proyecto a las que se les ha asignado un instante de comienzo
(programadas). Cada vértice del árbol tiene asociado una secuencia parcial. El proceso de
“Ramificación” del árbol consiste en extender dicha secuencia, para lo cual existen diversos
métodos como el basado en el árbol de precedencias, el basado en las alternativas de retraso
y el basado en las alternativas de extensión.
Árbol de precedencias (A. Sprecher, S. Hartmann y A. Drexl. – 1997): Algoritmo que
a cada nodo del “árbol de búsqueda” y que representa una secuencia factible; en cada nodo
se puede definir un conjunto de actividades elegibles, formado por aquellas actividades que
aún no han sido programadas pero cuyas actividades predecesoras están dentro de la
secuencia factible. Se escoge una actividad elegible y se programa tan pronto como sea
posible, expandiendo así una nueva rama del árbol. Por lo tanto, cada nodo del árbol tendrá
tantas ramas como actividades elegibles haya en ese punto.
Árbol de alternativas de Retraso (N. Christofides, R. Álvarez Valdés, and J.M.
Tamarit – 1987): En este algoritmo, cada nodo tiene asociado un tiempo de secuenciación
en el que pueden comenzar las actividades de un proyecto. En este caso, las actividades
elegibles son aquellas que pueden comenzar en ese instante, entrando todas ellas al conjunto
de actividades en proceso. Si la programación de estas actividades genera un conflicto de
recursos, será necesario determinar los grupos de actividades en curso, cuyo retraso permite
solucionar el conflicto originado. Estos grupos de actividades cuyo retraso resuelve el
conflicto se les denomina alternativas de retraso. El instante de secuenciación viene
determinado por el menor instante de entre los instantes de terminación de las actividades en
proceso.
Árbol de alternativas de extensión (J.P. Stinson, E.W. Davis, and B.M. Khumawala
– 1978): Algoritmo que presenta una alternativa de extensión como un conjunto de
actividades elegibles que podría ser secuenciado en el instante actual sin exceder las
disponibilidades de los recursos. Cada nodo del árbol origina tantas ramas como alternativas
de extensión puedan formarse desde este nodo. Para la poda, se utiliza el criterio de primero
el mejor, por lo que las necesidades de memoria para almacenar las soluciones intermedias
son elevadas. Para la selección del siguiente nodo y expandir la búsqueda, se utiliza un vector
con distintas reglas de decisión y se implementan varias reglas de “dominancia y de poda”;
11
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
- j: i precede a j, j precede a i o ambas pueden ejecutarse simultáneamente durante al menos
una unidad de tiempo. Es obvio que entre algunos pares de actividades la relación existente
entre las mismas queda fijada por las relaciones entre las actividades o por las necesidades
de recursos. El proceso de búsqueda explora las posibles relaciones que pueden establecerse
entre cada par de actividades no relacionadas.
12
CONCLUSIONES
⮚ 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.
13
Bibliografía
Alvarez-Valdés, R., & Tamarit, J. (1989). Algoritmos heurísticos deterministas y aleatorios
en secuenciación de proyectos con recursos limitados. Valencia : Qüestiió.
Ballestin, F. (2002). “Nuevos Métodos de Resolución del Problema de Secuenciación de
proyectos con Recursos Limitados. Ph.D. dissertation, Universidat, 211.
Cervantes, M. (2010). Tesis doctoral: Nuevos Métodos Meta Heurísticos para la Asignación
Eficiente, Optimizada y Robusta de Recursos Limitados, Universidad Politécnica de
Valencia. España.
Clements, J., Gido, J., & Baker, R. (2018). Successful Project Management, Seventh Edition.
214-234.
Drexl, A. (1991). Scheduling of project networks by job assignment. Management Sciencies,
1590-1602.
Fisher, M. L. (1973). Optimal Solution Of Scheduling Problems Using Lagrange Multipliers:
Part I. Operations Research, 1114-1127.
Garcia, J., Echceverry, D., & Mesa, H. (2013). En Gernecia de proyectos - Aplicacion a
proyectos de construcción de edificaciones. (págs. 109-114). Bogota, Colombia.
Hernández, F., & Poveda, J. (2014). Aplicación de la Metaheurística Cromática al Problema
de Secuenciación de Proyectos con Recursos Limitados (RCPSP). Montería,
Córdoba, Montería: Universidad de Córdoba.
Intitute, P. M. (2017). A guide to the Project Management body ok knowledge (PMBOK
Guide) (6ª. ed.). PMBOK Guide, 211-220.
Kolisch, R. (1996). Serial and parallel resource-constrained project scheduling methods
revisited: Theory and computation. European Journal of Operational Research, 320333.
Maria Antonia , S., De la peña Esteban, F., & Rincón Rincón , P. (1-21). Metodologías
Analíticas y Heurísticas para la Solución del Problema de Programación de Tareas
con Recursos Restringidos (RCPSP): una revisión. Parte 2. Revista de ciencia,
Tecnología y medio ambiente, 2014.
Morillo, D., Moreno, L., & Javier, D. (2014). Medologías Analíticas y Heurísticas para la
Solución del Problema de Programación de Tareas con Recursos Restringidos
(RCPSP): una revisión. Parte 2. Ingeniería y Ciencia , 203-227.
Patterson, J., & Huber, W. (1974). A Horizon-Varying, Zero-One Approach to Project.
Management Science, 990-998.
14
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.
Descargar