Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap1_198111 - decus/20-0020/pert.tuk
There are 2 other files named pert.tuk in the archive. Click here to see a list.
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