10' NAME--PERT 20' 30' DESCRIPTION--NETWORK ANALYSIS FOR PERT TIME 40' 50' SOURCE--UNKNOWN 60' 70' INSTRUCTIONS 72 REM THIS PROGRAM ANALYZES A PERT NETWORK, AND FOR EACH 74 76 REM EVENT IN THE NETWORK THE PROGRAM WILL DETERMINE THE 78 80 REM FOLLOWING VARIABLES; 82 84 REM 1) TE - THE EARLIEST EXPECTED TIME OF COMPLETION 86 REM OF THE EVENT WITHIN THE NETWORK. 88 90 REM 2) V - THE VARIANCE ASSOCIATED WITH THE TE OF 92 REM THE EVENT WITHIN THE NETWORK. 94 96 REM 3) TL - THE LATEST ALLOWABLE TIME FOR THE COMPLETION 98 REM OF THE EVENT WITHIN THE NETWORK WITHOUT CHANGING 100 REM THE TE OF THE FINAL EVENT. 102 104 REM 4) SLACK - TL-TE. 106 108 110 REM THE ANALYSIS IS ADOPTED FROM THE PROGRAM AS SET FORTH 112 REM ON PAGES 189-211, IN MC MILLAN AND GONZALES. 114 116 REM IN THIS PROGRAM NO EVENT CAN HAVE MORE THAN TWO 118 REM IMMEDIATE PREDECESSOR EVENTS AND TWO IMMEDIATE 120 REM SUCCESSOR EVENTS. TO USE THIS PROGRAM WITH MORE 122 REM COMPLEX NETWORKS, ENTER A 'DUMMY' EVENT OF 124 REM ZERO TIME FOR COMPLETION AND ZERO VARIANCE. FOR 126 REM EXAMPLE; IF EVENTS 1, 2, AND 3 PRECEED EVENT 5 128 REM THEN ENTER A 'DUMMY' EVENT 4, OF ZERO (0) TIME FOR 130 REM COMPLETION AND ZERO (0) VARIANCE, SUCH THAT EVENTS 132 REM 1 AND 2, OR 1 AND 3, OR 2 AND 3 PRECEED EVENT 4. 134 REM THEN EVENT 5 WILL HAVE ONLY TWO PRECEEDING EVENTS AS 136 REM ALLOWED BY THE PROGRAM. ( I.E. EVENT 5 WILL BE PRECEEDED 138 REM BY 1 AND 4, OR 2 AND 4, OR 3 AND 4 ) 140 142 144 REM BEGINNING IN LINE 2000 ENTER THE DATA. FIRST ENTER 146 REM T, THE TOTAL NUMBER OF EVENTS IN THE NETWORK. 148 REM THEN, BEGINNING WITH THE FINAL EVENT AS NUMBER ONE, 150 REM ( 1 ) ENTER THE FOLLOWING DATA IN, IN ORDER ; 152 154 REM 1) THE NUMBER OF THE EVENT'S FIRST IMMEDIATE 156 REM PREDECESSOR. 158 160 REM 2) THE T(E) ASSOCIATED WITH THE EVENT'S FIRST 162 REM IMMEDIATE PREDECESSOR. 164 166 REM 3) THE VARIANCE ASSOCIATED WITH THE EVENT'S 168 REM FIRST IMMEDIATE PREDECESSOR. 170 172 REM 4) THE NUMBER OF THE EVENT'S SECOND IMMDEIATE 174 REM PREDECESSOR. IF NONE, ENTER ZERO. 176 178 REM 5) THE T(E) ASSOCIATED WITH THE EVENT'S SECOND 180 REM IMMEDIATE PREDECSSOR. IF NONE, ENTER ZERO. 182 184 REM 6) THE VARIANCE ASSOCIATED WITH THE EVENT'S SECOND 186 REM IMMEDIATE PREDECESSOR. IF NONE ENTER ZERO. 188 190 REM 7) THE TE OF THE EVENT, WHERE KNOWN. 192 REM IF UNKNOWN, ENTER ZERO. 194 196 REM 8) THE VARIANCE ASSOCIATED WITH THE EVENT, WHERE KNOWN. 198 REM IF UNKNOWN, ENTER ZERO. 200 202 REM THE LAST EVENT MUST BE LABELED 1, THE OTHER EVENTS 204 REM NEED NOT HAVE ANY ORDER. REMEMBER WHEN ENTERING 206 REM THE DATA, THAT YOU ENTER T, THE 8 PIECES OF DATA 208 REM FOR EVENT 1, THEN 8 FOR EVENT 2, THE 8 FOR EVENT 3 ETC. 210 212 214 REM T(E) = THE MEAN TIME REQUIRED FOR THE COMPLETION OF 216 REM THE EVENT'S IMMEDIATE PREDECESSOR. 218 REM T(E) IS DEFINED AS; T(E) = ( A + 4*M + B )/6, WHERE 220 222 REM A - MOST OPTOMISTIC TIME FOR COMPLETION 224 REM B - MOST PESSEMISTIC TIME FOR COMPLETION 226 REM M - MOST LIKELY TIME FOR COMPLETION 228 230 REM THE VARIANCE ASSOCIATED WITH THE COMPLETION OF THE 232 REM EVENT'S IMMEDIATE PREDECESSOR IS DEFINED AS 234 REM VARIANCE = V = ((B-A)/6)^2, WHERE A AND B ARE DEFINED 236 REM ABOVE. 238 240 242 REM AT LEAST ONE EVENT IN THE NETWORK MUST HAVE ITS 244 REM EARLIEST COMPLETION TIME SPECIFIED ( I.E. AT LEAST 246 REM ONE EVENT'S TE MUST BE KNOWN) 248 REM IF HOWEVER, NO EVENT HAS A SPECIFIED TE, LET THE 250 REM THE TE OF THE INITIAL EVENT IN THE NETWORK BE 252 REM SPECIFIED AS ONE, ( 1 ). THUS, THE INITIAL EVENT IN 254 REM THE NETWORK WOULD HAVE IN ITS SEVENTH DATA LOCATION 256 REM A ONE, INSTEAD OF A ZERO. ( I.E. ASSUME EVENT NUMER 258 REM 9 IS THIS FIRST EVENT IN THE NETWORK AND STARTS AT 260 REM TIME ZERO, ITS DATA FORM WOULD LOOK LIKE 262 REM XXXX DATA ------0-, HOWEVER, FOR THE PROGRAM TO 264 REM OPERATE THE EVENT WOULD HAVE TO BE ASSIGNED AN 266 REM ARBITRARY TE, SAY 1, ITS CORRECT DATA STATEMENT 268 REM WOULD TAKE THE FORM, XXXX DATA ------1-. 270 272 274 276 REM DON'T FORGET TO ENTER 'T', THE NUMBER OF EVENTS 278 REM IN THE NETWORK. 280 REM EACH EVENT IN THE NETWORK MUST HAVE 8 PIECES OF DATA 282 REM ENTERED FOR IT. 284 286 REM IF THERE ARE MORE THAN TEN EVENTS IN THE NETWORK 288 REM ENTER A DIM STATEMENT IN LINE 610 SUCH THAT E(T,13), 290 REM P(T), AND S(T) ARE DIMENSIONED, WHERE T= NUMBER OF EVENTS. 292 REM 300' 310' THIS PROGRAM WAS WRITTEN FOR STUDENT USE AT AMOS TUCK SCHOOL 320' OF HANOVER, N.H. WHICH DOES NOT ASSUME RESPONSIBILITY FOR ITS 330' ACCURACY. 340' 350' * * * * * * * * * * * MAIN PROGRAM * * * * * * * * * * * 360' 600 READ T 610 DIME(21,13),P(21),S(21) 620 FOR N= 1 TO T 630 FOR I= 1 TO 8 640 READ E(N,I) 650 NEXT I 660 FOR I= 9 TO 13 670 LET E(N,I) = 0 680 NEXT I 690 NEXT N 695 700 710 720 REM FIND TE 730 740 FOR I= 1 TO T 750 LET P(I) = 0 760 NEXT I 770 LET I = 1 780 LET P(1) = 1 790 LET N = 1 800 LET N = E(N,1) 810 LET I = I + 1 820 LET P(I) = N 830 IF E(N,7) = 0 THEN 800 840 LET I = I - 1 850 IF I = 0 THEN 1250 860 LET N = P(I) 870 IF S(N) = 2 THEN 1060 880 IF E(N,4)<> 0 THEN 920 890 LET E(N,7) = E(N,2) + E(P(I+1),7) 900 LET E(N,8) = E(N,3) + E(P(I+1),8) 910 GO TO 840 920 LET A = E(P(I+1),7) + E(N,2) 930 LET F = E(P(I+1),8) + E(N,3) 940 LET N = E(N,4) 950 LET I = I + 1 960 LET P(I) = N 970 IF E(N,7) <> 0 THEN 1000 980 LET S(P(I-1)) = 2 990 GO TO 800 1000 LET I = I - 1 1010 IF I = 0 THEN 1120 1020 LET N=P(I) 1030 LET B = E(P(I+1),7) + E(N,5) 1040 LET G = E(P(I+1),8) + E(N,6) 1050 GO TO 1140 1060 LET B = E(P(I+1),7) + E(N,5) 1070 LET G = E(P(I+1),8) + E(N,6) 1080 LET N = E(N,1) 1090 LET C = E(N,7) 1100 LET H = E(N,8) 1110 LET N = P(I) 1120 LET A = C + E(N,2) 1130 LET F = H + E(N,3) 1140 IF A > B THEN 1180 1150 LET E(N,7) = B 1160 LET E(N,8) = G 1170 GO TO 840 1180 LET E(N,7) = A 1190 LET E(N,8) = F 1200 GO TO 840 1210 1220 1230 REM FIND SUCCESSOR EVENTS AND RECORD TE'S 1240 1250 FOR I = 1 TO T 1260 LET N = E(I,1) 1270 IF N = 0 THEN 1340 1280 IF E(N,9) <> 0 THEN 1320 1290 LET E(N,9) = I 1300 LET E(N,10) = E(I,2) 1310 GO TO 1340 1320 LET E(N,11) = I 1330 LET E(N,12) = E(I,2) 1340 LET N = E(I,4) 1350 IF N = 0 THEN 1420 1360 IF E(N,9) <> 0 THEN 1400 1370 LET E(N,9) = I 1380 LET E(N,10) = E(I,5) 1390 GO TO 1420 1400 LET E(N,11) = I 1410 LET E(N,12) = E(I,5) 1420 NEXT I 1430 1440 1450 REM FIND TL 1460 1470 LET E(1,13) = E(1,7) 1480 FOR K= 1 TO T 1490 IF E(K,13) = 0 THEN 1520 1500 NEXT K 1510 GO TO 1810 1520 LET N = K 1530 LET I = 1 1540 LET P(1) = N 1550 IF E(N,13) <> 0 THEN 1690 1560 LET A = E(N,9) 1570 IF E(A,13) = 0 THEN 1730 1580 LET B = E(N,11) 1590 IF B = 0 THEN 1680 1600 IF E(B,13) = 0 THEN 1770 1610 LET T1 = E(A,13) - E(N,10) 1620 LET T2 = E(B,13) - E(N,12) 1630 IF T1 < T2 THEN 1660 1640 LET E(N,13) = T2 1650 GO TO 1690 1660 LET E(N,13) = E(A,13) - E(N,10) 1670 IF I = 1 THEN 1480 1680 LET E(N,13) = E(A,13) - E(N,10) 1690 IF I = 1 THEN 1480 1700 LET I = I - 1 1710 LET N = P(I) 1720 GO TO 1550 1730 LET N = A 1740 LET I = I + 1 1750 LET P(I) = N 1760 GO TO 1550 1770 LET N = B 1780 LET I = I + 1 1790 LET P(I) = N 1800 GO TO 1550 1810 1820 1830 REM PRINT RESULTS 1840 1850 PRINT "EVENT NUMBER","TE","V","TL","TOTAL SLACK" 1855 PRINT "----- ------","--","-","--","----- -----" 1860 PRINT 1870 FOR N = T TO 1 STEP -1 1880 PRINT N,E(N,7),E(N,8),E(N,13),E(N,13)-E(N,7) 1890 NEXT N 1900 1910 2000 DATA 21 2001 DATA 2,4,1.77,3,8,0,0,0 2002 DATA 4,0,0,5,10,4,0,0 2003 DATA 9,0,0,0,0,0,0,0 2004 DATA 6,6,.11,0,0,0,0,0 2005 DATA 9,0,0,0,0,0,0,0 2006 DATA 7,12,.11,8,10,.44,0,0 2007 DATA 10,24,21.77,0,0,0,0 ,0 2008 DATA 11,20,5.44,14,0,0,0,0 2009 DATA 7,12,.11,8,10,.44,0,0 2010 DATA 15,0,0,16,30,44.44,0,0 2011 DATA 15,0,0,16,30,44.44,0,0 2012 DATA 21,0,0,0,0,0,0,0 2013 DATA 20,40,177.59,0,0,0,0,0 2014 DATA 13,10,2.77,12,28,75.17,0,0 2015DATA 20,40,177.59,0,0,0,0,0 2016 DATA 17,8,1.77,0,0,0,0,0 2017 DATA 18,20,.44,0,0,0,0,0 2018 DATA 19,10,0,0,0,0,0,0 2019 DATA 0,0,0,0,0,0,1,0 2020 DATA 21,0,0,0,0,0,0,0 2021 DATA 19,10,0,0,0,0,0,0 9999 END