Enunciado
El fichero pat1.rcp del conjunto de instancias de Patterson (formato RCP: primera línea, número de actividades y de recursos; segunda, disponibilidad de cada recurso; después, una línea por actividad con su duración, sus necesidades de recursos, el número de sucesoras y sus sucesoras) describe un proyecto con actividades ficticias de inicio y fin de duración cero:
- Lea el fichero con
read_rcp (escribiéndolo antes en disco), construya el cuadro de prelaciones y el proyecto. ¿Cuántas actividades reales, ficticias, nodos y rutas tiene?
- Calcule τ = ‖R·t‖∞ y compárelo con la duración obtenida por el cálculo de tiempos (CPM). Indique las actividades críticas.
- Calcule la SVD de R y el cociente σ₁/σ₂. Ordene las actividades por |v₁| y mida la precisión del ranking: fracción de las k primeras (k = número de críticas) que son críticas.
- Compare el tamaño de R con el del grafo. ¿Cómo crece el número de rutas con el tamaño del proyecto y qué implica para proyectos de cientos de actividades?
Resolución
Apartado 1
- Lea el fichero con
read_rcp (escribiéndolo antes en disco), construya el cuadro de prelaciones y el proyecto. ¿Cuántas actividades reales, ficticias, nodos y rutas tiene?
| predecessor |
--- |
A01 |
A01 |
A01 |
A03 |
A03 |
A03 |
A04,A07 |
A02 |
A02,A05 |
A04,A07 |
A06,A10,A11 |
A08,A12 |
A09,A13 |
| duration |
0 |
6 |
4 |
3 |
1 |
6 |
2 |
1 |
4 |
3 |
2 |
3 |
5 |
0 |
14 actividades (incluidas las dos ficticias del formato, de duración 0), 1 ficticias añadidas por el grafo, 10 nodos y 8 rutas.
Cálculo de los tiempos tempranos y tardíos de los sucesos y de las holguras totales paso a paso. El primer paso muestra el grafo resuelto; a partir del siguiente se calcula desde el principio (avance con los botones):
Apartado 2
- Calcule τ = ‖R·t‖∞ y compárelo con la duración obtenida por el cálculo de tiempos (CPM). Indique las actividades críticas.
τ = ‖R·t‖∞ = 18; CPM = 18; coinciden: True. Actividades críticas: A01, A03, A06, A12, A13, A14.
Apartado 3
- Calcule la SVD de R y el cociente σ₁/σ₂. Ordene las actividades por |v₁| y mida la precisión del ranking: fracción de las k primeras (k = número de críticas) que son críticas.
| v₁ |
0.495 |
0.495 |
0.459 |
0.343 |
0.277 |
0.139 |
0.137 |
0.136 |
0.118 |
0.116 |
0.1 |
0.072 |
0.068 |
0.036 |
| crítica |
True |
True |
True |
True |
True |
False |
False |
False |
False |
False |
False |
False |
True |
False |
σ₁/σ₂ = 2.78. La mejor clasificada, A14, es crítica; precisión en las 6 primeras: 0.83.
En el conjunto de Patterson (110 instancias) la actividad mejor clasificada por \(v_1\) es crítica en el 77 % de los casos, y la identificación falla sobre todo cuando σ₁/σ₂ está cerca de 1 (dos direcciones dominantes). El ranking es informativo, no determinista.
Apartado 4
- Compare el tamaño de R con el del grafo. ¿Cómo crece el número de rutas con el tamaño del proyecto y qué implica para proyectos de cientos de actividades?
El grafo tiene 10 nodos y 15 arcos, pero R tiene 8 filas: el número de rutas crece de forma combinatoria con la anchura del grafo (en las instancias de 51 actividades de Patterson hay hasta varios miles). Por eso la fórmula es útil como herramienta analítica (sensibilidad, estructura, simulación vectorizada), mientras que para calcular τ en proyectos grandes basta el cálculo de tiempos hacia delante, que es lineal en el número de arcos.