Aprendizaje Interactivo de Teoría de Grafos
Aprendizaje Interactivo de Teoría de Grafos
Guest User
Using app without sign in
Guías de estudio de teoría de grafos
Descarga inmediata · Acceso de por vida
¿Prefieres ayuda personalizada?
Sesiones individuales sobre RCPSP (Programación de Proyectos con Recursos Limitados) para tu curso, una entrevista o un proyecto de optimización.
Solucionador de planificación con recursos limitados
Programa las tareas del proyecto respetando tanto las restricciones de precedencia como los límites globales de recursos.
Selecciona un algoritmo y genera pasos para comenzar la visualización
El problema de programación de proyectos con recursos limitados (RCPSP) programa las actividades de un proyecto sujeto tanto a restricciones de precedencia como a recursos renovables limitados, como trabajadores, máquinas o presupuesto por periodo. A diferencia del CPM, que supone recursos ilimitados, el RCPSP es fuertemente NP-difícil.
Las heurísticas por reglas de prioridad construyen cronogramas con el esquema de generación de horario serie o paralelo: las actividades se insertan en el primer instante en que se cumplen a la vez la precedencia y la disponibilidad de recursos, ordenadas por reglas como más sucesores totales o mínima holgura. Los enfoques exactos usan ramificación y acotación con cotas inferiores basadas en recursos, y las metaheurísticas, en particular los algoritmos genéticos con codificación de lista de actividades, dominan los benchmarks estándar PSPLIB.
El RCPSP impulsa la programación de cuadrillas y equipos de construcción, la planificación de sprints de equipos de software bajo límites de personal, la programación de paradas de mantenimiento en refinerías y la planificación de producción en fabricación bajo pedido. Es el puente canónico entre los algoritmos de grafos y la investigación de operaciones industrial.
RCPSP es CPM más recursos limitados, y esa única añadidura lo lleva de lineal a NP-difícil. El enfoque práctico es una heurística de planificación en serie guiada por una regla de prioridad.
RCPSP(actividades, dependencias, capacidades):
orden = ordenacionTopologica(actividades)
ordenar el orden por una regla de prioridad
// p. ej. holgura mínima, o mayor duración primero
para cada actividad a en el orden priorizado:
t = max(fin[p] para p predecesora de a)
mientras algun recurso r esté saturado en
[t, t + duracion[a]):
t = t + 1 // retrasar hasta que quepa
inicio[a] = t; fin[a] = t + duracion[a]
reservar los recursos de a durante ese intervalo
duracion del proyecto = max(fin[a])La diferencia con CPM es que el inicio de una actividad ya no viene fijado únicamente por sus predecesoras: puede verse empujado más tarde porque otra actividad no relacionada está ocupando la máquina. Eso rompe la propiedad que hacía lineal a CPM, ya que la decisión sobre una actividad ahora afecta a actividades con las que no tiene ninguna dependencia. Por eso ninguna cantidad de programación dinámica sobre el orden topológico basta.
Planifica cuatro actividades que compiten por un único recurso con capacidad 1, y compara el resultado con lo que predeciría CPM.
Grafo de ejemplo: Actividades A (3 días), B (2 días), C (4 días) y D (2 días), con A y B precediendo a C, y C precediendo a D. Todas requieren la misma máquina, de la que solo hay una unidad.
Con recursos ilimitados el proyecto dura 9 días; con una sola máquina dura 11. Los dos días adicionales no proceden de ninguna dependencia, sino puramente de la contención por el recurso. Fíjate además en que el concepto de camino crítico se vuelve resbaladizo aquí: la ruta que gobierna la fecha de fin ahora incluye la espera de B por la máquina, que no es una relación de precedencia en absoluto. Por eso los calendarios de CPM sobre proyectos con recursos escasos resultan sistemáticamente optimistas.
Tiempo: NP-difícil; la heurística en serie es O(V^2 · R) · Espacio: O(V · R)
La heurística de planificación en serie procesa cada una de las V actividades una vez y, para cada una, puede tener que avanzar el instante de inicio comprobando la disponibilidad de los R recursos, lo que da del orden de O(V al cuadrado por R) en el peor caso con una implementación directa. Eso es rápido y escala a miles de actividades. Lo que no hace es garantizar el óptimo. El RCPSP exacto es NP-difícil, y de hecho está considerado uno de los problemas de planificación más duros de la investigación operativa: las instancias de referencia con solo 60 actividades siguieron sin resolverse durante años. La ramificación y acotación exacta es viable en torno a 30 o 60 actividades según la estructura, y más allá de eso se recurre a metaheurísticas como algoritmos genéticos o búsqueda tabú.
Elige según si los recursos son realmente limitantes y si necesitas una garantía de optimalidad.
| Alternativa | Prefiérela cuando | Coste |
|---|---|---|
| CPM | Los recursos son abundantes y no restringen nada. Lineal y exacto. | O(V + E) |
| Heurística de planificación en serie | Instancias grandes. Rápida, sencilla y normalmente a pocos puntos porcentuales del óptimo con una buena regla de prioridad. | O(V^2 · R) |
| Ramificación y acotación exacta | Decenas de actividades y necesitas el calendario óptimo demostrable. | exponencial |
| Metaheurísticas | Cientos de actividades donde la calidad importa más que la garantía. Algoritmos genéticos, búsqueda tabú, recocido simulado. | variable |
| Nivelación de recursos | La duración es fija y lo que quieres es suavizar los picos de uso de recursos en lugar de minimizar el plazo. | NP-difícil |
Leer el artículo completo: Graph Theory in Project Management
Leer el artículo completo: Operations Research and Graph Theory
Algoritmos relacionados: Método de la Ruta Crítica (CPM), PERT (Técnica de Evaluación y Revisión de Programas), Ordenación Topológica