Enunciado
Considere el proyecto cuyo cuadro de prelaciones y duraciones normal y tope (semanas) se adjunta. Las actividades reducibles pueden acortarse hasta dos semanas, pero el coste no es lineal: la primera semana cuesta ucr_1 k€ y la segunda ucr_2 k€ (más cara: horas extra, turno de noche…). Las actividades con CUR infinito no pueden acelerarse.
- Calcule la duración normal del proyecto y sus rutas críticas.
- Reduzca el proyecto 3 semanas con mínimo coste aplicando Ackoff-Sasieni paso a paso con el coste marginal: el de la semana que toca acortar a cada actividad. Muestre en cada paso las rutas críticas, las opciones y su coste.
- ¿Qué habría resultado de aplicar el algoritmo con un CUR único por actividad igual a la media \((ucr_1 + ucr_2)/2\)? Compare el coste real de esa solución con el del apartado anterior.
- ¿Por qué con costes crecientes por tramos el procedimiento semana a semana sigue siendo válido, y qué fallaría si la segunda semana fuera más barata que la primera?
El proyecto corresponde a la organización de un congreso científico; las actividades son las siguientes (las duraciones del cuadro están en semanas).
Resolución
Apartado 1
- Calcule la duración normal del proyecto y sus rutas críticas.
Cálculo de los tiempos mínimos y máximos de los nodos del grafo Roy paso a paso. El primer paso muestra el grafo resuelto; a partir del siguiente se calcula desde el principio (avance con los botones):
Route_5: B - C - D - G - H - I
Duración normal: 34 semanas.
Apartado 2
- Reduzca el proyecto 3 semanas con mínimo coste aplicando Ackoff-Sasieni paso a paso con el coste marginal: el de la semana que toca acortar a cada actividad. Muestre en cada paso las rutas críticas, las opciones y su coste.
En cada paso el coste marginal de una actividad es ucr_1 si aún no se ha acortado y ucr_2 si ya se acortó una semana (infinito si no le queda margen). Las opciones son las actividades comunes a todas las rutas críticas y las parejas que cubren todas ellas; se elige la de menor coste marginal.
| paso |
|
|
|
|
|
| 1 |
34 |
Route_5 |
I (1); D (1); D+I (2); G (5); D+G (6); G+I (6) |
I |
1.0 |
| 2 |
33 |
Route_5 |
D (1); I (5); G (5); D+G (6); D+I (6); G+I (10) |
D |
1.0 |
| 3 |
32 |
Route_5 |
I (5); D (5); G (5); D+G (10); D+I (10); G+I (10) |
I |
5.0 |
Se acortan D (1), I (2); duración 31 semanas; sobrecoste 7 k€.
Apartado 3
- ¿Qué habría resultado de aplicar el algoritmo con un CUR único por actividad igual a la media \((ucr_1 + ucr_2)/2\)? Compare el coste real de esa solución con el del apartado anterior.
| actividades acortadas |
D (1), I (2) |
D (2), I (1) |
| coste real (k€) |
7.0 |
7.0 |
Con el CUR medio el algoritmo puede preferir acortar dos semanas una actividad que parece barata «de media» cuando en realidad su segunda semana es cara, o evitar una cuya primera semana era la más barata de todas. El coste real se obtiene valorando cada semana con su tramo.
Apartado 4
- ¿Por qué con costes crecientes por tramos el procedimiento semana a semana sigue siendo válido, y qué fallaría si la segunda semana fuera más barata que la primera?
Con costes marginales crecientes la función de coste de cada actividad es convexa, y en ese caso acortar semana a semana eligiendo siempre la opción marginal más barata es óptimo (es la misma razón por la que el CUR constante funciona). Si la segunda semana fuera más barata que la primera (coste cóncavo: un coste fijo de movilización y luego barato), el paso a paso fallaría: la primera semana parecería cara y nunca se emprendería, aunque acortar dos de golpe fuera lo mejor; habría que evaluar las dos semanas juntas.