1  DIM Y[20],X[10,20],Z[20]
2  REM NEWA   BASIC PROGRAM TO ACCOMPANY NEWFOOD (A) PART II
3  REM   CASE2, HP 36841A, 2/74 (NEWA,  PART 4  OF 8)
4  READ P1,P2,B1,B2,B3,B4,B5,R1,Z9,A1
7  DEF FNR()=P1*EXP(-((/P2)^2)/2)
10  DEF FNT()=B1/(1+ABS())+B2/(1+ABS())^2+B3/(1+ABS())^3
13  DEF FNF()=B4/(1+ABS())^4+B5/(1+ABS())^5
16  READ L,S,L1,O1,O2,O3,O4
19  IF S<1.5 THEN 55
22  PRINT "PAYOFF TABLE (OBJECTIVE IS ";
25  IF O1<.5 THEN 34
28  PRINT "MAXIMIZATION):"
31  GOTO 37
34  PRINT "MINIMIZATION):"
37  PRINT "NATURE",
40  FOR I=1 TO S
43  LET E[I]=0
46  PRINT "ACT";I,
49  NEXT I
52  PRINT 
55  FOR I=1 TO L
58  READ U[I]
60  LET X[I,20]=0
61  NEXT I
64  FOR I=1 TO L
67  READ P[I]
70  IF I>1.5 THEN 79
73  LET M[3,I]=1.5*U[1]-U[2]/2
76  GOTO 91
79  LET M[3,I]=(U[I]+U[I-1])/2
82  IF I<L-.5 THEN 91
85  LET M[1,I]=1.5*U[L]-U[L-1]/2
88  GOTO 94
91  LET M[1,I]=(U[I]+U[I+1])/2
94  LET M[2,I]=(M[3,I]+M[1,I])/2
97  LET R1=R1+P[I]*M[2,I]
100  NEXT I
103  FOR I=1 TO L1
106  LET Z[I]=0
109  READ Y[I]
112  NEXT I
115  IF S<1.5 THEN 178
118  FOR I=1 TO L
121  PRINT U[I],
124  FOR J=1 TO S
127  IF O2>.5 THEN 448
130  READ A[I,J]
133  PRINT A[I,J],
136  LET E[J]=E[J]+P[I]*A[I,J]
139  IF J>1.5 THEN 145
142  LET A8=A[I,J]
145  IF O1>.5 THEN 154
148  IF A[I,J] >= A8 THEN 160
151  GOTO 157
154  IF A[I,J] <= A8 THEN 160
157  LET A8=A[I,J]
160  NEXT J
163  LET A1=A1+P[I]*A8
166  PRINT 
169  NEXT I
172  GOSUB 421
175  PRINT 
178  PRINT "PRIOR ANALYSIS:"
181  PRINT "NATURE","PRIOR PROBS."
184  FOR I=1 TO L
187  PRINT U[I],P[I]
190  NEXT I
193  PRINT " ","EXPECTED VALUES"
196  IF S>1.5 THEN 205
199  PRINT " ",R1
202  GOTO 238
205  FOR J=1 TO S
208  PRINT "ACT";J,E[J],
211  IF J <> 0 THEN 220
214  PRINT " ","***BAYES NO-DATA ACTION***"
217  GOTO 223
220  PRINT 
223  NEXT J
226  PRINT 
229  PRINT "VALUE OF PERFECT INFORMATION IS";ABS(E[W]-A1)
232  IF L1=0 THEN 999
235  LET H=E[W]
238  PRINT 
241  PRINT 
244  LET R1=0
247  IF O4>.5 THEN 253
250  PRINT "PRE-";
253  PRINT "POSTERIOR ANALYSIS:"
256  FOR J=1 TO L1
259  LET A1=0
262  IF O4<.5 THEN 268
265  IF O4 <> J THEN 397
268  FOR I=1 TO L
271  IF O3>.5 THEN 472
274  READ X[I,J]
277  LET Z[J]=Z[J]+P[I]*X[I,J]
280  NEXT I
282  IF Z[J]=0 THEN 397
283  LET Z9=Z9+Z[J]
286  IF O4<-.5 THEN 298
289  PRINT "IF THE EXPERIMENTAL OUTCOME IS ";Y[J]
292  PRINT "(PROBABILITY IS";Z[J];")"
295  PRINT "NATURE","POSTERIOR PROBS.";" P(EXP./NATURE)"
298  FOR K=1 TO S
301  LET E[K]=0
304  FOR I=1 TO L
307  LET Q[I]=P[I]*X[I,J]/Z[J]
310  LET E[K]=E[K]+A[I,K]*Q[I]
313  IF K>1 THEN 322
316  IF O4<-.5 THEN 322
319  PRINT U[I],Q[I],"   ";X[I,J]
322  NEXT I
325  IF K>1 THEN 334
328  IF O4<-.5 THEN 334
331  PRINT " ","EXPECTED VALUES"
334  NEXT K
337  IF S<1.5 THEN 379
340  GOSUB 421
343  FOR K=1 TO S
346  IF O4<-.5 THEN 352
349  PRINT "ACT";K,E[K],
352  IF K <> W THEN 367
355  IF O4<-.5 THEN 361
358  PRINT " ","***BAYES ACTION***"
361  LET R1=R1+Z[J]*E[K]
364  GOTO 373
367  IF O4<-.5 THEN 373
370  PRINT 
373  NEXT K
376  GOTO 391
379  FOR I=1 TO L
382  LET A1=A1+Q[I]*M[2,I]
385  NEXT I
388  PRINT " ",A1
391  IF O4<-.5 THEN 397
394  PRINT 
397  NEXT J
400  IF O4>.5 THEN 999
403  IF S<1.5 THEN 999
409  PRINT "VALUE OF EXPERIMENTATION IS";ABS(H-R1)
412  PRINT 
415  PRINT "SUM P(EXP. OUTCOMES) =";Z9
416  PRINT "NAT.  EXP.PROBS"
417  FOR I=1 TO L
418  PRINT I;X[I,20]
419  NEXT I
420  GOTO 999
421  LET W=1
424  FOR V=2 TO S
427  IF O1>.5 THEN 436
430  IF E[V] >= E[W] THEN 442
433  GOTO 439
436  IF E[V] <= E[W] THEN 442
439  LET W=V
442  NEXT V
445  RETURN 
448  IF (I+J) <> 2 THEN 466
451  FOR I1=1 TO 2
454  FOR J1=1 TO S
457  READ B[I1,J1]
460  NEXT J1
463  NEXT I1
466  LET A[I,J]=U[I]*B[1,J]+B[2,J]
469  GOTO 133
472  LET S1=0
475  IF I+J>2.5 THEN 482
478  READ G
481  LET D=Y[2]-Y[1]
482  IF Y[J]+.5*D<U[I]-4*G THEN 538
483  IF Y[J]-.5*D>U[I]+4*G THEN 538
484  FOR I1=1 TO 10
487  LET U2=Y[J]-.5*D+I1*D/10
490  LET L2=Y[J]-.5*D+(I1-1)*D/10
493  LET S2=0
496  LET V[1]=P2*(M[1,I]-U2)/G
499  LET V[2]=P2*(M[3,I]-U2)/G
502  LET V[3]=P2*(M[1,I]-L2)/G
505  LET V[4]=P2*(M[3,I]-L2)/G
508  FOR I2=1 TO 4
511  IF V[I2]<0 THEN 520
514  LET S2=S2+(1-FNR(V[I2])*(FNT(V[I2])+FNF(V[I2])))*(-1)^(I2+1)
517  GOTO 523
520  LET S2=S2+(FNR(V[I2])*(FNT(V[I2])+FNF(V[I2])))*(-1)^(I2+1)
523  NEXT I2
526  LET S1=S1+.5*S2*(U2-L2)
529  NEXT I1
532  LET X[I,J]=S1/(M[1,I]-M[3,I])
535  IF X[I,J] >= 0 THEN 539
538  LET X[I,J]=0
539  LET X[I,20]=X[I,20]+X[I,J]
541  GOTO 277
544  DATA .398942,.231642,.319382,-.356564,1.78148,-1.82126
547  DATA 1.33027,0,0,0
600  DATA 6,2,8,1,1,1,0
605  DATA .75,1.25,1.75,2.25,2.75,3.25
610  DATA .1,.2,.25,.25,.1,.1
615  DATA .25,.75,1.25,1.75,2.25,2.75,3.25,3.75
620  DATA 0
625  DATA 7.27
630  DATA 0
635  DATA -12
700  DATA .25
999  END 
