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 Método de la Ruta Crítica (CPM) para tu curso, una entrevista o un proyecto de optimización.
Calculadora de ruta crítica
Identifica la secuencia más larga de tareas dependientes en un cronograma de proyecto, determinando el tiempo más corto posible para completarlo.
Selecciona un algoritmo y genera pasos para comenzar la visualización
El método del camino crítico (CPM) halla la cadena más larga de actividades dependientes en una red de proyecto, que determina la duración mínima del proyecto. Las actividades en este camino crítico tienen holgura cero: cualquier retraso en ellas retrasa todo el proyecto.
El proyecto se modela como un grafo acíclico dirigido de actividades con duraciones. Una pasada hacia adelante en orden topológico calcula el inicio y fin más tempranos de cada actividad; una pasada hacia atrás calcula los tiempos más tardíos que evitan retrasar el proyecto. La diferencia entre el inicio más tardío y el más temprano es la holgura de la actividad, y las actividades con holgura cero forman el camino crítico. Ambas pasadas se ejecutan en O(V + E).
El CPM planifica proyectos de construcción, lanzamientos de software, cambios de línea en fabricación y organización de eventos. Herramientas de gestión de proyectos como Primavera y Microsoft Project calculan caminos críticos de forma continua. Es también una aplicación de libro de texto de los caminos más largos en DAG y la ordenación topológica.
Dos barridos sobre la red de actividades en orden topológico: hacia adelante para lo más pronto que puede ocurrir cada tarea, hacia atrás para lo más tarde que puede ocurrir sin retrasar el proyecto.
CPM(actividades, dependencias):
orden = ordenacionTopologica(actividades)
// Barrido hacia adelante: inicio y fin más tempranos
para cada actividad a en orden:
ES[a] = max(EF[p] para p predecesora de a), o 0
EF[a] = ES[a] + duracion[a]
T = max(EF[a] sobre todas las a) // duración del proyecto
// Barrido hacia atrás: inicio y fin más tardíos
para cada actividad a en inverso(orden):
LF[a] = min(LS[s] para s sucesora de a), o T
LS[a] = LF[a] - duracion[a]
holgura[a] = LS[a] - ES[a]
camino crítico = actividades con holgura 0El camino crítico es el camino más largo por la red, no el más corto, lo que convierte esto en un problema de maximización sobre un DAG y no en uno de camino mínimo. Como la red es acíclica, ambos barridos son simplemente programación dinámica en orden topológico y no hace falta ninguna cola de prioridad. Holgura cero significa que la actividad no tiene margen: retrásala un día y el proyecto entero se desplaza un día.
Planifica un proyecto de cuatro actividades donde dos tareas pueden ejecutarse en paralelo pero ambas deben terminar antes de que empiece la tercera.
Grafo de ejemplo: Actividades con duraciones A (3 días), B (2 días), C (4 días) y D (2 días). Dependencias: A y B deben preceder a C, y C precede a D.
El proyecto dura 9 días y el camino crítico es A a C a D. B tiene un día de margen, es decir puede empezar un día tarde o alargarse un día sin afectar a la fecha de fin. Este es el resultado práctico: le dice a un gestor exactamente dónde concentrar la atención. Acortar B no sirve de nada, mientras que acortar cualquiera de A, C o D acorta el proyecto entero, al menos hasta que el camino crítico se desplace y pase por B.
Tiempo: O(V + E) · Espacio: O(V)
Una ordenación topológica cuesta O(V + E), y cada uno de los dos barridos visita cada actividad una vez y cada arista de dependencia una vez, así que ambos son también O(V + E). El espacio son cuatro números por actividad, el inicio y el fin más tempranos y más tardíos, es decir O(V). Todo el método es lineal, y por eso escala a redes de proyecto con cientos de miles de actividades. La red de dependencias debe ser un grafo dirigido acíclico: una dependencia circular no tiene orden topológico y, correspondientemente, ningún calendario válido, así que la detección de ciclos es un requisito previo real y no una formalidad.
CPM supone duraciones conocidas y recursos ilimitados. Relajar cualquiera de esas dos hipótesis cambia el problema.
| Alternativa | Prefiérela cuando | Coste |
|---|---|---|
| PERT | Las duraciones son inciertas. Usa estimaciones de tres puntos para dar una duración esperada y una distribución de probabilidad. | O(V + E) |
| RCPSP | Los recursos son limitados, así que las actividades compiten en lugar de ejecutarse libremente en paralelo. NP-difícil. | exponencial |
| Ordenación topológica | Solo necesitas un orden de ejecución válido, no tiempos ni holguras. | O(V + E) |
| Camino más largo en un DAG | El mismo cálculo expresado en términos de grafos. CPM es exactamente esto con las duraciones como pesos. | O(V + E) |
| Análisis de compresión | Quieres acortar el proyecto y necesitas el conjunto más barato de actividades que acelerar. | programación lineal |
Leer el artículo completo: Graph Theory in Project Management
Leer el artículo completo: Operations Research and Graph Theory
Algoritmos relacionados: PERT (Técnica de Evaluación y Revisión de Programas), RCPSP (Programación de Proyectos con Recursos Limitados), Ordenación Topológica