El Control De Proyectos En Un Contexto Aleatorio

Preview only show first 6 pages with water mark for full document please download

Transcript

ESTADISTICA ESPAÑOLA núm. 105, 1984, págs. 71 a 115 EL CONTR O L DE PROY ECTOS E N UN CONTEXTO A LEATORIO : APLICAC I O N DEL M ETO DO MONT ECARLO por JUAN ANTONIO CAÑAS MADUEÑO Departamento de Economía y Sociología Agrarias. ETSIA. Universidad de Cbrdoba y RAFAELA DIOS PALOMARES D®partamento de Estadística. ETSIA. Universidad de Cbrdoba RESUMEN En este trabajo realizamos una aplicación del método de simulación Monte Carlo al control de proyectos en aquellos casos en los que algunas de las actividades en que se descompone la realización de una obra, presentan una duración de realización aleatoria. Para poder aplicar el método de simulación se han desarrollado unos programas de cálculo en lenguaje BASIC mediante los cuales se determinan las holguras de las actividades, así como el camino(s) crítico(s) con cada uno de los valores simulados para cada actividad con duracián de realización aleatoria. Los tipos de variables aleatorias contempladas en el trabajo son: variables continuas con distribución de probabilidad de tipo Beta, y con distribución de probabilidades en histogramas de frecuencia; variables discretas cuya distribución se puede ajustar a una binomial negativa o bien a cualquier otra función de probabilidad que se estudiara mediante su histograma de frecuencias. Realizados los cálculos para el número de generacionés deseado, se determina el índice de criticidad de las diferentes activídades. Palabras clave: PERT, simulación Mante Carlo, lenguaje BASIC, distribución Beta, distribución binominal negativa, camino crítico. F-.tiTA[^ISTIC.A ^_^F'A!^(>I^A INTRODLICCIU^t ilna de las funciones del empresario como tal es la de t©mar decisiones ante las diversas situaciones yue se le presentan a lo larg,o del proceso de producción. La adopcic^n de una u otra decisión da lugar a unas cc^nsecuencias, posiblemente diferentes en cada caso, siendo también fur^ión del empresario el controlar y evaluar estos resultados. Actualmente se dispone de varios métodos que permiten analizar y evaluar las consecuencias de las decisiones empresariales de acuerdo con el grado de información que se tenga sobre las variables que intervienen en el problema, así como sobre la fiabilidad que le merezcan al empresario o responsabte de la decisión. Una de las técnicas que se aplican en la programación y control de proyectos es el método ipERT, que permite determinar el camino crítico, así como el tiempo total de ejecucicín y los márgenes que pueden permitirse en cada tarea para que la fecha de terminacián de1 proyecto no se retrase. Sabido es, sin embargo, que las variables que intervienen en el modelo son los tiempos de duracic^n de cada tarea, cuya naturaleza es, en gran mayoría, estocástica. Así, para hacer una buena modelizacián de la realidad y conseguir, por tanto, resultados fiables y aplicables empíricamente una vez tomada la decisián, es indispensable iniroducir en el modelo la naturaleza aleatoria de aquellas variables cuya consideracián como deterministicas implicaria errores sustanciales. E1 PERT aleatorio tiene en cuenta esta aleatoriedad, pero can algunas simplificaciones, ya que sálo introduce en el modelo las varianzas de las variables, Por otro lado, la determinación de la varianza del tiempo total se basa en el Teorema Central del Límite, que se apoya en la hipótesis, que no siempre se curnple, de que el número de variables es muy grande. El ideal, sin embargo, es modelar la realidad considerando el comportamiento aleatorio de las vañables en toda su amplitud, esto es, introduciendo en el modelo la función de densidad de las mismas para llegar a determinar las funciones de densidad de las variables de decisíón que nos proporcionan la informacián más completa. Esto es io que se consigue aplicando fos métodos de simulación. E1 objetivo del presente trabajo consiste precisamente en la aplicacic5n de las técnicas de simulación al métado PERT para la programacibn y el control de proyectos. Hemos construido a tal efecto un modelo de simulación utilizando el método Monte Carlo. Uno de los problemas que se presentan es la determinación de las distribuciones que siguen las variables. f-:[_ CONT^ROL. DE: PRC:)^ I^C-'IC)S Con el fin de que el modelo sea lo más amplia posible, se ha diseñado considerando la posibilidad de que intervengan variables, tanto continuas camo discretas. Igualmente, teniendo en cuenta los problemas específicos yue se resuelven con este tipo de técnicas de control, hemos particularizado para las variables Beta y binomial negativa, por considerar que san las que mejor se ajustan a los tiempos de ejecución de las tareas del proyecto. Para la resoíución del modela se ha elaborado y puesto a punto un programa de cálculo para un microcomputador cuya utilización resulta indispensable para aplicar los métodos de simulación. Por último hacemos una aplicación de la metodalogía presentada a un caso práctico, que consiste en un proyecto, descompuesto en 18 actividades, de las cuales siete se consideran realizables en un tiempo fi jo, con lo que las variables que expresan sus tiempos de duración son determinísticas. Las otras 11 actividades, sin embargo, presentan en sus tiempos de realización una considerable aleatoriedad, motivo por el cual se resuelve el proyecto aplicando el método de simulación. Una vez analizada la naturaleza de las actividades aleatorias, cuenta el modelo con cuatro variables discretas, siendo dos de ellas binomial negativa y siete continuas que se dividen en tres variables en histogramas de frecuencias y cuatro variables betas. Los resultados obtenidos ofrecen una información completa de la natúraleza aleatoria del tiempo total de ejecución, así como de las holguras y del indice de criticidad de cada actividad del proyecto. LA SIMULACI^N MONTE CARL(^ APLICADA AL PERT La aplicación de los métodos de simulación Monte Carlo al método PERT viene a resolver, como ya se ha indicado, el problema originado por la aleatoriedad de algunas de las variables que intervienen en el modelo de control de proyectos. De una manera básica y esquemática, la metodología consiste en resolver el proyecto mediante el método PERT un número elevado de veces, de modo que cada vez tomen las variables aleatorias un valor generado aleatoriamente según su propia función de densidad. Se consigue así igualmente un número elevado de valores de las variables de decisión que nos permitirá conocer su comportamiento representado en sus distribuciones ,. empir^cas. E1 primer paso para piantear el modelo es el análisis de las variables para ver cuál es su naturaleza y determinar o ajustar su función de densidad o de probabilidad. Una E^STADIST[CA ESPA,!^O1_A vez hecho esto la simulacián proporciona su metodología específica para la generacián aleatoria de las mismas. Análisis de las variaóles Las variables del modelo de cantrol de proyectos representan los tiempos de duración en la ejecución de las tareas o actividades que lo componen. D^ebido a esto tienen unas características determinadas. Para realizar el análisis de las mismas se determina su d^stribución empfrica a partir de un númera de datos considerable, extraídos de proyectos de carácter similar, que se han realizado con anterioridad. E1 estudio de dicha distribucián nos permite, en algunos casos, ajustar a la misma una distribución teórica conocida, que as©ciamos a la variable en estudio. La distribuci6n beta: En el caso de variables continuas es frecuente poder aj ustar, con suficiente rigor estadístico, distribuciones de tipo beta cuya función de densidad representa fielmente el comportamiento de los tiempos de duracián de las actividades. Se caracteriza esta distribución por estar su espacio muestral acotado entre dos valores a y b y tener la forma acampanada dependiendo de dos parámetros p y q. Su función de densidad es: 1 ^^F' (x-u^{h-x)4 - para + ^ + ^ + ^ ^ a ^ x<_ h (h - a ^P+y+ ^ La determinación de !a función beta que mejor se ajusta a una distribucián empírica dada, sp rea;=?-s estimando los parámetros de posición y de dispersión de dicha distribución e,-r.píric;- , w^sto es, ta media, la moda y la varianza y relacionándolos con las de la función beta. :;_.to nos permitirá estimar los parámetros ^ ^ y y de esta última, de la siguiente manera: A Sean m. M y t^2 los estimadores de la distribución empírica y rn. M y a^ los de la fur^ción beta ^3(p, r^ ) de extremos a y h. Dado que en la función beta se cumplen las relaciones u + M(p + q} + h rn = p + y + 2 • q + h•!^ n+y cs 2 }(h „ u)2 {P + 1)(q + 1 ^ (p + a + 3) (p+ q + 2}^ 75 ^ 1_ CONTRQL DE PROYFC'TOS podemos calcular h y y, dados c^ y h, mediante las expresiones ^, + M(p + y) + h ^rr = ^^ + y + ? . ct • y + h- p M p + y 2 ^ - (p + 1)(y + 1)(h - u)2 (p + q + 3) (p + y + 2)a Lu hi^i^miu^ nekat! ^ ^u: En el análisis de las variables discretas se ha observado que varias de ellas deben su compartamiento aleatorio a fenómenos atmosféricos o bien a averías de maquinarias, que, en suma, se traducen en ocasionar que los días de trabajo sean útiles o no útiles. Analicemos una tarea del proyecto que requiera T, días útiles para su terminación. Si suceden fenómenos que provaquen la ocurrencia de T2 días no útiles, la terminación de la tarea se cumplirá transcurridos T, + T2 días en total, que será el tiempo de duración efectivo y podrá repercutir en el tiempo de realización del proyecto. Se trata, por tanto, de una variable aleatoria acotada inferiormente a T, y cuya naturaleza depende directamente de la probabilidad p de ocurrencia de día útil. Estas consideraciones nos han Ilevado a conciuir que su comportamiento se ajusta fielmente a la variable discreta denominada binomial negativa de las siguientes características: Sea una variable binaria B(p) que se realiza un número indefinido de veces, siendo p la probabilidad de éxito, y(1 -- p) la probabilidad de fallo. La variable x binomial negativa representa el número de pruebas que hay que realizar de B(p) para conseguir k éxitos o el número de la prueba en la que se consigue el k-ésimo éxito. En relación con las variables tiempo de ejecución que estarnos estudiando lo expresariamos como el número de días que transcurrirá en total para conseguir T, días útiles. La variable binomial negativa de parámetros k, p se distribuye de la siguiente manera: f(X• k. P) X - 1 _ k 1 pk (1 - p)X-k x E S= (k, k+ 1, ...) En nuestro caso particular k= T, y p sería la probabilidad de día útil que puede ser estimada empíricamente a partir de datos conocidos de fenómenos ocurridos con anterioridad. Di.strihuciones empíricu.s: E1 modelo de control de proyectos puede contener también actividades cuya función de probabilidad no se ajusta bien a ninguna distñbución f.STA[71^T[C^A E^SP.A'vC71.A CC^noclda. En estas Casos, 1dS variables cont^nuas se representan mediante SU histograma de frecuencias y las discretas, mediante 5^^ función de probabilidad. C;c^rtc^ruc•icín ulYUtcjriu La generació^ n aleatoria de )as variables se realiza aplicando los métodos de la simulación Monte Carlo que utilízan las funciones de distribución empiricas o bien algún método específico para casos de variables continuas de función de densidad complicada. En resumen, se trata de generar valores de una determinada variable, de tal manera que los mísrnos se ^justen fielmente al comportamiento aleatorio que manifiesta su función de densidad. La generación aleatoria de cualquier variabte se basa en la gener•ación previa de valares de 1a variable uniforme o rectangular R(o, 1), que son equiprobables entre o y 1. Existen varios métodos para la determinación de estos valores que se denominan números aleatorios, pero en ta práctica se utilizan tablas previamente elaboradas que !os contienen. Es, sin embargo, general que se encuentren introducidos como subrutina en todos 1os computadores, !o que facilita la puesta en práctica de los métodos de simulación. Vuriuhles cuntinr^c^.S: Si particularizamos para una variable aleatoría continua _x de función de densidad .f ^(_x), y de función de distribución F(x), la obtención de cada valor de la misma se efectúa de1 siguiente modo: u) Se genera un valor R E R(o, 1). h) Se calcula .r mediante ta inversa de F(.^c ) de manera que x= F-' (R ). .____.. .^ ._..^ ^ ^ ____. _..___ _._._. R x=I^^^r^^ X Para el empleo de esta metodoiogia es necesario e! conocimiento de F-'{.r) que no siempre es fácil. Es por eso que se han elaborado métodos específicos para la generación de ai,gunas variables aleatorias en las que la aplicación de este método no es fáciimente viable. E•^L. CC^;^ITRC)[_ UE: PROYE:C""I•OS Así la variabie aleatoria ^3(^^, c^) cie extremos cc y h que hemos consicierado en el modelo, se genera de la siguiente manera: u) Se generan cios números aleatorios R, ^ R(o, 1) y R^ E R(o, 1). h) Se calcula la expresión M = R; ^' + R2 y Si M< 1 pasamos al apariado c). Si M> l se desprecian los valores R, y R2 y se empieza de nuevo en r^ ) con nuevos valores. c• ) E1 valor generado de la variable ^i será: R ^ `^ ^ -M x=^1 + (h-u) Vuriuhfes en {tist^^^rumus c!e ,frPC•rcencius: Cuando 1a variable viene representada por su distribución empírica, la función de distribución expresada en hístograma escalonado de frecuencias se utilíza para la generación aleatoria de la misrna. Sea una variable _r continua y con función de distribución empírica F(x; ) siendo x; las marcas de las clases en que se ha dividido el espacio muestral. La generación de valores de x se efectúa de la siguiente manera; u) Se ge ne ra u n valor R E R(Q, 1) . h) Se compara R con todos los valores de F(x^) empezando por el menor hasta que se cumpla que R esté comprendido entre dos valores de x; consecutivos, tal que: F(x;- ^) < R ^ F(x,^ se asignará entonces el vator .x = x, . ^...-.^. .... ... ^ -... ..^. ..^ ..... ^ ^ ^.^. ^......-..^ ^ .... ..r ^. ^ .^ ^ ... ^ ... ,r ^ .^ M.. ..^ ^ ^ .^.^ ^ ^ ^ ^ ^. .... .... ^^ Á `^ ^-^. ^.. -^.. ^i-i x^ X E.S^ At:)iSTEC a E_S>=A^JC)[_A Vc^r^^cthle.^ c1^.ti^c^rc^tu.^ : La:^ variahles discreta^ se generan de ia misma manera que las que vienen en histc^gramas c^e frecuencías con !a única diferencia de que los valores .r, de .z- no son en este catio la:^ marcas de 1^^s clases, sino lcas valores del espacio muestral discreto de fa variable. La variabie binomíal negativa se genera como cualquier variable discreta una vez determinada su funcián de distribución, dados los parámetros ^ y^^. PROGRAMA DE CALCULO La operativización de las técnicas de simulación Monte Carlo aplicadas al PERT aleatvrio ha dado lugar a!a elaboración de los ocho programas de computador en }enguaje BASIC que se adjunta en el Anexo II. Estos programas se conexionan entre sí a lo largo del proceso de cálculo. La función de cada uno de estos programas es la siguiente: Programa núm. Programa núm. Programa núm. Programa núm. Programa núm. Programa núm. Programa núm. Programa n^úm. l: Entrada de datos previa a! programa 6. 2: 3: 4: S: 6: ?: 8: Función de distribución de la binomial negativa. Entrada de datos general. Entrada de datos para las variables discretas. Entrada de datos para las variables betas. Entrada de datos para las variables en histogramas. Sirnulación PERT. Salida de resultados. E1 procedimiento operativo que vamos a comentar a continuación se esquematiza, mediante los organi,grarnas correspondientes, en eI Anexo I, Los programas 1 y 2 realizan operaciones previas al bloque principal de programas SIMUPERT que se compone de los seis restantes y contiene la metodología de la simu[aeión aplicada al PERT. Lus ^^rc^^^ru ^rtcc.^ / El pr©grama núm. 1 realiza únicamente la entrada de !as funciones de distribución de las variables que denominamos variables en histogramas. Medíante el mismo se almacena en la unidad de cinta una matriz que contiene ios datos referentes a dichas funci©nes de distribucicín y que será utilizada a! operar el programa núm. 6 de1 bloque SIMUPERT. E^t_ C'nNTFtOL DE PROI^'E:C`i<^S EI programa núm. 2 calcula la f'unción de distribución de cualquiera variable binomial negativa, dados los parámetros que la definen. Así, al programa se le introducen Ios parámetros ^^ y k, siendo la salida los valores cfe: x, -- 1 ^_^ .^,k.í^ _^,lxr^- .x, E S = (k. k + 1, . .. ) E1 cálculo de dicha función de disiribución nos permite conocer los datos necesarios para i ntrod uc i rlos en el bloq ue S 1 M U PE RT considerando las variables bi nomial negativa que intervengan en el modelo, como variables discretas. Por tanto, es un programa que habrá que procesarse cuando haya binomiales negativas y previamente al programa núm. 4 del bloque SIMUPERT. El hlvy^^e SlMUPERT E1 contenido principal de la metodología se ha estructurado en un bloque de seis programas numerados del 3 al 8, que hemos denominado bloque SIM U PERT . Las caracteristicas del soporte informático de que disponemos nos han perrnitido enlazarios de tal forma que van encadenados entre sí y con la posibilidad de operar en cada caso sólo aquellos que sean necesarios al efecto. De esta manera sólo los programas 3, ? y 8 se tendrán que operar siempre, mientras que el resto se operarán dependienda de la estructura que tengan las distintas variables que intervienen en el modelo. Según se ha cornentado en•el apartado 2, la aplicación de los métodos de simulación se introduce en el modelo debido a la consideración de la naturaleza aleatoria de la duración de realización de algunas actividades del proyecto. Con el fin de que la aplicación del bloque de programas sea lo más general posible, éste admite en el modelo distintos tipos de variables que difieren en su naturaleza. En resumen, las distintas posibilidades que se pueden presentar son las siguie ntes: - Modelo determinístico: con todas las variables determinísticas. - Modelo estacástico: con alguna variable estocástica que puede ser continua de naturaleza beta, continua con la función de disiribución dada por un histograma de frecuencias y, por último discreta, dentro de las cuales se considera también la binomial negati va . En el programa núm. 3 se introducen como datos el número de variables de cada clase que contiene el proyecto, así como las duraciones de realización de las distintas actividades. Mediante este programa se forma una matriz que sirve de base para operar el programa núm. 7 que resuelve el proyecto aplicando el método PERT. r ^r^,^n ^ sT^rc^^^ E-s^^.^^ ^^^^ a Lc^s programas núms. ^, ^ y 6 permiten 1^^ entrada de datt^s reférenies a las variable4 aleatorias que se consicieren de cacia clase. Estoti ciatoti serviran cie bdse al programa núm. 7 para la generacic^n aleatoria de valc3res cie dichas variables utilizando su f^unción cie distribucíón según vimos en el apartacio 2. Cada uno de estos tres pro,gramas se operarán sc^lamente en el casc^ cfe que existan en el proyecto actividades cuya dur^ó^ I I 1 I I c4 ...i ^-, ^ © d^ M Q'^ M r^.. O`^ ^ CT «^ d^^^^^^ M M . .. c'^ C'`- 4^ ^^, ^ v^ 00 d' c^ J V^ ^r7 u7 QO cY7 O^ M c+i V'^ QO ^-+ r-+ ^-+ ^--+ ^ N N N N N N['^`i N M M ^-+ .--+ ... un ^ ...r N 0 ^ z, ^ :c w^ t~ QQ^C?^^^`^1Q^^ O'wCTOc'^^^^d' ^t^^^MCT t^ Q r's M t^- CT v^ .-+ 00 ^ ó r^^ v^ ^n ^n ^n o0 ^T ^n ^et ^.-+•-' r+NN r-+NNNNN•-+^ -.^^ ^^ Ñ O N^•^-M-^^^^^.N p ^UNOC^TOÓOÓ^^ ['^ Q r^ O v^ O O u'^ 00 ^r`^ ^^t rt ^7' ^n t^- ^n v'^ O C^ cv ^o ac v-^ o^n oo r^ N o^ ^n ^n ^n ac^ r-, r- r^ cn ^n a^ ^'+ .-^+ ^--r +-r .-+ N+-+ N N N N(+'^ N M M•-•r ^-+ < ^ U y. ^ ^ W ~ ÑÑ NÑ *-+í^ ^^ ^OOGTCrQ^^C'^00^ !"^^G^U^^GQ^h h- t^t^ O v'^ O^r, ^n o0 O^ et tt .[`^- ©^ ó ó cv cy ^^ oc7 ^ ó 04 rri v^ r^ ^ñ ^ñ ^.-^ ^ oo t-^- ^ñ r^ .-+ r-+ .-+ *-, ^--+ N+--^ N N N N N r--+ .-^ ^ .-.r v, cd O C_ y LJ. U r ^ - ... in C *-^ C N N N c'^ u'^ !t ^^/'^ N M ^T +i^ C'`^ ^ ^ 00 r r r r *-+ ^--+ N N M .-. u ee^ >, ^ ^ r c'^ ^L? ^O CV r r r r-r .-+ .-^ ..-r .-r r-+ ^-+ r r ^ r r ^ r .--r •--^ •-^ ^O O^ r r ^ ^ r d^ tiO [1- O^ 00 O*-^+ ^/') N N N c'h `^f ^`i OC^ .--^ T-. .--• .•-r r-, .-r .^-, `7 `d' `rt t^^ u'`^ ^,p ^ N c^ d^ v^ ^L7 ['^- ^G N d' c'^ N M v^ M 0 0 c^ C7^ O^+ N r^ ^t ^^ t^- oo Q^ O ^-1 ^r .-. r-. +-r .^-r .^-^ .-. r-. , .r (-.^ d l_ C'C)"vTRO!_ I)!^ !'Rt')^r'F•.C'IO^ 9 l. concluir que la prohabilidad de que ei tiempo total de ejecución esté entre treinta y uno y treinta y siete días es: P(31 < T^ 37) = F(T = 37) - F(T = 31) = U,972 - O,U16 = 0,956 Sin embargo, es más frecuente poner más atención en los valores de la variable prríximos al extremo superior, puesto que serían casos en que se crearían problemas al menos de tipo económico. Es, por tanto, interesante para el empresario fijar un riesgo mínimo de no cumplir el proyecto en el plazo prometido y conocer el tiempo Tp, al que puede comprometerse para acabar el proyecto asumiendo él ese riesgo. Así, un riesgo (1 - p) de no acabar el proyecto en el tiempo Tp, es equivalente a expresar que la probabilidad de que el proyecto dure más de Tp es (1 --- p}. Esto es: P{T > Tp )= 1-- P(T < T^ ) Esta segunda expresión se relaciona directamente con la función de distribución de la variable duración del proyecto, de modo que podemos calcular Tp dado un valor del riesgo {1 -- P) Si asumimos un riesgo (1 -- p) = 5 por 100, el tiempo T^ tal que P(T , Tp) = 0,95 es en nuestra aplicación Tp = 36,66, que indica que la probabilidad de terminar el proyecto en treinta y siete días es algo mayor del 95 por 1C}o. La última columna del cuadro 2 nos indica el índice de criticidad de las distintas actividades en que se descompone el proyecto. Este índice mide el tanto por uno de veces que cada una de ellas ha sido crítica en el total de las generaciones simuladas (en nuestro caso 250). Así las actividades 4, 13, 15 y 20 que presentan un índice nulo, nunca han sido críticas y, por tanto, es presumible que para cualquier valor que tomen los tiempos de ejecución de las actividades aleatorias nunca pertenecerán al camino crítico; por el contrario, las actividades 1, 3, 6, 7, 9, 12, 14, 17 y 19 presentan un índice superior al $0 por lUO, lo que nos hace concluir que es muy probable que pertenezcan al camino crítico cuando el proyecto se realice. El resto de las actividades tienen un valor para el índice de criticidad de 0,284 la 16 y 18 y de O,SU4 las demás. A la vista de estos datos, el responsable del proyecto debe atender especialmente al control de las actividades con un alto índice de criticidad, pero sin olvidarse de aquellas otras que presentan un bajo valor para dicho índice, ya que en alguna ocasión estas actividades pueden formar parte del camino crítico y, por tanto, un retraso en su ejecución implicaría un retraso en la finalización del proyecto. 92 E=.STAC^IST[C^A E:SPA^+'OL_.A ANEXC^ I.-URGANIGRANiAS PROCRAh1^1 Nfl 1 ^KIN CI}^7:C^ N 1=1'; ^ I^F. V.^4R l A l7I f r, ^; t; C^^'^ DAR EL VALOR A( I, J} ^ ^ ^^^ ES C R I B1"; 7^A l^^^ATR I Z A ARCH IV A 1 ^A l'ftATR I Z A F zrl ^± 7. ::'_^.^ ^^ U R A Ir r^ S 93 E^:L CUNTRUI_ [)E: PRC)YE<"`iU^ PROGRAr^tA NQ 2 _._.._.,,^.--YRINCI^IO ENTRADA DE I^OS VAI^OKF^^ DE I^ Y K I = 1 F 1= FN C X^I ^^--1 F 2=FN C ( K-1) F3=FNC X( I ) -K [F 1/( F 2* F 3)^+t ^p t K) ^[(1 - P) t ^X^I)-K)^ s wo F(I,2)=F(I,1 F(I,2 =F(I-1,2)^F(I,l S1 N^ I = I ^ 1 X( I ) =X( I-1) -^1 E=.S"TADISTI^"A E^SPA?v()L_^ J = 1 ^ .^..^_ ESCRII^^?^^ ^ .OS VALQR^:S : ^tJ ^ , FtJ:l-) ^ F^J^ ^) W= FILA PA.RA ARCHIVAR F ARCH IV O D^: I^A N^ATRIZ F F IN Subrut ina ^arer. _de fin ir la fur^nc i ón FNC ^ - ^.r+^y^- s ^^ ^^ a ^^w r ar w+^^ DEF ZN E LA FUNC I ON FNC ^ X L= =1 .• ^ ^o REGRESA A LA FUNCIC}N F _._._.___.._._.,_^...,.-... ^^ t t c^r^^r^tc^^_ t^E-: t'tzc^tit.r^^ir^^ PROGRA''.^ N9 3 PRINCIPIO DAR LOS VALORES N= NQ DE ACTIVIDADES Ni= N Q DE VERTICES nt ra a de : N 1= NQ DE VARILBLES EN HISTOGR. N 2= N 4 DE VARIABLES BETA N 3= N Q DE VARIABLES DISCRETAS I = 1 ^^-z,-1) -_ _I A I, 2^=DURAC ION DE LA ACT IV IDAD I A( I, 3^=VERT ICE ORIGEN A( I 4)=VERTICE FIN a -I I ^ S ^ L D= ^ 1 E LA MA T R IZ DE DATOS I _ ^- 1 i N g DE ERRORES DAR VERDADERO VALOR DE I,J,A(I,J) P P ^ 1 NO ^ ENLAZA CUN EL NLU (,^U_E___D^: 1^' J.1,A - ^ y5 9C, ESTAI^lSTiC.`A ESPAI^iC)LA PR©GRAMA NQ 4 ^ ^^w _^_______ ^.^^ FRINCIPIO _ ^ KS=N Q MAXIIl^O DE ^ ,. VALORES DE X I = 1 R I, 1 = VALORES DE X I R( I, 2}=ARCH IY 0 DE LOS VALORES DE X( I) =INDICE DE LA ACTIVIDAD I , K{I) ^ L_.____^ ^ ^ BU S C A R LA MATR IZ V EN R (I 2) I^^I,J) = V(J) J ^ = F IN F:l, C'ONTROL I^F PR(aYFC`T<)S pRO^^^^ _ N^ 5 FRINCIPIO I =1 C( I,1) =INDICE I^^^ J^^ V^_RIk^.^a^L E( I,1 }, E( I, 2)=EXTRET^^OS DE I^.A VAhIA13I^E P( I), C^ ( I) = FARA.MEfiROS P, Q 97 E:ti 1 AUIti f^1C .^ E^1F'.^^1()I..^ _ _ _ ___ _. PROGRA?^tA Ng 6 PRINCIFIU K = 1 D{K, 1) -=INDICE D^: T^A G{ K, 1) , G( K, 2^=EXTR^;n'^C^:^ K VA^^Ik}3L^: ].^^; 1:p. V^Z^IABLE 1 _- F LA ARCH I^T O^'i.ATR I Z DE F^t^:CU FN C IAS BUSCAR I^A N^ATRIG' F Z (K) = (G(K, 2^^K, l^}J5 [:I, C'C)NTRC)[_ [>E: PR{)YE=('7C)S P ROC RA 1^1.^ N Q 7 F'RINCIPIC. SI V=N ^ vE Gi;I'iERAC IOId LS v2=DURACIOI^T TOTAL N!AXIr^;A Di^DURACION To2^AL r^Ir^ I1r^A O MAT 8 = ldA T M=b1AT P7 ^^^ = C ERO w^^wi^^^ S1--V 2-0 ._._ .___ _ __. ■ __ ■ ^.o.+..^^^ ^^ ^i ^i ^^^^^W..^^^^ X1 ^RN D ^ 0 . 9^ X2=RND(©.5) ^ M8=X1 T ( 1fP ( H )}^X 2 T ( 1fC^(H) ) A[C(H,l),2^ =E(H,1)1{Xlt[1/P(H),J^ ^[E(H,2)-E{H,1)]/1^28 ESCR I BE ET^ VALOR D^, A C G( N 1) , 2 ^ F=_S^^AI:)tST1C A F.SPAN4.)I.R - ^ RÑD^O.?5^ ^ ---- - -- r^^^.^^^ ^^ E^1_ CUNTRUL DE: PRCJYE:CTC)S 101 1 I w= ^ RND ( 0. $j- Ts X=X( L, I A[K(L),2]=X _ ESCRIBE EL VALOR D^: X ^ L ^ 1 . 1O^ r^ t:^i>i^, rtc a r.^,t^.a^:c,t .^^ f^:[. (^O^+"I^k<)1. I^)E PFtUYF ( ^^1O^ lll^^ E•.STAD[tiTIC'A ESPA!rC)I A H(I,l)=Ttx(I,4),2) -TtA(I,3),l^-A(I,2) H(I,2}=T^,A(I,4),1] -TCA{I,3).l^-A(I,2) H(I.3}=TCA(I,4),l^ -T[A(I,3),2]-A(I,2) H(I,5}^TCA(I,4),2^ -A{I,2) H(I.6)=TCACI^3),1^ }ACI.2) x C i, 4 )^o = 1 = 1 M( I,J)=M( I,J)-EH{I,J} I ^ 1 .. iv o EL C'Cl!YTRC)L_ DE-^ PRt)1'ECCUS il'Í = .^ 1 ^ N(I,J ) ^ T(I,J N(I,J ^^ I ^ 1 J ^ 1 S1= Sl ^ T(M,2} S2i S2 ^ T(M,2)t2 G^1=[T(1^, 2) - D1^/S G2= 1 ^ INT ( G1) H(G2) = B(G2^_ ^ 1_ i-- U = U ^ 1 Ml = Sl/`V r^I2 = S21`V-Mlt2 MAT MAT h^IAT Dl'LA T MAT Ní B N H T ^ (1/V } ^ 1^1 = (1/V }^t B = (1/V )^ N = M = N ESGRIBE: VAI,OR bIEDI^} UEL T. TlJTAL = N'1 VARIAI^`ZA DEI, T. TO'rAT^ = D12 1(1f^ F ti[^,lll^.l.l( A f^ tiP.-^+,tit )í ..^, __ _ _ _ _ P^^t C^ G K A".^:A ^^t 4 t^3 ^----P.í^I^:CI.I✓ IO ^SC^I t3^; •. V 3,LQRES I`^I ED I 0 S S I I„U LA DO S LSCRIT3L E+^CABEZAi^'I^NTO D^.^L CUADI^O D:^ RESU 1,I' ^DOS : A@T ., Dt^HAC ., SiJC ESOS IN I.-FIr^aL, T. T. EARIi^Y J, T. I^A3T I^ T. LAST J, i^ . H. LIBRE, H. I^V D}^^P. y^; .^:. EaRLY I, SUC . I-J , _ ESCRIBE LC)S VALOIZ^S DE I,OS ELE^+'IEh^TOS C4.^.RESPOt1DIENTES A : ^._^^^ A^ I, AtI,2), ACI:3), {I,4). TCACI.3),l TCA{I,4^,1), TcAiI,3),2)^ TCACI,^)^2)^ T(AiI,3),3). TCAiI,4)^3)^ HCI:lis HCI,2), HCI•3). HCI,4} ESCRIBE: ACT IV I TJAD, FECHA DE COb'I EN Z© L^AS TEIri^Ra.NA ^ biAS TARDIA, FECHA DE TER ^ciINAC IO^^ b1AS 3'E^4?FRANA Y blAj^ fiARDIA 1 f^l_ (.^Uri"TRC^L UE^ E'Rt.)YE^^C^"T^Oti E3CR2 BE L05 VALO ^^ES CORRESF^aT^ D I EN TES A= I, TCAiI,3},l). HCI,S), HCZ.6), T(A(I,4),2) ESCRIBE: DISTRIBUCIC^N DE FRECUENCIAS TIEM^PG T©TAL / ESCRI BF : D1 ^ S ^ { I_3^ )_____ g( I P I N ^^ ^ ^» fSTADISTiCA E^SPA!VC)t_A ANEXO II.-PROGRAMAS Programa n^im. 1 10 REM ENTRADA DE MATRIZ FRECUENCIAS EN ARCHIVO-SIMUPERT 20 DIM AS(5,20) 30 DISP 'T^T. VAR. HISTO."; 40 INPUT N 1 SO REDIM A(5,N l ) ó0 FOR J=1 TO N 1 70 FO R I=1 TO 5 80 DISP I","J; 90 INPUT A(I,J) 100 NEXT I I 10 NEXT J 120 MAT PRINT A 130 DISP '^ILA DE ARCHIVO"; 140 INPUT K 150 STORE DATA K,A 1 ó0 END Pro^grama núm. 2 10 REM BINOMIAL NEGATIVA-CALCULO FUNCION DiSTRIBUCION 20 DIM X{20), FS(20,2) 30 DISP '^,K"; 40 INPUT P,K 5^0 I =1 60 X(I) = K ?0 F1= FNC(X(I}-1) 80 F2=FNC(K-1) 90 F3=FNC(X(I}-K) 100 F(I,1}=(F1/(F2*F3}) * (P ^` K) * ((2-P) fi (X(I)-K)) 110IFI> 1THEN 140 12© F(I,2)=F(i,l) 130 GOTO 150 140 F(I,2)=F(I-1,2)+F(I,1) 150 IF 1-F(I,2) < 10 ^' (-4) THEN 190 1l50 I=I+1 170 X(I)=X(I-1)+1 180 GOT+O 70 190 F{I,2)=1 200 PRINT " X P(X) F(X) " 210 FOR J=1 TO I FL. COl^iTROL DE: PROYE:CTC)S 220 FORMAT F3.O,F10.f^,F10.fi 23C) WRITE (15,220) X(J),F(J,1),F(J,2) 24^ N E XT J 25C) DISP "FILA PARA GRABAR LA F"' 2fi0 INPUT W 270 STORE DATA W,F 280 END 290 DEF FNC(X} 300 L= F=1 310 F=F*L 320 L=L+1 330 IF L^ X THE N 310 340 RETURN F Programa núm. 3 10 REM MEMORIA CENTRAL SIMUPERT-ENTRADA DE DATOS 20 DIM AS(25,4),TS(20,3),HS(25,ó),CS(5,1),ES(5,2),PS(5),t?S(5),DS(5,2),GS(5,2) 30 DIM ZS(5),FS(5,5),MS(25,ó),NS(25,3},BS(10),LS(5,10),XS(5,10},RS(5,2),KS(5} 40 DISP "N. DE ACTIV. Y N. DE VERT."; 50 INPUT N,M 60 DISP "N. DE VARI. BETA;--HISTO;-DISCRETAS"; 70 INPUT N2,N1,N3 80 REDIM A(N,4),T(M,3),H(N,ó} 90FORI=ITON 100 A{I,1)=I 110 DISP "DUR. Y COOR. DE LA ACTIV."I; 120 INPUT A(I,2),A{I,3),A(I,4) 130 NEXT I 140 PRINT "MATRIZ DE DATOS" 150 PRINT "ACTI. DUR. SL)C. I. SUC. F." 160 PRINT " 170 FOR I-=1 TO N 180 FORMAT F3.O,FS.O,FÓ.0,F8.0 190 WRITE (15,180) I,A (I,2),A(I,3),A(I,4) 200 NEXT I 210 DISP "N. DE ERRORES"; 220 INPLJT D 230 IF D=0 THEN 290 240 FOR P=1 TO D 250 DISP 'wALOR DEL ERROR"P; 260 INPUT I,J,A(I,J} 270 NEXT P 280 GOTO 140 290 LOAD KEY 4 300 END " t^+^ __ F ^iAt)ISiI( ^^ f-`s}'Ati()I ^^ _ _., _._ . _ _ . _. B L C^ tr^? U F^ S I M L_7 P E_^ RT Pragrama núm. 4 { ^'. KE^'.0 ^ 10 REM ENTRADA DE DATOS VARIABLES DISCRE"i'AS 2t) DISP "NUM. MAX. DE VALORES DE X"; 30 INPUT NS 40 REDIM L(N3,N5),X(N3.N5),R(N3,2),K(N3) SU F©R I=] TO N ^ £^ D^ ISP "NUM. DE VALORES DE X("I"),ARCHIVO"; 70 II'^IPUT R(I,1),R(I,2) SO RED^ IM V(R(I,l) 9(1 DISP "INDICE DE L.A AC`"TIVIDAD"; 1C){) INPL.^T K(I) 11() FfJR J=1 TO R(I,l) t20 DISP "VAL{JR DE ^C("I„ „J„)-„; 13f.) INPUT ?^( I ,J ) Ia() NEXT J t5^ LOAD DATA R(I,2),V 160 FOR J= 1 TO R(^^I,1) 1?0 L+(I,J)=V(J) 18U NEXT J 19U NEXT I 2{x7 END Programa núm. 5 (F. KEY.1} IO REM ENTRADA DATOS VARI. BETAS 2U REDIM C(N2,1),E(N2,2),P(t'^I2),(?(NZ) 3U FOR I=1 TO N2 4U D^ iSP "INDICE VARI. BETA"I; SU INPUT C(I,1) (^0 DISP "EXTREMOS VARI. BETA" I '",P,Q"; ?0 INPUT E(I,1},E(I,2),P(I),Q(I) 80 NFXT I ^0 DISP "HECHC3"; UO END Programa núm. 6 {F. KEY.Z) lU REM ENTRADA DE DATOS VARI. HISTO. 20 ItEL?IM Z(N1),F(S,NI),D(NI,I),G(N1,2) 30 FOR K=1 TO N 1 40 DISP "INDICE VARI. HISTO."K; SO IN PUT D( K,1) I^^_L C'UtiTRUI. UE^ F'RC)^'t^C'^ O^ t^f) DISP "EXZ'REMOS VA^RI. HIS"I'C^."K; 70 INPIJ'T C'.^(K,1 ^,C.^ (K,2) 80 N I^:XT' K 90 DISP "FILA ARC^HIVC) MA"I'RIZ FREC'." 100 INPUT H1 110 LOAD DATA H 1,F 120 FOR K=1 TO N 1 130 Z(K)=(G(K,2)-G(K,1))5 140 N EXT K 150 DISP "HECHO"; ló0 END Pragrama aúm. 7 (F. KE^'.3) 10 REM SIMULACION-PERT 2U REDIM M(N,ó),N(M,3) 30 IF N1=0 AND N2=0 THEN 480 35 IF N3=0 THEN 480 40 DISP "NUMERO DE G ENERACIONES"; 50 I NPUT V 60 DISP "Dt.JRACION FINAL MAX, MIN"; 70 INPUT D2,D 1 80 S=(D2-D1)/10 90 MAT B=ZER 100 MAT M=ZER 110 MAT N=ZER 120 S1=S2=0 130 FO R U=1 TO V 140 IF N2=0 THEN 230 15U FOR H=1 TO N2 160 Xl = RND(0.9) 170 X2= RND(0.5) 18U M8=X1 T (1jP(H))+X2 T (1/Q(H)) 190 IF M8 ? 1 THEN 160 200 A(C(H,1),2)=E(H,1)+(X1 ^` (1/P(H)) * (E(H,2)-E(H,1))/M8 "A(C(H,1),2) 210 PRINT "A("C(H,1)",2) _ 22U NEXT H 23U IF N1=0 THEN 370 24(1 FO R K=1 TO N 1 2S0 W= RN D(0. 75 ) 260 FO R I=1 TO 5 270 IF W> T(I,K) THEN 350 280 IF I# 1 THEN 310 290 X=G(K,1}+Z{K) * (W%F(1,K)) 300 G OTO 320 310 X=G{K,1)+Z{K} * (I-1)+Z(K) * (W-F(I--1,K))/(F(I,K)-F{I-1,K)) 320 A(D(K,l),2}=X 111 112 2 33(T PRINT "A("D(K., l )", 340 GOT© 3fi() 35U NEXT I 3t5^U NEXT i^ 370 IF N3=0 THEN 4^30 380 FOR L=1 TO N3 390 W = RND(0.8) 4()0 FOR I=1 TO R{ L,1) 410 IF W> L(L,I) THEN 460 420 X=X(L,I) 430 A(K(L),2)-X 440 PRINT •'A("X(L),,,2)=..X 450 GC)TO 470 4ó0 NEXT I E:^STADISTIC^A ESPAÑOC.A )="'^i 470 NEXT L 480 T(I,1)=0 490 FOR J= 2 TO M 500 T(J ,1) ^ -1 S10FORI=ITON 520 IF A{I,4}#J THEN Só0 530 T1=T(A{I,3),1)+A(I,2} 540 IF T1 < T(J,1) THEN 5^ 550 T(J,1)=T1 560 NEXT I 570 N EXT J 580 T(M,2)=T(M,1) 590 FO R J= M-1 TO I STEP -- I b00 T(J ,2) =10 T 9 610 FOR I=N TO 1 STEP-1 620 IF A(I,3) #J THEN 660 630 T2=T(A(I,4),2)-A(I,2) 640 IF T2 > T(J,2) THEN 660 á50 T(J,2)=T2 ábt) NEXT I 670 NEXT J 680 FO R J=1 TO M 690 T(J,3}=T(J,2)-T(J,1) 700 NEXT J 710 FO R I-1 TO N 720 H(I,1)=T(A(I,4),2)--T(A(I,3),1)-A(I,Z) ?30 H(I,2)=T(A(I,4),1)-T(A(I,3),1)-A(I,2) ?40 H(I,3)=T(A(I,4),1)-T(A(I,3),2)--A(I,2) 750 H(I,S)=F(A(I,4),2)--A(I,2) ?b0 H(I,6) = T(A(I,3) ,1) + A(I,2) 770 H(I,4)=0 ?80 IF ABS(H(I,l)) ^ 1 THEN 810 790 H(i,l)=0 800 H(I,4) =1 E:l. C'ONTRO[. DE PRC1Yf:^^1^O5 K10 NEXT I ^320 IF N1=0 AND N2=0 THEN 1O8O ^i25 IF N3=O THEN 1{)!^U H30 FOR J=1 TO 6 840 FOR I=1 TO N 850 M(I,J)=M(I,J)+H(I,J) 8fi0 NEXT I 870 N EXT J 880FORJ=1T03 890 FO R I=1 TO M 900 N(I,J)=N(I,J)+T(I,J) 910 NEXT I 920 N EXT J 930 S1=S1 +T(M,2) 940 S2=S2+T(M,2} ^` 2 950 G1={T(M,2)=D1)/S 960 G2=1+INT(C'^1) 970 B{G2)=B{G2)+ 1 980 N EXT U 990 M1=S1f V 1000 M2=S2^V-Ml ^' 2 1 O 10 MAT M=(1%V )* M 1020 MAT-B = (1/V ) * B 1030 MAT N=(1/V) * N 1040 MAT H = M 1050 MAT T= N lOfiO PRINT "NALOR MEDIO DEL TIEMPO TOTAL="M1 1070 PRINT "VARIANZA DEL TIEMPO TOTAL="M2 1080 DISP "HECHO"; 1()90 END Programa n^im. 8 (F. KEY.4) 10 REM PROGRAMA ESCRITURA SALIDA-SIMULACION PERT 20 PRINT "VALORES MEDIOS SIMULADOS" 30 FORMAT "ACT. DURAC. SUCESOS T. EARLY T. EARLY T. LAST" 40 WRITE (15,30) " T. LAST H. SUC. H. TOTAL H. LIBRE H. INDEP. C.C.' " J J 50 FORMAT 14X,"INI.-FINAL I I 60 WRITE (15,50) "I J" 70 FORMAT " 80 WRITE (15,70) " 90FORI=ITON 100 FORMAT F3.O,F7.O,F8.O,F3.0,3F9.3 110 FORMAT F9.3,F7.3,F6.3,2F9.3,F6.3 120 FORMAT F9.3 130 WRITE (15,10^0) I,A(I,2),A(I,3)"-",A{I,4), T(A(I,3),1),T(A(I,4),1), T(A(I,3),2), „ 1 EySTA1^1S7 EC.^A ESPAI`i(.)l_A •: 14t1 WRITE (15.11U) T(A(I.^).^),T(A(I,3).3),T(A(I,4),3),I-1(I.1},H(I,2),H(I,3), 15(l WRITE {15,120) H{I,4) 1(^t) NEXT I 17() FCtRMAT t2X,F3E^.() 180 WRITE (15,170) "CALENDARIO DE EJECUCION DEL PROI^EC'TO" 90 FORMAT "AC"TIVIDAD FECHA DE COMIENZO " 2í10 WRITE ( i5,190)"FECHA DE TERMINACItJN" 210 FORMAT 11X, "MAS TEMPRANA MAS TARDIA" 220 WRTTE, (15,210)"MAS TEMPRANA MAS TARDIA" 23Q FÚRMAT " ^' " 240 WRITE (15,230)" 254 FOR I=1 TO N 260 FORMAT F6.3,F12.3,3F13.3 270 WRITE (15,2fi0)I,T(A(I,3),1),H/I.5),H(I,6).T(A(I,4),2) 280 NEXT I 290 IF N 1=0 AND N2 =E} TI-IEN 340 300 PRINT "DISTRIBUCION DE FRECUENCIAS - TIEMPO TOTAI_," 310 FO R I=1 TO 10 320 PRINT DI+S *(I-1)" "B(I) 330 NEXT I 340 END BIBLIOGRAFIA AGARD, J.: Les methades de simulation. Dunod, 1968. B u^A, E. S.: Direeción de operacianes. Ed. Limusa, i 973. CAlYAS MADUEÑO, J. A., y Dtos PALOMARES, R.: «Los métodos PERT y RUY en el control de proyectos y los microcomputadores». Proceso de Datos, núm. 94, Madrid, octubre 1979. EscvDERO, L.: La simulación en la empresa. Ediciones Deusto. Bilbao, 1973. : Asignación óptima de recursos. Ediciones Deusto. Bilbao, 1977. GERE^, V., y CZTR©Nt, V.: Introducción al ancílisis de sistemas e investigación de operaciones, Representaciones y Servicios de Ingenierfa, S. A. México, 1978. NAYL^3R, T. H. ; BALINTFY, J. L. ;$URDICK, D. S., y K©NG, C.: Computer simulatican techniques. John Wiley and Sons. 19bb. PHiLLiPS, D. T.; RAVINDRAN, A,, y SOLBERG, J.: Operations Research: Principtes and Practice. John Wiley and Sons. INC. USA, 1976. E=.1. CIUti'TR()1_ UE^ YROYEC"T(:)5 1]5 RoME^RO LbPFZ, C.: Técn^cas de pro^ramación ti^ contro! de prc^y^ect^^s^. 2.' ed. Edieiones Pirámide. Madrid, 19K3. SoBOI✓ , I. M.: Método de Monte C'arlv. Editorial MIR. Moscú, 197b. TE-^leRAUF, R. J., y GROSS^. R. A.: Toma de decisiones por medio de Investigación de ©peraciones. Ed. LIMUSA, 1972. : Introducción a la investigación de operaciones. Ed. LIMU'SA, 1982. TC)CHER, K. D.: The art of sirnulation. H©dder and Stoughton, 1963. WAGNER, H. M.: Principles of Otperations Research with aplications to mana,geria! decisions. Prentice Hall International Editions, 19^5. SUMMARY THE PROJECTS CQ^NTROL 1N A RANDOM CONTEXT: APPLICATION OF THE MONTECARLO METHOD In this paper an application of Monte-Carlo simulation to the control of projects is undertaken. It is assumed that the expected time of the activities are random variables with known distribution. In order to apply the Monte-Carlo approach some programs in BASIC language have been obtained. These programs allow to calculate the slacks and the critical path (s) for the simulated expected times to each activity. It is assumed that the random variables introduced in the analysis follow beta or negative binominal distributions. It is also possible to introduce in the analysis every kind of discrete random variable if the distribution of frecuencies is known. Finally, a critical index (i. e. the probability that a certain activity is in the critical path) is evaluated for every activity. Key words: PERT, Monte-Carlo simulation, BASIC language, beta distribution, negative binomial distribution, critical path. AMS 1980. Subject classification: 62E25.