Universidad Técnica Federico Santa María Departamento de Industrias ILI-281 TAREA Nº2 FIO Pert & Cpm Integrantes: Matthias Breytmann 2504082-1 Javier Casanova 2511022-1 Fecha: 13 de Junio 2008 Ayudante: Daniel Araya – Manuel Labra Tarea Nº2 FIO Índice Introducción ............................................................................................................................................ 3 Objetivos ................................................................................................................................................. 3 Parte 1: Resolución Gráfica. ..................................................................................................................... 4 Parte 2: Resolución mediante programación lineal. ................................................................................. 7 Parte 3: Crashing ................................................................................................................................... 10 Conclusión General ................................................................................................................................ 15 Anexo .................................................................................................................................................... 15 Parte 2 ............................................................................................................................................... 15 Parte 3.1 ............................................................................................................................................ 16 Parte 3.4 ............................................................................................................................................ 18 Página 2 Tarea Nº2 FIO Introducción Pert & Cpm es un técnica comúnmente utilizada para la revisión y evaluación de proyectos. Pert que en inglés significa Program Evaluation and Review Technique consiste en la elaboración de un diagrama que representa las tareas involucradas para finalizar un proyecto y además determina la duración de cada actividad e identifica el tiempo mínimo necesario para completar dicho proyecto. Cpm (Critical Patch Method) consiste en determinar la ruta crítica de los elementos de una red de proyecto, esto sirve para identificar las rutas que ante cualquier variación o retraso afecta la fecha de finalización del proyecto. Esta técnica Objetivos • • • • • Comprender la técnica Pert & Cpm de tal forma de poder aplicarla a la realidad Elaborar un modelo a través de un diagrama de todas las actividades involucradas en un proyecto con sus respectivas duraciones y determinar la duración esperada de éste Identificar la o las rutas críticas que podrían afectar la duración del proyecto Identificar que actividades se pueden acelerar de tal forma de terminar el proyecto antes de lo esperado al menor costo posible Utilizar un software para modelar el problema de tal forma de poder comparar los resultados calculados Página 3 Tarea Nº2 FIO Parte 1: Resolución Gráfica. La representación gráfica de las actividades se observa en la siguiente imagen obtenida del software de representación de diagramas Dia. Donde: Ai: Es la actividad i del proyecto. i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17. El diagrama se representó a través de la siguiente notación: • Bajo cada nombre de actividad Ai está su duración en días. • Los datos que están representados mediante paréntesis cóncavo “( , )” corresponden al tiempo de comienzo más temprano y tiempo de finalización más temprano respectivamente • Los datos que están entre paréntesis tipo corchete “ [ , ]” corresponden al tiempo de comienzo más tardío y tiempo de finalización más tardío respectivamente. Página 4 Tarea Nº2 FIO Página 5 Tarea Nº2 FIO Del diagrama anterior se obtiene que el proyecto tiene una duración esperada de 56 días. Además se observan las dos posibles rutas críticas, las cuales son: Ruta Crítica 1: A1 – A2 –A4 – A6 – A8 – A9 – A11 – A12 – A13 – A15 – A17. Ruta Crítica 2: A1 – A3 – Dummy –A4 – A6 – A8 – A9 – A11 – A12 – A13 – A15 – A17. Esto implica que las actividades nombradas que pertenecen a la ruta crítica no se pueden retrasar, ya que su atraso implicaría un atraso general de la entrega del proyecto. Página 6 Tarea Nº2 FIO Parte 2: Resolución mediante programación lineal. Modelación del problema: Variable: xi : tiempo acumulado al nodo i, Función Objetivo: i = 1..15 min z = x15 − x1 Restricciones: Tiempo de inicio día cero: x1 = 0 Restricción de tiempo para cada nodo: x2 ≥ x1 + 4 x3 ≥ x2 + 2 x9 ≥ x8 + 4 x3 ≥ x4 x9 ≥ x10 x4 ≥ x2 + 2 x11 ≥ x9 + 9 x5 ≥ x3 + 5 x12 ≥ x11 + 7 x6 ≥ x5 + 1 x13 ≥ x12 + 3 x7 ≥ x5 + 8 x13 ≥ x10 + 9 x10 ≥ x5 + 2 x14 ≥ x13 + 8 x8 ≥ x6 + 2 x14 ≥ x4 + 20 x8 ≥ x7 + 3 x15 ≥ x14 + 3 x6 ≥ x7 No negatividad: xi ≥ 0 ∀i = 1..15 Nota: Las restricciones que no tienen sumado un tiempo de duración son restricciones para los dummy o nodos artificiales. Página 7 Tarea Nº2 FIO Solución mediante el programa Lingo: Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: Variable X15 X2 X1 X3 X4 X5 X6 X7 X10 X8 X9 X11 X12 X13 X14 Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 56.00000 0.000000 17 Value 56.00000 4.000000 0.000000 6.000000 6.000000 11.00000 19.00000 19.00000 13.00000 22.00000 26.00000 35.00000 42.00000 45.00000 53.00000 Slack or Surplus 56.00000 0.000000 0.000000 0.000000 0.000000 0.000000 7.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 13.00000 0.000000 0.000000 0.000000 23.00000 0.000000 27.00000 0.000000 0.000000 4.000000 6.000000 6.000000 11.00000 19.00000 19.00000 22.00000 26.00000 13.00000 35.00000 42.00000 45.00000 53.00000 56.00000 Página 8 Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Dual Price -1.000000 -1.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 -1.000000 -1.000000 -1.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Tarea Nº2 FIO Análisis de Resultados y conclusión: Como se puede observar ambos métodos dan la misma solución: mínima duración del proyecto igual a 56 días, esto a través del grafo hecho manualmente y el software de programación lineal Lingo, el cual luego de 17 iteraciones por el método simplex llega al mismo valor. En cuanto a la ruta crítica se puede analizar del resultado obtenido por el programa Lingo que la columna llamada Slack or Surplus define las restricciones que determinan la ruta crítica con un valor igual a 0. En base a este análisis se puede concluir que los resultados son similares a los obtenidos en forma gráfica. Esto comprueba que el método gráfico y cálculo manual es óptimo para planificar y obtener la información necesaria para el desarrollo de un proyecto. Eso sí, tiene un problema, ya que en caso del proyecto contar con un número de actividades muy grande y con una compleja relación entre ellas, este método va a resultar tedioso y demasiado de largo por lo que la eficiencia en la planificación se ve mermada. Para el software de resolución de programación lineal, Lingo, es totalmente diferente, pues no importa cuan grande o complejo sea el conjunto de tareas, la minimización de tiempo la va a entregar sin mayores problemas, pero como se explico en el párrafo anterior sufre en contra el no dilucidar los datos de la ruta crítica del proyecto, dependiendo por tanto igual del desarrollo de la gráfica del proyecto. Página 9 Tarea Nº2 FIO Parte 3: Crashing El proyecto se requiere terminar en 50 días a menor costo posible. El siguiente modelo de programación lineal representa que actividad debe ser acelerada cumpliendo con el máximo de tiempo que se puede acelerar cada actividad: Variables: xi :tiempo acumulado al nodo i, i = 1..15 y j : cantidad de días a acelerar actividad j , j = 1..17 Función Objetivo: min z = 100 y1 + 100 y2 + 200 y3 + 150 y4 + 0 y5 + 100 y6 + 110 y7 + 90 y8 + 130 y9 + 120 y10 + y1 70 y11 + 200 y12 + 190 y13 + 70 y14 + 100 y15 + 110 y16 + 90 y17 Sujeto a: x1 = 0 x9 ≥ x10 y7 ≤ 1 x2 ≥ x1 + 4 − y1 x11 ≥ x9 + 9 − y11 y8 ≤ 1 x3 ≥ x2 + 2 − y2 x12 ≥ x11 + 7 − y12 y9 ≤ 1 x3 ≥ x4 x13 ≥ x12 + 3 − y13 y10 ≤ 1 x4 ≥ x2 + 2 − y3 x13 ≥ x10 + 9 − y14 y11 ≤ 5 x14 ≥ x13 + 8 − y15 y12 ≤ 4 x14 ≥ x4 + 20 − y16 y13 ≤ 2 x15 ≥ x14 + 3 − y17 y14 ≤ 3 y1 ≤ 2 y15 ≤ 6 x8 ≥ x7 + 3 − y8 y2 ≤ 1 y16 ≤ 10 x6 ≥ x7 y3 ≤ 0 y17 ≤ 1 x9 ≥ x8 + 4 − y9 y4 ≤ 2 x5 ≥ x3 + 5 − y4 x6 ≥ x5 + 1 − y5 x7 ≥ x5 + 8 − y6 x10 ≥ x5 + 2 − y10 x8 ≥ x6 + 2 − y7 y5 ≤ 0 y6 ≤ 4 Tiempo de finalización en 50 días: x15 − x1 ≤ 50 No negatividad: xi , y j ≥ 0 ∀i = 1..15, j = 1..17 Para resolver este problema se utilizó el software Lingo v11, el código utilizado se adjunta en el anexo. Página 10 Tarea Nº2 FIO Los resultados que arroja el software son los siguientes: Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: Variable Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Y17 X15 X1 X2 X3 X4 X5 X6 X7 X10 X8 X9 X11 X12 X13 X14 Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 440.0000 0.000000 19 Value 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 50.00000 0.000000 4.000000 6.000000 6.000000 11.00000 19.00000 19.00000 13.00000 21.00000 25.00000 29.00000 36.00000 39.00000 47.00000 Slack or Surplus 440.0000 0.000000 2.000000 1.000000 0.000000 2.000000 0.000000 4.000000 1.000000 0.000000 1.000000 1.000000 0.000000 4.000000 2.000000 3.000000 6.000000 10.00000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 7.000000 0.000000 Página 11 Reduced Cost 10.00000 10.00000 200.0000 60.00000 0.000000 10.00000 110.0000 0.000000 40.00000 120.0000 0.000000 110.0000 100.0000 70.00000 10.00000 110.0000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Dual Price -1.000000 90.00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 20.00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -90.00000 -90.00000 0.000000 0.000000 -90.00000 0.000000 -90.00000 Tarea Nº2 FIO 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 0.000000 0.000000 0.000000 0.000000 0.000000 12.00000 0.000000 0.000000 0.000000 17.00000 0.000000 21.00000 0.000000 0.000000 4.000000 6.000000 6.000000 11.00000 19.00000 19.00000 21.00000 25.00000 13.00000 29.00000 36.00000 39.00000 47.00000 50.00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -90.00000 0.000000 -90.00000 0.000000 -90.00000 -90.00000 -90.00000 0.000000 -90.00000 0.000000 -90.00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Conclusión y análisis de resultados: Cabe destacar que el menor precio posible para acelerar y lograr terminar el proyecto a los 50 días es 440 y las actividades aceleradas son la Actividad 8 con un costo de 90 en 1 día y la actividad 11 en 5 días con un costo total de 350, es decir costo 70 diario. Las rutas críticas quedan representadas entonces por las siguientes actividades: RC1: A1 − A2 − A4 − A6 − A8 − A9 − A11 − A12 − A13 − A15 − A17 RC 2 : A1 − A3 − A4 − A6 − A8 − A9 − A11 − A12 − A13 − A15 − A17 RC 3 : A1 − A2 − A4 − A6 − Dummy − A7 − A9 − A11 − A12 − A13 − A15 − A17 RC 4 : A1 − A3 − A4 − A6 − Dummy − A7 − A9 − A11 − A12 − A13 − A15 − A17 Las rutas críticas quedan representadas a través del análisis de los valores 0 en la columna “Slack or Surplus”. Página 12 Tarea Nº2 FIO ¿Cuánto es lo mínimo que podría durar el proyecto? Para encontrar el valor mínimo que puede durar el proyecto se realiza nuevamente el análisis con el software Lingo, pero ahora cambiando la función objetivo a: Min z = x 15 Manteniendo todo lo demás igual, se obtiene lo siguiente: Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: Variable X15 X1 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Y17 X2 X3 X4 X5 X6 X7 X10 X8 X9 X11 X12 X13 X14 Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 28.00000 0.000000 37 Value 28.00000 0.000000 2.000000 0.000000 0.000000 2.000000 0.000000 4.000000 0.000000 1.000000 1.000000 1.000000 5.000000 4.000000 2.000000 0.000000 6.000000 0.000000 1.000000 2.000000 4.000000 4.000000 7.000000 11.00000 11.00000 8.000000 13.00000 16.00000 20.00000 23.00000 24.00000 26.00000 Slack or Surplus 28.00000 0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 3.000000 0.000000 10.00000 0.000000 Página 13 Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Dual Price -1.000000 1.000000 0.000000 1.000000 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0.000000 1.000000 Tarea Nº2 FIO 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 0.000000 0.000000 0.000000 0.000000 0.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 8.000000 0.000000 0.000000 0.000000 7.000000 0.000000 2.000000 0.000000 0.000000 2.000000 4.000000 4.000000 7.000000 11.00000 11.00000 13.00000 16.00000 8.000000 20.00000 23.00000 24.00000 26.00000 28.00000 2.000000 0.000000 0.000000 2.000000 0.000000 4.000000 0.000000 1.000000 1.000000 1.000000 5.000000 4.000000 2.000000 0.000000 6.000000 0.000000 1.000000 -1.000000 0.000000 -1.000000 -1.000000 -1.000000 0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 -1.000000 -1.000000 -1.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 El mínimo número de días que puede tardar el proyecto con diversas actividades aceleradas es de 28 días. El programa entrega el número de días que se debe acelerar cada variable y multiplicado por su respectivo costo se obtiene el valor de 4980 unidades. Página 14 Tarea Nº2 FIO Conclusión General Los dos métodos utilizados son complementarios a la hora de resolver un problema de Pert & Cpm ya que para modelar el problema Pert es más cómodo realizar un diagrama y luego modelarlo con un software. Para analizar las rutas críticas mediante Cpm es más conveniente utilizando un programa como es el caso de Lingo ya que si se acelera alguna actividad, ésta puede cambiar la ruta crítica del proyecto siendo necesario comprobar reiteradas veces la malla del proyecto. Esta técnica es usualmente utilizada en proyectos como por ejemplo construcciones, puertos, aeropuertos y es aplicable a cualquier empresa lo que ayuda considerablemente a identificar actividades críticas y minimizar los costos en caso de que se requiera acelerar una determinada actividad. Anexo Parte 2 Página 15 Tarea Nº2 FIO MODEL: MIN = x15-x1; x2>=x1+4; x3>=x2+2; x3>=x4; x4>=x2+2; x5>=x3+5; x6>=x5+1; x7>=x5+8; x10>=x5+2; x8>=x6+2; x8>=x7+3; x6>=x7; x9>=x8+4; x9>=x10; x11>=x9+9; x12>=x11+7; x13>=x12+3; x13>=x10+9; x14>=x13+8; x14>=x4+20; x15>=x14+3; x1>=0; x2>=0; x3>=0; x4>=0; x5>=0; x6>=0; x7>=0; x8>=0; x9>=0; x10>=0; x11>=0; x12>=0; x13>=0; x14>=0; x15>=0; DATA: x1 = 0; ENDDATA END Parte 3.1 MODEL: MIN = 100*y1+100*y2+200*y3+150*y4+0*y5+100*y6+110*y7+90*y8+y9*130+120*y10+70*y11+200*y12+190* y13+70*y14+100*y15+110*y16+90*y17; x15-x1<=50; y1<=2; y2<=1; y3<=0; y4<=2; y5<=0; y6<=4; y7<=1; y8<=1; y9<=1; y10<=1; Página 16 Tarea Nº2 FIO y11<=5; y12<=4; y13<=2; y14<=3; y15<=6; y16<=10; y17<=1; x2>=x1+4-y1; x3>=x2+2-y2; x3>=x4; x4>=x2+2-y3; x5>=x3+5-y4; x6>=x5+1-y5; x7>=x5+8-y6; x10>=x5+2-y10; x8>=x6+2-y7; x8>=x7+3-y8; x6>=x7; x9>=x8+4-y9; x9>=x10; x11>=x9+9-y11; x12>=x11+7-y12; x13>=x12+3-y13; x13>=x10+9-y14; x14>=x13+8-y15; x14>=x4+20-y16; x15>=x14+3-y17; x1>=0; x2>=0; x3>=0; x4>=0; x5>=0; x6>=0; x7>=0; x8>=0; x9>=0; x10>=0; x11>=0; x12>=0; x13>=0; x14>=0; x15>=0; y1>=0; y2>=0; y3>=0; y4>=0; y5>=0; y6>=0; y7>=0; y8>=0; y9>=0; y10>=0; y11>=0; y12>=0; y13>=0; y14>=0; y15>=0; y16>=0; y17>=0; DATA: x1 = 0; ENDDATA Página 17 Tarea Nº2 FIO END Parte 3.2 MODEL: MIN = x15-x1; y1<=2; y2<=1; y3<=0; y4<=2; y5<=1; y6<=4; y7<=1; y8<=1; y9<=1; y10<=1; y11<=5; y12<=4; y13<=2; y14<=3; y15<=6; y16<=10; y17<=1; x2>=x1+4-y1; x3>=x2+2-y2; x3>=x4; x4>=x2+2-y3; x5>=x3+5-y4; x6>=x5+1-y5; x7>=x5+8-y6; x10>=x5+2-y10; x8>=x6+2-y7; x8>=x7+3-y8; x6>=x7; x9>=x8+4-y9; x9>=x10; x11>=x9+9-y11; x12>=x11+7-y12; x13>=x12+3-y13; x13>=x10+9-y14; x14>=x13+8-y15; x14>=x4+20-y16; x15>=x14+3-y17; x1>=0; x2>=0; x3>=0; x4>=0; x5>=0; x6>=0; x7>=0; x8>=0; x9>=0; x10>=0; x11>=0; x12>=0; x13>=0; x14>=0; x15>=0; y1>=0; Página 18 Tarea Nº2 FIO y2>=0; y3>=0; y4>=0; y5>=0; y6>=0; y7>=0; y8>=0; y9>=0; y10>=0; y11>=0; y12>=0; y13>=0; y14>=0; y15>=0; y16>=0; y17>=0; DATA: x1 = 0; ENDDATA END Página 19